def __init__(self, sam_template, managed_policy_loader, profile=None, region=None): """ Construct a SamTemplateValidator Design Details: managed_policy_loader is injected into the `__init__` to allow future expansion and overriding capabilities. A typically pattern is to pass the name of the class into the `__init__` as keyword args. As long as the class 'conforms' to the same 'interface'. This allows the class to be changed by the client and allowing customization of the class being initialized. Something I had in mind would be allowing a template to be run and checked 'offline' (not needing aws creds). To make this an easier transition in the future, we ingest the ManagedPolicyLoader class. Parameters ---------- sam_template dict Dictionary representing a SAM Template managed_policy_loader ManagedPolicyLoader Sam ManagedPolicyLoader """ self.sam_template = sam_template self.managed_policy_loader = managed_policy_loader self.sam_parser = parser.Parser() self.boto3_session = Session(profile_name=profile, region_name=region)
def __init__(self, filename, template, region): """ Initialize Transform class """ self._filename = filename self._template = template self._region = region self._managed_policy_map = self.load_managed_policies() self._sam_parser = parser.Parser()