VMware products (ESXi and vCenter, which used to manage ESXi) support receiving external API requests through the web service. You can execute the same administration tasks you do on the vSphere client, such as creating a new virtual machine, creating a new vSwitch, or even controlling the vm status, but this time through the supported API that has bindings for many languages, such as Python, Ruby, and Go.
vSphere has a special model for the inventory and everything inside it is an object with specific values. You can access this model and see the actual values for your infrastructure through the Managed Object Browser (MoB) which gives you access to all object details. We will use the official Python bindings from VMware (pyvmomi) to interact with this model and alter the values (or create them) inside the inventory.
It's worth noting that the MoB can...