
import logging
from pyvisdk.exceptions import InvalidArgumentError

########################################
# Automatically generated, do not edit.
########################################

log = logging.getLogger(__name__)

def HostConnectSpec(vim, *args, **kwargs):
    '''Specifies the parameters needed to add a single host. This includes a small set
    of optional information about the host configuration. This allows the network
    and datastore configuration of the host to be synchronized with the naming
    conventions of the datacenter, as well as the configuration of a vim account
    (the username/password for the virtual machine files that is created on disk).'''

    obj = vim.client.factory.create('{urn:vim25}HostConnectSpec')

    # do some validation checking...
    if (len(args) + len(kwargs)) < 1:
        raise IndexError('Expected at least 2 arguments got: %d' % len(args))

    required = [ 'force' ]
    optional = [ 'hostName', 'managementIp', 'password', 'port', 'sslThumbprint', 'userName',
        'vimAccountName', 'vimAccountPassword', 'vmFolder', '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
