/* Generated by esx_vi_generator.py */



/* esxVI_AddPortGroup */
ESX_VI__METHOD(AddPortGroup, /* explicit _this */,
               (esxVI_Context *ctx,
                esxVI_ManagedObjectReference *_this,       /* required */
                esxVI_HostPortGroupSpec *portgrp),         /* required */
               void, /* nothing */, None,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
    ESX_VI__METHOD__PARAMETER__REQUIRE(portgrp)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(HostPortGroupSpec, portgrp)
})



/* esxVI_AddVirtualSwitch */
ESX_VI__METHOD(AddVirtualSwitch, /* explicit _this */,
               (esxVI_Context *ctx,
                esxVI_ManagedObjectReference *_this,       /* required */
                const char *vswitchName,                   /* required */
                esxVI_HostVirtualSwitchSpec *spec),        /* optional */
               void, /* nothing */, None,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
    ESX_VI__METHOD__PARAMETER__REQUIRE(vswitchName)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
    ESX_VI__METHOD__PARAMETER__SERIALIZE_VALUE(String, vswitchName)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(HostVirtualSwitchSpec, spec)
})



/* esxVI_AnswerVM */
ESX_VI__METHOD(AnswerVM, /* explicit _this */,
               (esxVI_Context *ctx,
                esxVI_ManagedObjectReference *_this,       /* required */
                const char *questionId,                    /* required */
                const char *answerChoice),                 /* required */
               void, /* nothing */, None,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
    ESX_VI__METHOD__PARAMETER__REQUIRE(questionId)
    ESX_VI__METHOD__PARAMETER__REQUIRE(answerChoice)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
    ESX_VI__METHOD__PARAMETER__SERIALIZE_VALUE(String, questionId)
    ESX_VI__METHOD__PARAMETER__SERIALIZE_VALUE(String, answerChoice)
})



/* esxVI_CancelTask */
ESX_VI__METHOD(CancelTask, /* explicit _this */,
               (esxVI_Context *ctx,
                esxVI_ManagedObjectReference *_this),      /* required */
               void, /* nothing */, None,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
})



/* esxVI_CopyVirtualDisk_Task */
ESX_VI__METHOD(CopyVirtualDisk_Task, virtualDiskManager,
               (esxVI_Context *ctx,
                const char *sourceName,                    /* required */
                esxVI_ManagedObjectReference *sourceDatacenter, /* optional */
                const char *destName,                      /* required */
                esxVI_ManagedObjectReference *destDatacenter, /* optional */
                esxVI_VirtualDiskSpec *destSpec,           /* optional */
                esxVI_Boolean force,                       /* optional */
                esxVI_ManagedObjectReference **output),    /* required */
               ManagedObjectReference, /* nothing */, RequiredItem,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
    ESX_VI__METHOD__PARAMETER__REQUIRE(sourceName)
    ESX_VI__METHOD__PARAMETER__REQUIRE(destName)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
    ESX_VI__METHOD__PARAMETER__SERIALIZE_VALUE(String, sourceName)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, sourceDatacenter)
    ESX_VI__METHOD__PARAMETER__SERIALIZE_VALUE(String, destName)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, destDatacenter)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(VirtualDiskSpec, destSpec)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(Boolean, force)
})



/* esxVI_CreateFilter */
ESX_VI__METHOD(CreateFilter, propertyCollector,
               (esxVI_Context *ctx,
                esxVI_PropertyFilterSpec *spec,            /* required */
                esxVI_Boolean partialUpdates,              /* required */
                esxVI_ManagedObjectReference **output),    /* required */
               ManagedObjectReference, /* nothing */, RequiredItem,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
    ESX_VI__METHOD__PARAMETER__REQUIRE(spec)
    ESX_VI__METHOD__PARAMETER__REQUIRE(partialUpdates)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(PropertyFilterSpec, spec)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(Boolean, partialUpdates)
})



