VMware vSAN SDK for C#
=============================

The VMware vSAN SDK supports the development of programs that manage
vSAN using vSAN Management API.

VMware vSAN runs in conjunction with vCenter and ESXi servers.
Please note that the VMware vSphere API is required as a baseline for using
vSAN API (i.e., vSphere API should be used for logging in, retrieving
ManagedEntities like vCenter clusters).

VMware vSAN SDK for C# depends on VMware vSphere Web Services SDK
(v6.7.0) and vSAN Health service Web Service Definition. The following
executables are required to generate the vSAN C# Dynamic-link library (DLL):

 * .NET Framework 4.0
 * csc.exe (C# Compiler)
 * sgen.exe (XML Serializer Generator Tool)
 * wsdl.exe (Web Service Description Language 4.0 for Microsoft .NET)
 * SvcUtil.exe (ServiceModel Metadata Utility Tool)
 * Microsoft.Web.Services3.dll
 * Python (minimal 3.5.3)

builder.py has been tested to work with "Microsoft (R) Visual C# Compiler version 4.5" and later version.

To build the vSAN C# DLL, run with:

 $ python builder.py
	vsan_wsdl \
	vsanservice_wsdl \
	-c <path_to_csc.exe> \
	-s <path_to_sgen.exe> \
	-w <path_to_wsdl.exe> \
	-v <path_to_SvcUtil.exe> \
	-m <path_to_Microsoft.Web.Service3.dll>

Example :
 $ python builder.py \
	"D:\vsan-sdk-cs\bindings\wsdl\vsan.wsdl" \
	"D:\vsan-sdk-cs\bindings\wsdl\vsanService.wsdl" \
	-w "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\wsdl.exe" \
	-s "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\sgen.exe" \
	-c "C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe" \
	-v "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\SvcUtil.exe"
	-m "C:\Program Files (x86)\Microsoft WSE\v3.0\Microsoft.Web.Services3.dll"

This build command will generate the following DLLs:

   * VsanhealthService.dll
   * VsanhealthService.XmlSerializers.dll

Sample code usage:

>   .\VsanHealth.exe <vsanhealth/vsaniscsi> --username <hostUsername/vcUsername>
>      --url https://<hostAddress/vcAddress>/sdk
>      --clusterName clusterName --ignorecert --disablesso
