3 O4Â\Î ã@sJddlmZmZmZddlmZddlmZddlm Z Gdd„dƒZ dS)é)ÚInvalidDocumentExceptionÚInvalidTemplateExceptionÚInvalidResourceException)ÚSamTemplateValidator)ÚLifeCycleEvents)Ú SamTemplatec@s$eZdZdd„Zdd„Zdd„ZdS)ÚParsercCsdS)N©)Úselfr r úƒ/Users/sshvans/Documents/Work/Quickstart/python-virtual-environments/env/lib/python3.6/site-packages/samtranslator/parser/parser.pyÚ__init__szParser.__init__cCs|j||ƒ|jtj|ƒdS)N)Ú _validateZactrZbefore_transform_template)r Ú sam_templateÚparameter_valuesZ sam_pluginsr r r Úparse s z Parser.parsecCs°|dkrtdƒ‚d|ks2t|dtƒ s2|d r@ttdƒgƒ‚tdd„|djƒDƒƒshttdƒgƒ‚t|ƒ}x0|jƒD]$\}}t|j tƒsztt |dƒgƒ‚qzWt j |ƒdS) zé Validates the template and parameter values and raises exceptions if there's an issue :param dict sam_template: SAM template :param dict parameter_values: Dictionary of parameter values provided by the user Nz'`parameter_values` argument is requiredZ Resourcesz'Resources' section is requiredcss|]}t|tƒVqdS)N)Ú isinstanceÚdict)Ú.0Ú sam_resourcer r r ú sz#Parser._validate..zXAll 'Resources' must be Objects. If you're using YAML, this may be an indentation issue.zwAll 'Resources' must be Objects and have a 'Properties' Object. If you're using YAML, this may be an indentation issue.) Ú ValueErrorrrrrÚallÚvaluesrZiterateZ propertiesrrÚvalidate)r rrZsam_template_instanceZresource_logical_idrr r r r s"    zParser._validateN)Ú__name__Ú __module__Ú __qualname__r rr r r r r rsrN) Zsamtranslator.model.exceptionsrrrZ!samtranslator.validator.validatorrZsamtranslator.pluginsrZ!samtranslator.public.sdk.templaterrr r r r Ús