/* esxVI_CreateSnapshot_Task */
ESX_VI__METHOD(CreateSnapshot_Task, /* explicit _this */,
               (esxVI_Context *ctx,
                esxVI_ManagedObjectReference *_this,       /* required */
                const char *name,                          /* required */
                const char *description,                   /* optional */
                esxVI_Boolean memory,                      /* required */
                esxVI_Boolean quiesce,                     /* required */
                esxVI_ManagedObjectReference **output),    /* required */
               ManagedObjectReference, /* nothing */, RequiredItem,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
    ESX_VI__METHOD__PARAMETER__REQUIRE(name)
    ESX_VI__METHOD__PARAMETER__REQUIRE(memory)
    ESX_VI__METHOD__PARAMETER__REQUIRE(quiesce)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
    ESX_VI__METHOD__PARAMETER__SERIALIZE_VALUE(String, name)
    ESX_VI__METHOD__PARAMETER__SERIALIZE_VALUE(String, description)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(Boolean, memory)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(Boolean, quiesce)
})



/* esxVI_CreateVirtualDisk_Task */
ESX_VI__METHOD(CreateVirtualDisk_Task, virtualDiskManager,
               (esxVI_Context *ctx,
                const char *name,                          /* required */
                esxVI_ManagedObjectReference *datacenter,  /* optional */
                esxVI_VirtualDiskSpec *spec,               /* required */
                esxVI_ManagedObjectReference **output),    /* required */
               ManagedObjectReference, /* nothing */, RequiredItem,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
    ESX_VI__METHOD__PARAMETER__REQUIRE(name)
    ESX_VI__METHOD__PARAMETER__REQUIRE(spec)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
    ESX_VI__METHOD__PARAMETER__SERIALIZE_VALUE(String, name)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, datacenter)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(VirtualDiskSpec, spec)
})



/* esxVI_DeleteVirtualDisk_Task */
ESX_VI__METHOD(DeleteVirtualDisk_Task, virtualDiskManager,
               (esxVI_Context *ctx,
                const char *name,                          /* required */
                esxVI_ManagedObjectReference *datacenter,  /* optional */
                esxVI_ManagedObjectReference **output),    /* required */
               ManagedObjectReference, /* nothing */, RequiredItem,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
    ESX_VI__METHOD__PARAMETER__REQUIRE(name)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
    ESX_VI__METHOD__PARAMETER__SERIALIZE_VALUE(String, name)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, datacenter)
})



/* esxVI_DestroyPropertyFilter */
ESX_VI__METHOD(DestroyPropertyFilter, /* explicit _this */,
               (esxVI_Context *ctx,
                esxVI_ManagedObjectReference *_this),      /* required */
               void, /* nothing */, None,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
})



/* esxVI_FindByIp */
ESX_VI__METHOD(FindByIp, searchIndex,
               (esxVI_Context *ctx,
                esxVI_ManagedObjectReference *datacenter,  /* optional */
                const char *ip,                            /* required */
                esxVI_Boolean vmSearch,                    /* required */
                esxVI_ManagedObjectReference **output),    /* optional */
               ManagedObjectReference, /* nothing */, OptionalItem,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
    ESX_VI__METHOD__PARAMETER__REQUIRE(ip)
    ESX_VI__METHOD__PARAMETER__REQUIRE(vmSearch)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, datacenter)
    ESX_VI__METHOD__PARAMETER__SERIALIZE_VALUE(String, ip)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(Boolean, vmSearch)
})



/* esxVI_FindByUuid */
ESX_VI__METHOD(FindByUuid, searchIndex,
               (esxVI_Context *ctx,
                esxVI_ManagedObjectReference *datacenter,  /* optional */
                const char *uuid,                          /* required */
                esxVI_Boolean vmSearch,                    /* required */
                esxVI_Boolean instanceUuid,                /* optional */
                esxVI_ManagedObjectReference **output),    /* optional */
               ManagedObjectReference, /* nothing */, OptionalItem,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
    ESX_VI__METHOD__PARAMETER__REQUIRE(uuid)
    ESX_VI__METHOD__PARAMETER__REQUIRE(vmSearch)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, datacenter)
    ESX_VI__METHOD__PARAMETER__SERIALIZE_VALUE(String, uuid)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(Boolean, vmSearch)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(Boolean, instanceUuid)
})



