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