You can use only the vSphere Web Services API or the Virtual Infrastructure Management API to create a cluster in your virtual environment and specify the initial desired state of the cluster. Use the vSphere Automation API to specify the detailed desired state after the cluster creation.
Starting with vSphere 8.0 Update 1, you can use the Virtual Infrastructure Management API which introduced a new way of accessing and using the vSphere Web Services. That is, you can now use the JSON data format over HTTP and create REST-like requests to the vSphere Web Services. Use the Virtual Infrastructure API or the vSphere Web Services API to create a cluster. For more information about how to authenticate and use the Virtual Infrastructure Management API, see the vSphere Web Services SDK Programming Guide, An Introduction to vSphere APIs, and Getting Started with vSphere APIs documentation. You can also check the Virtual Infrastructure JSON API reference documentation at https://developer.vmware.com/apis/vi-json/latest/.
You can use the POST https://<vcenter_ip_address_or_fqdn> /sdk/vim25/<release_number>/Folder/<moID>/CreateClusterEx
request and submit the name of the cluster and a ClusterConfigSpecEx data object in the request body. In the data object, among other properties, you can specify the desired state for the cluster. The desiredSoftwareSpec property in the ComputeResourceConfigSpec data object contains the desired software specification for the cluster. This property is available for applications using the vSphere Web Services API of version 7.0 and later. You can create a DesiredSoftwareSpec data object and specify the base image that must be applied on the cluster with the baseImageSpec property. Optionally, you can specify a vendor add-on to be added to the software specification with the vendorAddOnSpec property.
Starting with vSphere 8.0, you can also enable the cluster to use vSphere Configuration Profiles by setting the enableConfigManager property of the ComputeResourceConfigSpec data object to true.