/* esxVI_Login */
ESX_VI__METHOD(Login, sessionManager,
               (esxVI_Context *ctx,
                const char *userName,                      /* required */
                const char *password,                      /* required */
                const char *locale,                        /* optional */
                esxVI_UserSession **output),               /* required */
               UserSession, /* nothing */, RequiredItem,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
    ESX_VI__METHOD__PARAMETER__REQUIRE(userName)
    ESX_VI__METHOD__PARAMETER__REQUIRE(password)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
    ESX_VI__METHOD__PARAMETER__SERIALIZE_VALUE(String, userName)
    ESX_VI__METHOD__PARAMETER__SERIALIZE_VALUE(String, password)
    ESX_VI__METHOD__PARAMETER__SERIALIZE_VALUE(String, locale)
})



/* esxVI_Logout */
ESX_VI__METHOD(Logout, sessionManager,
               (esxVI_Context *ctx),
               void, /* nothing */, None,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
})



/* esxVI_MakeDirectory */
ESX_VI__METHOD(MakeDirectory, fileManager,
               (esxVI_Context *ctx,
                const char *name,                          /* required */
                esxVI_ManagedObjectReference *datacenter,  /* optional */
                esxVI_Boolean createParentDirectories),    /* optional */
               void, /* nothing */, None,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
    ESX_VI__METHOD__PARAMETER__REQUIRE(name)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
    ESX_VI__METHOD__PARAMETER__SERIALIZE_VALUE(String, name)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, datacenter)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(Boolean, createParentDirectories)
})



/* esxVI_MigrateVM_Task */
ESX_VI__METHOD(MigrateVM_Task, /* explicit _this */,
               (esxVI_Context *ctx,
                esxVI_ManagedObjectReference *_this,       /* required */
                esxVI_ManagedObjectReference *pool,        /* optional */
                esxVI_ManagedObjectReference *host,        /* optional */
                esxVI_VirtualMachineMovePriority priority, /* required */
                esxVI_VirtualMachinePowerState state,      /* optional */
                esxVI_ManagedObjectReference **output),    /* required */
               ManagedObjectReference, /* nothing */, RequiredItem,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
    ESX_VI__METHOD__PARAMETER__REQUIRE(priority)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, pool)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, host)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(VirtualMachineMovePriority, priority)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(VirtualMachinePowerState, state)
})



/* esxVI_PowerOffVM_Task */
ESX_VI__METHOD(PowerOffVM_Task, /* explicit _this */,
               (esxVI_Context *ctx,
                esxVI_ManagedObjectReference *_this,       /* required */
                esxVI_ManagedObjectReference **output),    /* required */
               ManagedObjectReference, /* nothing */, RequiredItem,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
})



/* esxVI_PowerOnVM_Task */
ESX_VI__METHOD(PowerOnVM_Task, /* explicit _this */,
               (esxVI_Context *ctx,
                esxVI_ManagedObjectReference *_this,       /* required */
                esxVI_ManagedObjectReference *host,        /* optional */
                esxVI_ManagedObjectReference **output),    /* required */
               ManagedObjectReference, /* nothing */, RequiredItem,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, host)
})



/* esxVI_QueryAvailablePerfMetric */
ESX_VI__METHOD(QueryAvailablePerfMetric, perfManager,
               (esxVI_Context *ctx,
                esxVI_ManagedObjectReference *entity,      /* required */
                esxVI_DateTime *beginTime,                 /* optional */
                esxVI_DateTime *endTime,                   /* optional */
                esxVI_Int *intervalId,                     /* optional */
                esxVI_PerfMetricId **output),              /* optional, list */
               PerfMetricId, /* nothing */, OptionalList,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
    ESX_VI__METHOD__PARAMETER__REQUIRE(entity)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, entity)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(DateTime, beginTime)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(DateTime, endTime)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(Int, intervalId)
})



