def make_shorthand(intrinsic_dict):
if "<STR_LIT>" in intrinsic_dict:<EOL><INDENT>return "<STR_LIT>" % intrinsic_dict['<STR_LIT>']<EOL><DEDENT>elif "<STR_LIT>" in intrinsic_dict:<EOL><INDENT>return "<STR_LIT>" % "<STR_LIT:.>".join(intrinsic_dict["<STR_LIT>"])<EOL><DEDENT>else:<EOL><INDENT>raise NotImplementedError("<STR_LIT>")<EOL><DEDENT>
Converts a given intrinsics dictionary into a short-hand notation that Fn::Sub can use. Only Ref and Fn::GetAtt
support shorthands.
Ex:
 {"Ref": "foo"} => ${foo}
 {"Fn::GetAtt": ["bar", "Arn"]} => ${bar.Arn}

This method assumes that the input is a valid intrinsic function dictionary. It does no validity on the input.

:param dict intrinsic_dict: Input dictionary which is assumed to be a valid intrinsic function dictionary
:returns string: String representing the shorthand notation
:raises NotImplementedError: For intrinsic functions that don't support shorthands.