SDK API

vSphere Software Development Kits (SDKs): Selecting Appropriate SDKs for vSphere Workflow Automation

VMware vSphere provides a variety of SDK choices for automating the vSphere workflows. We often receive questions from our community regarding the choice of SDKs for automating specific vSphere workflows. Here are some guidelines on when to use different SDKs for automation tasks.

Choice of SDKs

The core vSphere APIs are categorised into three flavours based on the underlying protocol. vSphere Software Development Kits libraries are also categorised based on them.

  1. vSphere Web Services (VIM) APIThese are the popular APIs covering majority of the vSphere Infrastructure using the SOAP protocol. pyvmomi, govmomi and vSphere Management Java SDK cover these APIs extensively. All legacy features prior to vSphere 6.5 are available only in these SDKs.
  2. vSphere Automation API :  The vSphere Automation API follows a resource-based REST architecture which are introduced in vSphere 6.5. The VMware vSphere Automation SDKs are optimized for developing application using these APIs. These SDKs are available only in Java and Python language and leverage the JSON RPC inspired protocol. Some of the popular features like content library, tagging, vSphere with Kubernetes etc are only available in this SDK platform.
    Few  important notes here:
    a. Features like, Virtual Machine Management, Host & Cluster Management and other features introduced before vSphere 6.5 are also partially available in vSphere Automation API.
    b. Though the title of this SDK says vSphere Automation SDKs it is not limited to vSphere. They have client bindings for VMware Cloud and NSX on VMware Cloud. This could be used for Software Defined Datacenter (SDDC) Automation. We will talk about this in detail in an another future post.
  3. Virtual Infrastructure JSON API (VI JSON API) : For developers who don’t like the nuances of SOAP, these APIs provide REST like interfaces for all vSphere Web Services (VIM) APIs  listed above.  Currently, there are no SDKs associated with these APIs.

Let us focus only on the SDKs based on vSphere Web Services (VIM) APIs and vSphere Automation APIs. We need to ensure that the client bindings of the vSphere feature are available with the right SDKs. The API reference guide and the SDK programming language documentation could be a good starting point. In general, you could refer below table to identify the right SDKs and programming guides.

Major vSphere Features in SDKs

If you are interested in generating language bindings in other programming languages using third-party tools, you can use the WSDLs shipped in our vSphere Management SDK or use VI JSON Specifications.

When deciding which SDK to use, consider your familiarity with the programming language, the specific requirements of your project, and the availability of resources and examples for the chosen SDK. Additionally, keep in mind that VMware may release updates and new SDKs, deprecate SDKs, so checking our official documentation for the latest information is recommended.

We will have detailed onboarding guide for python and java developers in the future posts.