/* esxVI_QueryPerf */
ESX_VI__METHOD(QueryPerf, perfManager,
               (esxVI_Context *ctx,
                esxVI_PerfQuerySpec *querySpec,            /* required, list */
                esxVI_PerfEntityMetricBase **output),      /* optional, list */
               PerfEntityMetricBase, /* nothing */, OptionalList,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
    ESX_VI__METHOD__PARAMETER__REQUIRE(querySpec)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
    ESX_VI__METHOD__PARAMETER__SERIALIZE_LIST(PerfQuerySpec, querySpec)
})



/* esxVI_QueryPerfCounter */
ESX_VI__METHOD(QueryPerfCounter, perfManager,
               (esxVI_Context *ctx,
                esxVI_Int *counterId,                      /* required, list */
                esxVI_PerfCounterInfo **output),           /* optional, list */
               PerfCounterInfo, /* nothing */, OptionalList,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
    ESX_VI__METHOD__PARAMETER__REQUIRE(counterId)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
    ESX_VI__METHOD__PARAMETER__SERIALIZE_LIST(Int, counterId)
})



/* esxVI_QueryVirtualDiskUuid */
ESX_VI__METHOD(QueryVirtualDiskUuid, virtualDiskManager,
               (esxVI_Context *ctx,
                const char *name,                          /* required */
                esxVI_ManagedObjectReference *datacenter,  /* optional */
                char **output),                            /* required */
               String, Value, RequiredItem,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
    ESX_VI__METHOD__PARAMETER__REQUIRE(name)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
    ESX_VI__METHOD__PARAMETER__SERIALIZE_VALUE(String, name)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, datacenter)
})



/* esxVI_RebootGuest */
ESX_VI__METHOD(RebootGuest, /* explicit _this */,
               (esxVI_Context *ctx,
                esxVI_ManagedObjectReference *_this),      /* required */
               void, /* nothing */, None,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
})



/* esxVI_ReconfigVM_Task */
ESX_VI__METHOD(ReconfigVM_Task, /* explicit _this */,
               (esxVI_Context *ctx,
                esxVI_ManagedObjectReference *_this,       /* required */
                esxVI_VirtualMachineConfigSpec *spec,      /* required */
                esxVI_ManagedObjectReference **output),    /* required */
               ManagedObjectReference, /* nothing */, RequiredItem,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
    ESX_VI__METHOD__PARAMETER__REQUIRE(spec)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(VirtualMachineConfigSpec, spec)
})



/* esxVI_ReconfigureAutostart */
ESX_VI__METHOD(ReconfigureAutostart, /* explicit _this */,
               (esxVI_Context *ctx,
                esxVI_ManagedObjectReference *_this,       /* required */
                esxVI_HostAutoStartManagerConfig *spec),   /* required */
               void, /* nothing */, None,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
    ESX_VI__METHOD__PARAMETER__REQUIRE(spec)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(HostAutoStartManagerConfig, spec)
})



/* esxVI_RefreshDatastore */
ESX_VI__METHOD(RefreshDatastore, /* explicit _this */,
               (esxVI_Context *ctx,
                esxVI_ManagedObjectReference *_this),      /* required */
               void, /* nothing */, None,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
})



/* esxVI_RegisterVM_Task */
ESX_VI__METHOD(RegisterVM_Task, /* explicit _this */,
               (esxVI_Context *ctx,
                esxVI_ManagedObjectReference *_this,       /* required */
                const char *path,                          /* required */
                const char *name,                          /* optional */
                esxVI_Boolean asTemplate,                  /* required */
                esxVI_ManagedObjectReference *pool,        /* optional */
                esxVI_ManagedObjectReference *host,        /* optional */
                esxVI_ManagedObjectReference **output),    /* required */
               ManagedObjectReference, /* nothing */, RequiredItem,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
    ESX_VI__METHOD__PARAMETER__REQUIRE(path)
    ESX_VI__METHOD__PARAMETER__REQUIRE(asTemplate)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
    ESX_VI__METHOD__PARAMETER__SERIALIZE_VALUE(String, path)
    ESX_VI__METHOD__PARAMETER__SERIALIZE_VALUE(String, name)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(Boolean, asTemplate)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, pool)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, host)
})



