@mavogel/awscdk-rootmail 0.0.336 → 0.1.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 (50) hide show
  1. package/.codegraph/.gitignore +5 -0
  2. package/.jsii +460 -8
  3. package/CLAUDE.md +1 -1
  4. package/README.md +6 -1
  5. package/docs/plans/2026-08-09-bump-mvc-projen-cdk-nag-v3.md +199 -0
  6. package/integ-tests/integ.rootmail-custom-santa.ts +2 -2
  7. package/integ-tests/integ.rootmail-filter-subject.ts +2 -2
  8. package/integ-tests/integ.rootmail.ts +2 -2
  9. package/lib/hosted-zone-dkim-propagation.js +46 -15
  10. package/lib/hosted-zone-dkim-verification-records.js +47 -12
  11. package/lib/rootmail-autowire-dns.js +47 -15
  12. package/lib/rootmail.js +13 -16
  13. package/lib/ses-receipt-ruleset-activation.js +53 -15
  14. package/lib/ses-receive.js +12 -12
  15. package/node_modules/cdk-nag/.jsii +6331 -2945
  16. package/node_modules/cdk-nag/.jsii.tabl.json +1 -1
  17. package/node_modules/cdk-nag/API.md +490 -1778
  18. package/node_modules/cdk-nag/MIGRATION.md +239 -0
  19. package/node_modules/cdk-nag/README.md +88 -513
  20. package/node_modules/cdk-nag/lib/index.d.ts +0 -3
  21. package/node_modules/cdk-nag/lib/index.js +1 -4
  22. package/node_modules/cdk-nag/lib/nag-logger.d.ts +5 -145
  23. package/node_modules/cdk-nag/lib/nag-logger.js +4 -199
  24. package/node_modules/cdk-nag/lib/nag-pack.d.ts +57 -44
  25. package/node_modules/cdk-nag/lib/nag-pack.js +140 -114
  26. package/node_modules/cdk-nag/lib/nag-rules.d.ts +0 -2
  27. package/node_modules/cdk-nag/lib/nag-rules.js +3 -5
  28. package/node_modules/cdk-nag/lib/packs/aws-solutions.d.ts +4 -15
  29. package/node_modules/cdk-nag/lib/packs/aws-solutions.js +21 -40
  30. package/node_modules/cdk-nag/lib/packs/hipaa-security.d.ts +4 -2
  31. package/node_modules/cdk-nag/lib/packs/hipaa-security.js +31 -37
  32. package/node_modules/cdk-nag/lib/packs/nist-800-53-r4.d.ts +4 -2
  33. package/node_modules/cdk-nag/lib/packs/nist-800-53-r4.js +29 -35
  34. package/node_modules/cdk-nag/lib/packs/nist-800-53-r5.d.ts +4 -2
  35. package/node_modules/cdk-nag/lib/packs/nist-800-53-r5.js +30 -36
  36. package/node_modules/cdk-nag/lib/packs/pci-dss-321.d.ts +4 -2
  37. package/node_modules/cdk-nag/lib/packs/pci-dss-321.js +29 -35
  38. package/node_modules/cdk-nag/lib/packs/serverless.d.ts +4 -2
  39. package/node_modules/cdk-nag/lib/packs/serverless.js +14 -20
  40. package/node_modules/cdk-nag/lib/rules/ec2/EC2IMDSv2Enabled.js +5 -1
  41. package/node_modules/cdk-nag/package.json +5 -5
  42. package/package.json +16 -17
  43. package/node_modules/cdk-nag/lib/ignore-suppression-conditions.d.ts +0 -59
  44. package/node_modules/cdk-nag/lib/ignore-suppression-conditions.js +0 -97
  45. package/node_modules/cdk-nag/lib/models/nag-suppression.d.ts +0 -30
  46. package/node_modules/cdk-nag/lib/models/nag-suppression.js +0 -7
  47. package/node_modules/cdk-nag/lib/nag-suppressions.d.ts +0 -30
  48. package/node_modules/cdk-nag/lib/nag-suppressions.js +0 -96
  49. package/node_modules/cdk-nag/lib/utils/nag-suppression-helper.d.ts +0 -20
  50. package/node_modules/cdk-nag/lib/utils/nag-suppression-helper.js +0 -119
