text: 
  import logging
  from pyvisdk.exceptions import InvalidArgumentError
  
  ########################################
  # Automatically generated, do not edit.
  ########################################
  
  log = logging.getLogger(__name__)
  
  def HostMultipathInfo(vim, *args, **kwargs):
      '''The HostMultipathInfo data object describes the multipathing policy
      configuration to determine the storage failover policies for a SCSI logical
      unit. The multipathing policy configuration operates on SCSI logical units and
      the paths to the logical units.Multipath policy configuration is only possible
      on storage devices provided by the native multipathing plug-store plugin.
      Storage devices using the native multipathing storage plugin will have an entry
      in this data object. Storage devices provided by a different storage plugin
      will not appear in the inventory represented by this data object.Legacy note:
      In hosts where HostMultipathStateInfo is not defined or does not exist on the
      HostStorageDeviceInfo object, only native multipathing exists. That means for
      these hosts, the MultipathInfo object contains the complete set of LUNs and
      paths on the LUNs available on the host.'''
  
      obj = vim.client.factory.create('{urn:vim25}HostMultipathInfo')
  
      # do some validation checking...
      if (len(args) + len(kwargs)) < 0:
          raise IndexError('Expected at least 1 arguments got: %d' % len(args))
  
      required = [  ]
      optional = [ 'lun', 'dynamicProperty', 'dynamicType' ]
  
      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
  