def resolve_sam_resource_refs(self, input, supported_resource_refs):
return self._traverse(input, supported_resource_refs, self._try_resolve_sam_resource_refs)<EOL>
Customers can provide a reference to a "derived" SAM resource such as Alias of a Function or Stage of an API
resource. This method recursively walks the tree, converting all derived references to the real resource name,
if it is present.

Example:
    {"Ref": "MyFunction.Alias"} -> {"Ref": "MyFunctionAliasLive"}

This method does not attempt to validate a reference. If it is invalid or non-resolvable, it skips the
occurrence and continues with the rest. It is recommended that you have an external process that detects and
surfaces invalid references.

For first call, it is recommended that `template` is the entire CFN template in order to handle
references in Mapping or Output sections.

:param dict input: CFN template that needs resolution. This method will modify the input
    directly resolving references. In subsequent recursions, this will be a fragment of the CFN template.
:param SupportedResourceReferences supported_resource_refs: Object that contains information about the resource
    references supported in this SAM template, along with the value they should resolve to.
:return list errors: List of dictionary containing information about invalid reference. Empty list otherwise