VMware Cloud Foundation on Dell EMC VxRail API Reference Guide

VMware Cloud Foundation on Dell EMC VxRail API Reference Guide

1. Overview

VMware Cloud Foundation on Dell EMC VxRail API Reference Guide

1.2. License information

License : VMware Cloud Foundation
Terms of service : http://www.vmware.com/

1.3. URI scheme

Host : sfo-vcf01.rainpole.io
BasePath : /
Schemes : HTTPS

1.4. Tags

  • AVNs : APIs for managing Solutions Networking (Application Virtual Networks)

  • BackupRestore : APIs for managing Backups and Restore

  • Bundles : APIs for managing Bundles

  • CEIP : APIs for managing CEIP status

  • Certificates : APIs for managing Certificates

  • Clusters : APIs for managing Clusters

  • Credentials : APIs for managing Credentials

  • DepotSettings : APIs for managing Depot Settings

  • Domains : APIs for managing Domains

  • FIPS mode details : APIs for getting FIPS mode details

  • Federation : APIs for managing Federation

  • Hosts : APIs for managing Hosts

  • License Keys : APIs for managing License Keys

  • Manifests : APIs for managing LCM Manifests

  • Members : APIs for managing Members of the Federation

  • Membership Token : APIs for managing Membership Token

  • NSX-T Clusters : APIs for managing NSX-T Clusters

  • NsxTEdgeClusters : APIs for managing NSX-T Edge Clusters

  • Progress : APIs for progress of Federation Tasks

  • Releases : APIs for managing Releases

  • SDDC : APIs for managing SDDC

  • SOS : APIs for managing SOS

  • SddcManagers : APIs for managing SDDC Managers

  • SystemPrechecks : APIs for managing System Prechecks

  • Tasks : APIs for managing Tasks

  • Tokens : APIs for managing Access and Refresh Token

  • Trusted Certificates : APIs for managing Trusted Certificates

  • Upgradables : APIs for managing Upgradables

  • Upgrades : APIs for managing Upgrades

  • Users : APIs for managing Users

  • VcfServices : APIs for managing VCF Services

  • VersionAliasesForBundleComponentType : APIs for managing Version Alias Configuration

  • VxRailManagers : APIs for managing VxRailManagers

  • WSA : APIs for managing Workspace ONE Access for vRealize

  • system : APIs for managing DNS & NTP configuration

  • vCenters : APIs for managing vCenters

  • vRA : APIs for managing vRealize Automation

  • vRLI : APIs for managing vRealize Log Insight

  • vROPs : APIs for managing vRealize Operations

  • vRSLCM : APIs for managing vRealize Suite Lifecycle Manager

1.5. API Versioning

  • API versioning is at the granularity of each resource.

  • API versioning is similar to URI versioning so that it is explicit i.e all APIs have the "/<version>/" prefix.

  • API version is independent of the product version and will evolve independently.

Tip
Reference APIs using the full path i.e "/v1/hosts" so that any future changes can be localized to a small scope in the automation code. This ensures that when the API version is incremented, you only need to update the references to the old APIs (which are now marked as deprecated) with the new APIs
Note
  • An illustration of API versioning is shown in the table below.

  • The illustration assumes that the product version is incremented from N to N+1, N+2 and so on.

  • The API version is only incremented when there are backward incompatible changes.

  • The older version of the APIs are deprecated when the version is incremented.

Product Version APIs

Product Version N

  • /v1/hosts

  • /v1/domains

  • /v1/clusters

Product Version N+1

  • /v1/hosts

  • /v1/domains (Deprecated)

  • /v2/domains

  • /v1/clusters

Product Version N+2

  • /v1/hosts (Deprecated)

  • /v2/hosts

  • /v1/domains (Deprecated)

  • /v2/domains

  • /v1/clusters

Product Version N+3

  • /v1/hosts (Deprecated)

  • /v2/hosts (Deprecated)

  • /v3/hosts

  • /v1/domains (Deprecated)

  • /v2/domains

  • /v1/clusters

1.6. Security

1.6.1. Overview

Cloud Builder APIs

  • All APIs are secured and need an username and password for invocation.

  • The APIs follow the Basic Authentication scheme.

  • To invoke the APIs, Cloud Builder "admin" account account and its password is required.

SDDC Manager APIs

  • All APIs are secured and need an access token for invocation.

  • The APIs follow the Bearer Authentication scheme.

Tip
For security reasons, you should periodically update the password of the SDDC Manager account.

1.6.2. Authentication

  • An access token and a refresh token can be obtained using the Token API. Refer Create a token pair section

  • An access token has a validity of 1 hour and a refresh token has a validity of 24 hours.

  • If the access token has expired, a new access token can be obtained using the refresh token (provided the refresh token has not expired). Refer Refresh an access token section.

  • If the refresh token has expired, a new pair of access and refresh token can be obtained using the Token API. Refer Create a token pair section.

  • Refer below for various use cases of API invocation and the HTTP response code :-

