""" Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. SPDX-License-Identifier: MIT-0 """ from cfnlint.rules import CloudFormationLintRule, RuleMatch class Configuration(CloudFormationLintRule): """Check if Mappings are configured correctly""" id = "E7001" shortdesc = "Mappings are appropriately configured" description = "Check if Mappings are properly configured" source_url = "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/mappings-section-structure.html" tags = ["mappings"] def match(self, cfn): matches = [] valid_map_types = (str, list, int, float) mappings = cfn.template.get("Mappings", {}) if mappings: for mapname, mapobj in mappings.items(): if not isinstance(mapobj, dict): message = "Mapping {0} has invalid property" matches.append( RuleMatch(["Mappings", mapname], message.format(mapname)) ) else: for firstkey in mapobj: firstkeyobj = mapobj[firstkey] if not isinstance(firstkeyobj, dict): message = "Mapping {0} has invalid property at {1}" matches.append( RuleMatch( ["Mappings", mapname, firstkey], message.format(mapname, firstkeyobj), ) ) else: for secondkey in firstkeyobj: if not isinstance( firstkeyobj[secondkey], valid_map_types ): message = "Mapping {0} has invalid property at {1}" matches.append( RuleMatch( ["Mappings", mapname, firstkey, secondkey], message.format(mapname, secondkey), ) ) return matches
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__pycache__ | Folder | 0755 |
|
|
ApproachingLimitAttributes.py | File | 1.51 KB | 0644 |
|
ApproachingLimitName.py | File | 697 B | 0644 |
|
ApproachingLimitNumber.py | File | 685 B | 0644 |
|
Configuration.py | File | 2.24 KB | 0644 |
|
KeyName.py | File | 2.58 KB | 0644 |
|
LimitAttributes.py | File | 1.44 KB | 0644 |
|
LimitName.py | File | 699 B | 0644 |
|
LimitNumber.py | File | 687 B | 0644 |
|
Name.py | File | 644 B | 0644 |
|
Used.py | File | 1.72 KB | 0644 |
|
__init__.py | File | 106 B | 0644 |
|