code: def resolve_sam_resource_id_refs(self, input, supported_resource_id_refs):
          
          return self._traverse(input, supported_resource_id_refs, self._try_resolve_sam_resource_id_refs)
docs: Some SAM resources have their logical ids mutated from the original id that the customer writes in the
          template. This method recursively walks the tree and updates these logical ids from the old value
          to the new value that is generated by SAM.
  
          Example:
              {"Ref": "MyLayer"} -> {"Ref": "MyLayerABC123"}
  
          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 dict supported_resource_id_refs: Dictionary that maps old logical ids to new ones.
          :return list errors: List of dictionary containing information about invalid reference. Empty list otherwise