@@ -1 +1 @@
1
- {"version":"2","toolVersion":"5.9.39","snippets":{"bb38f53e9ef0487491e593e272377eaa4f401f1f161d1c5bececc701f845c8ea":{"translations":{"python":{"source":"from aws_cdk import App, Aspects\nfrom ...lib.cdk_test_stack import CdkTestStack\nfrom cdk_nag import AwsSolutionsChecks\n\n\napp = App()\nCdkTestStack(app, \"CdkNagDemo\")\n# Simple rule informational messages using the AWS Solutions Rule pack\nAspects.of(app).add(AwsSolutionsChecks())\n# Multiple rule packs can be run against the same app\nAspects.of(app).add(NIST80053R5Checks())","version":"2"},"csharp":{"source":"using Amazon.CDK;\nusing Lib.Cdk.Test.Stack;\nusing Cdklabs.CdkNag;\n\n\nvar app = new App();\nnew CdkTestStack(app, \"CdkNagDemo\");\n// Simple rule informational messages using the AWS Solutions Rule pack\nAspects.Of(app).Add(new AwsSolutionsChecks());\n// Multiple rule packs can be run against the same app\nAspects.Of(app).Add(new NIST80053R5Checks());","version":"1"},"java":{"source":"import software.amazon.awscdk.App;\nimport software.amazon.awscdk.Aspects;\nimport lib.cdk.test.stack.CdkTestStack;\nimport io.github.cdklabs.cdknag.AwsSolutionsChecks;\n\n\nApp app = new App();\nnew CdkTestStack(app, \"CdkNagDemo\");\n// Simple rule informational messages using the AWS Solutions Rule pack\nAspects.of(app).add(new AwsSolutionsChecks());\n// Multiple rule packs can be run against the same app\nAspects.of(app).add(new NIST80053R5Checks());","version":"1"},"go":{"source":"import \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/aws-samples/dummy/lib/cdkteststack\"\nimport \"github.com/cdklabs/cdk-nag-go/cdknag\"\n\n\napp := awscdk.NewApp()\nlibcdkteststack.NewCdkTestStack(app, jsii.String(\"CdkNagDemo\"))\n// Simple rule informational messages using the AWS Solutions Rule pack\nawscdk.Aspects_Of(app).Add(cdknag.NewAwsSolutionsChecks())\n// Multiple rule packs can be run against the same app\nawscdk.Aspects_Of(app).Add(NewNIST80053R5Checks())","version":"1"},"$":{"source":"import { App, Aspects } from 'aws-cdk-lib';\nimport { CdkTestStack } from '../lib/cdk-test-stack';\nimport { AwsSolutionsChecks } from 'cdk-nag';\n\nconst app = new App();\nnew CdkTestStack(app, 'CdkNagDemo');\n// Simple rule informational messages using the AWS Solutions Rule pack\nAspects.of(app).add(new AwsSolutionsChecks());\n// Multiple rule packs can be run against the same app\nAspects.of(app).add(new NIST80053R5Checks());\n// Additional explanations on the purpose of triggered rules\n// Aspects.of(stack).add(new AwsSolutionsChecks({ verbose: true }));","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-nag"},"field":{"field":"markdown","line":44}},"didCompile":false,"fqnsReferenced":["aws-cdk-lib.App","aws-cdk-lib.Aspects#add","aws-cdk-lib.Aspects#of","aws-cdk-lib.IAspect","cdk-nag.AwsSolutionsChecks","constructs.IConstruct"],"fullSource":"// Hoisted imports begin after !show marker below\n/// !show\nimport { App, Aspects } from 'aws-cdk-lib';\nimport { CdkTestStack } from '../lib/cdk-test-stack';\nimport { AwsSolutionsChecks } from 'cdk-nag';\n/// !hide\n// Hoisted imports ended before !hide marker above\n// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport {\n Stack,\n} from 'aws-cdk-lib';\n\nclass Fixture extends Stack {\n constructor(scope: Construct, id: string) {\n super(scope, id);\n\n // Code snippet begins after !show marker below\n/// !show\n\n\nconst app = new App();\nnew CdkTestStack(app, 'CdkNagDemo');\n// Simple rule informational messages using the AWS Solutions Rule pack\nAspects.of(app).add(new AwsSolutionsChecks());\n// Multiple rule packs can be run against the same app\nAspects.of(app).add(new NIST80053R5Checks());\n/// !hide\n// Code snippet ended before !hide marker above\n }\n}","syntaxKindCounter":{"11":4,"80":18,"212":4,"214":4,"215":4,"244":1,"245":3,"261":1,"262":1,"273":3,"274":3,"276":3,"277":4,"308":1},"fqnsFingerprint":"6c0cb03b196574e36a29d9eed0e4d7afa82da571c57ff59df4ef9c76090e95a6"},"410f7f791a5a500d2be7fd6576bf97dfd2ab20c94960cc9ef4745341e64a2855":{"translations":{"python":{"source":"from aws_cdk.aws_ec2 import SecurityGroup, Vpc, Peer, Port\nfrom aws_cdk import Stack, StackProps\nfrom constructs import Construct\nfrom cdk_nag import NagSuppressions\n\n\nclass CdkTestStack(Stack):\n def __init__(self, scope, id, *, description=None, env=None, stackName=None, tags=None, notificationArns=None, synthesizer=None, terminationProtection=None, analyticsReporting=None, crossRegionReferences=None, permissionsBoundary=None, suppressTemplateIndentation=None):\n super().__init__(scope, id, description=description, env=env, stackName=stackName, tags=tags, notificationArns=notificationArns, synthesizer=synthesizer, terminationProtection=terminationProtection, analyticsReporting=analyticsReporting, crossRegionReferences=crossRegionReferences, permissionsBoundary=permissionsBoundary, suppressTemplateIndentation=suppressTemplateIndentation)\n test = SecurityGroup(self, \"test\",\n vpc=Vpc(self, \"vpc\")\n )\n test.add_ingress_rule(Peer.any_ipv4(), Port.all_traffic())\n NagSuppressions.add_resource_suppressions(test, [id=\"AwsSolutions-EC23\", reason=\"lorem ipsum\"\n ])","version":"2"},"csharp":{"source":"using Amazon.CDK.AWS.EC2;\nusing Amazon.CDK;\nusing Constructs;\nusing Cdklabs.CdkNag;\n\nclass CdkTestStack : Stack\n{\n public CdkTestStack(Construct scope, string id, StackProps? props=null) : base(scope, id, props)\n {\n var test = new SecurityGroup(this, \"test\", new SecurityGroupProps {\n Vpc = new Vpc(this, \"vpc\")\n });\n test.AddIngressRule(Peer.AnyIpv4(), Port.AllTraffic());\n NagSuppressions.AddResourceSuppressions(test, new [] { new NagPackSuppression { Id = \"AwsSolutions-EC23\", Reason = \"lorem ipsum\" } });\n }\n}","version":"1"},"java":{"source":"import software.amazon.awscdk.services.ec2.SecurityGroup;\nimport software.amazon.awscdk.services.ec2.Vpc;\nimport software.amazon.awscdk.services.ec2.Peer;\nimport software.amazon.awscdk.services.ec2.Port;\nimport software.amazon.awscdk.Stack;\nimport software.amazon.awscdk.StackProps;\nimport software.constructs.Construct;\nimport io.github.cdklabs.cdknag.NagSuppressions;\n\n\npublic class CdkTestStack extends Stack {\n public CdkTestStack(Construct scope, String id) {\n this(scope, id, null);\n }\n\n public CdkTestStack(Construct scope, String id, StackProps props) {\n super(scope, id, props);\n SecurityGroup test = SecurityGroup.Builder.create(this, \"test\")\n .vpc(new Vpc(this, \"vpc\"))\n .build();\n test.addIngressRule(Peer.anyIpv4(), Port.allTraffic());\n NagSuppressions.addResourceSuppressions(test, List.of(NagPackSuppression.builder().id(\"AwsSolutions-EC23\").reason(\"lorem ipsum\").build()));\n }\n}","version":"1"},"go":{"source":"import \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/aws/constructs-go/constructs\"\nimport \"github.com/cdklabs/cdk-nag-go/cdknag\"\n\n\ntype CdkTestStack struct {\n\tStack\n}\n\nfunc NewCdkTestStack(scope Construct, id *string, props StackProps) *CdkTestStack {\n\tthis := &CdkTestStack{}\n\tnewStack_Override(this, scope, id, props)\n\ttest := awscdk.NewSecurityGroup(this, jsii.String(\"test\"), &SecurityGroupProps{\n\t\tVpc: awscdk.NewVpc(this, jsii.String(\"vpc\")),\n\t})\n\ttest.AddIngressRule(awscdk.Peer_AnyIpv4(), awscdk.Port_AllTraffic())\n\tcdknag.NagSuppressions_AddResourceSuppressions(test, []NagPackSuppression{\n\t\t&NagPackSuppression{\n\t\t\tId: jsii.String(\"AwsSolutions-EC23\"),\n\t\t\tReason: jsii.String(\"lorem ipsum\"),\n\t\t},\n\t})\n\treturn this\n}","version":"1"},"$":{"source":"import { SecurityGroup, Vpc, Peer, Port } from 'aws-cdk-lib/aws-ec2';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport { NagSuppressions } from 'cdk-nag';\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n const test = new SecurityGroup(this, 'test', {\n vpc: new Vpc(this, 'vpc'),\n });\n test.addIngressRule(Peer.anyIpv4(), Port.allTraffic());\n NagSuppressions.addResourceSuppressions(test, [\n { id: 'AwsSolutions-EC23', reason: 'lorem ipsum' },\n ]);\n }\n}","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-nag"},"field":{"field":"markdown","line":66}},"didCompile":false,"fqnsReferenced":["aws-cdk-lib.Stack","aws-cdk-lib.StackProps","aws-cdk-lib.aws_ec2.IPeer","aws-cdk-lib.aws_ec2.IVpc","aws-cdk-lib.aws_ec2.Peer#anyIpv4","aws-cdk-lib.aws_ec2.Port","aws-cdk-lib.aws_ec2.Port#allTraffic","aws-cdk-lib.aws_ec2.SecurityGroup","aws-cdk-lib.aws_ec2.SecurityGroup#addIngressRule","aws-cdk-lib.aws_ec2.SecurityGroupProps","aws-cdk-lib.aws_ec2.Vpc","cdk-nag.NagSuppressions#addResourceSuppressions","constructs.Construct"],"fullSource":"// Hoisted imports begin after !show marker below\n/// !show\nimport { SecurityGroup, Vpc, Peer, Port } from 'aws-cdk-lib/aws-ec2';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport { NagSuppressions } from 'cdk-nag';\n/// !hide\n// Hoisted imports ended before !hide marker above\n// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport {\n Stack,\n} from 'aws-cdk-lib';\n\nclass Fixture extends Stack {\n constructor(scope: Construct, id: string) {\n super(scope, id);\n\n // Code snippet begins after !show marker below\n/// !show\n\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n const test = new SecurityGroup(this, 'test', {\n vpc: new Vpc(this, 'vpc'),\n });\n test.addIngressRule(Peer.anyIpv4(), Port.allTraffic());\n NagSuppressions.addResourceSuppressions(test, [\n { id: 'AwsSolutions-EC23', reason: 'lorem ipsum' },\n ]);\n }\n}\n/// !hide\n// Code snippet ended before !hide marker above\n }\n}","syntaxKindCounter":{"11":8,"58":1,"80":33,"95":1,"108":1,"110":2,"154":1,"170":3,"177":1,"184":2,"210":1,"211":2,"212":4,"214":5,"215":2,"234":1,"242":1,"244":1,"245":3,"261":1,"262":1,"264":1,"273":4,"274":4,"276":4,"277":8,"299":1,"304":3,"308":1},"fqnsFingerprint":"71f63f3aaad6be7b8d05e515cfc275d5fc4888b413e66fc7031bb2307415c79d"},"91b74cf251c6c1b561d0cd9582bc1e2f3687207b740b045ff09389b7d221ec47":{"translations":{"python":{"source":"from aws_cdk.aws_ec2 import SecurityGroup, Vpc, Peer, Port\nfrom aws_cdk import Stack, StackProps\nfrom constructs import Construct\nfrom cdk_nag import NagSuppressions\n\n\nclass CdkTestStack(Stack):\n def __init__(self, scope, id, *, description=None, env=None, stackName=None, tags=None, notificationArns=None, synthesizer=None, terminationProtection=None, analyticsReporting=None, crossRegionReferences=None, permissionsBoundary=None, suppressTemplateIndentation=None):\n super().__init__(scope, id, description=description, env=env, stackName=stackName, tags=tags, notificationArns=notificationArns, synthesizer=synthesizer, terminationProtection=terminationProtection, analyticsReporting=analyticsReporting, crossRegionReferences=crossRegionReferences, permissionsBoundary=permissionsBoundary, suppressTemplateIndentation=suppressTemplateIndentation)\n vpc = Vpc(self, \"vpc\")\n test1 = SecurityGroup(self, \"test\", vpc=vpc)\n test1.add_ingress_rule(Peer.any_ipv4(), Port.all_traffic())\n test2 = SecurityGroup(self, \"test\", vpc=vpc)\n test2.add_ingress_rule(Peer.any_ipv4(), Port.all_traffic())\n NagSuppressions.add_resource_suppressions([test1, test2], [id=\"AwsSolutions-EC23\", reason=\"lorem ipsum\"])","version":"2"},"csharp":{"source":"using Amazon.CDK.AWS.EC2;\nusing Amazon.CDK;\nusing Constructs;\nusing Cdklabs.CdkNag;\n\nclass CdkTestStack : Stack\n{\n public CdkTestStack(Construct scope, string id, StackProps? props=null) : base(scope, id, props)\n {\n var vpc = new Vpc(this, \"vpc\");\n var test1 = new SecurityGroup(this, \"test\", new SecurityGroupProps { Vpc = vpc });\n test1.AddIngressRule(Peer.AnyIpv4(), Port.AllTraffic());\n var test2 = new SecurityGroup(this, \"test\", new SecurityGroupProps { Vpc = vpc });\n test2.AddIngressRule(Peer.AnyIpv4(), Port.AllTraffic());\n NagSuppressions.AddResourceSuppressions(new [] { test1, test2 }, new [] { new NagPackSuppression { Id = \"AwsSolutions-EC23\", Reason = \"lorem ipsum\" } });\n }\n}","version":"1"},"java":{"source":"import software.amazon.awscdk.services.ec2.SecurityGroup;\nimport software.amazon.awscdk.services.ec2.Vpc;\nimport software.amazon.awscdk.services.ec2.Peer;\nimport software.amazon.awscdk.services.ec2.Port;\nimport software.amazon.awscdk.Stack;\nimport software.amazon.awscdk.StackProps;\nimport software.constructs.Construct;\nimport io.github.cdklabs.cdknag.NagSuppressions;\n\n\npublic class CdkTestStack extends Stack {\n public CdkTestStack(Construct scope, String id) {\n this(scope, id, null);\n }\n\n public CdkTestStack(Construct scope, String id, StackProps props) {\n super(scope, id, props);\n Vpc vpc = new Vpc(this, \"vpc\");\n SecurityGroup test1 = SecurityGroup.Builder.create(this, \"test\").vpc(vpc).build();\n test1.addIngressRule(Peer.anyIpv4(), Port.allTraffic());\n SecurityGroup test2 = SecurityGroup.Builder.create(this, \"test\").vpc(vpc).build();\n test2.addIngressRule(Peer.anyIpv4(), Port.allTraffic());\n NagSuppressions.addResourceSuppressions(List.of(test1, test2), List.of(NagPackSuppression.builder().id(\"AwsSolutions-EC23\").reason(\"lorem ipsum\").build()));\n }\n}","version":"1"},"go":{"source":"import \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/aws/constructs-go/constructs\"\nimport \"github.com/cdklabs/cdk-nag-go/cdknag\"\n\n\ntype CdkTestStack struct {\n\tStack\n}\n\nfunc NewCdkTestStack(scope Construct, id *string, props StackProps) *CdkTestStack {\n\tthis := &CdkTestStack{}\n\tnewStack_Override(this, scope, id, props)\n\tvpc := awscdk.NewVpc(this, jsii.String(\"vpc\"))\n\ttest1 := awscdk.NewSecurityGroup(this, jsii.String(\"test\"), &SecurityGroupProps{\n\t\tVpc: Vpc,\n\t})\n\ttest1.AddIngressRule(awscdk.Peer_AnyIpv4(), awscdk.Port_AllTraffic())\n\ttest2 := awscdk.NewSecurityGroup(this, jsii.String(\"test\"), &SecurityGroupProps{\n\t\tVpc: Vpc,\n\t})\n\ttest2.AddIngressRule(awscdk.Peer_AnyIpv4(), awscdk.Port_AllTraffic())\n\tcdknag.NagSuppressions_AddResourceSuppressions([]interface{}{\n\t\ttest1,\n\t\ttest2,\n\t}, []NagPackSuppression{\n\t\t&NagPackSuppression{\n\t\t\tId: jsii.String(\"AwsSolutions-EC23\"),\n\t\t\tReason: jsii.String(\"lorem ipsum\"),\n\t\t},\n\t})\n\treturn this\n}","version":"1"},"$":{"source":"import { SecurityGroup, Vpc, Peer, Port } from 'aws-cdk-lib/aws-ec2';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport { NagSuppressions } from 'cdk-nag';\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n const vpc = new Vpc(this, 'vpc');\n const test1 = new SecurityGroup(this, 'test', { vpc });\n test1.addIngressRule(Peer.anyIpv4(), Port.allTraffic());\n const test2 = new SecurityGroup(this, 'test', { vpc });\n test2.addIngressRule(Peer.anyIpv4(), Port.allTraffic());\n NagSuppressions.addResourceSuppressions(\n [test1, test2],\n [{ id: 'AwsSolutions-EC23', reason: 'lorem ipsum' }]\n );\n }\n}","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-nag"},"field":{"field":"markdown","line":91}},"didCompile":false,"fqnsReferenced":["aws-cdk-lib.Stack","aws-cdk-lib.StackProps","aws-cdk-lib.aws_ec2.IPeer","aws-cdk-lib.aws_ec2.IVpc","aws-cdk-lib.aws_ec2.Peer#anyIpv4","aws-cdk-lib.aws_ec2.Port","aws-cdk-lib.aws_ec2.Port#allTraffic","aws-cdk-lib.aws_ec2.SecurityGroup","aws-cdk-lib.aws_ec2.SecurityGroup#addIngressRule","aws-cdk-lib.aws_ec2.SecurityGroupProps","aws-cdk-lib.aws_ec2.Vpc","cdk-nag.NagSuppressions#addResourceSuppressions","constructs.Construct"],"fullSource":"// Hoisted imports begin after !show marker below\n/// !show\nimport { SecurityGroup, Vpc, Peer, Port } from 'aws-cdk-lib/aws-ec2';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport { NagSuppressions } from 'cdk-nag';\n/// !hide\n// Hoisted imports ended before !hide marker above\n// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport {\n Stack,\n} from 'aws-cdk-lib';\n\nclass Fixture extends Stack {\n constructor(scope: Construct, id: string) {\n super(scope, id);\n\n // Code snippet begins after !show marker below\n/// !show\n\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n const vpc = new Vpc(this, 'vpc');\n const test1 = new SecurityGroup(this, 'test', { vpc });\n test1.addIngressRule(Peer.anyIpv4(), Port.allTraffic());\n const test2 = new SecurityGroup(this, 'test', { vpc });\n test2.addIngressRule(Peer.anyIpv4(), Port.allTraffic());\n NagSuppressions.addResourceSuppressions(\n [test1, test2],\n [{ id: 'AwsSolutions-EC23', reason: 'lorem ipsum' }]\n );\n }\n}\n/// !hide\n// Code snippet ended before !hide marker above\n }\n}","syntaxKindCounter":{"11":9,"58":1,"80":44,"95":1,"108":1,"110":3,"154":1,"170":3,"177":1,"184":2,"210":2,"211":3,"212":7,"214":8,"215":3,"234":1,"242":1,"244":3,"245":4,"261":3,"262":3,"264":1,"273":4,"274":4,"276":4,"277":8,"299":1,"304":2,"305":2,"308":1},"fqnsFingerprint":"71f63f3aaad6be7b8d05e515cfc275d5fc4888b413e66fc7031bb2307415c79d"},"0baf61d030101d0c5574591058e5c920c6b49f7fdea3d4ae44a28cfbd75fc6a6":{"translations":{"python":{"source":"from cdk_nag import NagPackSuppression\nfrom aws_cdk.aws_iam import User, PolicyStatement\nfrom aws_cdk import Stack, StackProps\nfrom constructs import Construct\nfrom cdk_nag import NagSuppressions\n\n\nclass CdkTestStack(Stack):\n def __init__(self, scope, id, *, description=None, env=None, stackName=None, tags=None, notificationArns=None, synthesizer=None, terminationProtection=None, analyticsReporting=None, crossRegionReferences=None, permissionsBoundary=None, suppressTemplateIndentation=None):\n super().__init__(scope, id, description=description, env=env, stackName=stackName, tags=tags, notificationArns=notificationArns, synthesizer=synthesizer, terminationProtection=terminationProtection, analyticsReporting=analyticsReporting, crossRegionReferences=crossRegionReferences, permissionsBoundary=permissionsBoundary, suppressTemplateIndentation=suppressTemplateIndentation)\n user = User(self, \"rUser\")\n user.add_to_policy(\n PolicyStatement(\n actions=[\"s3:PutObject\"],\n resources=[\"arn:aws:s3:::bucket_name/*\"]\n ))\n # Enable adding suppressions to child constructs\n NagSuppressions.add_resource_suppressions(user, [NagPackSuppression(\n id=\"AwsSolutions-IAM5\",\n reason=\"lorem ipsum\",\n applies_to=[\"Resource::arn:aws:s3:::bucket_name/*\"]\n )\n ], True)","version":"2"},"csharp":{"source":"using Amazon.CDK.AWS.IAM;\nusing Amazon.CDK;\nusing Constructs;\nusing Cdklabs.CdkNag;\n\nclass CdkTestStack : Stack\n{\n public CdkTestStack(Construct scope, string id, StackProps? props=null) : base(scope, id, props)\n {\n var user = new User(this, \"rUser\");\n user.AddToPolicy(\n new PolicyStatement(new PolicyStatementProps {\n Actions = new [] { \"s3:PutObject\" },\n Resources = new [] { \"arn:aws:s3:::bucket_name/*\" }\n }));\n // Enable adding suppressions to child constructs\n NagSuppressions.AddResourceSuppressions(user, new [] { new NagPackSuppression {\n Id = \"AwsSolutions-IAM5\",\n Reason = \"lorem ipsum\",\n AppliesTo = new [] { \"Resource::arn:aws:s3:::bucket_name/*\" }\n } }, true);\n }\n}","version":"1"},"java":{"source":"import software.amazon.awscdk.services.iam.User;\nimport software.amazon.awscdk.services.iam.PolicyStatement;\nimport software.amazon.awscdk.Stack;\nimport software.amazon.awscdk.StackProps;\nimport software.constructs.Construct;\nimport io.github.cdklabs.cdknag.NagSuppressions;\n\n\npublic class CdkTestStack extends Stack {\n public CdkTestStack(Construct scope, String id) {\n this(scope, id, null);\n }\n\n public CdkTestStack(Construct scope, String id, StackProps props) {\n super(scope, id, props);\n User user = new User(this, \"rUser\");\n user.addToPolicy(\n PolicyStatement.Builder.create()\n .actions(List.of(\"s3:PutObject\"))\n .resources(List.of(\"arn:aws:s3:::bucket_name/*\"))\n .build());\n // Enable adding suppressions to child constructs\n NagSuppressions.addResourceSuppressions(user, List.of(NagPackSuppression.builder()\n .id(\"AwsSolutions-IAM5\")\n .reason(\"lorem ipsum\")\n .appliesTo(List.of(\"Resource::arn:aws:s3:::bucket_name/*\"))\n .build()), true);\n }\n}","version":"1"},"go":{"source":"import \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/aws/constructs-go/constructs\"\nimport \"github.com/cdklabs/cdk-nag-go/cdknag\"\n\n\ntype CdkTestStack struct {\n\tStack\n}\n\nfunc NewCdkTestStack(scope Construct, id *string, props StackProps) *CdkTestStack {\n\tthis := &CdkTestStack{}\n\tnewStack_Override(this, scope, id, props)\n\tuser := awscdk.NewUser(this, jsii.String(\"rUser\"))\n\tuser.AddToPolicy(\n\tawscdk.NewPolicyStatement(&PolicyStatementProps{\n\t\tActions: []*string{\n\t\t\tjsii.String(\"s3:PutObject\"),\n\t\t},\n\t\tResources: []*string{\n\t\t\tjsii.String(\"arn:aws:s3:::bucket_name/*\"),\n\t\t},\n\t}))\n\t// Enable adding suppressions to child constructs\n\tcdknag.NagSuppressions_AddResourceSuppressions(user, []NagPackSuppression{\n\t\t&NagPackSuppression{\n\t\t\tId: jsii.String(\"AwsSolutions-IAM5\"),\n\t\t\tReason: jsii.String(\"lorem ipsum\"),\n\t\t\tAppliesTo: []nagPackSuppressionAppliesTo{\n\t\t\t\tjsii.String(\"Resource::arn:aws:s3:::bucket_name/*\"),\n\t\t\t},\n\t\t},\n\t}, jsii.Boolean(true))\n\treturn this\n}","version":"1"},"$":{"source":"import { User, PolicyStatement } from 'aws-cdk-lib/aws-iam';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport { NagSuppressions } from 'cdk-nag';\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n const user = new User(this, 'rUser');\n user.addToPolicy(\n new PolicyStatement({\n actions: ['s3:PutObject'],\n resources: ['arn:aws:s3:::bucket_name/*'],\n })\n );\n // Enable adding suppressions to child constructs\n NagSuppressions.addResourceSuppressions(\n user,\n [\n {\n id: 'AwsSolutions-IAM5',\n reason: 'lorem ipsum',\n appliesTo: ['Resource::arn:aws:s3:::bucket_name/*'], // optional\n },\n ],\n true\n );\n }\n}","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-nag"},"field":{"field":"markdown","line":118}},"didCompile":false,"fqnsReferenced":["aws-cdk-lib.Stack","aws-cdk-lib.StackProps","aws-cdk-lib.aws_iam.PolicyStatement","aws-cdk-lib.aws_iam.PolicyStatementProps","aws-cdk-lib.aws_iam.User","aws-cdk-lib.aws_iam.User#addToPolicy","cdk-nag.NagSuppressions#addResourceSuppressions","constructs.Construct"],"fullSource":"// Hoisted imports begin after !show marker below\n/// !show\nimport { User, PolicyStatement } from 'aws-cdk-lib/aws-iam';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport { NagSuppressions } from 'cdk-nag';\n/// !hide\n// Hoisted imports ended before !hide marker above\n// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport {\n Stack,\n} from 'aws-cdk-lib';\n\nclass Fixture extends Stack {\n constructor(scope: Construct, id: string) {\n super(scope, id);\n\n // Code snippet begins after !show marker below\n/// !show\n\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n const user = new User(this, 'rUser');\n user.addToPolicy(\n new PolicyStatement({\n actions: ['s3:PutObject'],\n resources: ['arn:aws:s3:::bucket_name/*'],\n })\n );\n // Enable adding suppressions to child constructs\n NagSuppressions.addResourceSuppressions(\n user,\n [\n {\n id: 'AwsSolutions-IAM5',\n reason: 'lorem ipsum',\n appliesTo: ['Resource::arn:aws:s3:::bucket_name/*'], // optional\n },\n ],\n true\n );\n }\n}\n/// !hide\n// Code snippet ended before !hide marker above\n }\n}","syntaxKindCounter":{"11":10,"58":1,"80":29,"95":1,"108":1,"110":1,"112":1,"154":1,"170":3,"177":1,"184":2,"210":4,"211":2,"212":2,"214":3,"215":2,"234":1,"242":1,"244":1,"245":3,"261":1,"262":1,"264":1,"273":4,"274":4,"276":4,"277":6,"299":1,"304":5,"308":1},"fqnsFingerprint":"b190224dcfbd90d8ebdbca724b2e99996807d2b1f4e56bcee340961a9836abf9"},"e82412db89f12a52aad99b44d8355a24df2b8cc2619055027981db90ef777d1b":{"translations":{"python":{"source":"from aws_cdk import App, Aspects\nfrom ...lib.cdk_test_stack import CdkTestStack\nfrom cdk_nag import AwsSolutionsChecks, NagSuppressions\n\n\napp = App()\nstack = CdkTestStack(app, \"CdkNagDemo\")\nAspects.of(app).add(AwsSolutionsChecks())\nNagSuppressions.add_stack_suppressions(stack, [id=\"AwsSolutions-EC23\", reason=\"lorem ipsum\"\n])","version":"2"},"csharp":{"source":"using Amazon.CDK;\nusing Lib.Cdk.Test.Stack;\nusing Cdklabs.CdkNag;\n\n\nvar app = new App();\nvar stack = new CdkTestStack(app, \"CdkNagDemo\");\nAspects.Of(app).Add(new AwsSolutionsChecks());\nNagSuppressions.AddStackSuppressions(stack, new [] { new NagPackSuppression { Id = \"AwsSolutions-EC23\", Reason = \"lorem ipsum\" } });","version":"1"},"java":{"source":"import software.amazon.awscdk.App;\nimport software.amazon.awscdk.Aspects;\nimport lib.cdk.test.stack.CdkTestStack;\nimport io.github.cdklabs.cdknag.AwsSolutionsChecks;\nimport io.github.cdklabs.cdknag.NagSuppressions;\n\n\nApp app = new App();\nObject stack = new CdkTestStack(app, \"CdkNagDemo\");\nAspects.of(app).add(new AwsSolutionsChecks());\nNagSuppressions.addStackSuppressions(stack, List.of(NagPackSuppression.builder().id(\"AwsSolutions-EC23\").reason(\"lorem ipsum\").build()));","version":"1"},"go":{"source":"import \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/aws-samples/dummy/lib/cdkteststack\"\nimport \"github.com/cdklabs/cdk-nag-go/cdknag\"\n\n\napp := awscdk.NewApp()\nstack := libcdkteststack.NewCdkTestStack(app, jsii.String(\"CdkNagDemo\"))\nawscdk.Aspects_Of(app).Add(cdknag.NewAwsSolutionsChecks())\ncdknag.NagSuppressions_AddStackSuppressions(stack, []NagPackSuppression{\n\t&NagPackSuppression{\n\t\tId: jsii.String(\"AwsSolutions-EC23\"),\n\t\tReason: jsii.String(\"lorem ipsum\"),\n\t},\n})","version":"1"},"$":{"source":"import { App, Aspects } from 'aws-cdk-lib';\nimport { CdkTestStack } from '../lib/cdk-test-stack';\nimport { AwsSolutionsChecks, NagSuppressions } from 'cdk-nag';\n\nconst app = new App();\nconst stack = new CdkTestStack(app, 'CdkNagDemo');\nAspects.of(app).add(new AwsSolutionsChecks());\nNagSuppressions.addStackSuppressions(stack, [\n { id: 'AwsSolutions-EC23', reason: 'lorem ipsum' },\n]);","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-nag"},"field":{"field":"markdown","line":155}},"didCompile":false,"fqnsReferenced":["aws-cdk-lib.App","aws-cdk-lib.Aspects#add","aws-cdk-lib.Aspects#of","aws-cdk-lib.IAspect","aws-cdk-lib.Stack","cdk-nag.AwsSolutionsChecks","cdk-nag.NagSuppressions#addStackSuppressions","constructs.IConstruct"],"fullSource":"// Hoisted imports begin after !show marker below\n/// !show\nimport { App, Aspects } from 'aws-cdk-lib';\nimport { CdkTestStack } from '../lib/cdk-test-stack';\nimport { AwsSolutionsChecks, NagSuppressions } from 'cdk-nag';\n/// !hide\n// Hoisted imports ended before !hide marker above\n// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport {\n Stack,\n} from 'aws-cdk-lib';\n\nclass Fixture extends Stack {\n constructor(scope: Construct, id: string) {\n super(scope, id);\n\n // Code snippet begins after !show marker below\n/// !show\n\n\nconst app = new App();\nconst stack = new CdkTestStack(app, 'CdkNagDemo');\nAspects.of(app).add(new AwsSolutionsChecks());\nNagSuppressions.addStackSuppressions(stack, [\n { id: 'AwsSolutions-EC23', reason: 'lorem ipsum' },\n]);\n/// !hide\n// Code snippet ended before !hide marker above\n }\n}","syntaxKindCounter":{"11":6,"80":20,"210":1,"211":1,"212":3,"214":3,"215":3,"244":2,"245":2,"261":2,"262":2,"273":3,"274":3,"276":3,"277":5,"304":2,"308":1},"fqnsFingerprint":"c03eb519ce637ad0c056cf4dc2d23653831dddc2dc9e14b2eb1102f2539e22dc"},"64922e14e2284b4aa083fa7eee819456b82e241853970e72064eaf3529becd1a":{"translations":{"python":{"source":"from aws_cdk.aws_s3 import Bucket\nfrom aws_cdk.aws_s3_deployment import BucketDeployment\nfrom aws_cdk import Stack, StackProps\nfrom constructs import Construct\nfrom cdk_nag import NagSuppressions\n\n\nclass CdkTestStack(Stack):\n def __init__(self, scope, id, *, description=None, env=None, stackName=None, tags=None, notificationArns=None, synthesizer=None, terminationProtection=None, analyticsReporting=None, crossRegionReferences=None, permissionsBoundary=None, suppressTemplateIndentation=None):\n super().__init__(scope, id, description=description, env=env, stackName=stackName, tags=tags, notificationArns=notificationArns, synthesizer=synthesizer, terminationProtection=terminationProtection, analyticsReporting=analyticsReporting, crossRegionReferences=crossRegionReferences, permissionsBoundary=permissionsBoundary, suppressTemplateIndentation=suppressTemplateIndentation)\n BucketDeployment(self, \"rDeployment\",\n sources=[],\n destination_bucket=Bucket.from_bucket_name(self, \"rBucket\", \"foo\")\n )\n NagSuppressions.add_resource_suppressions_by_path(self, \"/StackName/Custom::CDKBucketDeployment8675309/ServiceRole/Resource\", [id=\"AwsSolutions-IAM4\", reason=\"at least 10 characters\"])","version":"2"},"csharp":{"source":"using Amazon.CDK.AWS.S3;\nusing Amazon.CDK.AWS.S3.Deployment;\nusing Amazon.CDK;\nusing Constructs;\nusing Cdklabs.CdkNag;\n\nclass CdkTestStack : Stack\n{\n public CdkTestStack(Construct scope, string id, StackProps? props=null) : base(scope, id, props)\n {\n new BucketDeployment(this, \"rDeployment\", new BucketDeploymentProps {\n Sources = new [] { },\n DestinationBucket = Bucket.FromBucketName(this, \"rBucket\", \"foo\")\n });\n NagSuppressions.AddResourceSuppressionsByPath(this, \"/StackName/Custom::CDKBucketDeployment8675309/ServiceRole/Resource\", new [] { new NagPackSuppression { Id = \"AwsSolutions-IAM4\", Reason = \"at least 10 characters\" } });\n }\n}","version":"1"},"java":{"source":"import software.amazon.awscdk.services.s3.Bucket;\nimport software.amazon.awscdk.services.s3.deployment.BucketDeployment;\nimport software.amazon.awscdk.Stack;\nimport software.amazon.awscdk.StackProps;\nimport software.constructs.Construct;\nimport io.github.cdklabs.cdknag.NagSuppressions;\n\n\npublic class CdkTestStack extends Stack {\n public CdkTestStack(Construct scope, String id) {\n this(scope, id, null);\n }\n\n public CdkTestStack(Construct scope, String id, StackProps props) {\n super(scope, id, props);\n BucketDeployment.Builder.create(this, \"rDeployment\")\n .sources(List.of())\n .destinationBucket(Bucket.fromBucketName(this, \"rBucket\", \"foo\"))\n .build();\n NagSuppressions.addResourceSuppressionsByPath(this, \"/StackName/Custom::CDKBucketDeployment8675309/ServiceRole/Resource\", List.of(NagPackSuppression.builder().id(\"AwsSolutions-IAM4\").reason(\"at least 10 characters\").build()));\n }\n}","version":"1"},"go":{"source":"import \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/aws/constructs-go/constructs\"\nimport \"github.com/cdklabs/cdk-nag-go/cdknag\"\n\n\ntype CdkTestStack struct {\n\tStack\n}\n\nfunc NewCdkTestStack(scope Construct, id *string, props StackProps) *CdkTestStack {\n\tthis := &CdkTestStack{}\n\tnewStack_Override(this, scope, id, props)\n\tawscdk.NewBucketDeployment(this, jsii.String(\"rDeployment\"), &BucketDeploymentProps{\n\t\tSources: []ISource{\n\t\t},\n\t\tDestinationBucket: awscdk.Bucket_FromBucketName(this, jsii.String(\"rBucket\"), jsii.String(\"foo\")),\n\t})\n\tcdknag.NagSuppressions_AddResourceSuppressionsByPath(this, jsii.String(\"/StackName/Custom::CDKBucketDeployment8675309/ServiceRole/Resource\"), []NagPackSuppression{\n\t\t&NagPackSuppression{\n\t\t\tId: jsii.String(\"AwsSolutions-IAM4\"),\n\t\t\tReason: jsii.String(\"at least 10 characters\"),\n\t\t},\n\t})\n\treturn this\n}","version":"1"},"$":{"source":"import { Bucket } from 'aws-cdk-lib/aws-s3';\nimport { BucketDeployment } from 'aws-cdk-lib/aws-s3-deployment';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport { NagSuppressions } from 'cdk-nag';\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n new BucketDeployment(this, 'rDeployment', {\n sources: [],\n destinationBucket: Bucket.fromBucketName(this, 'rBucket', 'foo'),\n });\n NagSuppressions.addResourceSuppressionsByPath(\n this,\n '/StackName/Custom::CDKBucketDeployment8675309/ServiceRole/Resource',\n [{ id: 'AwsSolutions-IAM4', reason: 'at least 10 characters' }]\n );\n }\n}","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-nag"},"field":{"field":"markdown","line":179}},"didCompile":false,"fqnsReferenced":["aws-cdk-lib.Stack","aws-cdk-lib.StackProps","aws-cdk-lib.aws_s3.Bucket#fromBucketName","aws-cdk-lib.aws_s3.IBucket","aws-cdk-lib.aws_s3_deployment.BucketDeployment","aws-cdk-lib.aws_s3_deployment.BucketDeploymentProps","cdk-nag.NagSuppressions#addResourceSuppressionsByPath","constructs.Construct"],"fullSource":"// Hoisted imports begin after !show marker below\n/// !show\nimport { Bucket } from 'aws-cdk-lib/aws-s3';\nimport { BucketDeployment } from 'aws-cdk-lib/aws-s3-deployment';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport { NagSuppressions } from 'cdk-nag';\n/// !hide\n// Hoisted imports ended before !hide marker above\n// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport {\n Stack,\n} from 'aws-cdk-lib';\n\nclass Fixture extends Stack {\n constructor(scope: Construct, id: string) {\n super(scope, id);\n\n // Code snippet begins after !show marker below\n/// !show\n\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n new BucketDeployment(this, 'rDeployment', {\n sources: [],\n destinationBucket: Bucket.fromBucketName(this, 'rBucket', 'foo'),\n });\n NagSuppressions.addResourceSuppressionsByPath(\n this,\n '/StackName/Custom::CDKBucketDeployment8675309/ServiceRole/Resource',\n [{ id: 'AwsSolutions-IAM4', reason: 'at least 10 characters' }]\n );\n }\n}\n/// !hide\n// Code snippet ended before !hide marker above\n }\n}","syntaxKindCounter":{"11":11,"58":1,"80":25,"95":1,"108":1,"110":3,"154":1,"170":3,"177":1,"184":2,"210":2,"211":2,"212":2,"214":3,"215":1,"234":1,"242":1,"245":3,"264":1,"273":5,"274":5,"276":5,"277":6,"299":1,"304":4,"308":1},"fqnsFingerprint":"1786dd9207ecbfebca29630dbe09e8a5983e892db80a829e3ea08d739910f254"},"4a861384db81b11edeaf8be43f48167e5ae71277a3b3ca48c0a0aa63a7735e49":{"translations":{"python":{"source":"from cdk_nag import NagPackSuppression, NagPackSuppression, NagPackSuppression, RegexAppliesTo\nfrom aws_cdk.aws_iam import User\nfrom aws_cdk import Stack, StackProps\nfrom constructs import Construct\nfrom cdk_nag import NagSuppressions\n\n\nclass CdkTestStack(Stack):\n def __init__(self, scope, id, *, description=None, env=None, stackName=None, tags=None, notificationArns=None, synthesizer=None, terminationProtection=None, analyticsReporting=None, crossRegionReferences=None, permissionsBoundary=None, suppressTemplateIndentation=None):\n super().__init__(scope, id, description=description, env=env, stackName=stackName, tags=tags, notificationArns=notificationArns, synthesizer=synthesizer, terminationProtection=terminationProtection, analyticsReporting=analyticsReporting, crossRegionReferences=crossRegionReferences, permissionsBoundary=permissionsBoundary, suppressTemplateIndentation=suppressTemplateIndentation)\n first_user = User(self, \"rFirstUser\")\n first_user.add_to_policy(\n PolicyStatement(\n actions=[\"s3:*\"],\n resources=[\"*\"]\n ))\n second_user = User(self, \"rSecondUser\")\n second_user.add_to_policy(\n PolicyStatement(\n actions=[\"s3:*\"],\n resources=[\"*\"]\n ))\n third_user = User(self, \"rSecondUser\")\n third_user.add_to_policy(\n PolicyStatement(\n actions=[\"sqs:CreateQueue\"],\n resources=[f\"arn:aws:sqs:{this.region}:{this.account}:*\"]\n ))\n NagSuppressions.add_resource_suppressions(first_user, [NagPackSuppression(\n id=\"AwsSolutions-IAM5\",\n reason=\"Only suppress AwsSolutions-IAM5 's3:*' finding on First User.\",\n applies_to=[\"Action::s3:*\"]\n )\n ], True)\n NagSuppressions.add_resource_suppressions(second_user, [NagPackSuppression(\n id=\"AwsSolutions-IAM5\",\n reason=\"Suppress all AwsSolutions-IAM5 findings on Second User.\"\n )\n ], True)\n NagSuppressions.add_resource_suppressions(third_user, [NagPackSuppression(\n id=\"AwsSolutions-IAM5\",\n reason=\"Suppress AwsSolutions-IAM5 on the SQS resource.\",\n applies_to=[RegexAppliesTo(\n regex=\"/^Resource::arn:aws:sqs:(.*):\\\\*$/g\"\n )\n ]\n )\n ], True)","version":"2"},"csharp":{"source":"using Amazon.CDK.AWS.IAM;\nusing Amazon.CDK;\nusing Constructs;\nusing Cdklabs.CdkNag;\n\nclass CdkTestStack : Stack\n{\n public CdkTestStack(Construct scope, string id, StackProps? props=null) : base(scope, id, props)\n {\n var firstUser = new User(this, \"rFirstUser\");\n firstUser.AddToPolicy(\n new PolicyStatement(new Struct {\n Actions = new [] { \"s3:*\" },\n Resources = new [] { \"*\" }\n }));\n var secondUser = new User(this, \"rSecondUser\");\n secondUser.AddToPolicy(\n new PolicyStatement(new Struct {\n Actions = new [] { \"s3:*\" },\n Resources = new [] { \"*\" }\n }));\n var thirdUser = new User(this, \"rSecondUser\");\n thirdUser.AddToPolicy(\n new PolicyStatement(new Struct {\n Actions = new [] { \"sqs:CreateQueue\" },\n Resources = new [] { $\"arn:aws:sqs:{this.region}:{this.account}:*\" }\n }));\n NagSuppressions.AddResourceSuppressions(firstUser, new [] { new NagPackSuppression {\n Id = \"AwsSolutions-IAM5\",\n Reason = \"Only suppress AwsSolutions-IAM5 's3:*' finding on First User.\",\n AppliesTo = new [] { \"Action::s3:*\" }\n } }, true);\n NagSuppressions.AddResourceSuppressions(secondUser, new [] { new NagPackSuppression {\n Id = \"AwsSolutions-IAM5\",\n Reason = \"Suppress all AwsSolutions-IAM5 findings on Second User.\"\n } }, true);\n NagSuppressions.AddResourceSuppressions(thirdUser, new [] { new NagPackSuppression {\n Id = \"AwsSolutions-IAM5\",\n Reason = \"Suppress AwsSolutions-IAM5 on the SQS resource.\",\n AppliesTo = new [] { new RegexAppliesTo {\n Regex = \"/^Resource::arn:aws:sqs:(.*):\\\\*$/g\"\n } }\n } }, true);\n }\n}","version":"1"},"java":{"source":"import software.amazon.awscdk.services.iam.User;\nimport software.amazon.awscdk.Stack;\nimport software.amazon.awscdk.StackProps;\nimport software.constructs.Construct;\nimport io.github.cdklabs.cdknag.NagSuppressions;\n\n\npublic class CdkTestStack extends Stack {\n public CdkTestStack(Construct scope, String id) {\n this(scope, id, null);\n }\n\n public CdkTestStack(Construct scope, String id, StackProps props) {\n super(scope, id, props);\n User firstUser = new User(this, \"rFirstUser\");\n firstUser.addToPolicy(\n PolicyStatement.Builder.create()\n .actions(List.of(\"s3:*\"))\n .resources(List.of(\"*\"))\n .build());\n User secondUser = new User(this, \"rSecondUser\");\n secondUser.addToPolicy(\n PolicyStatement.Builder.create()\n .actions(List.of(\"s3:*\"))\n .resources(List.of(\"*\"))\n .build());\n User thirdUser = new User(this, \"rSecondUser\");\n thirdUser.addToPolicy(\n PolicyStatement.Builder.create()\n .actions(List.of(\"sqs:CreateQueue\"))\n .resources(List.of(String.format(\"arn:aws:sqs:%s:%s:*\", this.region, this.account)))\n .build());\n NagSuppressions.addResourceSuppressions(firstUser, List.of(NagPackSuppression.builder()\n .id(\"AwsSolutions-IAM5\")\n .reason(\"Only suppress AwsSolutions-IAM5 's3:*' finding on First User.\")\n .appliesTo(List.of(\"Action::s3:*\"))\n .build()), true);\n NagSuppressions.addResourceSuppressions(secondUser, List.of(NagPackSuppression.builder()\n .id(\"AwsSolutions-IAM5\")\n .reason(\"Suppress all AwsSolutions-IAM5 findings on Second User.\")\n .build()), true);\n NagSuppressions.addResourceSuppressions(thirdUser, List.of(NagPackSuppression.builder()\n .id(\"AwsSolutions-IAM5\")\n .reason(\"Suppress AwsSolutions-IAM5 on the SQS resource.\")\n .appliesTo(List.of(RegexAppliesTo.builder()\n .regex(\"/^Resource::arn:aws:sqs:(.*):\\\\*$/g\")\n .build()))\n .build()), true);\n }\n}","version":"1"},"go":{"source":"import \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/aws/constructs-go/constructs\"\nimport \"github.com/cdklabs/cdk-nag-go/cdknag\"\n\n\ntype CdkTestStack struct {\n\tStack\n}\n\nfunc NewCdkTestStack(scope Construct, id *string, props StackProps) *CdkTestStack {\n\tthis := &CdkTestStack{}\n\tnewStack_Override(this, scope, id, props)\n\tfirstUser := awscdk.NewUser(this, jsii.String(\"rFirstUser\"))\n\tfirstUser.AddToPolicy(\n\tNewPolicyStatement(map[string][]*string{\n\t\t\"actions\": []*string{\n\t\t\tjsii.String(\"s3:*\"),\n\t\t},\n\t\t\"resources\": []*string{\n\t\t\tjsii.String(\"*\"),\n\t\t},\n\t}))\n\tsecondUser := awscdk.NewUser(this, jsii.String(\"rSecondUser\"))\n\tsecondUser.AddToPolicy(\n\tNewPolicyStatement(map[string][]*string{\n\t\t\"actions\": []*string{\n\t\t\tjsii.String(\"s3:*\"),\n\t\t},\n\t\t\"resources\": []*string{\n\t\t\tjsii.String(\"*\"),\n\t\t},\n\t}))\n\tthirdUser := awscdk.NewUser(this, jsii.String(\"rSecondUser\"))\n\tthirdUser.AddToPolicy(\n\tNewPolicyStatement(map[string][]*string{\n\t\t\"actions\": []*string{\n\t\t\tjsii.String(\"sqs:CreateQueue\"),\n\t\t},\n\t\t\"resources\": []*string{\n\t\t\tfmt.Sprintf(\"arn:aws:sqs:%v:%v:*\", this.region, this.account),\n\t\t},\n\t}))\n\tcdknag.NagSuppressions_AddResourceSuppressions(firstUser, []NagPackSuppression{\n\t\t&NagPackSuppression{\n\t\t\tId: jsii.String(\"AwsSolutions-IAM5\"),\n\t\t\tReason: jsii.String(\"Only suppress AwsSolutions-IAM5 's3:*' finding on First User.\"),\n\t\t\tAppliesTo: []nagPackSuppressionAppliesTo{\n\t\t\t\tjsii.String(\"Action::s3:*\"),\n\t\t\t},\n\t\t},\n\t}, jsii.Boolean(true))\n\tcdknag.NagSuppressions_AddResourceSuppressions(secondUser, []NagPackSuppression{\n\t\t&NagPackSuppression{\n\t\t\tId: jsii.String(\"AwsSolutions-IAM5\"),\n\t\t\tReason: jsii.String(\"Suppress all AwsSolutions-IAM5 findings on Second User.\"),\n\t\t},\n\t}, jsii.Boolean(true))\n\tcdknag.NagSuppressions_AddResourceSuppressions(thirdUser, []NagPackSuppression{\n\t\t&NagPackSuppression{\n\t\t\tId: jsii.String(\"AwsSolutions-IAM5\"),\n\t\t\tReason: jsii.String(\"Suppress AwsSolutions-IAM5 on the SQS resource.\"),\n\t\t\tAppliesTo: []*nagPackSuppressionAppliesTo{\n\t\t\t\t&RegexAppliesTo{\n\t\t\t\t\tRegex: jsii.String(\"/^Resource::arn:aws:sqs:(.*):\\\\*$/g\"),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}, jsii.Boolean(true))\n\treturn this\n}","version":"1"},"$":{"source":"import { User } from 'aws-cdk-lib/aws-iam';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport { NagSuppressions } from 'cdk-nag';\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n const firstUser = new User(this, 'rFirstUser');\n firstUser.addToPolicy(\n new PolicyStatement({\n actions: ['s3:*'],\n resources: ['*'],\n })\n );\n const secondUser = new User(this, 'rSecondUser');\n secondUser.addToPolicy(\n new PolicyStatement({\n actions: ['s3:*'],\n resources: ['*'],\n })\n );\n const thirdUser = new User(this, 'rSecondUser');\n thirdUser.addToPolicy(\n new PolicyStatement({\n actions: ['sqs:CreateQueue'],\n resources: [`arn:aws:sqs:${this.region}:${this.account}:*`],\n })\n );\n NagSuppressions.addResourceSuppressions(\n firstUser,\n [\n {\n id: 'AwsSolutions-IAM5',\n reason:\n \"Only suppress AwsSolutions-IAM5 's3:*' finding on First User.\",\n appliesTo: ['Action::s3:*'],\n },\n ],\n true\n );\n NagSuppressions.addResourceSuppressions(\n secondUser,\n [\n {\n id: 'AwsSolutions-IAM5',\n reason: 'Suppress all AwsSolutions-IAM5 findings on Second User.',\n },\n ],\n true\n );\n NagSuppressions.addResourceSuppressions(\n thirdUser,\n [\n {\n id: 'AwsSolutions-IAM5',\n reason: 'Suppress AwsSolutions-IAM5 on the SQS resource.',\n appliesTo: [\n {\n regex: '/^Resource::arn:aws:sqs:(.*):\\\\*$/g',\n },\n ],\n },\n ],\n true\n );\n }\n}","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-nag"},"field":{"field":"markdown","line":218}},"didCompile":false,"fqnsReferenced":["aws-cdk-lib.Stack","aws-cdk-lib.StackProps","aws-cdk-lib.aws_iam.PolicyStatement","aws-cdk-lib.aws_iam.User","aws-cdk-lib.aws_iam.User#addToPolicy","cdk-nag.NagSuppressions#addResourceSuppressions","constructs.Construct"],"fullSource":"// Hoisted imports begin after !show marker below\n/// !show\nimport { User } from 'aws-cdk-lib/aws-iam';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport { NagSuppressions } from 'cdk-nag';\n/// !hide\n// Hoisted imports ended before !hide marker above\n// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport {\n Stack,\n} from 'aws-cdk-lib';\n\nclass Fixture extends Stack {\n constructor(scope: Construct, id: string) {\n super(scope, id);\n\n // Code snippet begins after !show marker below\n/// !show\n\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n const firstUser = new User(this, 'rFirstUser');\n firstUser.addToPolicy(\n new PolicyStatement({\n actions: ['s3:*'],\n resources: ['*'],\n })\n );\n const secondUser = new User(this, 'rSecondUser');\n secondUser.addToPolicy(\n new PolicyStatement({\n actions: ['s3:*'],\n resources: ['*'],\n })\n );\n const thirdUser = new User(this, 'rSecondUser');\n thirdUser.addToPolicy(\n new PolicyStatement({\n actions: ['sqs:CreateQueue'],\n resources: [`arn:aws:sqs:${this.region}:${this.account}:*`],\n })\n );\n NagSuppressions.addResourceSuppressions(\n firstUser,\n [\n {\n id: 'AwsSolutions-IAM5',\n reason:\n \"Only suppress AwsSolutions-IAM5 's3:*' finding on First User.\",\n appliesTo: ['Action::s3:*'],\n },\n ],\n true\n );\n NagSuppressions.addResourceSuppressions(\n secondUser,\n [\n {\n id: 'AwsSolutions-IAM5',\n reason: 'Suppress all AwsSolutions-IAM5 findings on Second User.',\n },\n ],\n true\n );\n NagSuppressions.addResourceSuppressions(\n thirdUser,\n [\n {\n id: 'AwsSolutions-IAM5',\n reason: 'Suppress AwsSolutions-IAM5 on the SQS resource.',\n appliesTo: [\n {\n regex: '/^Resource::arn:aws:sqs:(.*):\\\\*$/g',\n },\n ],\n },\n ],\n true\n );\n }\n}\n/// !hide\n// Code snippet ended before !hide marker above\n }\n}","syntaxKindCounter":{"11":20,"16":1,"17":1,"18":1,"58":1,"80":56,"95":1,"108":1,"110":5,"112":3,"154":1,"170":3,"177":1,"184":2,"210":11,"211":7,"212":8,"214":7,"215":6,"229":1,"234":1,"240":2,"242":1,"244":3,"245":7,"261":3,"262":3,"264":1,"273":4,"274":4,"276":4,"277":5,"299":1,"304":15,"308":1},"fqnsFingerprint":"e3699ab2f24ccdfd4fa11c43a4321dfbde3136ac184d1ccd9caa567f96077595"},"de934588870e1d220d51f28ccc9e59c8968d6030d1b6f02e1566fae722f78dd0":{"translations":{"python":{"source":"from aws_cdk.aws_ec2 import SecurityGroup, Vpc, Peer, Port\nfrom aws_cdk import Stack, StackProps\nfrom constructs import Construct\nfrom cdk_nag import NagSuppressions\n\n\nclass CdkTestStack(Stack):\n def __init__(self, scope, id, *, description=None, env=None, stackName=None, tags=None, notificationArns=None, synthesizer=None, terminationProtection=None, analyticsReporting=None, crossRegionReferences=None, permissionsBoundary=None, suppressTemplateIndentation=None):\n super().__init__(scope, id, description=description, env=env, stackName=stackName, tags=tags, notificationArns=notificationArns, synthesizer=synthesizer, terminationProtection=terminationProtection, analyticsReporting=analyticsReporting, crossRegionReferences=crossRegionReferences, permissionsBoundary=permissionsBoundary, suppressTemplateIndentation=suppressTemplateIndentation)\n test = SecurityGroup(self, \"test\",\n vpc=Vpc(self, \"vpc\")\n )\n test.add_ingress_rule(Peer.any_ipv4(), Port.all_traffic())\n NagSuppressions.add_resource_suppressions(test, [id=\"CdkNagValidationFailure\", reason=\"lorem ipsum\"\n ])","version":"2"},"csharp":{"source":"using Amazon.CDK.AWS.EC2;\nusing Amazon.CDK;\nusing Constructs;\nusing Cdklabs.CdkNag;\n\nclass CdkTestStack : Stack\n{\n public CdkTestStack(Construct scope, string id, StackProps? props=null) : base(scope, id, props)\n {\n var test = new SecurityGroup(this, \"test\", new SecurityGroupProps {\n Vpc = new Vpc(this, \"vpc\")\n });\n test.AddIngressRule(Peer.AnyIpv4(), Port.AllTraffic());\n NagSuppressions.AddResourceSuppressions(test, new [] { new NagPackSuppression { Id = \"CdkNagValidationFailure\", Reason = \"lorem ipsum\" } });\n }\n}","version":"1"},"java":{"source":"import software.amazon.awscdk.services.ec2.SecurityGroup;\nimport software.amazon.awscdk.services.ec2.Vpc;\nimport software.amazon.awscdk.services.ec2.Peer;\nimport software.amazon.awscdk.services.ec2.Port;\nimport software.amazon.awscdk.Stack;\nimport software.amazon.awscdk.StackProps;\nimport software.constructs.Construct;\nimport io.github.cdklabs.cdknag.NagSuppressions;\n\n\npublic class CdkTestStack extends Stack {\n public CdkTestStack(Construct scope, String id) {\n this(scope, id, null);\n }\n\n public CdkTestStack(Construct scope, String id, StackProps props) {\n super(scope, id, props);\n SecurityGroup test = SecurityGroup.Builder.create(this, \"test\")\n .vpc(new Vpc(this, \"vpc\"))\n .build();\n test.addIngressRule(Peer.anyIpv4(), Port.allTraffic());\n NagSuppressions.addResourceSuppressions(test, List.of(NagPackSuppression.builder().id(\"CdkNagValidationFailure\").reason(\"lorem ipsum\").build()));\n }\n}","version":"1"},"go":{"source":"import \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/aws/constructs-go/constructs\"\nimport \"github.com/cdklabs/cdk-nag-go/cdknag\"\n\n\ntype CdkTestStack struct {\n\tStack\n}\n\nfunc NewCdkTestStack(scope Construct, id *string, props StackProps) *CdkTestStack {\n\tthis := &CdkTestStack{}\n\tnewStack_Override(this, scope, id, props)\n\ttest := awscdk.NewSecurityGroup(this, jsii.String(\"test\"), &SecurityGroupProps{\n\t\tVpc: awscdk.NewVpc(this, jsii.String(\"vpc\")),\n\t})\n\ttest.AddIngressRule(awscdk.Peer_AnyIpv4(), awscdk.Port_AllTraffic())\n\tcdknag.NagSuppressions_AddResourceSuppressions(test, []NagPackSuppression{\n\t\t&NagPackSuppression{\n\t\t\tId: jsii.String(\"CdkNagValidationFailure\"),\n\t\t\tReason: jsii.String(\"lorem ipsum\"),\n\t\t},\n\t})\n\treturn this\n}","version":"1"},"$":{"source":"import { SecurityGroup, Vpc, Peer, Port } from 'aws-cdk-lib/aws-ec2';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport { NagSuppressions } from 'cdk-nag';\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n const test = new SecurityGroup(this, 'test', {\n vpc: new Vpc(this, 'vpc'),\n });\n test.addIngressRule(Peer.anyIpv4(), Port.allTraffic());\n NagSuppressions.addResourceSuppressions(test, [\n { id: 'CdkNagValidationFailure', reason: 'lorem ipsum' },\n ]);\n }\n}","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-nag"},"field":{"field":"markdown","line":308}},"didCompile":false,"fqnsReferenced":["aws-cdk-lib.Stack","aws-cdk-lib.StackProps","aws-cdk-lib.aws_ec2.IPeer","aws-cdk-lib.aws_ec2.IVpc","aws-cdk-lib.aws_ec2.Peer#anyIpv4","aws-cdk-lib.aws_ec2.Port","aws-cdk-lib.aws_ec2.Port#allTraffic","aws-cdk-lib.aws_ec2.SecurityGroup","aws-cdk-lib.aws_ec2.SecurityGroup#addIngressRule","aws-cdk-lib.aws_ec2.SecurityGroupProps","aws-cdk-lib.aws_ec2.Vpc","cdk-nag.NagSuppressions#addResourceSuppressions","constructs.Construct"],"fullSource":"// Hoisted imports begin after !show marker below\n/// !show\nimport { SecurityGroup, Vpc, Peer, Port } from 'aws-cdk-lib/aws-ec2';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport { NagSuppressions } from 'cdk-nag';\n/// !hide\n// Hoisted imports ended before !hide marker above\n// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport {\n Stack,\n} from 'aws-cdk-lib';\n\nclass Fixture extends Stack {\n constructor(scope: Construct, id: string) {\n super(scope, id);\n\n // Code snippet begins after !show marker below\n/// !show\n\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n const test = new SecurityGroup(this, 'test', {\n vpc: new Vpc(this, 'vpc'),\n });\n test.addIngressRule(Peer.anyIpv4(), Port.allTraffic());\n NagSuppressions.addResourceSuppressions(test, [\n { id: 'CdkNagValidationFailure', reason: 'lorem ipsum' },\n ]);\n }\n}\n/// !hide\n// Code snippet ended before !hide marker above\n }\n}","syntaxKindCounter":{"11":8,"58":1,"80":33,"95":1,"108":1,"110":2,"154":1,"170":3,"177":1,"184":2,"210":1,"211":2,"212":4,"214":5,"215":2,"234":1,"242":1,"244":1,"245":3,"261":1,"262":1,"264":1,"273":4,"274":4,"276":4,"277":8,"299":1,"304":3,"308":1},"fqnsFingerprint":"71f63f3aaad6be7b8d05e515cfc275d5fc4888b413e66fc7031bb2307415c79d"},"f43e09137bfce2683e3435ede8cf619241f31fc7bc01ea16762c6d8d230f4df2":{"translations":{"python":{"source":"from aws_cdk.aws_ec2 import SecurityGroup, Vpc, Peer, Port\nfrom aws_cdk import Stack, StackProps\nfrom constructs import Construct\nfrom cdk_nag import NagSuppressions\n\n\nclass CdkTestStack(Stack):\n def __init__(self, scope, id, *, description=None, env=None, stackName=None, tags=None, notificationArns=None, synthesizer=None, terminationProtection=None, analyticsReporting=None, crossRegionReferences=None, permissionsBoundary=None, suppressTemplateIndentation=None):\n super().__init__(scope, id, description=description, env=env, stackName=stackName, tags=tags, notificationArns=notificationArns, synthesizer=synthesizer, terminationProtection=terminationProtection, analyticsReporting=analyticsReporting, crossRegionReferences=crossRegionReferences, permissionsBoundary=permissionsBoundary, suppressTemplateIndentation=suppressTemplateIndentation)\n test = SecurityGroup(self, \"test\",\n vpc=Vpc(self, \"vpc\")\n )\n test.add_ingress_rule(Peer.any_ipv4(), Port.all_traffic())\n NagSuppressions.add_resource_suppressions(test, [\n id=\"CdkNagValidationFailure\",\n reason=\"lorem ipsum\",\n applies_to=[\"AwsSolutions-L1\"]\n\n ])","version":"2"},"csharp":{"source":"using Amazon.CDK.AWS.EC2;\nusing Amazon.CDK;\nusing Constructs;\nusing Cdklabs.CdkNag;\n\nclass CdkTestStack : Stack\n{\n public CdkTestStack(Construct scope, string id, StackProps? props=null) : base(scope, id, props)\n {\n var test = new SecurityGroup(this, \"test\", new SecurityGroupProps {\n Vpc = new Vpc(this, \"vpc\")\n });\n test.AddIngressRule(Peer.AnyIpv4(), Port.AllTraffic());\n NagSuppressions.AddResourceSuppressions(test, new [] { new NagPackSuppression {\n Id = \"CdkNagValidationFailure\",\n Reason = \"lorem ipsum\",\n AppliesTo = new [] { \"AwsSolutions-L1\" }\n } });\n }\n}","version":"1"},"java":{"source":"import software.amazon.awscdk.services.ec2.SecurityGroup;\nimport software.amazon.awscdk.services.ec2.Vpc;\nimport software.amazon.awscdk.services.ec2.Peer;\nimport software.amazon.awscdk.services.ec2.Port;\nimport software.amazon.awscdk.Stack;\nimport software.amazon.awscdk.StackProps;\nimport software.constructs.Construct;\nimport io.github.cdklabs.cdknag.NagSuppressions;\n\n\npublic class CdkTestStack extends Stack {\n public CdkTestStack(Construct scope, String id) {\n this(scope, id, null);\n }\n\n public CdkTestStack(Construct scope, String id, StackProps props) {\n super(scope, id, props);\n SecurityGroup test = SecurityGroup.Builder.create(this, \"test\")\n .vpc(new Vpc(this, \"vpc\"))\n .build();\n test.addIngressRule(Peer.anyIpv4(), Port.allTraffic());\n NagSuppressions.addResourceSuppressions(test, List.of(NagPackSuppression.builder()\n .id(\"CdkNagValidationFailure\")\n .reason(\"lorem ipsum\")\n .appliesTo(List.of(\"AwsSolutions-L1\"))\n .build()));\n }\n}","version":"1"},"go":{"source":"import \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/aws/constructs-go/constructs\"\nimport \"github.com/cdklabs/cdk-nag-go/cdknag\"\n\n\ntype CdkTestStack struct {\n\tStack\n}\n\nfunc NewCdkTestStack(scope Construct, id *string, props StackProps) *CdkTestStack {\n\tthis := &CdkTestStack{}\n\tnewStack_Override(this, scope, id, props)\n\ttest := awscdk.NewSecurityGroup(this, jsii.String(\"test\"), &SecurityGroupProps{\n\t\tVpc: awscdk.NewVpc(this, jsii.String(\"vpc\")),\n\t})\n\ttest.AddIngressRule(awscdk.Peer_AnyIpv4(), awscdk.Port_AllTraffic())\n\tcdknag.NagSuppressions_AddResourceSuppressions(test, []NagPackSuppression{\n\t\t&NagPackSuppression{\n\t\t\tId: jsii.String(\"CdkNagValidationFailure\"),\n\t\t\tReason: jsii.String(\"lorem ipsum\"),\n\t\t\tAppliesTo: []nagPackSuppressionAppliesTo{\n\t\t\t\tjsii.String(\"AwsSolutions-L1\"),\n\t\t\t},\n\t\t},\n\t})\n\treturn this\n}","version":"1"},"$":{"source":"import { SecurityGroup, Vpc, Peer, Port } from 'aws-cdk-lib/aws-ec2';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport { NagSuppressions } from 'cdk-nag';\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n const test = new SecurityGroup(this, 'test', {\n vpc: new Vpc(this, 'vpc'),\n });\n test.addIngressRule(Peer.anyIpv4(), Port.allTraffic());\n NagSuppressions.addResourceSuppressions(test, [\n {\n id: 'CdkNagValidationFailure',\n reason: 'lorem ipsum',\n appliesTo: ['AwsSolutions-L1'],\n },\n ]);\n }\n}","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-nag"},"field":{"field":"markdown","line":334}},"didCompile":false,"fqnsReferenced":["aws-cdk-lib.Stack","aws-cdk-lib.StackProps","aws-cdk-lib.aws_ec2.IPeer","aws-cdk-lib.aws_ec2.IVpc","aws-cdk-lib.aws_ec2.Peer#anyIpv4","aws-cdk-lib.aws_ec2.Port","aws-cdk-lib.aws_ec2.Port#allTraffic","aws-cdk-lib.aws_ec2.SecurityGroup","aws-cdk-lib.aws_ec2.SecurityGroup#addIngressRule","aws-cdk-lib.aws_ec2.SecurityGroupProps","aws-cdk-lib.aws_ec2.Vpc","cdk-nag.NagSuppressions#addResourceSuppressions","constructs.Construct"],"fullSource":"// Hoisted imports begin after !show marker below\n/// !show\nimport { SecurityGroup, Vpc, Peer, Port } from 'aws-cdk-lib/aws-ec2';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport { NagSuppressions } from 'cdk-nag';\n/// !hide\n// Hoisted imports ended before !hide marker above\n// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport {\n Stack,\n} from 'aws-cdk-lib';\n\nclass Fixture extends Stack {\n constructor(scope: Construct, id: string) {\n super(scope, id);\n\n // Code snippet begins after !show marker below\n/// !show\n\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n const test = new SecurityGroup(this, 'test', {\n vpc: new Vpc(this, 'vpc'),\n });\n test.addIngressRule(Peer.anyIpv4(), Port.allTraffic());\n NagSuppressions.addResourceSuppressions(test, [\n {\n id: 'CdkNagValidationFailure',\n reason: 'lorem ipsum',\n appliesTo: ['AwsSolutions-L1'],\n },\n ]);\n }\n}\n/// !hide\n// Code snippet ended before !hide marker above\n }\n}","syntaxKindCounter":{"11":9,"58":1,"80":34,"95":1,"108":1,"110":2,"154":1,"170":3,"177":1,"184":2,"210":2,"211":2,"212":4,"214":5,"215":2,"234":1,"242":1,"244":1,"245":3,"261":1,"262":1,"264":1,"273":4,"274":4,"276":4,"277":8,"299":1,"304":4,"308":1},"fqnsFingerprint":"71f63f3aaad6be7b8d05e515cfc275d5fc4888b413e66fc7031bb2307415c79d"},"783ce0dbb7edf4d2aaa00e3af05d3272f4b1e72c93c55e6281b18e672d4756c6":{"translations":{"python":{"source":"from aws_cdk import App, Aspects\nfrom cdk_nag import AwsSolutionsChecks\nfrom ...lib.example_pipeline import ExamplePipeline\n\n\napp = App()\nExamplePipeline(app, \"example-cdk-pipeline\")\nAspects.of(app).add(AwsSolutionsChecks(verbose=True))\napp.synth()","version":"2"},"csharp":{"source":"using Amazon.CDK;\nusing Cdklabs.CdkNag;\nusing Lib.Example.Pipeline;\n\n\nvar app = new App();\nnew ExamplePipeline(app, \"example-cdk-pipeline\");\nAspects.Of(app).Add(new AwsSolutionsChecks(new NagPackProps { Verbose = true }));\napp.Synth();","version":"1"},"java":{"source":"import software.amazon.awscdk.App;\nimport software.amazon.awscdk.Aspects;\nimport io.github.cdklabs.cdknag.AwsSolutionsChecks;\nimport lib.example.pipeline.ExamplePipeline;\n\n\nApp app = new App();\nnew ExamplePipeline(app, \"example-cdk-pipeline\");\nAspects.of(app).add(AwsSolutionsChecks.Builder.create().verbose(true).build());\napp.synth();","version":"1"},"go":{"source":"import \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/cdklabs/cdk-nag-go/cdknag\"\nimport \"github.com/aws-samples/dummy/lib/examplepipeline\"\n\n\napp := awscdk.NewApp()\nlibexamplepipeline.NewExamplePipeline(app, jsii.String(\"example-cdk-pipeline\"))\nawscdk.Aspects_Of(app).Add(cdknag.NewAwsSolutionsChecks(&NagPackProps{\n\tVerbose: jsii.Boolean(true),\n}))\napp.Synth()","version":"1"},"$":{"source":"import { App, Aspects } from 'aws-cdk-lib';\nimport { AwsSolutionsChecks } from 'cdk-nag';\nimport { ExamplePipeline } from '../lib/example-pipeline';\n\nconst app = new App();\nnew ExamplePipeline(app, 'example-cdk-pipeline');\nAspects.of(app).add(new AwsSolutionsChecks({ verbose: true }));\napp.synth();","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-nag"},"field":{"field":"markdown","line":377}},"didCompile":false,"fqnsReferenced":["aws-cdk-lib.App","aws-cdk-lib.Aspects#add","aws-cdk-lib.Aspects#of","aws-cdk-lib.IAspect","aws-cdk-lib.Stage#synth","cdk-nag.AwsSolutionsChecks","cdk-nag.NagPackProps","constructs.IConstruct"],"fullSource":"// Hoisted imports begin after !show marker below\n/// !show\nimport { App, Aspects } from 'aws-cdk-lib';\nimport { AwsSolutionsChecks } from 'cdk-nag';\nimport { ExamplePipeline } from '../lib/example-pipeline';\n/// !hide\n// Hoisted imports ended before !hide marker above\n// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport {\n Stack,\n} from 'aws-cdk-lib';\n\nclass Fixture extends Stack {\n constructor(scope: Construct, id: string) {\n super(scope, id);\n\n // Code snippet begins after !show marker below\n/// !show\n\n\nconst app = new App();\nnew ExamplePipeline(app, 'example-cdk-pipeline');\nAspects.of(app).add(new AwsSolutionsChecks({ verbose: true }));\napp.synth();\n/// !hide\n// Code snippet ended before !hide marker above\n }\n}","syntaxKindCounter":{"11":4,"80":16,"112":1,"211":1,"212":3,"214":3,"215":3,"244":1,"245":3,"261":1,"262":1,"273":3,"274":3,"276":3,"277":4,"304":1,"308":1},"fqnsFingerprint":"ef194641515e1d64d4cb8b686627521014b4be98d0204fe16c60811468d2f32d"},"ad2dc6be35b937bd56da5cecea07ef1275c929391a962fdbf7c2c3b63ef7491a":{"translations":{"python":{"source":"from aws_cdk import Stack, StackProps\nfrom aws_cdk.aws_codecommit import Repository\nfrom aws_cdk.pipelines import CodePipeline, CodePipelineSource, ShellStep\nfrom cdk_nag import NagSuppressions\nfrom constructs import Construct\n\n\nclass ExamplePipeline(Stack):\n def __init__(self, scope, id, *, description=None, env=None, stackName=None, tags=None, notificationArns=None, synthesizer=None, terminationProtection=None, analyticsReporting=None, crossRegionReferences=None, permissionsBoundary=None, suppressTemplateIndentation=None):\n super().__init__(scope, id, description=description, env=env, stackName=stackName, tags=tags, notificationArns=notificationArns, synthesizer=synthesizer, terminationProtection=terminationProtection, analyticsReporting=analyticsReporting, crossRegionReferences=crossRegionReferences, permissionsBoundary=permissionsBoundary, suppressTemplateIndentation=suppressTemplateIndentation)\n\n example_synth = ShellStep(\"ExampleSynth\",\n commands=[\"yarn build --frozen-lockfile\"],\n input=CodePipelineSource.code_commit(\n Repository(self, \"ExampleRepo\", repository_name=\"ExampleRepo\"), \"main\")\n )\n\n ExamplePipeline = CodePipeline(self, \"ExamplePipeline\",\n synth=example_synth\n )\n\n # Force the pipeline construct creation forward before applying suppressions.\n # @See https://github.com/aws/aws-cdk/issues/18440\n ExamplePipeline.build_pipeline()\n\n # The path suppression will error if you comment out \"ExamplePipeline.buildPipeline();\"\"\n NagSuppressions.add_resource_suppressions_by_path(self, \"/example-cdk-pipeline/ExamplePipeline/Pipeline/ArtifactsBucket/Resource\", [\n id=\"AwsSolutions-S1\",\n reason=\"Because I said so\"\n\n ])","version":"2"},"csharp":{"source":"using Amazon.CDK;\nusing Amazon.CDK.AWS.CodeCommit;\nusing Amazon.CDK.Pipelines;\nusing Cdklabs.CdkNag;\nusing Constructs;\n\nclass ExamplePipeline : Stack\n{\n public ExamplePipeline(Construct scope, string id, StackProps? props=null) : base(scope, id, props)\n {\n\n var exampleSynth = new ShellStep(\"ExampleSynth\", new ShellStepProps {\n Commands = new [] { \"yarn build --frozen-lockfile\" },\n Input = CodePipelineSource.CodeCommit(\n new Repository(this, \"ExampleRepo\", new RepositoryProps { RepositoryName = \"ExampleRepo\" }), \"main\")\n });\n\n var ExamplePipeline = new CodePipeline(this, \"ExamplePipeline\", new CodePipelineProps {\n Synth = exampleSynth\n });\n\n // Force the pipeline construct creation forward before applying suppressions.\n // @See https://github.com/aws/aws-cdk/issues/18440\n ExamplePipeline.BuildPipeline();\n\n // The path suppression will error if you comment out \"ExamplePipeline.buildPipeline();\"\"\n NagSuppressions.AddResourceSuppressionsByPath(this, \"/example-cdk-pipeline/ExamplePipeline/Pipeline/ArtifactsBucket/Resource\", new [] { new NagPackSuppression {\n Id = \"AwsSolutions-S1\",\n Reason = \"Because I said so\"\n } });\n }\n}","version":"1"},"java":{"source":"import software.amazon.awscdk.Stack;\nimport software.amazon.awscdk.StackProps;\nimport software.amazon.awscdk.services.codecommit.Repository;\nimport software.amazon.awscdk.pipelines.CodePipeline;\nimport software.amazon.awscdk.pipelines.CodePipelineSource;\nimport software.amazon.awscdk.pipelines.ShellStep;\nimport io.github.cdklabs.cdknag.NagSuppressions;\nimport software.constructs.Construct;\n\n\npublic class ExamplePipeline extends Stack {\n public ExamplePipeline(Construct scope, String id) {\n this(scope, id, null);\n }\n\n public ExamplePipeline(Construct scope, String id, StackProps props) {\n super(scope, id, props);\n\n ShellStep exampleSynth = ShellStep.Builder.create(\"ExampleSynth\")\n .commands(List.of(\"yarn build --frozen-lockfile\"))\n .input(CodePipelineSource.codeCommit(\n Repository.Builder.create(this, \"ExampleRepo\").repositoryName(\"ExampleRepo\").build(), \"main\"))\n .build();\n\n CodePipeline ExamplePipeline = CodePipeline.Builder.create(this, \"ExamplePipeline\")\n .synth(exampleSynth)\n .build();\n\n // Force the pipeline construct creation forward before applying suppressions.\n // @See https://github.com/aws/aws-cdk/issues/18440\n ExamplePipeline.buildPipeline();\n\n // The path suppression will error if you comment out \"ExamplePipeline.buildPipeline();\"\"\n NagSuppressions.addResourceSuppressionsByPath(this, \"/example-cdk-pipeline/ExamplePipeline/Pipeline/ArtifactsBucket/Resource\", List.of(NagPackSuppression.builder()\n .id(\"AwsSolutions-S1\")\n .reason(\"Because I said so\")\n .build()));\n }\n}","version":"1"},"go":{"source":"import \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/cdklabs/cdk-nag-go/cdknag\"\nimport \"github.com/aws/constructs-go/constructs\"\n\n\ntype ExamplePipeline struct {\n\tStack\n}\n\nfunc NewExamplePipeline(scope Construct, id *string, props StackProps) *ExamplePipeline {\n\tthis := &ExamplePipeline{}\n\tnewStack_Override(this, scope, id, props)\n\n\texampleSynth := awscdk.NewShellStep(jsii.String(\"ExampleSynth\"), &ShellStepProps{\n\t\tCommands: []*string{\n\t\t\tjsii.String(\"yarn build --frozen-lockfile\"),\n\t\t},\n\t\tInput: awscdk.CodePipelineSource_CodeCommit(\n\t\tawscdk.NewRepository(this, jsii.String(\"ExampleRepo\"), &RepositoryProps{\n\t\t\tRepositoryName: jsii.String(\"ExampleRepo\"),\n\t\t}), jsii.String(\"main\")),\n\t})\n\n\texamplePipeline := awscdk.NewCodePipeline(this, jsii.String(\"ExamplePipeline\"), &CodePipelineProps{\n\t\tSynth: exampleSynth,\n\t})\n\n\t// Force the pipeline construct creation forward before applying suppressions.\n\t// @See https://github.com/aws/aws-cdk/issues/18440\n\texamplePipeline.BuildPipeline()\n\n\t// The path suppression will error if you comment out \"ExamplePipeline.buildPipeline();\"\"\n\tcdknag.NagSuppressions_AddResourceSuppressionsByPath(this, jsii.String(\"/example-cdk-pipeline/ExamplePipeline/Pipeline/ArtifactsBucket/Resource\"), []NagPackSuppression{\n\t\t&NagPackSuppression{\n\t\t\tId: jsii.String(\"AwsSolutions-S1\"),\n\t\t\tReason: jsii.String(\"Because I said so\"),\n\t\t},\n\t})\n\treturn this\n}","version":"1"},"$":{"source":"import { Stack, StackProps } from 'aws-cdk-lib';\nimport { Repository } from 'aws-cdk-lib/aws-codecommit';\nimport {\n CodePipeline,\n CodePipelineSource,\n ShellStep,\n} from 'aws-cdk-lib/pipelines';\nimport { NagSuppressions } from 'cdk-nag';\nimport { Construct } from 'constructs';\n\nexport class ExamplePipeline extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n\n const exampleSynth = new ShellStep('ExampleSynth', {\n commands: ['yarn build --frozen-lockfile'],\n input: CodePipelineSource.codeCommit(\n new Repository(this, 'ExampleRepo', { repositoryName: 'ExampleRepo' }),\n 'main'\n ),\n });\n\n const ExamplePipeline = new CodePipeline(this, 'ExamplePipeline', {\n synth: exampleSynth,\n });\n\n // Force the pipeline construct creation forward before applying suppressions.\n // @See https://github.com/aws/aws-cdk/issues/18440\n ExamplePipeline.buildPipeline();\n\n // The path suppression will error if you comment out \"ExamplePipeline.buildPipeline();\"\"\n NagSuppressions.addResourceSuppressionsByPath(\n this,\n '/example-cdk-pipeline/ExamplePipeline/Pipeline/ArtifactsBucket/Resource',\n [\n {\n id: 'AwsSolutions-S1',\n reason: 'Because I said so',\n },\n ]\n );\n }\n}","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-nag"},"field":{"field":"markdown","line":390}},"didCompile":false,"fqnsReferenced":["aws-cdk-lib.Stack","aws-cdk-lib.StackProps","aws-cdk-lib.aws_codecommit.IRepository","aws-cdk-lib.aws_codecommit.Repository","aws-cdk-lib.aws_codecommit.RepositoryProps","aws-cdk-lib.pipelines.CodePipeline","aws-cdk-lib.pipelines.CodePipelineProps","aws-cdk-lib.pipelines.CodePipelineSource#codeCommit","aws-cdk-lib.pipelines.IFileSetProducer","aws-cdk-lib.pipelines.PipelineBase#buildPipeline","aws-cdk-lib.pipelines.ShellStep","aws-cdk-lib.pipelines.ShellStepProps","cdk-nag.NagSuppressions#addResourceSuppressionsByPath","constructs.Construct"],"fullSource":"// Hoisted imports begin after !show marker below\n/// !show\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Repository } from 'aws-cdk-lib/aws-codecommit';\nimport {\n CodePipeline,\n CodePipelineSource,\n ShellStep,\n} from 'aws-cdk-lib/pipelines';\nimport { NagSuppressions } from 'cdk-nag';\nimport { Construct } from 'constructs';\n/// !hide\n// Hoisted imports ended before !hide marker above\n// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport {\n Stack,\n} from 'aws-cdk-lib';\n\nclass Fixture extends Stack {\n constructor(scope: Construct, id: string) {\n super(scope, id);\n\n // Code snippet begins after !show marker below\n/// !show\n\n\nexport class ExamplePipeline extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n\n const exampleSynth = new ShellStep('ExampleSynth', {\n commands: ['yarn build --frozen-lockfile'],\n input: CodePipelineSource.codeCommit(\n new Repository(this, 'ExampleRepo', { repositoryName: 'ExampleRepo' }),\n 'main'\n ),\n });\n\n const ExamplePipeline = new CodePipeline(this, 'ExamplePipeline', {\n synth: exampleSynth,\n });\n\n // Force the pipeline construct creation forward before applying suppressions.\n // @See https://github.com/aws/aws-cdk/issues/18440\n ExamplePipeline.buildPipeline();\n\n // The path suppression will error if you comment out \"ExamplePipeline.buildPipeline();\"\"\n NagSuppressions.addResourceSuppressionsByPath(\n this,\n '/example-cdk-pipeline/ExamplePipeline/Pipeline/ArtifactsBucket/Resource',\n [\n {\n id: 'AwsSolutions-S1',\n reason: 'Because I said so',\n },\n ]\n );\n }\n}\n/// !hide\n// Code snippet ended before !hide marker above\n }\n}","syntaxKindCounter":{"11":14,"58":1,"80":36,"95":1,"108":1,"110":3,"154":1,"170":3,"177":1,"184":2,"210":2,"211":4,"212":3,"214":4,"215":3,"234":1,"242":1,"244":2,"245":3,"261":2,"262":2,"264":1,"273":5,"274":5,"276":5,"277":8,"299":1,"304":6,"308":1},"fqnsFingerprint":"a8cb838caf8df0f40ffb91abbdbd1cc5021f11b4f204eaaa462d82741cc5e73a"},"113cb3bcabf0827ee1dd2ec6b9ec7a7e2632509c9d5cc942eb79016450f9aee5":{"translations":{"python":{"source":"from aws_cdk.aws_ec2 import Instance, InstanceType, InstanceClass, MachineImage, Vpc, CfnInstance\nfrom aws_cdk import Stack, StackProps\nfrom constructs import Construct\nfrom cdk_nag import NagSuppressions\n\n\nclass CdkTestStack(Stack):\n def __init__(self, scope, id, *, description=None, env=None, stackName=None, tags=None, notificationArns=None, synthesizer=None, terminationProtection=None, analyticsReporting=None, crossRegionReferences=None, permissionsBoundary=None, suppressTemplateIndentation=None):\n super().__init__(scope, id, description=description, env=env, stackName=stackName, tags=tags, notificationArns=notificationArns, synthesizer=synthesizer, terminationProtection=terminationProtection, analyticsReporting=analyticsReporting, crossRegionReferences=crossRegionReferences, permissionsBoundary=permissionsBoundary, suppressTemplateIndentation=suppressTemplateIndentation)\n instance = Instance(self, \"rInstance\",\n vpc=Vpc(self, \"rVpc\"),\n instance_type=InstanceType(InstanceClass.T3),\n machine_image=MachineImage.latest_amazon_linux()\n )\n cfn_ins = instance.node.default_child\n cfn_ins.add_property_override(\"DisableApiTermination\", True)\n NagSuppressions.add_resource_suppressions(instance, [\n id=\"AwsSolutions-EC29\",\n reason=\"Remediated through property override.\"\n\n ])","version":"2"},"csharp":{"source":"using Amazon.CDK.AWS.EC2;\nusing Amazon.CDK;\nusing Constructs;\nusing Cdklabs.CdkNag;\n\nclass CdkTestStack : Stack\n{\n public CdkTestStack(Construct scope, string id, StackProps? props=null) : base(scope, id, props)\n {\n var instance = new Instance(this, \"rInstance\", new InstanceProps {\n Vpc = new Vpc(this, \"rVpc\"),\n InstanceType = new InstanceType(InstanceClass.T3),\n MachineImage = MachineImage.LatestAmazonLinux()\n });\n var cfnIns = (CfnInstance)instance.Node.DefaultChild;\n cfnIns.AddPropertyOverride(\"DisableApiTermination\", true);\n NagSuppressions.AddResourceSuppressions(instance, new [] { new NagPackSuppression {\n Id = \"AwsSolutions-EC29\",\n Reason = \"Remediated through property override.\"\n } });\n }\n}","version":"1"},"java":{"source":"import software.amazon.awscdk.services.ec2.Instance;\nimport software.amazon.awscdk.services.ec2.InstanceType;\nimport software.amazon.awscdk.services.ec2.InstanceClass;\nimport software.amazon.awscdk.services.ec2.MachineImage;\nimport software.amazon.awscdk.services.ec2.Vpc;\nimport software.amazon.awscdk.services.ec2.CfnInstance;\nimport software.amazon.awscdk.Stack;\nimport software.amazon.awscdk.StackProps;\nimport software.constructs.Construct;\nimport io.github.cdklabs.cdknag.NagSuppressions;\n\n\npublic class CdkTestStack extends Stack {\n public CdkTestStack(Construct scope, String id) {\n this(scope, id, null);\n }\n\n public CdkTestStack(Construct scope, String id, StackProps props) {\n super(scope, id, props);\n Instance instance = Instance.Builder.create(this, \"rInstance\")\n .vpc(new Vpc(this, \"rVpc\"))\n .instanceType(new InstanceType(InstanceClass.T3))\n .machineImage(MachineImage.latestAmazonLinux())\n .build();\n CfnInstance cfnIns = (CfnInstance)instance.getNode().getDefaultChild();\n cfnIns.addPropertyOverride(\"DisableApiTermination\", true);\n NagSuppressions.addResourceSuppressions(instance, List.of(NagPackSuppression.builder()\n .id(\"AwsSolutions-EC29\")\n .reason(\"Remediated through property override.\")\n .build()));\n }\n}","version":"1"},"go":{"source":"import \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/aws/constructs-go/constructs\"\nimport \"github.com/cdklabs/cdk-nag-go/cdknag\"\n\n\ntype CdkTestStack struct {\n\tStack\n}\n\nfunc NewCdkTestStack(scope Construct, id *string, props StackProps) *CdkTestStack {\n\tthis := &CdkTestStack{}\n\tnewStack_Override(this, scope, id, props)\n\tinstance := awscdk.NewInstance(this, jsii.String(\"rInstance\"), &InstanceProps{\n\t\tVpc: awscdk.NewVpc(this, jsii.String(\"rVpc\")),\n\t\tInstanceType: awscdk.NewInstanceType(awscdk.InstanceClass_T3),\n\t\tMachineImage: awscdk.MachineImage_LatestAmazonLinux(),\n\t})\n\tcfnIns := instance.Node.defaultChild.(CfnInstance)\n\tcfnIns.AddPropertyOverride(jsii.String(\"DisableApiTermination\"), jsii.Boolean(true))\n\tcdknag.NagSuppressions_AddResourceSuppressions(instance, []NagPackSuppression{\n\t\t&NagPackSuppression{\n\t\t\tId: jsii.String(\"AwsSolutions-EC29\"),\n\t\t\tReason: jsii.String(\"Remediated through property override.\"),\n\t\t},\n\t})\n\treturn this\n}","version":"1"},"$":{"source":"import {\n Instance,\n InstanceType,\n InstanceClass,\n MachineImage,\n Vpc,\n CfnInstance,\n} from 'aws-cdk-lib/aws-ec2';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport { NagSuppressions } from 'cdk-nag';\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n const instance = new Instance(this, 'rInstance', {\n vpc: new Vpc(this, 'rVpc'),\n instanceType: new InstanceType(InstanceClass.T3),\n machineImage: MachineImage.latestAmazonLinux(),\n });\n const cfnIns = instance.node.defaultChild as CfnInstance;\n cfnIns.addPropertyOverride('DisableApiTermination', true);\n NagSuppressions.addResourceSuppressions(instance, [\n {\n id: 'AwsSolutions-EC29',\n reason: 'Remediated through property override.',\n },\n ]);\n }\n}","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-nag"},"field":{"field":"markdown","line":445}},"didCompile":false,"fqnsReferenced":["aws-cdk-lib.CfnResource#addPropertyOverride","aws-cdk-lib.Stack","aws-cdk-lib.StackProps","aws-cdk-lib.aws_ec2.CfnInstance","aws-cdk-lib.aws_ec2.IMachineImage","aws-cdk-lib.aws_ec2.IVpc","aws-cdk-lib.aws_ec2.Instance","aws-cdk-lib.aws_ec2.InstanceClass#T3","aws-cdk-lib.aws_ec2.InstanceProps","aws-cdk-lib.aws_ec2.InstanceType","aws-cdk-lib.aws_ec2.MachineImage#latestAmazonLinux","aws-cdk-lib.aws_ec2.Vpc","cdk-nag.NagSuppressions#addResourceSuppressions","constructs.Construct","constructs.Construct#node"],"fullSource":"// Hoisted imports begin after !show marker below\n/// !show\nimport {\n Instance,\n InstanceType,\n InstanceClass,\n MachineImage,\n Vpc,\n CfnInstance,\n} from 'aws-cdk-lib/aws-ec2';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport { NagSuppressions } from 'cdk-nag';\n/// !hide\n// Hoisted imports ended before !hide marker above\n// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport {\n Stack,\n} from 'aws-cdk-lib';\n\nclass Fixture extends Stack {\n constructor(scope: Construct, id: string) {\n super(scope, id);\n\n // Code snippet begins after !show marker below\n/// !show\n\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n const instance = new Instance(this, 'rInstance', {\n vpc: new Vpc(this, 'rVpc'),\n instanceType: new InstanceType(InstanceClass.T3),\n machineImage: MachineImage.latestAmazonLinux(),\n });\n const cfnIns = instance.node.defaultChild as CfnInstance;\n cfnIns.addPropertyOverride('DisableApiTermination', true);\n NagSuppressions.addResourceSuppressions(instance, [\n {\n id: 'AwsSolutions-EC29',\n reason: 'Remediated through property override.',\n },\n ]);\n }\n}\n/// !hide\n// Code snippet ended before !hide marker above\n }\n}","syntaxKindCounter":{"11":9,"58":1,"80":43,"95":1,"108":1,"110":2,"112":1,"154":1,"170":3,"177":1,"184":3,"210":1,"211":2,"212":6,"214":4,"215":3,"234":1,"235":1,"242":1,"244":2,"245":3,"261":2,"262":2,"264":1,"273":4,"274":4,"276":4,"277":10,"299":1,"304":5,"308":1},"fqnsFingerprint":"c465426d5b73307057424f0116436abff0f15d5292e53b5d8fd5f530b4969426"},"fc1c9e0d14e8cdf62ce4d764eb437f574c30d4bb1ad1503e3467322c4ec1754d":{"translations":{"python":{"source":"from aws_cdk import App, Aspects\nfrom ...lib.cdk_test_stack import CdkTestStack\nfrom cdk_nag import AwsSolutionsChecks, SuppressionIgnoreErrors\n\n\napp = App()\nCdkTestStack(app, \"CdkNagDemo\")\n# Ignore Suppressions on any errors\nAspects.of(app).add(\n AwsSolutionsChecks(\n suppression_ignore_condition=SuppressionIgnoreErrors()\n ))","version":"2"},"csharp":{"source":"using Amazon.CDK;\nusing Lib.Cdk.Test.Stack;\nusing Cdklabs.CdkNag;\n\n\nvar app = new App();\nnew CdkTestStack(app, \"CdkNagDemo\");\n// Ignore Suppressions on any errors\nAspects.Of(app).Add(\nnew AwsSolutionsChecks(new NagPackProps {\n SuppressionIgnoreCondition = new SuppressionIgnoreErrors()\n}));","version":"1"},"java":{"source":"import software.amazon.awscdk.App;\nimport software.amazon.awscdk.Aspects;\nimport lib.cdk.test.stack.CdkTestStack;\nimport io.github.cdklabs.cdknag.AwsSolutionsChecks;\nimport io.github.cdklabs.cdknag.SuppressionIgnoreErrors;\n\n\nApp app = new App();\nnew CdkTestStack(app, \"CdkNagDemo\");\n// Ignore Suppressions on any errors\nAspects.of(app).add(\nAwsSolutionsChecks.Builder.create()\n .suppressionIgnoreCondition(new SuppressionIgnoreErrors())\n .build());","version":"1"},"go":{"source":"import \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/aws-samples/dummy/lib/cdkteststack\"\nimport \"github.com/cdklabs/cdk-nag-go/cdknag\"\n\n\napp := awscdk.NewApp()\nlibcdkteststack.NewCdkTestStack(app, jsii.String(\"CdkNagDemo\"))\n// Ignore Suppressions on any errors\nawscdk.Aspects_Of(app).Add(\ncdknag.NewAwsSolutionsChecks(&NagPackProps{\n\tSuppressionIgnoreCondition: *cdknag.NewSuppressionIgnoreErrors(),\n}))","version":"1"},"$":{"source":"import { App, Aspects } from 'aws-cdk-lib';\nimport { CdkTestStack } from '../lib/cdk-test-stack';\nimport { AwsSolutionsChecks, SuppressionIgnoreErrors } from 'cdk-nag';\n\nconst app = new App();\nnew CdkTestStack(app, 'CdkNagDemo');\n// Ignore Suppressions on any errors\nAspects.of(app).add(\n new AwsSolutionsChecks({\n suppressionIgnoreCondition: new SuppressionIgnoreErrors(),\n })\n);","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-nag"},"field":{"field":"markdown","line":487}},"didCompile":false,"fqnsReferenced":["aws-cdk-lib.App","aws-cdk-lib.Aspects#add","aws-cdk-lib.Aspects#of","aws-cdk-lib.IAspect","cdk-nag.AwsSolutionsChecks","cdk-nag.INagSuppressionIgnore","cdk-nag.NagPackProps","cdk-nag.SuppressionIgnoreErrors","constructs.IConstruct"],"fullSource":"// Hoisted imports begin after !show marker below\n/// !show\nimport { App, Aspects } from 'aws-cdk-lib';\nimport { CdkTestStack } from '../lib/cdk-test-stack';\nimport { AwsSolutionsChecks, SuppressionIgnoreErrors } from 'cdk-nag';\n/// !hide\n// Hoisted imports ended before !hide marker above\n// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport {\n Stack,\n} from 'aws-cdk-lib';\n\nclass Fixture extends Stack {\n constructor(scope: Construct, id: string) {\n super(scope, id);\n\n // Code snippet begins after !show marker below\n/// !show\n\n\nconst app = new App();\nnew CdkTestStack(app, 'CdkNagDemo');\n// Ignore Suppressions on any errors\nAspects.of(app).add(\n new AwsSolutionsChecks({\n suppressionIgnoreCondition: new SuppressionIgnoreErrors(),\n })\n);\n/// !hide\n// Code snippet ended before !hide marker above\n }\n}","syntaxKindCounter":{"11":4,"80":16,"211":1,"212":2,"214":2,"215":4,"244":1,"245":2,"261":1,"262":1,"273":3,"274":3,"276":3,"277":5,"304":1,"308":1},"fqnsFingerprint":"6ccb45ef09918942299135fec52f0bbc14e6b26e38ff200f46d81170d8c5c737"},"de8c2080c2445755eac2c57965850cf45aa838b6ff754123025f3b84b950bed4":{"translations":{"python":{"source":"from aws_cdk import App, Aspects\nfrom ...lib.cdk_test_stack import CdkTestStack\nfrom ..docs.NagLogger import ExtremelyHelpfulConsoleLogger\nfrom cdk_nag import AwsSolutionsChecks\n\n\napp = App()\nCdkTestStack(app, \"CdkNagDemo\")\nAspects.of(app).add(\n AwsSolutionsChecks(\n additional_loggers=[ExtremelyHelpfulConsoleLogger()]\n ))","version":"2"},"csharp":{"source":"using Amazon.CDK;\nusing Lib.Cdk.Test.Stack;\nusing Docs.NagLogger;\nusing Cdklabs.CdkNag;\n\n\nvar app = new App();\nnew CdkTestStack(app, \"CdkNagDemo\");\nAspects.Of(app).Add(\nnew AwsSolutionsChecks(new NagPackProps {\n AdditionalLoggers = new [] { new ExtremelyHelpfulConsoleLogger() }\n}));","version":"1"},"java":{"source":"import software.amazon.awscdk.App;\nimport software.amazon.awscdk.Aspects;\nimport lib.cdk.test.stack.CdkTestStack;\nimport docs.NagLogger.ExtremelyHelpfulConsoleLogger;\nimport io.github.cdklabs.cdknag.AwsSolutionsChecks;\n\n\nApp app = new App();\nnew CdkTestStack(app, \"CdkNagDemo\");\nAspects.of(app).add(\nAwsSolutionsChecks.Builder.create()\n .additionalLoggers(List.of(new ExtremelyHelpfulConsoleLogger()))\n .build());","version":"1"},"go":{"source":"import \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/aws-samples/dummy/lib/cdkteststack\"\nimport \"github.com/aws-samples/dummy/docs/nagLogger\"\nimport \"github.com/cdklabs/cdk-nag-go/cdknag\"\n\n\napp := awscdk.NewApp()\nlibcdkteststack.NewCdkTestStack(app, jsii.String(\"CdkNagDemo\"))\nawscdk.Aspects_Of(app).Add(\ncdknag.NewAwsSolutionsChecks(&NagPackProps{\n\tAdditionalLoggers: []INagLogger{\n\t\tdocsNagLogger.NewExtremelyHelpfulConsoleLogger(),\n\t},\n}))","version":"1"},"$":{"source":"import { App, Aspects } from 'aws-cdk-lib';\nimport { CdkTestStack } from '../lib/cdk-test-stack';\nimport { ExtremelyHelpfulConsoleLogger } from './docs/NagLogger';\nimport { AwsSolutionsChecks } from 'cdk-nag';\n\nconst app = new App();\nnew CdkTestStack(app, 'CdkNagDemo');\nAspects.of(app).add(\n new AwsSolutionsChecks({\n additionalLoggers: [new ExtremelyHelpfulConsoleLogger()],\n })\n);","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-nag"},"field":{"field":"markdown","line":513}},"didCompile":false,"fqnsReferenced":["aws-cdk-lib.App","aws-cdk-lib.Aspects#add","aws-cdk-lib.Aspects#of","aws-cdk-lib.IAspect","cdk-nag.AwsSolutionsChecks","cdk-nag.NagPackProps","constructs.IConstruct"],"fullSource":"// Hoisted imports begin after !show marker below\n/// !show\nimport { App, Aspects } from 'aws-cdk-lib';\nimport { CdkTestStack } from '../lib/cdk-test-stack';\nimport { ExtremelyHelpfulConsoleLogger } from './docs/NagLogger';\nimport { AwsSolutionsChecks } from 'cdk-nag';\n/// !hide\n// Hoisted imports ended before !hide marker above\n// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport {\n Stack,\n} from 'aws-cdk-lib';\n\nclass Fixture extends Stack {\n constructor(scope: Construct, id: string) {\n super(scope, id);\n\n // Code snippet begins after !show marker below\n/// !show\n\n\nconst app = new App();\nnew CdkTestStack(app, 'CdkNagDemo');\nAspects.of(app).add(\n new AwsSolutionsChecks({\n additionalLoggers: [new ExtremelyHelpfulConsoleLogger()],\n })\n);\n/// !hide\n// Code snippet ended before !hide marker above\n }\n}","syntaxKindCounter":{"11":5,"80":16,"210":1,"211":1,"212":2,"214":2,"215":4,"244":1,"245":2,"261":1,"262":1,"273":4,"274":4,"276":4,"277":5,"304":1,"308":1},"fqnsFingerprint":"e9dbe3c00dc86e64623b79daf0fde2133af9cb48d6922933afb5b494b11a31bb"},"02a4ed0e237f795b4e389e767e3f1fd2dd5922bbc59250f837702f18b0a7ec3c":{"translations":{"python":{"source":"from aws_cdk import App, Aspects\nfrom ...lib.cdk_test_stack import CdkTestStack\nfrom cdk_nag import AwsSolutionsChecks\n\n\napp = App()\nCdkTestStack(app, \"CdkNagDemo\")\nAspects.of(app).add(AwsSolutionsChecks())","version":"2"},"csharp":{"source":"using Amazon.CDK;\nusing Lib.Cdk.Test.Stack;\nusing Cdklabs.CdkNag;\n\n\nvar app = new App();\nnew CdkTestStack(app, \"CdkNagDemo\");\nAspects.Of(app).Add(new AwsSolutionsChecks());","version":"1"},"java":{"source":"import software.amazon.awscdk.App;\nimport software.amazon.awscdk.Aspects;\nimport lib.cdk.test.stack.CdkTestStack;\nimport io.github.cdklabs.cdknag.AwsSolutionsChecks;\n\n\nApp app = new App();\nnew CdkTestStack(app, \"CdkNagDemo\");\nAspects.of(app).add(new AwsSolutionsChecks());","version":"1"},"go":{"source":"import \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/aws-samples/dummy/lib/cdkteststack\"\nimport \"github.com/cdklabs/cdk-nag-go/cdknag\"\n\n\napp := awscdk.NewApp()\nlibcdkteststack.NewCdkTestStack(app, jsii.String(\"CdkNagDemo\"))\nawscdk.Aspects_Of(app).Add(cdknag.NewAwsSolutionsChecks())","version":"1"},"$":{"source":"import { App, Aspects } from 'aws-cdk-lib';\nimport { CdkTestStack } from '../lib/cdk-test-stack';\nimport { AwsSolutionsChecks } from 'cdk-nag';\n\nconst app = new App();\nnew CdkTestStack(app, 'CdkNagDemo');\nAspects.of(app).add(new AwsSolutionsChecks());","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-nag"},"field":{"field":"markdown","line":564}},"didCompile":false,"fqnsReferenced":["aws-cdk-lib.App","aws-cdk-lib.Aspects#add","aws-cdk-lib.Aspects#of","aws-cdk-lib.IAspect","cdk-nag.AwsSolutionsChecks","constructs.IConstruct"],"fullSource":"// Hoisted imports begin after !show marker below\n/// !show\nimport { App, Aspects } from 'aws-cdk-lib';\nimport { CdkTestStack } from '../lib/cdk-test-stack';\nimport { AwsSolutionsChecks } from 'cdk-nag';\n/// !hide\n// Hoisted imports ended before !hide marker above\n// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport {\n Stack,\n} from 'aws-cdk-lib';\n\nclass Fixture extends Stack {\n constructor(scope: Construct, id: string) {\n super(scope, id);\n\n // Code snippet begins after !show marker below\n/// !show\n\n\nconst app = new App();\nnew CdkTestStack(app, 'CdkNagDemo');\nAspects.of(app).add(new AwsSolutionsChecks());\n/// !hide\n// Code snippet ended before !hide marker above\n }\n}","syntaxKindCounter":{"11":4,"80":13,"212":2,"214":2,"215":3,"244":1,"245":2,"261":1,"262":1,"273":3,"274":3,"276":3,"277":4,"308":1},"fqnsFingerprint":"6c0cb03b196574e36a29d9eed0e4d7afa82da571c57ff59df4ef9c76090e95a6"},"87b6e1f9f87ee4657b018f4ab414082b24aced934ae23d8ef301726a312b472d":{"translations":{"python":{"source":"from aws_cdk.cloudformation_include import CfnInclude\nfrom cdk_nag import NagSuppressions\nfrom aws_cdk import Stack, StackProps\nfrom constructs import Construct\n\n\nclass CdkTestStack(Stack):\n def __init__(self, scope, id, *, description=None, env=None, stackName=None, tags=None, notificationArns=None, synthesizer=None, terminationProtection=None, analyticsReporting=None, crossRegionReferences=None, permissionsBoundary=None, suppressTemplateIndentation=None):\n super().__init__(scope, id, description=description, env=env, stackName=stackName, tags=tags, notificationArns=notificationArns, synthesizer=synthesizer, terminationProtection=terminationProtection, analyticsReporting=analyticsReporting, crossRegionReferences=crossRegionReferences, permissionsBoundary=permissionsBoundary, suppressTemplateIndentation=suppressTemplateIndentation)\n CfnInclude(self, \"Template\",\n template_file=\"my-template.json\"\n )\n # Add any additional suppressions\n NagSuppressions.add_resource_suppressions_by_path(self, \"/CdkNagDemo/Template/rBucket\", [\n id=\"AwsSolutions-S2\",\n reason=\"at least 10 characters\"\n\n ])","version":"2"},"csharp":{"source":"using Amazon.CDK.CloudFormation.Include;\nusing Cdklabs.CdkNag;\nusing Amazon.CDK;\nusing Constructs;\n\nclass CdkTestStack : Stack\n{\n public CdkTestStack(Construct scope, string id, StackProps? props=null) : base(scope, id, props)\n {\n new CfnInclude(this, \"Template\", new CfnIncludeProps {\n TemplateFile = \"my-template.json\"\n });\n // Add any additional suppressions\n NagSuppressions.AddResourceSuppressionsByPath(this, \"/CdkNagDemo/Template/rBucket\", new [] { new NagPackSuppression {\n Id = \"AwsSolutions-S2\",\n Reason = \"at least 10 characters\"\n } });\n }\n}","version":"1"},"java":{"source":"import software.amazon.awscdk.cloudformation.include.CfnInclude;\nimport io.github.cdklabs.cdknag.NagSuppressions;\nimport software.amazon.awscdk.Stack;\nimport software.amazon.awscdk.StackProps;\nimport software.constructs.Construct;\n\n\npublic class CdkTestStack extends Stack {\n public CdkTestStack(Construct scope, String id) {\n this(scope, id, null);\n }\n\n public CdkTestStack(Construct scope, String id, StackProps props) {\n super(scope, id, props);\n CfnInclude.Builder.create(this, \"Template\")\n .templateFile(\"my-template.json\")\n .build();\n // Add any additional suppressions\n NagSuppressions.addResourceSuppressionsByPath(this, \"/CdkNagDemo/Template/rBucket\", List.of(NagPackSuppression.builder()\n .id(\"AwsSolutions-S2\")\n .reason(\"at least 10 characters\")\n .build()));\n }\n}","version":"1"},"go":{"source":"import \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/cdklabs/cdk-nag-go/cdknag\"\nimport \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/aws/constructs-go/constructs\"\n\n\ntype CdkTestStack struct {\n\tStack\n}\n\nfunc NewCdkTestStack(scope Construct, id *string, props StackProps) *CdkTestStack {\n\tthis := &CdkTestStack{}\n\tnewStack_Override(this, scope, id, props)\n\tawscdk.NewCfnInclude(this, jsii.String(\"Template\"), &CfnIncludeProps{\n\t\tTemplateFile: jsii.String(\"my-template.json\"),\n\t})\n\t// Add any additional suppressions\n\tcdknag.NagSuppressions_AddResourceSuppressionsByPath(this, jsii.String(\"/CdkNagDemo/Template/rBucket\"), []NagPackSuppression{\n\t\t&NagPackSuppression{\n\t\t\tId: jsii.String(\"AwsSolutions-S2\"),\n\t\t\tReason: jsii.String(\"at least 10 characters\"),\n\t\t},\n\t})\n\treturn this\n}","version":"1"},"$":{"source":"import { CfnInclude } from 'aws-cdk-lib/cloudformation-include';\nimport { NagSuppressions } from 'cdk-nag';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n new CfnInclude(this, 'Template', {\n templateFile: 'my-template.json',\n });\n // Add any additional suppressions\n NagSuppressions.addResourceSuppressionsByPath(\n this,\n '/CdkNagDemo/Template/rBucket',\n [\n {\n id: 'AwsSolutions-S2',\n reason: 'at least 10 characters',\n },\n ]\n );\n }\n}","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-nag"},"field":{"field":"markdown","line":576}},"didCompile":false,"fqnsReferenced":["aws-cdk-lib.Stack","aws-cdk-lib.StackProps","aws-cdk-lib.cloudformation_include.CfnInclude","aws-cdk-lib.cloudformation_include.CfnIncludeProps","cdk-nag.NagSuppressions#addResourceSuppressionsByPath","constructs.Construct"],"fullSource":"// Hoisted imports begin after !show marker below\n/// !show\nimport { CfnInclude } from 'aws-cdk-lib/cloudformation-include';\nimport { NagSuppressions } from 'cdk-nag';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\n/// !hide\n// Hoisted imports ended before !hide marker above\n// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport {\n Stack,\n} from 'aws-cdk-lib';\n\nclass Fixture extends Stack {\n constructor(scope: Construct, id: string) {\n super(scope, id);\n\n // Code snippet begins after !show marker below\n/// !show\n\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n new CfnInclude(this, 'Template', {\n templateFile: 'my-template.json',\n });\n // Add any additional suppressions\n NagSuppressions.addResourceSuppressionsByPath(\n this,\n '/CdkNagDemo/Template/rBucket',\n [\n {\n id: 'AwsSolutions-S2',\n reason: 'at least 10 characters',\n },\n ]\n );\n }\n}\n/// !hide\n// Code snippet ended before !hide marker above\n }\n}","syntaxKindCounter":{"11":9,"58":1,"80":21,"95":1,"108":1,"110":2,"154":1,"170":3,"177":1,"184":2,"210":1,"211":2,"212":1,"214":2,"215":1,"234":1,"242":1,"245":3,"264":1,"273":4,"274":4,"276":4,"277":5,"299":1,"304":3,"308":1},"fqnsFingerprint":"375757be7bb993835b94278ea74e965bfd899efd6eb231dc0c3141eacc651eb8"},"f7f6174080df5299a090ca70d96a5c349c21b20b3ad3d6ea8370382f0e9c9fd5":{"translations":{"python":{"source":"from aws_cdk.cloudformation_include import CfnInclude\nfrom cdk_nag import NagSuppressions\nfrom aws_cdk import Stack, StackProps\nfrom constructs import Construct\n\n\nclass CdkTestStack(Stack):\n def __init__(self, scope, id, *, description=None, env=None, stackName=None, tags=None, notificationArns=None, synthesizer=None, terminationProtection=None, analyticsReporting=None, crossRegionReferences=None, permissionsBoundary=None, suppressTemplateIndentation=None):\n super().__init__(scope, id, description=description, env=env, stackName=stackName, tags=tags, notificationArns=notificationArns, synthesizer=synthesizer, terminationProtection=terminationProtection, analyticsReporting=analyticsReporting, crossRegionReferences=crossRegionReferences, permissionsBoundary=permissionsBoundary, suppressTemplateIndentation=suppressTemplateIndentation)\n CfnInclude(self, \"Template\",\n template_file=\"my-template.json\"\n )\n # Add any additional suppressions\n NagSuppressions.add_resource_suppressions_by_path(self, \"/CdkNagDemo/Template/myPolicy\", [\n id=\"AwsSolutions-IAM5\",\n reason=\"Allow key data access\",\n applies_to=[\"Action::kms:ReEncrypt*\", \"Action::kms:GenerateDataKey*\"]\n\n ])","version":"2"},"csharp":{"source":"using Amazon.CDK.CloudFormation.Include;\nusing Cdklabs.CdkNag;\nusing Amazon.CDK;\nusing Constructs;\n\nclass CdkTestStack : Stack\n{\n public CdkTestStack(Construct scope, string id, StackProps? props=null) : base(scope, id, props)\n {\n new CfnInclude(this, \"Template\", new CfnIncludeProps {\n TemplateFile = \"my-template.json\"\n });\n // Add any additional suppressions\n NagSuppressions.AddResourceSuppressionsByPath(this, \"/CdkNagDemo/Template/myPolicy\", new [] { new NagPackSuppression {\n Id = \"AwsSolutions-IAM5\",\n Reason = \"Allow key data access\",\n AppliesTo = new [] { \"Action::kms:ReEncrypt*\", \"Action::kms:GenerateDataKey*\" }\n } });\n }\n}","version":"1"},"java":{"source":"import software.amazon.awscdk.cloudformation.include.CfnInclude;\nimport io.github.cdklabs.cdknag.NagSuppressions;\nimport software.amazon.awscdk.Stack;\nimport software.amazon.awscdk.StackProps;\nimport software.constructs.Construct;\n\n\npublic class CdkTestStack extends Stack {\n public CdkTestStack(Construct scope, String id) {\n this(scope, id, null);\n }\n\n public CdkTestStack(Construct scope, String id, StackProps props) {\n super(scope, id, props);\n CfnInclude.Builder.create(this, \"Template\")\n .templateFile(\"my-template.json\")\n .build();\n // Add any additional suppressions\n NagSuppressions.addResourceSuppressionsByPath(this, \"/CdkNagDemo/Template/myPolicy\", List.of(NagPackSuppression.builder()\n .id(\"AwsSolutions-IAM5\")\n .reason(\"Allow key data access\")\n .appliesTo(List.of(\"Action::kms:ReEncrypt*\", \"Action::kms:GenerateDataKey*\"))\n .build()));\n }\n}","version":"1"},"go":{"source":"import \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/cdklabs/cdk-nag-go/cdknag\"\nimport \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/aws/constructs-go/constructs\"\n\n\ntype CdkTestStack struct {\n\tStack\n}\n\nfunc NewCdkTestStack(scope Construct, id *string, props StackProps) *CdkTestStack {\n\tthis := &CdkTestStack{}\n\tnewStack_Override(this, scope, id, props)\n\tawscdk.NewCfnInclude(this, jsii.String(\"Template\"), &CfnIncludeProps{\n\t\tTemplateFile: jsii.String(\"my-template.json\"),\n\t})\n\t// Add any additional suppressions\n\tcdknag.NagSuppressions_AddResourceSuppressionsByPath(this, jsii.String(\"/CdkNagDemo/Template/myPolicy\"), []NagPackSuppression{\n\t\t&NagPackSuppression{\n\t\t\tId: jsii.String(\"AwsSolutions-IAM5\"),\n\t\t\tReason: jsii.String(\"Allow key data access\"),\n\t\t\tAppliesTo: []nagPackSuppressionAppliesTo{\n\t\t\t\tjsii.String(\"Action::kms:ReEncrypt*\"),\n\t\t\t\tjsii.String(\"Action::kms:GenerateDataKey*\"),\n\t\t\t},\n\t\t},\n\t})\n\treturn this\n}","version":"1"},"$":{"source":"import { CfnInclude } from 'aws-cdk-lib/cloudformation-include';\nimport { NagSuppressions } from 'cdk-nag';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n new CfnInclude(this, 'Template', {\n templateFile: 'my-template.json',\n });\n // Add any additional suppressions\n NagSuppressions.addResourceSuppressionsByPath(\n this,\n '/CdkNagDemo/Template/myPolicy',\n [\n {\n id: 'AwsSolutions-IAM5',\n reason: 'Allow key data access',\n appliesTo: ['Action::kms:ReEncrypt*', 'Action::kms:GenerateDataKey*'],\n },\n ]\n );\n }\n}","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-nag"},"field":{"field":"markdown","line":666}},"didCompile":false,"fqnsReferenced":["aws-cdk-lib.Stack","aws-cdk-lib.StackProps","aws-cdk-lib.cloudformation_include.CfnInclude","aws-cdk-lib.cloudformation_include.CfnIncludeProps","cdk-nag.NagSuppressions#addResourceSuppressionsByPath","constructs.Construct"],"fullSource":"// Hoisted imports begin after !show marker below\n/// !show\nimport { CfnInclude } from 'aws-cdk-lib/cloudformation-include';\nimport { NagSuppressions } from 'cdk-nag';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\n/// !hide\n// Hoisted imports ended before !hide marker above\n// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport {\n Stack,\n} from 'aws-cdk-lib';\n\nclass Fixture extends Stack {\n constructor(scope: Construct, id: string) {\n super(scope, id);\n\n // Code snippet begins after !show marker below\n/// !show\n\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n new CfnInclude(this, 'Template', {\n templateFile: 'my-template.json',\n });\n // Add any additional suppressions\n NagSuppressions.addResourceSuppressionsByPath(\n this,\n '/CdkNagDemo/Template/myPolicy',\n [\n {\n id: 'AwsSolutions-IAM5',\n reason: 'Allow key data access',\n appliesTo: ['Action::kms:ReEncrypt*', 'Action::kms:GenerateDataKey*'],\n },\n ]\n );\n }\n}\n/// !hide\n// Code snippet ended before !hide marker above\n }\n}","syntaxKindCounter":{"11":11,"58":1,"80":22,"95":1,"108":1,"110":2,"154":1,"170":3,"177":1,"184":2,"210":2,"211":2,"212":1,"214":2,"215":1,"234":1,"242":1,"245":3,"264":1,"273":4,"274":4,"276":4,"277":5,"299":1,"304":4,"308":1},"fqnsFingerprint":"375757be7bb993835b94278ea74e965bfd899efd6eb231dc0c3141eacc651eb8"}}}
1
+ {"version":"2","toolVersion":"5.9.60","snippets":{"8a048b42e687ef39cf4406d9ae8fc2b167bf530394b8822e940d5dfbd5254aa4":{"translations":{"python":{"source":"from aws_cdk import App, Validations\nfrom cdk_nag import AwsSolutionsChecks, NIST80053R5Checks\n\n# CdkTestStack: Any\n\napp = App()\nCdkTestStack(app, \"CdkNagDemo\")\n# Simple rule informational messages using the AWS Solutions Rule pack\nValidations.of(app).add_plugins(AwsSolutionsChecks(app))\n# Multiple rule packs can be run against the same app\nValidations.of(app).add_plugins(NIST80053R5Checks(app))","version":"2"},"csharp":{"source":"using Amazon.CDK;\nusing Cdklabs.CdkNag;\n\nvar CdkTestStack;\n\nvar app = new App();\nnew CdkTestStack(app, \"CdkNagDemo\");\n// Simple rule informational messages using the AWS Solutions Rule pack\nValidations.Of(app).AddPlugins(new AwsSolutionsChecks(app));\n// Multiple rule packs can be run against the same app\nValidations.Of(app).AddPlugins(new NIST80053R5Checks(app));","version":"1"},"java":{"source":"import software.amazon.awscdk.App;\nimport software.amazon.awscdk.Validations;\nimport io.github.cdklabs.cdknag.AwsSolutionsChecks;\nimport io.github.cdklabs.cdknag.NIST80053R5Checks;\n\nObject CdkTestStack;\n\nApp app = new App();\nnew CdkTestStack(app, \"CdkNagDemo\");\n// Simple rule informational messages using the AWS Solutions Rule pack\nValidations.of(app).addPlugins(new AwsSolutionsChecks(app));\n// Multiple rule packs can be run against the same app\nValidations.of(app).addPlugins(new NIST80053R5Checks(app));","version":"1"},"go":{"source":"import \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/cdklabs/cdk-nag-go/cdknag\"\n\nvar cdkTestStack interface{}\n\napp := awscdk.NewApp()\nNewCdkTestStack(app, jsii.String(\"CdkNagDemo\"))\n// Simple rule informational messages using the AWS Solutions Rule pack\nawscdk.Validations_Of(app).AddPlugins(cdknag.NewAwsSolutionsChecks(app))\n// Multiple rule packs can be run against the same app\nawscdk.Validations_Of(app).AddPlugins(cdknag.NewNIST80053R5Checks(app))","version":"1"},"$":{"source":"import { App, Validations } from 'aws-cdk-lib';\nimport { AwsSolutionsChecks, NIST80053R5Checks } from 'cdk-nag';\n\ndeclare const CdkTestStack: any;\n\nconst app = new App();\nnew CdkTestStack(app, 'CdkNagDemo');\n// Simple rule informational messages using the AWS Solutions Rule pack\nValidations.of(app).addPlugins(new AwsSolutionsChecks(app));\n// Multiple rule packs can be run against the same app\nValidations.of(app).addPlugins(new NIST80053R5Checks(app));\n// Additional explanations on the purpose of triggered rules\n// Validations.of(app).addPlugins(new AwsSolutionsChecks(app, { verbose: true }));","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-nag"},"field":{"field":"markdown","line":44}},"didCompile":true,"fqnsReferenced":["aws-cdk-lib.App","aws-cdk-lib.IPolicyValidationPlugin","aws-cdk-lib.Validations#addPlugins","aws-cdk-lib.Validations#of","cdk-nag.AwsSolutionsChecks","cdk-nag.NIST80053R5Checks","constructs.IConstruct"],"fullSource":"import { App, Validations } from 'aws-cdk-lib';\nimport { AwsSolutionsChecks, NIST80053R5Checks } from 'cdk-nag';\n\ndeclare const CdkTestStack: any;\n\nconst app = new App();\nnew CdkTestStack(app, 'CdkNagDemo');\n// Simple rule informational messages using the AWS Solutions Rule pack\nValidations.of(app).addPlugins(new AwsSolutionsChecks(app));\n// Multiple rule packs can be run against the same app\nValidations.of(app).addPlugins(new NIST80053R5Checks(app));\n// Additional explanations on the purpose of triggered rules\n// Validations.of(app).addPlugins(new AwsSolutionsChecks(app, { verbose: true }));","syntaxKindCounter":{"11":3,"80":21,"133":1,"138":1,"212":4,"214":4,"215":4,"244":2,"245":3,"261":2,"262":2,"273":2,"274":2,"276":2,"277":4,"308":1},"fqnsFingerprint":"9d5dea9e1b80de5d06cf46f88e616365fca960521646acf2a1aec2d562866528"},"74e4ac45cb58f60c9dae9209b2444ddca6b5f2a432fcb784fe77c0429fee367e":{"translations":{"python":{"source":"from aws_cdk.aws_ec2 import SecurityGroup, Vpc, Peer, Port\nfrom aws_cdk import Stack, StackProps, Validations\nfrom constructs import Construct\n\nclass CdkTestStack(Stack):\n def __init__(self, scope, id, *, description=None, env=None, stackName=None, tags=None, notificationArns=None, synthesizer=None, terminationProtection=None, analyticsReporting=None, crossRegionReferences=None, permissionsBoundary=None, suppressTemplateIndentation=None, propertyInjectors=None):\n super().__init__(scope, id, description=description, env=env, stackName=stackName, tags=tags, notificationArns=notificationArns, synthesizer=synthesizer, terminationProtection=terminationProtection, analyticsReporting=analyticsReporting, crossRegionReferences=crossRegionReferences, permissionsBoundary=permissionsBoundary, suppressTemplateIndentation=suppressTemplateIndentation, propertyInjectors=propertyInjectors)\n test = SecurityGroup(self, \"test\",\n vpc=Vpc(self, \"vpc\")\n )\n test.add_ingress_rule(Peer.any_ipv4(), Port.all_traffic())\n Validations.of(test).acknowledge(\n id=\"AwsSolutions-EC23\",\n reason=\"This security group is used for internal testing only.\"\n )","version":"2"},"csharp":{"source":"using Amazon.CDK.AWS.EC2;\nusing Amazon.CDK;\nusing Constructs;\n\nclass CdkTestStack : Stack\n{\n public CdkTestStack(Construct scope, string id, StackProps? props=null) : base(scope, id, props)\n {\n var test = new SecurityGroup(this, \"test\", new SecurityGroupProps {\n Vpc = new Vpc(this, \"vpc\")\n });\n test.AddIngressRule(Peer.AnyIpv4(), Port.AllTraffic());\n Validations.Of(test).Acknowledge(new Acknowledgment {\n Id = \"AwsSolutions-EC23\",\n Reason = \"This security group is used for internal testing only.\"\n });\n }\n}","version":"1"},"java":{"source":"import software.amazon.awscdk.services.ec2.SecurityGroup;\nimport software.amazon.awscdk.services.ec2.Vpc;\nimport software.amazon.awscdk.services.ec2.Peer;\nimport software.amazon.awscdk.services.ec2.Port;\nimport software.amazon.awscdk.Stack;\nimport software.amazon.awscdk.StackProps;\nimport software.amazon.awscdk.Validations;\nimport software.constructs.Construct;\n\npublic class CdkTestStack extends Stack {\n public CdkTestStack(Construct scope, String id) {\n this(scope, id, null);\n }\n\n public CdkTestStack(Construct scope, String id, StackProps props) {\n super(scope, id, props);\n SecurityGroup test = SecurityGroup.Builder.create(this, \"test\")\n .vpc(new Vpc(this, \"vpc\"))\n .build();\n test.addIngressRule(Peer.anyIpv4(), Port.allTraffic());\n Validations.of(test).acknowledge(Acknowledgment.builder()\n .id(\"AwsSolutions-EC23\")\n .reason(\"This security group is used for internal testing only.\")\n .build());\n }\n}","version":"1"},"go":{"source":"import \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/aws/constructs-go/constructs\"\n\ntype CdkTestStack struct {\n\tStack\n}\n\nfunc NewCdkTestStack(scope Construct, id *string, props StackProps) *CdkTestStack {\n\tthis := &CdkTestStack{}\n\tnewStack_Override(this, scope, id, props)\n\ttest := awscdk.NewSecurityGroup(this, jsii.String(\"test\"), &SecurityGroupProps{\n\t\tVpc: awscdk.NewVpc(this, jsii.String(\"vpc\")),\n\t})\n\ttest.AddIngressRule(awscdk.Peer_AnyIpv4(), awscdk.Port_AllTraffic())\n\tawscdk.Validations_Of(test).Acknowledge(&Acknowledgment{\n\t\tId: jsii.String(\"AwsSolutions-EC23\"),\n\t\tReason: jsii.String(\"This security group is used for internal testing only.\"),\n\t})\n\treturn this\n}","version":"1"},"$":{"source":"import { SecurityGroup, Vpc, Peer, Port } from 'aws-cdk-lib/aws-ec2';\nimport { Stack, StackProps, Validations } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n const test = new SecurityGroup(this, 'test', {\n vpc: new Vpc(this, 'vpc'),\n });\n test.addIngressRule(Peer.anyIpv4(), Port.allTraffic());\n Validations.of(test).acknowledge({\n id: 'AwsSolutions-EC23',\n reason: 'This security group is used for internal testing only.',\n });\n }\n}","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-nag"},"field":{"field":"markdown","line":69}},"didCompile":true,"fqnsReferenced":["aws-cdk-lib.Acknowledgment","aws-cdk-lib.Stack","aws-cdk-lib.StackProps","aws-cdk-lib.Validations#acknowledge","aws-cdk-lib.Validations#of","aws-cdk-lib.aws_ec2.IPeer","aws-cdk-lib.aws_ec2.IVpc","aws-cdk-lib.aws_ec2.Peer#anyIpv4","aws-cdk-lib.aws_ec2.Port","aws-cdk-lib.aws_ec2.Port#allTraffic","aws-cdk-lib.aws_ec2.SecurityGroup","aws-cdk-lib.aws_ec2.SecurityGroup#addIngressRule","aws-cdk-lib.aws_ec2.SecurityGroupProps","aws-cdk-lib.aws_ec2.Vpc","constructs.Construct","constructs.IConstruct"],"fullSource":"import { SecurityGroup, Vpc, Peer, Port } from 'aws-cdk-lib/aws-ec2';\nimport { Stack, StackProps, Validations } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n const test = new SecurityGroup(this, 'test', {\n vpc: new Vpc(this, 'vpc'),\n });\n test.addIngressRule(Peer.anyIpv4(), Port.allTraffic());\n Validations.of(test).acknowledge({\n id: 'AwsSolutions-EC23',\n reason: 'This security group is used for internal testing only.',\n });\n }\n}","syntaxKindCounter":{"11":7,"58":1,"80":34,"95":1,"108":1,"110":2,"154":1,"170":3,"177":1,"184":2,"211":2,"212":5,"214":6,"215":2,"234":1,"242":1,"244":1,"245":3,"261":1,"262":1,"264":1,"273":3,"274":3,"276":3,"277":8,"299":1,"304":3,"308":1},"fqnsFingerprint":"605356ce306471b77428dfb7751a0970f6231335824458dcd40423f115e7d48a"},"427eb08a046ab87e82d5666bfb9283d1808d8e1388a839a04f9c882c3965d293":{"translations":{"python":{"source":"from aws_cdk import App, Validations\nfrom cdk_nag import AwsSolutionsChecks\n\n# CdkTestStack: Any\n\napp = App()\nstack = CdkTestStack(app, \"CdkNagDemo\")\nValidations.of(app).add_plugins(AwsSolutionsChecks(app))\nValidations.of(stack).acknowledge(\n id=\"AwsSolutions-EC23\",\n reason=\"All security groups in this stack are internal only.\"\n)","version":"2"},"csharp":{"source":"using Amazon.CDK;\nusing Cdklabs.CdkNag;\n\nvar CdkTestStack;\n\nvar app = new App();\nvar stack = new CdkTestStack(app, \"CdkNagDemo\");\nValidations.Of(app).AddPlugins(new AwsSolutionsChecks(app));\nValidations.Of(stack).Acknowledge(new Acknowledgment {\n Id = \"AwsSolutions-EC23\",\n Reason = \"All security groups in this stack are internal only.\"\n});","version":"1"},"java":{"source":"import software.amazon.awscdk.App;\nimport software.amazon.awscdk.Validations;\nimport io.github.cdklabs.cdknag.AwsSolutionsChecks;\n\nObject CdkTestStack;\n\nApp app = new App();\nObject stack = new CdkTestStack(app, \"CdkNagDemo\");\nValidations.of(app).addPlugins(new AwsSolutionsChecks(app));\nValidations.of(stack).acknowledge(Acknowledgment.builder()\n .id(\"AwsSolutions-EC23\")\n .reason(\"All security groups in this stack are internal only.\")\n .build());","version":"1"},"go":{"source":"import \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/cdklabs/cdk-nag-go/cdknag\"\n\nvar cdkTestStack interface{}\n\napp := awscdk.NewApp()\nstack := NewCdkTestStack(app, jsii.String(\"CdkNagDemo\"))\nawscdk.Validations_Of(app).AddPlugins(cdknag.NewAwsSolutionsChecks(app))\nawscdk.Validations_Of(stack).Acknowledge(&Acknowledgment{\n\tId: jsii.String(\"AwsSolutions-EC23\"),\n\tReason: jsii.String(\"All security groups in this stack are internal only.\"),\n})","version":"1"},"$":{"source":"import { App, Validations } from 'aws-cdk-lib';\nimport { AwsSolutionsChecks } from 'cdk-nag';\n\ndeclare const CdkTestStack: any;\n\nconst app = new App();\nconst stack = new CdkTestStack(app, 'CdkNagDemo');\nValidations.of(app).addPlugins(new AwsSolutionsChecks(app));\nValidations.of(stack).acknowledge({\n id: 'AwsSolutions-EC23',\n reason: 'All security groups in this stack are internal only.',\n});","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-nag"},"field":{"field":"markdown","line":94}},"didCompile":true,"fqnsReferenced":["aws-cdk-lib.Acknowledgment","aws-cdk-lib.App","aws-cdk-lib.IPolicyValidationPlugin","aws-cdk-lib.Validations#acknowledge","aws-cdk-lib.Validations#addPlugins","aws-cdk-lib.Validations#of","cdk-nag.AwsSolutionsChecks","constructs.IConstruct"],"fullSource":"import { App, Validations } from 'aws-cdk-lib';\nimport { AwsSolutionsChecks } from 'cdk-nag';\n\ndeclare const CdkTestStack: any;\n\nconst app = new App();\nconst stack = new CdkTestStack(app, 'CdkNagDemo');\nValidations.of(app).addPlugins(new AwsSolutionsChecks(app));\nValidations.of(stack).acknowledge({\n id: 'AwsSolutions-EC23',\n reason: 'All security groups in this stack are internal only.',\n});","syntaxKindCounter":{"11":5,"80":21,"133":1,"138":1,"211":1,"212":4,"214":4,"215":3,"244":3,"245":2,"261":3,"262":3,"273":2,"274":2,"276":2,"277":3,"304":2,"308":1},"fqnsFingerprint":"2c65e1bd06b70123d7f3d3fe7b9d89eb1ac2971171733d69afbfd7689d3133bf"},"b10fcb0ef0e1247a6229f7ff679a4e7da09e0ea7b6dd605696e632a5ba7b7c1d":{"translations":{"python":{"source":"from aws_cdk.aws_iam import User, PolicyStatement\nfrom aws_cdk import Stack, StackProps, Validations\nfrom constructs import Construct\n\nclass CdkTestStack(Stack):\n def __init__(self, scope, id, *, description=None, env=None, stackName=None, tags=None, notificationArns=None, synthesizer=None, terminationProtection=None, analyticsReporting=None, crossRegionReferences=None, permissionsBoundary=None, suppressTemplateIndentation=None, propertyInjectors=None):\n super().__init__(scope, id, description=description, env=env, stackName=stackName, tags=tags, notificationArns=notificationArns, synthesizer=synthesizer, terminationProtection=terminationProtection, analyticsReporting=analyticsReporting, crossRegionReferences=crossRegionReferences, permissionsBoundary=permissionsBoundary, suppressTemplateIndentation=suppressTemplateIndentation, propertyInjectors=propertyInjectors)\n user = User(self, \"rUser\")\n user.add_to_policy(\n PolicyStatement(\n actions=[\"s3:*\"],\n resources=[\"*\"]\n ))\n # Only acknowledge the s3:* action — Resource::* still triggers\n Validations.of(user).acknowledge(\n id=\"AwsSolutions-IAM5[Action::s3:*]\",\n reason=\"Need s3:* for cross-account replication.\"\n )","version":"2"},"csharp":{"source":"using Amazon.CDK.AWS.IAM;\nusing Amazon.CDK;\nusing Constructs;\n\nclass CdkTestStack : Stack\n{\n public CdkTestStack(Construct scope, string id, StackProps? props=null) : base(scope, id, props)\n {\n var user = new User(this, \"rUser\");\n user.AddToPolicy(\n new PolicyStatement(new PolicyStatementProps {\n Actions = new [] { \"s3:*\" },\n Resources = new [] { \"*\" }\n }));\n // Only acknowledge the s3:* action — Resource::* still triggers\n Validations.Of(user).Acknowledge(new Acknowledgment {\n Id = \"AwsSolutions-IAM5[Action::s3:*]\",\n Reason = \"Need s3:* for cross-account replication.\"\n });\n }\n}","version":"1"},"java":{"source":"import software.amazon.awscdk.services.iam.User;\nimport software.amazon.awscdk.services.iam.PolicyStatement;\nimport software.amazon.awscdk.Stack;\nimport software.amazon.awscdk.StackProps;\nimport software.amazon.awscdk.Validations;\nimport software.constructs.Construct;\n\npublic class CdkTestStack extends Stack {\n public CdkTestStack(Construct scope, String id) {\n this(scope, id, null);\n }\n\n public CdkTestStack(Construct scope, String id, StackProps props) {\n super(scope, id, props);\n User user = new User(this, \"rUser\");\n user.addToPolicy(\n PolicyStatement.Builder.create()\n .actions(List.of(\"s3:*\"))\n .resources(List.of(\"*\"))\n .build());\n // Only acknowledge the s3:* action — Resource::* still triggers\n Validations.of(user).acknowledge(Acknowledgment.builder()\n .id(\"AwsSolutions-IAM5[Action::s3:*]\")\n .reason(\"Need s3:* for cross-account replication.\")\n .build());\n }\n}","version":"1"},"go":{"source":"import \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/aws/constructs-go/constructs\"\n\ntype CdkTestStack struct {\n\tStack\n}\n\nfunc NewCdkTestStack(scope Construct, id *string, props StackProps) *CdkTestStack {\n\tthis := &CdkTestStack{}\n\tnewStack_Override(this, scope, id, props)\n\tuser := awscdk.NewUser(this, jsii.String(\"rUser\"))\n\tuser.AddToPolicy(\n\tawscdk.NewPolicyStatement(&PolicyStatementProps{\n\t\tActions: []*string{\n\t\t\tjsii.String(\"s3:*\"),\n\t\t},\n\t\tResources: []*string{\n\t\t\tjsii.String(\"*\"),\n\t\t},\n\t}))\n\t// Only acknowledge the s3:* action — Resource::* still triggers\n\tawscdk.Validations_Of(user).Acknowledge(&Acknowledgment{\n\t\tId: jsii.String(\"AwsSolutions-IAM5[Action::s3:*]\"),\n\t\tReason: jsii.String(\"Need s3:* for cross-account replication.\"),\n\t})\n\treturn this\n}","version":"1"},"$":{"source":"import { User, PolicyStatement } from 'aws-cdk-lib/aws-iam';\nimport { Stack, StackProps, Validations } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n const user = new User(this, 'rUser');\n user.addToPolicy(\n new PolicyStatement({\n actions: ['s3:*'],\n resources: ['*'],\n })\n );\n // Only acknowledge the s3:* action — Resource::* still triggers\n Validations.of(user).acknowledge({\n id: 'AwsSolutions-IAM5[Action::s3:*]',\n reason: 'Need s3:* for cross-account replication.',\n });\n }\n}","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-nag"},"field":{"field":"markdown","line":125}},"didCompile":true,"fqnsReferenced":["aws-cdk-lib.Acknowledgment","aws-cdk-lib.Stack","aws-cdk-lib.StackProps","aws-cdk-lib.Validations#acknowledge","aws-cdk-lib.Validations#of","aws-cdk-lib.aws_iam.PolicyStatement","aws-cdk-lib.aws_iam.PolicyStatementProps","aws-cdk-lib.aws_iam.User","aws-cdk-lib.aws_iam.User#addToPolicy","constructs.Construct","constructs.IConstruct"],"fullSource":"import { User, PolicyStatement } from 'aws-cdk-lib/aws-iam';\nimport { Stack, StackProps, Validations } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n const user = new User(this, 'rUser');\n user.addToPolicy(\n new PolicyStatement({\n actions: ['s3:*'],\n resources: ['*'],\n })\n );\n // Only acknowledge the s3:* action — Resource::* still triggers\n Validations.of(user).acknowledge({\n id: 'AwsSolutions-IAM5[Action::s3:*]',\n reason: 'Need s3:* for cross-account replication.',\n });\n }\n}","syntaxKindCounter":{"11":8,"58":1,"80":29,"95":1,"108":1,"110":1,"154":1,"170":3,"177":1,"184":2,"210":2,"211":2,"212":3,"214":4,"215":2,"234":1,"242":1,"244":1,"245":3,"261":1,"262":1,"264":1,"273":3,"274":3,"276":3,"277":6,"299":1,"304":4,"308":1},"fqnsFingerprint":"a057109ad277d293e62e8c76b681db0a11d2924824c043aafa36a8e1e5f746d4"},"999a93808bf7f42406a9668922a46c236b7c8db6a6a40cd7167658ca075ad2b3":{"translations":{"python":{"source":"from aws_cdk.aws_ec2 import Instance, InstanceType, InstanceClass, MachineImage, Vpc, CfnInstance\nfrom aws_cdk import Stack, StackProps, Validations\nfrom constructs import Construct\n\nclass CdkTestStack(Stack):\n def __init__(self, scope, id, *, description=None, env=None, stackName=None, tags=None, notificationArns=None, synthesizer=None, terminationProtection=None, analyticsReporting=None, crossRegionReferences=None, permissionsBoundary=None, suppressTemplateIndentation=None, propertyInjectors=None):\n super().__init__(scope, id, description=description, env=env, stackName=stackName, tags=tags, notificationArns=notificationArns, synthesizer=synthesizer, terminationProtection=terminationProtection, analyticsReporting=analyticsReporting, crossRegionReferences=crossRegionReferences, permissionsBoundary=permissionsBoundary, suppressTemplateIndentation=suppressTemplateIndentation, propertyInjectors=propertyInjectors)\n instance = Instance(self, \"rInstance\",\n vpc=Vpc(self, \"rVpc\"),\n instance_type=InstanceType(InstanceClass.T3),\n machine_image=MachineImage.latest_amazon_linux()\n )\n cfn_ins = instance.node.default_child\n cfn_ins.add_property_override(\"DisableApiTermination\", True)\n Validations.of(instance).acknowledge(\n id=\"AwsSolutions-EC29\",\n reason=\"Remediated through property override.\"\n )","version":"2"},"csharp":{"source":"using Amazon.CDK.AWS.EC2;\nusing Amazon.CDK;\nusing Constructs;\n\nclass CdkTestStack : Stack\n{\n public CdkTestStack(Construct scope, string id, StackProps? props=null) : base(scope, id, props)\n {\n var instance = new Instance(this, \"rInstance\", new InstanceProps {\n Vpc = new Vpc(this, \"rVpc\"),\n InstanceType = new InstanceType(InstanceClass.T3),\n MachineImage = MachineImage.LatestAmazonLinux()\n });\n var cfnIns = (CfnInstance)instance.Node.DefaultChild;\n cfnIns.AddPropertyOverride(\"DisableApiTermination\", true);\n Validations.Of(instance).Acknowledge(new Acknowledgment {\n Id = \"AwsSolutions-EC29\",\n Reason = \"Remediated through property override.\"\n });\n }\n}","version":"1"},"java":{"source":"import software.amazon.awscdk.services.ec2.Instance;\nimport software.amazon.awscdk.services.ec2.InstanceType;\nimport software.amazon.awscdk.services.ec2.InstanceClass;\nimport software.amazon.awscdk.services.ec2.MachineImage;\nimport software.amazon.awscdk.services.ec2.Vpc;\nimport software.amazon.awscdk.services.ec2.CfnInstance;\nimport software.amazon.awscdk.Stack;\nimport software.amazon.awscdk.StackProps;\nimport software.amazon.awscdk.Validations;\nimport software.constructs.Construct;\n\npublic class CdkTestStack extends Stack {\n public CdkTestStack(Construct scope, String id) {\n this(scope, id, null);\n }\n\n public CdkTestStack(Construct scope, String id, StackProps props) {\n super(scope, id, props);\n Instance instance = Instance.Builder.create(this, \"rInstance\")\n .vpc(new Vpc(this, \"rVpc\"))\n .instanceType(new InstanceType(InstanceClass.T3))\n .machineImage(MachineImage.latestAmazonLinux())\n .build();\n CfnInstance cfnIns = (CfnInstance)instance.getNode().getDefaultChild();\n cfnIns.addPropertyOverride(\"DisableApiTermination\", true);\n Validations.of(instance).acknowledge(Acknowledgment.builder()\n .id(\"AwsSolutions-EC29\")\n .reason(\"Remediated through property override.\")\n .build());\n }\n}","version":"1"},"go":{"source":"import \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/aws/constructs-go/constructs\"\n\ntype CdkTestStack struct {\n\tStack\n}\n\nfunc NewCdkTestStack(scope Construct, id *string, props StackProps) *CdkTestStack {\n\tthis := &CdkTestStack{}\n\tnewStack_Override(this, scope, id, props)\n\tinstance := awscdk.NewInstance(this, jsii.String(\"rInstance\"), &InstanceProps{\n\t\tVpc: awscdk.NewVpc(this, jsii.String(\"rVpc\")),\n\t\tInstanceType: awscdk.NewInstanceType(awscdk.InstanceClass_T3),\n\t\tMachineImage: awscdk.MachineImage_LatestAmazonLinux(),\n\t})\n\tcfnIns := instance.Node.defaultChild.(CfnInstance)\n\tcfnIns.AddPropertyOverride(jsii.String(\"DisableApiTermination\"), jsii.Boolean(true))\n\tawscdk.Validations_Of(instance).Acknowledge(&Acknowledgment{\n\t\tId: jsii.String(\"AwsSolutions-EC29\"),\n\t\tReason: jsii.String(\"Remediated through property override.\"),\n\t})\n\treturn this\n}","version":"1"},"$":{"source":"import {\n Instance,\n InstanceType,\n InstanceClass,\n MachineImage,\n Vpc,\n CfnInstance,\n} from 'aws-cdk-lib/aws-ec2';\nimport { Stack, StackProps, Validations } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n const instance = new Instance(this, 'rInstance', {\n vpc: new Vpc(this, 'rVpc'),\n instanceType: new InstanceType(InstanceClass.T3),\n machineImage: MachineImage.latestAmazonLinux(),\n });\n const cfnIns = instance.node.defaultChild as CfnInstance;\n cfnIns.addPropertyOverride('DisableApiTermination', true);\n Validations.of(instance).acknowledge({\n id: 'AwsSolutions-EC29',\n reason: 'Remediated through property override.',\n });\n }\n}","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-nag"},"field":{"field":"markdown","line":158}},"didCompile":true,"fqnsReferenced":["aws-cdk-lib.Acknowledgment","aws-cdk-lib.CfnResource#addPropertyOverride","aws-cdk-lib.Stack","aws-cdk-lib.StackProps","aws-cdk-lib.Validations#acknowledge","aws-cdk-lib.Validations#of","aws-cdk-lib.aws_ec2.CfnInstance","aws-cdk-lib.aws_ec2.IMachineImage","aws-cdk-lib.aws_ec2.IVpc","aws-cdk-lib.aws_ec2.Instance","aws-cdk-lib.aws_ec2.InstanceClass#T3","aws-cdk-lib.aws_ec2.InstanceProps","aws-cdk-lib.aws_ec2.InstanceType","aws-cdk-lib.aws_ec2.MachineImage#latestAmazonLinux","aws-cdk-lib.aws_ec2.Vpc","constructs.Construct","constructs.Construct#node","constructs.IConstruct"],"fullSource":"import {\n Instance,\n InstanceType,\n InstanceClass,\n MachineImage,\n Vpc,\n CfnInstance,\n} from 'aws-cdk-lib/aws-ec2';\nimport { Stack, StackProps, Validations } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n const instance = new Instance(this, 'rInstance', {\n vpc: new Vpc(this, 'rVpc'),\n instanceType: new InstanceType(InstanceClass.T3),\n machineImage: MachineImage.latestAmazonLinux(),\n });\n const cfnIns = instance.node.defaultChild as CfnInstance;\n cfnIns.addPropertyOverride('DisableApiTermination', true);\n Validations.of(instance).acknowledge({\n id: 'AwsSolutions-EC29',\n reason: 'Remediated through property override.',\n });\n }\n}","syntaxKindCounter":{"11":8,"58":1,"80":44,"95":1,"108":1,"110":2,"112":1,"154":1,"170":3,"177":1,"184":3,"211":2,"212":7,"214":5,"215":3,"234":1,"235":1,"242":1,"244":2,"245":3,"261":2,"262":2,"264":1,"273":3,"274":3,"276":3,"277":10,"299":1,"304":5,"308":1},"fqnsFingerprint":"8239034f4c9919972c0678a00c1c4019ff5de3bc23de4d3283cac57a5cec7d54"},"9ef11a5bfee724d3f629a0a74ee51202083c9483ee0e342ce87abcf2b67bf798":{"translations":{"python":{"source":"from aws_cdk import App, Validations\nfrom cdk_nag import AwsSolutionsChecks\n\napp = App()\n# Writes acknowledged rules into CfnResource Metadata as cdk_nag: { rules_to_suppress: [...] }\nValidations.of(app).add_plugins(AwsSolutionsChecks(app, write_suppressions_to_cloud_formation=True))","version":"2"},"csharp":{"source":"using Amazon.CDK;\nusing Cdklabs.CdkNag;\n\nvar app = new App();\n// Writes acknowledged rules into CfnResource Metadata as cdk_nag: { rules_to_suppress: [...] }\nValidations.Of(app).AddPlugins(new AwsSolutionsChecks(app, new NagPackProps { WriteSuppressionsToCloudFormation = true }));","version":"1"},"java":{"source":"import software.amazon.awscdk.App;\nimport software.amazon.awscdk.Validations;\nimport io.github.cdklabs.cdknag.AwsSolutionsChecks;\n\nApp app = new App();\n// Writes acknowledged rules into CfnResource Metadata as cdk_nag: { rules_to_suppress: [...] }\nValidations.of(app).addPlugins(AwsSolutionsChecks.Builder.create(app).writeSuppressionsToCloudFormation(true).build());","version":"1"},"go":{"source":"import \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/cdklabs/cdk-nag-go/cdknag\"\n\napp := awscdk.NewApp()\n// Writes acknowledged rules into CfnResource Metadata as cdk_nag: { rules_to_suppress: [...] }\nawscdk.Validations_Of(app).AddPlugins(cdknag.NewAwsSolutionsChecks(app, &NagPackProps{\n\tWriteSuppressionsToCloudFormation: jsii.Boolean(true),\n}))","version":"1"},"$":{"source":"import { App, Validations } from 'aws-cdk-lib';\nimport { AwsSolutionsChecks } from 'cdk-nag';\n\nconst app = new App();\n// Writes acknowledged rules into CfnResource Metadata as cdk_nag: { rules_to_suppress: [...] }\nValidations.of(app).addPlugins(new AwsSolutionsChecks(app, { writeSuppressionsToCloudFormation: true }));","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-nag"},"field":{"field":"markdown","line":194}},"didCompile":true,"fqnsReferenced":["aws-cdk-lib.App","aws-cdk-lib.IPolicyValidationPlugin","aws-cdk-lib.Validations#addPlugins","aws-cdk-lib.Validations#of","cdk-nag.AwsSolutionsChecks","cdk-nag.NagPackProps","constructs.IConstruct"],"fullSource":"import { App, Validations } from 'aws-cdk-lib';\nimport { AwsSolutionsChecks } from 'cdk-nag';\n\nconst app = new App();\n// Writes acknowledged rules into CfnResource Metadata as cdk_nag: { rules_to_suppress: [...] }\nValidations.of(app).addPlugins(new AwsSolutionsChecks(app, { writeSuppressionsToCloudFormation: true }));","syntaxKindCounter":{"11":2,"80":12,"112":1,"211":1,"212":2,"214":2,"215":2,"244":1,"245":1,"261":1,"262":1,"273":2,"274":2,"276":2,"277":3,"304":1,"308":1},"fqnsFingerprint":"51c8d22345ffe0eceea697e6e1d8f1a5615d7c8fc250b1a4cd81a4c690dd4417"},"1ae42ca2a55aeb5b42c4d54ca27b69838f465811edb9cac2589910669f6e72ef":{"translations":{"python":{"source":"from aws_cdk import App, Validations\nfrom cdk_nag import AwsSolutionsChecks\n\n# CdkTestStack: Any\n\napp = App()\nCdkTestStack(app, \"CdkNagDemo\")\nValidations.of(app).add_plugins(AwsSolutionsChecks(app))","version":"2"},"csharp":{"source":"using Amazon.CDK;\nusing Cdklabs.CdkNag;\n\nvar CdkTestStack;\n\nvar app = new App();\nnew CdkTestStack(app, \"CdkNagDemo\");\nValidations.Of(app).AddPlugins(new AwsSolutionsChecks(app));","version":"1"},"java":{"source":"import software.amazon.awscdk.App;\nimport software.amazon.awscdk.Validations;\nimport io.github.cdklabs.cdknag.AwsSolutionsChecks;\n\nObject CdkTestStack;\n\nApp app = new App();\nnew CdkTestStack(app, \"CdkNagDemo\");\nValidations.of(app).addPlugins(new AwsSolutionsChecks(app));","version":"1"},"go":{"source":"import \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/cdklabs/cdk-nag-go/cdknag\"\n\nvar cdkTestStack interface{}\n\napp := awscdk.NewApp()\nNewCdkTestStack(app, jsii.String(\"CdkNagDemo\"))\nawscdk.Validations_Of(app).AddPlugins(cdknag.NewAwsSolutionsChecks(app))","version":"1"},"$":{"source":"import { App, Validations } from 'aws-cdk-lib';\nimport { AwsSolutionsChecks } from 'cdk-nag';\n\ndeclare const CdkTestStack: any;\n\nconst app = new App();\nnew CdkTestStack(app, 'CdkNagDemo');\nValidations.of(app).addPlugins(new AwsSolutionsChecks(app));","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-nag"},"field":{"field":"markdown","line":214}},"didCompile":true,"fqnsReferenced":["aws-cdk-lib.App","aws-cdk-lib.IPolicyValidationPlugin","aws-cdk-lib.Validations#addPlugins","aws-cdk-lib.Validations#of","cdk-nag.AwsSolutionsChecks","constructs.IConstruct"],"fullSource":"import { App, Validations } from 'aws-cdk-lib';\nimport { AwsSolutionsChecks } from 'cdk-nag';\n\ndeclare const CdkTestStack: any;\n\nconst app = new App();\nnew CdkTestStack(app, 'CdkNagDemo');\nValidations.of(app).addPlugins(new AwsSolutionsChecks(app));","syntaxKindCounter":{"11":3,"80":14,"133":1,"138":1,"212":2,"214":2,"215":3,"244":2,"245":2,"261":2,"262":2,"273":2,"274":2,"276":2,"277":3,"308":1},"fqnsFingerprint":"4b40468c96b250c23a4ef335213b6f49318ae35192e1dc8f8e33c2dfb5f01d23"},"6e919a024a23ccdcd9b421e971cb6259e2908a82eb88edf96583eabc53de7f0d":{"translations":{"python":{"source":"from aws_cdk.cloudformation_include import CfnInclude\nfrom aws_cdk import Stack, StackProps, Validations\nfrom constructs import Construct\n\nclass CdkTestStack(Stack):\n def __init__(self, scope, id, *, description=None, env=None, stackName=None, tags=None, notificationArns=None, synthesizer=None, terminationProtection=None, analyticsReporting=None, crossRegionReferences=None, permissionsBoundary=None, suppressTemplateIndentation=None, propertyInjectors=None):\n super().__init__(scope, id, description=description, env=env, stackName=stackName, tags=tags, notificationArns=notificationArns, synthesizer=synthesizer, terminationProtection=terminationProtection, analyticsReporting=analyticsReporting, crossRegionReferences=crossRegionReferences, permissionsBoundary=permissionsBoundary, suppressTemplateIndentation=suppressTemplateIndentation, propertyInjectors=propertyInjectors)\n template = CfnInclude(self, \"Template\",\n template_file=\"my-template.json\"\n )\n # Acknowledge rules on imported resources\n bucket = template.get_resource(\"rBucket\")\n Validations.of(bucket).acknowledge(\n id=\"AwsSolutions-S1\",\n reason=\"Logging not required for this bucket.\"\n )","version":"2"},"csharp":{"source":"using Amazon.CDK.CloudFormation.Include;\nusing Amazon.CDK;\nusing Constructs;\n\nclass CdkTestStack : Stack\n{\n public CdkTestStack(Construct scope, string id, StackProps? props=null) : base(scope, id, props)\n {\n var template = new CfnInclude(this, \"Template\", new CfnIncludeProps {\n TemplateFile = \"my-template.json\"\n });\n // Acknowledge rules on imported resources\n var bucket = template.GetResource(\"rBucket\");\n Validations.Of(bucket).Acknowledge(new Acknowledgment {\n Id = \"AwsSolutions-S1\",\n Reason = \"Logging not required for this bucket.\"\n });\n }\n}","version":"1"},"java":{"source":"import software.amazon.awscdk.cloudformation.include.CfnInclude;\nimport software.amazon.awscdk.Stack;\nimport software.amazon.awscdk.StackProps;\nimport software.amazon.awscdk.Validations;\nimport software.constructs.Construct;\n\npublic class CdkTestStack extends Stack {\n public CdkTestStack(Construct scope, String id) {\n this(scope, id, null);\n }\n\n public CdkTestStack(Construct scope, String id, StackProps props) {\n super(scope, id, props);\n CfnInclude template = CfnInclude.Builder.create(this, \"Template\")\n .templateFile(\"my-template.json\")\n .build();\n // Acknowledge rules on imported resources\n CfnResource bucket = template.getResource(\"rBucket\");\n Validations.of(bucket).acknowledge(Acknowledgment.builder()\n .id(\"AwsSolutions-S1\")\n .reason(\"Logging not required for this bucket.\")\n .build());\n }\n}","version":"1"},"go":{"source":"import \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/aws/aws-cdk-go/awscdk\"\nimport \"github.com/aws/constructs-go/constructs\"\n\ntype CdkTestStack struct {\n\tStack\n}\n\nfunc NewCdkTestStack(scope Construct, id *string, props StackProps) *CdkTestStack {\n\tthis := &CdkTestStack{}\n\tnewStack_Override(this, scope, id, props)\n\ttemplate := awscdk.NewCfnInclude(this, jsii.String(\"Template\"), &CfnIncludeProps{\n\t\tTemplateFile: jsii.String(\"my-template.json\"),\n\t})\n\t// Acknowledge rules on imported resources\n\tbucket := template.GetResource(jsii.String(\"rBucket\"))\n\tawscdk.Validations_Of(bucket).Acknowledge(&Acknowledgment{\n\t\tId: jsii.String(\"AwsSolutions-S1\"),\n\t\tReason: jsii.String(\"Logging not required for this bucket.\"),\n\t})\n\treturn this\n}","version":"1"},"$":{"source":"import { CfnInclude } from 'aws-cdk-lib/cloudformation-include';\nimport { Stack, StackProps, Validations } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n const template = new CfnInclude(this, 'Template', {\n templateFile: 'my-template.json',\n });\n // Acknowledge rules on imported resources\n const bucket = template.getResource('rBucket');\n Validations.of(bucket).acknowledge({\n id: 'AwsSolutions-S1',\n reason: 'Logging not required for this bucket.',\n });\n }\n}","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-nag"},"field":{"field":"markdown","line":227}},"didCompile":true,"fqnsReferenced":["aws-cdk-lib.Acknowledgment","aws-cdk-lib.CfnResource","aws-cdk-lib.Stack","aws-cdk-lib.StackProps","aws-cdk-lib.Validations#acknowledge","aws-cdk-lib.Validations#of","aws-cdk-lib.cloudformation_include.CfnInclude","aws-cdk-lib.cloudformation_include.CfnInclude#getResource","aws-cdk-lib.cloudformation_include.CfnIncludeProps","constructs.Construct","constructs.IConstruct"],"fullSource":"import { CfnInclude } from 'aws-cdk-lib/cloudformation-include';\nimport { Stack, StackProps, Validations } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n const template = new CfnInclude(this, 'Template', {\n templateFile: 'my-template.json',\n });\n // Acknowledge rules on imported resources\n const bucket = template.getResource('rBucket');\n Validations.of(bucket).acknowledge({\n id: 'AwsSolutions-S1',\n reason: 'Logging not required for this bucket.',\n });\n }\n}","syntaxKindCounter":{"11":8,"58":1,"80":27,"95":1,"108":1,"110":1,"154":1,"170":3,"177":1,"184":2,"211":2,"212":3,"214":4,"215":1,"234":1,"242":1,"244":2,"245":2,"261":2,"262":2,"264":1,"273":3,"274":3,"276":3,"277":5,"299":1,"304":3,"308":1},"fqnsFingerprint":"fa72bbe1b8946c9e7f1ac858e95ac25fca9ea05a7e00709a4d541939e7ea29dd"}}}