text: 
  import logging
  from pyvisdk.exceptions import InvalidArgumentError
  
  ########################################
  # Automatically generated, do not edit.
  ########################################
  
  log = logging.getLogger(__name__)
  
  def ManagedObjectReference(vim, *args, **kwargs):
      '''This class is used to refer to a server-side Managed Object.'''
  
      obj = vim.client.factory.create('{urn:vim25}ManagedObjectReference')
  
      # do some validation checking...
      if (len(args) + len(kwargs)) < 2:
          raise IndexError('Expected at least 3 arguments got: %d' % len(args))
  
      required = [ 'type', 'value' ]
      optional = [  ]
  
      for name, arg in zip(required+optional, args):
          setattr(obj, name, arg)
  
      for name, value in kwargs.items():
          if name in required + optional:
              setattr(obj, name, value)
          else:
              raise InvalidArgumentError("Invalid argument: %s.  Expected one of %s" % (name, ", ".join(required + optional)))
  
      return obj
  