def _process_alfred_helper()

in source/manifest/cfn_params_handler.py [0:0]


    def _process_alfred_helper(self, param, key, value, account=None,
                               region=None, substitute_ssm_values=True):
        """Parses and processes alfred helpers
           'alfred_ '
        Args:
            param: dict. input param
            key: input param key
            value: input param value (or nested value)
            account: string
            region: string
            substitute_ssm_values: boolean. default to true

        Return:
            value of the processed input param value
        """
        if value.startswith("$[") and value.endswith("]"):
            # Apply transformations
            keyword = value[2:-1]
            # Check if supported keyword e.g. alfred_ssm_,
            # alfred_genaz_, alfred_getaz_, alfred_genuuid, etc.
            if keyword.startswith("alfred_ssm_"):
                value, param_flag = self._update_alfred_ssm(
                    keyword, value, substitute_ssm_values
                )
                if param_flag is False:
                    raise KeyError(
                        "Missing SSM parameter name for:"
                        " {} in the parameters JSON file.".format(key)
                    )
            elif keyword.startswith("alfred_genkeypair"):
                value = self._update_alfred_genkeypair(param, account, region)
            elif keyword.startswith("alfred_genpass_"):
                value = self._update_alfred_genpass(keyword, param)
            elif keyword.startswith("alfred_genaz_"):
                value = self._update_alfred_genaz(keyword, param, account, region)
            else:
                value = keyword
        return value