API invocation HTTP Response code

With a valid access token

200

Without an access token

401

With an expired access token

401

With an access token with insufficient privileges

403

With an expired or invalid refresh token

404

1.6.3. Authorization

1.6.4. Changing the "admin" account password

Cloud Builder APIs

Note
Changing password of the Cloud Builder "admin" account is not supported.

1.7. URL Encoding

While invoking any API, make sure to encode the URL twice using UTF-8 encoding scheme if the URL contains any non-ASCII character.
Example:

Character # is first encoded to %23, which is again encoded to %2523.

1.8. API Changelog

Note
Legacy APIs, that predated the launch of public APIs, will no longer be accessible. These legacy APIs use Basic Authentication mechanism which is not considered as an enterprise grade security mechanism and hence not recommended. All current public APIs use Token based authentication mechanism.
Verb Path Parameter/Property

GET

(New) /v1/system/health-summary

Not Applicable

GET

(New) /v1/system/health-summary/{id}

Not Applicable

GET

(New) /v1/system/health-summary/{id}/data

Not Applicable

POST

(New) /v1/system/health-summary

Not Applicable

GET

(New) /v1/system/support-bundles

Not Applicable

GET

(New) /v1/system/support-bundles/{id}

Not Applicable

GET

(New) /v1/system/support-bundles/{id}/data

Not Applicable

POST

(New) /v1/system/support-bundles

Not Applicable

GET

/v1/clusters

  • (New) PageOfCluster.Cluster.VdsSpec.PortgroupSpec.activeUplinks

GET

/v1/clusters/{id}

  • (New) Cluster.VdsSpec.PortgroupSpec.activeUplinks

POST

/v1/clusters

  • (New) ClusterCreationSpec.ComputeSpec.ClusterSpec.NetworkSpec.VdsSpec.PortgroupSpec.activeUplinks

  • (New) ClusterCreationSpec.ComputeSpec.ClusterSpec.HostSpec.HostNetworkSpec.VmNic.uplink

PATCH

/v1/clusters/{id}

  • (New) ClusterUpdateSpec.ClusterExpansionSpec.HostSpec.HostNetworkSpec.VmNic.uplink

  • (New) ClusterUpdateSpec.ClusterStretchSpec.HostSpec.HostNetworkSpec.VmNic.uplink

POST

/v1/clusters/validations

  • (New) ClusterCreationSpec.ComputeSpec.ClusterSpec.NetworkSpec.VdsSpec.PortgroupSpec.activeUplinks

  • (New) ClusterCreationSpec.ComputeSpec.ClusterSpec.HostSpec.HostNetworkSpec.VmNic.uplink

POST

/v1/clusters/{id}/validations

  • (New) ClusterUpdateSpec.ClusterExpansionSpec.HostSpec.HostNetworkSpec.VmNic.uplink

  • (New) ClusterUpdateSpec.ClusterStretchSpec.HostSpec.HostNetworkSpec.VmNic.uplink

POST

/v1/domains

  • (New) DomainCreationSpec.ComputeSpec.ClusterSpec.NetworkSpec.VdsSpec.PortgroupSpec.activeUplinks

  • (New) DomainCreationSpec.ComputeSpec.ClusterSpec.HostSpec.HostNetworkSpec.VmNic.uplink

PATCH

/v1/domains/{id}

  • (New) DomainUpdateSpec.ClusterSpec.NetworkSpec.VdsSpec.PortgroupSpec.activeUplinks

POST

/v1/domains/validations

  • (New) DomainCreationSpec.ComputeSpec.ClusterSpec.NetworkSpec.VdsSpec.PortgroupSpec.activeUplinks

  • (New) DomainCreationSpec.ComputeSpec.ClusterSpec.HostSpec.HostNetworkSpec.VmNic.uplink

POST

/v1/domains/{domainId}/clusters/{clusterName}/queries

  • (New) ClusterQueryResponse.PageOfCluster.Cluster.VdsSpec.PortgroupSpec.activeUplinks

GET

/v1/domains/{domainId}/clusters/{clusterName}/queries/{queryId}

  • (New) ClusterQueryResponse.PageOfCluster.Cluster.VdsSpec.PortgroupSpec.activeUplinks

POST

/v1/domains/{domainId}/clusters/queries

  • (New) ClusterQueryResponse.PageOfCluster.Cluster.VdsSpec.PortgroupSpec.activeUplinks

GET

/v1/domains/{domainId}/clusters/queries/{queryId}

  • (New) ClusterQueryResponse.PageOfCluster.Cluster.VdsSpec.PortgroupSpec.activeUplinks