/* esxVI_RemovePortGroup */
ESX_VI__METHOD(RemovePortGroup, /* explicit _this */,
               (esxVI_Context *ctx,
                esxVI_ManagedObjectReference *_this,       /* required */
                const char *pgName),                       /* required */
               void, /* nothing */, None,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
    ESX_VI__METHOD__PARAMETER__REQUIRE(pgName)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
    ESX_VI__METHOD__PARAMETER__SERIALIZE_VALUE(String, pgName)
})



/* esxVI_RemoveSnapshot_Task */
ESX_VI__METHOD(RemoveSnapshot_Task, /* explicit _this */,
               (esxVI_Context *ctx,
                esxVI_ManagedObjectReference *_this,       /* required */
                esxVI_Boolean removeChildren,              /* required */
                esxVI_ManagedObjectReference **output),    /* required */
               ManagedObjectReference, /* nothing */, RequiredItem,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
    ESX_VI__METHOD__PARAMETER__REQUIRE(removeChildren)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(Boolean, removeChildren)
})



/* esxVI_RemoveVirtualSwitch */
ESX_VI__METHOD(RemoveVirtualSwitch, /* explicit _this */,
               (esxVI_Context *ctx,
                esxVI_ManagedObjectReference *_this,       /* required */
                const char *vswitchName),                  /* required */
               void, /* nothing */, None,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
    ESX_VI__METHOD__PARAMETER__REQUIRE(vswitchName)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
    ESX_VI__METHOD__PARAMETER__SERIALIZE_VALUE(String, vswitchName)
})



/* esxVI_RescanHba */
ESX_VI__METHOD(RescanHba, /* explicit _this */,
               (esxVI_Context *ctx,
                esxVI_ManagedObjectReference *_this,       /* required */
                const char *hbaDevice),                    /* required */
               void, /* nothing */, None,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
    ESX_VI__METHOD__PARAMETER__REQUIRE(hbaDevice)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
    ESX_VI__METHOD__PARAMETER__SERIALIZE_VALUE(String, hbaDevice)
})



/* esxVI_RetrieveProperties */
ESX_VI__METHOD(RetrieveProperties, propertyCollector,
               (esxVI_Context *ctx,
                esxVI_PropertyFilterSpec *specSet,         /* required, list */
                esxVI_ObjectContent **output),             /* optional, list */
               ObjectContent, /* nothing */, OptionalList,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
    ESX_VI__METHOD__PARAMETER__REQUIRE(specSet)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
    ESX_VI__METHOD__PARAMETER__SERIALIZE_LIST(PropertyFilterSpec, specSet)
})



/* esxVI_RevertToSnapshot_Task */
ESX_VI__METHOD(RevertToSnapshot_Task, /* explicit _this */,
               (esxVI_Context *ctx,
                esxVI_ManagedObjectReference *_this,       /* required */
                esxVI_ManagedObjectReference *host,        /* optional */
                esxVI_Boolean suppressPowerOn,             /* optional */
                esxVI_ManagedObjectReference **output),    /* required */
               ManagedObjectReference, /* nothing */, RequiredItem,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, host)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(Boolean, suppressPowerOn)
})



