diff --git a/README.md b/README.md
index af779afb..29cf34d1 100644
--- a/README.md
+++ b/README.md
@@ -4,12 +4,13 @@ Hub of all open-sourced third-party static analyzers supported by DeepSource.
## Supported Analyzers
-| Analyzer name | Latest version | Language / Technology |
-| :-------------------------------------------------------------- | :------------- | :--------------------- |
-| [facebook/infer](https://github.com/facebook/infer) | v1.1.0 | Java, C++, Objective-C |
-| [Azure/bicep](https://github.com/Azure/bicep) | v0.20.4 | Azure Resource Manager |
-| [stackrox/kube-linter](https://github.com/stackrox/kube-linter) | 0.6.4 | Kubernetes, Helm |
-| [crytic/slither](https://github.com/crytic/slither) | 0.10.0 | Solidity, Vyper |
+| Analyzer name | Latest version | Language / Technology |
+| :------------------------------------------------------------------------------ | :-------------- | :--------------------- |
+| [facebook/infer](https://github.com/facebook/infer) | v1.1.0 | Java, C++, Objective-C |
+| [Azure/bicep](https://github.com/Azure/bicep) | v0.20.4 | Azure Resource Manager |
+| [stackrox/kube-linter](https://github.com/stackrox/kube-linter) | 0.6.4 | Kubernetes, Helm |
+| [crytic/slither](https://github.com/crytic/slither) | 0.10.0 | Solidity, Vyper |
+| [aws-cloudformation/cfn-lint](https://github.com/aws-cloudformation/cfn-lint) | 0.83.3 | AWS CloudFormation |
---
diff --git a/analyzers/cfn-lint/.deepsource/analyzer/analyzer.toml b/analyzers/cfn-lint/.deepsource/analyzer/analyzer.toml
new file mode 100644
index 00000000..b63d9f5e
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/analyzer/analyzer.toml
@@ -0,0 +1,7 @@
+# Analyzer Profile
+category = "conf"
+name = "AWS CloudFormation Linter"
+shortcode = "cfn-lint"
+status = "active"
+tool_latest_version = "0.83.0"
+description = "AWS Cloudformation Linter validates AWS CloudFormation yaml/json templates against AWS CloudFormation Resource Specification."
diff --git a/analyzers/cfn-lint/.deepsource/analyzer/example_config.toml b/analyzers/cfn-lint/.deepsource/analyzer/example_config.toml
new file mode 100644
index 00000000..1884169d
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/analyzer/example_config.toml
@@ -0,0 +1,5 @@
+version = 1
+
+[[analyzers]]
+name = "cfn-lint"
+type = "community"
diff --git a/analyzers/cfn-lint/.deepsource/analyzer/logo.svg b/analyzers/cfn-lint/.deepsource/analyzer/logo.svg
new file mode 100644
index 00000000..be7d14cf
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/analyzer/logo.svg
@@ -0,0 +1,1503 @@
+
\ No newline at end of file
diff --git a/analyzers/cfn-lint/.deepsource/analyzer/silencers.json b/analyzers/cfn-lint/.deepsource/analyzer/silencers.json
new file mode 100644
index 00000000..e69de29b
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E0002.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E0002.toml
new file mode 100644
index 00000000..5a4ff73a
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E0002.toml
@@ -0,0 +1,12 @@
+title = "Error processing rule on the template"
+verbose_name = "E0002"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["base", "rule"]
+description = '''
+Errors found when processing a rule on the template
+
+### References:
+[CloudFormation Python Lint](https://github.com/aws-cloudformation/cfn-python-lint)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1001.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1001.toml
new file mode 100644
index 00000000..dd4673ac
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1001.toml
@@ -0,0 +1,12 @@
+title = "Basic cloudformation template configuration"
+verbose_name = "E1001"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["base"]
+description = '''
+Making sure the basic CloudFormation template components are properly configured
+
+### References:
+[CloudFormation Python Lint](https://github.com/aws-cloudformation/cfn-python-lint)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1002.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1002.toml
new file mode 100644
index 00000000..610f273a
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1002.toml
@@ -0,0 +1,12 @@
+title = "Template size limit"
+verbose_name = "E1002"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["limits"]
+description = '''
+Check the size of the template is less than the upper limit
+
+### References:
+[CloudFormation Limits](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1003.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1003.toml
new file mode 100644
index 00000000..79c5eb29
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1003.toml
@@ -0,0 +1,12 @@
+title = "Template description limit"
+verbose_name = "E1003"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["description", "limits"]
+description = '''
+Check if the size of the template description is less than the upper limit
+
+### References:
+[CloudFormation Limits](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1004.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1004.toml
new file mode 100644
index 00000000..d4d1067a
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1004.toml
@@ -0,0 +1,12 @@
+title = "Template description can only be a string"
+verbose_name = "E1004"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["description"]
+description = '''
+Template description can only be a string
+
+### References:
+[Template Description Structure](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-description-structure.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1010.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1010.toml
new file mode 100644
index 00000000..c16de76b
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1010.toml
@@ -0,0 +1,12 @@
+title = "Getatt validation of parameters"
+verbose_name = "E1010"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["functions", "getatt"]
+description = '''
+Validates that GetAtt parameters are to valid resources and properties of those resources
+
+### References:
+[Intrinsic Function Reference Getatt](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1011.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1011.toml
new file mode 100644
index 00000000..5d5b848c
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1011.toml
@@ -0,0 +1,12 @@
+title = "Findinmap validation of configuration"
+verbose_name = "E1011"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["functions", "findinmap"]
+description = '''
+Making sure the function is a list of appropriate config
+
+### References:
+[Intrinsic Function Reference Findinmap](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-findinmap.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1012.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1012.toml
new file mode 100644
index 00000000..83a4cd4a
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1012.toml
@@ -0,0 +1,12 @@
+title = "Check if refs exist"
+verbose_name = "E1012"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["functions", "ref"]
+description = '''
+Making sure the refs exist
+
+### References:
+[Intrinsic Function Reference Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1015.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1015.toml
new file mode 100644
index 00000000..a2ed648c
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1015.toml
@@ -0,0 +1,12 @@
+title = "Getaz validation of parameters"
+verbose_name = "E1015"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["functions", "getaz"]
+description = '''
+Making sure the GetAz function is properly configured
+
+### References:
+[Intrinsic Function Reference Getavailabilityzones](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getavailabilityzones.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1016.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1016.toml
new file mode 100644
index 00000000..2428e20f
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1016.toml
@@ -0,0 +1,12 @@
+title = "Importvalue validation of parameters"
+verbose_name = "E1016"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["functions", "importvalue"]
+description = '''
+Making sure the ImportValue function is properly configured
+
+### References:
+[Intrinsic Function Reference Importvalue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1017.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1017.toml
new file mode 100644
index 00000000..bf6b028d
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1017.toml
@@ -0,0 +1,12 @@
+title = "Select validation of parameters"
+verbose_name = "E1017"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["functions", "select"]
+description = '''
+Making sure the Select function is properly configured
+
+### References:
+[Intrinsic Function Reference Select](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-select.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1018.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1018.toml
new file mode 100644
index 00000000..ae39f646
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1018.toml
@@ -0,0 +1,12 @@
+title = "Split validation of parameters"
+verbose_name = "E1018"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["functions", "split"]
+description = '''
+Making sure the split function is properly configured
+
+### References:
+[Intrinsic Function Reference Split](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-split.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1019.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1019.toml
new file mode 100644
index 00000000..029266c0
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1019.toml
@@ -0,0 +1,12 @@
+title = "Sub validation of parameters"
+verbose_name = "E1019"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["functions", "sub"]
+description = '''
+Making sure the sub function is properly configured
+
+### References:
+[Intrinsic Function Reference Sub](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1020.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1020.toml
new file mode 100644
index 00000000..008107e7
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1020.toml
@@ -0,0 +1,12 @@
+title = "Ref validation of value"
+verbose_name = "E1020"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["functions", "ref"]
+description = '''
+Making sure the Ref has a String value (no other functions are supported)
+
+### References:
+[Intrinsic Function Reference Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1021.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1021.toml
new file mode 100644
index 00000000..953eab95
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1021.toml
@@ -0,0 +1,12 @@
+title = "Base64 validation of parameters"
+verbose_name = "E1021"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["functions", "base64"]
+description = '''
+Making sure the Base64 function is properly configured
+
+### References:
+[Intrinsic Function Reference Base64](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-base64.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1022.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1022.toml
new file mode 100644
index 00000000..43f9a69d
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1022.toml
@@ -0,0 +1,12 @@
+title = "Join validation of parameters"
+verbose_name = "E1022"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["functions", "join"]
+description = '''
+Making sure the join function is properly configured
+
+### References:
+[Intrinsic Function Reference Join](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-join.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1023.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1023.toml
new file mode 100644
index 00000000..ce9b93cf
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1023.toml
@@ -0,0 +1,12 @@
+title = "Validation not function configuration"
+verbose_name = "E1023"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["functions", "not"]
+description = '''
+Making sure that NOT functions are list
+
+### References:
+[Intrinsic Function Reference Conditions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-conditions.html#intrinsic-function-reference-conditions-not)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1024.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1024.toml
new file mode 100644
index 00000000..6bd7ed65
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1024.toml
@@ -0,0 +1,12 @@
+title = "Cidr validation of parameters"
+verbose_name = "E1024"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["functions", "cidr"]
+description = '''
+Making sure the function CIDR is a list with valid values
+
+### References:
+[Intrinsic Function Reference Cidr](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-cidr.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1026.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1026.toml
new file mode 100644
index 00000000..db7b5fde
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1026.toml
@@ -0,0 +1,12 @@
+title = "Cannot reference resources in the conditions block of the template"
+verbose_name = "E1026"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["conditions", "functions", "ref"]
+description = '''
+Check that any Refs in the Conditions block uses no resources
+
+### References:
+[Intrinsic Function Reference Conditions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-conditions.html#w2ab2c21c28c21c45)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1027.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1027.toml
new file mode 100644
index 00000000..dbd07342
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1027.toml
@@ -0,0 +1,12 @@
+title = "Check dynamic references secure strings are in supported locations"
+verbose_name = "E1027"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["functions", "dynamic reference"]
+description = '''
+Dynamic References Secure Strings are only supported for a small set of resource properties. Validate that they are being used in the correct location when checking values and Fn::Sub in resource properties. Currently doesn't check outputs, maps, conditions, parameters, and descriptions.
+
+### References:
+[Dynamic References](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1028.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1028.toml
new file mode 100644
index 00000000..e732137e
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1028.toml
@@ -0,0 +1,12 @@
+title = "Check fn::if structure for validity"
+verbose_name = "E1028"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["functions", "if"]
+description = '''
+Check Fn::If to make sure its valid. Condition has to be a string.
+
+### References:
+[Intrinsic Function Reference Conditions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-conditions.html#intrinsic-function-reference-conditions-if)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1029.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1029.toml
new file mode 100644
index 00000000..3e849491
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1029.toml
@@ -0,0 +1,12 @@
+title = "Sub is required if a variable is used in a string"
+verbose_name = "E1029"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["functions", "sub"]
+description = '''
+If a substitution variable exists in a string but isn't wrapped with the Fn::Sub function the deployment will fail.
+
+### References:
+[Intrinsic Function Reference Sub](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1030.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1030.toml
new file mode 100644
index 00000000..1a81d925
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1030.toml
@@ -0,0 +1,12 @@
+title = "Length validation of parameters"
+verbose_name = "E1030"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["functions", "length"]
+description = '''
+Making sure Fn::Length is configured correctly
+
+### References:
+[Intrinsic Function Reference Length](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-length.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1031.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1031.toml
new file mode 100644
index 00000000..08eacbde
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1031.toml
@@ -0,0 +1,12 @@
+title = "Tojsonstring validation of parameters"
+verbose_name = "E1031"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["functions", "toJsonString"]
+description = '''
+Making sure Fn::ToJsonString is configured correctly
+
+### References:
+[Intrinsic Function Reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1032.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1032.toml
new file mode 100644
index 00000000..5aed4a66
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E1032.toml
@@ -0,0 +1,12 @@
+title = "Validates foreach functions"
+verbose_name = "E1032"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["functions", "foreach"]
+description = '''
+Validates that ForEach parameters have a valid configuration
+
+### References:
+[Intrinsic Function Reference Getatt](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2001.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2001.toml
new file mode 100644
index 00000000..508d00e4
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2001.toml
@@ -0,0 +1,12 @@
+title = "Parameters have appropriate properties"
+verbose_name = "E2001"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["parameters"]
+description = '''
+Making sure the parameters are properly configured
+
+### References:
+[Parameters Section Structure](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2002.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2002.toml
new file mode 100644
index 00000000..fa44b83b
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2002.toml
@@ -0,0 +1,12 @@
+title = "Parameters have appropriate type"
+verbose_name = "E2002"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["parameters"]
+description = '''
+Making sure the parameters have a correct type
+
+### References:
+[Best Practices](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html#parmtypes)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2003.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2003.toml
new file mode 100644
index 00000000..eb6db065
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2003.toml
@@ -0,0 +1,12 @@
+title = "Parameters have appropriate names"
+verbose_name = "E2003"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["parameters"]
+description = '''
+Check if Parameters are properly named (A-Za-z0-9)
+
+### References:
+[Parameters Section Structure](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html#parameters-section-structure-requirements)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2010.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2010.toml
new file mode 100644
index 00000000..6e06dc94
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2010.toml
@@ -0,0 +1,12 @@
+title = "Parameter limit not exceeded"
+verbose_name = "E2010"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["parameters", "limits"]
+description = '''
+Check the number of Parameters in the template is less than the upper limit
+
+### References:
+[CloudFormation Limits](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2011.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2011.toml
new file mode 100644
index 00000000..d09b2aae
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2011.toml
@@ -0,0 +1,12 @@
+title = "Parameter name limit not exceeded"
+verbose_name = "E2011"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["parameters", "limits"]
+description = '''
+Check the size of Parameter names in the template is less than the upper limit
+
+### References:
+[CloudFormation Limits](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2012.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2012.toml
new file mode 100644
index 00000000..3bd76252
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2012.toml
@@ -0,0 +1,12 @@
+title = "Parameter value limit not exceeded"
+verbose_name = "E2012"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["parameters", "limits"]
+description = '''
+Check if the size of Parameter values in the template is less than the upper limit
+
+### References:
+[CloudFormation Limits](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2014.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2014.toml
new file mode 100644
index 00000000..40514cda
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2014.toml
@@ -0,0 +1,12 @@
+title = "Default value cannot use refs"
+verbose_name = "E2014"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["parameters", "ref"]
+description = '''
+Check if Refs are not used in Parameter Defaults
+
+### References:
+[Parameters Section Structure](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2015.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2015.toml
new file mode 100644
index 00000000..43e394f9
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2015.toml
@@ -0,0 +1,12 @@
+title = "Default value is within parameter constraints"
+verbose_name = "E2015"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["parameters"]
+description = '''
+Making sure the parameters have a default value inside AllowedValues, MinValue, MaxValue, AllowedPattern
+
+### References:
+[Parameters Section Structure](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2503.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2503.toml
new file mode 100644
index 00000000..f62aa753
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2503.toml
@@ -0,0 +1,12 @@
+title = "Resource elb properties"
+verbose_name = "E2503"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["properties", "elb"]
+description = '''
+See if Elb Resource Properties are set correctly HTTPS has certificate HTTP has no certificate
+
+### References:
+[Aws Properties Ec2 Elb Listener](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-listener.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2504.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2504.toml
new file mode 100644
index 00000000..225c16a5
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2504.toml
@@ -0,0 +1,12 @@
+title = "Check ec2 ebs properties"
+verbose_name = "E2504"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["properties", "ec2", "ebs"]
+description = '''
+See if Ec2 Ebs Properties are valid
+
+### References:
+[Aws Properties Ec2 Blockdev Template](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-template.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2506.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2506.toml
new file mode 100644
index 00000000..a867070f
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2506.toml
@@ -0,0 +1,12 @@
+title = "Resource ec2 security group ingress properties"
+verbose_name = "E2506"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "ec2", "securitygroup"]
+description = '''
+See if EC2 Security Group Ingress Properties are set correctly. Check that "SourceSecurityGroupId" or "SourceSecurityGroupName" are are exclusive and using the type of Ref or GetAtt
+
+### References:
+[Aws Properties Ec2 Security Group Ingress](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2507.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2507.toml
new file mode 100644
index 00000000..99248cf1
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2507.toml
@@ -0,0 +1,12 @@
+title = "Check if iam policies are properly configured"
+verbose_name = "E2507"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["properties", "iam"]
+description = '''
+See if there elements inside an IAM policy are correct
+
+### References:
+[Aws Properties Iam Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2520.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2520.toml
new file mode 100644
index 00000000..287a5d7f
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2520.toml
@@ -0,0 +1,12 @@
+title = "Check properties that are mutually exclusive"
+verbose_name = "E2520"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources"]
+description = '''
+Making sure CloudFormation properties that are exclusive are not defined
+
+### References:
+[CloudFormation Python Lint](https://github.com/aws-cloudformation/cfn-python-lint)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2521.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2521.toml
new file mode 100644
index 00000000..8eee1444
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2521.toml
@@ -0,0 +1,12 @@
+title = "Check properties that are required together"
+verbose_name = "E2521"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources"]
+description = '''
+Make sure CloudFormation resource properties are included together when required
+
+### References:
+[CloudFormation Python Lint](https://github.com/aws-cloudformation/cfn-python-lint)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2522.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2522.toml
new file mode 100644
index 00000000..e9133a75
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2522.toml
@@ -0,0 +1,12 @@
+title = "Check properties that need at least one of a list of properties"
+verbose_name = "E2522"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources"]
+description = '''
+Making sure CloudFormation properties that require at least one property from a list. More than one can be included.
+
+### References:
+[CloudFormation Python Lint](https://github.com/aws-cloudformation/cfn-python-lint)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2523.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2523.toml
new file mode 100644
index 00000000..ec4f3fec
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2523.toml
@@ -0,0 +1,12 @@
+title = "Check properties that need only one of a list of properties"
+verbose_name = "E2523"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources"]
+description = '''
+Making sure CloudFormation properties that require only one property from a list. One has to be specified.
+
+### References:
+[CloudFormation Python Lint](https://github.com/aws-cloudformation/cfn-python-lint)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2529.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2529.toml
new file mode 100644
index 00000000..f187bec7
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2529.toml
@@ -0,0 +1,12 @@
+title = "Check for subscriptionfilters have beyond 2 attachments to a cloudwatch log group"
+verbose_name = "E2529"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "lambda"]
+description = '''
+The current limit for a CloudWatch Log Group is they can have 2 subscription filters. We will look for duplicate LogGroupNames inside Subscription Filters and make sure they are within 2. This doesn't account for any other subscription filters getting set.
+
+### References:
+[2016 10 31](https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#user-content-cloudwatchlogs)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2530.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2530.toml
new file mode 100644
index 00000000..60e8c1a7
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2530.toml
@@ -0,0 +1,12 @@
+title = "Snapstart supports the configured runtime"
+verbose_name = "E2530"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "lambda"]
+description = '''
+To properly leverage SnapStart, you must have a runtime of Java11 or greater
+
+### References:
+[Snapstart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2531.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2531.toml
new file mode 100644
index 00000000..31ac975e
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2531.toml
@@ -0,0 +1,12 @@
+title = "Check if eol lambda function runtimes are used"
+verbose_name = "E2531"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "lambda", "runtime"]
+description = '''
+Check if an EOL Lambda Runtime is specified and give an error if used.
+
+### References:
+[Runtime Support Policy](https://docs.aws.amazon.com/lambda/latest/dg/runtime-support-policy.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2532.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2532.toml
new file mode 100644
index 00000000..8955fdaf
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2532.toml
@@ -0,0 +1,12 @@
+title = "Check state machine definition for proper syntax"
+verbose_name = "E2532"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "stepfunctions"]
+description = '''
+Check the State Machine String Definition to make sure its JSON. Validate basic syntax of the file to determine validity.
+
+### References:
+[Aws Resource Stepfunctions Statemachine](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2540.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2540.toml
new file mode 100644
index 00000000..0aefe1a1
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2540.toml
@@ -0,0 +1,12 @@
+title = "Codepipeline stages"
+verbose_name = "E2540"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["properties", "codepipeline"]
+description = '''
+See if CodePipeline stages are set correctly
+
+### References:
+[Reference Pipeline Structure](https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#pipeline-requirements)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2541.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2541.toml
new file mode 100644
index 00000000..36993666
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E2541.toml
@@ -0,0 +1,12 @@
+title = "Codepipeline stage actions"
+verbose_name = "E2541"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "codepipeline"]
+description = '''
+See if CodePipeline stage actions are set correctly
+
+### References:
+[Reference Pipeline Structure](https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#pipeline-requirements)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3000.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3000.toml
new file mode 100644
index 00000000..8bb70a2d
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3000.toml
@@ -0,0 +1,12 @@
+title = "Resource schema"
+verbose_name = "E3000"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources"]
+description = '''
+CloudFormation Registry resource schema validation
+
+### References:
+[Aws CloudFormation Resource Schema](https://github.com/aws-cloudformation/aws-cloudformation-resource-schema/)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3001.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3001.toml
new file mode 100644
index 00000000..0f8ad531
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3001.toml
@@ -0,0 +1,12 @@
+title = "Basic cloudformation resource check"
+verbose_name = "E3001"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources"]
+description = '''
+Making sure the basic CloudFormation resources are properly configured
+
+### References:
+[CloudFormation Python Lint](https://github.com/aws-cloudformation/cfn-python-lint)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3002.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3002.toml
new file mode 100644
index 00000000..f5d67c8d
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3002.toml
@@ -0,0 +1,12 @@
+title = "Resource properties are invalid"
+verbose_name = "E3002"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources"]
+description = '''
+Making sure that resources properties are properly configured
+
+### References:
+[CloudFormation Resource Specification](https://github.com/aws-cloudformation/cfn-python-lint/blob/main/docs/cfn-resource-specification.md#properties)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3003.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3003.toml
new file mode 100644
index 00000000..307a1a18
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3003.toml
@@ -0,0 +1,12 @@
+title = "Required resource properties are missing"
+verbose_name = "E3003"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources"]
+description = '''
+Making sure that Resources properties that are required exist
+
+### References:
+[CloudFormation Resource Specification](https://github.com/aws-cloudformation/cfn-python-lint/blob/main/docs/cfn-resource-specification.md#required)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3004.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3004.toml
new file mode 100644
index 00000000..d89fbd78
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3004.toml
@@ -0,0 +1,12 @@
+title = "Resource dependencies are not circular"
+verbose_name = "E3004"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "circularly", "dependson", "ref", "sub", "getatt"]
+description = '''
+Check that Resources are not circularly dependent by DependsOn, Ref, Sub, or GetAtt
+
+### References:
+[CloudFormation Python Lint](https://github.com/aws-cloudformation/cfn-python-lint)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3005.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3005.toml
new file mode 100644
index 00000000..6b04d9a5
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3005.toml
@@ -0,0 +1,12 @@
+title = "Check dependson values for resources"
+verbose_name = "E3005"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "dependson"]
+description = '''
+Check that the DependsOn values are valid
+
+### References:
+[Aws Attribute Dependson](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3006.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3006.toml
new file mode 100644
index 00000000..9b6108d5
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3006.toml
@@ -0,0 +1,12 @@
+title = "Resources have appropriate names"
+verbose_name = "E3006"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources"]
+description = '''
+Check if Resources are properly named (A-Za-z0-9)
+
+### References:
+[Resources Section Structure](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html#resources-section-structure-logicalid)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3007.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3007.toml
new file mode 100644
index 00000000..b6a5f6a6
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3007.toml
@@ -0,0 +1,12 @@
+title = "Unique resource and parameter names"
+verbose_name = "E3007"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["parameters", "resources"]
+description = '''
+All resources and parameters must have unique names
+
+### References:
+[Resources Section Structure](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3008.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3008.toml
new file mode 100644
index 00000000..c1119f3b
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3008.toml
@@ -0,0 +1,12 @@
+title = "Check values of properties for valid refs and getatts"
+verbose_name = "E3008"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "ref", "getatt"]
+description = '''
+Checks resource properties for Ref and GetAtt values
+
+### References:
+[]()
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3010.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3010.toml
new file mode 100644
index 00000000..e7fc5984
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3010.toml
@@ -0,0 +1,12 @@
+title = "Resource limit not exceeded"
+verbose_name = "E3010"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "limits"]
+description = '''
+Check the number of Resources in the template is less than the upper limit
+
+### References:
+[CloudFormation Limits](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3011.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3011.toml
new file mode 100644
index 00000000..564740a3
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3011.toml
@@ -0,0 +1,12 @@
+title = "Resource name limit not exceeded"
+verbose_name = "E3011"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "limits"]
+description = '''
+Check the size of Resource names in the template is less than the upper limit
+
+### References:
+[CloudFormation Limits](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3012.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3012.toml
new file mode 100644
index 00000000..7d350bfe
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3012.toml
@@ -0,0 +1,12 @@
+title = "Check resource properties values"
+verbose_name = "E3012"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources"]
+description = '''
+Checks resource property values with Primitive Types for values that match those types.
+
+### References:
+[CloudFormation Resource Specification](https://github.com/aws-cloudformation/cfn-python-lint/blob/main/docs/cfn-resource-specification.md#valueprimitivetype)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3013.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3013.toml
new file mode 100644
index 00000000..5337ac14
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3013.toml
@@ -0,0 +1,12 @@
+title = "Cloudfront aliases"
+verbose_name = "E3013"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["properties", "cloudfront"]
+description = '''
+CloudFront aliases should contain valid domain names
+
+### References:
+[Aws Properties Cloudfront Distribution Distributionconfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-aliases)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3016.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3016.toml
new file mode 100644
index 00000000..ea8c0cc0
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3016.toml
@@ -0,0 +1,12 @@
+title = "Check the configuration of a resources updatepolicy"
+verbose_name = "E3016"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "updatepolicy"]
+description = '''
+Make sure a resources UpdatePolicy is properly configured
+
+### References:
+[Aws Attribute Updatepolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3017.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3017.toml
new file mode 100644
index 00000000..48e88aa3
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3017.toml
@@ -0,0 +1,12 @@
+title = "Property is required based on another properties value"
+verbose_name = "E3017"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources"]
+description = '''
+When certain properties have a certain value it results in other properties being required. This rule will validate those required properties are specified when those values are supplied
+
+### References:
+[]()
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3018.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3018.toml
new file mode 100644
index 00000000..e79d37cd
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3018.toml
@@ -0,0 +1,12 @@
+title = "Property is unwanted based on another properties value"
+verbose_name = "E3018"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources"]
+description = '''
+When certain properties have a certain value it results in other properties not being needed. This rule will validate those unwanted properties are not specified when those values are supplied
+
+### References:
+[]()
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3020.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3020.toml
new file mode 100644
index 00000000..d4ab4a7f
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3020.toml
@@ -0,0 +1,12 @@
+title = "Validate route53 recordsets"
+verbose_name = "E3020"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "route53", "record_set"]
+description = '''
+Check if all RecordSets are correctly configured
+
+### References:
+[Resourcerecordtypes](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3021.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3021.toml
new file mode 100644
index 00000000..bc0a475d
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3021.toml
@@ -0,0 +1,12 @@
+title = "Check events rule targets are less than or equal to 5"
+verbose_name = "E3021"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "events"]
+description = '''
+CloudWatch Events Rule can only support up to 5 targets
+
+### References:
+[Cloudwatch_Limits_Cwe](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/cloudwatch_limits_cwe.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3022.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3022.toml
new file mode 100644
index 00000000..c79e3174
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3022.toml
@@ -0,0 +1,12 @@
+title = "Resource subnetroutetableassociation properties"
+verbose_name = "E3022"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "ec2", "subnet", "route table"]
+description = '''
+Validate there is only one SubnetRouteTableAssociation per subnet
+
+### References:
+[Aws Resource Ec2 Subnet Route Table Assoc](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet-route-table-assoc.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3025.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3025.toml
new file mode 100644
index 00000000..5b9d5a82
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3025.toml
@@ -0,0 +1,12 @@
+title = "Rds instance type is compatible with the rds type"
+verbose_name = "E3025"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "rds"]
+description = '''
+Check the RDS instance types are supported by the type of RDS engine. Only if the values are strings will this be checked.
+
+### References:
+[Concepts.Dbinstanceclass](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3026.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3026.toml
new file mode 100644
index 00000000..1bf37a47
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3026.toml
@@ -0,0 +1,12 @@
+title = "Check elastic cache redis cluster settings"
+verbose_name = "E3026"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "elasticcache"]
+description = '''
+Evaluate Redis Cluster groups to make sure automatic failover is enabled when cluster mode is enabled
+
+### References:
+[CloudFormation Python Lint](https://github.com/awslabs/cfn-python-lint)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3027.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3027.toml
new file mode 100644
index 00000000..eccdfc2c
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3027.toml
@@ -0,0 +1,12 @@
+title = "Validate aws event scheduleexpression format"
+verbose_name = "E3027"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "events"]
+description = '''
+Validate the formation of the AWS::Event ScheduleExpression
+
+### References:
+[Scheduledevents](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3030.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3030.toml
new file mode 100644
index 00000000..03d2445f
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3030.toml
@@ -0,0 +1,12 @@
+title = "Check if properties have a valid value"
+verbose_name = "E3030"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "property", "allowed value"]
+description = '''
+Check if properties have a valid value in case of an enumator
+
+### References:
+[CloudFormation Resource Specification](https://github.com/aws-cloudformation/cfn-python-lint/blob/main/docs/cfn-resource-specification.md#allowedvalue)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3031.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3031.toml
new file mode 100644
index 00000000..88392fa6
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3031.toml
@@ -0,0 +1,12 @@
+title = "Check if property values adhere to a specific pattern"
+verbose_name = "E3031"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "property", "allowed pattern", "regex"]
+description = '''
+Check if properties have a valid value in case of a pattern (Regular Expression)
+
+### References:
+[CloudFormation Resource Specification](https://github.com/awslabs/cfn-python-lint/blob/main/docs/cfn-resource-specification.md#allowedpattern)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3032.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3032.toml
new file mode 100644
index 00000000..4bce5a66
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3032.toml
@@ -0,0 +1,12 @@
+title = "Check if a list has between min and max number of values specified"
+verbose_name = "E3032"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "property", "list", "size"]
+description = '''
+Check lists for the number of items in the list to validate they are between the minimum and maximum
+
+### References:
+[CloudFormation Resource Specification](https://github.com/awslabs/cfn-python-lint/blob/main/docs/cfn-resource-specification.md#allowedpattern)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3033.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3033.toml
new file mode 100644
index 00000000..9a04881d
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3033.toml
@@ -0,0 +1,12 @@
+title = "Check if a string has between min and max number of values specified"
+verbose_name = "E3033"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "property", "string", "size"]
+description = '''
+Check strings for its length between the minimum and maximum
+
+### References:
+[CloudFormation Resource Specification](https://github.com/awslabs/cfn-python-lint/blob/main/docs/cfn-resource-specification.md#allowedpattern)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3034.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3034.toml
new file mode 100644
index 00000000..b8956d82
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3034.toml
@@ -0,0 +1,12 @@
+title = "Check if a number is between min and max"
+verbose_name = "E3034"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "property", "number", "size"]
+description = '''
+Check numbers (integers and floats) for its value being between the minimum and maximum
+
+### References:
+[CloudFormation Resource Specification](https://github.com/awslabs/cfn-python-lint/blob/main/docs/cfn-resource-specification.md#allowedpattern)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3035.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3035.toml
new file mode 100644
index 00000000..e7c2208c
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3035.toml
@@ -0,0 +1,12 @@
+title = "Check deletionpolicy values for resources"
+verbose_name = "E3035"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "deletionpolicy"]
+description = '''
+Check that the DeletionPolicy values are valid
+
+### References:
+[Aws Attribute Deletionpolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3036.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3036.toml
new file mode 100644
index 00000000..08becbab
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3036.toml
@@ -0,0 +1,12 @@
+title = "Check updatereplacepolicy values for resources"
+verbose_name = "E3036"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "updatereplacepolicy"]
+description = '''
+Check that the UpdateReplacePolicy values are valid
+
+### References:
+[Aws Attribute Updatereplacepolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3037.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3037.toml
new file mode 100644
index 00000000..54c7d264
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3037.toml
@@ -0,0 +1,12 @@
+title = "Check if a list has duplicate values"
+verbose_name = "E3037"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "property", "list"]
+description = '''
+Certain lists don't support duplicate items. Check when duplicates are provided but not supported.
+
+### References:
+[CloudFormation Resource Specification](https://github.com/aws-cloudformation/cfn-python-lint/blob/main/docs/cfn-resource-specification.md#allowedvalue)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3038.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3038.toml
new file mode 100644
index 00000000..d11a8039
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3038.toml
@@ -0,0 +1,12 @@
+title = "Check if serverless resources have serverless transform"
+verbose_name = "E3038"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "transform"]
+description = '''
+Check that a template with Serverless Resources also includes the Serverless Transform
+
+### References:
+[CloudFormation Python Lint](https://github.com/aws-cloudformation/cfn-python-lint)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3039.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3039.toml
new file mode 100644
index 00000000..49c80f77
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3039.toml
@@ -0,0 +1,12 @@
+title = "Attributedefinitions / keyschemas mismatch"
+verbose_name = "E3039"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "dynamodb"]
+description = '''
+Verify the set of Attributes in AttributeDefinitions and KeySchemas match
+
+### References:
+[Aws Resource Dynamodb Table](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3041.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3041.toml
new file mode 100644
index 00000000..070d01a8
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3041.toml
@@ -0,0 +1,12 @@
+title = "Recordset hostedzonename is a superdomain of name"
+verbose_name = "E3041"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resource", "properties", "route53"]
+description = '''
+In a RecordSet, the HostedZoneName must be a superdomain of the Name being validated
+
+### References:
+[Aws Properties Route53 Recordset](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-name)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3042.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3042.toml
new file mode 100644
index 00000000..e3fe64ae
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3042.toml
@@ -0,0 +1,12 @@
+title = "Check at least one essential container is specified"
+verbose_name = "E3042"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["properties", "ecs", "task", "container", "fargate"]
+description = '''
+Check that every TaskDefinition specifies at least one essential container
+
+### References:
+[Aws Properties Ecs Taskdefinition Containerdefinitions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-essential)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3043.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3043.toml
new file mode 100644
index 00000000..2007321a
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3043.toml
@@ -0,0 +1,12 @@
+title = "Validate parameters for in a nested stack"
+verbose_name = "E3043"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "cloudformation"]
+description = '''
+Evalute if parameters for a nested stack are specified and if parameters are specified for a nested stack that aren't required.
+
+### References:
+[CloudFormation Python Lint](https://github.com/awslabs/cfn-python-lint)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3044.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3044.toml
new file mode 100644
index 00000000..aa5c8e32
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3044.toml
@@ -0,0 +1,12 @@
+title = "Check fargate service scheduling strategy"
+verbose_name = "E3044"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["properties", "ecs", "service", "container", "fargate"]
+description = '''
+Check that Fargate service scheduling strategy is REPLICA
+
+### References:
+[Aws Resource Ecs Service](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-schedulingstrategy)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3045.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3045.toml
new file mode 100644
index 00000000..30a285b2
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3045.toml
@@ -0,0 +1,12 @@
+title = "Validate accesscontrol are set with ownershipcontrols"
+verbose_name = "E3045"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "s3"]
+description = '''
+When using AccessControl other than private you must also configure OwnershipControls. The default is bucket owner enforced which disables ACLs.
+
+### References:
+[About Object Ownership](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3050.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3050.toml
new file mode 100644
index 00000000..809927aa
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3050.toml
@@ -0,0 +1,12 @@
+title = "Check if refing to a iam resource with path set"
+verbose_name = "E3050"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["properties", "iam"]
+description = '''
+Some resources don't support looking up the IAM resource by name. This check validates when a REF is being used and the Path is not '/'
+
+### References:
+[Reference_Policies_Elements](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3502.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3502.toml
new file mode 100644
index 00000000..a9b6f6af
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3502.toml
@@ -0,0 +1,12 @@
+title = "Check if a json object is within size limits"
+verbose_name = "E3502"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "limits", "json"]
+description = '''
+Validate properties that are JSON values so that their length is within the limits
+
+### References:
+[CloudFormation Limits](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3503.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3503.toml
new file mode 100644
index 00000000..29117ca0
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3503.toml
@@ -0,0 +1,12 @@
+title = "Validationdomain is superdomain of domainname"
+verbose_name = "E3503"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["certificate", "certificatemanager", "domainvalidationoptions", "validationdomain"]
+description = '''
+In ValidationDomainOptions, the ValidationDomain must be a superdomain of the DomainName being validated
+
+### References:
+[Aws Properties Certificatemanager Certificate Domainvalidationoption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-certificatemanager-certificate-domainvalidationoption.html#cfn-certificatemanager-certificate-domainvalidationoption-validationdomain)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3504.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3504.toml
new file mode 100644
index 00000000..44f6057c
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E3504.toml
@@ -0,0 +1,12 @@
+title = "Check minimum 90 period is met between backupplan cold and delete"
+verbose_name = "E3504"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["properties", "backup", "plan", "lifecycle"]
+description = '''
+Check that Backup plans with lifecycle rules have >= 90 days between cold and delete
+
+### References:
+[Aws Properties Backup Backupplan Lifecycleresourcetype](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-lifecycleresourcetype.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E4001.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E4001.toml
new file mode 100644
index 00000000..1bd138ed
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E4001.toml
@@ -0,0 +1,12 @@
+title = "Metadata interface have appropriate properties"
+verbose_name = "E4001"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["metadata"]
+description = '''
+Metadata Interface properties are properly configured
+
+### References:
+[Aws Resource CloudFormation Interface](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-interface.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E4002.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E4002.toml
new file mode 100644
index 00000000..10999e03
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E4002.toml
@@ -0,0 +1,12 @@
+title = "Validate the configuration of the metadata section"
+verbose_name = "E4002"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["metadata"]
+description = '''
+Validates that Metadata section is an object and has no null values
+
+### References:
+[Metadata Section Structure](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E5001.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E5001.toml
new file mode 100644
index 00000000..aa84d50b
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E5001.toml
@@ -0,0 +1,12 @@
+title = "Check that modules resources are valid"
+verbose_name = "E5001"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "modules"]
+description = '''
+Check that Modules resources are valid
+
+### References:
+[Userguide](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E6001.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E6001.toml
new file mode 100644
index 00000000..3f896d66
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E6001.toml
@@ -0,0 +1,12 @@
+title = "Outputs have appropriate properties"
+verbose_name = "E6001"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["outputs"]
+description = '''
+Making sure the outputs are properly configured
+
+### References:
+[Outputs Section Structure](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/outputs-section-structure.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E6002.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E6002.toml
new file mode 100644
index 00000000..0db03ca1
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E6002.toml
@@ -0,0 +1,12 @@
+title = "Outputs have required properties"
+verbose_name = "E6002"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["outputs"]
+description = '''
+Making sure the outputs have required properties
+
+### References:
+[Outputs Section Structure](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/outputs-section-structure.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E6003.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E6003.toml
new file mode 100644
index 00000000..ba0ff5f1
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E6003.toml
@@ -0,0 +1,12 @@
+title = "Outputs have values of strings"
+verbose_name = "E6003"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["outputs"]
+description = '''
+Making sure the outputs have strings as values
+
+### References:
+[Outputs Section Structure](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/outputs-section-structure.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E6004.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E6004.toml
new file mode 100644
index 00000000..33bbd15b
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E6004.toml
@@ -0,0 +1,12 @@
+title = "Outputs have appropriate names"
+verbose_name = "E6004"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["outputs"]
+description = '''
+Check if Outputs are properly named (A-Za-z0-9)
+
+### References:
+[Outputs Section Structure](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/outputs-section-structure.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E6005.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E6005.toml
new file mode 100644
index 00000000..81d3981c
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E6005.toml
@@ -0,0 +1,12 @@
+title = "Outputs descriptions can only be strings"
+verbose_name = "E6005"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["outputs"]
+description = '''
+Outputs descriptions can only be strings
+
+### References:
+[Outputs Section Structure](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/outputs-section-structure.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E6010.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E6010.toml
new file mode 100644
index 00000000..6eae1f63
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E6010.toml
@@ -0,0 +1,12 @@
+title = "Output limit not exceeded"
+verbose_name = "E6010"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["outputs", "limits"]
+description = '''
+Check the number of Outputs in the template is less than the upper limit
+
+### References:
+[CloudFormation Limits](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E6011.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E6011.toml
new file mode 100644
index 00000000..136ae019
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E6011.toml
@@ -0,0 +1,12 @@
+title = "Output name limit not exceeded"
+verbose_name = "E6011"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["outputs", "limits"]
+description = '''
+Check the size of Output names in the template is less than the upper limit
+
+### References:
+[CloudFormation Limits](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E6012.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E6012.toml
new file mode 100644
index 00000000..344764dd
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E6012.toml
@@ -0,0 +1,12 @@
+title = "Output description limit not exceeded"
+verbose_name = "E6012"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["outputs", "limits"]
+description = '''
+Check the size of Output description in the template is less than the upper limit
+
+### References:
+[Outputs Section Structure](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/outputs-section-structure.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E7001.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E7001.toml
new file mode 100644
index 00000000..742990ec
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E7001.toml
@@ -0,0 +1,12 @@
+title = "Mappings are appropriately configured"
+verbose_name = "E7001"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["mappings"]
+description = '''
+Check if Mappings are properly configured
+
+### References:
+[Mappings Section Structure](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/mappings-section-structure.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E7002.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E7002.toml
new file mode 100644
index 00000000..a001e8aa
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E7002.toml
@@ -0,0 +1,12 @@
+title = "Mappings have appropriate names"
+verbose_name = "E7002"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["mappings"]
+description = '''
+Check if Mappings are properly named (A-Za-z0-9)
+
+### References:
+[Mappings Section Structure](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/mappings-section-structure.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E7003.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E7003.toml
new file mode 100644
index 00000000..273aa321
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E7003.toml
@@ -0,0 +1,12 @@
+title = "Mapping keys are strings and alphanumeric"
+verbose_name = "E7003"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["mappings"]
+description = '''
+Check if Mappings keys are properly typed as strings and alphanumeric
+
+### References:
+[Mappings Section Structure](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/mappings-section-structure.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E7010.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E7010.toml
new file mode 100644
index 00000000..d3efe484
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E7010.toml
@@ -0,0 +1,12 @@
+title = "Mapping limit not exceeded"
+verbose_name = "E7010"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["mappings", "limits"]
+description = '''
+Check the number of Mappings in the template is less than the upper limit
+
+### References:
+[CloudFormation Limits](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E7011.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E7011.toml
new file mode 100644
index 00000000..3cbf9ec9
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E7011.toml
@@ -0,0 +1,12 @@
+title = "Mapping name limit not exceeded"
+verbose_name = "E7011"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["mappings", "limits"]
+description = '''
+Check the size of Mapping names in the template is less than the upper limit
+
+### References:
+[CloudFormation Limits](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E7012.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E7012.toml
new file mode 100644
index 00000000..37c86119
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E7012.toml
@@ -0,0 +1,12 @@
+title = "Mapping attribute limit not exceeded"
+verbose_name = "E7012"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["mappings", "limits"]
+description = '''
+Check if the amount of Mapping attributes in the template is less than the upper limit
+
+### References:
+[CloudFormation Limits](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E8001.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E8001.toml
new file mode 100644
index 00000000..ecf9c29d
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E8001.toml
@@ -0,0 +1,12 @@
+title = "Conditions have appropriate properties"
+verbose_name = "E8001"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["conditions"]
+description = '''
+Check if Conditions are properly configured
+
+### References:
+[Conditions Section Structure](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/conditions-section-structure.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E8002.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E8002.toml
new file mode 100644
index 00000000..92d4101e
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E8002.toml
@@ -0,0 +1,12 @@
+title = "Check if the referenced conditions are defined"
+verbose_name = "E8002"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["conditions"]
+description = '''
+Making sure the used conditions are actually defined in the Conditions section
+
+### References:
+[Conditions Section Structure](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/conditions-section-structure.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E8003.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E8003.toml
new file mode 100644
index 00000000..e914d7bc
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E8003.toml
@@ -0,0 +1,12 @@
+title = "Check fn::equals structure for validity"
+verbose_name = "E8003"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["functions", "equals"]
+description = '''
+Check Fn::Equals is a list of two elements
+
+### References:
+[Intrinsic Function Reference Conditions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-conditions.html#intrinsic-function-reference-conditions-equals)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E8004.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E8004.toml
new file mode 100644
index 00000000..ab48f9e6
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E8004.toml
@@ -0,0 +1,12 @@
+title = "Check fn::and structure for validity"
+verbose_name = "E8004"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["functions", "and"]
+description = '''
+Check Fn::And is a list of two elements
+
+### References:
+[Intrinsic Function Reference Conditions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-conditions.html#intrinsic-function-reference-conditions-and)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E8005.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E8005.toml
new file mode 100644
index 00000000..c0f7372b
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E8005.toml
@@ -0,0 +1,12 @@
+title = "Check fn::not structure for validity"
+verbose_name = "E8005"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["functions", "not"]
+description = '''
+Check Fn::Not is a list of one element
+
+### References:
+[Intrinsic Function Reference Conditions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-conditions.html#intrinsic-function-reference-conditions-not)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-E8006.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E8006.toml
new file mode 100644
index 00000000..5218a0f9
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-E8006.toml
@@ -0,0 +1,12 @@
+title = "Check fn::or structure for validity"
+verbose_name = "E8006"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["functions", "or"]
+description = '''
+Check Fn::Or is a list of two elements
+
+### References:
+[Intrinsic Function Reference Conditions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-conditions.html#intrinsic-function-reference-conditions-or)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-I1002.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I1002.toml
new file mode 100644
index 00000000..9bbb2d57
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I1002.toml
@@ -0,0 +1,12 @@
+title = "Template size limit"
+verbose_name = "I1002"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["limits"]
+description = '''
+Check the size of the template is approaching the upper limit
+
+### References:
+[CloudFormation Limits](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-I1003.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I1003.toml
new file mode 100644
index 00000000..2d8d6ccb
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I1003.toml
@@ -0,0 +1,12 @@
+title = "Template description limit"
+verbose_name = "I1003"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["description", "limits"]
+description = '''
+Check if the size of the template description is approaching the upper limit
+
+### References:
+[CloudFormation Limits](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-I1022.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I1022.toml
new file mode 100644
index 00000000..af987aba
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I1022.toml
@@ -0,0 +1,12 @@
+title = "Use sub instead of join"
+verbose_name = "I1022"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["functions", "sub", "join"]
+description = '''
+Prefer a sub instead of Join when using a join delimiter that is empty
+
+### References:
+[Intrinsic Function Reference Sub](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-I2010.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I2010.toml
new file mode 100644
index 00000000..02214d03
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I2010.toml
@@ -0,0 +1,12 @@
+title = "Parameter limit"
+verbose_name = "I2010"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["parameters", "limits"]
+description = '''
+Check the number of Parameters in the template is approaching the upper limit
+
+### References:
+[CloudFormation Limits](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-I2011.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I2011.toml
new file mode 100644
index 00000000..d98c6f76
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I2011.toml
@@ -0,0 +1,12 @@
+title = "Parameter name limit"
+verbose_name = "I2011"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["parameters", "limits"]
+description = '''
+Check the size of Parameter names in the template is approaching the upper limit
+
+### References:
+[CloudFormation Limits](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-I2012.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I2012.toml
new file mode 100644
index 00000000..1fba696d
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I2012.toml
@@ -0,0 +1,12 @@
+title = "Parameter value limit"
+verbose_name = "I2012"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["parameters", "limits"]
+description = '''
+Check if the size of Parameter values in the template is approaching the upper limit
+
+### References:
+[CloudFormation Limits](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-I2530.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I2530.toml
new file mode 100644
index 00000000..247e634e
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I2530.toml
@@ -0,0 +1,12 @@
+title = "Validate that snapstart is configured for >= java11 runtimes"
+verbose_name = "I2530"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "lambda"]
+description = '''
+SnapStart is a no-cost feature that can increase performance up to 10x. Enable SnapStart for Java 11 and greater runtimes
+
+### References:
+[Snapstart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-I3010.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I3010.toml
new file mode 100644
index 00000000..98f34604
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I3010.toml
@@ -0,0 +1,12 @@
+title = "Resource limit"
+verbose_name = "I3010"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "limits"]
+description = '''
+Check the number of Resources in the template is approaching the upper limit
+
+### References:
+[CloudFormation Limits](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-I3011.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I3011.toml
new file mode 100644
index 00000000..a32d33d7
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I3011.toml
@@ -0,0 +1,12 @@
+title = "Check stateful resources have a set updatereplacepolicy/deletionpolicy"
+verbose_name = "I3011"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "updatereplacepolicy", "deletionpolicy"]
+description = '''
+The default action when replacing/removing a resource is to delete it. This check requires you to explicitly set policies
+
+### References:
+[Aws Attribute Deletionpolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-I3012.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I3012.toml
new file mode 100644
index 00000000..25eb4061
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I3012.toml
@@ -0,0 +1,12 @@
+title = "Resource name limit"
+verbose_name = "I3012"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "limits"]
+description = '''
+Check the size of Resource names in the template is approaching the upper limit
+
+### References:
+[CloudFormation Limits](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-I3013.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I3013.toml
new file mode 100644
index 00000000..01e4e168
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I3013.toml
@@ -0,0 +1,12 @@
+title = "Check resources with auto expiring content have explicit retention period"
+verbose_name = "I3013"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "retentionperiod"]
+description = '''
+The behaviour for data retention is different across AWS Services.If no retention period is specified the default for some services is to delete the data after a period of time.This check requires you to explicitly set the retention period for those resources to avoid unexpected data losses
+
+### References:
+[CloudFormation Python Lint](https://github.com/aws-cloudformation/cfn-python-lint)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-I3037.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I3037.toml
new file mode 100644
index 00000000..65920142
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I3037.toml
@@ -0,0 +1,12 @@
+title = "Check if a list that allows duplicates has any duplicates"
+verbose_name = "I3037"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "property", "list"]
+description = '''
+Certain lists support duplicate items.Provide an alert when list of strings or numbers have repeats.
+
+### References:
+[Rules](https://github.com/aws-cloudformation/cfn-python-lint/blob/main/docs/rules.md#rules-1)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-I3042.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I3042.toml
new file mode 100644
index 00000000..92b00e7d
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I3042.toml
@@ -0,0 +1,12 @@
+title = "Arns should use correctly placed pseudo parameters"
+verbose_name = "I3042"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources"]
+description = '''
+Checks Resources if ARNs use correctly placed Pseudo Parameters instead of hardcoded Partition, Region, and Account Number
+
+### References:
+[]()
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-I3100.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I3100.toml
new file mode 100644
index 00000000..5fd280fb
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I3100.toml
@@ -0,0 +1,12 @@
+title = "Checks for legacy instance type generations"
+verbose_name = "I3100"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "ec2", "rds", "elasticcache", "elasticsearch"]
+description = '''
+New instance type generations increase performance and decrease cost
+
+### References:
+[Previous Generation](https://aws.amazon.com/ec2/previous-generation/)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-I6010.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I6010.toml
new file mode 100644
index 00000000..7a9f47a5
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I6010.toml
@@ -0,0 +1,12 @@
+title = "Output limit"
+verbose_name = "I6010"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["outputs", "limits"]
+description = '''
+Check the number of Outputs in the template is approaching the upper limit
+
+### References:
+[CloudFormation Limits](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-I6011.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I6011.toml
new file mode 100644
index 00000000..a62cf204
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I6011.toml
@@ -0,0 +1,12 @@
+title = "Output name limit"
+verbose_name = "I6011"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["outputs", "limits"]
+description = '''
+Check the size of Output names in the template is approaching the upper limit
+
+### References:
+[CloudFormation Limits](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-I6012.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I6012.toml
new file mode 100644
index 00000000..92cb2e0b
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I6012.toml
@@ -0,0 +1,12 @@
+title = "Output description limit"
+verbose_name = "I6012"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["outputs", "limits"]
+description = '''
+Check the size of Output description in the template is approaching the upper limit
+
+### References:
+[Outputs Section Structure](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/outputs-section-structure.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-I7010.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I7010.toml
new file mode 100644
index 00000000..61c26836
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I7010.toml
@@ -0,0 +1,12 @@
+title = "Mapping limit"
+verbose_name = "I7010"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["mappings", "limits"]
+description = '''
+Check the number of Mappings in the template is approaching the upper limit
+
+### References:
+[CloudFormation Limits](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-I7011.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I7011.toml
new file mode 100644
index 00000000..081173fb
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I7011.toml
@@ -0,0 +1,12 @@
+title = "Mapping name limit"
+verbose_name = "I7011"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["mappings", "limits"]
+description = '''
+Check the size of Mapping names in the template is approaching the upper limit
+
+### References:
+[CloudFormation Limits](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-I7012.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I7012.toml
new file mode 100644
index 00000000..795c8529
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-I7012.toml
@@ -0,0 +1,12 @@
+title = "Mapping attribute limit"
+verbose_name = "I7012"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["mappings", "limits"]
+description = '''
+Check if the amount of Mapping attributes in the template is approaching the upper limit
+
+### References:
+[CloudFormation Limits](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-W1001.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W1001.toml
new file mode 100644
index 00000000..5fc54ad9
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W1001.toml
@@ -0,0 +1,12 @@
+title = "Ref/getatt to resource that is available when conditions are applied"
+verbose_name = "W1001"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["conditions", "resources", "relationships", "ref", "getatt", "sub"]
+description = '''
+Check the Conditions that affect a Ref/GetAtt to make sure the resource being related to is available when there is a resource condition.
+
+### References:
+[Intrinsic Function Reference Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-W1011.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W1011.toml
new file mode 100644
index 00000000..208e6b4d
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W1011.toml
@@ -0,0 +1,12 @@
+title = "Findinmap keys exist in the map"
+verbose_name = "W1011"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["functions", "findinmap"]
+description = '''
+Checks the keys in a FindInMap to make sure they exist. Check only if the Map Name is a string and if the key is a string.
+
+### References:
+[Intrinsic Function Reference Findinmap](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-findinmap.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-W1019.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W1019.toml
new file mode 100644
index 00000000..8f7e7171
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W1019.toml
@@ -0,0 +1,12 @@
+title = "Sub validation of parameters"
+verbose_name = "W1019"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["functions", "sub"]
+description = '''
+Validate that Fn::Sub Parameters are used
+
+### References:
+[Intrinsic Function Reference Sub](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-W1020.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W1020.toml
new file mode 100644
index 00000000..3b98d20c
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W1020.toml
@@ -0,0 +1,12 @@
+title = "Sub isn't needed if it doesn't have a variable defined"
+verbose_name = "W1020"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["functions", "sub"]
+description = '''
+Checks sub strings to see if a variable is defined.
+
+### References:
+[Intrinsic Function Reference Sub](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-W2001.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W2001.toml
new file mode 100644
index 00000000..da54fa04
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W2001.toml
@@ -0,0 +1,12 @@
+title = "Check if parameters are used"
+verbose_name = "W2001"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["parameters"]
+description = '''
+Making sure the parameters defined are used
+
+### References:
+[CloudFormation Python Lint](https://github.com/aws-cloudformation/cfn-python-lint)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-W2030.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W2030.toml
new file mode 100644
index 00000000..720dd875
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W2030.toml
@@ -0,0 +1,12 @@
+title = "Check if parameters have a valid value"
+verbose_name = "W2030"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["parameters", "resources", "property", "allowed value"]
+description = '''
+Check if parameters have a valid value in case of an enumator. The Parameter's allowed values is based on the usages in property (Ref)
+
+### References:
+[CloudFormation Resource Specification](https://github.com/aws-cloudformation/cfn-python-lint/blob/main/docs/cfn-resource-specification.md#allowedvalue)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-W2031.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W2031.toml
new file mode 100644
index 00000000..f665c78a
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W2031.toml
@@ -0,0 +1,12 @@
+title = "Check if parameters have a valid value based on an allowed pattern"
+verbose_name = "W2031"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["parameters", "resources", "property", "allowed pattern"]
+description = '''
+Check if parameters have a valid value in a pattern. The Parameter's allowed pattern is based on the usages in property (Ref)
+
+### References:
+[CloudFormation Resource Specification](https://github.com/aws-cloudformation/cfn-python-lint/blob/main/docs/cfn-resource-specification.md#allowedpattern)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-W2501.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W2501.toml
new file mode 100644
index 00000000..a2be7fdd
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W2501.toml
@@ -0,0 +1,12 @@
+title = "Check if password properties are correctly configured"
+verbose_name = "W2501"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["parameters", "passwords", "security", "dynamic reference"]
+description = '''
+Password properties should not be strings and if parameter using NoEcho
+
+### References:
+[Best Practices](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html#creds)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-W2506.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W2506.toml
new file mode 100644
index 00000000..db201b20
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W2506.toml
@@ -0,0 +1,12 @@
+title = "Check if imageid parameters have the correct type"
+verbose_name = "W2506"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["parameters", "ec2", "imageid"]
+description = '''
+See if there are any refs for ImageId to a parameter of inappropriate type. Appropriate Types are [AWS::EC2::Image::Id, AWS::SSM::Parameter::Value]
+
+### References:
+[Best Practices](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html#parmtypes)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-W2510.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W2510.toml
new file mode 100644
index 00000000..73eeee09
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W2510.toml
@@ -0,0 +1,12 @@
+title = "Parameter memory size attributes should have max and min"
+verbose_name = "W2510"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["parameters", "lambda"]
+description = '''
+Check if a parameter that is used for Lambda memory size should have a min and max size that matches Lambda constraints
+
+### References:
+[Api_Createfunction](https://docs.aws.amazon.com/lambda/latest/dg/API_CreateFunction.html#SSS-CreateFunction-request-MemorySize)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-W2511.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W2511.toml
new file mode 100644
index 00000000..f9049a00
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W2511.toml
@@ -0,0 +1,12 @@
+title = "Check iam resource policies syntax"
+verbose_name = "W2511"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["properties", "iam"]
+description = '''
+See if the elements inside an IAM Resource policy are configured correctly.
+
+### References:
+[Reference_Policies_Elements](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-W2530.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W2530.toml
new file mode 100644
index 00000000..639b8bbf
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W2530.toml
@@ -0,0 +1,12 @@
+title = "Validate that snapstart is properly configured"
+verbose_name = "W2530"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "lambda"]
+description = '''
+To properly leverage SnapStart, you must configure both the lambda function and attach a Lambda version resource
+
+### References:
+[Snapstart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-W2531.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W2531.toml
new file mode 100644
index 00000000..ddf7ee6d
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W2531.toml
@@ -0,0 +1,12 @@
+title = "Check if eol lambda function runtimes are used"
+verbose_name = "W2531"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "lambda", "runtime"]
+description = '''
+Check if an EOL Lambda Runtime is specified and give a warning if used.
+
+### References:
+[Runtime Support Policy](https://docs.aws.amazon.com/lambda/latest/dg/runtime-support-policy.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-W2533.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W2533.toml
new file mode 100644
index 00000000..d366a635
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W2533.toml
@@ -0,0 +1,12 @@
+title = "Check required properties for lambda if the deployment package is a .zip file"
+verbose_name = "W2533"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "lambda"]
+description = '''
+When the package type is Zip, you must also specify the `handler` and `runtime` properties.
+
+### References:
+[Aws Resource Lambda Function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-W3002.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W3002.toml
new file mode 100644
index 00000000..d89d2b79
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W3002.toml
@@ -0,0 +1,12 @@
+title = "Warn when properties are configured to only work with the package command"
+verbose_name = "W3002"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources"]
+description = '''
+Some properties can be configured to only work with the CloudFormationpackage command. Warn when this is the case so user is aware.
+
+### References:
+[Package](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/package.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-W3005.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W3005.toml
new file mode 100644
index 00000000..e1765b21
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W3005.toml
@@ -0,0 +1,12 @@
+title = "Check obsolete dependson configuration for resources"
+verbose_name = "W3005"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "dependson", "ref", "getatt"]
+description = '''
+Check if DependsOn is specified if not needed. A Ref or a Fn::GetAtt already is an implicit dependency.
+
+### References:
+[Optimize Aws CloudFormation Templates](https://aws.amazon.com/blogs/devops/optimize-aws-cloudformation-templates/)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-W3010.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W3010.toml
new file mode 100644
index 00000000..377f4f05
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W3010.toml
@@ -0,0 +1,12 @@
+title = "Availability zone parameters should not be hardcoded"
+verbose_name = "W3010"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["parameters", "availabilityzone"]
+description = '''
+Check if an Availability Zone property is hardcoded.
+
+### References:
+[CloudFormation Python Lint](https://github.com/aws-cloudformation/cfn-python-lint)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-W3011.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W3011.toml
new file mode 100644
index 00000000..3b386876
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W3011.toml
@@ -0,0 +1,12 @@
+title = "Check resources with updatereplacepolicy/deletionpolicy have both"
+verbose_name = "W3011"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "updatereplacepolicy", "deletionpolicy"]
+description = '''
+Both UpdateReplacePolicy and DeletionPolicy are needed to protect resources from deletion
+
+### References:
+[Aws Attribute Deletionpolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-W3037.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W3037.toml
new file mode 100644
index 00000000..85fc8535
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W3037.toml
@@ -0,0 +1,12 @@
+title = "Check iam permission configuration"
+verbose_name = "W3037"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["properties", "iam", "permissions"]
+description = '''
+Check for valid IAM Permissions
+
+### References:
+[Reference_Policies_Elements_Action](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_action.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-W3045.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W3045.toml
new file mode 100644
index 00000000..2c161852
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W3045.toml
@@ -0,0 +1,12 @@
+title = "Controlling access to an s3 bucket should be done with bucket policies"
+verbose_name = "W3045"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "s3"]
+description = '''
+Nearly all access control configurations can be more successfully achieved with bucket policies. Consider using bucket policies instead of access control.
+
+### References:
+[About Object Ownership](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-W4001.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W4001.toml
new file mode 100644
index 00000000..e492635a
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W4001.toml
@@ -0,0 +1,12 @@
+title = "Metadata interface parameters exist"
+verbose_name = "W4001"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["metadata"]
+description = '''
+Metadata Interface parameters actually exist
+
+### References:
+[Aws Resource CloudFormation Interface](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-interface.html)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-W4002.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W4002.toml
new file mode 100644
index 00000000..8c512c99
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W4002.toml
@@ -0,0 +1,12 @@
+title = "Check for noecho references"
+verbose_name = "W4002"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["resources", "NoEcho"]
+description = '''
+Check if there is a NoEcho enabled parameter referenced within a resources Metadata section
+
+### References:
+[Parameters Section Structure](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html#parameters-section-structure-properties)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-W6001.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W6001.toml
new file mode 100644
index 00000000..08554be3
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W6001.toml
@@ -0,0 +1,12 @@
+title = "Check outputs using importvalue"
+verbose_name = "W6001"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["outputs", "importvalue"]
+description = '''
+Check if the Output value is set using ImportValue, so creating an Output of an Output
+
+### References:
+[CloudFormation Python Lint](https://github.com/aws-cloudformation/cfn-python-lint)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-W7001.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W7001.toml
new file mode 100644
index 00000000..2a140c22
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W7001.toml
@@ -0,0 +1,12 @@
+title = "Check if mappings are used"
+verbose_name = "W7001"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["mappings"]
+description = '''
+Making sure the mappings defined are used
+
+### References:
+[CloudFormation Python Lint](https://github.com/aws-cloudformation/cfn-python-lint)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-W8001.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W8001.toml
new file mode 100644
index 00000000..b3a7fe4f
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W8001.toml
@@ -0,0 +1,12 @@
+title = "Check if conditions are used"
+verbose_name = "W8001"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["conditions"]
+description = '''
+Making sure the conditions defined are used
+
+### References:
+[CloudFormation Python Lint](https://github.com/aws-cloudformation/cfn-python-lint)
+'''
diff --git a/analyzers/cfn-lint/.deepsource/issues/CFLIN-W8003.toml b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W8003.toml
new file mode 100644
index 00000000..a13f7011
--- /dev/null
+++ b/analyzers/cfn-lint/.deepsource/issues/CFLIN-W8003.toml
@@ -0,0 +1,12 @@
+title = "Fn::equals will always return true or false"
+verbose_name = "W8003"
+severity = "major"
+category = "antipattern"
+weight = 70
+tags = ["functions", "equals"]
+description = '''
+Validate Fn::Equals to see if its comparing two strings or two equal items. While this works it may not be intended.
+
+### References:
+[Intrinsic Function Reference Conditions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-conditions.html#intrinsic-function-reference-conditions-equals)
+'''
diff --git a/analyzers/cfn-lint/CI/github-actions.yaml b/analyzers/cfn-lint/CI/github-actions.yaml
new file mode 100644
index 00000000..cbb7f175
--- /dev/null
+++ b/analyzers/cfn-lint/CI/github-actions.yaml
@@ -0,0 +1,42 @@
+# A copy-paste Github Actions config to run cfn-lint and report the artifact to DeepSource
+name: Scan with cfn-lint
+
+on:
+ # Note that both `push` and `pull_request` triggers should be present for GitHub to consistently present cfn-lint
+ # SARIF reports.
+ push:
+ branches: [ main, master ]
+ pull_request:
+
+jobs:
+ scan:
+ runs-on: ubuntu-latest
+ env:
+ DEEPSOURCE_DSN: ${{ secrets.DEEPSOURCE_DSN }}
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ ref: ${{ github.event.pull_request.head.sha }}
+
+ - name: Scan files with cfn-lint
+ uses: scottbrenner/cfn-lint-action@v2
+
+ - name: Generate the SARIF report
+ id: cfn-lint-action-scan
+ run: |
+ cfn-lint -t ./**/*.yaml -f sarif > cfn-lint.sarif
+ continue-on-error: true
+
+ - name: Upload SARIF report files to DeepSource
+ run: |
+ # Install the CLI
+ curl https://deepsource.io/cli | sh
+
+ # Send the report to DeepSource
+ ./bin/deepsource report --analyzer cfn-lint --analyzer-type community --value-file ./cfn-lint.sarif
+
+ - name: Verify cfn-lint-action succeeded
+ shell: bash
+ run: |
+ echo "If this step fails, cfn-lint found issues. Check the output of the scan step above."
+ [[ "${{ steps.cfn-lint-action-scan.outcome }}" == "success" ]]
\ No newline at end of file
diff --git a/analyzers/cfn-lint/utils/issue_gen.py b/analyzers/cfn-lint/utils/issue_gen.py
new file mode 100644
index 00000000..ff6b3884
--- /dev/null
+++ b/analyzers/cfn-lint/utils/issue_gen.py
@@ -0,0 +1,178 @@
+# To run: python issue_gen.py --root_directory=
+import argparse
+import ast
+import json
+import os
+from pathlib import Path
+from textwrap import dedent
+from typing import Dict, List, Optional, Union
+from urllib.parse import unquote, urlparse
+
+
+def concat_binop(binop: ast.AST) -> str:
+ """
+ Recursively concatenate binary operation nodes into a single string.
+
+ Args:
+ binop (ast.AST): Binary operation node.
+
+ Returns:
+ str: Concatenated string.
+ """
+ if isinstance(binop, ast.BinOp):
+ return concat_binop(binop.left) + concat_binop(binop.right)
+ if isinstance(binop, ast.Constant):
+ return binop.value
+ return ""
+
+
+def extract_class_attributes(node: ast.ClassDef) -> Dict[str, Union[str, List[str]]]:
+ """
+ Extract class attributes from a ClassDef node in an abstract syntax tree.
+
+ Args:
+ node (ast.ClassDef): ClassDef node.
+
+ Returns:
+ Dict[str, Union[str, List[str]]]: Extracted class attributes.
+ """
+ class_data = {}
+ for item in node.body:
+ if isinstance(item, ast.Assign):
+ for target in item.targets:
+ if target.id in ["id", "shortdesc", "description", "source_url"]:
+ class_data[target.id] = concat_binop(item.value)
+ elif target.id == "tags":
+ class_data["tags"] = [
+ concat_binop(element) for element in item.value.elts
+ ]
+ return class_data
+
+
+def extract_attributes_from_code(code: str) -> Dict[str, Union[str, List[str]]]:
+ """
+ Extract attributes from Python code.
+
+ Args:
+ code (str): Python code as a string.
+
+ Returns:
+ Dict[str, Union[str, List[str]]]: Extracted attributes.
+ """
+ class_data = {}
+ tree = ast.parse(code)
+ for node in ast.walk(tree):
+ if isinstance(node, ast.ClassDef):
+ class_data.update(extract_class_attributes(node))
+ return class_data
+
+
+def extract_page_name(url: str) -> Optional[str]:
+ """
+ Extract the page name from a URL.
+
+ Args:
+ url (str): Input URL.
+
+ Returns:
+ Optional[str]: Extracted page name or None if not found.
+ """
+ parsed_url = urlparse(url)
+ path_segments = parsed_url.path.strip("/").split("/")
+ if path_segments:
+ last_segment = os.path.splitext(path_segments[-1])[0]
+ page_name = unquote(last_segment.replace("-", " ")).title()
+ return page_name.replace("Cfn", "CloudFormation").replace(
+ "Cloudformation", "CloudFormation"
+ )
+ return None
+
+
+def build_toml(issue: Dict[str, Union[str, List[str]]]) -> str:
+ """
+ Build a TOML string from issue data.
+
+ Args:
+ issue (Dict[str, Union[str, List[str]]]): Issue data.
+
+ Returns:
+ str: TOML string.
+ """
+ title = issue["shortdesc"]
+ description = issue["description"]
+ source_url = issue.get("source_url", "")
+ tags = issue.get("tags", [])
+
+ content = f"""\
+ title = {json.dumps(title.capitalize())}
+ verbose_name = "{issue["id"]}"
+ severity = "major"
+ category = "antipattern"
+ weight = 70
+ tags = [{", ".join([json.dumps(tag) for tag in tags])}]
+ description = '''
+ {description}
+
+ ### References:
+ [{extract_page_name(source_url)}]({source_url})
+ '''
+ """
+ return dedent(content)
+
+
+def write_to_file(issue: Dict[str, Union[str, List[str]]]) -> None:
+ """
+ Write issue data to a TOML file.
+
+ Args:
+ issue (Dict[str, Union[str, List[str]]]): Issue data.
+ """
+ file_name = f"./issues/CFLIN-{issue['id']}.toml"
+ with open(file_name, "w") as file:
+ file.write(build_toml(issue))
+
+
+def extract_attributes_from_directory(
+ directory: str,
+) -> List[Dict[str, Union[str, List[str]]]]:
+ """
+ Extract attributes from Python files in a directory.
+
+ Args:
+ directory (str): Root directory to search for Python files.
+
+ Returns:
+ List[Dict[str, Union[str, List[str]]]]: List of extracted attributes.
+ """
+ all_classes_data = []
+ for root, _, files in os.walk(directory):
+ for file in files:
+ if file.endswith(".py"):
+ file_path = os.path.join(root, file)
+ with open(file_path, "r", encoding="utf-8") as f:
+ try:
+ code = f.read()
+ class_data = extract_attributes_from_code(code)
+ if class_data:
+ all_classes_data.append(class_data)
+ except Exception as e:
+ print(f"Error parsing file {file}: {e}")
+ return all_classes_data
+
+
+if __name__ == "__main__":
+ parser = argparse.ArgumentParser(
+ description="Extract attributes from Python files in a given directory."
+ )
+ parser.add_argument(
+ "--root_directory", help="Root directory of the cfn-lint repository."
+ )
+ args = parser.parse_args()
+
+ base = Path(args.root_directory)
+ path = Path("cfn-lint/src/cfnlint/rules")
+ rules_directory = base / path
+
+ attributes_list = extract_attributes_from_directory(rules_directory)
+ for attributes in attributes_list:
+ write_to_file(attributes)
diff --git a/analyzers/cfn-lint/utils/issue_map.json b/analyzers/cfn-lint/utils/issue_map.json
new file mode 100644
index 00000000..00a55876
--- /dev/null
+++ b/analyzers/cfn-lint/utils/issue_map.json
@@ -0,0 +1,473 @@
+{
+ "W2030": {
+ "issue_code": "CFLIN-W2030"
+ },
+ "E2503": {
+ "issue_code": "CFLIN-E2503"
+ },
+ "W1020": {
+ "issue_code": "CFLIN-W1020"
+ },
+ "E6002": {
+ "issue_code": "CFLIN-E6002"
+ },
+ "E1010": {
+ "issue_code": "CFLIN-E1010"
+ },
+ "W2533": {
+ "issue_code": "CFLIN-W2533"
+ },
+ "E3001": {
+ "issue_code": "CFLIN-E3001"
+ },
+ "E3017": {
+ "issue_code": "CFLIN-E3017"
+ },
+ "E3502": {
+ "issue_code": "CFLIN-E3502"
+ },
+ "E7003": {
+ "issue_code": "CFLIN-E7003"
+ },
+ "W3011": {
+ "issue_code": "CFLIN-W3011"
+ },
+ "E3037": {
+ "issue_code": "CFLIN-E3037"
+ },
+ "I7012": {
+ "issue_code": "CFLIN-I7012"
+ },
+ "E8006": {
+ "issue_code": "CFLIN-E8006"
+ },
+ "I3010": {
+ "issue_code": "CFLIN-I3010"
+ },
+ "E3021": {
+ "issue_code": "CFLIN-E3021"
+ },
+ "E1030": {
+ "issue_code": "CFLIN-E1030"
+ },
+ "I2011": {
+ "issue_code": "CFLIN-I2011"
+ },
+ "E2523": {
+ "issue_code": "CFLIN-E2523"
+ },
+ "E1026": {
+ "issue_code": "CFLIN-E1026"
+ },
+ "I6012": {
+ "issue_code": "CFLIN-I6012"
+ },
+ "E1027": {
+ "issue_code": "CFLIN-E1027"
+ },
+ "E2522": {
+ "issue_code": "CFLIN-E2522"
+ },
+ "W1001": {
+ "issue_code": "CFLIN-W1001"
+ },
+ "E1031": {
+ "issue_code": "CFLIN-E1031"
+ },
+ "I2010": {
+ "issue_code": "CFLIN-I2010"
+ },
+ "E3020": {
+ "issue_code": "CFLIN-E3020"
+ },
+ "I3011": {
+ "issue_code": "CFLIN-I3011"
+ },
+ "W4002": {
+ "issue_code": "CFLIN-W4002"
+ },
+ "E3036": {
+ "issue_code": "CFLIN-E3036"
+ },
+ "W3010": {
+ "issue_code": "CFLIN-W3010"
+ },
+ "E7002": {
+ "issue_code": "CFLIN-E7002"
+ },
+ "E3041": {
+ "issue_code": "CFLIN-E3041"
+ },
+ "E3016": {
+ "issue_code": "CFLIN-E3016"
+ },
+ "E3503": {
+ "issue_code": "CFLIN-E3503"
+ },
+ "E3000": {
+ "issue_code": "CFLIN-E3000"
+ },
+ "W8001": {
+ "issue_code": "CFLIN-W8001"
+ },
+ "E2001": {
+ "issue_code": "CFLIN-E2001"
+ },
+ "E1011": {
+ "issue_code": "CFLIN-E1011"
+ },
+ "E6003": {
+ "issue_code": "CFLIN-E6003"
+ },
+ "W2031": {
+ "issue_code": "CFLIN-W2031"
+ },
+ "E3031": {
+ "issue_code": "CFLIN-E3031"
+ },
+ "E3027": {
+ "issue_code": "CFLIN-E3027"
+ },
+ "E1020": {
+ "issue_code": "CFLIN-E1020"
+ },
+ "E2010": {
+ "issue_code": "CFLIN-E2010"
+ },
+ "E6004": {
+ "issue_code": "CFLIN-E6004"
+ },
+ "E6012": {
+ "issue_code": "CFLIN-E6012"
+ },
+ "E1016": {
+ "issue_code": "CFLIN-E1016"
+ },
+ "E3050": {
+ "issue_code": "CFLIN-E3050"
+ },
+ "E3007": {
+ "issue_code": "CFLIN-E3007"
+ },
+ "E3011": {
+ "issue_code": "CFLIN-E3011"
+ },
+ "E3504": {
+ "issue_code": "CFLIN-E3504"
+ },
+ "E2529": {
+ "issue_code": "CFLIN-E2529"
+ },
+ "W3037": {
+ "issue_code": "CFLIN-W3037"
+ },
+ "E3010": {
+ "issue_code": "CFLIN-E3010"
+ },
+ "I3037": {
+ "issue_code": "CFLIN-I3037"
+ },
+ "E3006": {
+ "issue_code": "CFLIN-E3006"
+ },
+ "E4002": {
+ "issue_code": "CFLIN-E4002"
+ },
+ "E7012": {
+ "issue_code": "CFLIN-E7012"
+ },
+ "E1017": {
+ "issue_code": "CFLIN-E1017"
+ },
+ "E6005": {
+ "issue_code": "CFLIN-E6005"
+ },
+ "E2504": {
+ "issue_code": "CFLIN-E2504"
+ },
+ "E2011": {
+ "issue_code": "CFLIN-E2011"
+ },
+ "E1001": {
+ "issue_code": "CFLIN-E1001"
+ },
+ "E1021": {
+ "issue_code": "CFLIN-E1021"
+ },
+ "W2001": {
+ "issue_code": "CFLIN-W2001"
+ },
+ "E2532": {
+ "issue_code": "CFLIN-E2532"
+ },
+ "W1011": {
+ "issue_code": "CFLIN-W1011"
+ },
+ "E3026": {
+ "issue_code": "CFLIN-E3026"
+ },
+ "E8001": {
+ "issue_code": "CFLIN-E8001"
+ },
+ "E3030": {
+ "issue_code": "CFLIN-E3030"
+ },
+ "W2501": {
+ "issue_code": "CFLIN-W2501"
+ },
+ "E1022": {
+ "issue_code": "CFLIN-E1022"
+ },
+ "E2531": {
+ "issue_code": "CFLIN-E2531"
+ },
+ "E1018": {
+ "issue_code": "CFLIN-E1018"
+ },
+ "E3025": {
+ "issue_code": "CFLIN-E3025"
+ },
+ "E8002": {
+ "issue_code": "CFLIN-E8002"
+ },
+ "W7001": {
+ "issue_code": "CFLIN-W7001"
+ },
+ "E3033": {
+ "issue_code": "CFLIN-E3033"
+ },
+ "E3044": {
+ "issue_code": "CFLIN-E3044"
+ },
+ "E3013": {
+ "issue_code": "CFLIN-E3013"
+ },
+ "E3005": {
+ "issue_code": "CFLIN-E3005"
+ },
+ "E4001": {
+ "issue_code": "CFLIN-E4001"
+ },
+ "E7011": {
+ "issue_code": "CFLIN-E7011"
+ },
+ "E6010": {
+ "issue_code": "CFLIN-E6010"
+ },
+ "E2012": {
+ "issue_code": "CFLIN-E2012"
+ },
+ "E2507": {
+ "issue_code": "CFLIN-E2507"
+ },
+ "E1002": {
+ "issue_code": "CFLIN-E1002"
+ },
+ "E1003": {
+ "issue_code": "CFLIN-E1003"
+ },
+ "E2506": {
+ "issue_code": "CFLIN-E2506"
+ },
+ "E5001": {
+ "issue_code": "CFLIN-E5001"
+ },
+ "E6011": {
+ "issue_code": "CFLIN-E6011"
+ },
+ "E1015": {
+ "issue_code": "CFLIN-E1015"
+ },
+ "E7010": {
+ "issue_code": "CFLIN-E7010"
+ },
+ "E3004": {
+ "issue_code": "CFLIN-E3004"
+ },
+ "E3012": {
+ "issue_code": "CFLIN-E3012"
+ },
+ "E0002": {
+ "issue_code": "CFLIN-E0002"
+ },
+ "E3045": {
+ "issue_code": "CFLIN-E3045"
+ },
+ "E3032": {
+ "issue_code": "CFLIN-E3032"
+ },
+ "E8003": {
+ "issue_code": "CFLIN-E8003"
+ },
+ "I3042": {
+ "issue_code": "CFLIN-I3042"
+ },
+ "W3002": {
+ "issue_code": "CFLIN-W3002"
+ },
+ "E1019": {
+ "issue_code": "CFLIN-E1019"
+ },
+ "E2530": {
+ "issue_code": "CFLIN-E2530"
+ },
+ "E3008": {
+ "issue_code": "CFLIN-E3008"
+ },
+ "E1023": {
+ "issue_code": "CFLIN-E1023"
+ },
+ "W6001": {
+ "issue_code": "CFLIN-W6001"
+ },
+ "E3042": {
+ "issue_code": "CFLIN-E3042"
+ },
+ "E7001": {
+ "issue_code": "CFLIN-E7001"
+ },
+ "E1028": {
+ "issue_code": "CFLIN-E1028"
+ },
+ "E3003": {
+ "issue_code": "CFLIN-E3003"
+ },
+ "E2002": {
+ "issue_code": "CFLIN-E2002"
+ },
+ "W2531": {
+ "issue_code": "CFLIN-W2531"
+ },
+ "E1012": {
+ "issue_code": "CFLIN-E1012"
+ },
+ "E2540": {
+ "issue_code": "CFLIN-E2540"
+ },
+ "E2014": {
+ "issue_code": "CFLIN-E2014"
+ },
+ "I2530": {
+ "issue_code": "CFLIN-I2530"
+ },
+ "E3039": {
+ "issue_code": "CFLIN-E3039"
+ },
+ "E1004": {
+ "issue_code": "CFLIN-E1004"
+ },
+ "I6011": {
+ "issue_code": "CFLIN-I6011"
+ },
+ "E1024": {
+ "issue_code": "CFLIN-E1024"
+ },
+ "E2521": {
+ "issue_code": "CFLIN-E2521"
+ },
+ "W2511": {
+ "issue_code": "CFLIN-W2511"
+ },
+ "E1032": {
+ "issue_code": "CFLIN-E1032"
+ },
+ "I1003": {
+ "issue_code": "CFLIN-I1003"
+ },
+ "W3005": {
+ "issue_code": "CFLIN-W3005"
+ },
+ "I3012": {
+ "issue_code": "CFLIN-I3012"
+ },
+ "W4001": {
+ "issue_code": "CFLIN-W4001"
+ },
+ "E8004": {
+ "issue_code": "CFLIN-E8004"
+ },
+ "I3100": {
+ "issue_code": "CFLIN-I3100"
+ },
+ "I7010": {
+ "issue_code": "CFLIN-I7010"
+ },
+ "E3035": {
+ "issue_code": "CFLIN-E3035"
+ },
+ "E3034": {
+ "issue_code": "CFLIN-E3034"
+ },
+ "W3045": {
+ "issue_code": "CFLIN-W3045"
+ },
+ "I7011": {
+ "issue_code": "CFLIN-I7011"
+ },
+ "E8005": {
+ "issue_code": "CFLIN-E8005"
+ },
+ "I3013": {
+ "issue_code": "CFLIN-I3013"
+ },
+ "E3022": {
+ "issue_code": "CFLIN-E3022"
+ },
+ "I1002": {
+ "issue_code": "CFLIN-I1002"
+ },
+ "I2012": {
+ "issue_code": "CFLIN-I2012"
+ },
+ "W2510": {
+ "issue_code": "CFLIN-W2510"
+ },
+ "E2520": {
+ "issue_code": "CFLIN-E2520"
+ },
+ "E3018": {
+ "issue_code": "CFLIN-E3018"
+ },
+ "W2506": {
+ "issue_code": "CFLIN-W2506"
+ },
+ "I6010": {
+ "issue_code": "CFLIN-I6010"
+ },
+ "E3038": {
+ "issue_code": "CFLIN-E3038"
+ },
+ "E2015": {
+ "issue_code": "CFLIN-E2015"
+ },
+ "E6001": {
+ "issue_code": "CFLIN-E6001"
+ },
+ "E2541": {
+ "issue_code": "CFLIN-E2541"
+ },
+ "W2530": {
+ "issue_code": "CFLIN-W2530"
+ },
+ "E2003": {
+ "issue_code": "CFLIN-E2003"
+ },
+ "I1022": {
+ "issue_code": "CFLIN-I1022"
+ },
+ "W8003": {
+ "issue_code": "CFLIN-W8003"
+ },
+ "E3002": {
+ "issue_code": "CFLIN-E3002"
+ },
+ "W1019": {
+ "issue_code": "CFLIN-W1019"
+ },
+ "E1029": {
+ "issue_code": "CFLIN-E1029"
+ },
+ "E3043": {
+ "issue_code": "CFLIN-E3043"
+ }
+}
\ No newline at end of file
diff --git a/analyzers/cfn-lint/utils/issue_map_gen.py b/analyzers/cfn-lint/utils/issue_map_gen.py
new file mode 100644
index 00000000..2fc2291c
--- /dev/null
+++ b/analyzers/cfn-lint/utils/issue_map_gen.py
@@ -0,0 +1,43 @@
+# To run: python issue_map_gen.py #
+import json
+import os
+import sys
+from typing import Dict
+
+
+def generate_json(directory: str) -> None:
+ """
+ Generate a JSON file containing mappings of issue codes extracted from TOML files in a directory.
+
+ :param directory: The directory containing TOML files with issue codes.
+ :type directory: str
+ :return: None
+ """
+ # Dictionary to hold the mappings
+ issue_codes: Dict[str, dict] = {}
+
+ # Iterate through each file in the directory
+ for filename in os.listdir(directory):
+ if filename.endswith(".toml") and filename.startswith("CFLIN-"):
+ # Extract the issue code (part after 'CFLIN-' and before '.toml')
+ issue_code = filename[len("CFLIN-") : -len(".toml")]
+
+ # Add to the dictionary
+ issue_codes[issue_code] = {"issue_code": f"CFLIN-{issue_code}"}
+
+ # Convert dictionary to JSON
+ json_data: str = json.dumps(issue_codes, indent=4)
+
+ # Write JSON data to a file in the current directory
+ with open("issue_map.json", "w") as file:
+ file.write(json_data)
+ print("JSON data written to issue_map.json")
+
+
+if __name__ == "__main__":
+ if len(sys.argv) != 2:
+ print("Usage: python script.py ")
+ sys.exit(1)
+
+ target: str = sys.argv[1]
+ generate_json(target)
diff --git a/sarif-parser/tests/sarif_files/cfn-lint.sarif b/sarif-parser/tests/sarif_files/cfn-lint.sarif
new file mode 100644
index 00000000..f60d9dd7
--- /dev/null
+++ b/sarif-parser/tests/sarif_files/cfn-lint.sarif
@@ -0,0 +1,229 @@
+{
+ "runs": [
+ {
+ "tool": {
+ "driver": {
+ "name": "cfn-lint",
+ "rules": [
+ {
+ "id": "E3002",
+ "fullDescription": {
+ "text": "Making sure that resources properties are properly configured"
+ },
+ "helpUri": "https://github.com/aws-cloudformation/cfn-python-lint/blob/main/docs/cfn-resource-specification.md#properties",
+ "shortDescription": {
+ "text": "Resource properties are invalid"
+ }
+ },
+ {
+ "id": "E3045",
+ "fullDescription": {
+ "text": "When using AccessControl other than private you must also configure OwnershipControls. The default is bucket owner enforced which disables ACLs."
+ },
+ "helpUri": "https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html",
+ "shortDescription": {
+ "text": "Validate AccessControl are set with OwnershipControls"
+ }
+ },
+ {
+ "id": "E3030",
+ "fullDescription": {
+ "text": "Check if properties have a valid value in case of an enumator"
+ },
+ "helpUri": "https://github.com/aws-cloudformation/cfn-python-lint/blob/main/docs/cfn-resource-specification.md#allowedvalue",
+ "shortDescription": {
+ "text": "Check if properties have a valid value"
+ }
+ },
+ {
+ "id": "W3045",
+ "fullDescription": {
+ "text": "Nearly all access control configurations can be more successfully achieved with bucket policies. Consider using bucket policies instead of access control."
+ },
+ "helpUri": "https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html",
+ "shortDescription": {
+ "text": "Controlling access to an S3 bucket should be done with bucket policies"
+ }
+ }
+ ],
+ "version": "0.83.0",
+ "informationUri": "https://github.com/aws-cloudformation/cfn-lint",
+ "shortDescription": {
+ "text": "Validates AWS CloudFormation templates against the resource specification and additional checks."
+ }
+ }
+ },
+ "results": [
+ {
+ "message": {
+ "text": "You must specify a valid value for AccessControl (SuperPrivate). Valid values are [\"AuthenticatedRead\", \"AwsExecRead\", \"BucketOwnerFullControl\", \"BucketOwnerRead\", \"LogDeliveryWrite\", \"Private\", \"PublicRead\", \"PublicReadWrite\"]"
+ },
+ "level": "error",
+ "locations": [
+ {
+ "physicalLocation": {
+ "region": {
+ "endColumn": 20,
+ "endLine": 10,
+ "startColumn": 7,
+ "startLine": 10
+ },
+ "artifactLocation": {
+ "uri": "invalid.yaml",
+ "uriBaseId": "EXECUTIONROOT"
+ }
+ }
+ }
+ ],
+ "ruleId": "E3030"
+ },
+ {
+ "message": {
+ "text": "A bucket with AccessControl set should also have OwnershipControl configured"
+ },
+ "level": "error",
+ "locations": [
+ {
+ "physicalLocation": {
+ "region": {
+ "endColumn": 20,
+ "endLine": 10,
+ "startColumn": 7,
+ "startLine": 10
+ },
+ "artifactLocation": {
+ "uri": "invalid.yaml",
+ "uriBaseId": "EXECUTIONROOT"
+ }
+ }
+ }
+ ],
+ "ruleId": "E3045"
+ },
+ {
+ "message": {
+ "text": "Consider using AWS::S3::BucketPolicy instead of AccessControl"
+ },
+ "locations": [
+ {
+ "physicalLocation": {
+ "region": {
+ "endColumn": 20,
+ "endLine": 10,
+ "startColumn": 7,
+ "startLine": 10
+ },
+ "artifactLocation": {
+ "uri": "invalid.yaml",
+ "uriBaseId": "EXECUTIONROOT"
+ }
+ }
+ }
+ ],
+ "ruleId": "W3045"
+ },
+ {
+ "message": {
+ "text": "Invalid Property Resources/MyS3Bucket/Properties/BucketNaming. Did you mean BucketName?"
+ },
+ "level": "error",
+ "locations": [
+ {
+ "physicalLocation": {
+ "region": {
+ "endColumn": 19,
+ "endLine": 11,
+ "startColumn": 7,
+ "startLine": 11
+ },
+ "artifactLocation": {
+ "uri": "invalid.yaml",
+ "uriBaseId": "EXECUTIONROOT"
+ }
+ }
+ }
+ ],
+ "ruleId": "E3002"
+ },
+ {
+ "message": {
+ "text": "Invalid Property Resources/MyEC2Instance/Properties/InstanceTypez. Did you mean InstanceType?"
+ },
+ "level": "error",
+ "locations": [
+ {
+ "physicalLocation": {
+ "region": {
+ "endColumn": 20,
+ "endLine": 16,
+ "startColumn": 7,
+ "startLine": 16
+ },
+ "artifactLocation": {
+ "uri": "invalid.yaml",
+ "uriBaseId": "EXECUTIONROOT"
+ }
+ }
+ }
+ ],
+ "ruleId": "E3002"
+ },
+ {
+ "message": {
+ "text": "Invalid Property Resources/MyEC2Instance/Properties/KeyPair"
+ },
+ "level": "error",
+ "locations": [
+ {
+ "physicalLocation": {
+ "region": {
+ "endColumn": 14,
+ "endLine": 18,
+ "startColumn": 7,
+ "startLine": 18
+ },
+ "artifactLocation": {
+ "uri": "invalid.yaml",
+ "uriBaseId": "EXECUTIONROOT"
+ }
+ }
+ }
+ ],
+ "ruleId": "E3002"
+ },
+ {
+ "message": {
+ "text": "Invalid Property Resources/MySecurityGroup/Properties/SecurityGroupEntrance"
+ },
+ "level": "error",
+ "locations": [
+ {
+ "physicalLocation": {
+ "region": {
+ "endColumn": 28,
+ "endLine": 26,
+ "startColumn": 7,
+ "startLine": 26
+ },
+ "artifactLocation": {
+ "uri": "invalid.yaml",
+ "uriBaseId": "EXECUTIONROOT"
+ }
+ }
+ }
+ ],
+ "ruleId": "E3002"
+ }
+ ],
+ "originalUriBaseIds": {
+ "EXECUTIONROOT": {
+ "description": {
+ "text": "The directory in which cfn-lint was run."
+ }
+ }
+ }
+ }
+ ],
+ "version": "2.1.0",
+ "$schema": "https://docs.oasis-open.org/sarif/sarif/v2.1.0/cos02/schemas/sarif-schema-2.1.0.json"
+}
diff --git a/sarif-parser/tests/sarif_files/cfn-lint.sarif.json b/sarif-parser/tests/sarif_files/cfn-lint.sarif.json
new file mode 100644
index 00000000..cc6bd94b
--- /dev/null
+++ b/sarif-parser/tests/sarif_files/cfn-lint.sarif.json
@@ -0,0 +1 @@
+[{"issue_code": "E3030", "issue_text": "You must specify a valid value for AccessControl (SuperPrivate). Valid values are [\"AuthenticatedRead\", \"AwsExecRead\", \"BucketOwnerFullControl\", \"BucketOwnerRead\", \"LogDeliveryWrite\", \"Private\", \"PublicRead\", \"PublicReadWrite\"]", "location": {"path": "invalid.yaml", "position": {"begin": {"line": 10, "column": 7}, "end": {"line": 10, "column": 20}}}}, {"issue_code": "E3045", "issue_text": "A bucket with AccessControl set should also have OwnershipControl configured", "location": {"path": "invalid.yaml", "position": {"begin": {"line": 10, "column": 7}, "end": {"line": 10, "column": 20}}}}, {"issue_code": "W3045", "issue_text": "Consider using AWS::S3::BucketPolicy instead of AccessControl", "location": {"path": "invalid.yaml", "position": {"begin": {"line": 10, "column": 7}, "end": {"line": 10, "column": 20}}}}, {"issue_code": "E3002", "issue_text": "Invalid Property Resources/MyS3Bucket/Properties/BucketNaming. Did you mean BucketName?", "location": {"path": "invalid.yaml", "position": {"begin": {"line": 11, "column": 7}, "end": {"line": 11, "column": 19}}}}, {"issue_code": "E3002", "issue_text": "Invalid Property Resources/MyEC2Instance/Properties/InstanceTypez. Did you mean InstanceType?", "location": {"path": "invalid.yaml", "position": {"begin": {"line": 16, "column": 7}, "end": {"line": 16, "column": 20}}}}, {"issue_code": "E3002", "issue_text": "Invalid Property Resources/MyEC2Instance/Properties/KeyPair", "location": {"path": "invalid.yaml", "position": {"begin": {"line": 18, "column": 7}, "end": {"line": 18, "column": 14}}}}, {"issue_code": "E3002", "issue_text": "Invalid Property Resources/MySecurityGroup/Properties/SecurityGroupEntrance", "location": {"path": "invalid.yaml", "position": {"begin": {"line": 26, "column": 7}, "end": {"line": 26, "column": 28}}}}]
\ No newline at end of file
diff --git a/tests/fixtures/reports/cfn-lint.sarif b/tests/fixtures/reports/cfn-lint.sarif
new file mode 100644
index 00000000..f60d9dd7
--- /dev/null
+++ b/tests/fixtures/reports/cfn-lint.sarif
@@ -0,0 +1,229 @@
+{
+ "runs": [
+ {
+ "tool": {
+ "driver": {
+ "name": "cfn-lint",
+ "rules": [
+ {
+ "id": "E3002",
+ "fullDescription": {
+ "text": "Making sure that resources properties are properly configured"
+ },
+ "helpUri": "https://github.com/aws-cloudformation/cfn-python-lint/blob/main/docs/cfn-resource-specification.md#properties",
+ "shortDescription": {
+ "text": "Resource properties are invalid"
+ }
+ },
+ {
+ "id": "E3045",
+ "fullDescription": {
+ "text": "When using AccessControl other than private you must also configure OwnershipControls. The default is bucket owner enforced which disables ACLs."
+ },
+ "helpUri": "https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html",
+ "shortDescription": {
+ "text": "Validate AccessControl are set with OwnershipControls"
+ }
+ },
+ {
+ "id": "E3030",
+ "fullDescription": {
+ "text": "Check if properties have a valid value in case of an enumator"
+ },
+ "helpUri": "https://github.com/aws-cloudformation/cfn-python-lint/blob/main/docs/cfn-resource-specification.md#allowedvalue",
+ "shortDescription": {
+ "text": "Check if properties have a valid value"
+ }
+ },
+ {
+ "id": "W3045",
+ "fullDescription": {
+ "text": "Nearly all access control configurations can be more successfully achieved with bucket policies. Consider using bucket policies instead of access control."
+ },
+ "helpUri": "https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html",
+ "shortDescription": {
+ "text": "Controlling access to an S3 bucket should be done with bucket policies"
+ }
+ }
+ ],
+ "version": "0.83.0",
+ "informationUri": "https://github.com/aws-cloudformation/cfn-lint",
+ "shortDescription": {
+ "text": "Validates AWS CloudFormation templates against the resource specification and additional checks."
+ }
+ }
+ },
+ "results": [
+ {
+ "message": {
+ "text": "You must specify a valid value for AccessControl (SuperPrivate). Valid values are [\"AuthenticatedRead\", \"AwsExecRead\", \"BucketOwnerFullControl\", \"BucketOwnerRead\", \"LogDeliveryWrite\", \"Private\", \"PublicRead\", \"PublicReadWrite\"]"
+ },
+ "level": "error",
+ "locations": [
+ {
+ "physicalLocation": {
+ "region": {
+ "endColumn": 20,
+ "endLine": 10,
+ "startColumn": 7,
+ "startLine": 10
+ },
+ "artifactLocation": {
+ "uri": "invalid.yaml",
+ "uriBaseId": "EXECUTIONROOT"
+ }
+ }
+ }
+ ],
+ "ruleId": "E3030"
+ },
+ {
+ "message": {
+ "text": "A bucket with AccessControl set should also have OwnershipControl configured"
+ },
+ "level": "error",
+ "locations": [
+ {
+ "physicalLocation": {
+ "region": {
+ "endColumn": 20,
+ "endLine": 10,
+ "startColumn": 7,
+ "startLine": 10
+ },
+ "artifactLocation": {
+ "uri": "invalid.yaml",
+ "uriBaseId": "EXECUTIONROOT"
+ }
+ }
+ }
+ ],
+ "ruleId": "E3045"
+ },
+ {
+ "message": {
+ "text": "Consider using AWS::S3::BucketPolicy instead of AccessControl"
+ },
+ "locations": [
+ {
+ "physicalLocation": {
+ "region": {
+ "endColumn": 20,
+ "endLine": 10,
+ "startColumn": 7,
+ "startLine": 10
+ },
+ "artifactLocation": {
+ "uri": "invalid.yaml",
+ "uriBaseId": "EXECUTIONROOT"
+ }
+ }
+ }
+ ],
+ "ruleId": "W3045"
+ },
+ {
+ "message": {
+ "text": "Invalid Property Resources/MyS3Bucket/Properties/BucketNaming. Did you mean BucketName?"
+ },
+ "level": "error",
+ "locations": [
+ {
+ "physicalLocation": {
+ "region": {
+ "endColumn": 19,
+ "endLine": 11,
+ "startColumn": 7,
+ "startLine": 11
+ },
+ "artifactLocation": {
+ "uri": "invalid.yaml",
+ "uriBaseId": "EXECUTIONROOT"
+ }
+ }
+ }
+ ],
+ "ruleId": "E3002"
+ },
+ {
+ "message": {
+ "text": "Invalid Property Resources/MyEC2Instance/Properties/InstanceTypez. Did you mean InstanceType?"
+ },
+ "level": "error",
+ "locations": [
+ {
+ "physicalLocation": {
+ "region": {
+ "endColumn": 20,
+ "endLine": 16,
+ "startColumn": 7,
+ "startLine": 16
+ },
+ "artifactLocation": {
+ "uri": "invalid.yaml",
+ "uriBaseId": "EXECUTIONROOT"
+ }
+ }
+ }
+ ],
+ "ruleId": "E3002"
+ },
+ {
+ "message": {
+ "text": "Invalid Property Resources/MyEC2Instance/Properties/KeyPair"
+ },
+ "level": "error",
+ "locations": [
+ {
+ "physicalLocation": {
+ "region": {
+ "endColumn": 14,
+ "endLine": 18,
+ "startColumn": 7,
+ "startLine": 18
+ },
+ "artifactLocation": {
+ "uri": "invalid.yaml",
+ "uriBaseId": "EXECUTIONROOT"
+ }
+ }
+ }
+ ],
+ "ruleId": "E3002"
+ },
+ {
+ "message": {
+ "text": "Invalid Property Resources/MySecurityGroup/Properties/SecurityGroupEntrance"
+ },
+ "level": "error",
+ "locations": [
+ {
+ "physicalLocation": {
+ "region": {
+ "endColumn": 28,
+ "endLine": 26,
+ "startColumn": 7,
+ "startLine": 26
+ },
+ "artifactLocation": {
+ "uri": "invalid.yaml",
+ "uriBaseId": "EXECUTIONROOT"
+ }
+ }
+ }
+ ],
+ "ruleId": "E3002"
+ }
+ ],
+ "originalUriBaseIds": {
+ "EXECUTIONROOT": {
+ "description": {
+ "text": "The directory in which cfn-lint was run."
+ }
+ }
+ }
+ }
+ ],
+ "version": "2.1.0",
+ "$schema": "https://docs.oasis-open.org/sarif/sarif/v2.1.0/cos02/schemas/sarif-schema-2.1.0.json"
+}