docs: def _unmarshal(self, obj):
          """Walks an object and unmarshals any MORs into psphere objects."""
          if isinstance(obj, suds.sudsobject.Object) is False:
              logger.debug("%s is not a suds instance, skipping", obj)
              return obj
  
          logger.debug("Processing:")
          logger.debug(obj)
          logger.debug("...with keylist:")
          logger.debug(obj.__keylist__)
          # If the obj that we're looking at has a _type key
          # then create a class of that type and return it immediately
          if "_type" in obj.__keylist__:
              logger.debug("obj is a MOR, converting to psphere class")
              return self._mor_to_pobject(obj)
  
          new_object = obj.__class__()
          for sub_obj in obj:
              logger.debug("Looking at %s of type %s", sub_obj, type(sub_obj))
  
              if isinstance(sub_obj[1], list):
                  new_embedded_objs = []
                  for emb_obj in sub_obj[1]:
                      new_emb_obj = self._unmarshal(emb_obj)
                      new_embedded_objs.append(new_emb_obj)
                  setattr(new_object, sub_obj[0], new_embedded_objs)
                  continue
  
              if not issubclass(sub_obj[1].__class__, suds.sudsobject.Object):
                  logger.debug("%s is not a sudsobject subclass, skipping",
                               sub_obj[1].__class__)
                  setattr(new_object, sub_obj[0], sub_obj[1])
                  continue
  
              logger.debug("Obj keylist: %s", sub_obj[1].__keylist__)
              if "_type" in sub_obj[1].__keylist__:
                  logger.debug("Converting nested MOR to psphere class:")
                  logger.debug(sub_obj[1])
                  kls = classmapper(sub_obj[1]._type)
                  logger.debug("Setting %s.%s to %s",
                               new_object.__class__.__name__,
                               sub_obj[0],
                               sub_obj[1])
                  setattr(new_object, sub_obj[0], kls(sub_obj[1], self))
              else:
                  logger.debug("Didn't find _type in:")
                  logger.debug(sub_obj[1])
                  setattr(new_object, sub_obj[0], self._unmarshal(sub_obj[1]))
  
          return new_object