/* esxVI_SearchDatastoreSubFolders_Task */
ESX_VI__METHOD(SearchDatastoreSubFolders_Task, /* explicit _this */,
               (esxVI_Context *ctx,
                esxVI_ManagedObjectReference *_this,       /* required */
                const char *datastorePath,                 /* required */
                esxVI_HostDatastoreBrowserSearchSpec *searchSpec, /* optional */
                esxVI_ManagedObjectReference **output),    /* required */
               ManagedObjectReference, /* nothing */, RequiredItem,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
    ESX_VI__METHOD__PARAMETER__REQUIRE(datastorePath)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
    ESX_VI__METHOD__PARAMETER__SERIALIZE_VALUE(String, datastorePath)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(HostDatastoreBrowserSearchSpec, searchSpec)
})



/* esxVI_SearchDatastore_Task */
ESX_VI__METHOD(SearchDatastore_Task, /* explicit _this */,
               (esxVI_Context *ctx,
                esxVI_ManagedObjectReference *_this,       /* required */
                const char *datastorePath,                 /* required */
                esxVI_HostDatastoreBrowserSearchSpec *searchSpec, /* optional */
                esxVI_ManagedObjectReference **output),    /* required */
               ManagedObjectReference, /* nothing */, RequiredItem,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
    ESX_VI__METHOD__PARAMETER__REQUIRE(datastorePath)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
    ESX_VI__METHOD__PARAMETER__SERIALIZE_VALUE(String, datastorePath)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(HostDatastoreBrowserSearchSpec, searchSpec)
})



/* esxVI_SessionIsActive */
ESX_VI__METHOD(SessionIsActive, sessionManager,
               (esxVI_Context *ctx,
                const char *sessionID,                     /* required */
                const char *userName,                      /* required */
                esxVI_Boolean *output),                    /* required */
               Boolean, /* nothing */, RequiredItem,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
    ESX_VI__METHOD__PARAMETER__REQUIRE(sessionID)
    ESX_VI__METHOD__PARAMETER__REQUIRE(userName)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
    ESX_VI__METHOD__PARAMETER__SERIALIZE_VALUE(String, sessionID)
    ESX_VI__METHOD__PARAMETER__SERIALIZE_VALUE(String, userName)
})



/* esxVI_ShutdownGuest */
ESX_VI__METHOD(ShutdownGuest, /* explicit _this */,
               (esxVI_Context *ctx,
                esxVI_ManagedObjectReference *_this),      /* required */
               void, /* nothing */, None,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
})



/* esxVI_SuspendVM_Task */
ESX_VI__METHOD(SuspendVM_Task, /* explicit _this */,
               (esxVI_Context *ctx,
                esxVI_ManagedObjectReference *_this,       /* required */
                esxVI_ManagedObjectReference **output),    /* required */
               ManagedObjectReference, /* nothing */, RequiredItem,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
})



/* esxVI_UnregisterVM */
ESX_VI__METHOD(UnregisterVM, /* explicit _this */,
               (esxVI_Context *ctx,
                esxVI_ManagedObjectReference *_this),      /* required */
               void, /* nothing */, None,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
})



/* esxVI_WaitForUpdates */
ESX_VI__METHOD(WaitForUpdates, propertyCollector,
               (esxVI_Context *ctx,
                const char *version,                       /* optional */
                esxVI_UpdateSet **output),                 /* required */
               UpdateSet, /* nothing */, RequiredItem,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
    ESX_VI__METHOD__PARAMETER__SERIALIZE_VALUE(String, version)
})



/* esxVI_ZeroFillVirtualDisk_Task */
ESX_VI__METHOD(ZeroFillVirtualDisk_Task, virtualDiskManager,
               (esxVI_Context *ctx,
                const char *name,                          /* required */
                esxVI_ManagedObjectReference *datacenter,  /* optional */
                esxVI_ManagedObjectReference **output),    /* required */
               ManagedObjectReference, /* nothing */, RequiredItem,
{
    ESX_VI__METHOD__PARAMETER__REQUIRE(_this)
    ESX_VI__METHOD__PARAMETER__REQUIRE(name)
},
{
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, _this)
    ESX_VI__METHOD__PARAMETER__SERIALIZE_VALUE(String, name)
    ESX_VI__METHOD__PARAMETER__SERIALIZE(ManagedObjectReference, datacenter)
})



