1. Overview

VMware Cloud Foundation 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

  • Network Pools : APIs for managing Network Pools

  • NsxTEdgeClusters : APIs for managing NSX-T Edge Clusters

  • PSCs : APIs for managing PSCs

  • Personalities : APIs for managing Personalities

  • 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

  • VasaProviders : APIs for managing VASA Providers

  • VcfServices : APIs for managing VCF Services

  • VersionAliasesForBundleComponentType : APIs for managing Version Alias Configuration

  • 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

2. Use cases

2.1. Access Token and Refresh Token

2.1.1. Create a token pair

  • SDDC Manager APIs are secured using token-based authentication.

  • As a first step before invocation of any API, an access token has to be obtained.

  • Invoking the Token API returns a token pair - access token and refresh token.

  • To invoke an API, the access token has to be passed in the Authorization header as a Bearer token.

Prerequisites
  1. The following data is required :-

    • VCF Credentials

      • User created in SSO or AD domain and associated as an ADMIN or OPERATOR or VIEWER role in VCF

      • Username

      • Password

Note
For the sake of brevity, the Bearer tokens have been abbreviated in the code snippets throughout this document.
Note
To create a token pair with "apiKey", refer Obtain access token for a service user section.
Steps
  1. Invoke the API with the right credentials.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/tokens' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
  "username" : "[email protected]",
  "password" : "VMware123!"
}'

HTTP Request

POST /v1/tokens HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 77
Host: sfo-vcf01.rainpole.io

{
  "username" : "[email protected]",
  "password" : "VMware123!"
}

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 683

{
  "accessToken" : "eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiIxNTFlZWI5Yy1mNWNmLTQ3N2UtYTJhYS0yMzg4ZmFmYzMwNDAiLCJpYXQiOjE1ODIxMzgzMzQsInN1YiI6ImFkbWluaXN0cmF0b3JAdnNwaGVyZS5sb2NhbCIsImlzcyI6InZjZi1hdXRoIiwiYXVkIjoic2RkYy1zZXJ2aWNlcyIsIm5iZiI6MTU4MjEzODMzNCwiZXhwIjoxNTgyMTQxOTM0LCJ1c2VyIjoiYWRtaW5pc3RyYXRvckB2c3BoZXJlLmxvY2FsIiwibmFtZSI6ImFkbWluaXN0cmF0b3JAdnNwaGVyZS5sb2NhbCIsInNjb3BlIjpbIkJBQ0tVUF9DT05GSUdfUkVBRCIsIkNSRURFTlRJQUxfUkVBRCIsIlVTRVJfV1JJVEUiLCJPVEhFUl9XUklURSIsIkJBQ0tVUF9DT05GSUdfV1JJVEUiLCJPVEhFUl9SRUFEIiwiVVNFUl9SRUFEIiwiQ1JFREVOVElBTF9XUklURSJdfQ.ylzrCyo4ymTKtSv1flmUrW-b8mxjRl7T2uV3a8sWWMA",
  "refreshToken" : {
    "id" : "3c6b3c30-3bf2-480b-9539-8483699ab911"
  }
}

2.1.2. Refresh an access token

  • Refresh token is a special type of token used to renew an access token when the access token expires.

  • A refresh token can be used any number of times to obtain an access token until it has not expired or been revoked.

Prerequisites
  1. The following data is required

    • Refresh token is obtained when token pair is generated

Steps
  1. Invoke the API by passing the refresh token.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/tokens/access-token/refresh' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '"eb8d1a03-6644-4a76-b018-2c7b02c2a526"'

HTTP Request

PATCH /v1/tokens/access-token/refresh HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 38
Host: sfo-vcf01.rainpole.io

"eb8d1a03-6644-4a76-b018-2c7b02c2a526"

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 583

eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiIxNTFlZWI5Yy1mNWNmLTQ3N2UtYTJhYS0yMzg4ZmFmYzMwNDAiLCJpYXQiOjE1ODIxMzgzMzQsInN1YiI6ImFkbWluaXN0cmF0b3JAdnNwaGVyZS5sb2NhbCIsImlzcyI6InZjZi1hdXRoIiwiYXVkIjoic2RkYy1zZXJ2aWNlcyIsIm5iZiI6MTU4MjEzODMzNCwiZXhwIjoxNTgyMTQxOTM0LCJ1c2VyIjoiYWRtaW5pc3RyYXRvckB2c3BoZXJlLmxvY2FsIiwibmFtZSI6ImFkbWluaXN0cmF0b3JAdnNwaGVyZS5sb2NhbCIsInNjb3BlIjpbIkJBQ0tVUF9DT05GSUdfUkVBRCIsIkNSRURFTlRJQUxfUkVBRCIsIlVTRVJfV1JJVEUiLCJPVEhFUl9XUklURSIsIkJBQ0tVUF9DT05GSUdfV1JJVEUiLCJPVEhFUl9SRUFEIiwiVVNFUl9SRUFEIiwiQ1JFREVOVElBTF9XUklURSJdfQ.ylzrCyo4ymTKtSv1flmUrW-b8mxjRl7T2uV3a8sWWMA

2.1.3. Revoke a refresh token

  • As refresh tokens are generally issued with validity for longer durations, there is a possibility that they maybe compromised.

  • Revoking a refresh token means that an already issued refresh token cannot be used again to refresh an access token.

Prerequisites
  1. The following data is required

    • Refresh token

Steps
  1. Invoke the API by passing the refresh token which is to be revoked.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/tokens/refresh-token' -i -X DELETE \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '"eb8d1a03-6644-4a76-b018-2c7b02c2a526"'

HTTP Request

DELETE /v1/tokens/refresh-token HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 38
Host: sfo-vcf01.rainpole.io

"eb8d1a03-6644-4a76-b018-2c7b02c2a526"

HTTP Response

HTTP/1.1 204 No Content

2.2. User Management

2.2.1. Add users

  • This API is used to add users.

Prerequisites
  1. The following data is required

    • Name of the SSO or AD domain

    • Username

    • Type of the user. For types supported, refer to User

    • Role ID

Steps
  1. Fetch the role ID for the role.

Tip
Refer to Get the Roles
  1. Invoke the API to add a user.

Note
For the sake of brevity, the Bearer tokens in the Authorization header has been abbreviated in the code snippets throughout this document.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/users' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '[ {
  "name" : "[email protected]",
  "domain" : "vsphere.local",
  "type" : "USER",
  "role" : {
    "id" : "9dbf721d-c817-4813-b32b-97f23af57af9"
  }
}, {
  "name" : "[email protected]",
  "domain" : "vsphere.local",
  "type" : "USER",
  "role" : {
    "id" : "9dbf721d-c817-4813-b32b-97f23af57af9"
  }
}, {
  "name" : "SERVICE_USER_1",
  "type" : "SERVICE",
  "role" : {
    "id" : "9dbf721d-c817-4813-b32b-97f23af57af9"
  }
} ]'

HTTP Request

POST /v1/users HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 437
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

[ {
  "name" : "[email protected]",
  "domain" : "vsphere.local",
  "type" : "USER",
  "role" : {
    "id" : "9dbf721d-c817-4813-b32b-97f23af57af9"
  }
}, {
  "name" : "[email protected]",
  "domain" : "vsphere.local",
  "type" : "USER",
  "role" : {
    "id" : "9dbf721d-c817-4813-b32b-97f23af57af9"
  }
}, {
  "name" : "SERVICE_USER_1",
  "type" : "SERVICE",
  "role" : {
    "id" : "9dbf721d-c817-4813-b32b-97f23af57af9"
  }
} ]

HTTP Response

HTTP/1.1 201 Created
Content-Type: application/json
Content-Length: 884

{
  "elements" : [ {
    "id" : "8fe54904-6c4e-44ce-af89-2058e90b1f6f",
    "name" : "[email protected]",
    "domain" : "vsphere.local",
    "type" : "USER",
    "role" : {
      "id" : "9dbf721d-c817-4813-b32b-97f23af57af9"
    },
    "creationTimestamp" : "2021-09-13T23:21:33.792Z"
  }, {
    "id" : "cca58fb3-4c42-4743-877c-e40da138df95",
    "name" : "[email protected]",
    "domain" : "vsphere.local",
    "type" : "USER",
    "role" : {
      "id" : "9dbf721d-c817-4813-b32b-97f23af57af9"
    },
    "creationTimestamp" : "2021-09-13T23:21:33.792Z"
  }, {
    "id" : "29a5efaf-0d56-4cc4-956d-2c4b65ac0339",
    "name" : "SERVICE_USER_1",
    "domain" : "Nil",
    "type" : "SERVICE",
    "apiKey" : "4U894RcodKqgfYKN7EyagD6CaBR2jxd4",
    "role" : {
      "id" : "9dbf721d-c817-4813-b32b-97f23af57af9"
    },
    "creationTimestamp" : "2021-09-13T23:21:33.792Z"
  } ]
}

2.2.2. Add service users

  • This API is used to add service users.

Prerequisites
  1. The following data is required

    • Username

    • Type of the user. The type would be SERVICE for service users. For types supported, refer to User.

    • Role ID

Steps
  1. Fetch the role ID for the role.

Tip
Refer to Get the Roles
  1. Invoke the API to create a service user.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/users' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '[ {
  "name" : "service_account_1",
  "type" : "SERVICE",
  "role" : {
    "id" : "0d5b7431-e13d-411a-8866-fd84a4a97506"
  }
} ]'

HTTP Request

POST /v1/users HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 128
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

[ {
  "name" : "service_account_1",
  "type" : "SERVICE",
  "role" : {
    "id" : "0d5b7431-e13d-411a-8866-fd84a4a97506"
  }
} ]

HTTP Response

HTTP/1.1 201 Created
Content-Type: application/json
Content-Length: 337

{
  "elements" : [ {
    "id" : "f6ed4ea7-fa89-417c-8495-c3b4891799a0",
    "name" : "service_account_1",
    "domain" : "Nil",
    "type" : "SERVICE",
    "apiKey" : "L9lIamad2eYP4fsjUB8b7JpUkAYB1rVm",
    "role" : {
      "id" : "0d5b7431-e13d-411a-8866-fd84a4a97506"
    },
    "creationTimestamp" : "2021-09-13T23:21:33.028Z"
  } ]
}
  1. The response of the API contains the apiKey. With the apiKey, the service user can login and obtain access token.

Obtain access token for a service user

Prerequisites
  1. The following data is required

    • API key

Steps
  1. Invoke the API with the API key to generate an access token and refresh token.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/tokens' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
  "username" : "automationapp",
  "apiKey" : "6598S0SIQC04sGjEr0nIeDlZx18GYRoT"
}'

HTTP Request

POST /v1/tokens HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 83
Host: sfo-vcf01.rainpole.io

{
  "username" : "automationapp",
  "apiKey" : "6598S0SIQC04sGjEr0nIeDlZx18GYRoT"
}

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 683

{
  "accessToken" : "eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiIxNTFlZWI5Yy1mNWNmLTQ3N2UtYTJhYS0yMzg4ZmFmYzMwNDAiLCJpYXQiOjE1ODIxMzgzMzQsInN1YiI6ImFkbWluaXN0cmF0b3JAdnNwaGVyZS5sb2NhbCIsImlzcyI6InZjZi1hdXRoIiwiYXVkIjoic2RkYy1zZXJ2aWNlcyIsIm5iZiI6MTU4MjEzODMzNCwiZXhwIjoxNTgyMTQxOTM0LCJ1c2VyIjoiYWRtaW5pc3RyYXRvckB2c3BoZXJlLmxvY2FsIiwibmFtZSI6ImFkbWluaXN0cmF0b3JAdnNwaGVyZS5sb2NhbCIsInNjb3BlIjpbIkJBQ0tVUF9DT05GSUdfUkVBRCIsIkNSRURFTlRJQUxfUkVBRCIsIlVTRVJfV1JJVEUiLCJPVEhFUl9XUklURSIsIkJBQ0tVUF9DT05GSUdfV1JJVEUiLCJPVEhFUl9SRUFEIiwiVVNFUl9SRUFEIiwiQ1JFREVOVElBTF9XUklURSJdfQ.ylzrCyo4ymTKtSv1flmUrW-b8mxjRl7T2uV3a8sWWMA",
  "refreshToken" : {
    "id" : "3c6b3c30-3bf2-480b-9539-8483699ab911"
  }
}

2.2.3. Get the Users

  • This API is used to get all the users listed in the system.

  • This also gives other details associated with the user like domain, type of user and the role id.

Steps
  1. Invoke the API to fetch all users.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/users' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/users HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 884

{
  "elements" : [ {
    "id" : "8fe54904-6c4e-44ce-af89-2058e90b1f6f",
    "name" : "[email protected]",
    "domain" : "vsphere.local",
    "type" : "USER",
    "role" : {
      "id" : "9dbf721d-c817-4813-b32b-97f23af57af9"
    },
    "creationTimestamp" : "2021-09-13T23:21:33.792Z"
  }, {
    "id" : "cca58fb3-4c42-4743-877c-e40da138df95",
    "name" : "[email protected]",
    "domain" : "vsphere.local",
    "type" : "USER",
    "role" : {
      "id" : "9dbf721d-c817-4813-b32b-97f23af57af9"
    },
    "creationTimestamp" : "2021-09-13T23:21:33.792Z"
  }, {
    "id" : "29a5efaf-0d56-4cc4-956d-2c4b65ac0339",
    "name" : "SERVICE_USER_1",
    "domain" : "Nil",
    "type" : "SERVICE",
    "apiKey" : "4U894RcodKqgfYKN7EyagD6CaBR2jxd4",
    "role" : {
      "id" : "9dbf721d-c817-4813-b32b-97f23af57af9"
    },
    "creationTimestamp" : "2021-09-13T23:21:33.792Z"
  } ]
}

2.2.4. Delete a User

  • This API is used to delete a user.

Prerequisites
  1. The following data is required

    • User ID

Steps
  1. Invoke the API with the "user ID" to be deleted.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/users/8fe54904-6c4e-44ce-af89-2058e90b1f6f' -i -X DELETE \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

DELETE /v1/users/8fe54904-6c4e-44ce-af89-2058e90b1f6f HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 204 No Content

2.2.5. Get the Roles

  • This API is used to fetch all the roles supported by VCF.

  • Currently there are three roles that are supported - ADMIN, OPERATOR and VIEWER.

Steps
  1. Invoke the API to fetch the roles and role IDs

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/roles' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/roles HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 361

{
  "elements" : [ {
    "id" : "1d71786b-ccfa-45e0-8ed6-d9a4db4e0530",
    "name" : "ADMIN",
    "description" : "Administrator"
  }, {
    "id" : "5edc66cf-18f5-41df-bc5b-1dd6be73336f",
    "name" : "OPERATOR",
    "description" : "Operator"
  }, {
    "id" : "00c43164-7a02-4ec5-a817-a3c3ace2bc69",
    "name" : "VIEWER",
    "description" : "Viewer"
  } ]
}

2.2.6. Get SSO Domain

  • This API is used to fetch the SSO domains known to the system.

Steps
  1. Invoke the API by specifying the "SSO domain name".

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/sso-domains' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/sso-domains HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 38

{
  "elements" : [ "vsphere.local" ]
}

2.2.7. Get SSO Domain entities

  • This API is used to fetch all domain entities in a particular domain known to the system.

  • This includes users and subdomains.

Prerequisites
  1. The following data is required

    • SSO Domain name

Steps
  1. Invoke the API by specifying the "SSO domain name".

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/sso-domains/vsphere.local/entities' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/sso-domains/vsphere.local/entities HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 786

{
  "elements" : [ {
    "id" : "[email protected]",
    "name" : "USER_1",
    "type" : "USER"
  }, {
    "id" : "[email protected]",
    "name" : "USER_2",
    "type" : "USER"
  }, {
    "id" : "[email protected]",
    "name" : "USER_3",
    "type" : "USER"
  }, {
    "id" : "[email protected]",
    "name" : "USER_4",
    "type" : "USER"
  }, {
    "id" : "ä[email protected]",
    "name" : "äUSER_5",
    "type" : "USER"
  }, {
    "id" : "vsphere.local\\\\group_1",
    "name" : "",
    "type" : "GROUP"
  }, {
    "id" : "vsphere.local\\\\group_2",
    "name" : "",
    "type" : "GROUP"
  }, {
    "id" : "vsphere.local\\\\group_3",
    "name" : "",
    "type" : "GROUP"
  }, {
    "id" : "vsphere.local\\\\group_4",
    "name" : "",
    "type" : "GROUP"
  } ]
}

2.2.8. Get local account details

  • This API is used to check whether or not the local account is configured.

Steps
  1. Invoke the API to check whether or not the local account is configured.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/users/local/admin' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/users/local/admin HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 141

{
  "isConfigured" : false,
  "name" : "admin@local",
  "type" : "USER",
  "role" : {
    "id" : "a93c2288-89e7-49ea-a65b-e30d2845e544"
  }
}

2.2.9. Update password for local account

  • This API is used to update the local account password or to configure local account if it wasn’t configured during the bringup

Prerequisites
  1. The following data is required

    • Old Password

    • New Password

Note
Provide only "newPassword" if you are configuring the local account for the first time.
  1. New password must be in compliance with these password policies.

    Password requirements:

    • Length: 12-127 characters

    • Allowed special characters: ! % @ $ ^ # ? *

    • At least 1 small letter, capital letter, number and special character should be present

    • At least 2 alphabetic characters should be present

    • A character cannot be repeated more than 3 times consecutively

Steps
  1. Invoke the API to update the local account password or to configure local account.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/users/local/admin' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "oldPassword" : "VMware123!",
  "newPassword" : "VMware12345!"
}'

HTTP Request

PATCH /v1/users/local/admin HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 68
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "oldPassword" : "VMware123!",
  "newPassword" : "VMware12345!"
}

HTTP Response

HTTP/1.1 204 No Content

2.3. SDDCs (Management Domain)

Note
The /v1/sddcs APIs are available only on the Cloud Builder appliance

2.3.1. Create an SDDC

Create an SDDC workflow executes automatically the following:

  • Configures networking on each host.

  • Configures vSAN storage on the hosts.

  • Deploys and configures the management stack - vCenter and NSX

  • Deploys and configures SDDC Manager which provides the ability to perform Day 2 operations

Prerequisites
  1. The following data is required

    • ID of the SDDC instance

    • Detailed list of host

Tip
Refer to: SddcHostSpec.
  • vCenter details

Tip
Refer to: SddcVcenterSpec.
  • Cluster details

Tip
Refer to: SddcClusterSpec.
  • Detailed list of Distributed Virtual Switches

Tip
Refer to: DvsSpec.
  • Detailed list of networks

Tip
Refer to: SddcNetworkSpec.
  • DNS details

Tip
Refer to: DnsSpec.
  • List of NTP servers

  • Name of the task to execute

  1. The following data is optional

    • vSAN details

Tip
Refer to: VsanSpec.
  • NSX-T details

Tip
Refer to: SddcNsxtSpec.
Note
In order to configure NSX-T Host Overlay Using a Static IP Pool, please provide ipAddressPoolSpec in nsxtSpec. Otherwise, DHCP will be chosen. Example specifications can seen below.
  • SDDC Manager details

Tip
Refer to: SddcManagerSpec.
  • List of PSC’s details

Tip
Refer to: PscSpec.
  • VxManager details

Tip
Refer to: VxManagerSpec.
  • Name of network pool associated with the management domain

  • List of names of the components to be excluded

  • Version of the Distributed Virtual Switch

  • Boolean to identify whether Customer Experience Improvement Program should be enabled

  • Boolean to identify whether Federal Information Processing Standards should be enabled

  • Remote Site details

Tip
Refer to: RemoteSiteSpec.
  • Passphrase for the certificates to be used for vCenter and NSX

  • License for the ESXi hosts

  • Boolean to identify if ESXi thumbprint validation is to be skipped

  • Security details

Tip
Refer to: SecuritySpec.
  • Boolean to identify if vSAN should be cleaned up

Note
Should be true only if this is the very first run
Steps
  1. Validate the input specification.

cURL Request

$ curl 'https://sfo-cb01.rainpole.local/v1/sddcs/validations' -i -u 'admin:VMwareInfra@1' -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
  "dvSwitchVersion" : "7.0.0",
  "skipEsxThumbprintValidation" : true,
  "managementPoolName" : "bringup-networkpool",
  "sddcManagerSpec" : {
    "hostname" : "sfo-vcf01",
    "ipAddress" : "10.0.0.4",
    "netmask" : "255.255.255.0",
    "localUserPassword" : "xxxxxxx",
    "rootUserCredentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "secondUserCredentials" : {
      "username" : "vcf",
      "password" : "xxxxxxx"
    }
  },
  "sddcId" : "sddcId-public-api-01",
  "esxLicense" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
  "taskName" : "workflowconfig/workflowspec-ems.json",
  "ntpServers" : [ "10.0.0.250" ],
  "dnsSpec" : {
    "subdomain" : "vrack.vsphere.local",
    "domain" : "vsphere.local",
    "nameserver" : "10.0.0.250",
    "secondaryNameserver" : "10.0.0.250"
  },
  "networkSpecs" : [ {
    "subnet" : "10.0.0.0/22",
    "vlanId" : "0",
    "mtu" : "1500",
    "networkType" : "MANAGEMENT",
    "gateway" : "10.0.0.250"
  }, {
    "subnet" : "10.0.4.0/24",
    "includeIpAddressRanges" : [ {
      "startIpAddress" : "10.0.4.7",
      "endIpAddress" : "10.0.4.48"
    }, {
      "startIpAddress" : "10.0.4.3",
      "endIpAddress" : "10.0.4.6"
    } ],
    "includeIpAddress" : [ "10.0.4.50", "10.0.4.49" ],
    "vlanId" : "0",
    "mtu" : "8940",
    "networkType" : "VSAN",
    "gateway" : "10.0.4.253"
  }, {
    "subnet" : "10.0.8.0/24",
    "includeIpAddressRanges" : [ {
      "startIpAddress" : "10.0.8.3",
      "endIpAddress" : "10.0.8.50"
    } ],
    "vlanId" : "0",
    "mtu" : "8940",
    "networkType" : "VMOTION",
    "gateway" : "10.0.8.253"
  } ],
  "nsxtSpec" : {
    "nsxtManagerSize" : "medium",
    "nsxtManagers" : [ {
      "hostname" : "sfo-m01-nsx01a",
      "ip" : "10.0.0.31"
    }, {
      "hostname" : "sfo-m01-nsx01b",
      "ip" : "10.0.0.32"
    }, {
      "hostname" : "sfo-m01-nsx01c",
      "ip" : "10.0.0.33"
    } ],
    "rootNsxtManagerPassword" : "xxxxxxx",
    "nsxtAdminPassword" : "xxxxxxx",
    "nsxtAuditPassword" : "xxxxxxx",
    "rootLoginEnabledForNsxtManager" : "true",
    "sshEnabledForNsxtManager" : "true",
    "overLayTransportZone" : {
      "zoneName" : "sfo-m01-tz-overlay01",
      "networkName" : "net-overlay"
    },
    "vlanTransportZone" : {
      "zoneName" : "sfo-m01-tz-vlan01",
      "networkName" : "net-vlan"
    },
    "vip" : "10.0.0.30",
    "vipFqdn" : "sfo-m01-nsx01",
    "nsxtLicense" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "transportVlanId" : 0,
    "ipAddressPoolSpec" : {
      "name" : "sfo01-m01-cl01-tep01",
      "description" : "ESXi Host Overlay TEP IP Pool",
      "subnets" : [ {
        "ipAddressPoolRanges" : [ {
          "start" : "172.16.14.101",
          "end" : "172.16.14.108"
        } ],
        "cidr" : "172.16.14.0/24",
        "gateway" : "172.16.14.1"
      } ]
    }
  },
  "vsanSpec" : {
    "vsanName" : "sfo-m01-cl01-ds-vsan01",
    "licenseFile" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "datastoreName" : "sfo-m01-cl01-ds-vsan01"
  },
  "dvsSpecs" : [ {
    "mtu" : 8940,
    "niocSpecs" : [ {
      "trafficType" : "VSAN",
      "value" : "HIGH"
    }, {
      "trafficType" : "VMOTION",
      "value" : "LOW"
    }, {
      "trafficType" : "VDP",
      "value" : "LOW"
    }, {
      "trafficType" : "VIRTUALMACHINE",
      "value" : "HIGH"
    }, {
      "trafficType" : "MANAGEMENT",
      "value" : "NORMAL"
    }, {
      "trafficType" : "NFS",
      "value" : "LOW"
    }, {
      "trafficType" : "HBR",
      "value" : "LOW"
    }, {
      "trafficType" : "FAULTTOLERANCE",
      "value" : "LOW"
    }, {
      "trafficType" : "ISCSI",
      "value" : "LOW"
    } ],
    "dvsName" : "sfo-m01-cl01-vds01",
    "vmnics" : [ "vmnic0", "vmnic1" ],
    "networks" : [ "MANAGEMENT", "VSAN", "VMOTION" ]
  } ],
  "clusterSpec" : {
    "clusterName" : "sfo-m01-cl01",
    "clusterEvcMode" : "",
    "resourcePoolSpecs" : [ {
      "cpuSharesLevel" : "high",
      "cpuSharesValue" : 0,
      "name" : "sfo-m01-cl01-rp-sddc-mgmt",
      "memorySharesValue" : 0,
      "cpuReservationPercentage" : 0,
      "memoryLimit" : -1,
      "memoryReservationPercentage" : 0,
      "cpuReservationExpandable" : true,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "cpuLimit" : -1,
      "type" : "management"
    }, {
      "cpuSharesLevel" : "high",
      "cpuSharesValue" : 0,
      "name" : "sfo-m01-cl01-rp-sddc-network",
      "memorySharesValue" : 0,
      "cpuReservationPercentage" : 0,
      "memoryLimit" : -1,
      "memoryReservationPercentage" : 0,
      "cpuReservationExpandable" : true,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "cpuLimit" : -1,
      "type" : "network"
    }, {
      "cpuSharesLevel" : "normal",
      "cpuSharesValue" : 0,
      "name" : "sfo-m01-cl01-rp-sddc-compute",
      "memorySharesValue" : 0,
      "cpuReservationPercentage" : 0,
      "memoryLimit" : -1,
      "memoryReservationPercentage" : 0,
      "cpuReservationExpandable" : true,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "cpuLimit" : -1,
      "type" : "compute"
    }, {
      "name" : "sfo-m01-cl01-rp-user-compute",
      "type" : "compute",
      "cpuReservationMhz" : 2100,
      "cpuLimit" : -1,
      "cpuReservationExpandable" : true,
      "cpuSharesLevel" : "normal",
      "memoryReservationMb" : 3128,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "memorySharesValue" : 0
    } ]
  },
  "pscSpecs" : [ {
    "pscId" : "psc-1",
    "pscSsoSpec" : {
      "ssoDomain" : "vsphere.local"
    },
    "adminUserSsoPassword" : "xxxxxxx"
  } ],
  "vcenterSpec" : {
    "vcenterIp" : "10.0.0.6",
    "vcenterHostname" : "sfo-m01-vc01",
    "licenseFile" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "rootVcenterPassword" : "xxxxxxx",
    "vmSize" : "tiny"
  },
  "hostSpecs" : [ {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.252.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.100",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "sfo01-m01-esx01",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-0",
    "association" : "sfo-m01-dc01"
  }, {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.252.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.101",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "sfo01-m01-esx02",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-1",
    "association" : "sfo-m01-dc01"
  }, {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.255.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.102",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "sfo01-m01-esx03",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-2",
    "association" : "sfo-m01-dc01"
  }, {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.255.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.103",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "sfo01-m01-esx04",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-3",
    "association" : "sfo-m01-dc01"
  } ]
}'

HTTP Request

POST /v1/sddcs/validations HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 7380
Host: sfo-cb01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

{
  "dvSwitchVersion" : "7.0.0",
  "skipEsxThumbprintValidation" : true,
  "managementPoolName" : "bringup-networkpool",
  "sddcManagerSpec" : {
    "hostname" : "sfo-vcf01",
    "ipAddress" : "10.0.0.4",
    "netmask" : "255.255.255.0",
    "localUserPassword" : "xxxxxxx",
    "rootUserCredentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "secondUserCredentials" : {
      "username" : "vcf",
      "password" : "xxxxxxx"
    }
  },
  "sddcId" : "sddcId-public-api-01",
  "esxLicense" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
  "taskName" : "workflowconfig/workflowspec-ems.json",
  "ntpServers" : [ "10.0.0.250" ],
  "dnsSpec" : {
    "subdomain" : "vrack.vsphere.local",
    "domain" : "vsphere.local",
    "nameserver" : "10.0.0.250",
    "secondaryNameserver" : "10.0.0.250"
  },
  "networkSpecs" : [ {
    "subnet" : "10.0.0.0/22",
    "vlanId" : "0",
    "mtu" : "1500",
    "networkType" : "MANAGEMENT",
    "gateway" : "10.0.0.250"
  }, {
    "subnet" : "10.0.4.0/24",
    "includeIpAddressRanges" : [ {
      "startIpAddress" : "10.0.4.7",
      "endIpAddress" : "10.0.4.48"
    }, {
      "startIpAddress" : "10.0.4.3",
      "endIpAddress" : "10.0.4.6"
    } ],
    "includeIpAddress" : [ "10.0.4.50", "10.0.4.49" ],
    "vlanId" : "0",
    "mtu" : "8940",
    "networkType" : "VSAN",
    "gateway" : "10.0.4.253"
  }, {
    "subnet" : "10.0.8.0/24",
    "includeIpAddressRanges" : [ {
      "startIpAddress" : "10.0.8.3",
      "endIpAddress" : "10.0.8.50"
    } ],
    "vlanId" : "0",
    "mtu" : "8940",
    "networkType" : "VMOTION",
    "gateway" : "10.0.8.253"
  } ],
  "nsxtSpec" : {
    "nsxtManagerSize" : "medium",
    "nsxtManagers" : [ {
      "hostname" : "sfo-m01-nsx01a",
      "ip" : "10.0.0.31"
    }, {
      "hostname" : "sfo-m01-nsx01b",
      "ip" : "10.0.0.32"
    }, {
      "hostname" : "sfo-m01-nsx01c",
      "ip" : "10.0.0.33"
    } ],
    "rootNsxtManagerPassword" : "xxxxxxx",
    "nsxtAdminPassword" : "xxxxxxx",
    "nsxtAuditPassword" : "xxxxxxx",
    "rootLoginEnabledForNsxtManager" : "true",
    "sshEnabledForNsxtManager" : "true",
    "overLayTransportZone" : {
      "zoneName" : "sfo-m01-tz-overlay01",
      "networkName" : "net-overlay"
    },
    "vlanTransportZone" : {
      "zoneName" : "sfo-m01-tz-vlan01",
      "networkName" : "net-vlan"
    },
    "vip" : "10.0.0.30",
    "vipFqdn" : "sfo-m01-nsx01",
    "nsxtLicense" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "transportVlanId" : 0,
    "ipAddressPoolSpec" : {
      "name" : "sfo01-m01-cl01-tep01",
      "description" : "ESXi Host Overlay TEP IP Pool",
      "subnets" : [ {
        "ipAddressPoolRanges" : [ {
          "start" : "172.16.14.101",
          "end" : "172.16.14.108"
        } ],
        "cidr" : "172.16.14.0/24",
        "gateway" : "172.16.14.1"
      } ]
    }
  },
  "vsanSpec" : {
    "vsanName" : "sfo-m01-cl01-ds-vsan01",
    "licenseFile" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "datastoreName" : "sfo-m01-cl01-ds-vsan01"
  },
  "dvsSpecs" : [ {
    "mtu" : 8940,
    "niocSpecs" : [ {
      "trafficType" : "VSAN",
      "value" : "HIGH"
    }, {
      "trafficType" : "VMOTION",
      "value" : "LOW"
    }, {
      "trafficType" : "VDP",
      "value" : "LOW"
    }, {
      "trafficType" : "VIRTUALMACHINE",
      "value" : "HIGH"
    }, {
      "trafficType" : "MANAGEMENT",
      "value" : "NORMAL"
    }, {
      "trafficType" : "NFS",
      "value" : "LOW"
    }, {
      "trafficType" : "HBR",
      "value" : "LOW"
    }, {
      "trafficType" : "FAULTTOLERANCE",
      "value" : "LOW"
    }, {
      "trafficType" : "ISCSI",
      "value" : "LOW"
    } ],
    "dvsName" : "sfo-m01-cl01-vds01",
    "vmnics" : [ "vmnic0", "vmnic1" ],
    "networks" : [ "MANAGEMENT", "VSAN", "VMOTION" ]
  } ],
  "clusterSpec" : {
    "clusterName" : "sfo-m01-cl01",
    "clusterEvcMode" : "",
    "resourcePoolSpecs" : [ {
      "cpuSharesLevel" : "high",
      "cpuSharesValue" : 0,
      "name" : "sfo-m01-cl01-rp-sddc-mgmt",
      "memorySharesValue" : 0,
      "cpuReservationPercentage" : 0,
      "memoryLimit" : -1,
      "memoryReservationPercentage" : 0,
      "cpuReservationExpandable" : true,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "cpuLimit" : -1,
      "type" : "management"
    }, {
      "cpuSharesLevel" : "high",
      "cpuSharesValue" : 0,
      "name" : "sfo-m01-cl01-rp-sddc-network",
      "memorySharesValue" : 0,
      "cpuReservationPercentage" : 0,
      "memoryLimit" : -1,
      "memoryReservationPercentage" : 0,
      "cpuReservationExpandable" : true,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "cpuLimit" : -1,
      "type" : "network"
    }, {
      "cpuSharesLevel" : "normal",
      "cpuSharesValue" : 0,
      "name" : "sfo-m01-cl01-rp-sddc-compute",
      "memorySharesValue" : 0,
      "cpuReservationPercentage" : 0,
      "memoryLimit" : -1,
      "memoryReservationPercentage" : 0,
      "cpuReservationExpandable" : true,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "cpuLimit" : -1,
      "type" : "compute"
    }, {
      "name" : "sfo-m01-cl01-rp-user-compute",
      "type" : "compute",
      "cpuReservationMhz" : 2100,
      "cpuLimit" : -1,
      "cpuReservationExpandable" : true,
      "cpuSharesLevel" : "normal",
      "memoryReservationMb" : 3128,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "memorySharesValue" : 0
    } ]
  },
  "pscSpecs" : [ {
    "pscId" : "psc-1",
    "pscSsoSpec" : {
      "ssoDomain" : "vsphere.local"
    },
    "adminUserSsoPassword" : "xxxxxxx"
  } ],
  "vcenterSpec" : {
    "vcenterIp" : "10.0.0.6",
    "vcenterHostname" : "sfo-m01-vc01",
    "licenseFile" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "rootVcenterPassword" : "xxxxxxx",
    "vmSize" : "tiny"
  },
  "hostSpecs" : [ {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.252.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.100",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "sfo01-m01-esx01",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-0",
    "association" : "sfo-m01-dc01"
  }, {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.252.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.101",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "sfo01-m01-esx02",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-1",
    "association" : "sfo-m01-dc01"
  }, {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.255.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.102",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "sfo01-m01-esx03",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-2",
    "association" : "sfo-m01-dc01"
  }, {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.255.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.103",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "sfo01-m01-esx04",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-3",
    "association" : "sfo-m01-dc01"
  } ]
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Content-Length: 9202

{
  "id" : "26c27804-f837-4e4f-b50f-1625af792f0f",
  "executionStatus" : "COMPLETED",
  "validationChecks" : [ ],
  "additionalProperties" : {
    "sddcSpec" : "{\n  \"dvSwitchVersion\": \"7.0.0\",\n  \"skipEsxThumbprintValidation\": true,\n  \"managementPoolName\": \"bringup-networkpool\",\n  \"sddcManagerSpec\": {\n    \"hostname\": \"sfo-vcf01\",\n    \"ipAddress\": \"10.0.0.4\",\n    \"netmask\": \"255.255.255.0\",\n    \"localUserPassword\": \"xxxxxxx\",\n    \"rootUserCredentials\": {\n      \"username\": \"root\",\n      \"password\": \"xxxxxxx\"\n    },\n    \"secondUserCredentials\": {\n      \"username\": \"vcf\",\n      \"password\": \"xxxxxxx\"\n    }\n  },\n  \"sddcId\": \"sddcId-public-api-01\",\n  \"esxLicense\": \"XXXXX-XXXXX-XXXXX-XXXXX-XXXXX\",\n  \"taskName\": \"workflowconfig/workflowspec-ems.json\",\n  \"ntpServers\": [\n    \"10.0.0.250\"\n  ],\n  \"dnsSpec\": {\n    \"subdomain\": \"vrack.vsphere.local\",\n    \"domain\": \"vsphere.local\",\n    \"nameserver\": \"10.0.0.250\",\n    \"secondaryNameserver\": \"10.0.0.250\"\n  },\n  \"networkSpecs\": [\n    {\n      \"subnet\": \"10.0.0.0/22\",\n      \"vlanId\": \"0\",\n      \"mtu\": \"1500\",\n      \"networkType\": \"MANAGEMENT\",\n      \"gateway\": \"10.0.0.250\"\n    },\n    {\n      \"subnet\": \"10.0.4.0/24\",\n      \"includeIpAddressRanges\": [\n        {\n          \"startIpAddress\": \"10.0.4.7\",\n          \"endIpAddress\": \"10.0.4.48\"\n        },\n        {\n          \"startIpAddress\": \"10.0.4.3\",\n          \"endIpAddress\": \"10.0.4.6\"\n        }\n      ],\n      \"includeIpAddress\": [\n        \"10.0.4.50\",\n        \"10.0.4.49\"\n      ],\n      \"vlanId\": \"0\",\n      \"mtu\": \"8940\",\n      \"networkType\": \"VSAN\",\n      \"gateway\": \"10.0.4.253\"\n    },\n    {\n      \"subnet\": \"10.0.8.0/24\",\n      \"includeIpAddressRanges\": [\n        {\n          \"startIpAddress\": \"10.0.8.3\",\n          \"endIpAddress\": \"10.0.8.50\"\n        }\n      ],\n      \"vlanId\": \"0\",\n      \"mtu\": \"8940\",\n      \"networkType\": \"VMOTION\",\n      \"gateway\": \"10.0.8.253\"\n    }\n  ],\n  \"nsxtSpec\": {\n    \"nsxtManagerSize\": \"medium\",\n    \"nsxtManagers\": [\n      {\n        \"hostname\": \"sfo-m01-nsx01a\",\n        \"ip\": \"10.0.0.31\"\n      },\n      {\n        \"hostname\": \"sfo-m01-nsx01b\",\n        \"ip\": \"10.0.0.32\"\n      },\n      {\n        \"hostname\": \"sfo-m01-nsx01c\",\n        \"ip\": \"10.0.0.33\"\n      }\n    ],\n    \"rootNsxtManagerPassword\": \"xxxxxxx\",\n    \"nsxtAdminPassword\": \"xxxxxxx\",\n    \"nsxtAuditPassword\": \"xxxxxxx\",\n    \"rootLoginEnabledForNsxtManager\": \"true\",\n    \"sshEnabledForNsxtManager\": \"true\",\n    \"overLayTransportZone\": {\n      \"zoneName\": \"sfo-m01-tz-overlay01\",\n      \"networkName\": \"net-overlay\"\n    },\n    \"vlanTransportZone\": {\n      \"zoneName\": \"sfo-m01-tz-vlan01\",\n      \"networkName\": \"net-vlan\"\n    },\n    \"vip\": \"10.0.0.30\",\n    \"vipFqdn\": \"sfo-m01-nsx01\",\n    \"nsxtLicense\": \"XXXXX-XXXXX-XXXXX-XXXXX-XXXXX\",\n    \"transportVlanId\": 0,\n    \"ipAddressPoolSpec\": {\n      \"name\": \"sfo01-m01-cl01-tep01\",\n      \"description\": \"ESXi Host Overlay TEP IP Pool\",\n      \"subnets\": [\n        {\n          \"ipAddressPoolRanges\": [\n            {\n              \"start\": \"172.16.14.101\",\n              \"end\": \"172.16.14.108\"\n            }\n          ],\n          \"cidr\": \"172.16.14.0/24\",\n          \"gateway\": \"172.16.14.1\"\n        }\n      ]\n    }\n  },\n  \"vsanSpec\": {\n    \"vsanName\": \"sfo-m01-cl01-ds-vsan01\",\n    \"licenseFile\": \"XXXXX-XXXXX-XXXXX-XXXXX-XXXXX\",\n    \"datastoreName\": \"sfo-m01-cl01-ds-vsan01\"\n  },\n  \"dvsSpecs\": [\n    {\n      \"mtu\": 8940,\n      \"niocSpecs\": [\n        {\n          \"trafficType\": \"VSAN\",\n          \"value\": \"HIGH\"\n        },\n        {\n          \"trafficType\": \"VMOTION\",\n          \"value\": \"LOW\"\n        },\n        {\n          \"trafficType\": \"VDP\",\n          \"value\": \"LOW\"\n        },\n        {\n          \"trafficType\": \"VIRTUALMACHINE\",\n          \"value\": \"HIGH\"\n        },\n        {\n          \"trafficType\": \"MANAGEMENT\",\n          \"value\": \"NORMAL\"\n        },\n        {\n          \"trafficType\": \"NFS\",\n          \"value\": \"LOW\"\n        },\n        {\n          \"trafficType\": \"HBR\",\n          \"value\": \"LOW\"\n        },\n        {\n          \"trafficType\": \"FAULTTOLERANCE\",\n          \"value\": \"LOW\"\n        },\n        {\n          \"trafficType\": \"ISCSI\",\n          \"value\": \"LOW\"\n        }\n      ],\n      \"dvsName\": \"sfo-m01-cl01-vds01\",\n      \"vmnics\": [\n        \"vmnic0\",\n        \"vmnic1\"\n      ],\n      \"networks\": [\n        \"MANAGEMENT\",\n        \"VSAN\",\n        \"VMOTION\"\n      ]\n    }\n  ],\n  \"clusterSpec\": {\n    \"clusterName\": \"sfo-m01-cl01\",\n    \"clusterEvcMode\": \"\",\n    \"resourcePoolSpecs\": [\n      {\n        \"cpuSharesLevel\": \"high\",\n        \"cpuSharesValue\": 0,\n        \"name\": \"sfo-m01-cl01-rp-sddc-mgmt\",\n        \"memorySharesValue\": 0,\n        \"cpuReservationPercentage\": 0,\n        \"memoryLimit\": -1,\n        \"memoryReservationPercentage\": 0,\n        \"cpuReservationExpandable\": true,\n        \"memoryReservationExpandable\": true,\n        \"memorySharesLevel\": \"normal\",\n        \"cpuLimit\": -1,\n        \"type\": \"management\"\n      },\n      {\n        \"cpuSharesLevel\": \"high\",\n        \"cpuSharesValue\": 0,\n        \"name\": \"sfo-m01-cl01-rp-sddc-network\",\n        \"memorySharesValue\": 0,\n        \"cpuReservationPercentage\": 0,\n        \"memoryLimit\": -1,\n        \"memoryReservationPercentage\": 0,\n        \"cpuReservationExpandable\": true,\n        \"memoryReservationExpandable\": true,\n        \"memorySharesLevel\": \"normal\",\n        \"cpuLimit\": -1,\n        \"type\": \"network\"\n      },\n      {\n        \"cpuSharesLevel\": \"normal\",\n        \"cpuSharesValue\": 0,\n        \"name\": \"sfo-m01-cl01-rp-sddc-compute\",\n        \"memorySharesValue\": 0,\n        \"cpuReservationPercentage\": 0,\n        \"memoryLimit\": -1,\n        \"memoryReservationPercentage\": 0,\n        \"cpuReservationExpandable\": true,\n        \"memoryReservationExpandable\": true,\n        \"memorySharesLevel\": \"normal\",\n        \"cpuLimit\": -1,\n        \"type\": \"compute\"\n      },\n      {\n        \"name\": \"sfo-m01-cl01-rp-user-compute\",\n        \"type\": \"compute\",\n        \"cpuReservationMhz\": 2100,\n        \"cpuLimit\": -1,\n        \"cpuReservationExpandable\": true,\n        \"cpuSharesLevel\": \"normal\",\n        \"memoryReservationMb\": 3128,\n        \"memoryReservationExpandable\": true,\n        \"memorySharesLevel\": \"normal\",\n        \"memorySharesValue\": 0\n      }\n    ]\n  },\n  \"pscSpecs\": [\n    {\n      \"pscId\": \"psc-1\",\n      \"pscSsoSpec\": {\n        \"ssoDomain\": \"vsphere.local\"\n      },\n      \"adminUserSsoPassword\": \"xxxxxxx\"\n    }\n  ],\n  \"vcenterSpec\": {\n    \"vcenterIp\": \"10.0.0.6\",\n    \"vcenterHostname\": \"sfo-m01-vc01\",\n    \"licenseFile\": \"XXXXX-XXXXX-XXXXX-XXXXX-XXXXX\",\n    \"rootVcenterPassword\": \"xxxxxxx\",\n    \"vmSize\": \"tiny\"\n  },\n  \"hostSpecs\": [\n    {\n      \"credentials\": {\n        \"username\": \"root\",\n        \"password\": \"xxxxxxx\"\n      },\n      \"ipAddressPrivate\": {\n        \"subnet\": \"255.255.252.0\",\n        \"cidr\": \"\",\n        \"ipAddress\": \"10.0.0.100\",\n        \"gateway\": \"10.0.0.250\"\n      },\n      \"hostname\": \"sfo01-m01-esx01\",\n      \"vSwitch\": \"vSwitch0\",\n      \"serverId\": \"host-0\",\n      \"association\": \"sfo-m01-dc01\"\n    },\n    {\n      \"credentials\": {\n        \"username\": \"root\",\n        \"password\": \"xxxxxxx\"\n      },\n      \"ipAddressPrivate\": {\n        \"subnet\": \"255.255.252.0\",\n        \"cidr\": \"\",\n        \"ipAddress\": \"10.0.0.101\",\n        \"gateway\": \"10.0.0.250\"\n      },\n      \"hostname\": \"sfo01-m01-esx02\",\n      \"vSwitch\": \"vSwitch0\",\n      \"serverId\": \"host-1\",\n      \"association\": \"sfo-m01-dc01\"\n    },\n    {\n      \"credentials\": {\n        \"username\": \"root\",\n        \"password\": \"xxxxxxx\"\n      },\n      \"ipAddressPrivate\": {\n        \"subnet\": \"255.255.255.0\",\n        \"cidr\": \"\",\n        \"ipAddress\": \"10.0.0.102\",\n        \"gateway\": \"10.0.0.250\"\n      },\n      \"hostname\": \"sfo01-m01-esx03\",\n      \"vSwitch\": \"vSwitch0\",\n      \"serverId\": \"host-2\",\n      \"association\": \"sfo-m01-dc01\"\n    },\n    {\n      \"credentials\": {\n        \"username\": \"root\",\n        \"password\": \"xxxxxxx\"\n      },\n      \"ipAddressPrivate\": {\n        \"subnet\": \"255.255.255.0\",\n        \"cidr\": \"\",\n        \"ipAddress\": \"10.0.0.103\",\n        \"gateway\": \"10.0.0.250\"\n      },\n      \"hostname\": \"sfo01-m01-esx04\",\n      \"vSwitch\": \"vSwitch0\",\n      \"serverId\": \"host-3\",\n      \"association\": \"sfo-m01-dc01\"\n    }\n  ]\n}\n"
  }
}
  1. Poll the task until "executionStatus" is not "IN_PROGRESS" using the "id" from the previous response.

  2. In case of no errors in the input specification, the "executionStatus" is "COMPLETED" and "resultStatus" is
    "SUCCEEDED".

  3. In case of errors in the input specification, the "executionStatus" is "COMPLETED" and "resultStatus" is
    "FAILED".

  4. Validate the input specification.

Note
Make changes to the input specification and re-validate using a new API invocation.
  1. Download the validation report (optional).

cURL Request

$ curl 'https://sfo-cb01.rainpole.local/v1/sddcs/validations/86027e2d-30be-4492-b699-7c94c74654b0/report' -i -u 'admin:VMwareInfra@1' -X GET \
    -H 'Content-Type: application/octet-stream'

HTTP Request

GET /v1/sddcs/validations/86027e2d-30be-4492-b699-7c94c74654b0/report HTTP/1.1
Content-Type: application/octet-stream
Host: sfo-cb01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/pdf
Content-Disposition: form-data; name="validation-report-26c27804-f837-4e4f-b50f-1625af792f0f"; filename="validation-report-26c27804-f837-4e4f-b50f-1625af792f0f"
Note
The report can be downloaded while the "executionStatus" is "IN_PROGRESS" or "COMPLETED" and the
"resultStatus" is "SUCCEEDED" or "FAILED".
  1. Trigger the task using the valid input specification

cURL Request

$ curl 'https://sfo-cb01.rainpole.local/v1/sddcs' -i -u 'admin:VMwareInfra@1' -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
  "dvSwitchVersion" : "7.0.0",
  "skipEsxThumbprintValidation" : true,
  "managementPoolName" : "bringup-networkpool",
  "sddcManagerSpec" : {
    "hostname" : "sfo-vcf01",
    "ipAddress" : "10.0.0.4",
    "netmask" : "255.255.255.0",
    "localUserPassword" : "xxxxxxx",
    "rootUserCredentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "secondUserCredentials" : {
      "username" : "vcf",
      "password" : "xxxxxxx"
    }
  },
  "sddcId" : "sddcId-public-api-01",
  "esxLicense" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
  "taskName" : "workflowconfig/workflowspec-ems.json",
  "ntpServers" : [ "10.0.0.250" ],
  "dnsSpec" : {
    "subdomain" : "vrack.vsphere.local",
    "domain" : "vsphere.local",
    "nameserver" : "10.0.0.250",
    "secondaryNameserver" : "10.0.0.250"
  },
  "networkSpecs" : [ {
    "subnet" : "10.0.0.0/22",
    "vlanId" : "0",
    "mtu" : "1500",
    "networkType" : "MANAGEMENT",
    "gateway" : "10.0.0.250"
  }, {
    "subnet" : "10.0.4.0/24",
    "includeIpAddressRanges" : [ {
      "startIpAddress" : "10.0.4.7",
      "endIpAddress" : "10.0.4.48"
    }, {
      "startIpAddress" : "10.0.4.3",
      "endIpAddress" : "10.0.4.6"
    } ],
    "includeIpAddress" : [ "10.0.4.50", "10.0.4.49" ],
    "vlanId" : "0",
    "mtu" : "8940",
    "networkType" : "VSAN",
    "gateway" : "10.0.4.253"
  }, {
    "subnet" : "10.0.8.0/24",
    "includeIpAddressRanges" : [ {
      "startIpAddress" : "10.0.8.3",
      "endIpAddress" : "10.0.8.50"
    } ],
    "vlanId" : "0",
    "mtu" : "8940",
    "networkType" : "VMOTION",
    "gateway" : "10.0.8.253"
  } ],
  "nsxtSpec" : {
    "nsxtManagerSize" : "medium",
    "nsxtManagers" : [ {
      "hostname" : "sfo-m01-nsx01a",
      "ip" : "10.0.0.31"
    }, {
      "hostname" : "sfo-m01-nsx01b",
      "ip" : "10.0.0.32"
    }, {
      "hostname" : "sfo-m01-nsx01c",
      "ip" : "10.0.0.33"
    } ],
    "rootNsxtManagerPassword" : "xxxxxxx",
    "nsxtAdminPassword" : "xxxxxxx",
    "nsxtAuditPassword" : "xxxxxxx",
    "rootLoginEnabledForNsxtManager" : "true",
    "sshEnabledForNsxtManager" : "true",
    "overLayTransportZone" : {
      "zoneName" : "sfo-m01-tz-overlay01",
      "networkName" : "net-overlay"
    },
    "vlanTransportZone" : {
      "zoneName" : "sfo-m01-tz-vlan01",
      "networkName" : "net-vlan"
    },
    "vip" : "10.0.0.30",
    "vipFqdn" : "sfo-m01-nsx01",
    "nsxtLicense" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "transportVlanId" : 0,
    "ipAddressPoolSpec" : {
      "name" : "sfo01-m01-cl01-tep01",
      "description" : "ESXi Host Overlay TEP IP Pool",
      "subnets" : [ {
        "ipAddressPoolRanges" : [ {
          "start" : "172.16.14.101",
          "end" : "172.16.14.108"
        } ],
        "cidr" : "172.16.14.0/24",
        "gateway" : "172.16.14.1"
      } ]
    }
  },
  "vsanSpec" : {
    "vsanName" : "sfo-m01-cl01-ds-vsan01",
    "licenseFile" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "datastoreName" : "sfo-m01-cl01-ds-vsan01"
  },
  "dvsSpecs" : [ {
    "mtu" : 8940,
    "niocSpecs" : [ {
      "trafficType" : "VSAN",
      "value" : "HIGH"
    }, {
      "trafficType" : "VMOTION",
      "value" : "LOW"
    }, {
      "trafficType" : "VDP",
      "value" : "LOW"
    }, {
      "trafficType" : "VIRTUALMACHINE",
      "value" : "HIGH"
    }, {
      "trafficType" : "MANAGEMENT",
      "value" : "NORMAL"
    }, {
      "trafficType" : "NFS",
      "value" : "LOW"
    }, {
      "trafficType" : "HBR",
      "value" : "LOW"
    }, {
      "trafficType" : "FAULTTOLERANCE",
      "value" : "LOW"
    }, {
      "trafficType" : "ISCSI",
      "value" : "LOW"
    } ],
    "dvsName" : "sfo-m01-cl01-vds01",
    "vmnics" : [ "vmnic0", "vmnic1" ],
    "networks" : [ "MANAGEMENT", "VSAN", "VMOTION" ]
  } ],
  "clusterSpec" : {
    "clusterName" : "sfo-m01-cl01",
    "clusterEvcMode" : "",
    "resourcePoolSpecs" : [ {
      "cpuSharesLevel" : "high",
      "cpuSharesValue" : 0,
      "name" : "sfo-m01-cl01-rp-sddc-mgmt",
      "memorySharesValue" : 0,
      "cpuReservationPercentage" : 0,
      "memoryLimit" : -1,
      "memoryReservationPercentage" : 0,
      "cpuReservationExpandable" : true,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "cpuLimit" : -1,
      "type" : "management"
    }, {
      "cpuSharesLevel" : "high",
      "cpuSharesValue" : 0,
      "name" : "sfo-m01-cl01-rp-sddc-network",
      "memorySharesValue" : 0,
      "cpuReservationPercentage" : 0,
      "memoryLimit" : -1,
      "memoryReservationPercentage" : 0,
      "cpuReservationExpandable" : true,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "cpuLimit" : -1,
      "type" : "network"
    }, {
      "cpuSharesLevel" : "normal",
      "cpuSharesValue" : 0,
      "name" : "sfo-m01-cl01-rp-sddc-compute",
      "memorySharesValue" : 0,
      "cpuReservationPercentage" : 0,
      "memoryLimit" : -1,
      "memoryReservationPercentage" : 0,
      "cpuReservationExpandable" : true,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "cpuLimit" : -1,
      "type" : "compute"
    }, {
      "name" : "sfo-m01-cl01-rp-user-compute",
      "type" : "compute",
      "cpuReservationMhz" : 2100,
      "cpuLimit" : -1,
      "cpuReservationExpandable" : true,
      "cpuSharesLevel" : "normal",
      "memoryReservationMb" : 3128,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "memorySharesValue" : 0
    } ]
  },
  "pscSpecs" : [ {
    "pscId" : "psc-1",
    "pscSsoSpec" : {
      "ssoDomain" : "vsphere.local"
    },
    "adminUserSsoPassword" : "xxxxxxx"
  } ],
  "vcenterSpec" : {
    "vcenterIp" : "10.0.0.6",
    "vcenterHostname" : "sfo-m01-vc01",
    "licenseFile" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "rootVcenterPassword" : "xxxxxxx",
    "vmSize" : "tiny"
  },
  "hostSpecs" : [ {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.252.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.100",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "sfo01-m01-esx01",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-0",
    "association" : "sfo-m01-dc01"
  }, {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.252.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.101",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "sfo01-m01-esx02",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-1",
    "association" : "sfo-m01-dc01"
  }, {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.255.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.102",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "sfo01-m01-esx03",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-2",
    "association" : "sfo-m01-dc01"
  }, {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.255.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.103",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "sfo01-m01-esx04",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-3",
    "association" : "sfo-m01-dc01"
  } ]
}'

HTTP Request

POST /v1/sddcs HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 7380
Host: sfo-cb01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

{
  "dvSwitchVersion" : "7.0.0",
  "skipEsxThumbprintValidation" : true,
  "managementPoolName" : "bringup-networkpool",
  "sddcManagerSpec" : {
    "hostname" : "sfo-vcf01",
    "ipAddress" : "10.0.0.4",
    "netmask" : "255.255.255.0",
    "localUserPassword" : "xxxxxxx",
    "rootUserCredentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "secondUserCredentials" : {
      "username" : "vcf",
      "password" : "xxxxxxx"
    }
  },
  "sddcId" : "sddcId-public-api-01",
  "esxLicense" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
  "taskName" : "workflowconfig/workflowspec-ems.json",
  "ntpServers" : [ "10.0.0.250" ],
  "dnsSpec" : {
    "subdomain" : "vrack.vsphere.local",
    "domain" : "vsphere.local",
    "nameserver" : "10.0.0.250",
    "secondaryNameserver" : "10.0.0.250"
  },
  "networkSpecs" : [ {
    "subnet" : "10.0.0.0/22",
    "vlanId" : "0",
    "mtu" : "1500",
    "networkType" : "MANAGEMENT",
    "gateway" : "10.0.0.250"
  }, {
    "subnet" : "10.0.4.0/24",
    "includeIpAddressRanges" : [ {
      "startIpAddress" : "10.0.4.7",
      "endIpAddress" : "10.0.4.48"
    }, {
      "startIpAddress" : "10.0.4.3",
      "endIpAddress" : "10.0.4.6"
    } ],
    "includeIpAddress" : [ "10.0.4.50", "10.0.4.49" ],
    "vlanId" : "0",
    "mtu" : "8940",
    "networkType" : "VSAN",
    "gateway" : "10.0.4.253"
  }, {
    "subnet" : "10.0.8.0/24",
    "includeIpAddressRanges" : [ {
      "startIpAddress" : "10.0.8.3",
      "endIpAddress" : "10.0.8.50"
    } ],
    "vlanId" : "0",
    "mtu" : "8940",
    "networkType" : "VMOTION",
    "gateway" : "10.0.8.253"
  } ],
  "nsxtSpec" : {
    "nsxtManagerSize" : "medium",
    "nsxtManagers" : [ {
      "hostname" : "sfo-m01-nsx01a",
      "ip" : "10.0.0.31"
    }, {
      "hostname" : "sfo-m01-nsx01b",
      "ip" : "10.0.0.32"
    }, {
      "hostname" : "sfo-m01-nsx01c",
      "ip" : "10.0.0.33"
    } ],
    "rootNsxtManagerPassword" : "xxxxxxx",
    "nsxtAdminPassword" : "xxxxxxx",
    "nsxtAuditPassword" : "xxxxxxx",
    "rootLoginEnabledForNsxtManager" : "true",
    "sshEnabledForNsxtManager" : "true",
    "overLayTransportZone" : {
      "zoneName" : "sfo-m01-tz-overlay01",
      "networkName" : "net-overlay"
    },
    "vlanTransportZone" : {
      "zoneName" : "sfo-m01-tz-vlan01",
      "networkName" : "net-vlan"
    },
    "vip" : "10.0.0.30",
    "vipFqdn" : "sfo-m01-nsx01",
    "nsxtLicense" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "transportVlanId" : 0,
    "ipAddressPoolSpec" : {
      "name" : "sfo01-m01-cl01-tep01",
      "description" : "ESXi Host Overlay TEP IP Pool",
      "subnets" : [ {
        "ipAddressPoolRanges" : [ {
          "start" : "172.16.14.101",
          "end" : "172.16.14.108"
        } ],
        "cidr" : "172.16.14.0/24",
        "gateway" : "172.16.14.1"
      } ]
    }
  },
  "vsanSpec" : {
    "vsanName" : "sfo-m01-cl01-ds-vsan01",
    "licenseFile" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "datastoreName" : "sfo-m01-cl01-ds-vsan01"
  },
  "dvsSpecs" : [ {
    "mtu" : 8940,
    "niocSpecs" : [ {
      "trafficType" : "VSAN",
      "value" : "HIGH"
    }, {
      "trafficType" : "VMOTION",
      "value" : "LOW"
    }, {
      "trafficType" : "VDP",
      "value" : "LOW"
    }, {
      "trafficType" : "VIRTUALMACHINE",
      "value" : "HIGH"
    }, {
      "trafficType" : "MANAGEMENT",
      "value" : "NORMAL"
    }, {
      "trafficType" : "NFS",
      "value" : "LOW"
    }, {
      "trafficType" : "HBR",
      "value" : "LOW"
    }, {
      "trafficType" : "FAULTTOLERANCE",
      "value" : "LOW"
    }, {
      "trafficType" : "ISCSI",
      "value" : "LOW"
    } ],
    "dvsName" : "sfo-m01-cl01-vds01",
    "vmnics" : [ "vmnic0", "vmnic1" ],
    "networks" : [ "MANAGEMENT", "VSAN", "VMOTION" ]
  } ],
  "clusterSpec" : {
    "clusterName" : "sfo-m01-cl01",
    "clusterEvcMode" : "",
    "resourcePoolSpecs" : [ {
      "cpuSharesLevel" : "high",
      "cpuSharesValue" : 0,
      "name" : "sfo-m01-cl01-rp-sddc-mgmt",
      "memorySharesValue" : 0,
      "cpuReservationPercentage" : 0,
      "memoryLimit" : -1,
      "memoryReservationPercentage" : 0,
      "cpuReservationExpandable" : true,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "cpuLimit" : -1,
      "type" : "management"
    }, {
      "cpuSharesLevel" : "high",
      "cpuSharesValue" : 0,
      "name" : "sfo-m01-cl01-rp-sddc-network",
      "memorySharesValue" : 0,
      "cpuReservationPercentage" : 0,
      "memoryLimit" : -1,
      "memoryReservationPercentage" : 0,
      "cpuReservationExpandable" : true,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "cpuLimit" : -1,
      "type" : "network"
    }, {
      "cpuSharesLevel" : "normal",
      "cpuSharesValue" : 0,
      "name" : "sfo-m01-cl01-rp-sddc-compute",
      "memorySharesValue" : 0,
      "cpuReservationPercentage" : 0,
      "memoryLimit" : -1,
      "memoryReservationPercentage" : 0,
      "cpuReservationExpandable" : true,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "cpuLimit" : -1,
      "type" : "compute"
    }, {
      "name" : "sfo-m01-cl01-rp-user-compute",
      "type" : "compute",
      "cpuReservationMhz" : 2100,
      "cpuLimit" : -1,
      "cpuReservationExpandable" : true,
      "cpuSharesLevel" : "normal",
      "memoryReservationMb" : 3128,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "memorySharesValue" : 0
    } ]
  },
  "pscSpecs" : [ {
    "pscId" : "psc-1",
    "pscSsoSpec" : {
      "ssoDomain" : "vsphere.local"
    },
    "adminUserSsoPassword" : "xxxxxxx"
  } ],
  "vcenterSpec" : {
    "vcenterIp" : "10.0.0.6",
    "vcenterHostname" : "sfo-m01-vc01",
    "licenseFile" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "rootVcenterPassword" : "xxxxxxx",
    "vmSize" : "tiny"
  },
  "hostSpecs" : [ {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.252.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.100",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "sfo01-m01-esx01",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-0",
    "association" : "sfo-m01-dc01"
  }, {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.252.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.101",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "sfo01-m01-esx02",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-1",
    "association" : "sfo-m01-dc01"
  }, {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.255.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.102",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "sfo01-m01-esx03",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-2",
    "association" : "sfo-m01-dc01"
  }, {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.255.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.103",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "sfo01-m01-esx04",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-3",
    "association" : "sfo-m01-dc01"
  } ]
}

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/sddcs/97f5c5fe-187f-46d3-b446-73e310187428
Content-Type: application/json
Content-Length: 2497

{
  "id" : "97f5c5fe-187f-46d3-b446-73e310187428",
  "name" : "Bringup",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2019-12-09T15:32:22.300Z",
  "sddcSubTasks" : [ {
    "sddcId" : "97f5c5fe-187f-46d3-b446-73e310187428",
    "processingStateName" : "_VCDeployment_VcPlugin_DeployVcAction_4",
    "processingStateDescription" : "Deploy vCenter Server",
    "name" : "Deploy vCenter Server",
    "description" : "Deploy vCenter Server",
    "localizableNamePack" : {
      "component" : "com.vmware.vcf.common.fsm.plugins.action.plugins.VcPlugin",
      "messageKey" : "DeployVcAction.name"
    },
    "localizableDescriptionPack" : {
      "component" : "com.vmware.vcf.common.fsm.plugins.action.plugins.VcPlugin",
      "messageKey" : "DeployVcAction.desc"
    },
    "status" : "INITIALIZED",
    "creationTimestamp" : "2019-12-09T15:32:21.942Z",
    "updateTimestamp" : "2019-12-09T15:32:21.942Z"
  }, {
    "sddcId" : "97f5c5fe-187f-46d3-b446-73e310187428",
    "processingStateName" : "NSXConfiguration",
    "processingStateDescription" : "Deploy and Configure NSX",
    "name" : "Deploy NSX Manager",
    "description" : "Deploy and Configure NSX for vSphere",
    "localizableNamePack" : {
      "component" : "com.vmware.evo.sddc.bringup.nsx.action63.NsxServicePluginActionPlugin63",
      "messageKey" : "DeployNsxManager.name"
    },
    "localizableDescriptionPack" : {
      "component" : "com.vmware.evo.sddc.bringup.nsx.action63.NsxServicePluginActionPlugin63",
      "messageKey" : "DeployNsxManager.desc"
    },
    "status" : "INITIALIZED",
    "creationTimestamp" : "2019-12-09T15:32:22.012Z",
    "updateTimestamp" : "2019-12-09T15:32:22.012Z"
  }, {
    "sddcId" : "97f5c5fe-187f-46d3-b446-73e310187428",
    "processingStateName" : "_SDDCManagerConfiguration_SddcManagerContractPlugin_DeploySddcManagerOnClusterAction_1",
    "processingStateDescription" : "Deploy SDDC Manager",
    "name" : "Deploy SDDC Manager",
    "description" : "Deploy SDDC Manager",
    "localizableNamePack" : {
      "component" : "com.vmware.evo.sddc.sddcmanager.SddcManagerContractPlugin",
      "messageKey" : "DeploySddcManagerOnClusterAction.name"
    },
    "localizableDescriptionPack" : {
      "component" : "com.vmware.evo.sddc.sddcmanager.SddcManagerContractPlugin",
      "messageKey" : "DeploySddcManagerOnClusterAction.desc"
    },
    "status" : "INITIALIZED",
    "creationTimestamp" : "2019-12-09T15:32:22.083Z",
    "updateTimestamp" : "2019-12-09T15:32:22.083Z"
  } ]
}
  1. Poll the task until "status" is not "IN_PROGRESS" using the "id" from the previous response.

Tip
Refer to: Get an SDDC.
  • If the "status" is "COMPLETED_WITH_SUCCESS", the task is completed successfully.

  • If the "status" is "COMPLETED_WITH_FAILURE", the task can be re-executed.

Tip
Refer to: Retry an SDDC creation.

2.3.2. Get the SDDCS

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-cb01.rainpole.local/v1/sddcs' -i -u 'admin:VMwareInfra@1' -X GET

HTTP Request

GET /v1/sddcs HTTP/1.1
Host: sfo-cb01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 2634

{
  "elements" : [ {
    "id" : "97f5c5fe-187f-46d3-b446-73e310187428",
    "name" : "Bringup",
    "status" : "IN_PROGRESS",
    "creationTimestamp" : "2019-12-09T15:32:22.300Z",
    "sddcSubTasks" : [ {
      "sddcId" : "97f5c5fe-187f-46d3-b446-73e310187428",
      "processingStateName" : "_VCDeployment_VcPlugin_DeployVcAction_4",
      "processingStateDescription" : "Deploy vCenter Server",
      "name" : "Deploy vCenter Server",
      "description" : "Deploy vCenter Server",
      "localizableNamePack" : {
        "component" : "com.vmware.vcf.common.fsm.plugins.action.plugins.VcPlugin",
        "messageKey" : "DeployVcAction.name"
      },
      "localizableDescriptionPack" : {
        "component" : "com.vmware.vcf.common.fsm.plugins.action.plugins.VcPlugin",
        "messageKey" : "DeployVcAction.desc"
      },
      "status" : "INITIALIZED",
      "creationTimestamp" : "2019-12-09T15:32:21.942Z",
      "updateTimestamp" : "2019-12-09T15:32:21.942Z"
    }, {
      "sddcId" : "97f5c5fe-187f-46d3-b446-73e310187428",
      "processingStateName" : "NSXConfiguration",
      "processingStateDescription" : "Deploy and Configure NSX",
      "name" : "Deploy NSX Manager",
      "description" : "Deploy and Configure NSX for vSphere",
      "localizableNamePack" : {
        "component" : "com.vmware.evo.sddc.bringup.nsx.action63.NsxServicePluginActionPlugin63",
        "messageKey" : "DeployNsxManager.name"
      },
      "localizableDescriptionPack" : {
        "component" : "com.vmware.evo.sddc.bringup.nsx.action63.NsxServicePluginActionPlugin63",
        "messageKey" : "DeployNsxManager.desc"
      },
      "status" : "INITIALIZED",
      "creationTimestamp" : "2019-12-09T15:32:22.012Z",
      "updateTimestamp" : "2019-12-09T15:32:22.012Z"
    }, {
      "sddcId" : "97f5c5fe-187f-46d3-b446-73e310187428",
      "processingStateName" : "_SDDCManagerConfiguration_SddcManagerContractPlugin_DeploySddcManagerOnClusterAction_1",
      "processingStateDescription" : "Deploy SDDC Manager",
      "name" : "Deploy SDDC Manager",
      "description" : "Deploy SDDC Manager",
      "localizableNamePack" : {
        "component" : "com.vmware.evo.sddc.sddcmanager.SddcManagerContractPlugin",
        "messageKey" : "DeploySddcManagerOnClusterAction.name"
      },
      "localizableDescriptionPack" : {
        "component" : "com.vmware.evo.sddc.sddcmanager.SddcManagerContractPlugin",
        "messageKey" : "DeploySddcManagerOnClusterAction.desc"
      },
      "status" : "INITIALIZED",
      "creationTimestamp" : "2019-12-09T15:32:22.083Z",
      "updateTimestamp" : "2019-12-09T15:32:22.083Z"
    } ]
  } ]
}

2.3.3. Get an SDDC

Prerequisites
  1. The following data is required

    • ID of the SDDC

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-cb01.rainpole.local/v1/sddcs/97f5c5fe-187f-46d3-b446-73e310187428' -i -u 'admin:VMwareInfra@1' -X GET \
    -H 'Accept: application/json'

HTTP Request

GET /v1/sddcs/97f5c5fe-187f-46d3-b446-73e310187428 HTTP/1.1
Accept: application/json
Host: sfo-cb01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 2497

{
  "id" : "97f5c5fe-187f-46d3-b446-73e310187428",
  "name" : "Bringup",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2019-12-09T15:32:22.300Z",
  "sddcSubTasks" : [ {
    "sddcId" : "97f5c5fe-187f-46d3-b446-73e310187428",
    "processingStateName" : "_VCDeployment_VcPlugin_DeployVcAction_4",
    "processingStateDescription" : "Deploy vCenter Server",
    "name" : "Deploy vCenter Server",
    "description" : "Deploy vCenter Server",
    "localizableNamePack" : {
      "component" : "com.vmware.vcf.common.fsm.plugins.action.plugins.VcPlugin",
      "messageKey" : "DeployVcAction.name"
    },
    "localizableDescriptionPack" : {
      "component" : "com.vmware.vcf.common.fsm.plugins.action.plugins.VcPlugin",
      "messageKey" : "DeployVcAction.desc"
    },
    "status" : "INITIALIZED",
    "creationTimestamp" : "2019-12-09T15:32:21.942Z",
    "updateTimestamp" : "2019-12-09T15:32:21.942Z"
  }, {
    "sddcId" : "97f5c5fe-187f-46d3-b446-73e310187428",
    "processingStateName" : "NSXConfiguration",
    "processingStateDescription" : "Deploy and Configure NSX",
    "name" : "Deploy NSX Manager",
    "description" : "Deploy and Configure NSX for vSphere",
    "localizableNamePack" : {
      "component" : "com.vmware.evo.sddc.bringup.nsx.action63.NsxServicePluginActionPlugin63",
      "messageKey" : "DeployNsxManager.name"
    },
    "localizableDescriptionPack" : {
      "component" : "com.vmware.evo.sddc.bringup.nsx.action63.NsxServicePluginActionPlugin63",
      "messageKey" : "DeployNsxManager.desc"
    },
    "status" : "INITIALIZED",
    "creationTimestamp" : "2019-12-09T15:32:22.012Z",
    "updateTimestamp" : "2019-12-09T15:32:22.012Z"
  }, {
    "sddcId" : "97f5c5fe-187f-46d3-b446-73e310187428",
    "processingStateName" : "_SDDCManagerConfiguration_SddcManagerContractPlugin_DeploySddcManagerOnClusterAction_1",
    "processingStateDescription" : "Deploy SDDC Manager",
    "name" : "Deploy SDDC Manager",
    "description" : "Deploy SDDC Manager",
    "localizableNamePack" : {
      "component" : "com.vmware.evo.sddc.sddcmanager.SddcManagerContractPlugin",
      "messageKey" : "DeploySddcManagerOnClusterAction.name"
    },
    "localizableDescriptionPack" : {
      "component" : "com.vmware.evo.sddc.sddcmanager.SddcManagerContractPlugin",
      "messageKey" : "DeploySddcManagerOnClusterAction.desc"
    },
    "status" : "INITIALIZED",
    "creationTimestamp" : "2019-12-09T15:32:22.083Z",
    "updateTimestamp" : "2019-12-09T15:32:22.083Z"
  } ]
}

2.3.4. Retry an SDDC creation

Used to retry a failed SDDC creation task/workflow.

Prerequisites
  1. The following data is required

    • ID of the failed task

  2. The following data is optional

    • SDDC deployment details

Tip
Refer to: SddcSpec.
Note
If the SDDC creation details are provided retry of the SDDC creation is performed with the updated information.
Steps
  1. Invoke the API without providing SDDC creation details

cURL Request

$ curl 'https://sfo-cb01.rainpole.local/v1/sddcs/b285bfc6-8ef2-48d3-a8e2-4ccf921b1f1a' -i -u 'admin:VMwareInfra@1' -X PATCH \
    -H 'Accept: application/json'

HTTP Request

PATCH /v1/sddcs/b285bfc6-8ef2-48d3-a8e2-4ccf921b1f1a HTTP/1.1
Accept: application/json
Host: sfo-cb01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 2497

{
  "id" : "97f5c5fe-187f-46d3-b446-73e310187428",
  "name" : "Bringup",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2019-12-09T15:32:22.300Z",
  "sddcSubTasks" : [ {
    "sddcId" : "97f5c5fe-187f-46d3-b446-73e310187428",
    "processingStateName" : "_VCDeployment_VcPlugin_DeployVcAction_4",
    "processingStateDescription" : "Deploy vCenter Server",
    "name" : "Deploy vCenter Server",
    "description" : "Deploy vCenter Server",
    "localizableNamePack" : {
      "component" : "com.vmware.vcf.common.fsm.plugins.action.plugins.VcPlugin",
      "messageKey" : "DeployVcAction.name"
    },
    "localizableDescriptionPack" : {
      "component" : "com.vmware.vcf.common.fsm.plugins.action.plugins.VcPlugin",
      "messageKey" : "DeployVcAction.desc"
    },
    "status" : "INITIALIZED",
    "creationTimestamp" : "2019-12-09T15:32:21.942Z",
    "updateTimestamp" : "2019-12-09T15:32:21.942Z"
  }, {
    "sddcId" : "97f5c5fe-187f-46d3-b446-73e310187428",
    "processingStateName" : "NSXConfiguration",
    "processingStateDescription" : "Deploy and Configure NSX",
    "name" : "Deploy NSX Manager",
    "description" : "Deploy and Configure NSX for vSphere",
    "localizableNamePack" : {
      "component" : "com.vmware.evo.sddc.bringup.nsx.action63.NsxServicePluginActionPlugin63",
      "messageKey" : "DeployNsxManager.name"
    },
    "localizableDescriptionPack" : {
      "component" : "com.vmware.evo.sddc.bringup.nsx.action63.NsxServicePluginActionPlugin63",
      "messageKey" : "DeployNsxManager.desc"
    },
    "status" : "INITIALIZED",
    "creationTimestamp" : "2019-12-09T15:32:22.012Z",
    "updateTimestamp" : "2019-12-09T15:32:22.012Z"
  }, {
    "sddcId" : "97f5c5fe-187f-46d3-b446-73e310187428",
    "processingStateName" : "_SDDCManagerConfiguration_SddcManagerContractPlugin_DeploySddcManagerOnClusterAction_1",
    "processingStateDescription" : "Deploy SDDC Manager",
    "name" : "Deploy SDDC Manager",
    "description" : "Deploy SDDC Manager",
    "localizableNamePack" : {
      "component" : "com.vmware.evo.sddc.sddcmanager.SddcManagerContractPlugin",
      "messageKey" : "DeploySddcManagerOnClusterAction.name"
    },
    "localizableDescriptionPack" : {
      "component" : "com.vmware.evo.sddc.sddcmanager.SddcManagerContractPlugin",
      "messageKey" : "DeploySddcManagerOnClusterAction.desc"
    },
    "status" : "INITIALIZED",
    "creationTimestamp" : "2019-12-09T15:32:22.083Z",
    "updateTimestamp" : "2019-12-09T15:32:22.083Z"
  } ]
}
  1. Invoke the API by providing SDDC creation details

cURL Request

$ curl 'https://sfo-cb01.rainpole.local/v1/sddcs/b285bfc6-8ef2-48d3-a8e2-4ccf921b1f1a' -i -u 'admin:VMwareInfra@1' -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
  "dvSwitchVersion" : "7.0.0",
  "skipEsxThumbprintValidation" : true,
  "managementPoolName" : "bringup-networkpool",
  "sddcManagerSpec" : {
    "hostname" : "sfo-vcf01",
    "ipAddress" : "10.0.0.4",
    "netmask" : "255.255.255.0",
    "localUserPassword" : "xxxxxxx",
    "rootUserCredentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "secondUserCredentials" : {
      "username" : "vcf",
      "password" : "xxxxxxx"
    }
  },
  "sddcId" : "sddcId-public-api-01",
  "esxLicense" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
  "taskName" : "workflowconfig/workflowspec-ems.json",
  "ntpServers" : [ "10.0.0.250" ],
  "dnsSpec" : {
    "subdomain" : "vrack.vsphere.local",
    "domain" : "vsphere.local",
    "nameserver" : "10.0.0.250",
    "secondaryNameserver" : "10.0.0.250"
  },
  "networkSpecs" : [ {
    "subnet" : "10.0.0.0/22",
    "vlanId" : "0",
    "mtu" : "1500",
    "networkType" : "MANAGEMENT",
    "gateway" : "10.0.0.250"
  }, {
    "subnet" : "10.0.4.0/24",
    "includeIpAddressRanges" : [ {
      "startIpAddress" : "10.0.4.7",
      "endIpAddress" : "10.0.4.48"
    }, {
      "startIpAddress" : "10.0.4.3",
      "endIpAddress" : "10.0.4.6"
    } ],
    "includeIpAddress" : [ "10.0.4.50", "10.0.4.49" ],
    "vlanId" : "0",
    "mtu" : "8940",
    "networkType" : "VSAN",
    "gateway" : "10.0.4.253"
  }, {
    "subnet" : "10.0.8.0/24",
    "includeIpAddressRanges" : [ {
      "startIpAddress" : "10.0.8.3",
      "endIpAddress" : "10.0.8.50"
    } ],
    "vlanId" : "0",
    "mtu" : "8940",
    "networkType" : "VMOTION",
    "gateway" : "10.0.8.253"
  } ],
  "nsxtSpec" : {
    "nsxtManagerSize" : "medium",
    "nsxtManagers" : [ {
      "hostname" : "sfo-m01-nsx01a",
      "ip" : "10.0.0.31"
    }, {
      "hostname" : "sfo-m01-nsx01b",
      "ip" : "10.0.0.32"
    }, {
      "hostname" : "sfo-m01-nsx01c",
      "ip" : "10.0.0.33"
    } ],
    "rootNsxtManagerPassword" : "xxxxxxx",
    "nsxtAdminPassword" : "xxxxxxx",
    "nsxtAuditPassword" : "xxxxxxx",
    "rootLoginEnabledForNsxtManager" : "true",
    "sshEnabledForNsxtManager" : "true",
    "overLayTransportZone" : {
      "zoneName" : "sfo-m01-tz-overlay01",
      "networkName" : "net-overlay"
    },
    "vlanTransportZone" : {
      "zoneName" : "sfo-m01-tz-vlan01",
      "networkName" : "net-vlan"
    },
    "vip" : "10.0.0.30",
    "vipFqdn" : "sfo-m01-nsx01",
    "nsxtLicense" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "transportVlanId" : 0,
    "ipAddressPoolSpec" : {
      "name" : "sfo01-m01-cl01-tep01",
      "description" : "ESXi Host Overlay TEP IP Pool",
      "subnets" : [ {
        "ipAddressPoolRanges" : [ {
          "start" : "172.16.14.101",
          "end" : "172.16.14.108"
        } ],
        "cidr" : "172.16.14.0/24",
        "gateway" : "172.16.14.1"
      } ]
    }
  },
  "vsanSpec" : {
    "vsanName" : "sfo-m01-cl01-ds-vsan01",
    "licenseFile" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "datastoreName" : "sfo-m01-cl01-ds-vsan01"
  },
  "dvsSpecs" : [ {
    "mtu" : 8940,
    "niocSpecs" : [ {
      "trafficType" : "VSAN",
      "value" : "HIGH"
    }, {
      "trafficType" : "VMOTION",
      "value" : "LOW"
    }, {
      "trafficType" : "VDP",
      "value" : "LOW"
    }, {
      "trafficType" : "VIRTUALMACHINE",
      "value" : "HIGH"
    }, {
      "trafficType" : "MANAGEMENT",
      "value" : "NORMAL"
    }, {
      "trafficType" : "NFS",
      "value" : "LOW"
    }, {
      "trafficType" : "HBR",
      "value" : "LOW"
    }, {
      "trafficType" : "FAULTTOLERANCE",
      "value" : "LOW"
    }, {
      "trafficType" : "ISCSI",
      "value" : "LOW"
    } ],
    "dvsName" : "sfo-m01-cl01-vds01",
    "vmnics" : [ "vmnic0", "vmnic1" ],
    "networks" : [ "MANAGEMENT", "VSAN", "VMOTION" ]
  } ],
  "clusterSpec" : {
    "clusterName" : "sfo-m01-cl01",
    "clusterEvcMode" : "",
    "resourcePoolSpecs" : [ {
      "cpuSharesLevel" : "high",
      "cpuSharesValue" : 0,
      "name" : "sfo-m01-cl01-rp-sddc-mgmt",
      "memorySharesValue" : 0,
      "cpuReservationPercentage" : 0,
      "memoryLimit" : -1,
      "memoryReservationPercentage" : 0,
      "cpuReservationExpandable" : true,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "cpuLimit" : -1,
      "type" : "management"
    }, {
      "cpuSharesLevel" : "high",
      "cpuSharesValue" : 0,
      "name" : "sfo-m01-cl01-rp-sddc-network",
      "memorySharesValue" : 0,
      "cpuReservationPercentage" : 0,
      "memoryLimit" : -1,
      "memoryReservationPercentage" : 0,
      "cpuReservationExpandable" : true,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "cpuLimit" : -1,
      "type" : "network"
    }, {
      "cpuSharesLevel" : "normal",
      "cpuSharesValue" : 0,
      "name" : "sfo-m01-cl01-rp-sddc-compute",
      "memorySharesValue" : 0,
      "cpuReservationPercentage" : 0,
      "memoryLimit" : -1,
      "memoryReservationPercentage" : 0,
      "cpuReservationExpandable" : true,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "cpuLimit" : -1,
      "type" : "compute"
    }, {
      "name" : "sfo-m01-cl01-rp-user-compute",
      "type" : "compute",
      "cpuReservationMhz" : 2100,
      "cpuLimit" : -1,
      "cpuReservationExpandable" : true,
      "cpuSharesLevel" : "normal",
      "memoryReservationMb" : 3128,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "memorySharesValue" : 0
    } ]
  },
  "pscSpecs" : [ {
    "pscId" : "psc-1",
    "pscSsoSpec" : {
      "ssoDomain" : "vsphere.local"
    },
    "adminUserSsoPassword" : "xxxxxxx"
  } ],
  "vcenterSpec" : {
    "vcenterIp" : "10.0.0.6",
    "vcenterHostname" : "sfo-m01-vc01",
    "licenseFile" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "rootVcenterPassword" : "xxxxxxx",
    "vmSize" : "tiny"
  },
  "hostSpecs" : [ {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.252.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.100",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "sfo01-m01-esx01",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-0",
    "association" : "sfo-m01-dc01"
  }, {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.252.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.101",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "sfo01-m01-esx02",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-1",
    "association" : "sfo-m01-dc01"
  }, {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.255.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.102",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "sfo01-m01-esx03",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-2",
    "association" : "sfo-m01-dc01"
  }, {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.255.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.103",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "sfo01-m01-esx04",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-3",
    "association" : "sfo-m01-dc01"
  } ]
}'

HTTP Request

PATCH /v1/sddcs/b285bfc6-8ef2-48d3-a8e2-4ccf921b1f1a HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 7380
Host: sfo-cb01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

{
  "dvSwitchVersion" : "7.0.0",
  "skipEsxThumbprintValidation" : true,
  "managementPoolName" : "bringup-networkpool",
  "sddcManagerSpec" : {
    "hostname" : "sfo-vcf01",
    "ipAddress" : "10.0.0.4",
    "netmask" : "255.255.255.0",
    "localUserPassword" : "xxxxxxx",
    "rootUserCredentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "secondUserCredentials" : {
      "username" : "vcf",
      "password" : "xxxxxxx"
    }
  },
  "sddcId" : "sddcId-public-api-01",
  "esxLicense" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
  "taskName" : "workflowconfig/workflowspec-ems.json",
  "ntpServers" : [ "10.0.0.250" ],
  "dnsSpec" : {
    "subdomain" : "vrack.vsphere.local",
    "domain" : "vsphere.local",
    "nameserver" : "10.0.0.250",
    "secondaryNameserver" : "10.0.0.250"
  },
  "networkSpecs" : [ {
    "subnet" : "10.0.0.0/22",
    "vlanId" : "0",
    "mtu" : "1500",
    "networkType" : "MANAGEMENT",
    "gateway" : "10.0.0.250"
  }, {
    "subnet" : "10.0.4.0/24",
    "includeIpAddressRanges" : [ {
      "startIpAddress" : "10.0.4.7",
      "endIpAddress" : "10.0.4.48"
    }, {
      "startIpAddress" : "10.0.4.3",
      "endIpAddress" : "10.0.4.6"
    } ],
    "includeIpAddress" : [ "10.0.4.50", "10.0.4.49" ],
    "vlanId" : "0",
    "mtu" : "8940",
    "networkType" : "VSAN",
    "gateway" : "10.0.4.253"
  }, {
    "subnet" : "10.0.8.0/24",
    "includeIpAddressRanges" : [ {
      "startIpAddress" : "10.0.8.3",
      "endIpAddress" : "10.0.8.50"
    } ],
    "vlanId" : "0",
    "mtu" : "8940",
    "networkType" : "VMOTION",
    "gateway" : "10.0.8.253"
  } ],
  "nsxtSpec" : {
    "nsxtManagerSize" : "medium",
    "nsxtManagers" : [ {
      "hostname" : "sfo-m01-nsx01a",
      "ip" : "10.0.0.31"
    }, {
      "hostname" : "sfo-m01-nsx01b",
      "ip" : "10.0.0.32"
    }, {
      "hostname" : "sfo-m01-nsx01c",
      "ip" : "10.0.0.33"
    } ],
    "rootNsxtManagerPassword" : "xxxxxxx",
    "nsxtAdminPassword" : "xxxxxxx",
    "nsxtAuditPassword" : "xxxxxxx",
    "rootLoginEnabledForNsxtManager" : "true",
    "sshEnabledForNsxtManager" : "true",
    "overLayTransportZone" : {
      "zoneName" : "sfo-m01-tz-overlay01",
      "networkName" : "net-overlay"
    },
    "vlanTransportZone" : {
      "zoneName" : "sfo-m01-tz-vlan01",
      "networkName" : "net-vlan"
    },
    "vip" : "10.0.0.30",
    "vipFqdn" : "sfo-m01-nsx01",
    "nsxtLicense" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "transportVlanId" : 0,
    "ipAddressPoolSpec" : {
      "name" : "sfo01-m01-cl01-tep01",
      "description" : "ESXi Host Overlay TEP IP Pool",
      "subnets" : [ {
        "ipAddressPoolRanges" : [ {
          "start" : "172.16.14.101",
          "end" : "172.16.14.108"
        } ],
        "cidr" : "172.16.14.0/24",
        "gateway" : "172.16.14.1"
      } ]
    }
  },
  "vsanSpec" : {
    "vsanName" : "sfo-m01-cl01-ds-vsan01",
    "licenseFile" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "datastoreName" : "sfo-m01-cl01-ds-vsan01"
  },
  "dvsSpecs" : [ {
    "mtu" : 8940,
    "niocSpecs" : [ {
      "trafficType" : "VSAN",
      "value" : "HIGH"
    }, {
      "trafficType" : "VMOTION",
      "value" : "LOW"
    }, {
      "trafficType" : "VDP",
      "value" : "LOW"
    }, {
      "trafficType" : "VIRTUALMACHINE",
      "value" : "HIGH"
    }, {
      "trafficType" : "MANAGEMENT",
      "value" : "NORMAL"
    }, {
      "trafficType" : "NFS",
      "value" : "LOW"
    }, {
      "trafficType" : "HBR",
      "value" : "LOW"
    }, {
      "trafficType" : "FAULTTOLERANCE",
      "value" : "LOW"
    }, {
      "trafficType" : "ISCSI",
      "value" : "LOW"
    } ],
    "dvsName" : "sfo-m01-cl01-vds01",
    "vmnics" : [ "vmnic0", "vmnic1" ],
    "networks" : [ "MANAGEMENT", "VSAN", "VMOTION" ]
  } ],
  "clusterSpec" : {
    "clusterName" : "sfo-m01-cl01",
    "clusterEvcMode" : "",
    "resourcePoolSpecs" : [ {
      "cpuSharesLevel" : "high",
      "cpuSharesValue" : 0,
      "name" : "sfo-m01-cl01-rp-sddc-mgmt",
      "memorySharesValue" : 0,
      "cpuReservationPercentage" : 0,
      "memoryLimit" : -1,
      "memoryReservationPercentage" : 0,
      "cpuReservationExpandable" : true,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "cpuLimit" : -1,
      "type" : "management"
    }, {
      "cpuSharesLevel" : "high",
      "cpuSharesValue" : 0,
      "name" : "sfo-m01-cl01-rp-sddc-network",
      "memorySharesValue" : 0,
      "cpuReservationPercentage" : 0,
      "memoryLimit" : -1,
      "memoryReservationPercentage" : 0,
      "cpuReservationExpandable" : true,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "cpuLimit" : -1,
      "type" : "network"
    }, {
      "cpuSharesLevel" : "normal",
      "cpuSharesValue" : 0,
      "name" : "sfo-m01-cl01-rp-sddc-compute",
      "memorySharesValue" : 0,
      "cpuReservationPercentage" : 0,
      "memoryLimit" : -1,
      "memoryReservationPercentage" : 0,
      "cpuReservationExpandable" : true,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "cpuLimit" : -1,
      "type" : "compute"
    }, {
      "name" : "sfo-m01-cl01-rp-user-compute",
      "type" : "compute",
      "cpuReservationMhz" : 2100,
      "cpuLimit" : -1,
      "cpuReservationExpandable" : true,
      "cpuSharesLevel" : "normal",
      "memoryReservationMb" : 3128,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "memorySharesValue" : 0
    } ]
  },
  "pscSpecs" : [ {
    "pscId" : "psc-1",
    "pscSsoSpec" : {
      "ssoDomain" : "vsphere.local"
    },
    "adminUserSsoPassword" : "xxxxxxx"
  } ],
  "vcenterSpec" : {
    "vcenterIp" : "10.0.0.6",
    "vcenterHostname" : "sfo-m01-vc01",
    "licenseFile" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "rootVcenterPassword" : "xxxxxxx",
    "vmSize" : "tiny"
  },
  "hostSpecs" : [ {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.252.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.100",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "sfo01-m01-esx01",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-0",
    "association" : "sfo-m01-dc01"
  }, {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.252.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.101",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "sfo01-m01-esx02",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-1",
    "association" : "sfo-m01-dc01"
  }, {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.255.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.102",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "sfo01-m01-esx03",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-2",
    "association" : "sfo-m01-dc01"
  }, {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.255.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.103",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "sfo01-m01-esx04",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-3",
    "association" : "sfo-m01-dc01"
  } ]
}

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 2497

{
  "id" : "97f5c5fe-187f-46d3-b446-73e310187428",
  "name" : "Bringup",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2019-12-09T15:32:22.300Z",
  "sddcSubTasks" : [ {
    "sddcId" : "97f5c5fe-187f-46d3-b446-73e310187428",
    "processingStateName" : "_VCDeployment_VcPlugin_DeployVcAction_4",
    "processingStateDescription" : "Deploy vCenter Server",
    "name" : "Deploy vCenter Server",
    "description" : "Deploy vCenter Server",
    "localizableNamePack" : {
      "component" : "com.vmware.vcf.common.fsm.plugins.action.plugins.VcPlugin",
      "messageKey" : "DeployVcAction.name"
    },
    "localizableDescriptionPack" : {
      "component" : "com.vmware.vcf.common.fsm.plugins.action.plugins.VcPlugin",
      "messageKey" : "DeployVcAction.desc"
    },
    "status" : "INITIALIZED",
    "creationTimestamp" : "2019-12-09T15:32:21.942Z",
    "updateTimestamp" : "2019-12-09T15:32:21.942Z"
  }, {
    "sddcId" : "97f5c5fe-187f-46d3-b446-73e310187428",
    "processingStateName" : "NSXConfiguration",
    "processingStateDescription" : "Deploy and Configure NSX",
    "name" : "Deploy NSX Manager",
    "description" : "Deploy and Configure NSX for vSphere",
    "localizableNamePack" : {
      "component" : "com.vmware.evo.sddc.bringup.nsx.action63.NsxServicePluginActionPlugin63",
      "messageKey" : "DeployNsxManager.name"
    },
    "localizableDescriptionPack" : {
      "component" : "com.vmware.evo.sddc.bringup.nsx.action63.NsxServicePluginActionPlugin63",
      "messageKey" : "DeployNsxManager.desc"
    },
    "status" : "INITIALIZED",
    "creationTimestamp" : "2019-12-09T15:32:22.012Z",
    "updateTimestamp" : "2019-12-09T15:32:22.012Z"
  }, {
    "sddcId" : "97f5c5fe-187f-46d3-b446-73e310187428",
    "processingStateName" : "_SDDCManagerConfiguration_SddcManagerContractPlugin_DeploySddcManagerOnClusterAction_1",
    "processingStateDescription" : "Deploy SDDC Manager",
    "name" : "Deploy SDDC Manager",
    "description" : "Deploy SDDC Manager",
    "localizableNamePack" : {
      "component" : "com.vmware.evo.sddc.sddcmanager.SddcManagerContractPlugin",
      "messageKey" : "DeploySddcManagerOnClusterAction.name"
    },
    "localizableDescriptionPack" : {
      "component" : "com.vmware.evo.sddc.sddcmanager.SddcManagerContractPlugin",
      "messageKey" : "DeploySddcManagerOnClusterAction.desc"
    },
    "status" : "INITIALIZED",
    "creationTimestamp" : "2019-12-09T15:32:22.083Z",
    "updateTimestamp" : "2019-12-09T15:32:22.083Z"
  } ]
}

2.4. Customer Experience Improvement Program

2.4.1. Get CEIP Status

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/system/ceip' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/system/ceip HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 83

{
  "status" : "ENABLED",
  "instanceId" : "3f39d4a1-78d2-11e8-af85-f1cf26258cdc"
}

2.4.2. Update CEIP Status

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/system/ceip' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "status" : "ENABLE"
}'

HTTP Request

PATCH /v1/system/ceip HTTP/1.1
Content-Type: application/json
Content-Length: 25
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "status" : "ENABLE"
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/3f39d4a1-78d2-11e8-af85-f1cf26258cdc
Content-Length: 79

{
  "id" : "3f39d4a1-78d2-11e8-af85-f1cf26258cdc",
  "status" : "IN_PROGRESS"
}
  1. Track the task status using the "id" from the previous response. The GET URL is set in the header response and can be used directly. Refer to: Get a Task.

    • If the "status" is "IN_PROGRESS", the task is still in progress.

    • If the "status" is "SUCCESSFUL", the task is completed successfully.

    • If the "status" is "FAILED", the task can be re-executed.

Tip
To retry task refer to: Retry a Task.

2.5. Network Pools

2.5.1. Create a Network Pool

  • Used to create a Network pool in the system. The added network pool would be used during domain deployments, host commission/expansion flows.

  • If a network pool which is already added before is added, you will get an error with HTTP status 400.

  • If a malformed network pool is added (payload for network parameters, name which is already exist), you will get an error.

Prerequisites
  1. The following data is required

    • Name

    • List of networks associated with network pool in which each network has

      • Network type - It can be VSAN, VMOTION or NFS Type.

      • VLAN ID - Valid Vlan id range is 0 to 4096.

      • MTU - Valid MTU range is 1500 to 9216.

      • Subnet - Networks of diferent types (e.g. VSAN/VMOTION/NFS) must not have overlapping subnets

      • Subnet mask

      • gateway - The gateway defined for the specified subnet

      • List of IP address ranges - the start and end IP address of each IP Pool should be part of the subnet

Steps
  1. Invoke the API

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/network-pools' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "name" : "engineering-networkpool",
  "networks" : [ {
    "type" : "VSAN",
    "vlanId" : 3002,
    "mtu" : 9001,
    "subnet" : "192.168.8.0",
    "mask" : "255.255.252.0",
    "gateway" : "192.168.8.1",
    "ipPools" : [ {
      "start" : "192.168.8.5",
      "end" : "192.168.8.8"
    } ]
  } ]
}'

HTTP Request

POST /v1/network-pools HTTP/1.1
Content-Type: application/json
Content-Length: 304
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "name" : "engineering-networkpool",
  "networks" : [ {
    "type" : "VSAN",
    "vlanId" : 3002,
    "mtu" : 9001,
    "subnet" : "192.168.8.0",
    "mask" : "255.255.252.0",
    "gateway" : "192.168.8.1",
    "ipPools" : [ {
      "start" : "192.168.8.5",
      "end" : "192.168.8.8"
    } ]
  } ]
}

HTTP Response

HTTP/1.1 201 Created
Location: /v1/network-pools/76d74e0d-c044-46df-bbd3-561b291dcb9b
Content-Type: application/json
Content-Length: 165

{
  "id" : "76d74e0d-c044-46df-bbd3-561b291dcb9b",
  "name" : "engineering-networkpool",
  "networks" : [ {
    "id" : "46115f0b-8838-4205-a1ba-a6a6124f34d6"
  } ]
}

2.5.2. Get the Network Pools

Steps
  1. Invoke the API

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/network-pools' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/network-pools HTTP/1.1
Content-Type: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 375

{
  "elements" : [ {
    "id" : "500e45b8-82dc-4c25-a918-543d317b2fc2",
    "name" : "engineering-networkpool",
    "networks" : [ {
      "id" : "56e99b81-030c-4b67-ad55-c17e50a8ce72"
    } ]
  }, {
    "id" : "451e01cc-d55a-46f3-a5ec-5a2d5abf8d9e",
    "name" : "finance-networkpool",
    "networks" : [ {
      "id" : "491cc9f9-293e-4d43-8d56-5c4aed7b6d77"
    } ]
  } ]
}

2.5.3. Get a Network Pool

Prerequisites
  1. The following data is required

    • ID of the network pool

Steps
  1. Invoke the API

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/network-pools/627cab6b-219e-4ee5-b7a1-4fa33a68f084' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/network-pools/627cab6b-219e-4ee5-b7a1-4fa33a68f084 HTTP/1.1
Content-Type: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 165

{
  "id" : "627cab6b-219e-4ee5-b7a1-4fa33a68f084",
  "name" : "engineering-networkpool",
  "networks" : [ {
    "id" : "53fcce0f-0431-459e-876f-d85058652f3c"
  } ]
}

2.5.4. Get a Network of a Network Pool

Prerequisites
  1. The following data is required

    • ID of the network

Steps
  1. Invoke the API

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/network-pools/4dcd1ed6-037d-430d-9633-af0b066db9ed/networks/02639e0d-09ff-42f3-8124-72dc4eadbe7b' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 270

{
  "id" : "02639e0d-09ff-42f3-8124-72dc4eadbe7b",
  "type" : "VSAN",
  "vlanId" : 3002,
  "mtu" : 9216,
  "subnet" : "192.168.8.0",
  "mask" : "255.255.252.0",
  "gateway" : "192.168.8.1",
  "ipPools" : [ {
    "start" : "192.168.8.5",
    "end" : "192.168.8.8"
  } ]
}

2.5.5. Rename a Network Pool

Prerequisites
  1. Network pool must exist.

Steps
  1. Get the ID of the network pool. Filter the response by the network pool’s current name to get the corresponding ID.

  1. Create a network pool update spec. Create a JSON with the "name" field containing the desired new network pool name.

  1. Invoke the network pool rename (update) task using the input spec and network pool ID.

Note
Running the updateNetworkPool API will ensure that the requested new name is valid. The API call will fail if the requested new name is invalid.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/network-pools/7b202441-6e6f-4c20-b88f-f7450280c26f' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "name" : "new_name"
}'

HTTP Request

PATCH /v1/network-pools/7b202441-6e6f-4c20-b88f-f7450280c26f HTTP/1.1
Content-Type: application/json
Content-Length: 25
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "name" : "new_name"
}

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 165

{
  "id" : "7b202441-6e6f-4c20-b88f-f7450280c26f",
  "name" : "engineering-networkpool",
  "networks" : [ {
    "id" : "ce907cb9-e278-4b6e-84fb-ffb24669d221"
  } ]
}

2.5.6. Delete a Network Pool

  • Used to delete a Network pool.

  • Deleting a networkpool which is being used, will give an error.

  • Deleting a networkpool which does not exist, will give a HTTP response code 404.

Prerequisites
  1. The following data is required

    • ID of the network pool

Steps
  1. Invoke the API

Tip
Refer to: Get the Network Pools to retrieve all network pools in the system and use the ID of network pool to be deleted.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/network-pools/c965b176-01dc-4a54-b60c-47400465a28b' -i -X DELETE \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

DELETE /v1/network-pools/c965b176-01dc-4a54-b60c-47400465a28b HTTP/1.1
Content-Type: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 204 No Content

2.5.7. Add an IP Pool to a Network of a Network Pool

Prerequisites
  1. The following data is required

    • ID of the network pool

Tip
Refer to: Get the Network Pools
  • ID of the network.

  • The start and end IP addresses for the IP pool

Steps
  1. Invoke the API

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/network-pools/baa47936-36fc-4a3b-bc09-77c4b293349c/networks/ea25d8a9-916e-4818-b48b-e8ad435a1a69/ip-pools' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "start" : "192.168.8.5",
  "end" : "192.168.8.8"
}'
Request Body
POST /v1/network-pools/baa47936-36fc-4a3b-bc09-77c4b293349c/networks/ea25d8a9-916e-4818-b48b-e8ad435a1a69/ip-pools HTTP/1.1
Content-Type: application/json
Content-Length: 54
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "start" : "192.168.8.5",
  "end" : "192.168.8.8"
}
Response Body
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 270

{
  "id" : "83eae557-a26e-4bea-8c5e-8f3fa72d86d0",
  "type" : "VSAN",
  "vlanId" : 3002,
  "mtu" : 9216,
  "subnet" : "192.168.8.0",
  "mask" : "255.255.252.0",
  "gateway" : "192.168.8.1",
  "ipPools" : [ {
    "start" : "192.168.8.5",
    "end" : "192.168.8.8"
  } ]
}

2.5.8. Delete an IP Pool from a Network of a Network Pool

Prerequisites
  1. The following data is required

    • ID of the IP pool

Steps
  1. Invoke the API

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/network-pools/6a6429cf-d2f2-47b6-a7d6-bb3c35f9a407/networks/cc0f1f96-ff7e-42b8-8171-b7e93e28f93a/ip-pools' -i -X DELETE \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "start" : "192.168.8.5",
  "end" : "192.168.8.8"
}'
Response Body
DELETE /v1/network-pools/6a6429cf-d2f2-47b6-a7d6-bb3c35f9a407/networks/cc0f1f96-ff7e-42b8-8171-b7e93e28f93a/ip-pools HTTP/1.1
Content-Type: application/json
Content-Length: 54
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "start" : "192.168.8.5",
  "end" : "192.168.8.8"
}
Response Body
HTTP/1.1 204 No Content

2.6. Tasks

2.6.1. Get the Tasks

Steps
  1. Invoke the API

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/tasks' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/tasks HTTP/1.1
Content-Type: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1888

{
  "elements" : [ {
    "id" : "8c3192bb-6e20-41d4-a9e2-ef0927def1f6",
    "name" : "Commissioning host(s) sfo01-w01-esx05.rainpole.io to VMware Cloud Foundation",
    "status" : "Failed",
    "creationTimestamp" : "2019-06-20T12:03:18.890Z",
    "subTasks" : [ {
      "name" : "HostVibValidationAction",
      "description" : "Validate the hosts for any disallowed VIBS",
      "status" : "SUCCESSFUL",
      "creationTimestamp" : "2019-06-20T12:03:18.890Z"
    }, {
      "name" : "HostMaintenanceModeValidationAction",
      "description" : "Verifies that none of the hosts are in maintenance mode",
      "status" : "FAILED",
      "creationTimestamp" : "2019-06-20T12:03:18.890Z"
    }, {
      "name" : "FetchDnsAndNtpAction",
      "description" : "Fetches DNS \\u0026 NTP IPs",
      "status" : "PENDING",
      "creationTimestamp" : "2019-06-20T12:03:18.890Z"
    } ],
    "errors" : [ {
      "errorCode" : "COMMISION_HOST_FAILED",
      "message" : "Failed to Commissioning host(s) sfo01-w01-esx05.rainpole.io to VMware Cloud Foundation",
      "causes" : [ ]
    } ],
    "resources" : [ {
      "resourceId" : "f41b4df7-bbd1-4a3f-a1f1-f8bb7ae12816",
      "type" : "HOST"
    } ],
    "resolutionStatus" : "UNRESOLVED",
    "isCancellable" : false
  }, {
    "id" : "67333728-3fbc-4d84-a270-61f75aea1efe",
    "name" : "Credentials rotate operation",
    "status" : "Successful",
    "creationTimestamp" : "2019-06-20T12:03:18.890Z",
    "subTasks" : [ {
      "name" : "sfo-vcf01.rainpole.io:FTP",
      "description" : "Password rotate for sfo-vcf01.rainpole.io and credential type FTP",
      "status" : "SUCCESSFUL",
      "creationTimestamp" : "2019-06-20T12:03:18.890Z"
    } ],
    "resources" : [ {
      "resourceId" : "8b3901aa-1ff7-488e-a9a9-aa742f0108ad",
      "type" : "HOST"
    } ],
    "resolutionStatus" : "UNRESOLVED",
    "isCancellable" : false
  } ]
}

2.6.2. Get a Task

Prerequisites
  1. The following data is required

    • ID of the task

Steps
  1. Invoke the API by providing the ID of the task as input.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/tasks/ada38b3a-d3d7-4b94-b1a3-1f7b100665d7' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/tasks/ada38b3a-d3d7-4b94-b1a3-1f7b100665d7 HTTP/1.1
Content-Type: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 942

{
  "id" : "ada38b3a-d3d7-4b94-b1a3-1f7b100665d7",
  "name" : "Vi workload Domain Creation",
  "status" : "FAILED",
  "creationTimestamp" : "1970-01-19T21:12:55.349Z",
  "subTasks" : [ {
    "name" : "HostVibValidationAction",
    "description" : "Validate the hosts for any disallowed VIBS",
    "status" : "SUCCESSFUL",
    "creationTimestamp" : "2019-06-20T12:03:18.890Z"
  }, {
    "name" : "HostMaintenanceModeValidationAction",
    "description" : "Verifies that none of the hosts are in maintenance mode",
    "status" : "FAILED",
    "creationTimestamp" : "2019-06-20T12:03:18.890Z"
  }, {
    "name" : "FetchDnsAndNtpAction",
    "description" : "Fetches DNS \\u0026 NTP IPs",
    "status" : "PENDING",
    "creationTimestamp" : "2019-06-20T12:03:18.890Z"
  } ],
  "resources" : [ {
    "resourceId" : "98d2e8a0-5ec5-4ce4-8904-edb1e5a018ed",
    "type" : "HOST"
  } ],
  "resolutionStatus" : "UNRESOLVED",
  "isCancellable" : false
}

2.6.3. Retry a Task

Used to retry a failed task/workflow.

Prerequisites
  1. The following data is required

    • ID of the failed task

Steps
  1. Invoke the API by providing the ID of the task as input.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/tasks/199e4a85-7d94-4e9c-8fd7-62b14ecf1509' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

PATCH /v1/tasks/199e4a85-7d94-4e9c-8fd7-62b14ecf1509 HTTP/1.1
Content-Type: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Note
The credentials' update/rotate password tasks cannot be retried using this API. Refer to Retry a failed credentials task for a given ID section.

2.7. Hosts

2.7.1. Commission the Hosts

Prerequisites
  1. The following data is required

    • Username of each host

    • Password of each host

    • FQDN of each host

    • Network pool name to which each host has to be associated with (Optional)

    • Network pool ID to which each host has to be associated with

  1. The host, if intended to be used for a vSAN domain, should be vSAN compliant and certified as per the VMware Hardware Compatibility Guide.

  2. BIOS, HBA, SSD, HDD, etc. of the host must match the VMware Hardware Compatibility Guide.

  3. The host must have the drivers and firmware versions specified in the VMware Hardware Compatibility Guide.

  4. The host must have the supported version of ESXi (i.e 6.7.0-13006603) pre-installed on it.

  5. SSH and syslog must be enabled on the host.

  6. The host must be configured with DNS server for forward and reverse lookup and FQDN.

  7. The host name must be same as the FQDN.

  8. The host must have a standard switch with two NIC ports with a minimum 10 Gbps speed.

  9. The management IP must be configured to the first NIC port.

  10. Ensure that the host has a standard switch and the default uplinks with 10Gb speed are configured starting with traditional numbering (e.g., vmnic0) and increasing sequentially.

  11. Ensure that the host hardware health status is healthy without any errors.

  12. All disk partitions on HDD / SSD are deleted.

  13. The hosts, if intended to be used for vSAN, domain must be associated with vSAN enabled network pool.

  14. The hosts, if intended to be used for NFS, domain must be associated with NFS enabled network pool.

  15. The hosts, if intended to be used for VMFS on FC, domain must be associated with either a NFS enabled or vMotion enabled network pool.

  16. The hosts, if intended to be used for VVOL, domain must be associated with either a NFS enabled or vMotion enabled network pool.

Steps
  1. Validate the input specification.

For VSAN storage type

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/hosts/validations' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '[ {
  "fqdn" : "sfo01-m01-esx01.rainpole.io",
  "username" : "root",
  "password" : "VMwareInfra@1",
  "storageType" : "VSAN",
  "vvolStorageProtocolType" : null,
  "networkPoolId" : "58d74167-ee80-4eb8-90d9-cdfb3c1cd9f3",
  "networkPoolName" : "engineering-networkpool",
  "sshThumbprint" : null,
  "sslThumbprint" : null
}, {
  "fqdn" : "sfo01-m01-esx02.rainpole.io",
  "username" : "root",
  "password" : "VMwareInfra@1",
  "storageType" : "VSAN",
  "vvolStorageProtocolType" : null,
  "networkPoolId" : "1ff2838a-1983-4747-a94d-d30b2d13a973",
  "networkPoolName" : "finance-networkpool",
  "sshThumbprint" : "sshThumbprint",
  "sslThumbprint" : "sslThumbprint"
} ]'

HTTP Request

POST /v1/hosts/validations HTTP/1.1
Content-Type: application/json
Content-Length: 668
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

[ {
  "fqdn" : "sfo01-m01-esx01.rainpole.io",
  "username" : "root",
  "password" : "VMwareInfra@1",
  "storageType" : "VSAN",
  "vvolStorageProtocolType" : null,
  "networkPoolId" : "58d74167-ee80-4eb8-90d9-cdfb3c1cd9f3",
  "networkPoolName" : "engineering-networkpool",
  "sshThumbprint" : null,
  "sslThumbprint" : null
}, {
  "fqdn" : "sfo01-m01-esx02.rainpole.io",
  "username" : "root",
  "password" : "VMwareInfra@1",
  "storageType" : "VSAN",
  "vvolStorageProtocolType" : null,
  "networkPoolId" : "1ff2838a-1983-4747-a94d-d30b2d13a973",
  "networkPoolName" : "finance-networkpool",
  "sshThumbprint" : "sshThumbprint",
  "sslThumbprint" : "sslThumbprint"
} ]

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/hosts/validations/2bcfa20e-3c53-4bbb-9f3d-ce112c5c943a
Content-Type: application/json
Content-Length: 526

{
  "id" : "2bcfa20e-3c53-4bbb-9f3d-ce112c5c943a",
  "description" : "Validate input specification to commission one or more hosts to VMware Cloud Foundation",
  "executionStatus" : "IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "Validating input specification",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "Validating host sfo01-m01-esx01.rainpole.io",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "Validating host sfo01-m01-esx02.rainpole.io",
    "resultStatus" : "UNKNOWN"
  } ]
}

For vVol storage type

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/hosts/validations' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '[ {
  "fqdn" : "sfo01-m01-esx01.rainpole.io",
  "username" : "root",
  "password" : "VMwareInfra@1",
  "storageType" : "VVOL",
  "vvolStorageProtocolType" : "ISCSI",
  "networkPoolId" : "58d74167-ee80-4eb8-90d9-cdfb3c1cd9f3",
  "networkPoolName" : "engineering-networkpool",
  "sshThumbprint" : "sshThumbprint",
  "sslThumbprint" : "sslThumbprint"
}, {
  "fqdn" : "sfo01-m01-esx02.rainpole.io",
  "username" : "root",
  "password" : "VMwareInfra@1",
  "storageType" : "VVOL",
  "vvolStorageProtocolType" : "NFS",
  "networkPoolId" : "1ff2838a-1983-4747-a94d-d30b2d13a973",
  "networkPoolName" : "finance-networkpool",
  "sshThumbprint" : "sshThumbprint",
  "sslThumbprint" : "sslThumbprint"
} ]'

HTTP Request

POST /v1/hosts/validations HTTP/1.1
Content-Type: application/json
Content-Length: 694
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

[ {
  "fqdn" : "sfo01-m01-esx01.rainpole.io",
  "username" : "root",
  "password" : "VMwareInfra@1",
  "storageType" : "VVOL",
  "vvolStorageProtocolType" : "ISCSI",
  "networkPoolId" : "58d74167-ee80-4eb8-90d9-cdfb3c1cd9f3",
  "networkPoolName" : "engineering-networkpool",
  "sshThumbprint" : "sshThumbprint",
  "sslThumbprint" : "sslThumbprint"
}, {
  "fqdn" : "sfo01-m01-esx02.rainpole.io",
  "username" : "root",
  "password" : "VMwareInfra@1",
  "storageType" : "VVOL",
  "vvolStorageProtocolType" : "NFS",
  "networkPoolId" : "1ff2838a-1983-4747-a94d-d30b2d13a973",
  "networkPoolName" : "finance-networkpool",
  "sshThumbprint" : "sshThumbprint",
  "sslThumbprint" : "sslThumbprint"
} ]

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/hosts/validations/3eb776de-5de6-40e4-b753-7b95e14fb164
Content-Type: application/json
Content-Length: 526

{
  "id" : "3eb776de-5de6-40e4-b753-7b95e14fb164",
  "description" : "Validate input specification to commission one or more hosts to VMware Cloud Foundation",
  "executionStatus" : "IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "Validating input specification",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "Validating host sfo01-m01-esx01.rainpole.io",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "Validating host sfo01-m01-esx02.rainpole.io",
    "resultStatus" : "UNKNOWN"
  } ]
}
  1. Poll until "executionStatus" is not "IN_PROGRESS" using the "id" from the previous response.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/hosts/validations/2bcfa20e-3c53-4bbb-9f3d-ce112c5c943a' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/hosts/validations/2bcfa20e-3c53-4bbb-9f3d-ce112c5c943a HTTP/1.1
Content-Type: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 436

{
  "id" : "2bcfa20e-3c53-4bbb-9f3d-ce112c5c943a",
  "description" : "Validate input specification to commission one or more hosts to VMware Cloud Foundation",
  "executionStatus" : "IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "Validating host sfo01-m01-esx01.rainpole.io",
    "resultStatus" : "SUCCEEDED"
  }, {
    "description" : "Validating host sfo01-m01-esx02.rainpole.io",
    "resultStatus" : "UNKNOWN"
  } ]
}
  1. In case of no errors in the input specification, the "executionStatus" is "COMPLETED" and "resultStatus" is "SUCCEEDED".

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/hosts/validations/2bcfa20e-3c53-4bbb-9f3d-ce112c5c943a' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/hosts/validations/2bcfa20e-3c53-4bbb-9f3d-ce112c5c943a HTTP/1.1
Content-Type: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 468

{
  "id" : "2bcfa20e-3c53-4bbb-9f3d-ce112c5c943a",
  "description" : "Validate input specification to commission one or more hosts to VMware Cloud Foundation",
  "executionStatus" : "COMPLETED",
  "resultStatus" : "SUCCEEDED",
  "validationChecks" : [ {
    "description" : "Validating host sfo01-m01-esx01.rainpole.io",
    "resultStatus" : "SUCCEEDED"
  }, {
    "description" : "Validating host sfo01-m01-esx02.rainpole.io",
    "resultStatus" : "SUCCEEDED"
  } ]
}
  1. In case of errors in the input specification, the "executionStatus" is "COMPLETED" and "resultStatus" is "FAILED".

Note
Make changes to the input specification and re-validate using a new API invocation.
  1. Trigger the task using the valid input specification.

Note
It is recommended to validate host commission input specification before triggering the host commission operation.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/hosts' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '[ {
  "fqdn" : "sfo01-m01-esx01.rainpole.io",
  "username" : "root",
  "password" : "VMwareInfra@1",
  "storageType" : "VSAN",
  "vvolStorageProtocolType" : null,
  "networkPoolId" : "58d74167-ee80-4eb8-90d9-cdfb3c1cd9f3",
  "networkPoolName" : "engineering-networkpool",
  "sshThumbprint" : null,
  "sslThumbprint" : null
}, {
  "fqdn" : "sfo01-m01-esx02.rainpole.io",
  "username" : "root",
  "password" : "VMwareInfra@1",
  "storageType" : "VSAN",
  "vvolStorageProtocolType" : null,
  "networkPoolId" : "1ff2838a-1983-4747-a94d-d30b2d13a973",
  "networkPoolName" : "finance-networkpool",
  "sshThumbprint" : "sshThumbprint",
  "sslThumbprint" : "sslThumbprint"
} ]'

HTTP Request

POST /v1/hosts HTTP/1.1
Content-Type: application/json
Content-Length: 668
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

[ {
  "fqdn" : "sfo01-m01-esx01.rainpole.io",
  "username" : "root",
  "password" : "VMwareInfra@1",
  "storageType" : "VSAN",
  "vvolStorageProtocolType" : null,
  "networkPoolId" : "58d74167-ee80-4eb8-90d9-cdfb3c1cd9f3",
  "networkPoolName" : "engineering-networkpool",
  "sshThumbprint" : null,
  "sslThumbprint" : null
}, {
  "fqdn" : "sfo01-m01-esx02.rainpole.io",
  "username" : "root",
  "password" : "VMwareInfra@1",
  "storageType" : "VSAN",
  "vvolStorageProtocolType" : null,
  "networkPoolId" : "1ff2838a-1983-4747-a94d-d30b2d13a973",
  "networkPoolName" : "finance-networkpool",
  "sshThumbprint" : "sshThumbprint",
  "sslThumbprint" : "sslThumbprint"
} ]

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/tasks/e3d41b20-ce71-4ac5-88b3-412468f6ebd6
Content-Type: application/json
Content-Length: 246

{
  "id" : "e3d41b20-ce71-4ac5-88b3-412468f6ebd6",
  "name" : "Commission Hosts - [esx-1.vrack.vsphere.local, esx-2.vrack.vsphere.local] to VMware Cloud Foundation",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2022-02-08T08:11:27.321Z"
}
  1. Poll the task until "status" is not "IN_PROGRESS" using the "id" from the previous response.

Tip
Refer to: Get a Task.
  • If the "status" is "SUCCESSFUL", the task is completed successfully.

  • If the "status" is "FAILED", the task can be re-executed.

Tip
Refer to: Retry a Task.

2.7.2. Get the Hosts

Prerequisites

None

Get All Hosts

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/hosts' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/hosts HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 4582

{
  "elements" : [ {
    "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c1",
    "esxiVersion" : "6.7.0-13006603",
    "fqdn" : "sfo01-m01-esx01.rainpole.io",
    "hardwareVendor" : "VMware, Inc.",
    "hardwareModel" : "VMware Virtual Platform",
    "isPrimary" : false,
    "ipAddresses" : [ {
      "ipAddress" : "10.0.0.100",
      "type" : "MANAGEMENT"
    } ],
    "cpu" : {
      "frequencyMHz" : 4994.0,
      "usedFrequencyMHz" : 0.0,
      "cores" : 2,
      "cpuCores" : [ {
        "frequencyMHz" : 2497.0,
        "model" : "Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz",
        "manufacturer" : "Intel"
      }, {
        "frequencyMHz" : 2497.0,
        "model" : "Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz",
        "manufacturer" : "Intel"
      } ]
    },
    "memory" : {
      "totalCapacityMB" : 79999.0,
      "usedCapacityMB" : 0.0
    },
    "storage" : {
      "totalCapacityMB" : 781250.0,
      "usedCapacityMB" : 0.0,
      "disks" : [ {
        "capacityMB" : 390625.0,
        "diskType" : "HDD"
      }, {
        "capacityMB" : 390625.0,
        "diskType" : "FLASH"
      } ]
    },
    "physicalNics" : [ {
      "deviceName" : "vmnic0",
      "macAddress" : "02:00:1b:31:93:d2",
      "speed" : 0
    }, {
      "deviceName" : "vmnic1",
      "macAddress" : "02:00:1b:31:93:d3",
      "speed" : 0
    } ],
    "domain" : {
      "id" : "377236f7-4965-4179-895e-eeb4eb9a6ad1"
    },
    "networkpool" : {
      "id" : "1205afdd-84f5-403e-a052-1a9bba09ef41"
    },
    "cluster" : {
      "id" : "4205afdd-94f5-403e-a051-1a9bba09ef40"
    },
    "status" : "ASSIGNED",
    "compatibleStorageType" : "VMFS_FC",
    "hybrid" : false
  }, {
    "id" : "8045e44e-974e-4f43-9862-7f0326782638",
    "esxiVersion" : "6.5.0-13006603",
    "fqdn" : "sfo01-m01-esx02.rainpole.io",
    "hardwareVendor" : "VMware, Inc.",
    "hardwareModel" : "VMware Virtual Platform",
    "isPrimary" : false,
    "ipAddresses" : [ {
      "ipAddress" : "10.0.0.101",
      "type" : "MANAGEMENT"
    } ],
    "cpu" : {
      "frequencyMHz" : 4994.0,
      "usedFrequencyMHz" : 0.0,
      "cores" : 2,
      "cpuCores" : [ {
        "frequencyMHz" : 2497.0,
        "model" : "Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz",
        "manufacturer" : "Intel"
      }, {
        "frequencyMHz" : 2497.0,
        "model" : "Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz",
        "manufacturer" : "Intel"
      } ]
    },
    "memory" : {
      "totalCapacityMB" : 79999.0,
      "usedCapacityMB" : 0.0
    },
    "storage" : {
      "totalCapacityMB" : 781250.0,
      "usedCapacityMB" : 0.0,
      "disks" : [ {
        "capacityMB" : 390625.0,
        "diskType" : "HDD"
      }, {
        "capacityMB" : 390625.0,
        "diskType" : "FLASH"
      } ]
    },
    "physicalNics" : [ {
      "deviceName" : "vmnic0",
      "macAddress" : "02:00:1b:31:93:d2",
      "speed" : 0
    }, {
      "deviceName" : "vmnic1",
      "macAddress" : "02:00:1b:31:93:d3",
      "speed" : 0
    } ],
    "networkpool" : {
      "id" : "1205afdd-84f5-403e-a052-1a9bba09ef41"
    },
    "status" : "UNASSIGNED_USEABLE",
    "hybrid" : true
  }, {
    "id" : "8045e44e-974e-4f43-9862-7f0326782638",
    "esxiVersion" : "6.5.0-13006603",
    "fqdn" : "sfo01-m01-esx03.rainpole.io",
    "hardwareVendor" : "VMware, Inc.",
    "hardwareModel" : "VMware Virtual Platform",
    "isPrimary" : false,
    "ipAddresses" : [ {
      "ipAddress" : "10.0.0.102",
      "type" : "MANAGEMENT"
    } ],
    "cpu" : {
      "frequencyMHz" : 4994.0,
      "usedFrequencyMHz" : 0.0,
      "cores" : 2,
      "cpuCores" : [ {
        "frequencyMHz" : 2497.0,
        "model" : "Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz",
        "manufacturer" : "Intel"
      }, {
        "frequencyMHz" : 2497.0,
        "model" : "Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz",
        "manufacturer" : "Intel"
      } ]
    },
    "memory" : {
      "totalCapacityMB" : 79999.0,
      "usedCapacityMB" : 0.0
    },
    "storage" : {
      "totalCapacityMB" : 781250.0,
      "usedCapacityMB" : 0.0,
      "disks" : [ {
        "capacityMB" : 390625.0,
        "diskType" : "HDD"
      }, {
        "capacityMB" : 390625.0,
        "diskType" : "FLASH"
      } ]
    },
    "physicalNics" : [ {
      "deviceName" : "vmnic0",
      "macAddress" : "02:00:1b:31:93:d2",
      "speed" : 0
    }, {
      "deviceName" : "vmnic1",
      "macAddress" : "02:00:1b:31:93:d3",
      "speed" : 0
    } ],
    "networkpool" : {
      "id" : "1205afdd-84f5-403e-a052-1a9bba09ef41"
    },
    "status" : "UNASSIGNED_UNUSEABLE",
    "hybrid" : true
  } ]
}

Get ASSIGNED Hosts

This API can be used to fetch all the hosts that are currently assigned to any domain and hence cannot be used for other domain tasks

Steps
  1. Invoke the API by specifying the "status" as "ASSIGNED".

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/hosts?status=ASSIGNED' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/hosts?status=ASSIGNED HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1664

{
  "elements" : [ {
    "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c1",
    "esxiVersion" : "6.7.0-13006603",
    "fqdn" : "sfo01-m01-esx01.rainpole.io",
    "hardwareVendor" : "VMware, Inc.",
    "hardwareModel" : "VMware Virtual Platform",
    "isPrimary" : false,
    "ipAddresses" : [ {
      "ipAddress" : "10.0.0.100",
      "type" : "MANAGEMENT"
    } ],
    "cpu" : {
      "frequencyMHz" : 4994.0,
      "usedFrequencyMHz" : 0.0,
      "cores" : 2,
      "cpuCores" : [ {
        "frequencyMHz" : 2497.0,
        "model" : "Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz",
        "manufacturer" : "Intel"
      }, {
        "frequencyMHz" : 2497.0,
        "model" : "Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz",
        "manufacturer" : "Intel"
      } ]
    },
    "memory" : {
      "totalCapacityMB" : 79999.0,
      "usedCapacityMB" : 0.0
    },
    "storage" : {
      "totalCapacityMB" : 781250.0,
      "usedCapacityMB" : 0.0,
      "disks" : [ {
        "capacityMB" : 390625.0,
        "diskType" : "HDD"
      }, {
        "capacityMB" : 390625.0,
        "diskType" : "FLASH"
      } ]
    },
    "physicalNics" : [ {
      "deviceName" : "vmnic0",
      "macAddress" : "02:00:1b:31:93:d2",
      "speed" : 0
    }, {
      "deviceName" : "vmnic1",
      "macAddress" : "02:00:1b:31:93:d3",
      "speed" : 0
    } ],
    "domain" : {
      "id" : "377236f7-4965-4179-895e-eeb4eb9a6ad1"
    },
    "networkpool" : {
      "id" : "1205afdd-84f5-403e-a052-1a9bba09ef41"
    },
    "cluster" : {
      "id" : "4205afdd-94f5-403e-a051-1a9bba09ef40"
    },
    "status" : "ASSIGNED",
    "compatibleStorageType" : "VMFS_FC",
    "hybrid" : false
  } ]
}

Get UNASSIGNED_USEABLE Hosts

This API can be used to fetch all the hosts that are currently not assigned to any domain and hence can be used for other domain tasks

Steps
  1. Invoke the API by specifying the "status" as "UNASSIGNED_USEABLE".

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/hosts?status=UNASSIGNED_USEABLE' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/hosts?status=UNASSIGNED_USEABLE HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1479

{
  "elements" : [ {
    "id" : "8045e44e-974e-4f43-9862-7f0326782638",
    "esxiVersion" : "6.5.0-13006603",
    "fqdn" : "sfo01-m01-esx02.rainpole.io",
    "hardwareVendor" : "VMware, Inc.",
    "hardwareModel" : "VMware Virtual Platform",
    "isPrimary" : false,
    "ipAddresses" : [ {
      "ipAddress" : "10.0.0.101",
      "type" : "MANAGEMENT"
    } ],
    "cpu" : {
      "frequencyMHz" : 4994.0,
      "usedFrequencyMHz" : 0.0,
      "cores" : 2,
      "cpuCores" : [ {
        "frequencyMHz" : 2497.0,
        "model" : "Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz",
        "manufacturer" : "Intel"
      }, {
        "frequencyMHz" : 2497.0,
        "model" : "Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz",
        "manufacturer" : "Intel"
      } ]
    },
    "memory" : {
      "totalCapacityMB" : 79999.0,
      "usedCapacityMB" : 0.0
    },
    "storage" : {
      "totalCapacityMB" : 781250.0,
      "usedCapacityMB" : 0.0,
      "disks" : [ {
        "capacityMB" : 390625.0,
        "diskType" : "HDD"
      }, {
        "capacityMB" : 390625.0,
        "diskType" : "FLASH"
      } ]
    },
    "physicalNics" : [ {
      "deviceName" : "vmnic0",
      "macAddress" : "02:00:1b:31:93:d2",
      "speed" : 0
    }, {
      "deviceName" : "vmnic1",
      "macAddress" : "02:00:1b:31:93:d3",
      "speed" : 0
    } ],
    "networkpool" : {
      "id" : "1205afdd-84f5-403e-a052-1a9bba09ef41"
    },
    "status" : "UNASSIGNED_USEABLE",
    "hybrid" : true
  } ]
}

Get UNASSIGNED_UNUSEABLE Hosts

This API can be used to fetch all the hosts that are currently not assigned to any domain and can be used for other domain tasks after completion of cleanup operation

Note
Cleanup operations must be performed to get these host back into "UNASSIGNED" and "USEABLE" state.
Steps
  1. Invoke the API by specifying the "status" as "UNASSIGNED_UNUSEABLE".

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/hosts?status=UNASSIGNED_UNUSEABLE' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/hosts?status=UNASSIGNED_UNUSEABLE HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1481

{
  "elements" : [ {
    "id" : "8045e44e-974e-4f43-9862-7f0326782638",
    "esxiVersion" : "6.5.0-13006603",
    "fqdn" : "sfo01-m01-esx03.rainpole.io",
    "hardwareVendor" : "VMware, Inc.",
    "hardwareModel" : "VMware Virtual Platform",
    "isPrimary" : false,
    "ipAddresses" : [ {
      "ipAddress" : "10.0.0.102",
      "type" : "MANAGEMENT"
    } ],
    "cpu" : {
      "frequencyMHz" : 4994.0,
      "usedFrequencyMHz" : 0.0,
      "cores" : 2,
      "cpuCores" : [ {
        "frequencyMHz" : 2497.0,
        "model" : "Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz",
        "manufacturer" : "Intel"
      }, {
        "frequencyMHz" : 2497.0,
        "model" : "Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz",
        "manufacturer" : "Intel"
      } ]
    },
    "memory" : {
      "totalCapacityMB" : 79999.0,
      "usedCapacityMB" : 0.0
    },
    "storage" : {
      "totalCapacityMB" : 781250.0,
      "usedCapacityMB" : 0.0,
      "disks" : [ {
        "capacityMB" : 390625.0,
        "diskType" : "HDD"
      }, {
        "capacityMB" : 390625.0,
        "diskType" : "FLASH"
      } ]
    },
    "physicalNics" : [ {
      "deviceName" : "vmnic0",
      "macAddress" : "02:00:1b:31:93:d2",
      "speed" : 0
    }, {
      "deviceName" : "vmnic1",
      "macAddress" : "02:00:1b:31:93:d3",
      "speed" : 0
    } ],
    "networkpool" : {
      "id" : "1205afdd-84f5-403e-a052-1a9bba09ef41"
    },
    "status" : "UNASSIGNED_UNUSEABLE",
    "hybrid" : true
  } ]
}

Get Hosts by Domain

This API can be used to fetch all the hosts that are currently assigned to a given domain.

Steps
  1. Invoke the API by specifying the "domainId".

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/hosts?domainId=377236f7-4965-4179-895e-eeb4eb9a6ad1' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/hosts?domainId=377236f7-4965-4179-895e-eeb4eb9a6ad1 HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1664

{
  "elements" : [ {
    "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c1",
    "esxiVersion" : "6.7.0-13006603",
    "fqdn" : "sfo01-m01-esx01.rainpole.io",
    "hardwareVendor" : "VMware, Inc.",
    "hardwareModel" : "VMware Virtual Platform",
    "isPrimary" : false,
    "ipAddresses" : [ {
      "ipAddress" : "10.0.0.100",
      "type" : "MANAGEMENT"
    } ],
    "cpu" : {
      "frequencyMHz" : 4994.0,
      "usedFrequencyMHz" : 0.0,
      "cores" : 2,
      "cpuCores" : [ {
        "frequencyMHz" : 2497.0,
        "model" : "Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz",
        "manufacturer" : "Intel"
      }, {
        "frequencyMHz" : 2497.0,
        "model" : "Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz",
        "manufacturer" : "Intel"
      } ]
    },
    "memory" : {
      "totalCapacityMB" : 79999.0,
      "usedCapacityMB" : 0.0
    },
    "storage" : {
      "totalCapacityMB" : 781250.0,
      "usedCapacityMB" : 0.0,
      "disks" : [ {
        "capacityMB" : 390625.0,
        "diskType" : "HDD"
      }, {
        "capacityMB" : 390625.0,
        "diskType" : "FLASH"
      } ]
    },
    "physicalNics" : [ {
      "deviceName" : "vmnic0",
      "macAddress" : "02:00:1b:31:93:d2",
      "speed" : 0
    }, {
      "deviceName" : "vmnic1",
      "macAddress" : "02:00:1b:31:93:d3",
      "speed" : 0
    } ],
    "domain" : {
      "id" : "377236f7-4965-4179-895e-eeb4eb9a6ad1"
    },
    "networkpool" : {
      "id" : "1205afdd-84f5-403e-a052-1a9bba09ef41"
    },
    "cluster" : {
      "id" : "4205afdd-94f5-403e-a051-1a9bba09ef40"
    },
    "status" : "ASSIGNED",
    "compatibleStorageType" : "VMFS_FC",
    "hybrid" : false
  } ]
}

Get Hosts by Cluster

This API can be used to fetch all the hosts that are currently assigned to a given cluster.

Steps
  1. Invoke the API by specifying the "clusterId".

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/hosts?clusterId=4205afdd-94f5-403e-a051-1a9bba09ef40' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/hosts?clusterId=4205afdd-94f5-403e-a051-1a9bba09ef40 HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1664

{
  "elements" : [ {
    "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c1",
    "esxiVersion" : "6.7.0-13006603",
    "fqdn" : "sfo01-m01-esx01.rainpole.io",
    "hardwareVendor" : "VMware, Inc.",
    "hardwareModel" : "VMware Virtual Platform",
    "isPrimary" : false,
    "ipAddresses" : [ {
      "ipAddress" : "10.0.0.100",
      "type" : "MANAGEMENT"
    } ],
    "cpu" : {
      "frequencyMHz" : 4994.0,
      "usedFrequencyMHz" : 0.0,
      "cores" : 2,
      "cpuCores" : [ {
        "frequencyMHz" : 2497.0,
        "model" : "Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz",
        "manufacturer" : "Intel"
      }, {
        "frequencyMHz" : 2497.0,
        "model" : "Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz",
        "manufacturer" : "Intel"
      } ]
    },
    "memory" : {
      "totalCapacityMB" : 79999.0,
      "usedCapacityMB" : 0.0
    },
    "storage" : {
      "totalCapacityMB" : 781250.0,
      "usedCapacityMB" : 0.0,
      "disks" : [ {
        "capacityMB" : 390625.0,
        "diskType" : "HDD"
      }, {
        "capacityMB" : 390625.0,
        "diskType" : "FLASH"
      } ]
    },
    "physicalNics" : [ {
      "deviceName" : "vmnic0",
      "macAddress" : "02:00:1b:31:93:d2",
      "speed" : 0
    }, {
      "deviceName" : "vmnic1",
      "macAddress" : "02:00:1b:31:93:d3",
      "speed" : 0
    } ],
    "domain" : {
      "id" : "377236f7-4965-4179-895e-eeb4eb9a6ad1"
    },
    "networkpool" : {
      "id" : "1205afdd-84f5-403e-a052-1a9bba09ef41"
    },
    "cluster" : {
      "id" : "4205afdd-94f5-403e-a051-1a9bba09ef40"
    },
    "status" : "ASSIGNED",
    "compatibleStorageType" : "VMFS_FC",
    "hybrid" : false
  } ]
}

Get Hosts by Network Pool

This API can be used to fetch all the hosts that are currently assigned to a given network pool.

Steps
  1. Invoke the API by specifying the "networkpoolId".

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/hosts?networkpoolId=1205afdd-84f5-403e-a052-1a9bba09ef41' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/hosts?networkpoolId=1205afdd-84f5-403e-a052-1a9bba09ef41 HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1664

{
  "elements" : [ {
    "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c1",
    "esxiVersion" : "6.7.0-13006603",
    "fqdn" : "sfo01-m01-esx01.rainpole.io",
    "hardwareVendor" : "VMware, Inc.",
    "hardwareModel" : "VMware Virtual Platform",
    "isPrimary" : false,
    "ipAddresses" : [ {
      "ipAddress" : "10.0.0.100",
      "type" : "MANAGEMENT"
    } ],
    "cpu" : {
      "frequencyMHz" : 4994.0,
      "usedFrequencyMHz" : 0.0,
      "cores" : 2,
      "cpuCores" : [ {
        "frequencyMHz" : 2497.0,
        "model" : "Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz",
        "manufacturer" : "Intel"
      }, {
        "frequencyMHz" : 2497.0,
        "model" : "Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz",
        "manufacturer" : "Intel"
      } ]
    },
    "memory" : {
      "totalCapacityMB" : 79999.0,
      "usedCapacityMB" : 0.0
    },
    "storage" : {
      "totalCapacityMB" : 781250.0,
      "usedCapacityMB" : 0.0,
      "disks" : [ {
        "capacityMB" : 390625.0,
        "diskType" : "HDD"
      }, {
        "capacityMB" : 390625.0,
        "diskType" : "FLASH"
      } ]
    },
    "physicalNics" : [ {
      "deviceName" : "vmnic0",
      "macAddress" : "02:00:1b:31:93:d2",
      "speed" : 0
    }, {
      "deviceName" : "vmnic1",
      "macAddress" : "02:00:1b:31:93:d3",
      "speed" : 0
    } ],
    "domain" : {
      "id" : "377236f7-4965-4179-895e-eeb4eb9a6ad1"
    },
    "networkpool" : {
      "id" : "1205afdd-84f5-403e-a052-1a9bba09ef41"
    },
    "cluster" : {
      "id" : "4205afdd-94f5-403e-a051-1a9bba09ef40"
    },
    "status" : "ASSIGNED",
    "compatibleStorageType" : "VMFS_FC",
    "hybrid" : false
  } ]
}

Get Hosts by Storage Type

This API can be used to fetch all the hosts that are currently configured with the given storage type.

Note
Supported storage type is "VMFS_FC" , "VVOL".
Steps
  1. Invoke the API by specifying the "storageType".

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/hosts?storageType=VMFS_FC' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/hosts?storageType=VMFS_FC HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1664

{
  "elements" : [ {
    "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c1",
    "esxiVersion" : "6.7.0-13006603",
    "fqdn" : "sfo01-m01-esx01.rainpole.io",
    "hardwareVendor" : "VMware, Inc.",
    "hardwareModel" : "VMware Virtual Platform",
    "isPrimary" : false,
    "ipAddresses" : [ {
      "ipAddress" : "10.0.0.100",
      "type" : "MANAGEMENT"
    } ],
    "cpu" : {
      "frequencyMHz" : 4994.0,
      "usedFrequencyMHz" : 0.0,
      "cores" : 2,
      "cpuCores" : [ {
        "frequencyMHz" : 2497.0,
        "model" : "Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz",
        "manufacturer" : "Intel"
      }, {
        "frequencyMHz" : 2497.0,
        "model" : "Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz",
        "manufacturer" : "Intel"
      } ]
    },
    "memory" : {
      "totalCapacityMB" : 79999.0,
      "usedCapacityMB" : 0.0
    },
    "storage" : {
      "totalCapacityMB" : 781250.0,
      "usedCapacityMB" : 0.0,
      "disks" : [ {
        "capacityMB" : 390625.0,
        "diskType" : "HDD"
      }, {
        "capacityMB" : 390625.0,
        "diskType" : "FLASH"
      } ]
    },
    "physicalNics" : [ {
      "deviceName" : "vmnic0",
      "macAddress" : "02:00:1b:31:93:d2",
      "speed" : 0
    }, {
      "deviceName" : "vmnic1",
      "macAddress" : "02:00:1b:31:93:d3",
      "speed" : 0
    } ],
    "domain" : {
      "id" : "377236f7-4965-4179-895e-eeb4eb9a6ad1"
    },
    "networkpool" : {
      "id" : "1205afdd-84f5-403e-a052-1a9bba09ef41"
    },
    "cluster" : {
      "id" : "4205afdd-94f5-403e-a051-1a9bba09ef40"
    },
    "status" : "ASSIGNED",
    "compatibleStorageType" : "VMFS_FC",
    "hybrid" : false
  } ]
}

Get Hosts by Datastore Name

This API can be used to fetch all the hosts that are currently configured with the given datastore.

Steps
  1. Invoke the API by specifying the "datastoreName".

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/hosts?datastoreName=datastore1' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/hosts?datastoreName=datastore1 HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1664

{
  "elements" : [ {
    "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c1",
    "esxiVersion" : "6.7.0-13006603",
    "fqdn" : "sfo01-m01-esx01.rainpole.io",
    "hardwareVendor" : "VMware, Inc.",
    "hardwareModel" : "VMware Virtual Platform",
    "isPrimary" : false,
    "ipAddresses" : [ {
      "ipAddress" : "10.0.0.100",
      "type" : "MANAGEMENT"
    } ],
    "cpu" : {
      "frequencyMHz" : 4994.0,
      "usedFrequencyMHz" : 0.0,
      "cores" : 2,
      "cpuCores" : [ {
        "frequencyMHz" : 2497.0,
        "model" : "Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz",
        "manufacturer" : "Intel"
      }, {
        "frequencyMHz" : 2497.0,
        "model" : "Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz",
        "manufacturer" : "Intel"
      } ]
    },
    "memory" : {
      "totalCapacityMB" : 79999.0,
      "usedCapacityMB" : 0.0
    },
    "storage" : {
      "totalCapacityMB" : 781250.0,
      "usedCapacityMB" : 0.0,
      "disks" : [ {
        "capacityMB" : 390625.0,
        "diskType" : "HDD"
      }, {
        "capacityMB" : 390625.0,
        "diskType" : "FLASH"
      } ]
    },
    "physicalNics" : [ {
      "deviceName" : "vmnic0",
      "macAddress" : "02:00:1b:31:93:d2",
      "speed" : 0
    }, {
      "deviceName" : "vmnic1",
      "macAddress" : "02:00:1b:31:93:d3",
      "speed" : 0
    } ],
    "domain" : {
      "id" : "377236f7-4965-4179-895e-eeb4eb9a6ad1"
    },
    "networkpool" : {
      "id" : "1205afdd-84f5-403e-a052-1a9bba09ef41"
    },
    "cluster" : {
      "id" : "4205afdd-94f5-403e-a051-1a9bba09ef40"
    },
    "status" : "ASSIGNED",
    "compatibleStorageType" : "VMFS_FC",
    "hybrid" : false
  } ]
}

2.7.3. Get a Host

Prerequisites
  1. The following data is required

    • ID of the host

Steps
  1. Invoke the API by providing the ID of the host as input.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/hosts/c0703437-6746-470b-9e1c-f9d3bbc9b1c1' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/hosts/c0703437-6746-470b-9e1c-f9d3bbc9b1c1 HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1519

{
  "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c1",
  "esxiVersion" : "6.7.0-13006603",
  "fqdn" : "sfo01-m01-esx01.rainpole.io",
  "hardwareVendor" : "VMware, Inc.",
  "hardwareModel" : "VMware Virtual Platform",
  "isPrimary" : false,
  "ipAddresses" : [ {
    "ipAddress" : "10.0.0.100",
    "type" : "MANAGEMENT"
  } ],
  "cpu" : {
    "frequencyMHz" : 4994.0,
    "usedFrequencyMHz" : 0.0,
    "cores" : 2,
    "cpuCores" : [ {
      "frequencyMHz" : 2497.0,
      "model" : "Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz",
      "manufacturer" : "Intel"
    }, {
      "frequencyMHz" : 2497.0,
      "model" : "Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz",
      "manufacturer" : "Intel"
    } ]
  },
  "memory" : {
    "totalCapacityMB" : 79999.0,
    "usedCapacityMB" : 0.0
  },
  "storage" : {
    "totalCapacityMB" : 781250.0,
    "usedCapacityMB" : 0.0,
    "disks" : [ {
      "capacityMB" : 390625.0,
      "diskType" : "HDD"
    }, {
      "capacityMB" : 390625.0,
      "diskType" : "FLASH"
    } ]
  },
  "physicalNics" : [ {
    "deviceName" : "vmnic0",
    "macAddress" : "02:00:1b:31:93:d2",
    "speed" : 0
  }, {
    "deviceName" : "vmnic1",
    "macAddress" : "02:00:1b:31:93:d3",
    "speed" : 0
  } ],
  "domain" : {
    "id" : "377236f7-4965-4179-895e-eeb4eb9a6ad1"
  },
  "networkpool" : {
    "id" : "1205afdd-84f5-403e-a052-1a9bba09ef41"
  },
  "cluster" : {
    "id" : "4205afdd-94f5-403e-a051-1a9bba09ef40"
  },
  "status" : "ASSIGNED",
  "compatibleStorageType" : "VMFS_FC",
  "hybrid" : false
}

2.7.4. Get the Hosts based on a Criterion

This API is used to get the hosts that meets a specific criterion.

Prerequisites

None

Get the hosts based on a criterion

Steps
  1. Invoke the Get Host Criterion API to list all the criteria supported.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/hosts/criteria' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/hosts/criteria HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 535

{
  "elements" : [ {
    "name" : "HOST_COMPATIBLE_WITH_CLUSTER_USING_PNICS",
    "arguments" : {
      "storageType" : "Storage type of host",
      "clusterId" : "ID of the cluster"
    },
    "description" : "Return all hosts that are compatible with a cluster"
  }, {
    "name" : "UNMANAGED_HOSTS_IN_HCIMGR",
    "arguments" : {
      "hciManagerFqdn" : "HCI Manager FQDN",
      "hciManagerSslThumbprint" : "HCI Manager SSL Thumbprint"
    },
    "description" : "Return all the unmanaged hosts discovered by HCI manager"
  } ]
}
  1. Pick one of the criterion and post a query

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/hosts/queries' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "name" : "HOST_COMPATIBLE_WITH_CLUSTER_USING_PNICS",
  "arguments" : {
    "storageType" : "VSAN",
    "clusterId" : ""
  },
  "description" : "fetch all the hosts compatible with a cluster"
}'

HTTP Request

POST /v1/hosts/queries HTTP/1.1
Content-Type: application/json
Content-Length: 196
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "name" : "HOST_COMPATIBLE_WITH_CLUSTER_USING_PNICS",
  "arguments" : {
    "storageType" : "VSAN",
    "clusterId" : ""
  },
  "description" : "fetch all the hosts compatible with a cluster"
}

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/hosts/queries/76758279-14e1-43af-be09-04e203794def
Content-Type: application/json
Content-Length: 127

{
  "queryInfo" : {
    "status" : "IN_PROGRESS",
    "completed" : false,
    "processing" : true,
    "failure" : false
  }
}
  1. Read the tracking URL returned as Location header in the previous step.

  1. Poll the tracking URL until the "status" is not "IN_PROGRESS".

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/hosts/queries/23dbc8bc-4981-4006-bf2d-5f0c9467ab79' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/hosts/queries/23dbc8bc-4981-4006-bf2d-5f0c9467ab79 HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 3363

{
  "queryInfo" : {
    "status" : "COMPLETED",
    "completed" : true,
    "processing" : false,
    "failure" : false
  },
  "result" : {
    "elements" : [ {
      "id" : "44806db8-4401-4d74-be0a-f9067d048314",
      "esxiVersion" : "6.7.0-14320388",
      "fqdn" : "sfo01-m01-esx01.rainpole.io",
      "hardwareVendor" : "VMware, Inc.",
      "hardwareModel" : "VMware Virtual Platform",
      "ipAddresses" : [ {
        "ipAddress" : "10.0.0.100",
        "type" : "MANAGEMENT"
      }, {
        "ipAddress" : "10.0.4.3",
        "type" : "VSAN"
      }, {
        "ipAddress" : "10.0.8.3",
        "type" : "VMOTION"
      } ],
      "cpu" : {
        "frequencyMHz" : 19155.640625,
        "usedFrequencyMHz" : 767.0,
        "cores" : 8,
        "cpuCores" : [ {
          "frequencyMHz" : 2394.455078125,
          "model" : "intel",
          "manufacturer" : "Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz"
        }, {
          "frequencyMHz" : 2394.455078125,
          "model" : "intel",
          "manufacturer" : "Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz"
        }, {
          "frequencyMHz" : 2394.455078125,
          "model" : "intel",
          "manufacturer" : "Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz"
        }, {
          "frequencyMHz" : 2394.455078125,
          "model" : "intel",
          "manufacturer" : "Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz"
        }, {
          "frequencyMHz" : 2394.455078125,
          "model" : "intel",
          "manufacturer" : "Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz"
        }, {
          "frequencyMHz" : 2394.455078125,
          "model" : "intel",
          "manufacturer" : "Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz"
        }, {
          "frequencyMHz" : 2394.455078125,
          "model" : "intel",
          "manufacturer" : "Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz"
        }, {
          "frequencyMHz" : 2394.455078125,
          "model" : "intel",
          "manufacturer" : "Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz"
        } ]
      },
      "memory" : {
        "totalCapacityMB" : 63999.42578125,
        "usedCapacityMB" : 29454.0
      },
      "storage" : {
        "totalCapacityMB" : 1757712.0,
        "usedCapacityMB" : 587753.125,
        "disks" : [ {
          "capacityMB" : 146484.375,
          "diskType" : "HDD"
        }, {
          "capacityMB" : 146484.375,
          "diskType" : "HDD"
        }, {
          "capacityMB" : 146484.375,
          "diskType" : "FLASH"
        }, {
          "capacityMB" : 146484.375,
          "diskType" : "HDD"
        } ]
      },
      "physicalNics" : [ {
        "deviceName" : "vmnic0",
        "macAddress" : "02:00:ed:4e:e1:e2"
      }, {
        "deviceName" : "vmnic1",
        "macAddress" : "02:00:ed:f3:29:03"
      }, {
        "deviceName" : "vmnic2",
        "macAddress" : "02:00:ed:f0:44:b6"
      }, {
        "deviceName" : "vmnic3",
        "macAddress" : "02:00:ed:f0:91:45"
      } ],
      "domain" : {
        "id" : "7572b048-51b3-44c6-bf62-356b3baef8f9"
      },
      "networkpool" : {
        "id" : "bea95488-1fbb-4fe7-8bf7-e431c4afdd68",
        "name" : "bringup-networkpool"
      },
      "cluster" : {
        "id" : "a481407c-7e00-4489-afb1-c89f21dc8c84"
      },
      "status" : "ASSIGNED",
      "bundleRepoDatastore" : "lcm-bundle-repo",
      "hybrid" : false
    } ]
  }
}

2.7.5. Decommission the Hosts

Prerequisites
  1. The following data is required

    • FQDN of each host

  2. The host must not be assigned to a domain i.e "status" must be "UNASSIGNED_USEABLE".

Tip
Refer to: Get the Hosts to fetch the hosts with the required "status"
Steps
  1. Invoke the API

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/hosts' -i -X DELETE \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '[ {
  "fqdn" : "sfo01-m01-esx01.rainpole.io"
}, {
  "fqdn" : "sfo01-m01-esx02.rainpole.io"
} ]'

HTTP Request

DELETE /v1/hosts HTTP/1.1
Content-Type: application/json
Content-Length: 94
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

[ {
  "fqdn" : "sfo01-m01-esx01.rainpole.io"
}, {
  "fqdn" : "sfo01-m01-esx02.rainpole.io"
} ]

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/tasks/0d5776e4-e381-4ffa-8f46-6ccd12d79a91
Content-Type: application/json
Content-Length: 248

{
  "id" : "0d5776e4-e381-4ffa-8f46-6ccd12d79a91",
  "name" : "Decommission Hosts - [esx-1.vrack.vsphere.local, esx-2.vrack.vsphere.local] to VMware Cloud Foundation",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2022-02-08T08:11:27.133Z"
}
  1. Poll the task until "status" is not "IN_PROGRESS" using the "id" from the previous response.

Tip
Refer to: Get a Task.
  • If the "status" is "SUCCESSFUL", the task is completed successfully.

  • If the "status" is "FAILED", the task can be re-executed.

Tip
Refer to: Retry a Task.

2.8. License Keys

2.8.1. Add a License Key

  • This API is used to add a license key.

  • Adding a license key which is already added , will give an error.

Tip
Refer to: Get a License Key to check if a license key is already present.
  • Adding an incorrect (key size and format) or an invalid license key (invalid or expired), will give an error.

Prerequisites
  1. The following data is required

    • License key

    • Product type

    • License key description

Steps
  1. Invoke the API

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/license-keys' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "key" : "XX0XX-XX0XX-XX0XX-XX0XX-XX0XX",
  "productType" : "NSXT",
  "description" : "NSXT license key"
}'

HTTP Request

POST /v1/license-keys HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 109
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "key" : "XX0XX-XX0XX-XX0XX-XX0XX-XX0XX",
  "productType" : "NSXT",
  "description" : "NSXT license key"
}

HTTP Response

HTTP/1.1 201 Created
Location: /v1/license-keys/XX0XX-XX0XX-XX0XX-XX0XX-XX0XX

2.8.2. Get the License Keys

  • This API is used to get all the license keys.

  • This also gives the license key metrics like usage and validity of a license key.

  • License keys can be filtered based on product type and/or license key status.

Prerequisites

None

Get All License Keys

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/license-keys' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/license-keys HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 912

{
  "elements" : [ {
    "id" : "855817b5-ea6c-4a9e-988f-87fd534c3c5e",
    "key" : "XX0XX-XX0XX-XX0XX-XX0XX-XX0XX",
    "productType" : "VCENTER",
    "description" : "vCenter license key",
    "isUnlimited" : false,
    "licenseKeyUsage" : {
      "total" : 5,
      "remaining" : 4,
      "used" : 1,
      "licenseUnit" : "INSTANCE"
    },
    "licenseKeyValidity" : {
      "licenseKeyStatus" : "ACTIVE",
      "expiryDate" : "2029-05-23T16:12:53.001Z"
    }
  }, {
    "id" : "ec0dbeeb-0dc7-4617-b14b-9040a996586a",
    "key" : "XX0XX-XX0XX-XX0XX-XX0XX-XX0XX",
    "productType" : "NSXT",
    "description" : "NSX-T license key",
    "isUnlimited" : false,
    "licenseKeyUsage" : {
      "total" : 15,
      "remaining" : 14,
      "used" : 1,
      "licenseUnit" : "VM"
    },
    "licenseKeyValidity" : {
      "licenseKeyStatus" : "ACTIVE",
      "expiryDate" : "2029-05-23T16:12:53.001Z"
    }
  } ]
}

Get License Keys By Product Type

Steps
  1. Invoke the API by specifying the _"productType".

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/license-keys?productType=VCENTER,ESXI' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/license-keys?productType=VCENTER,ESXI HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 471

{
  "elements" : [ {
    "id" : "17940cf0-1c67-41ef-8801-e29a47c89ef5",
    "key" : "XX0XX-XX0XX-XX0XX-XX0XX-XX0XX",
    "productType" : "VCENTER",
    "description" : "vCenter license key",
    "isUnlimited" : false,
    "licenseKeyUsage" : {
      "total" : 5,
      "remaining" : 4,
      "used" : 1,
      "licenseUnit" : "INSTANCE"
    },
    "licenseKeyValidity" : {
      "licenseKeyStatus" : "ACTIVE",
      "expiryDate" : "2029-05-23T16:12:53.001Z"
    }
  } ]
}

Get License Keys By Status Of The License Key

Steps
  1. Invoke the API by specifying the _"licenseKeyStatus".

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/license-keys?licenseKeyStatus=ACTIVE,NEVER_EXPIRES' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/license-keys?licenseKeyStatus=ACTIVE,NEVER_EXPIRES HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 471

{
  "elements" : [ {
    "id" : "cb6bf6e4-87ea-4b38-86da-acf4433a81ad",
    "key" : "XX0XX-XX0XX-XX0XX-XX0XX-XX0XX",
    "productType" : "VCENTER",
    "description" : "vCenter license key",
    "isUnlimited" : false,
    "licenseKeyUsage" : {
      "total" : 5,
      "remaining" : 4,
      "used" : 1,
      "licenseUnit" : "INSTANCE"
    },
    "licenseKeyValidity" : {
      "licenseKeyStatus" : "ACTIVE",
      "expiryDate" : "2029-05-23T16:12:53.001Z"
    }
  } ]
}

2.8.3. Get a License Key

  • This API is used to get the license key metrics like usage and validity of a license key.

  • If the license key does not exist, you will get an error.

Prerequisites
  1. The following data is required

    • License key

Steps
  1. Invoke the API

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/license-keys/XX0XX-XX0XX-XX0XX-XX0XX-XX0XX' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/license-keys/XX0XX-XX0XX-XX0XX-XX0XX-XX0XX HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 416

{
  "id" : "b7e85ae5-65ec-4f69-bdd3-6c2a8aa620b0",
  "key" : "XX0XX-XX0XX-XX0XX-XX0XX-XX0XX",
  "productType" : "VCENTER",
  "description" : "vCenter license key",
  "isUnlimited" : false,
  "licenseKeyUsage" : {
    "total" : 5,
    "remaining" : 4,
    "used" : 1,
    "licenseUnit" : "INSTANCE"
  },
  "licenseKeyValidity" : {
    "licenseKeyStatus" : "ACTIVE",
    "expiryDate" : "2029-05-23T16:12:53.001Z"
  }
}

2.8.4. Delete a License Key

  • This API is used to delete a license key.

Warning
Deleting a license key which is in use, will give an error.
Prerequisites
  1. The following data is required

    • License key

Steps
  1. Invoke the API

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/license-keys/XX0XX-XX0XX-XX0XX-XX0XX-XX0XX' -i -X DELETE \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

DELETE /v1/license-keys/XX0XX-XX0XX-XX0XX-XX0XX-XX0XX HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 204 No Content

2.9. Domains

A workload domain is a policy based resource container with specific availability and performance attributes that combines compute (vSphere), storage (vSAN/NFS/VMFS on FC/VVOL) and networking (NSX) into a single consumable entity.

2.9.1. Create a Domain

The Create a Domain workflow automatically:

  • Deploys an additional vCenter Server Appliance for the new domain within the management domain.

  • By leveraging a separate vCenter Server instance per domain, software updates can be applied without impacting other domains. It also allows for each domain to have additional isolation as needed.

  • Connects the specified ESXi servers to this vCenter Server instance and groups them into a cluster. Each host is configured with the port groups applicable for the domain.

  • Configures networking on each ESXi host.

  • If vSAN or NFS storage is provided, they are configured on the ESXi hosts. If VMFS on FC storage provided, it’s consumed.

  • For the first domain in your environment, the workflow deploys a cluster of three NSX-T Managers in the management domain. The workflow also configures an anti-affinity rule between the managers to prevent them from being on the same host for High Availability. Each subsequent NSX-T domains will share this NSX-T Manager Cluster or create its own.

  • From NSX-T version 3.0 onwards NSX-T manager uses vSphere Distributed Switch(VDS) created by vCenter to configure transport nodes and handle overlay traffic.

  • In case of single vSphere Distributed Switch domain, the same vSphere Distributed Switch will be used for configuring overlay traffic.

  • For a domain which creates multiple vSphere Distributed Switches, the boolean isUsedByNsxt in the VdsSpec should be set to true to identify the vSphere Distributed Switch which should be used by NSX-T for configuring overlay traffic.
    Refer to: VdsSpec.

  • In case of multiple vSphere Distributed Switches, at least one vSphere Distributed Switch has to be marked for use by NSX-T.

  • NSX Edges are needed to enable overlay VI networks and public networks for north-south traffic. Note that edges need to be deployed separately.

  • Clusters part of the domain can be configured to use IP address pools to assign IP addresses for the TEP interfaces of the hosts by specifying IpAddressPoolSpec inside the NsxTClusterSpec. If the IpAddressPoolSpec is not specified in the input spec, IP addresses for the TEP interfaces of the host are assigned from DHCP.

The result is a workload-ready SDDC environment.

Prerequisites
  1. The following data is required

    • Name of the domain

    • vCenter details

      • Name of the vCenter

      • Network details

        • IP Address of the vCenter

        • FQDN of the vCenter

        • Gateway

        • Subnet mask

      • Password for the root user (8-20 characters)

      • Name of the datacenter where vCenter needs to be deployed

    • List of clusters

      • For each cluster

        • Name of the cluster

        • List of hosts

          • For each host

            • ID of the host (UUID)

            • License key for the host

            • List of VDS names to associate with host

            • ID of the vmNic host to be associated with VDS, once added to cluster

        • Datastore details

          Note
          Only one of "vsanDatastoreSpec" (For VSAN), "nfsDatastoreSpec" (For NFS), "vmfsDatastoreSpec" (For VMFS on FC) or "vvolDatastoreSpec" (For VVOL) must be specified.
          • For VSAN

            • Number of host failures to tolerate (can be 0, 1, or 2)

            • License key for the vSAN datastore

              {
                "vsanDatastoreSpec" : {
                  "failuresToTolerate" : 1,
                  "licenseKey" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
                  "datastoreName" : "sfo-w01-cl01-ds-vsan01"
                }
              }
          • For NFS

            • List of NFS server names

            • Shared directory path

            • User tag used to annotate NFS share

            • Boolean to identify if the mount directory should be read-only

              {
                "nfsDatastoreSpecs" : [ {
                  "nasVolume" : {
                    "serverName" : [ "10.0.0.250" ],
                    "path" : "/nfs_mount/my_read_write_folder",
                    "readOnly" : false
                  },
                  "datastoreName" : "sfo-w01-cl01-ds-nfs01"
                } ]
              }
          • For VMFS on FC

            • Ensure that the ESXi hosts have the given VMFS on FC datastore name configured.

            {
              "vmfsDatastoreSpec" : {
                "fcSpec" : [ {
                  "datastoreName" : "sfo-w01-cl01-ds-fc01"
                } ]
              }
            }
          • For VVOL

            • Ensure that Vasa provider is pre-configured

            • Vasa provider guid

            • Vasa container guid

            • Protocol type for vVol container

            • Vasa user guid

        {
          "vvolDatastoreSpecs" : [ {
            "name" : "sfo-w01-cl01-ds-vvol01",
            "vasaProviderSpec" : {
              "vasaProviderId" : "42de6c36-e85e-483b-89c1-4aee5e8deebe",
              "storageContainerId" : "908ce3e4-4e8d-414b-84e7-847ba9883521",
              "storageProtocolType" : "ISCSI",
              "userId" : "d0ed4dd6-1375-4b12-af8c-96c18c46d319"
            }
          } ]
        }
        • Network Details

          • List of VDS details

            • For each VDS
              Port group names and the corresponding transport type. Note that EDGE_INFRA_OVERLAY_UPLINK should not be specified in the input spec.
              DVS host Infrastructure traffic resource type
              Maximum allowed usage for a traffic class
              Amount of bandwidth to be reserved for the host infrastructure traffic class

          • NSX cluster Details For NSX-T

            • VLAN ID of Geneve

            • IP address pool spec if the TEP IP assignment is done from the IP pool
              For DHCP

              {
                "nsxTClusterSpec" : {
                  "geneveVlanId" : 2
                }
              }

              For creating a new IP pool during the domain creation

              {
                "nsxTClusterSpec" : {
                  "geneveVlanId" : 2,
                  "ipAddressPoolSpec" : {
                    "name" : "static-ip-pool-01",
                    "subnets" : [ {
                      "ipAddressPoolRanges" : [ {
                        "start" : "10.0.11.50",
                        "end" : "10.0.11.70"
                      }, {
                        "start" : "10.0.11.80",
                        "end" : "10.0.11.150"
                      } ],
                      "cidr" : "10.0.11.0/24",
                      "gateway" : "10.0.11.250"
                    } ]
                  }
                }
              }

              For using an existing IP pool during the domain creation

              {
                "nsxTClusterSpec" : {
                  "geneveVlanId" : 2,
                  "ipAddressPoolSpec" : {
                    "name" : "static-ip-pool-01"
                  }
                }
              }
              Note
              To create a new IP address pool during domain creation, "subnets", the list of IpAddressPoolSubnetSpec in the input spec must not be empty. Only the IP address pool name has to be sent in the input spec while using an existing IP address pool.
    • NSX details

      • For NSX-T

        • NSX Manager virtual machine details

          • Name of the NSX Manager virtual machine

          • Network details

            • IP Address of the virtual machine

            • Fully-qualified domain name

            • Gateway

            • Subnet mask

        • FormFactor of the NSX-T manager. Supported values are "small", "medium" and "large"

          Note
          NSX-T manager of "large" form factor will be deployed if nothing is explicitly specified in the payload.
        • Virtual IP address which would act as proxy/alias for NSX-T managers

        • Fully-qualified domain name for VIP so that common SSL certificates can be installed across all managers

        • License key for NSX-T

        • NSX-T manager admin Password (basic authorization and SSH)

    {
      "nsxManagerSpecs" : [ {
        "name" : "sfo-w01-nsx01a",
        "networkDetailsSpec" : {
          "ipAddress" : "10.0.0.44",
          "dnsName" : "sfo-w01-nsx01a.sfo.rainpole.io",
          "gateway" : "10.0.0.250",
          "subnetMask" : "255.255.255.0"
        }
      }, {
        "name" : "sfo-w01-nsx01b",
        "networkDetailsSpec" : {
          "ipAddress" : "10.0.0.45",
          "dnsName" : "sfo-w01-nsx01b.sfo.rainpole.io",
          "gateway" : "10.0.0.250",
          "subnetMask" : "255.255.255.0"
        }
      }, {
        "name" : "sfo-w01-nsx01c",
        "networkDetailsSpec" : {
          "ipAddress" : "10.0.0.46",
          "dnsName" : "sfo-w01-nsx01c.sfo.rainpole.io",
          "gateway" : "10.0.0.250",
          "subnetMask" : "255.255.255.0"
        }
      } ],
      "vip" : "10.0.0.166",
      "vipFqdn" : "sfo-w01-nsx01.sfo.rainpole.io",
      "licenseKey" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
      "nsxManagerAdminPassword" : "VMware123!",
      "formFactor" : "large"
    }
  1. Network pool should be configured.

Tip
Refer to Create a Network Pool
  1. Hosts should be commissioned.

Tip
Refer to Commission the Hosts
  1. A DHCP server must be configured on the Geneve VLAN of the respective domains. When NSX-T creates VTEPs for the hosts in the domain, they are assigned IP addresses from the DHCP server. Ensure that host configuration has a minimum of two active vmNics.
    There must be a free uplink on each host to be used for the domain.

  2. Evaluate if you need to have pNICs on multiple vSphere Distributed Switches if it is NSX-T domain. At least two pNICs are needed on a single switch. Below is a spec sample:

    {
      "vmNics" : [ {
        "id" : "vmnic0",
        "vdsName" : "sfo-w01-cl01-vds01"
      }, {
        "id" : "vmnic1",
        "vdsName" : "sfo-w01-cl01-vds01"
      }, {
        "id" : "vmnic2",
        "vdsName" : "sfo-w01-cl01-vds02"
      }, {
        "id" : "vmnic3",
        "vdsName" : "sfo-w01-cl01-vds02"
      } ]
    }
Steps
  1. Validate the input specification.

Note
The below example is for creating a domain using vSAN storage (i.e "vsanDatastoreSpec") and NSX-T (i.e "nsxTSpec" and "nsxTClusterSpec")

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/domains/validations' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "domainName" : "sfo-w01",
  "vcenterSpec" : {
    "name" : "sfo-w01-vc01",
    "networkDetailsSpec" : {
      "ipAddress" : "10.0.0.43",
      "dnsName" : "sfo-w01-vc01.sfo.rainpole.io",
      "gateway" : "10.0.0.250",
      "subnetMask" : "255.255.255.0"
    },
    "rootPassword" : "VMware123!",
    "datacenterName" : "sfo-w01-dc01",
    "vmSize" : "tiny",
    "storageSize" : "lstorage"
  },
  "computeSpec" : {
    "clusterSpecs" : [ {
      "name" : "sfo-w01-cl01",
      "hostSpecs" : [ {
        "id" : "8807aa56-9fe3-471b-b9e4-a94625faa385",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "sfo-w01-cl01-vds01"
          }, {
            "id" : "vmnic1",
            "vdsName" : "sfo-w01-cl01-vds01"
          }, {
            "id" : "vmnic2",
            "vdsName" : "sfo-w01-cl01-vds02"
          }, {
            "id" : "vmnic3",
            "vdsName" : "sfo-w01-cl01-vds02"
          } ]
        }
      }, {
        "id" : "60d60875-63f1-496f-a657-5f52519599ab",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "sfo-w01-cl01-vds01"
          }, {
            "id" : "vmnic1",
            "vdsName" : "sfo-w01-cl01-vds01"
          }, {
            "id" : "vmnic2",
            "vdsName" : "sfo-w01-cl01-vds02"
          }, {
            "id" : "vmnic3",
            "vdsName" : "sfo-w01-cl01-vds02"
          } ]
        }
      }, {
        "id" : "fe45ae91-4aea-4a15-b00a-89f369007024",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "sfo-w01-cl01-vds01"
          }, {
            "id" : "vmnic1",
            "vdsName" : "sfo-w01-cl01-vds01"
          }, {
            "id" : "vmnic2",
            "vdsName" : "sfo-w01-cl01-vds02"
          }, {
            "id" : "vmnic3",
            "vdsName" : "sfo-w01-cl01-vds02"
          } ]
        }
      } ],
      "datastoreSpec" : {
        "vsanDatastoreSpec" : {
          "failuresToTolerate" : 1,
          "licenseKey" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
          "datastoreName" : "sfo-w01-cl01-ds-vsan01"
        }
      },
      "networkSpec" : {
        "vdsSpecs" : [ {
          "name" : "sfo-w01-cl01-vds01",
          "portGroupSpecs" : [ {
            "name" : "sfo-w01-cl01-vds01-pg-mgmt",
            "transportType" : "MANAGEMENT"
          }, {
            "name" : "sfo-w01-cl01-vds01-pg-vsan",
            "transportType" : "VSAN"
          }, {
            "name" : "sfo-w01-cl01-vds01-pg-vmotion",
            "transportType" : "VMOTION"
          } ]
        }, {
          "name" : "sfo-w01-cl01-vds02",
          "isUsedByNsxt" : true
        } ],
        "nsxClusterSpec" : {
          "nsxTClusterSpec" : {
            "geneveVlanId" : 2
          }
        }
      }
    } ]
  },
  "nsxTSpec" : {
    "nsxManagerSpecs" : [ {
      "name" : "sfo-w01-nsx01a",
      "networkDetailsSpec" : {
        "ipAddress" : "10.0.0.44",
        "dnsName" : "sfo-w01-nsx01a.sfo.rainpole.io",
        "gateway" : "10.0.0.250",
        "subnetMask" : "255.255.255.0"
      }
    }, {
      "name" : "sfo-w01-nsx01b",
      "networkDetailsSpec" : {
        "ipAddress" : "10.0.0.45",
        "dnsName" : "sfo-w01-nsx01b.sfo.rainpole.io",
        "gateway" : "10.0.0.250",
        "subnetMask" : "255.255.255.0"
      }
    }, {
      "name" : "sfo-w01-nsx01c",
      "networkDetailsSpec" : {
        "ipAddress" : "10.0.0.46",
        "dnsName" : "sfo-w01-nsx01c.sfo.rainpole.io",
        "gateway" : "10.0.0.250",
        "subnetMask" : "255.255.255.0"
      }
    } ],
    "vip" : "10.0.0.166",
    "vipFqdn" : "sfo-w01-nsx01.sfo.rainpole.io",
    "licenseKey" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "nsxManagerAdminPassword" : "VMware123!",
    "formFactor" : "large"
  }
}'

HTTP Request

POST /v1/domains/validations HTTP/1.1
Content-Type: application/json
Content-Length: 3925
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "domainName" : "sfo-w01",
  "vcenterSpec" : {
    "name" : "sfo-w01-vc01",
    "networkDetailsSpec" : {
      "ipAddress" : "10.0.0.43",
      "dnsName" : "sfo-w01-vc01.sfo.rainpole.io",
      "gateway" : "10.0.0.250",
      "subnetMask" : "255.255.255.0"
    },
    "rootPassword" : "VMware123!",
    "datacenterName" : "sfo-w01-dc01",
    "vmSize" : "tiny",
    "storageSize" : "lstorage"
  },
  "computeSpec" : {
    "clusterSpecs" : [ {
      "name" : "sfo-w01-cl01",
      "hostSpecs" : [ {
        "id" : "8807aa56-9fe3-471b-b9e4-a94625faa385",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "sfo-w01-cl01-vds01"
          }, {
            "id" : "vmnic1",
            "vdsName" : "sfo-w01-cl01-vds01"
          }, {
            "id" : "vmnic2",
            "vdsName" : "sfo-w01-cl01-vds02"
          }, {
            "id" : "vmnic3",
            "vdsName" : "sfo-w01-cl01-vds02"
          } ]
        }
      }, {
        "id" : "60d60875-63f1-496f-a657-5f52519599ab",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "sfo-w01-cl01-vds01"
          }, {
            "id" : "vmnic1",
            "vdsName" : "sfo-w01-cl01-vds01"
          }, {
            "id" : "vmnic2",
            "vdsName" : "sfo-w01-cl01-vds02"
          }, {
            "id" : "vmnic3",
            "vdsName" : "sfo-w01-cl01-vds02"
          } ]
        }
      }, {
        "id" : "fe45ae91-4aea-4a15-b00a-89f369007024",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "sfo-w01-cl01-vds01"
          }, {
            "id" : "vmnic1",
            "vdsName" : "sfo-w01-cl01-vds01"
          }, {
            "id" : "vmnic2",
            "vdsName" : "sfo-w01-cl01-vds02"
          }, {
            "id" : "vmnic3",
            "vdsName" : "sfo-w01-cl01-vds02"
          } ]
        }
      } ],
      "datastoreSpec" : {
        "vsanDatastoreSpec" : {
          "failuresToTolerate" : 1,
          "licenseKey" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
          "datastoreName" : "sfo-w01-cl01-ds-vsan01"
        }
      },
      "networkSpec" : {
        "vdsSpecs" : [ {
          "name" : "sfo-w01-cl01-vds01",
          "portGroupSpecs" : [ {
            "name" : "sfo-w01-cl01-vds01-pg-mgmt",
            "transportType" : "MANAGEMENT"
          }, {
            "name" : "sfo-w01-cl01-vds01-pg-vsan",
            "transportType" : "VSAN"
          }, {
            "name" : "sfo-w01-cl01-vds01-pg-vmotion",
            "transportType" : "VMOTION"
          } ]
        }, {
          "name" : "sfo-w01-cl01-vds02",
          "isUsedByNsxt" : true
        } ],
        "nsxClusterSpec" : {
          "nsxTClusterSpec" : {
            "geneveVlanId" : 2
          }
        }
      }
    } ]
  },
  "nsxTSpec" : {
    "nsxManagerSpecs" : [ {
      "name" : "sfo-w01-nsx01a",
      "networkDetailsSpec" : {
        "ipAddress" : "10.0.0.44",
        "dnsName" : "sfo-w01-nsx01a.sfo.rainpole.io",
        "gateway" : "10.0.0.250",
        "subnetMask" : "255.255.255.0"
      }
    }, {
      "name" : "sfo-w01-nsx01b",
      "networkDetailsSpec" : {
        "ipAddress" : "10.0.0.45",
        "dnsName" : "sfo-w01-nsx01b.sfo.rainpole.io",
        "gateway" : "10.0.0.250",
        "subnetMask" : "255.255.255.0"
      }
    }, {
      "name" : "sfo-w01-nsx01c",
      "networkDetailsSpec" : {
        "ipAddress" : "10.0.0.46",
        "dnsName" : "sfo-w01-nsx01c.sfo.rainpole.io",
        "gateway" : "10.0.0.250",
        "subnetMask" : "255.255.255.0"
      }
    } ],
    "vip" : "10.0.0.166",
    "vipFqdn" : "sfo-w01-nsx01.sfo.rainpole.io",
    "licenseKey" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "nsxManagerAdminPassword" : "VMware123!",
    "formFactor" : "large"
  }
}

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 290

{
  "id" : "50817936-882f-48db-8904-0013186a66d9",
  "description" : "Validating Domain Creation Spec",
  "executionStatus" : "COMPLETED",
  "resultStatus" : "SUCCEEDED",
  "validationChecks" : [ {
    "description" : "DomainCreationSpecValidation",
    "resultStatus" : "SUCCEEDED"
  } ]
}
  1. In case of no errors in the input specification, the "executionStatus" is "COMPLETED" and "resultStatus" is "SUCCEEDED".

  2. In case of errors in the input specification, the "executionStatus" is "COMPLETED" and "resultStatus" is "FAILED".

    Note
    Make changes to the input specification and re-validate using a new API invocation.
  1. Trigger the task using the valid input specification.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/domains' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "domainName" : "sfo-w01",
  "vcenterSpec" : {
    "name" : "sfo-w01-vc01",
    "networkDetailsSpec" : {
      "ipAddress" : "10.0.0.43",
      "dnsName" : "sfo-w01-vc01.sfo.rainpole.io",
      "gateway" : "10.0.0.250",
      "subnetMask" : "255.255.255.0"
    },
    "rootPassword" : "VMware123!",
    "datacenterName" : "sfo-w01-dc01",
    "vmSize" : "tiny",
    "storageSize" : "lstorage"
  },
  "computeSpec" : {
    "clusterSpecs" : [ {
      "name" : "sfo-w01-cl01",
      "hostSpecs" : [ {
        "id" : "05af5007-5722-4eeb-9d59-70dd4206de24",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "sfo-w01-cl01-vds01"
          }, {
            "id" : "vmnic1",
            "vdsName" : "sfo-w01-cl01-vds01"
          }, {
            "id" : "vmnic2",
            "vdsName" : "sfo-w01-cl01-vds02"
          }, {
            "id" : "vmnic3",
            "vdsName" : "sfo-w01-cl01-vds02"
          } ]
        }
      }, {
        "id" : "a6290f19-ebb8-4718-8fee-d14844f11041",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "sfo-w01-cl01-vds01"
          }, {
            "id" : "vmnic1",
            "vdsName" : "sfo-w01-cl01-vds01"
          }, {
            "id" : "vmnic2",
            "vdsName" : "sfo-w01-cl01-vds02"
          }, {
            "id" : "vmnic3",
            "vdsName" : "sfo-w01-cl01-vds02"
          } ]
        }
      }, {
        "id" : "2f0b9e3d-fb5d-4e64-97c0-7f7c64bc6af7",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "sfo-w01-cl01-vds01"
          }, {
            "id" : "vmnic1",
            "vdsName" : "sfo-w01-cl01-vds01"
          }, {
            "id" : "vmnic2",
            "vdsName" : "sfo-w01-cl01-vds02"
          }, {
            "id" : "vmnic3",
            "vdsName" : "sfo-w01-cl01-vds02"
          } ]
        }
      } ],
      "datastoreSpec" : {
        "vsanDatastoreSpec" : {
          "failuresToTolerate" : 1,
          "licenseKey" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
          "datastoreName" : "sfo-w01-cl01-ds-vsan01"
        }
      },
      "networkSpec" : {
        "vdsSpecs" : [ {
          "name" : "sfo-w01-cl01-vds01",
          "portGroupSpecs" : [ {
            "name" : "sfo-w01-cl01-vds01-pg-mgmt",
            "transportType" : "MANAGEMENT"
          }, {
            "name" : "sfo-w01-cl01-vds01-pg-vsan",
            "transportType" : "VSAN"
          }, {
            "name" : "sfo-w01-cl01-vds01-pg-vmotion",
            "transportType" : "VMOTION"
          } ]
        }, {
          "name" : "sfo-w01-cl01-vds02",
          "isUsedByNsxt" : true
        } ],
        "nsxClusterSpec" : {
          "nsxTClusterSpec" : {
            "geneveVlanId" : 2
          }
        }
      }
    } ]
  },
  "nsxTSpec" : {
    "nsxManagerSpecs" : [ {
      "name" : "sfo-w01-nsx01a",
      "networkDetailsSpec" : {
        "ipAddress" : "10.0.0.44",
        "dnsName" : "sfo-w01-nsx01a.sfo.rainpole.io",
        "gateway" : "10.0.0.250",
        "subnetMask" : "255.255.255.0"
      }
    }, {
      "name" : "sfo-w01-nsx01b",
      "networkDetailsSpec" : {
        "ipAddress" : "10.0.0.45",
        "dnsName" : "sfo-w01-nsx01b.sfo.rainpole.io",
        "gateway" : "10.0.0.250",
        "subnetMask" : "255.255.255.0"
      }
    }, {
      "name" : "sfo-w01-nsx01c",
      "networkDetailsSpec" : {
        "ipAddress" : "10.0.0.46",
        "dnsName" : "sfo-w01-nsx01c.sfo.rainpole.io",
        "gateway" : "10.0.0.250",
        "subnetMask" : "255.255.255.0"
      }
    } ],
    "vip" : "10.0.0.166",
    "vipFqdn" : "sfo-w01-nsx01.sfo.rainpole.io",
    "licenseKey" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "nsxManagerAdminPassword" : "VMware123!",
    "formFactor" : "large"
  }
}'

HTTP Request

POST /v1/domains HTTP/1.1
Content-Type: application/json
Content-Length: 3925
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "domainName" : "sfo-w01",
  "vcenterSpec" : {
    "name" : "sfo-w01-vc01",
    "networkDetailsSpec" : {
      "ipAddress" : "10.0.0.43",
      "dnsName" : "sfo-w01-vc01.sfo.rainpole.io",
      "gateway" : "10.0.0.250",
      "subnetMask" : "255.255.255.0"
    },
    "rootPassword" : "VMware123!",
    "datacenterName" : "sfo-w01-dc01",
    "vmSize" : "tiny",
    "storageSize" : "lstorage"
  },
  "computeSpec" : {
    "clusterSpecs" : [ {
      "name" : "sfo-w01-cl01",
      "hostSpecs" : [ {
        "id" : "05af5007-5722-4eeb-9d59-70dd4206de24",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "sfo-w01-cl01-vds01"
          }, {
            "id" : "vmnic1",
            "vdsName" : "sfo-w01-cl01-vds01"
          }, {
            "id" : "vmnic2",
            "vdsName" : "sfo-w01-cl01-vds02"
          }, {
            "id" : "vmnic3",
            "vdsName" : "sfo-w01-cl01-vds02"
          } ]
        }
      }, {
        "id" : "a6290f19-ebb8-4718-8fee-d14844f11041",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "sfo-w01-cl01-vds01"
          }, {
            "id" : "vmnic1",
            "vdsName" : "sfo-w01-cl01-vds01"
          }, {
            "id" : "vmnic2",
            "vdsName" : "sfo-w01-cl01-vds02"
          }, {
            "id" : "vmnic3",
            "vdsName" : "sfo-w01-cl01-vds02"
          } ]
        }
      }, {
        "id" : "2f0b9e3d-fb5d-4e64-97c0-7f7c64bc6af7",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "sfo-w01-cl01-vds01"
          }, {
            "id" : "vmnic1",
            "vdsName" : "sfo-w01-cl01-vds01"
          }, {
            "id" : "vmnic2",
            "vdsName" : "sfo-w01-cl01-vds02"
          }, {
            "id" : "vmnic3",
            "vdsName" : "sfo-w01-cl01-vds02"
          } ]
        }
      } ],
      "datastoreSpec" : {
        "vsanDatastoreSpec" : {
          "failuresToTolerate" : 1,
          "licenseKey" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
          "datastoreName" : "sfo-w01-cl01-ds-vsan01"
        }
      },
      "networkSpec" : {
        "vdsSpecs" : [ {
          "name" : "sfo-w01-cl01-vds01",
          "portGroupSpecs" : [ {
            "name" : "sfo-w01-cl01-vds01-pg-mgmt",
            "transportType" : "MANAGEMENT"
          }, {
            "name" : "sfo-w01-cl01-vds01-pg-vsan",
            "transportType" : "VSAN"
          }, {
            "name" : "sfo-w01-cl01-vds01-pg-vmotion",
            "transportType" : "VMOTION"
          } ]
        }, {
          "name" : "sfo-w01-cl01-vds02",
          "isUsedByNsxt" : true
        } ],
        "nsxClusterSpec" : {
          "nsxTClusterSpec" : {
            "geneveVlanId" : 2
          }
        }
      }
    } ]
  },
  "nsxTSpec" : {
    "nsxManagerSpecs" : [ {
      "name" : "sfo-w01-nsx01a",
      "networkDetailsSpec" : {
        "ipAddress" : "10.0.0.44",
        "dnsName" : "sfo-w01-nsx01a.sfo.rainpole.io",
        "gateway" : "10.0.0.250",
        "subnetMask" : "255.255.255.0"
      }
    }, {
      "name" : "sfo-w01-nsx01b",
      "networkDetailsSpec" : {
        "ipAddress" : "10.0.0.45",
        "dnsName" : "sfo-w01-nsx01b.sfo.rainpole.io",
        "gateway" : "10.0.0.250",
        "subnetMask" : "255.255.255.0"
      }
    }, {
      "name" : "sfo-w01-nsx01c",
      "networkDetailsSpec" : {
        "ipAddress" : "10.0.0.46",
        "dnsName" : "sfo-w01-nsx01c.sfo.rainpole.io",
        "gateway" : "10.0.0.250",
        "subnetMask" : "255.255.255.0"
      }
    } ],
    "vip" : "10.0.0.166",
    "vipFqdn" : "sfo-w01-nsx01.sfo.rainpole.io",
    "licenseKey" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "nsxManagerAdminPassword" : "VMware123!",
    "formFactor" : "large"
  }
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/c8d69df2-8394-4d93-b3af-1eed6a7ac581
Content-Length: 142

{
  "id" : "c8d69df2-8394-4d93-b3af-1eed6a7ac581",
  "name" : "",
  "status" : "UNKNOWN",
  "creationTimestamp" : "2022-02-08T08:13:41.253Z"
}
  1. Poll the task until "status" is not "IN_PROGRESS" with the ID from the previous response.

Tip
Refer to: Get a Task.
  • If the "status" is "SUCCESSFUL", the task is completed successfully.

  • If the "status" is "FAILED", the task can be re-executed.

Tip
Refer to: Retry a Task.

2.9.2. Get the Domains

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/domains' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/domains HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 2205

{
  "elements" : [ {
    "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c5",
    "name" : "sfo-w01",
    "status" : "ACTIVE",
    "vcenters" : [ {
      "id" : "c0703437-6756-470b-9e1c-f9d3bbc9b1c6",
      "fqdn" : "sfo-w01-vc01.sfo.rainpole.io"
    } ],
    "clusters" : [ {
      "id" : "8045e44e-974e-4f43-9862-7f0326782655"
    } ],
    "nsxtCluster" : {
      "id" : "e9a878ef-00b3-4ed3-9f35-de79eb874e9a",
      "vip" : "10.0.0.30"
    },
    "capacity" : {
      "cpu" : {
        "used" : {
          "value" : 21.445999393465698,
          "unit" : "GHz"
        },
        "total" : {
          "value" : 67.03999810397931,
          "unit" : "MHz"
        }
      },
      "memory" : {
        "used" : {
          "value" : 156.0361328125,
          "unit" : "GB"
        },
        "total" : {
          "value" : 312.484375,
          "unit" : "GB"
        }
      },
      "storage" : {
        "used" : {
          "value" : 562.3904687464237,
          "unit" : "MB"
        },
        "total" : {
          "value" : 858.1875,
          "unit" : "GB"
        }
      }
    }
  }, {
    "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c1",
    "name" : "sfo-w02",
    "vcenters" : [ {
      "id" : "c0703437-6846-470b-9e1c-f9d3bbc9b1c9",
      "fqdn" : "sfo-w02-vc01.sfo.rainpole.io"
    } ],
    "clusters" : [ {
      "id" : "8045e44e-974e-4f43-9862-7f0326782677"
    }, {
      "id" : "8045e44e-974e-4f43-9861-7f0326782633"
    } ],
    "nsxtCluster" : {
      "id" : "e9a878ef-00b3-4ed3-9f35-de79eb874e9a",
      "vip" : "10.0.0.30"
    },
    "capacity" : {
      "cpu" : {
        "used" : {
          "value" : 21.445999393465698,
          "unit" : "GHz"
        },
        "total" : {
          "value" : 67.03999810397931,
          "unit" : "GHz"
        }
      },
      "memory" : {
        "used" : {
          "value" : 156.0361328125,
          "unit" : "GB"
        },
        "total" : {
          "value" : 312.484375,
          "unit" : "GB"
        }
      },
      "storage" : {
        "used" : {
          "value" : 562.3904687464237,
          "unit" : "GB"
        },
        "total" : {
          "value" : 858.1875,
          "unit" : "GB"
        }
      }
    }
  } ]
}

2.9.3. Get a Domain

Prerequisites
  1. The following data is required

    • ID of the domain

Steps
  1. Invoke the API using the ID of the domain

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/domains/c0703437-6746-470b-9e1c-f9d3bbc9b1c5' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/domains/c0703437-6746-470b-9e1c-f9d3bbc9b1c5 HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 978

{
  "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c5",
  "name" : "sfo-w01",
  "status" : "ACTIVE",
  "vcenters" : [ {
    "id" : "c0703437-6756-470b-9e1c-f9d3bbc9b1c6",
    "fqdn" : "sfo-w01-vc01.sfo.rainpole.io"
  } ],
  "clusters" : [ {
    "id" : "8045e44e-974e-4f43-9862-7f0326782655"
  } ],
  "nsxtCluster" : {
    "id" : "e9a878ef-00b3-4ed3-9f35-de79eb874e9a",
    "vip" : "10.0.0.30"
  },
  "capacity" : {
    "cpu" : {
      "used" : {
        "value" : 21.445999393465698,
        "unit" : "GHz"
      },
      "total" : {
        "value" : 67.03999810397931,
        "unit" : "MHz"
      }
    },
    "memory" : {
      "used" : {
        "value" : 156.0361328125,
        "unit" : "GB"
      },
      "total" : {
        "value" : 312.484375,
        "unit" : "GB"
      }
    },
    "storage" : {
      "used" : {
        "value" : 562.3904687464237,
        "unit" : "MB"
      },
      "total" : {
        "value" : 858.1875,
        "unit" : "GB"
      }
    }
  }
}

2.9.4. Get Domain Endpoints

Prerequisites
  1. The following data is required

    • ID of the domain

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/domains/edf4a9d1-6799-456f-8538-409f7d76818b/endpoints' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/domains/edf4a9d1-6799-456f-8538-409f7d76818b/endpoints HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 190

{
  "elements" : [ {
    "type" : "VCENTER",
    "url" : "https://sfo-w01-vc01.sfo.rainpole.io"
  }, {
    "type" : "NSX_MANAGER",
    "url" : "https://sfo-w01-nsx01.sfo.rainpole.io"
  } ]
}

2.9.5. Rename a Domain

Prerequisites
  1. Domain must exist.

Steps
  1. Get the ID of the domain. Filter the response by the domain’s current name to get the corresponding ID.

  1. Create a domain update spec. Create a JSON with the "name" field containing the desired new name.

Note
When renaming a domain, the "name" field must be the only value in the update spec.
  1. Invoke the validate update domain spec API to ensure the requested new name is valid.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/domains/2d54bb6c-637a-49a4-a94c-622671d0ab32/validations' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "name" : "new_name"
}'

HTTP Request

POST /v1/domains/2d54bb6c-637a-49a4-a94c-622671d0ab32/validations HTTP/1.1
Content-Type: application/json
Content-Length: 25
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "name" : "new_name"
}

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 286

{
  "id" : "3889ac9a-d38d-4c9d-9d78-6fba607d3a6f",
  "description" : "Validating Domain Update Spec",
  "executionStatus" : "COMPLETED",
  "resultStatus" : "SUCCEEDED",
  "validationChecks" : [ {
    "description" : "DomainUpdateSpecValidation",
    "resultStatus" : "SUCCEEDED"
  } ]
}
Tip
If "resultStatus" is "FAILED", make changes to the input specification and re-validate using a new API invocation.
  1. Invoke the domain rename (update) task using the validated input spec and domain ID.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/domains/2d54bb6c-637a-49a4-a94c-622671d0ab32' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "name" : "new_name"
}'

HTTP Request

PATCH /v1/domains/2d54bb6c-637a-49a4-a94c-622671d0ab32 HTTP/1.1
Content-Type: application/json
Content-Length: 25
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "name" : "new_name"
}

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 29

{
  "status" : "SUCCESSFUL"
}

2.9.6. Delete a Domain

When you delete a domain, the clusters within the domain are deleted and the hosts are returned to the free pool.

Note
A domain cannot be deleted if the clusters of the domain have remote vSAN datastores configured. If so, unmount the remote vSAN datastores from vCenter and then retry domain deletion. Please refer to the 'VMware Cloud Foundation Operations and Administration Guide' for more details.
Warning
Deleting a domain is an irreversible operation. All clusters and VMs within the domain are deleted and the underlying datastores are destroyed.
Warning
Deleting a domain puts the host "status" to UNASSIGNED_UNUSEABLE. Cleanup the hosts to change the "status" to UNASSIGNED_USEABLE.
Note
The network pools used by the domain are not deleted as part of task and must be deleted separately.
Prerequisites
  1. The following data is required

    • ID of the domain that has to be deleted.

Tip
Back up the data on the domain.
Tip
Migrate the VMs that you want to retain, to another domain.
Steps
  1. Initialize the deletion.

Warning
It is not possible to delete a domain without having marked it for deletion. This 2-step deletion ensures that a domain is not deleted accidentally.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/domains/f74c2d97-621a-4984-9ab6-5d84effde82f' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "markForDeletion" : true
}'

HTTP Request

PATCH /v1/domains/f74c2d97-621a-4984-9ab6-5d84effde82f HTTP/1.1
Content-Type: application/json
Content-Length: 30
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "markForDeletion" : true
}

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 113

{
  "name" : "Mark domain with id f74c2d97-621a-4984-9ab6-5d84effde82f for deletion",
  "status" : "SUCCESSFUL"
}
  1. Trigger the deletion.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/domains/f74c2d97-621a-4984-9ab6-5d84effde82f' -i -X DELETE \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

DELETE /v1/domains/f74c2d97-621a-4984-9ab6-5d84effde82f HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/04f89a8a-6240-4574-a0ca-09fd5e515e58
Content-Length: 142

{
  "id" : "04f89a8a-6240-4574-a0ca-09fd5e515e58",
  "name" : "",
  "status" : "UNKNOWN",
  "creationTimestamp" : "2022-02-08T08:13:38.641Z"
}
  1. Poll the task until "status" is not "IN_PROGRESS" using the "id" from the previous response.

Tip
Refer to: Get a Task.
  • If the "status" is "SUCCESSFUL", the task is completed successfully.

  • If the "status" is "FAILED", the task can be re-executed.

Tip
Refer to: Retry a Task.

2.10. Clusters

2.10.1. Create a Cluster

After you add the primary cluster, you can add more clusters to expand the domain.

Prerequisites
  1. The following data is required

    • ID of the domain in which the cluster is to be created

    • Cluster details

      • Name of the cluster

      • Hosts details

        • ID of the host (UUID)

        • License key for the host

        • List of VDS names to associate with host

        • ID of the vmNic host to be associated with VDS / N-VDS, once added to cluster

      • Datastore details

        Note
        Only one of "vsanDatastoreSpec" (For VSAN), "nfsDatastoreSpec" (For NFS) or "vmfsDatastoreSpec" (For VMFS on FC) or vvolDatastoreSpec (For VVOL) must be specified.
        • For VSAN

          • Number of host failures to tolerate (can be 0, 1, or 2)

          • License key for the vSAN datastore

            {
              "vsanDatastoreSpec" : {
                "failuresToTolerate" : 1,
                "licenseKey" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
                "datastoreName" : "sfo-w01-cl01-ds-vsan01"
              }
            }
        • For NFS

          • List of NFS server names

          • Shared directory path

          • User tag used to annotate NFS share

          • Boolean to identify if the mount directory should be read-only

          {
            "nfsDatastoreSpecs" : [ {
              "nasVolume" : {
                "serverName" : [ "10.0.0.250" ],
                "path" : "/nfs_mount/my_read_write_folder",
                "readOnly" : false
              },
              "datastoreName" : "sfo-w01-cl01-ds-nfs01"
            } ]
          }
        • For VMFS on FC

          • Ensure that the ESXi hosts have the given VMFS on FC datastore name configured.

      {
        "vmfsDatastoreSpec" : {
          "fcSpec" : [ {
            "datastoreName" : "sfo-w01-cl01-ds-fc01"
          } ]
        }
      }
      • For VVOL

        • Ensure that the ESXi hosts have the given VVOL datastore name configured.

          • Vasa provider guid

          • Vasa container guid

          • Protocol type for vVol container

          • Vasa user guid

            {
              "vvolDatastoreSpecs" : [ {
                "name" : "sfo-w01-cl01-ds-vvol01",
                "vasaProviderSpec" : {
                  "vasaProviderId" : "42de6c36-e85e-483b-89c1-4aee5e8deebe",
                  "storageContainerId" : "908ce3e4-4e8d-414b-84e7-847ba9883521",
                  "storageProtocolType" : "ISCSI",
                  "userId" : "d0ed4dd6-1375-4b12-af8c-96c18c46d319"
                }
              } ]
            }
      • Network Details

        • List of VDS details

          • For each VDS
            Port group names and the corresponding transport type. Note that EDGE_INFRA_OVERLAY_UPLINK should not be specified in the input spec.
            DVS host Infrastructure traffic resource type
            Maximum allowed usage for a traffic class
            Amount of bandwidth to be reserved for the host infrastructure traffic class

        • NSX cluster Details

          • For NSX-T
            VLAN ID of the Geneve

          • IP address pool spec if the TEP IP assignment is done from IP pool
            For DHCP

            {
              "nsxTClusterSpec" : {
                "geneveVlanId" : 2
              }
            }

            For creating new IP pool during domain creation

            {
              "nsxTClusterSpec" : {
                "geneveVlanId" : 2,
                "ipAddressPoolSpec" : {
                  "name" : "static-ip-pool-01",
                  "subnets" : [ {
                    "ipAddressPoolRanges" : [ {
                      "start" : "10.0.11.50",
                      "end" : "10.0.11.70"
                    }, {
                      "start" : "10.0.11.80",
                      "end" : "10.0.11.150"
                    } ],
                    "cidr" : "10.0.11.0/24",
                    "gateway" : "10.0.11.250"
                  } ]
                }
              }
            }

            For using an existing IP pool during domain creation

            {
              "nsxTClusterSpec" : {
                "geneveVlanId" : 2,
                "ipAddressPoolSpec" : {
                  "name" : "static-ip-pool-01"
                }
              }
            }
            Note
            To create a new IP address pool during domain creation, "subnets", the list of IpAddressPoolSubnetSpec in the input spec must not be empty. Only the IP address pool name has to be sent in the input spec while using an existing IP address pool
            {
              "nsxTClusterSpec" : {
                "geneveVlanId" : 2
              }
            }
  2. Network pool must be configured.

  3. Logical VMware Cloud Foundation container (Workload Domain) must be provisioned.

Note
NSX-T management cluster is configured when the domain is created.
  1. Prerequisites for vSAN, NFS or VMFS on FC or VVOL must be met.

  2. License key details may be provisioned in vCenter.

  3. Host configuration must have minimum two active vmNics.

  4. There must be at least three hosts available in the VMware Cloud Foundation inventory.

  5. Ensure that the hosts you want to add to the cluster are in UNASSIGNED_USEABLE state.

  6. You must have valid host and vSAN (if using vSAN storage) license key specified with adequate sockets available for the host to be added.

  7. A DHCP server must be configured on the Geneve VLAN of the respective domains. When NSX-T creates VTEPs for the hosts in the domain, they are assigned IP addresses from the DHCP server.

  8. Evaluate if you want to have pNICs on multiple vSphere Distributed Switches in the NSX-T domain. At least two pNICs are needed on a single switch. Below is a spec sample:

    {
      "vmNics" : [ {
        "id" : "vmnic0",
        "vdsName" : "sfo-w01-cl01-vds01"
      }, {
        "id" : "vmnic1",
        "vdsName" : "sfo-w01-cl01-vds01"
      }, {
        "id" : "vmnic2",
        "vdsName" : "sfo-w01-cl01-vds02"
      }, {
        "id" : "vmnic3",
        "vdsName" : "sfo-w01-cl01-vds02"
      } ]
    }
Steps
  1. Validate the input specification.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/clusters/validations' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "domainId" : "606f80c3-857a-4fad-825d-c4a5705ede22",
  "computeSpec" : {
    "clusterSpecs" : [ {
      "name" : "sfo-w01-cl02",
      "hostSpecs" : [ {
        "id" : "6d028b96-f7f1-4007-a108-2600931bdb99",
        "licenseKey" : "XXXX-XXXX",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "sfo-w01-cl02-vds01"
          }, {
            "id" : "vmnic1",
            "vdsName" : "sfo-w01-cl02-vds01"
          }, {
            "id" : "vmnic2",
            "vdsName" : "sfo-w01-cl02-vds02"
          }, {
            "id" : "vmnic3",
            "vdsName" : "sfo-w01-cl02-vds02"
          } ]
        }
      }, {
        "id" : "4d8a7356-fbee-48a2-86de-56ac5fd07f05",
        "licenseKey" : "XXXX-XXXX",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "sfo-w01-cl02-vds01"
          }, {
            "id" : "vmnic1",
            "vdsName" : "sfo-w01-cl02-vds01"
          }, {
            "id" : "vmnic2",
            "vdsName" : "sfo-w01-cl02-vds02"
          }, {
            "id" : "vmnic3",
            "vdsName" : "sfo-w01-cl02-vds02"
          } ]
        }
      }, {
        "id" : "f26fb345-e0ba-4c1b-a7d8-8e0c3a8c96b9",
        "licenseKey" : "XXXX-XXXX",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "sfo-w01-cl02-vds01"
          }, {
            "id" : "vmnic1",
            "vdsName" : "sfo-w01-cl02-vds01"
          }, {
            "id" : "vmnic2",
            "vdsName" : "sfo-w01-cl02-vds02"
          }, {
            "id" : "vmnic3",
            "vdsName" : "sfo-w01-cl02-vds02"
          } ]
        }
      } ],
      "datastoreSpec" : {
        "vsanDatastoreSpec" : {
          "failuresToTolerate" : 1,
          "licenseKey" : "XXXX-XXXX",
          "datastoreName" : "sfo-w01-cl02-ds-vsan01"
        }
      },
      "networkSpec" : {
        "vdsSpecs" : [ {
          "name" : "sfo-w01-cl02-vds01",
          "isUsedByNsxt" : false,
          "portGroupSpecs" : [ {
            "name" : "sfo-w01-cl02-vds01-pg-mgmt",
            "transportType" : "MANAGEMENT"
          }, {
            "name" : "sfo-w01-cl02-vds01-pg-vsan",
            "transportType" : "VSAN"
          }, {
            "name" : "sfo-w01-cl02-vds01-pg-vmotion",
            "transportType" : "VMOTION"
          } ]
        }, {
          "name" : "sfo-w01-cl02-vds02",
          "isUsedByNsxt" : true
        } ],
        "nsxClusterSpec" : {
          "nsxTClusterSpec" : {
            "geneveVlanId" : 0
          }
        }
      },
      "advancedOptions" : {
        "evcMode" : "",
        "highAvailability" : {
          "enabled" : false
        }
      }
    } ],
    "skipFailedHosts" : false
  }
}'

HTTP Request

POST /v1/clusters/validations HTTP/1.1
Content-Type: application/json
Content-Length: 2886
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "domainId" : "606f80c3-857a-4fad-825d-c4a5705ede22",
  "computeSpec" : {
    "clusterSpecs" : [ {
      "name" : "sfo-w01-cl02",
      "hostSpecs" : [ {
        "id" : "6d028b96-f7f1-4007-a108-2600931bdb99",
        "licenseKey" : "XXXX-XXXX",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "sfo-w01-cl02-vds01"
          }, {
            "id" : "vmnic1",
            "vdsName" : "sfo-w01-cl02-vds01"
          }, {
            "id" : "vmnic2",
            "vdsName" : "sfo-w01-cl02-vds02"
          }, {
            "id" : "vmnic3",
            "vdsName" : "sfo-w01-cl02-vds02"
          } ]
        }
      }, {
        "id" : "4d8a7356-fbee-48a2-86de-56ac5fd07f05",
        "licenseKey" : "XXXX-XXXX",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "sfo-w01-cl02-vds01"
          }, {
            "id" : "vmnic1",
            "vdsName" : "sfo-w01-cl02-vds01"
          }, {
            "id" : "vmnic2",
            "vdsName" : "sfo-w01-cl02-vds02"
          }, {
            "id" : "vmnic3",
            "vdsName" : "sfo-w01-cl02-vds02"
          } ]
        }
      }, {
        "id" : "f26fb345-e0ba-4c1b-a7d8-8e0c3a8c96b9",
        "licenseKey" : "XXXX-XXXX",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "sfo-w01-cl02-vds01"
          }, {
            "id" : "vmnic1",
            "vdsName" : "sfo-w01-cl02-vds01"
          }, {
            "id" : "vmnic2",
            "vdsName" : "sfo-w01-cl02-vds02"
          }, {
            "id" : "vmnic3",
            "vdsName" : "sfo-w01-cl02-vds02"
          } ]
        }
      } ],
      "datastoreSpec" : {
        "vsanDatastoreSpec" : {
          "failuresToTolerate" : 1,
          "licenseKey" : "XXXX-XXXX",
          "datastoreName" : "sfo-w01-cl02-ds-vsan01"
        }
      },
      "networkSpec" : {
        "vdsSpecs" : [ {
          "name" : "sfo-w01-cl02-vds01",
          "isUsedByNsxt" : false,
          "portGroupSpecs" : [ {
            "name" : "sfo-w01-cl02-vds01-pg-mgmt",
            "transportType" : "MANAGEMENT"
          }, {
            "name" : "sfo-w01-cl02-vds01-pg-vsan",
            "transportType" : "VSAN"
          }, {
            "name" : "sfo-w01-cl02-vds01-pg-vmotion",
            "transportType" : "VMOTION"
          } ]
        }, {
          "name" : "sfo-w01-cl02-vds02",
          "isUsedByNsxt" : true
        } ],
        "nsxClusterSpec" : {
          "nsxTClusterSpec" : {
            "geneveVlanId" : 0
          }
        }
      },
      "advancedOptions" : {
        "evcMode" : "",
        "highAvailability" : {
          "enabled" : false
        }
      }
    } ],
    "skipFailedHosts" : false
  }
}

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 292

{
  "id" : "e0904d41-0c05-44e6-96fe-66cd6765f7c0",
  "description" : "Validating Cluster Creation Spec",
  "executionStatus" : "COMPLETED",
  "resultStatus" : "SUCCEEDED",
  "validationChecks" : [ {
    "description" : "ClusterCreationSpecValidation",
    "resultStatus" : "SUCCEEDED"
  } ]
}
  1. In case of no errors in the input specification, the "executionStatus" is "COMPLETED" and "resultStatus" is "SUCCEEDED".

  2. In case of errors in the input specification, the "executionStatus" is "COMPLETED" and "resultStatus" is "FAILED".

    Note
    Make changes to the input specification and re-validate using a new API invocation.
  1. Trigger the task using the valid input specification.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/clusters' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "domainId" : "bc3d7030-269e-43ed-81e8-75f65123c324",
  "computeSpec" : {
    "clusterSpecs" : [ {
      "name" : "sfo-w01-cl02",
      "hostSpecs" : [ {
        "id" : "a4ab1a97-7e74-4e71-b4cc-4765714fe0e6",
        "licenseKey" : "XXXX-XXXX",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "sfo-w01-cl02-vds01"
          }, {
            "id" : "vmnic1",
            "vdsName" : "sfo-w01-cl02-vds01"
          }, {
            "id" : "vmnic2",
            "vdsName" : "sfo-w01-cl02-vds02"
          }, {
            "id" : "vmnic3",
            "vdsName" : "sfo-w01-cl02-vds02"
          } ]
        }
      }, {
        "id" : "f52e3bf0-3672-4ca3-8ab1-f776580c66a8",
        "licenseKey" : "XXXX-XXXX",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "sfo-w01-cl02-vds01"
          }, {
            "id" : "vmnic1",
            "vdsName" : "sfo-w01-cl02-vds01"
          }, {
            "id" : "vmnic2",
            "vdsName" : "sfo-w01-cl02-vds02"
          }, {
            "id" : "vmnic3",
            "vdsName" : "sfo-w01-cl02-vds02"
          } ]
        }
      }, {
        "id" : "42998308-51a2-4474-bf06-3a3136223b63",
        "licenseKey" : "XXXX-XXXX",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "sfo-w01-cl02-vds01"
          }, {
            "id" : "vmnic1",
            "vdsName" : "sfo-w01-cl02-vds01"
          }, {
            "id" : "vmnic2",
            "vdsName" : "sfo-w01-cl02-vds02"
          }, {
            "id" : "vmnic3",
            "vdsName" : "sfo-w01-cl02-vds02"
          } ]
        }
      } ],
      "datastoreSpec" : {
        "vsanDatastoreSpec" : {
          "failuresToTolerate" : 1,
          "licenseKey" : "XXXX-XXXX",
          "datastoreName" : "sfo-w01-cl02-ds-vsan01"
        }
      },
      "networkSpec" : {
        "vdsSpecs" : [ {
          "name" : "sfo-w01-cl02-vds01",
          "isUsedByNsxt" : false,
          "portGroupSpecs" : [ {
            "name" : "sfo-w01-cl02-vds01-pg-mgmt",
            "transportType" : "MANAGEMENT"
          }, {
            "name" : "sfo-w01-cl02-vds01-pg-vsan",
            "transportType" : "VSAN"
          }, {
            "name" : "sfo-w01-cl02-vds01-pg-vmotion",
            "transportType" : "VMOTION"
          } ]
        }, {
          "name" : "sfo-w01-cl02-vds02",
          "isUsedByNsxt" : true
        } ],
        "nsxClusterSpec" : {
          "nsxTClusterSpec" : {
            "geneveVlanId" : 0
          }
        }
      },
      "advancedOptions" : {
        "evcMode" : "",
        "highAvailability" : {
          "enabled" : false
        }
      }
    } ],
    "skipFailedHosts" : false
  }
}'

HTTP Request

POST /v1/clusters HTTP/1.1
Content-Type: application/json
Content-Length: 2886
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "domainId" : "bc3d7030-269e-43ed-81e8-75f65123c324",
  "computeSpec" : {
    "clusterSpecs" : [ {
      "name" : "sfo-w01-cl02",
      "hostSpecs" : [ {
        "id" : "a4ab1a97-7e74-4e71-b4cc-4765714fe0e6",
        "licenseKey" : "XXXX-XXXX",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "sfo-w01-cl02-vds01"
          }, {
            "id" : "vmnic1",
            "vdsName" : "sfo-w01-cl02-vds01"
          }, {
            "id" : "vmnic2",
            "vdsName" : "sfo-w01-cl02-vds02"
          }, {
            "id" : "vmnic3",
            "vdsName" : "sfo-w01-cl02-vds02"
          } ]
        }
      }, {
        "id" : "f52e3bf0-3672-4ca3-8ab1-f776580c66a8",
        "licenseKey" : "XXXX-XXXX",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "sfo-w01-cl02-vds01"
          }, {
            "id" : "vmnic1",
            "vdsName" : "sfo-w01-cl02-vds01"
          }, {
            "id" : "vmnic2",
            "vdsName" : "sfo-w01-cl02-vds02"
          }, {
            "id" : "vmnic3",
            "vdsName" : "sfo-w01-cl02-vds02"
          } ]
        }
      }, {
        "id" : "42998308-51a2-4474-bf06-3a3136223b63",
        "licenseKey" : "XXXX-XXXX",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "sfo-w01-cl02-vds01"
          }, {
            "id" : "vmnic1",
            "vdsName" : "sfo-w01-cl02-vds01"
          }, {
            "id" : "vmnic2",
            "vdsName" : "sfo-w01-cl02-vds02"
          }, {
            "id" : "vmnic3",
            "vdsName" : "sfo-w01-cl02-vds02"
          } ]
        }
      } ],
      "datastoreSpec" : {
        "vsanDatastoreSpec" : {
          "failuresToTolerate" : 1,
          "licenseKey" : "XXXX-XXXX",
          "datastoreName" : "sfo-w01-cl02-ds-vsan01"
        }
      },
      "networkSpec" : {
        "vdsSpecs" : [ {
          "name" : "sfo-w01-cl02-vds01",
          "isUsedByNsxt" : false,
          "portGroupSpecs" : [ {
            "name" : "sfo-w01-cl02-vds01-pg-mgmt",
            "transportType" : "MANAGEMENT"
          }, {
            "name" : "sfo-w01-cl02-vds01-pg-vsan",
            "transportType" : "VSAN"
          }, {
            "name" : "sfo-w01-cl02-vds01-pg-vmotion",
            "transportType" : "VMOTION"
          } ]
        }, {
          "name" : "sfo-w01-cl02-vds02",
          "isUsedByNsxt" : true
        } ],
        "nsxClusterSpec" : {
          "nsxTClusterSpec" : {
            "geneveVlanId" : 0
          }
        }
      },
      "advancedOptions" : {
        "evcMode" : "",
        "highAvailability" : {
          "enabled" : false
        }
      }
    } ],
    "skipFailedHosts" : false
  }
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/1bfb6cce-bd4f-4d17-8afd-87a6f66a1a38
Content-Length: 166

{
  "id" : "1bfb6cce-bd4f-4d17-8afd-87a6f66a1a38",
  "name" : "Add Cluster Workflow",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2022-02-08T08:12:59.755Z"
}
  1. Poll the task until "status" is not "IN_PROGRESS" using the "id" from the previous response.

Tip
Refer to: Get a Task.
  • If the "status" is "SUCCESSFUL", the task is completed successfully.

  • If the "status" is "FAILED", the task can be re-executed.

Tip
Refer to: Retry a Task.

2.10.2. Get the Clusters

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/clusters' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/clusters HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1737

{
  "elements" : [ {
    "id" : "8045e44e-974e-4f43-9862-7f0326782655",
    "name" : "sfo-m01-cl01",
    "primaryDatastoreName" : "sfo-m01-cl01-ds-vsan01",
    "primaryDatastoreType" : "VSAN",
    "hosts" : [ {
      "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c5"
    }, {
      "id" : "c0703431-6742-470b-9e1d-f9d3bbc9b1c9"
    } ],
    "isStretched" : false
  }, {
    "id" : "8045e44e-974e-4f43-9862-7f0326782677",
    "name" : "sfo-w01-cl01",
    "primaryDatastoreName" : "sfo-w01-cl01-ds-nfs01",
    "primaryDatastoreType" : "NFS",
    "hosts" : [ {
      "id" : "c0703437-6746-470z-9e1c-f9d3bbc9b1c6"
    }, {
      "id" : "c0703431-6742-470t-9e1d-f9d3bbc9b1c1"
    } ],
    "isStretched" : false
  }, {
    "id" : "8045e44e-974e-4f43-9861-7f0326782633",
    "name" : "sfo-w02-cl01",
    "primaryDatastoreName" : "sfo-w02-cl01-ds-nfs01",
    "primaryDatastoreType" : "NFS",
    "hosts" : [ {
      "id" : "c0703437-6746-470e-9e1c-f9d3bbc9b1c3"
    }, {
      "id" : "c0703431-6742-470r-9e1d-f9d3bbc9b1c4"
    } ],
    "isStretched" : false
  }, {
    "id" : "8045e44e-974e-4f43-9861-7f0326782677",
    "name" : "sfo-w03-cl01",
    "primaryDatastoreName" : "sfo-w03-cl01-ds-fc01",
    "primaryDatastoreType" : "FC",
    "hosts" : [ {
      "id" : "c0703437-6746-470e-9e2c-f9d3bbc9b1c3"
    }, {
      "id" : "c0703431-6742-460r-9e1d-f9d3bbc9b1c4"
    } ],
    "isStretched" : false
  }, {
    "id" : "2345e44e-974e-4f43-9862-7f0326782898",
    "name" : "sfo-w04-cl01",
    "primaryDatastoreName" : "sfo-w04-cl01-ds-vsan01",
    "primaryDatastoreType" : "VSAN",
    "hosts" : [ {
      "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c5"
    }, {
      "id" : "c0703431-6742-470b-9e1d-f9d3bbc9b1c9"
    } ],
    "isStretched" : true
  } ]
}

Get the Stretched Clusters

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/clusters?isStretched=true' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/clusters?isStretched=true HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 365

{
  "elements" : [ {
    "id" : "2345e44e-974e-4f43-9862-7f0326782898",
    "name" : "sfo-w04-cl01",
    "primaryDatastoreName" : "sfo-w04-cl01-ds-vsan01",
    "primaryDatastoreType" : "VSAN",
    "hosts" : [ {
      "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c5"
    }, {
      "id" : "c0703431-6742-470b-9e1d-f9d3bbc9b1c9"
    } ],
    "isStretched" : true
  } ]
}

Get the Vanilla Clusters

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/clusters?isStretched=false' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/clusters?isStretched=false HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1393

{
  "elements" : [ {
    "id" : "8045e44e-974e-4f43-9862-7f0326782655",
    "name" : "sfo-m01-cl01",
    "primaryDatastoreName" : "sfo-m01-cl01-ds-vsan01",
    "primaryDatastoreType" : "VSAN",
    "hosts" : [ {
      "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c5"
    }, {
      "id" : "c0703431-6742-470b-9e1d-f9d3bbc9b1c9"
    } ],
    "isStretched" : false
  }, {
    "id" : "8045e44e-974e-4f43-9862-7f0326782677",
    "name" : "sfo-w01-cl01",
    "primaryDatastoreName" : "sfo-w01-cl01-ds-nfs01",
    "primaryDatastoreType" : "NFS",
    "hosts" : [ {
      "id" : "c0703437-6746-470z-9e1c-f9d3bbc9b1c6"
    }, {
      "id" : "c0703431-6742-470t-9e1d-f9d3bbc9b1c1"
    } ],
    "isStretched" : false
  }, {
    "id" : "8045e44e-974e-4f43-9861-7f0326782633",
    "name" : "sfo-w02-cl01",
    "primaryDatastoreName" : "sfo-w02-cl01-ds-nfs01",
    "primaryDatastoreType" : "NFS",
    "hosts" : [ {
      "id" : "c0703437-6746-470e-9e1c-f9d3bbc9b1c3"
    }, {
      "id" : "c0703431-6742-470r-9e1d-f9d3bbc9b1c4"
    } ],
    "isStretched" : false
  }, {
    "id" : "8045e44e-974e-4f43-9861-7f0326782677",
    "name" : "sfo-w03-cl01",
    "primaryDatastoreName" : "sfo-w03-cl01-ds-fc01",
    "primaryDatastoreType" : "FC",
    "hosts" : [ {
      "id" : "c0703437-6746-470e-9e2c-f9d3bbc9b1c3"
    }, {
      "id" : "c0703431-6742-460r-9e1d-f9d3bbc9b1c4"
    } ],
    "isStretched" : false
  } ]
}

2.10.3. Get a Cluster

Prerequisites
  1. The following data is required

    • ID of the cluster

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/clusters/8045e44e-974e-4f43-9862-7f0326782655' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/clusters/8045e44e-974e-4f43-9862-7f0326782655 HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 321

{
  "id" : "8045e44e-974e-4f43-9862-7f0326782655",
  "name" : "sfo-m01-cl01",
  "primaryDatastoreName" : "sfo-m01-cl01-ds-vsan01",
  "primaryDatastoreType" : "VSAN",
  "hosts" : [ {
    "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c5"
  }, {
    "id" : "c0703431-6742-470b-9e1d-f9d3bbc9b1c9"
  } ],
  "isStretched" : false
}
Get list of VDSes of a cluster
Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/clusters/2d54bb6c-637a-49a4-a94c-622671d0ab32/vdses' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/clusters/2d54bb6c-637a-49a4-a94c-622671d0ab32/vdses HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1984

[ {
  "id" : "bbcb8e27-2af5-4662-9631-d7982e132bbc",
  "name" : "sfo-w01-cl01-vds01",
  "isUsedByNsxt" : true,
  "mtu" : 1500,
  "portGroups" : [ {
    "name" : "sfo-w01-cl01-vds01-pg-mgmt",
    "transportType" : "MANAGEMENT",
    "portBindingType" : "EPHEMERAL",
    "vlanId" : 0
  }, {
    "name" : "sfo-w01-cl01-vds01-pg-vsan",
    "transportType" : "VSAN",
    "portBindingType" : "STATIC",
    "vlanId" : 0
  }, {
    "name" : "sfo-w01-cl01-vds01-pg-vmotion",
    "transportType" : "VMOTION",
    "portBindingType" : "STATIC",
    "vlanId" : 0
  } ],
  "niocBandwidthAllocations" : [ {
    "type" : "vsan",
    "niocTrafficResourceAllocation" : {
      "sharesInfo" : {
        "shares" : 0,
        "level" : "high"
      }
    }
  }, {
    "type" : "vmotion",
    "niocTrafficResourceAllocation" : {
      "sharesInfo" : {
        "shares" : 0,
        "level" : "low"
      }
    }
  }, {
    "type" : "vdp",
    "niocTrafficResourceAllocation" : {
      "sharesInfo" : {
        "shares" : 0,
        "level" : "low"
      }
    }
  }, {
    "type" : "nfs",
    "niocTrafficResourceAllocation" : {
      "sharesInfo" : {
        "shares" : 0,
        "level" : "low"
      }
    }
  }, {
    "type" : "hbr",
    "niocTrafficResourceAllocation" : {
      "sharesInfo" : {
        "shares" : 0,
        "level" : "low"
      }
    }
  }, {
    "type" : "iSCSI",
    "niocTrafficResourceAllocation" : {
      "sharesInfo" : {
        "shares" : 0,
        "level" : "low"
      }
    }
  }, {
    "type" : "virtualMachine",
    "niocTrafficResourceAllocation" : {
      "sharesInfo" : {
        "shares" : 0,
        "level" : "high"
      }
    }
  }, {
    "type" : "management",
    "niocTrafficResourceAllocation" : {
      "sharesInfo" : {
        "shares" : 0,
        "level" : "normal"
      }
    }
  }, {
    "type" : "faultTolerance",
    "niocTrafficResourceAllocation" : {
      "sharesInfo" : {
        "shares" : 0,
        "level" : "low"
      }
    }
  } ]
} ]

2.10.4. Expand a Cluster

Adding an individual host to a cluster adds the resources of that host to the cluster. You can add multiple hosts at a time to a cluster.

Prerequisites
  1. The following data is required

    • ID of the cluster

    • For each host

      • ID of the host (UUID)

      • List of VDS names to associate with host

      • ID of the vmNic, host is associated to

      • Availability zone name to which host is mapped, if expand operation to be performed is on a stretched cluster

    • Is inter-rack cluster expansion - required, only if Cluster contains NSX-T Edge Cluster

    • License key of ESXi

  2. The cluster in a domain to which hosts are to be added must exist.

  3. There must be a host available in the VMware Cloud Foundation inventory.

  4. The hosts to be added must have been commissioned.

  5. Ensure that the host you want to add is in an active state.

  6. For expanding a cluster which uses more than 2 vmnics, get the hosts which are compatible with the cluster using hosts query API with the criterion "HOST_COMPATIBLE_WITH_CLUSTER_USING_PNICS".

  1. You must have a valid ESXi license specified with adequate sockets available for the host to be added.

  2. Ensure that the host to be added to the cluster matches the configuration of the hosts already in the cluster. This ensures a balanced configuration of the cluster.

  3. Cluster should be in Stretched state, if expansion to be performed is on Stretched cluster.

Steps
  1. Validate the input specification.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/clusters/2d54bb6c-637a-49a4-a94c-622671d0ab32/validations' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "clusterUpdateSpec" : {
    "clusterExpansionSpec" : {
      "hostSpecs" : [ {
        "id" : "b55559cf-4f7e-4263-afa8-06fd5c54495f",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "sfo-w01-cl02-vds01"
          }, {
            "id" : "vmnic1",
            "vdsName" : "sfo-w01-cl02-vds01"
          }, {
            "id" : "vmnic2",
            "vdsName" : "sfo-w01-cl02-vds02"
          }, {
            "id" : "vmnic3",
            "vdsName" : "sfo-w01-cl02-vds02"
          } ]
        }
      } ]
    }
  }
}'

HTTP Request

POST /v1/clusters/2d54bb6c-637a-49a4-a94c-622671d0ab32/validations HTTP/1.1
Content-Type: application/json
Content-Length: 608
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "clusterUpdateSpec" : {
    "clusterExpansionSpec" : {
      "hostSpecs" : [ {
        "id" : "b55559cf-4f7e-4263-afa8-06fd5c54495f",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "sfo-w01-cl02-vds01"
          }, {
            "id" : "vmnic1",
            "vdsName" : "sfo-w01-cl02-vds01"
          }, {
            "id" : "vmnic2",
            "vdsName" : "sfo-w01-cl02-vds02"
          }, {
            "id" : "vmnic3",
            "vdsName" : "sfo-w01-cl02-vds02"
          } ]
        }
      } ]
    }
  }
}

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 294

{
  "id" : "8dd19d88-f971-417d-b258-a289c1dfd7c5",
  "description" : "Validating Cluster Expansion Spec",
  "executionStatus" : "COMPLETED",
  "resultStatus" : "SUCCEEDED",
  "validationChecks" : [ {
    "description" : "ClusterExpansionSpecValidation",
    "resultStatus" : "SUCCEEDED"
  } ]
}
  1. In case of no errors in the input specification, the "executionStatus" is "COMPLETED" and "resultStatus" is "SUCCEEDED".

  2. In case of errors in the input specification, the "executionStatus" is "COMPLETED" and "resultStatus" is "FAILED".

    Note
    Make changes to the input specification and re-validate using a new API invocation.
  1. Trigger the task using the valid input specification.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/clusters/2d54bb6c-637a-49a4-a94c-622671d0ab32' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "clusterExpansionSpec" : {
    "hostSpecs" : [ {
      "id" : "a9a64962-2272-4df2-83a9-2d67263e7da9",
      "username" : "root",
      "hostNetworkSpec" : {
        "vmNics" : [ {
          "id" : "vmnic0",
          "vdsName" : "sfo-w01-cl02-vds01"
        }, {
          "id" : "vmnic1",
          "vdsName" : "sfo-w01-cl02-vds01"
        }, {
          "id" : "vmnic2",
          "vdsName" : "sfo-w01-cl02-vds02"
        }, {
          "id" : "vmnic3",
          "vdsName" : "sfo-w01-cl02-vds02"
        } ]
      }
    } ]
  }
}'

HTTP Request

PATCH /v1/clusters/2d54bb6c-637a-49a4-a94c-622671d0ab32 HTTP/1.1
Content-Type: application/json
Content-Length: 536
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "clusterExpansionSpec" : {
    "hostSpecs" : [ {
      "id" : "a9a64962-2272-4df2-83a9-2d67263e7da9",
      "username" : "root",
      "hostNetworkSpec" : {
        "vmNics" : [ {
          "id" : "vmnic0",
          "vdsName" : "sfo-w01-cl02-vds01"
        }, {
          "id" : "vmnic1",
          "vdsName" : "sfo-w01-cl02-vds01"
        }, {
          "id" : "vmnic2",
          "vdsName" : "sfo-w01-cl02-vds02"
        }, {
          "id" : "vmnic3",
          "vdsName" : "sfo-w01-cl02-vds02"
        } ]
      }
    } ]
  }
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/b63c2a53-3959-4773-8b8d-b32d39f3ea15
Content-Length: 166

{
  "id" : "b63c2a53-3959-4773-8b8d-b32d39f3ea15",
  "name" : "Add Cluster Workflow",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2022-02-08T08:12:56.490Z"
}
  1. Poll the task until "status" is not "IN_PROGRESS" using the "id" from the previous response.

Tip
Refer to: Get a Task.
  • If the "status" is "SUCCESSFUL", the task is completed successfully.

  • If the "status" is "FAILED", the task can be re-executed.

Tip
Refer to: Retry a Task.

2.10.5. Compact a Cluster

When a host is removed from a cluster in a domain, the vSAN members are reduced. Ensure that you have enough hosts remaining to facilitate the configured vSAN availability. Failure to do so might result in the datastore being marked as read-only or in data loss.

Prerequisites
  1. The following data is required

    • For each host to be removed

      • ID of the host

Steps
  1. Validate the input specification.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/clusters/2d54bb6c-637a-49a4-a94c-622671d0ab32/validations' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "clusterCompactionSpec" : {
    "hosts" : [ {
      "id" : "5437e512-2530-41bd-a507-9b85780c08e5"
    } ]
  }
}'

HTTP Request

POST /v1/clusters/2d54bb6c-637a-49a4-a94c-622671d0ab32/validations HTTP/1.1
Content-Type: application/json
Content-Length: 115
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "clusterCompactionSpec" : {
    "hosts" : [ {
      "id" : "5437e512-2530-41bd-a507-9b85780c08e5"
    } ]
  }
}

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 296

{
  "id" : "3c5aca2e-be93-4a17-b55d-a1361a274058",
  "description" : "Validating Cluster Compaction Spec",
  "executionStatus" : "COMPLETED",
  "resultStatus" : "SUCCEEDED",
  "validationChecks" : [ {
    "description" : "ClusterCompactionSpecValidation",
    "resultStatus" : "SUCCEEDED"
  } ]
}
  1. In case of no errors in the input specification, the "executionStatus" is "COMPLETED" and "resultStatus" is "SUCCEEDED".

  2. In case of errors in the input specification, the "executionStatus" is "COMPLETED" and "resultStatus" is "FAILED".

    Note
    Make changes to the input specification and re-validate using a new API invocation.
  1. Trigger the task using the valid input specification.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/clusters/2d54bb6c-637a-49a4-a94c-622671d0ab32' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "clusterCompactionSpec" : {
    "hosts" : [ {
      "id" : "5985a8b8-bf41-4547-b661-4b2325c23ddd"
    } ]
  }
}'

HTTP Request

PATCH /v1/clusters/2d54bb6c-637a-49a4-a94c-622671d0ab32 HTTP/1.1
Content-Type: application/json
Content-Length: 115
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "clusterCompactionSpec" : {
    "hosts" : [ {
      "id" : "5985a8b8-bf41-4547-b661-4b2325c23ddd"
    } ]
  }
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/d11e9dc7-d092-4e1d-b8e9-0075ded0a1fd
Content-Length: 166

{
  "id" : "d11e9dc7-d092-4e1d-b8e9-0075ded0a1fd",
  "name" : "Add Cluster Workflow",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2022-02-08T08:13:01.571Z"
}
  1. Poll the task until "status" is not "IN_PROGRESS" using the "id" from the previous response.

Tip
Refer to: Get a Task.
  • If the "status" is "SUCCESSFUL", the task is completed successfully.

  • If the "status" is "FAILED", the task can be re-executed.

Tip
Refer to: Retry a Task.

2.10.6. Stretch a Cluster

Convert a Standard vSAN cluster to a Stretched cluster

Prerequisites
  1. The following data is required

    • ID of the cluster

    • Secondary AZ overlay vLAN Id

    • For each host

      • ID of the host (UUID)

      • License key of ESXi

    • For each Witness host

      • ID of witness host

      • FQDN of witness host

      • vSAN subnet cidr of witness host

  2. The following data is optional

    • Witness traffic shared with vSAN (or Management VMK)

    • Edge cluster configured Multi-AZ

  3. The cluster must exist.

  4. There must be a host available in the VMware Cloud Foundation inventory.

  5. The hosts to be added must have been commissioned.

  6. Ensure that the host you want to add is in an active state.

  7. You must have a valid ESXi license specified with adequate sockets available for the host to be added.

  8. Ensure that the host to be added to the cluster matches the configuration of the hosts already in the cluster. This ensures a balanced configuration of the cluster.

  9. vSAN witness should be configured.

  10. Underlying physical network should have proper MTUs and vSAN/vMotion connectivity between availability zones and the witness.

Steps
  1. Validate the input specification.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/clusters/2d54bb6c-637a-49a4-a94c-622671d0ab32/validations' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "clusterStretchSpec" : {
    "hostSpecs" : [ {
      "id" : "81031313-0833-41de-8d13-000a9f614985",
      "licenseKey" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
      "username" : "root",
      "hostNetworkSpec" : {
        "vmNics" : [ {
          "id" : "vmnic0",
          "vdsName" : "sfo-w01-cl02-vds01",
          "moveToNvds" : false
        }, {
          "id" : "vmnic1",
          "vdsName" : "sfo-w01-cl02-vds02",
          "moveToNvds" : true
        } ]
      }
    } ],
    "witnessSpec" : {
      "vsanIp" : "10.0.4.88",
      "fqdn" : "witness-vsan.sfo.rainpole.io",
      "vsanCidr" : "10.0.4.0/24"
    },
    "witnessTrafficSharedWithVsanTraffic" : false,
    "secondaryAzOverlayVlanId" : 0
  }
}'

HTTP Request

POST /v1/clusters/2d54bb6c-637a-49a4-a94c-622671d0ab32/validations HTTP/1.1
Content-Type: application/json
Content-Length: 711
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "clusterStretchSpec" : {
    "hostSpecs" : [ {
      "id" : "81031313-0833-41de-8d13-000a9f614985",
      "licenseKey" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
      "username" : "root",
      "hostNetworkSpec" : {
        "vmNics" : [ {
          "id" : "vmnic0",
          "vdsName" : "sfo-w01-cl02-vds01",
          "moveToNvds" : false
        }, {
          "id" : "vmnic1",
          "vdsName" : "sfo-w01-cl02-vds02",
          "moveToNvds" : true
        } ]
      }
    } ],
    "witnessSpec" : {
      "vsanIp" : "10.0.4.88",
      "fqdn" : "witness-vsan.sfo.rainpole.io",
      "vsanCidr" : "10.0.4.0/24"
    },
    "witnessTrafficSharedWithVsanTraffic" : false,
    "secondaryAzOverlayVlanId" : 0
  }
}

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 290

{
  "id" : "144faea7-edea-497f-9e14-e273308fd7b2",
  "description" : "Validating Cluster Stretch Spec",
  "executionStatus" : "COMPLETED",
  "resultStatus" : "SUCCEEDED",
  "validationChecks" : [ {
    "description" : "ClusterStretchSpecValidation",
    "resultStatus" : "SUCCEEDED"
  } ]
}
  1. In case of no errors in the input specification, the "executionStatus" is "COMPLETED" and "resultStatus" is "SUCCEEDED".

  2. In case of errors in the input specification, the "executionStatus" is "COMPLETED" and "resultStatus" is "FAILED".

    Note
    Make changes to the input specification and re-validate using a new API invocation.
  1. Trigger the task using the valid input specification.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/clusters/2d54bb6c-637a-49a4-a94c-622671d0ab32' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "clusterStretchSpec" : {
    "hostSpecs" : [ {
      "id" : "0ddb6867-d801-4642-b1ca-482fc5a7a10f",
      "licenseKey" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
      "username" : "root",
      "hostNetworkSpec" : {
        "vmNics" : [ {
          "id" : "vmnic0",
          "vdsName" : "sfo-w01-cl02-vds01",
          "moveToNvds" : false
        }, {
          "id" : "vmnic1",
          "vdsName" : "sfo-w01-cl02-vds02",
          "moveToNvds" : true
        } ]
      }
    } ],
    "witnessSpec" : {
      "vsanIp" : "10.0.4.88",
      "fqdn" : "witness-vsan.sfo.rainpole.io",
      "vsanCidr" : "10.0.4.0/24"
    },
    "witnessTrafficSharedWithVsanTraffic" : false,
    "secondaryAzOverlayVlanId" : 0
  }
}'

HTTP Request

PATCH /v1/clusters/2d54bb6c-637a-49a4-a94c-622671d0ab32 HTTP/1.1
Content-Type: application/json
Content-Length: 711
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "clusterStretchSpec" : {
    "hostSpecs" : [ {
      "id" : "0ddb6867-d801-4642-b1ca-482fc5a7a10f",
      "licenseKey" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
      "username" : "root",
      "hostNetworkSpec" : {
        "vmNics" : [ {
          "id" : "vmnic0",
          "vdsName" : "sfo-w01-cl02-vds01",
          "moveToNvds" : false
        }, {
          "id" : "vmnic1",
          "vdsName" : "sfo-w01-cl02-vds02",
          "moveToNvds" : true
        } ]
      }
    } ],
    "witnessSpec" : {
      "vsanIp" : "10.0.4.88",
      "fqdn" : "witness-vsan.sfo.rainpole.io",
      "vsanCidr" : "10.0.4.0/24"
    },
    "witnessTrafficSharedWithVsanTraffic" : false,
    "secondaryAzOverlayVlanId" : 0
  }
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/0b28ad71-f723-4489-9e91-a541ffe44a1f
Content-Length: 166

{
  "id" : "0b28ad71-f723-4489-9e91-a541ffe44a1f",
  "name" : "Add Cluster Workflow",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2022-02-08T08:13:00.271Z"
}
  1. Poll the task until "status" is not "IN_PROGRESS" using the "id" from the previous response.

Tip
Refer to: Get a Task.
  • If the "status" is "SUCCESSFUL", the task is completed successfully.

  • If the "status" is "FAILED", the task can be re-executed.

Tip
Refer to: Retry a Task.

2.10.7. Unstretch a Cluster

Convert a Stretched cluster to a Standard vSAN cluster

Prerequisites
  1. The following data is required

    • ID of the cluster

  2. The cluster must exist.

  3. Cluster should be in Stretched state.

Steps
  1. Trigger the task using the valid input specification.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/clusters/2d54bb6c-637a-49a4-a94c-622671d0ab32' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "clusterUnstretchSpec" : { }
}'

HTTP Request

PATCH /v1/clusters/2d54bb6c-637a-49a4-a94c-622671d0ab32 HTTP/1.1
Content-Type: application/json
Content-Length: 34
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "clusterUnstretchSpec" : { }
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/dc935f50-d24b-4644-9fab-192f61dfe580
Content-Length: 166

{
  "id" : "dc935f50-d24b-4644-9fab-192f61dfe580",
  "name" : "Add Cluster Workflow",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2022-02-08T08:12:58.934Z"
}
  1. Poll the task until "status" is not "IN_PROGRESS" using the "id" from the previous response.

Tip
Refer to: Get a Task.
  • If the "status" is "SUCCESSFUL", the task is completed successfully.

  • If the "status" is "FAILED", the task can be re-executed.

Tip
Refer to: Retry a Task.

2.10.8. Delete a Cluster

Warning
Datastores on the ESXi hosts in the cluster that will be deleted are destroyed.
Note
You cannot delete the last cluster in a domain. Instead, the domain can be deleted. A cluster cannot be deleted if it has remote vSAN datastores configured. If so, unmount the remote vSAN datastores from vCenter and then retry cluster deletion. Please refer to the 'VMware Cloud Foundation Operations and Administration Guide' for more details.
Prerequisites
  1. The following data is required

    • ID of the cluster to be deleted

  2. Ensure that a cluster with the given ID exists.

  3. The cluster has been marked for deletion.

  4. Migrate or backup the VMs and data on the data store associated with the cluster to another location.

Steps
  1. Initialize the deletion.

Warning
It is not possible to delete a cluster without having marked it for deletion. This 2-step deletion ensures that a cluster is not deleted accidentally.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/clusters/2d54bb6c-637a-49a4-a94c-622671d0ab32' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "markForDeletion" : true
}'

HTTP Request

PATCH /v1/clusters/2d54bb6c-637a-49a4-a94c-622671d0ab32 HTTP/1.1
Content-Type: application/json
Content-Length: 30
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "markForDeletion" : true
}

HTTP Response

HTTP/1.1 200 OK
  1. Trigger the deletion.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/clusters/2d54bb6c-637a-49a4-a94c-622671d0ab32' -i -X DELETE \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

DELETE /v1/clusters/2d54bb6c-637a-49a4-a94c-622671d0ab32 HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/c6589992-24bc-4dda-8689-558b9c1dbdf5
Content-Length: 166

{
  "id" : "c6589992-24bc-4dda-8689-558b9c1dbdf5",
  "name" : "Add Cluster Workflow",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2022-02-08T08:12:58.274Z"
}
  1. Poll the task until "status" is not "IN_PROGRESS" using the "id" from the previous response.

Tip
Refer to: Get a Task.
  • If the "status" is "SUCCESSFUL", the task is completed successfully.

  • If the "status" is "FAILED", the task can be re-executed.

Tip
Refer to: Retry a Task.

2.11. Multi Site Management

2.11.1. Create a Multi Site Management Federation

A federation is a group of Cloud Foundation instances, such that each member can view information about the other Cloud Foundation instances in the group. The federation creator is granted the controller role by default.

You can create multiple federations within your organization, but global visibility is available only within a federation. Members can belong to only a single federation at a time.

Prerequisites
  1. The following data is required

    • Name of the federation

    • Member Details

      • FQDN of the Member

      • Role of the Member (CONTROLLER)

      • Site Type (DATACENTER)

      • Site Name

      • City where the site is located

      • State where the site is located (Optional)

      • Country where the site is located

      • Location coordinates

        • Longitude

        • Latitude

  2. Ensure, VCF Instance Role is set to NOT_JOINED.

Steps
  1. Trigger the Create Federation
    cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/sddc-federation' -i -X PUT \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWR....' \
    -d '{
  "federationName" : "New Federation",
  "memberJoinDetail" : {
    "role" : "CONTROLLER",
    "fqdn" : "sfo-vcf01.rainpole.io",
    "siteType" : "DATACENTER",
    "siteName" : "Palo Alto Epic Center",
    "country" : "USA",
    "state" : "California",
    "city" : "Palo Alto",
    "coordinate" : {
      "longitude" : -122.838,
      "latitude" : 37.286
    }
  }
}'

HTTP Request

PUT /v1/sddc-federation HTTP/1.1
Content-Type: application/json
Content-Length: 369
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWR....

{
  "federationName" : "New Federation",
  "memberJoinDetail" : {
    "role" : "CONTROLLER",
    "fqdn" : "sfo-vcf01.rainpole.io",
    "siteType" : "DATACENTER",
    "siteName" : "Palo Alto Epic Center",
    "country" : "USA",
    "state" : "California",
    "city" : "Palo Alto",
    "coordinate" : {
      "longitude" : -122.838,
      "latitude" : 37.286
    }
  }
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Content-Length: 246

{
  "status" : "SUCCEEDED",
  "operation" : null,
  "taskId" : "67e1515d-4400-4876-8d1c-809085294bc0",
  "remoteOperationTask" : null,
  "progressDetails" : null,
  "created" : null,
  "lastUpdated" : null,
  "errors" : null,
  "payload" : null
}
  1. Create federation API returns a task object. Task object has the task id.

  2. Poll for the status of the workflow using the task ID with request
    TIP: Refer to: Get a Task

  3. Validate the input specification.

    • Validates if VCF instance Role is other than CONTROLLER

  4. Initialize the fabric services

  5. Initialize the topics

  6. Initialize persistent store

  7. Add member to federation

  8. Update persistent store with new member details

    • If the "status" is "SUCCEEDED", the task is completed successfully.

    • If the "status" is "FAILED", the task can be re-executed.

2.11.2. Invite

You can invite Cloud Foundation instances to join a federation. They can be invited as a controller or a regular member.
In the InvitationSpec or http/curl request if inviteeRole is MEMBER, the vcf instance will have limited access and will not be able to view federation details.
Inorder to view federation details, use inviteeRole as CONTROLLER or MANAGER.
Since a federation can include a maximum of three controllers, you may want to assign the controller role to the primary data centers within the federation.

Prerequisites
  1. Federation must be created.

  2. You must have the controller role to invite a member to a federation.

  3. Only one member can be invited at a time.

  4. The following data is required

    • Role of the Invitee

    • FQDN of the Invitee

Steps
  1. Trigger the task using the valid invite spec.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/sddc-federation/membership-tokens' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWR....' \
    -d '{
  "inviteeRole" : "MEMBER",
  "inviteeFqdn" : "sfo-vcf01.rainpole.io",
  "tokenExpiryHours" : 0.0
}'

HTTP Request

POST /v1/sddc-federation/membership-tokens HTTP/1.1
Content-Type: application/json
Content-Length: 101
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWR....

{
  "inviteeRole" : "MEMBER",
  "inviteeFqdn" : "sfo-vcf01.rainpole.io",
  "tokenExpiryHours" : 0.0
}

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 203

{
  "controllerFqdn" : [ "sfo-vcf01.rainpole.io" ],
  "inviteeRole" : "MEMBER",
  "inviteeFqdn" : "sfo-vcf01.rainpole.io",
  "invitationToken" : "43f525b6-6c11-41c2-92de-f020650f3b7a",
  "error" : null
}
  1. This is a sync call, and on success should get a token, role and name.

  2. If there is a failure, appropriate error is returned. Perform relevant corrective actions before retrying this API.

2.11.3. Join the Federation

You can join a federation as a controller/manager/member depending on the assigned role in the invitation.
Use the token you received as part of the invitation, to trigger a join API.

An invitation is valid for ten days. You must request a new invitation after this period.

Prerequisites
  1. The following data is required

    • Controller FQDN

      • You can provide any of the controllers FQDN to join the federation. However, it is preferred to provide
        the FQDN of the controller who sent out the invitation.

    • Token

      • Token you received from the controller as part of the invitation.

    • Member Details

      • Role of the invitee, this should match the role you provided during invite.

      • FQDN of the invitee

      • Type of the site, it will always be "DATACENTER" for 1.0 release

      • Name of the site

      • Country

      • State

      • City

      • Coordinate of the site

        • Longitude

        • Latitude

Steps

Provide above inputs and invoke the API.
If the request goes through successfully, we should see this new member on the world map.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/sddc-federation/members' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWR....' \
    -d '{
  "controllerFqdn" : "sfo-vcf01.rainpole.io",
  "joinToken" : "test",
  "commonName" : "nyc-vcf01.rainpole.io",
  "memberJoinDetail" : {
    "role" : "MEMBER",
    "fqdn" : "nyc-vcf01.rainpole.io",
    "siteType" : "DATACENTER",
    "siteName" : "New York Epic Center",
    "country" : "USA",
    "state" : "New York",
    "city" : "New York",
    "coordinate" : {
      "longitude" : -74.006,
      "latitude" : 40.712
    }
  }
}'

HTTP Request

POST /v1/sddc-federation/members HTTP/1.1
Content-Type: application/json
Content-Length: 433
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWR....

{
  "controllerFqdn" : "sfo-vcf01.rainpole.io",
  "joinToken" : "test",
  "commonName" : "nyc-vcf01.rainpole.io",
  "memberJoinDetail" : {
    "role" : "MEMBER",
    "fqdn" : "nyc-vcf01.rainpole.io",
    "siteType" : "DATACENTER",
    "siteName" : "New York Epic Center",
    "country" : "USA",
    "state" : "New York",
    "city" : "New York",
    "coordinate" : {
      "longitude" : -74.006,
      "latitude" : 40.712
    }
  }
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Content-Length: 246

{
  "status" : "SUCCEEDED",
  "operation" : null,
  "taskId" : "6a8d1586-cb60-4564-984d-8352f2ec1e39",
  "remoteOperationTask" : null,
  "progressDetails" : null,
  "created" : null,
  "lastUpdated" : null,
  "errors" : null,
  "payload" : null
}

2.11.4. Get progress

Use this API to get progress of long running operations in the system. When operations like bootstrap, join or teardown are triggered, as part of response
you receive a request ID. Use this request ID to track the status of the operation.

Prerequisites
  • Request ID

Steps
  1. Provide a valid request ID and invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/sddc-federation/tasks/e579c77c-8e26-4499-bf6a-2027abfd7f5c' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWR....'

HTTP Request

GET /v1/sddc-federation/tasks/e579c77c-8e26-4499-bf6a-2027abfd7f5c HTTP/1.1
Content-Type: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWR....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 212

{
  "status" : "SUCCEEDED",
  "operation" : null,
  "taskId" : null,
  "remoteOperationTask" : null,
  "progressDetails" : null,
  "created" : null,
  "lastUpdated" : null,
  "errors" : null,
  "payload" : null
}

2.11.5. Get Multi Site Management Federation Details

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/sddc-federation' -i -X GET \
    -H 'Authorization: Bearer etYWR....'

HTTP Request

GET /v1/sddc-federation HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWR....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 3212

[ {
  "memberDetails" : {
    "role" : "CONTROLLER",
    "fqdn" : "sfo-vcf01.rainpole.io",
    "siteType" : "DATACENTER",
    "siteName" : "Palo Alto Epic Center",
    "country" : "USA",
    "state" : "California",
    "city" : "Palo Alto",
    "coordinate" : {
      "longitude" : -122.838,
      "latitude" : 37.286
    }
  },
  "memberInventory" : {
    "capacity" : {
      "summary" : {
        "domainCount" : 2,
        "aggregatedCapacity" : {
          "cpu" : {
            "free" : 58.795,
            "total" : 79.799,
            "used" : 21.00399,
            "unallocated" : 0.0,
            "unit" : "GHZ"
          },
          "hostCount" : {
            "total" : 10,
            "unallocated" : 4,
            "used" : 6
          },
          "datastores" : [ {
            "used" : 0.866,
            "datastoreName" : "sfo-m01-cl01-ds-vsan01",
            "datastoreType" : "VSAN",
            "freeSpace" : 5.839,
            "capacity" : 6.705,
            "unallocated" : 2.694,
            "unit" : "TB"
          }, {
            "used" : 0.866,
            "datastoreName" : "sfo-m01-cl01-ds-vsan02",
            "datastoreType" : "VSAN",
            "freeSpace" : 5.839,
            "capacity" : 6.705,
            "unallocated" : 2.694,
            "unit" : "TB"
          } ],
          "memory" : {
            "free" : 76.109,
            "total" : 375.0,
            "used" : 298.89,
            "unallocated" : 0.0,
            "unit" : "GB"
          }
        },
        "domainTypeInfo" : [ {
          "type" : null,
          "domainCount" : 2,
          "aggregatedCapacity" : {
            "cpu" : {
              "free" : 58.795,
              "total" : 79.799,
              "used" : 21.00399,
              "unallocated" : 0.0,
              "unit" : "GHZ"
            },
            "hostCount" : {
              "total" : 10,
              "unallocated" : 4,
              "used" : 6
            },
            "datastores" : [ {
              "used" : 0.866,
              "datastoreName" : "sfo-m01-cl01-ds-vsan01",
              "datastoreType" : "VSAN",
              "freeSpace" : 5.839,
              "capacity" : 6.705,
              "unallocated" : 2.694,
              "unit" : "TB"
            }, {
              "used" : 0.866,
              "datastoreName" : "sfo-m01-cl01-ds-vsan02",
              "datastoreType" : "VSAN",
              "freeSpace" : 5.839,
              "capacity" : 6.705,
              "unallocated" : 2.694,
              "unit" : "TB"
            } ],
            "memory" : {
              "free" : 76.109,
              "total" : 375.0,
              "used" : 298.89,
              "unallocated" : 0.0,
              "unit" : "GB"
            }
          }
        } ],
        "domainInfo" : null
      }
    },
    "inventoryInfo" : null,
    "softwareInfo" : {
      "pendingUpdates" : 1
    },
    "creationTime" : null,
    "createTime" : "1595522545"
  },
  "memberLiveness" : {
    "livelinessCode" : "GREEN",
    "livelinessDetails" : [ "The vcf site Palo Alto Epic Centeris live" ]
  },
  "memberHealth" : {
    "healthCode" : "GREEN",
    "healthDetails" : [ "Category: CPU, usage: 60.0, and it is normal." ]
  }
} ]

This API can be used to get list of all VCF instances in the federation with details.
* VCF instance details
* VCF instance inventory
* VCF instance liveness
* VCF instance health

2.11.6. Get Members

Get the details of the members.

Prerequisites
  1. Federation must be created.

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/sddc-federation/members' -i -X GET \
    -H 'Authorization: Bearer etYWR....'

HTTP Request

GET /v1/sddc-federation/members HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWR....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 413

{
  "memberDetail" : {
    "role" : "CONTROLLER",
    "fqdn" : "sfo-vcf01.rainpole.io",
    "siteType" : "DATACENTER",
    "siteName" : "Palo Alto Epic Center",
    "country" : "USA",
    "state" : "California",
    "city" : "Palo Alto",
    "coordinate" : {
      "longitude" : -122.838,
      "latitude" : 37.286
    }
  },
  "federationName" : "New Federation",
  "permissions" : [ "JOIN" ],
  "error" : null
}

2.11.7. Leave from the federation

Leaving a federation removes the Multi-Instance Management view from your SDDC Manager dashboard.

If you are a controller, you can leave a federation only if there is at least one more controller in the federation.
If you are the only controller member in a federation, you must dismantle a federation instead of leaving it.

Prerequisites
  1. The following data is required

    • ID (FQDN) of the member to be deleted, specified as a path variable.

      • If member ID is equal to the FQDN of invoking SDDC Manager, it is treated as leave.

      • Otherwise, it is treated as evicting the member (specified by ID) by invoking SDDC Manager. In this case the invoking SDDC Manager must be a Controller.

  2. The Request param 'force' is optional

    • If force is set to true, the leaving member will not contact controller, but shut down local system.
      Default value for force is false, in which case leaving member will issue REST request to a remote controller asking for leave.

  3. If the invoking SDDC Manager is the only member in the federation, do not use leave, but teardown instead.

Steps
  1. If ID is the same as FQDN of invoking SDDC Manager and force is false

    • This member will issue rest request to a remote controller asking for leave, if the remote response
      is successful, it will then shut down its local system. Persistent store will be archived and cleaned up.

  2. If ID is the same as FQDN of invoking SDDC Manager and force is true

    • This member will not contact remote controller but shut down its local system directly. Persistent store will be archived and cleaned up.

  3. If ID is the different from FQDN of invoking SDDC Manager

    • The invoking SDDC Manager will evict the member (specified by ID) from federation and ask the evictee to clean its system.
      force variable in this case doesn’t matter.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/sddc-federation/members/nyc-vcf01.rainpole.io' -i -X DELETE \
    -H 'Authorization: Bearer etYWR....'

HTTP Request

DELETE /v1/sddc-federation/members/nyc-vcf01.rainpole.io HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWR....

HTTP Response

HTTP/1.1 202 Accepted
Content-Disposition: inline;filename=f.txt
Content-Type: application/json
Content-Length: 246

{
  "status" : "SUCCEEDED",
  "operation" : null,
  "taskId" : "26335c7d-89ff-4167-8411-bd7ea853f768",
  "remoteOperationTask" : null,
  "progressDetails" : null,
  "created" : null,
  "lastUpdated" : null,
  "errors" : null,
  "payload" : null
}

To Force remove the member use following:

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/sddc-federation/members/nyc-vcf01.rainpole.io?force=true' -i -X DELETE \
    -H 'Authorization: Bearer etYWR....'

HTTP Request

DELETE /v1/sddc-federation/members/nyc-vcf01.rainpole.io?force=true HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWR....

HTTP Response

HTTP/1.1 202 Accepted
Content-Disposition: inline;filename=f.txt
Content-Type: application/json
Content-Length: 246

{
  "status" : "SUCCEEDED",
  "operation" : null,
  "taskId" : "57005788-32ee-4457-834e-dbed9eed3912",
  "remoteOperationTask" : null,
  "progressDetails" : null,
  "created" : null,
  "lastUpdated" : null,
  "errors" : null,
  "payload" : null
}

2.11.8. Tear Down Federation

You can dismantle a federation if you are the last controller member in the federation.
Only members with the controller role can dismantle a federation.

Prerequisites
  1. No request body is needed.

  2. Invoking SDDC Manager must be of Controller role, and the only one in the federation.

Steps
  1. When Teardown API is invoked, it does the following

    • All fabric services previously set up will be shut down.

    • Persistent store will be archived and cleaned up.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/sddc-federation' -i -X DELETE \
    -H 'Authorization: Bearer etYWR....'

HTTP Request

DELETE /v1/sddc-federation HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWR....

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Content-Length: 246

{
  "status" : "SUCCEEDED",
  "operation" : null,
  "taskId" : "62565abd-576b-46ac-bb34-2d5654dbab2b",
  "remoteOperationTask" : null,
  "progressDetails" : null,
  "created" : null,
  "lastUpdated" : null,
  "errors" : null,
  "payload" : null
}

2.12. AVNs

2.12.1. Validate AVN Creation

  • Validating the Application virtual networks (AVNs) specification before creation.

  • AVNs are used in deploying vRealize vRealize Suite components.

  • AVNs are backed by overlay segments using the encapsulation protocol of NSX-T.

  • AVNs use a single IP network address space, to span across data centers.

Prerequisites

The following data is required for the Validate AVN Creation Spec:

  • TODO

Tip
Refer to: AvnsCreationSpec.
Steps
  1. Validate the input specification using Validate AVN Creation Spec.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/avns/validations' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "edgeClusterId" : "52309268-2a1f-4c2c-b8ea-3dd78b6d5677",
  "avns" : [ {
    "name" : "sfo-m01-seg01",
    "regionType" : "REGION_A",
    "subnet" : "192.168.20.0",
    "subnetMask" : "255.255.255.0",
    "gateway" : "192.168.20.1",
    "mtu" : 9000,
    "routerName" : "sfo-m01-seg01-t0-gw01"
  }, {
    "name" : "xreg-m01-seg01",
    "regionType" : "X_REGION",
    "subnet" : "192.168.30.0",
    "subnetMask" : "255.255.255.0",
    "gateway" : "192.168.30.1",
    "mtu" : 9000,
    "routerName" : "xreg-m01-seg01-t0-gw01"
  } ]
}'

HTTP Request

POST /v1/avns/validations HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 535
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "edgeClusterId" : "52309268-2a1f-4c2c-b8ea-3dd78b6d5677",
  "avns" : [ {
    "name" : "sfo-m01-seg01",
    "regionType" : "REGION_A",
    "subnet" : "192.168.20.0",
    "subnetMask" : "255.255.255.0",
    "gateway" : "192.168.20.1",
    "mtu" : 9000,
    "routerName" : "sfo-m01-seg01-t0-gw01"
  }, {
    "name" : "xreg-m01-seg01",
    "regionType" : "X_REGION",
    "subnet" : "192.168.30.0",
    "subnetMask" : "255.255.255.0",
    "gateway" : "192.168.30.1",
    "mtu" : 9000,
    "routerName" : "xreg-m01-seg01-t0-gw01"
  } ]
}

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 235

{
  "id" : "835ec0ba-8790-4d2b-ad86-9750521dfcdc",
  "executionStatus" : "COMPLETED",
  "resultStatus" : "SUCCEEDED",
  "validationChecks" : [ {
    "description" : "AVNsCreationSpecValidation",
    "resultStatus" : "SUCCEEDED"
  } ]
}

2.12.2. Create AVN

  • Creating Application virtual networks (AVNs).

  • AVNs are used in deploying vRealize vRealize Suite components.

  • AVNs are backed by overlay segments using the encapsulation protocol of NSX-T.

  • AVNs use a single IP network address space, to span across data centers.

Prerequisites

The following data is required for the Create AVNs:

  • TODO

Tip
Refer to: AvnsCreationSpec.
Steps
  1. Invoke the Create AVNs. This API returns a task which can be polled and monitored.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/avns' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "edgeClusterId" : "52309268-2a1f-4c2c-b8ea-3dd78b6d5677",
  "avns" : [ {
    "name" : "sfo-m01-seg01",
    "regionType" : "REGION_A",
    "subnet" : "192.168.20.0",
    "subnetMask" : "255.255.255.0",
    "gateway" : "192.168.20.1",
    "mtu" : 9000,
    "routerName" : "sfo-m01-seg01-t0-gw01"
  }, {
    "name" : "xreg-m01-seg01",
    "regionType" : "X_REGION",
    "subnet" : "192.168.30.0",
    "subnetMask" : "255.255.255.0",
    "gateway" : "192.168.30.1",
    "mtu" : 9000,
    "routerName" : "xreg-m01-seg01-t0-gw01"
  } ]
}'

HTTP Request

POST /v1/avns HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 535
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "edgeClusterId" : "52309268-2a1f-4c2c-b8ea-3dd78b6d5677",
  "avns" : [ {
    "name" : "sfo-m01-seg01",
    "regionType" : "REGION_A",
    "subnet" : "192.168.20.0",
    "subnetMask" : "255.255.255.0",
    "gateway" : "192.168.20.1",
    "mtu" : 9000,
    "routerName" : "sfo-m01-seg01-t0-gw01"
  }, {
    "name" : "xreg-m01-seg01",
    "regionType" : "X_REGION",
    "subnet" : "192.168.30.0",
    "subnetMask" : "255.255.255.0",
    "gateway" : "192.168.30.1",
    "mtu" : 9000,
    "routerName" : "xreg-m01-seg01-t0-gw01"
  } ]
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/7318b90c-34a4-47a4-813e-a4eb1403aebc
Content-Length: 209

{
  "id" : "7318b90c-34a4-47a4-813e-a4eb1403aebc",
  "name" : "Deploying Overlay AVNs for default cluster of management domain",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2022-02-08T08:19:10.068Z"
}
  1. Poll the status of the task using the task API with the ID from the response of the previous API.

Tip
Refer to: Get a Task.

2.12.3. Get the AVNs

This API is used to fetch all configured AVNs

Steps
  1. Invoke the API

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/avns' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/avns HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 312

[ {
  "id" : "sfo-m01-seg01",
  "name" : "sfo-m01-seg01",
  "regionType" : "REGION_A",
  "subnet" : "192.168.20.0",
  "subnetMask" : "255.255.255.0",
  "gateway" : "192.168.20.1",
  "mtu" : 9000,
  "portGroupName" : "sfo-m01-seg01-pg",
  "domainName" : "rainpole.io",
  "routerName" : "sfo-m01-seg01-t0-gw01"
} ]

2.12.4. Get the AVNs by RegionType

This API is used to fetch all configured AVNs for a given region type

Prerequisites
  1. The following data is required

    • RegionType of the AVN

Steps
  1. Invoke the API

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/avns?regionType=X_REGION' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/avns?regionType=X_REGION HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 316

[ {
  "id" : "xreg-m01-seg01",
  "name" : "xreg-m01-seg01",
  "regionType" : "X_REGION",
  "subnet" : "192.168.30.0",
  "subnetMask" : "255.255.255.0",
  "gateway" : "192.168.30.1",
  "mtu" : 9000,
  "portGroupName" : "xreg-m01-seg01-pg",
  "domainName" : "rainpole.io",
  "routerName" : "xreg-m01-seg01-t0-gw01"
} ]

2.13. vRealize Suite Lifecycle Manager

2.13.1. vRealize Suite Lifecycle Manager Deployment

To deploy and manage the vRealize Suite products after the initial greenfield deploy of VMware Cloud Foundation, you must first deploy vRealize Suite Lifecycle Manager. To guarantee the success of the vRealize Suite Lifecycle Manager deployment operation, you should pre-validate the deployment input.

Prerequisites
  1. The following data is required:

    • Application Virtual Networks are configured

    • Unique vRealize Suite Lifecycle Manager hostname and corresponding IP address from the X-Region Application Virtual Network

    • vRealize Suite Lifecycle Manager API and root passwords

    • Free IP address from the X-Region Application Virtual Network for the Standalone Tier 1 router

  2. Additional prerequisites:

    • The vRealize Suite Lifecycle Manager bundle needs to be downloaded and applied on the SDDC Manager

    • Application Virtual Network should have connectivity to the management VLAN

Note
vRealize Suite Lifecycle Manager deployment is not available if vRealize Suite Lifecycle Manager is successfully deployed as only one instance of it is allowed in the system. In this case, calling the API will produce an error and the user will be provided with information about the allowed HTTP methods for the given endpoint. This information can be found in the "allow" field from the response headers.
Steps
  1. Assemble the vRealize Suite Lifecycle Manager deployment input specification.

Tip
Refer to VrslcmDeploymentSpec
  1. Trigger the vRealize Suite Lifecycle Manager deployment input specification validations. For help using the vRealize Suite Lifecycle Manager validation API refer to: Get the status of the validations for vRealize Lifecycle Manager deployment

Warning
The triggered validations return a response containing a validation report ID. With that ID, poll the vRealize Suite Lifecycle Manager validations API. While the validations are running, the "executionStatus" is "IN_PROGRESS". You should poll the API until the "executionStatus" is "COMPLETED".

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/vrslcms/validations/77c17ee9-7fa6-455f-ace6-602e43c76887' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/vrslcms/validations/77c17ee9-7fa6-455f-ace6-602e43c76887 HTTP/1.1
Content-Type: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 170

{
  "id" : "9b56b98b-ba62-42cb-9ac1-f65e2d20ff9c",
  "description" : "Validating vRealize Suite Lifecycle Manager input parameters",
  "executionStatus" : "IN_PROGRESS"
}
  1. Once the validations are completed, you can get the overall result of the validations and a detailed list with all checks that have been done and the corresponding status of each check.

    • In case of no errors in the input specification, the "executionStatus" is "COMPLETED" and "resultStatus" is "SUCCEEDED".

    • In case of only warnings in the input specification, the "executionStatus" is "COMPLETED" and "resultStatus" is "FAILED_WITH_WARNINGS".

    • In case of errors in the input specification, the "executionStatus" is "COMPLETED" and "resultStatus" is "FAILED".

Tip
The validation checks have two severity levels - warning and error. If a failed validation check is marked as an error, the issue must be resolved before proceeding with the deployment. If the issue is marked as a warning, you are advised to look at it and do the best to fix it. You could ignore it and proceed on your own risk without fixing it, but this might affect the deployment and make it fail at a later stage.
NOTE: Make changes to the input specification and re-validate using a new API invocation
  1. Once there are no errors and warnings in the validation response, you can proceed with the vRealize Suite Lifecycle Manager deployment. Although the warnings are not forced to be resolved, you should give the best to resolve the uncovered issues by the validations.

  2. Trigger the vRealize Suite Lifecycle Manager deployment. This will start a long-running task whose details can be obtained form the HTTP response.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/vrslcms' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "fqdn" : "vrslcm.vrack.vsphere.local",
  "sshPassword" : "VMware123!",
  "apiPassword" : "VMware123!"
}'

HTTP Request

POST /v1/vrslcms HTTP/1.1
Content-Type: application/json
Content-Length: 107
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "fqdn" : "vrslcm.vrack.vsphere.local",
  "sshPassword" : "VMware123!",
  "apiPassword" : "VMware123!"
}

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/tasks/9b56b98b-ba62-42cb-9ac1-f65e2d20ff9c
Allow: GET
Content-Type: application/json
Content-Length: 131

{
  "id" : "9b56b98b-ba62-42cb-9ac1-f65e2d20ff9c",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2019-05-10T11:13:22.551Z"
}
  1. Track the task status using the "id" from the previous response. The GET URL is set in the header response and can be used directly. Refer to: Get a Task.

    • If the "status" is "IN_PROGRESS", the task is still in progress.

    • If the "status" is "SUCCESSFUL", the task is completed successfully.

    • If the "status" is "FAILED", the task can be re-executed.

Tip
Refer to: Retry a Task.

If the workflow fails after trying to restart the task, perform the vRealize Suite Lifecycle Manager rollback

2.13.2. vRealize Suite Lifecycle Manager Rollback

When vRealize Suite Lifecycle Manager deployment fails, you can perform rollback to get the environment in a clean state and start a fresh vRealize Suite Lifecycle Manager deployment.

Prerequisites
  1. Failed vRealize Suite Lifecycle Manager deployment operation.

Note
vRealize Suite Lifecycle Manager rollback is not available if vRealize Suite Lifecycle Manager is successfully deployed. In this case, calling the API will produce an error and the user will be provided with information about the allowed HTTP methods for the given endpoint. This information can be found in the "allow" field from the response headers.
Steps
  1. Trigger the vRealize Suite Lifecycle Manager rollback.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/vrslcm' -i -X DELETE \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

DELETE /v1/vrslcm HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/tasks/9b56b98b-ba62-42cb-9ac1-f65e2d20ff9c
Content-Type: application/json
Content-Length: 131

{
  "id" : "9b56b98b-ba62-42cb-9ac1-f65e2d20ff9c",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2019-05-10T11:13:22.551Z"
}
  1. Track the task status using the "id" from the previous response. The GET URL is set in the header response and can be used directly.

Tip
Refer to: Get a Task.
  • If the "status" is "IN_PROGRESS", the task is still in progress.

  • If the "status" is "SUCCESSFUL", the task is completed successfully.

  • If the "status" is "FAILED", the task can be re-executed.

Tip
Refer to: Retry a Task.

2.14. Workspace ONE Access for vRealize

2.14.1. Workspace ONE Access for vRealize

In order to have Workspace ONE Access you need to first deploy vRealize Suite Lifecycle Manager. After vRealize Suite Lifecycle Manager is deployed please refer to its public API documentation to deploy Workspace ONE Access.

Steps
  1. Deploy vRealize Suite Lifecycle Manager.

  1. Refer to vRealize Suite Lifecycle Manager Public API documentation for creating global environment.

2.15. vRealize Automation

2.15.1. vRealize Automation

In order to have vRealize Automation you need to first deploy vRealize Suite Lifecycle Manager and then Workspace ONE Access. After vRealize Suite Lifecycle Manager is deployed please refer to its public API documentation to deploy Workspace ONE Access and vRealize Automation.

Steps
  1. Deploy vRealize Suite Lifecycle Manager.

  1. Refer to vRealize Suite Lifecycle Manager Public API documentation for creating global environment.

  1. Refer to vRealize Suite Lifecycle Manager Public API documentation for creating vRealize Automation environment.

  1. Refer to vRealize Automation Public API documentation for connection vRealize Automation to workload domains.

2.16. vRealize Operations

2.16.1. vRealize Operations Manager

In order to have vRealize Operations Manager you need to first deploy vRealize Suite Lifecycle Manager and then Workspace ONE Access. After vRealize Suite Lifecycle Manager is deployed please refer to its public API documentation to deploy Workspace ONE Access and vRealize Operations Manager.

Steps
  1. Deploy vRealize Suite Lifecycle Manager.

  1. Refer to vRealize Suite Lifecycle Manager Public API documentation for creating global environment.

  1. Refer to vRealize Suite Lifecycle Manager Public API documentation for creating vRealize Operations Manager environment.

  1. vRealize Operations Manager is being automatically connected to the management domain after deployment.

  1. Refer to Connect vRealize Operations to workload domain for connecting vRealize Operations Manager to workload domains.

2.16.2. Connect vRealize Operations to workload domain

You can connect vRealize Operations product deployment in Cloud Foundation to your workload domains.

Prerequisites
  1. Before you can connect the management domain or workload domains to vRealize Operations, it must be deployed and in "ACTIVE" state.

Tip
For more information refer to Get all existing vRealize Operations instances
Steps
  1. Assemble the vRealize Operations domain specification.

Tip
Refer to DomainIntegration
  1. Trigger the vRealize Operations domain connection.

Tip
For help using the vRealize Log Insight domain connection API refer to: Connect/disconnect workload domains with vRealize Operations

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/vrops/domains' -i -X PUT \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "domainId" : "539ff90b-d70e-4082-bc52-435de9d7cd7c",
  "status" : "ENABLED"
}'

HTTP Request

PUT /v1/vrops/domains HTTP/1.1
Content-Type: application/json
Content-Length: 81
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "domainId" : "539ff90b-d70e-4082-bc52-435de9d7cd7c",
  "status" : "ENABLED"
}

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/tasks/9b56b98b-ba62-42cb-9ac1-f65e2d20ff9c
Content-Type: application/json
Content-Length: 131

{
  "id" : "9b56b98b-ba62-42cb-9ac1-f65e2d20ff9c",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2019-05-10T11:13:22.551Z"
}
Note
This operation is a long-running task which details can be obtained form the HTTP response.
  1. Track the task status using the "id" from the previous response.

Tip
Refer to: Get a Task.
  • If the "status" is "IN_PROGRESS", the task is still in progress.

  • If the "status" is "SUCCESSFUL", the task is completed successfully.

  • If the "status" is "FAILED", the task can be re-executed.

Tip
For task re-execution refer to: Retry a Task.
Note
To see the domain connection status of vRealize Operations refer to: Gets vRealize Operations integration status for workload domains

2.17. vRealize Log Insight

2.17.1. vRealize Log Insight

In order to have vRealize Log Insight you need to first deploy vRealize Suite Lifecycle Manager and then Workspace ONE Access. After vRealize Suite Lifecycle Manager is deployed please refer to its public API documentation to deploy Workspace ONE Access and vRealize Log Insight.

Steps
  1. Deploy vRealize Suite Lifecycle Manager.

  1. Refer to vRealize Suite Lifecycle Manager Public API documentation for creating global environment.

  1. Refer to vRealize Suite Lifecycle Manager Public API documentation for creating vRealize Log Insight environment.

  1. vRealize Log Insight is being automatically connected to the management domain after deployment.

  1. Refer to Connect vRealize Log Insight to workload domains for connection vRealize Log Insight to workload domains.

2.17.2. Connect vRealize Log Insight to workload domains

You can connect vRealize Log Insight product deployment in Cloud Foundation to your workload domains.

Prerequisites
  1. Verify that the vRealize Log Insight cluster is online and operational.

Steps
  1. Assemble the vRealize Log Insight domain specification.

Tip
Refer to Vrli
  1. Trigger the vRealize Log Insight domain connection.

Tip
For help using the vRealize Log Insight domain connection API refer to: Connects vRealize Log Insight with domain

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/vrli/domains' -i -X PUT \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "domainId" : "a46a59c1-ccd4-4676-bbe3-231e457c20f8",
  "status" : "ENABLED"
}'

HTTP Request

PUT /v1/vrli/domains HTTP/1.1
Content-Type: application/json
Content-Length: 81
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "domainId" : "a46a59c1-ccd4-4676-bbe3-231e457c20f8",
  "status" : "ENABLED"
}

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/tasks/9b56b98b-ba62-42cb-9ac1-f65e2d20ff9c
Allow: PUT
Content-Type: application/json
Content-Length: 130

{
  "id" : "9b56b98b-ba62-42cb-9ac1-f65e2d20ff9c",
  "status" : "SUCCESSFUL",
  "creationTimestamp" : "2019-05-10T11:13:22.551Z"
}
Note
This operation is a long-running task which details can be obtained form the HTTP response.
  1. Track the task status using the "id" from the previous response.

Tip
Refer to: Get a Task.
  • If the "status" is "IN_PROGRESS", the task is still in progress.

  • If the "status" is "SUCCESSFUL", the task is completed successfully.

  • If the "status" is "FAILED", the task can be re-executed.

Tip
For task re-execution refer to: Retry a Task.

2.18. Backup and Restore

Back up and restore solution is provided to backup SDDC manager and configure NSX manager backup.

2.18.1. Configure backup of SDDC manager and NSX manager

It is essential to review the basic principles in a file-based solution for backup. In such a solution, the state of a product is periodically exported to a file that is stored in a domain different than the one where the product is running. If the product needs to be restored, the OVA is re-deployed and a selected backup-file is used to restore the state.

NSX Manager files are backed up by default in the SDDC Manager VM which also has to be backed up. You can configure an external SFTP server as a backup location which is the recommended solution. NSX Manager is backed up every 1 hour

This section provides the steps to configure NSX backup location and the SDDC Manager backup location to an external SFTP server along with encryption configuration for both SDDC Manager and NSX Manager backup.

Backup of SDDC manager can be scheduled by setting the schedule for SDDC Manager in the configuration. The state change driven backups are enabled by default with SDDC Manager scheduled backups and can not be enabled when the scheduled backups are disabled. User must disable state change driven backups when disabling scheduled backups. User can also set a backup retention policy for SDDC Manager backups. When the scheduled backups of SDDC Manager are enabled, the below default retention policy is set for SDDC Manager backups.

{"numberOfMostRecentBackups" : 10, "numberOfDaysOfHourlyBackups" : 2, "numberOfDaysOfDailyBackups" : 15}

SDDC Manager’s backup retention policy is designed to retain as many latest backups as possible and also to retain optimal number of backups for a long period of time. Using this policy, user can retain a given number of most recent backups, and hourly backups(only the latest backup is retained in an hour) for a given number of days, and daily backups(only the latest backup is retained per day) for a given number of days. For example, as per the above default policy, the very recent 10 backups will be retained, and on top of that hourly backups will be retained for last 2 days, and on top of that daily backups will be retained for last 15 days.

Prerequisites
  1. The following data is required

    • Encryption

      • Twelve or more characters.

      • At least one upper-case letter.

      • At least two digits.

      • At least one special character.

Note
SDDC Manager does not store previously-used passphrases. You must store the passphrase in a secure location separate from the backup files and from the Cloud Foundation environment you are protecting.
  • FTP server details to save the backup file :

    • IP or FQDN of the server

    • port

    • protocol, which is SFTP

    • username

    • password

    • ssh fingerprint

    • directory path to save the backup file

  • SDDC manager schedule details :

    • Frequency of the schedule

    • Schedule details

  • The user credentials should have the role of an ADMIN

Tip
To get fingerprint execute the below command
ssh-keygen -lf <(ssh-keyscan -t ssh-rsa -p <port-number> <server-IP-address> 2>/dev/null)
Note
Fingerprint should be SHA-256 RSA key.
Steps
  1. Trigger the task using the valid input specification.

Note
To trigger the API, the user should have a role of an ADMIN in VCF.
Note
Resource Type allowed for scheduling backup is SDDC_MANAGER.
Note
Only absolute path is accepted for directory path
Note
Scheduling frequency WEEKLY takes the fields daysOfTheWeek, hoursOfTheDay and minuteOfTheHour. Scheduling frequency HOURLY takes the field minuteOfTheHour.
Tip
Refer to Security section to set the role as ADMIN for the user.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/system/backup-configuration' -i -X PUT \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "encryption" : {
    "passphrase" : "VMwareBackup@1"
  },
  "backupLocations" : [ {
    "server" : "10.92.33.23",
    "port" : 22,
    "protocol" : "SFTP",
    "username" : "backup",
    "password" : "FTPServer@1",
    "directoryPath" : "/vmware/backup",
    "sshFingerprint" : "SHA256:w2NgXhG2XXXXXXXX"
  } ],
  "backupSchedules" : [ {
    "resourceType" : "SDDC_MANAGER",
    "takeScheduledBackups" : true,
    "frequency" : "WEEKLY",
    "daysOfWeek" : [ "SUNDAY", "THURSDAY" ],
    "hourOfDay" : 12,
    "minuteOfHour" : 34,
    "takeBackupOnStateChange" : true,
    "retentionPolicy" : {
      "numberOfMostRecentBackups" : 15,
      "numberOfDaysOfHourlyBackups" : 10,
      "numberOfDaysOfDailyBackups" : 20
    }
  } ]
}'
Request Body
PUT /v1/system/backup-configuration HTTP/1.1
Content-Type: application/json
Content-Length: 732
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "encryption" : {
    "passphrase" : "VMwareBackup@1"
  },
  "backupLocations" : [ {
    "server" : "10.92.33.23",
    "port" : 22,
    "protocol" : "SFTP",
    "username" : "backup",
    "password" : "FTPServer@1",
    "directoryPath" : "/vmware/backup",
    "sshFingerprint" : "SHA256:w2NgXhG2XXXXXXXX"
  } ],
  "backupSchedules" : [ {
    "resourceType" : "SDDC_MANAGER",
    "takeScheduledBackups" : true,
    "frequency" : "WEEKLY",
    "daysOfWeek" : [ "SUNDAY", "THURSDAY" ],
    "hourOfDay" : 12,
    "minuteOfHour" : 34,
    "takeBackupOnStateChange" : true,
    "retentionPolicy" : {
      "numberOfMostRecentBackups" : 15,
      "numberOfDaysOfHourlyBackups" : 10,
      "numberOfDaysOfDailyBackups" : 20
    }
  } ]
}
Response Body
HTTP/1.1 202 Accepted
Location: /v1/tasks/fb7d6213-9e99-4cf1-9cb9-d987db4e2658
Content-Type: application/json
Content-Length: 210

{
  "id" : "fb7d6213-9e99-4cf1-9cb9-d987db4e2658",
  "name" : "Configure backup on VCF Components and register backup locations",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2019-05-10T11:13:22.551Z"
}
  1. Poll the task until "status" is not "IN_PROGRESS" using the "id" from the previous response.

Tip
Refer to: Get a Task.
  • If the "status" is "SUCCESSFUL", the task is completed successfully.

  • If the "status" is "FAILED", the task can be re-executed.

Note
The SFTP server credentials are saved before configuring any NSX managers. In case configuring the NSX manager failed, an attempt is still made to configure as many NSX managers as possible before failing the task.
Tip
Refer to: Retry a Task.

2.18.2. Edit the Backup Configuration

Prerequisites
  1. The following data is required

    • The configuration which has to be edited (Backup location or Encryption or Backup schedules or all).

    • User credentials with role as an ADMIN in VCF.

Note
In case you are editing the passphrase, you must store the passphrase in a secure location separate from the backup files and from the Cloud Foundation environment. The encryption passphrase is mapped to the backup file. Editing the passphrase will not update the configured passphrase for previously backed up file.
Note
In case you are editing the backup location, previously collected NSX backups must be manually migrated to the new location.
All the parameters of backup location have to be given as input while editing the backup location.
Note
Editing backup configuration updates all the NSX manager’s backup configuration.
Steps
  1. Invoke the API

Tip
To get the current backup configuration Refer to: Get the Backup Configuration
  1. The example shown is to edit only the backup location whereas encryption and backup schedule is unchanged.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/system/backup-configuration' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "backupLocations" : [ {
    "server" : "10.92.33.24",
    "port" : 22,
    "protocol" : "SFTP",
    "username" : "backup",
    "password" : "FTPServer@2",
    "directoryPath" : "/vmware/backup",
    "sshFingerprint" : "SHA256:w2NgXhG2XXXXXXXX"
  } ]
}'
Request Body
PATCH /v1/system/backup-configuration HTTP/1.1
Content-Type: application/json
Content-Length: 255
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "backupLocations" : [ {
    "server" : "10.92.33.24",
    "port" : 22,
    "protocol" : "SFTP",
    "username" : "backup",
    "password" : "FTPServer@2",
    "directoryPath" : "/vmware/backup",
    "sshFingerprint" : "SHA256:w2NgXhG2XXXXXXXX"
  } ]
}
Response Body
HTTP/1.1 202 Accepted
Location: /v1/tasks/fa8409a2-0408-4ae6-9bf0-54cc469de3ac
Content-Type: application/json
Content-Length: 210

{
  "id" : "fa8409a2-0408-4ae6-9bf0-54cc469de3ac",
  "name" : "Configure backup on VCF Components and register backup locations",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2019-05-10T11:13:22.551Z"
}
  1. The example shown is to edit only the backup schedule whereas backup location and encryption is unchanged.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/system/backup-configuration' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "backupSchedules" : [ {
    "resourceType" : "SDDC_MANAGER",
    "takeScheduledBackups" : true,
    "frequency" : "WEEKLY",
    "daysOfWeek" : [ "MONDAY" ],
    "hourOfDay" : 12,
    "minuteOfHour" : 23,
    "takeBackupOnStateChange" : true,
    "retentionPolicy" : {
      "numberOfMostRecentBackups" : 15,
      "numberOfDaysOfHourlyBackups" : 10,
      "numberOfDaysOfDailyBackups" : 20
    }
  } ]
}'
Request Body
PATCH /v1/system/backup-configuration HTTP/1.1
Content-Type: application/json
Content-Length: 407
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "backupSchedules" : [ {
    "resourceType" : "SDDC_MANAGER",
    "takeScheduledBackups" : true,
    "frequency" : "WEEKLY",
    "daysOfWeek" : [ "MONDAY" ],
    "hourOfDay" : 12,
    "minuteOfHour" : 23,
    "takeBackupOnStateChange" : true,
    "retentionPolicy" : {
      "numberOfMostRecentBackups" : 15,
      "numberOfDaysOfHourlyBackups" : 10,
      "numberOfDaysOfDailyBackups" : 20
    }
  } ]
}
Response Body
HTTP/1.1 202 Accepted
Location: /v1/tasks/bbbb7495-05fb-4c9d-902c-80558f9ea1bb
Content-Type: application/json
Content-Length: 209

{
  "id" : "bbbb7495-05fb-4c9d-902c-80558f9ea1bb",
  "name" : "Configure backup on VCF Components and register backup schedule",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2019-05-10T11:13:22.551Z"
}
  1. Poll the task until "status" is not "IN_PROGRESS" using the "id" from the previous response.

Tip
Refer to: Get a Task.
  • If the "status" is "SUCCESSFUL", the task is completed successfully.

  • If the "status" is "FAILED", the task can be re-executed.

Tip
Refer to: Retry a Task.

2.18.3. Get the Backup Configuration

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/system/backup-configuration' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/system/backup-configuration HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 603

{
  "backupLocations" : [ {
    "server" : "10.92.33.24",
    "port" : 22,
    "protocol" : "SFTP",
    "username" : "backup",
    "directoryPath" : "/vmware/backup"
  } ],
  "backupSchedules" : [ {
    "resourceType" : "SDDC_MANAGER",
    "takeScheduledBackups" : true,
    "frequency" : "WEEKLY",
    "daysOfWeek" : [ "MONDAY" ],
    "hourOfDay" : 12,
    "minuteOfHour" : 23,
    "takeBackupOnStateChange" : true,
    "retentionPolicy" : {
      "numberOfMostRecentBackups" : 15,
      "numberOfDaysOfHourlyBackups" : 10,
      "numberOfDaysOfDailyBackups" : 20
    }
  } ],
  "isConfigured" : true
}
Note
"isConfigured" notifies if the backup has been configured.
Note
Encryption details which was configured is not returned due to security reasons.

2.18.4. Initiate Backup of SDDC Manager

Back up the SDDC Manager VM regularly to avoid downtime and data loss in case of a system failure. If the SDDC Manager VM does fail, you can restore VM to the last backup

In case you need to restore the SDDC Manager VM, you select the backup file to restore and download the appropriate OVA file. You can deploy this OVA either through vCenter Server or the OVF tool. You then load the state on the newly deployed SDDC Manager VM.

Prerequisites
  1. The following action needs to be performed

    • Backup must be configured

  2. Computer that runs the backup automation script (or where you manually run the APIs). This computer may also be used to coordinate and support a restore operation. It can also host the FTP server required to protect the NSX Manager instances.

  3. Reliable and secure storage volume on which the backup files are stored. The computer and the storage need to be in a different fault domain.

Note
Only resourceType:SDDC_MANAGER is supported currently.
Steps
  1. Trigger the task using the valid input specification.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/backups/tasks' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "elements" : [ {
    "resourceType" : "SDDC_MANAGER"
  } ]
}'

HTTP Request

POST /v1/backups/tasks HTTP/1.1
Content-Type: application/json
Content-Length: 64
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "elements" : [ {
    "resourceType" : "SDDC_MANAGER"
  } ]
}

HTTP Response

HTTP/1.1 202 Accepted
Location: 3b48ffc5-fafd-46e5-88ee-ce3ccc4d7a93
Content-Type: application/json
Content-Length: 252

{
  "id" : "3b48ffc5-fafd-46e5-88ee-ce3ccc4d7a93",
  "name" : "SDDC Manager Backup Operation",
  "status" : "IN_PROGRESS",
  "resources" : [ {
    "type" : "BACKUP",
    "name" : "vcf-backup-sddc-manager-vrack-vsphere-local-2019-07-29-12-02-46"
  } ]
}
  1. Poll the task until "status" is not "IN_PROGRESS" using the "id" from the previous response.

Tip
Refer to: Get a Task.
  • If the "status" is "SUCCESSFUL", the task is completed successfully.

  • If the "status" is "FAILED", the task can be re-executed.

  1. The backup files are saved in the /nfs/vmware/vcf/nfs-mount/sddc-manager-backup directory on the SDDC Manager VM.

  2. In this example, the full filename of the backup file will be vcf-backup-sddc-manager-vrack-vsphere-local-2019-07-29-12-02-46.tar.gz

Tip
To inspect the contents of a backup tar file, use the decrypt command described in Initiate Restore of SDDC Manager
Note
Make sure to copy the backup file to a known location along with the corresponding passphrases.

2.18.5. Initiate Restore of SDDC Manager

In case of a failure, you can restore SDDC Manager from a saved backup.

Prerequisites
  1. The following data is required

    • Backup file name and location of the backup file

    • Encryption passphrase used to encrypt the backup file

Note
Only resourceType:SDDC_MANAGER is supported currently
Steps
  1. Power off the original SDDC Manager VM.

  2. Rename the VM to something like sddc-manager-original using the management domain vCenter Server.

  3. Identify the backup file to be used for the restore operation.

Tip
In most cases, you should select the most recently taken backup.
  1. The backup file contains sensitive data about your Cloud Foundation instance, including passwords in plain text. It is recommended you control access to the decrypted files and securely delete them when you are done with the restore operation.

  2. Using a computer that has access to the secure secondary storage where the backup files are stored, navigate to the backup file and extract the contents of the encrypted tar file using the following command.

OPENSSL_FIPS=1  openssl enc -d -aes-256-cbc -md sha256 -in filename-of-selected-file | tar -xz
  1. At the prompt, enter the passphrase that you configured before backing up SDDC Manager.

  2. The extracted metadata.json file contains the networking details and fips enablement details required for new SDDC manager deployment in further steps.

  3. In order to restore SDDC Manager, you need to deploy the SDDC Manager OVA.

  4. The link to download the OVA is found in the metadata.json file in the backup file.

  5. Download the SDDC Manager OVA from the link provided.

  6. Deploy SDDC Manager VM from vCenter Server or with the OVF Tool either in fips or non fips mode as specified in the metadata.json.

    • Deploy SDDC Manager VM from vCenter server

      • Log in to the management domain vCenter Server using a web browser that is running on a system that has access to the downloaded SDDC Manager OVA.

      • In the vSphere Client, expand SDDC-Datacenter > SDDC-Cluster1.

      • Right-click on Mgmt-ResourcePool and select Deploy OVF Template.

      • The Deploy OVF Template wizard appears.

      • Use the local file option and choose the downloaded SDDC Manager OVA

      • Specify the VM name as sddc-manager.

      • Select the location of the SDDC Manager VM as SDDC-Datacenter > Management VMs and click Next.

      • Specify the compute resource destination. See the metadata.json file for the name of the pool and click Next.

      • Verify the template details and click Next.

      • Read the license terms and click the checkbox at the bottom of the page to accept the license agreements.

      • On the storage page, keep the vSAN datastore selection. The datastore name is in the metadata.json file and click Next.

      • On the networks page:

        • Do not change the default setting for Source Network.

        • In Destination Network, select the port group that is listed in the metadata.json file.

        • Do not change the default setting for IP allocation and IP protocol.

      • Click Next.

      • For the fields on the Customize template page, refer to the metadata.json file. Note the following:

        • Specify the backup user password from the security_password_vault.jsonfile.

        • For the root, vcf, and admin user accounts, you can re-use the same passwords from the original SDDC Manager deployment or assign new ones. For password considerations, refer to the About the Deployment Parameter Workbook section in the VMware Cloud Foundation Deployment Guide.

        • Select the fips mode if the fips_enabled flag is set to true in metadata.json

        • Leave the DNS and NTP fields empty

        • (Optional) Existing PSC Settings section.

      • Click Next.

      • Review the OVF details and click Finish. The OVF deployment begins. You can view the details in the Tasks pane.

      • Power on the newly deployed SDDC Manager VM and wait for the vCenter Server UI to report its IP address has been assigned.

      • SSH in to the SDDC Manager and log in as the vcf user.

    • Deploy SDDC Manager VM with the OVF tool

      • Install the OVF tool on a system that has access to the SDDC Manager OVA that you downloaded.

      • Prerequisites

        • Download the OVF tool and install it on a system that has access to the SDDC Manager OVA that you downloaded

        • Retrieve the DNS name or IP address of a host from the management domain.

          • Log into the management domain vCenter Server

          • navigate to the management domain cluster

          • select an active host that is not reporting any vSAN errors

        • Retrieve the root password for the selected host. Search for the host’s DNS name in the security_password_vault.json, which displays the root password.

      • Run the following command with information from the metadata.json file.

For non-fips mode

+

ovftool --noSSLVerify --skipManifestCheck --powerOn --diskMode=thin --acceptAllEulas --
allowExtraConfig --ipProtocol=IPv4 --ipAllocationPolicy=fixedPolicy --datastore=datastoreName --
name=sddc-manager --X:injectOvfEnv --X:waitForIp --prop:ROOT_PASSWORD=Password --
prop:VCF_PASSWORD=Password --prop:LOCAL_USER_PASSWORD=Password --prop:BACKUP_PASSWORD=Password
--prop:vami.gateway.SDDC-Manager=gatewayIP --prop:vami.ip0.SDDC-Manager=SDDC_Manager_IP --
prop:vami.netmask0.SDDC-Manager=networkMask --prop:vami.hostname=hostName --
prop:vami.searchpath.SDDC-Manager=searchPath --prop:vami.domain.SDDC-Manager=domain --
network=portGroupName --prop:guestinfo.ntp="ntp" --prop:vami.DNS.SDDC-Manager="dns"
--X:logFile=./ovftool.log --X:logLevel=verbose OVA_filename vi://root:password_for_selected_host>@host_DNS_name_or_ IP

For the fips mode

+

ovftool --noSSLVerify --skipManifestCheck --powerOn --diskMode=thin --acceptAllEulas --
allowExtraConfig --ipProtocol=IPv4 --ipAllocationPolicy=fixedPolicy --datastore=datastoreName --
name=sddc-manager --X:injectOvfEnv --X:waitForIp --prop:ROOT_PASSWORD=Password --
prop:VCF_PASSWORD=Password --prop:LOCAL_USER_PASSWORD=Password  --prop:FIPS_ENABLE=True --prop:BACKUP_PASSWORD=Password
--prop:vami.gateway.SDDC-Manager=gatewayIP --prop:vami.ip0.SDDC-Manager=SDDC_Manager_IP --
prop:vami.netmask0.SDDC-Manager=networkMask --prop:vami.hostname=hostName --
prop:vami.searchpath.SDDC-Manager=searchPath --prop:vami.domain.SDDC-Manager=domain --
network=portGroupName --prop:guestinfo.ntp="ntp" --prop:vami.DNS.SDDC-Manager="dns"
--X:logFile=./ovftool.log --X:logLevel=verbose OVA_filename vi://root:password_for_selected_host>@host_DNS_name_or_ IP

+

OUTPUT:

Opening OVA source: /mnt/iso/sddc-foundation-bundle-4.0.0.0-16156896/sddc_manager_ova/VCF-SDDC-Manager-Appliance-4.0.0.0-16156896_OVF10.ova
The manifest does not validate
Opening VI target: vi://[email protected]:443/
Deploying to VI: vi://[email protected]:443/
Transfer Completed
Powering on VM: sddc-manager
Task Completed
Waiting for IP address...
Received IP address: 10.0.0.4
Completed successfully
Note
Refer to attribute "fips_enabled" in metadata.json for the FIPS mode

+
Navigate to the management domain vCenter Server.
Move the sddc-manager VM into the Management VM folder.
Move the sddc-manager VM into the Management Resource Pool. The name of this pool is available in the metadata.json file.
To confirm that SDDC Manager has been deployed correctly, ssh in to the VM as the vcf user.

  1. Take a snapshot of the SDDC Manager VM.

  2. Copy the encrypted backup file to the /tmp directory on the SDDC Manager VM.

  3. Trigger the task using the valid input specification.

Note
This API follows the Token-Based Authentication scheme. To invoke this API, a token is required. Generate token using the local account by providing the correct password of local user that was supplied during the deployment of SDDC Manager VM with the OVF tool. Note that the username of local account is admin@local
Here is the example command on how to generate token using local account:
curl -d '{"username" : "admin@local", "password" : "Password"}' -H "Content-Type: application/json" -X POST http://sfo-vcf01.rainpole.io/v1/tokens

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/restores/tasks' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "elements" : [ {
    "resourceType" : "SDDC_MANAGER"
  } ],
  "backupFile" : "/tmp/backup.tar.gz",
  "encryption" : {
    "passphrase" : "VMwareBackup@1"
  }
}'

HTTP Request

POST /v1/restores/tasks HTTP/1.1
Content-Type: application/json
Content-Length: 163
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "elements" : [ {
    "resourceType" : "SDDC_MANAGER"
  } ],
  "backupFile" : "/tmp/backup.tar.gz",
  "encryption" : {
    "passphrase" : "VMwareBackup@1"
  }
}

HTTP Response

HTTP/1.1 202 Accepted
Location: 345318f7-4e30-4ad2-b477-68e36774dbdf
Content-Type: application/json
Content-Length: 79

{
  "id" : "345318f7-4e30-4ad2-b477-68e36774dbdf",
  "status" : "IN_PROGRESS"
}
  1. Poll the task until "status" is not "IN_PROGRESS" using the "id" from the previous response.

Note
This API follows the Token-Based Authentication scheme. To invoke this API, a token is required. Generate token using the local account by providing the correct password of local user that was supplied during the deployment of SDDC Manager VM with the OVF tool. Note that the username of local account is admin@local
Here is the example command on how to generate token using local account:
curl -d '{"username" : "admin@local", "password" : "Password"}' -H "Content-Type: application/json" -X POST http://sfo-vcf01.rainpole.io/v1/tokens

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/restores/tasks/d14d42ea-3061-4874-a2ed-651253db37a3' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/restores/tasks/d14d42ea-3061-4874-a2ed-651253db37a3 HTTP/1.1
Content-Type: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 2545

{
  "id" : "875ca777-32af-4aed-8241-bfc58f1f9602",
  "name" : "SDDC Manager Restore Operation",
  "status" : "SUCCESSFUL",
  "creationTimestamp" : "2020-05-26T17:14:45.306Z",
  "subTasks" : [ {
    "name" : "ExtractSDDCManagerBackup",
    "description" : "Decrypt and Extract Backup and Validate SDDC Manager for Restore operation",
    "status" : "SUCCESSFUL",
    "creationTimestamp" : "2020-05-26T17:14:46.132Z",
    "completionTimestamp" : "2020-05-26T17:14:51.712Z"
  }, {
    "name" : "StopSDDCManagerServices",
    "description" : "Stop all VCF SDDC Manager Services",
    "status" : "SUCCESSFUL",
    "creationTimestamp" : "2020-05-26T17:14:51.714Z",
    "completionTimestamp" : "2020-05-26T17:15:23.950Z"
  }, {
    "name" : "RestoreSDDCManagerConfiguration",
    "description" : "Restore SDDC Manager Configuration files",
    "status" : "SUCCESSFUL",
    "creationTimestamp" : "2020-05-26T17:15:23.954Z",
    "completionTimestamp" : "2020-05-26T17:15:24.638Z"
  }, {
    "name" : "RestoreSDDCManagerDatabase",
    "description" : "Restore SDDC Manager Database",
    "status" : "SUCCESSFUL",
    "creationTimestamp" : "2020-05-26T17:15:24.642Z",
    "completionTimestamp" : "2020-05-26T17:16:11.931Z"
  }, {
    "name" : "StartSDDCManagerServices",
    "description" : "Start and Validate all VCF SDDC Manager Services",
    "status" : "SUCCESSFUL",
    "creationTimestamp" : "2020-05-26T17:16:11.940Z",
    "completionTimestamp" : "2020-05-26T17:19:57.841Z"
  }, {
    "name" : "RestoreSDDCSystemConfiguration",
    "description" : "Restore SDDC Manager System Configuration",
    "status" : "SUCCESSFUL",
    "creationTimestamp" : "2020-05-26T17:19:57.846Z",
    "completionTimestamp" : "2020-05-26T17:20:45.278Z"
  }, {
    "name" : "PostRestoreRemediation",
    "description" : "Post Restore Remediation",
    "status" : "SUCCESSFUL",
    "creationTimestamp" : "2020-05-26T17:20:45.475Z",
    "completionTimestamp" : "2020-05-26T17:20:51.559Z"
  }, {
    "name" : "PostRestoreNfsRefresh",
    "description" : "Refresh NFS post restore",
    "status" : "SUCCESSFUL",
    "creationTimestamp" : "2020-05-26T17:20:51.563Z",
    "completionTimestamp" : "2020-05-26T17:21:05.918Z"
  }, {
    "name" : "UnquiesceSystem",
    "description" : "Unquiesce the system after Restore operation",
    "status" : "SUCCESSFUL",
    "creationTimestamp" : "2020-05-26T17:21:05.922Z",
    "completionTimestamp" : "2020-05-26T17:21:06.013Z"
  } ],
  "errors" : [ ],
  "resources" : [ ],
  "resolutionStatus" : "UNRESOLVED",
  "isCancellable" : false
}
  1. If the "status" is "SUCCESSFUL", the task is completed successfully.

  2. If the "status" is "FAILED" , perform the following steps to retry.

    • Copy the contents of /var/log/vmware/vcf/sddc-support/ to a filesystem that is external to SDDC Manager. This preserves the restore log file.

    • Revert the SDDC Manager VM to the snapshot taken in step 12.

    • Take a new snapshot.

    • Perform steps 13 - 16.

    • If this attempt fails, contact VSDDC ManagerMware Support.

  1. Verify SDDC Manager VM operations after restore:

    • SSH in to the SDDC Manager as the vcf user.

    • Run the following command:

      sudo /opt/vmware/sddc-support/sos --health-check
    • When prompted, enter the vcf user password.

    • A green status indicates that the health is normal, yellow provides a warning that attention might be required, and red indicates that the component needs immediate attention. Possible reasons for yellow or red status are that you used an SDDC Manager backup with unresolved workflows, you used a backup taken before a workflow was completed successfully, you restored other products in addition to SDDC Manager, or some components are not operational. Call VMware Support if you need help with resolving the yellow or red status

    • If the status was green,

      • Download the applicable install and upgrade bundles.

      • Download the upgrade bundles applicable to your environment.

2.19. Depot Settings

2.19.1. Get Depot Settings

Online:

Offline:

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/system/settings/depot' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/system/settings/depot HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 211

{
  "vmwareAccount" : {
    "username" : "acmeuser",
    "password" : "acmepassword",
    "status" : "DEPOT_CONNECTION_SUCCESSFUL",
    "message" : "Depot Status: Success"
  },
  "dellEmcSupportAccount" : null
}

2.19.2. Update Depot Settings

Online:

Offline:

  • Use the Bundle Transfer Utility tool (Please refer to the VMware Cloud Foundation documentation for more information) to manually download the bundles from the depot on your local computer and then copy them to SDDC Manager. Once the bundles are available in the SDDC Manager. Use the Upload a Bundle API to upload it to SDDC Manager.

Prerequisites

The following data is required:

  • Username of My VMware Account.

  • Password of My VMware Account.

Tip
Refer to: DepotSettings and DepotAccount.
Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/system/settings/depot' -i -X PUT \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "vmwareAccount" : {
    "username" : "acmeuser",
    "password" : "acmepassword"
  }
}'

HTTP Request

PUT /v1/system/settings/depot HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 90
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "vmwareAccount" : {
    "username" : "acmeuser",
    "password" : "acmepassword"
  }
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Content-Length: 211

{
  "vmwareAccount" : {
    "username" : "acmeuser",
    "password" : "acmepassword",
    "status" : "DEPOT_CONNECTION_SUCCESSFUL",
    "message" : "Depot Status: Success"
  },
  "dellEmcSupportAccount" : null
}

2.20. Prechecks

2.20.1. Perform System Precheck

Precheck System API is used to perform the required system level health checks and upgrade pre-checks for an upgrade to be successful. Make sure to run these checks before performing any upgrade.

Tip
Refer to: Get the Upgradables to query for the list of upgradables which can be used for performing Domain, Cluster level checks.
Prerequisites

The following data is required:

  • Resource ID. Ex: Domain ID, Cluster ID.

  • Resource Type. Ex: DOMAIN, CLUSTER.

Tip
Refer to: PrecheckSpec and Resource.
Note
Supported Resource Type’s are DOMAIN, CLUSTER. For Cluster level checks, the Cluster ID’s can be retrieved based on the Host’s that are available for upgrade, Refer to: Get the Hosts and Get the Clusters API’s.
Steps
  1. Invoke the API. This API returns a precheck task which can be polled and monitored.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/system/prechecks' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "resources" : [ {
    "resourceId" : "bbd38966-8537-46f1-9a54-06fbfe7079c6",
    "type" : "DOMAIN"
  } ]
}'

HTTP Request

POST /v1/system/prechecks HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 110
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "resources" : [ {
    "resourceId" : "bbd38966-8537-46f1-9a54-06fbfe7079c6",
    "type" : "DOMAIN"
  } ]
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/system/prechecks/tasks/94949fb8-b9bb-446c-a7b8-e4175ba5caf7
Content-Length: 667

{
  "id" : "94949fb8-b9bb-446c-a7b8-e4175ba5caf7",
  "name" : "Precheck Task",
  "type" : "PRECHECK",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2021-09-13T23:54:59.499Z",
  "completionTimestamp" : "2021-09-13T23:54:59.499Z",
  "subTasks" : [ {
    "name" : "Upgrade - DOMAIN ",
    "description" : "Upgrade - DOMAIN ",
    "status" : "PENDING",
    "creationTimestamp" : "2021-09-13T23:54:59.499Z",
    "resources" : [ {
      "resourceId" : "293f9253-a1c0-4dd1-b989-f13d1b0ee1c1",
      "type" : "DOMAIN"
    } ]
  } ],
  "resources" : [ {
    "resourceId" : "293f9253-a1c0-4dd1-b989-f13d1b0ee1c1",
    "type" : "DOMAIN"
  } ],
  "isCancellable" : false
}
  1. Poll the status of the task using the precheck task API with the ID from the response of the previous API.

Tip
Refer to: Get System Precheck Task.

2.20.2. Get System Precheck Task

Get Precheck Task by ID API is used to retrieve a precheck task.

Prerequisites
  1. The following data is required

    • ID of the precheck task

Steps
  1. Invoke the API. This API returns a precheck task which can be polled and monitored.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/system/prechecks/tasks/94949fb8-b9bb-446c-a7b8-e4175ba5caf7' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 667

{
  "id" : "94949fb8-b9bb-446c-a7b8-e4175ba5caf7",
  "name" : "Precheck Task",
  "type" : "PRECHECK",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2021-09-13T23:55:00.066Z",
  "completionTimestamp" : "2021-09-13T23:55:00.066Z",
  "subTasks" : [ {
    "name" : "Upgrade - DOMAIN ",
    "description" : "Upgrade - DOMAIN ",
    "status" : "PENDING",
    "creationTimestamp" : "2021-09-13T23:55:00.066Z",
    "resources" : [ {
      "resourceId" : "293f9253-a1c0-4dd1-b989-f13d1b0ee1c1",
      "type" : "DOMAIN"
    } ]
  } ],
  "resources" : [ {
    "resourceId" : "293f9253-a1c0-4dd1-b989-f13d1b0ee1c1",
    "type" : "DOMAIN"
  } ],
  "isCancellable" : false
}

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 667

{
  "id" : "94949fb8-b9bb-446c-a7b8-e4175ba5caf7",
  "name" : "Precheck Task",
  "type" : "PRECHECK",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2021-09-13T23:55:00.066Z",
  "completionTimestamp" : "2021-09-13T23:55:00.066Z",
  "subTasks" : [ {
    "name" : "Upgrade - DOMAIN ",
    "description" : "Upgrade - DOMAIN ",
    "status" : "PENDING",
    "creationTimestamp" : "2021-09-13T23:55:00.066Z",
    "resources" : [ {
      "resourceId" : "293f9253-a1c0-4dd1-b989-f13d1b0ee1c1",
      "type" : "DOMAIN"
    } ]
  } ],
  "resources" : [ {
    "resourceId" : "293f9253-a1c0-4dd1-b989-f13d1b0ee1c1",
    "type" : "DOMAIN"
  } ],
  "isCancellable" : false
}

2.21. Bundles

2.21.1. Upload a Bundle

Offline:

  • Upload a Bundle API is used to upload Bundles which are downloaded using Bundle Transfer Utility tool.

Tip
Please refer to the VMware Cloud Foundation documentation for more information on the Bundle Transfer Utility tool.
Prerequisites

The following data is required:

  • Bundle file path.

  • Bundle manifest file path.

  • Bundle manifest signature file path.

Tip
Refer to: BundleUploadSpec.
Steps
  1. Invoke the API. This API returns a task which can be polled and monitored.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/bundles' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "bundleFilePath" : "/home/vcf/bundles/bundle-11237.tar",
  "manifestFilePath" : "/home/vcf/bundles/bundle-11237.manifest",
  "signatureFilePath" : "/home/vcf/bundles/bundle-11237.manifest.sig"
}'

HTTP Request

POST /v1/bundles HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 198
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "bundleFilePath" : "/home/vcf/bundles/bundle-11237.tar",
  "manifestFilePath" : "/home/vcf/bundles/bundle-11237.manifest",
  "signatureFilePath" : "/home/vcf/bundles/bundle-11237.manifest.sig"
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/433325b4-33da-4766-9fac-8afdbc22fa52
Content-Length: 366

{
  "id" : "433325b4-33da-4766-9fac-8afdbc22fa52",
  "name" : "Upload BUNDLE - PSC:6.7.0-13010631 VCENTER:6.7.0-13010631",
  "type" : "BUNDLE_UPLOAD",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2021-09-13T23:55:01.159Z",
  "resources" : [ {
    "resourceId" : "7dc56a95-2b32-46b0-adb6-66fd2e6b7291",
    "type" : "BUNDLE"
  } ],
  "isCancellable" : false
}
  1. Poll the status of the task using the task API with the ID from the response of the previous API.

Tip
Refer to: Get a Task.

2.21.2. Get the Bundles

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/bundles' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/bundles HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1499

{
  "elements" : [ {
    "id" : "7dc56a95-2b32-46b0-adb6-66fd2e6b7291",
    "type" : "VMWARE_SOFTWARE",
    "description" : "ESX update bundle -  13004448(67EP7)==>13010696 (vsphere67U2)",
    "version" : "253.0.0-111959",
    "severity" : null,
    "vendor" : "VMware",
    "releasedDate" : "2019-05-10T10:29:10.645Z",
    "isCumulative" : false,
    "isCompliant" : null,
    "sizeMB" : 453.0,
    "downloadStatus" : "SUCCESSFUL",
    "components" : [ {
      "description" : "ESX_HOST Update Bundle",
      "vendor" : "VMware",
      "releasedDate" : "2019-05-10T10:29:10.645Z",
      "toVersion" : "6.7.0-13006603",
      "fromVersion" : "6.7.0-13004448",
      "imageType" : "PATCH",
      "id" : "a65d9d83-88b9-475f-a2ba-ee5d9be34f8d",
      "type" : "HOST"
    } ]
  }, {
    "id" : "7a1733dc-6e8f-4744-b621-7ba3f66b62f5",
    "type" : "VMWARE_SOFTWARE",
    "description" : "vCenter update bundle",
    "version" : "253.0.0-111959",
    "severity" : null,
    "vendor" : "VMware",
    "releasedDate" : "2019-05-10T10:29:10.645Z",
    "isCumulative" : false,
    "isCompliant" : null,
    "sizeMB" : 453.0,
    "downloadStatus" : "SUCCESSFUL",
    "components" : [ {
      "description" : "vCenter Update Bundle",
      "vendor" : "VMware",
      "releasedDate" : "2019-05-10T10:29:10.645Z",
      "toVersion" : "6.7.0-13006603",
      "fromVersion" : "6.7.0-13004448",
      "imageType" : "PATCH",
      "id" : "a67d9d83-88b9-475f-a2ba-ee5d9be34f4d",
      "type" : "VCENTER"
    } ]
  } ]
}

2.21.3. Get a Bundle

Prerequisites
  1. The following data is required:

    • ID of the Bundle

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/bundles/7dc56a95-2b32-46b0-adb6-66fd2e6b7291' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/bundles/7dc56a95-2b32-46b0-adb6-66fd2e6b7291 HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 674

{
  "id" : "7a1733dc-6e8f-4744-b621-7ba3f66b62f5",
  "type" : "VMWARE_SOFTWARE",
  "description" : "vCenter update bundle",
  "version" : "253.0.0-111959",
  "severity" : null,
  "vendor" : "VMware",
  "releasedDate" : "2019-05-10T10:29:10.645Z",
  "isCumulative" : false,
  "isCompliant" : null,
  "sizeMB" : 453.0,
  "downloadStatus" : "SUCCESSFUL",
  "components" : [ {
    "description" : "vCenter Update Bundle",
    "vendor" : "VMware",
    "releasedDate" : "2019-05-10T10:29:10.645Z",
    "toVersion" : "6.7.0-13006603",
    "fromVersion" : "6.7.0-13004448",
    "imageType" : "PATCH",
    "id" : "a67d9d83-88b9-475f-a2ba-ee5d9be34f4d",
    "type" : "VCENTER"
  } ]
}

2.21.4. Update Bundle for Downloading

Online:

Tip
Refer to: Update Depot Settings to configure My VMware and Dell EMC Support Account in SDDC Manager.
Prerequisites
  1. The following data is required

    • ID of the bundle to be downloaded.

Steps
  1. Invoke the API. This API returns a task which can be polled and monitored.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/bundles/7dc56a95-2b32-46b0-adb6-66fd2e6b7291' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "bundleDownloadSpec" : {
    "downloadNow" : true
  }
}'

HTTP Request

PATCH /v1/bundles/7dc56a95-2b32-46b0-adb6-66fd2e6b7291 HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 59
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "bundleDownloadSpec" : {
    "downloadNow" : true
  }
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/6cfb8de3-01ee-4bf0-ad74-a4db7e853c2c
Content-Length: 370

{
  "id" : "6cfb8de3-01ee-4bf0-ad74-a4db7e853c2c",
  "name" : "Download BUNDLE - PSC:6.7.0-13010631 VCENTER:6.7.0-13010631",
  "type" : "BUNDLE_DOWNLOAD",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2021-09-13T23:54:59.844Z",
  "resources" : [ {
    "resourceId" : "7dc56a95-2b32-46b0-adb6-66fd2e6b7291",
    "type" : "BUNDLE"
  } ],
  "isCancellable" : false
}
  1. Poll the status of the task using the task API with the ID from the response of the previous API.

Tip
Refer to: Get a Task.

2.22. Personality

2.22.1. Upload a Personality with RAW mode.

Used when the vSphere cluster image/personality is to be exported to LCM from non VCF deployed vCenter.

Prerequisites

The following data is required:

  • vSphere exported software spec json file path

  • vSphere exported cluster settings json file path

  • vSphere exported cluster image zip file path

  • vSphere exported cluster image iso file path

Tip
Refer to: PersonalityUploadSpec.
Steps
  1. Invoke the API. This API returns a task which can be polled and monitored.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/personalities' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "uploadMode" : "RAW",
  "uploadSpecRawMode" : {
    "personalityInfoJSONFilePath" : "/home/vcf/personality/info.json",
    "personalityJSONFilePath" : "/home/vcf/personality/spec.json",
    "personalityZIPFilePath" : "/home/vcf/personality/offline.zip",
    "personalityISOFilePath" : "/home/vcf/personality/bundle.iso"
  },
  "name" : "Sample Raw Personality"
}'

HTTP Request

POST /v1/personalities HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 366
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "uploadMode" : "RAW",
  "uploadSpecRawMode" : {
    "personalityInfoJSONFilePath" : "/home/vcf/personality/info.json",
    "personalityJSONFilePath" : "/home/vcf/personality/spec.json",
    "personalityZIPFilePath" : "/home/vcf/personality/offline.zip",
    "personalityISOFilePath" : "/home/vcf/personality/bundle.iso"
  },
  "name" : "Sample Raw Personality"
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/a5a565bd-4cbc-496b-a5d6-310b0687fc9e
Content-Length: 245

{
  "id" : "a5a565bd-4cbc-496b-a5d6-310b0687fc9e",
  "name" : "PERSONALITY_UPLOAD",
  "type" : "PERSONALITY_UPLOAD",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2021-09-13T23:54:59.575Z",
  "resources" : [ ],
  "isCancellable" : false
}
  1. Poll the status of the task using the task API with the ID from the response of the previous API.

Tip
Refer to: Get a Task.

2.22.2. Upload a Personality with REFERRED mode.

Used when the vSphere cluster image/personality is to be exported to LCM from VCF deployed vCenter.

Prerequisites

The following data is required:

  • vCenter Id

  • Cluster Id

  • Name of the personality

Tip
Refer to: PersonalityUploadSpec.
Steps
  1. Invoke the API. This API returns a task which can be polled and monitored.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/personalities' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "uploadMode" : "REFERRED",
  "uploadSpecReferredMode" : {
    "vCenterId" : "7f1cfee8-547c-4d1f-9477-a652bc0a606e",
    "clusterId" : "356ca516-236b-417a-8bee-76cae8a5874a"
  },
  "name" : "vSphere7.0-Dell-SystemAdmin"
}'

HTTP Request

POST /v1/personalities HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 224
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "uploadMode" : "REFERRED",
  "uploadSpecReferredMode" : {
    "vCenterId" : "7f1cfee8-547c-4d1f-9477-a652bc0a606e",
    "clusterId" : "356ca516-236b-417a-8bee-76cae8a5874a"
  },
  "name" : "vSphere7.0-Dell-SystemAdmin"
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/a5a565bd-4cbc-496b-a5d6-310b0687fc9e
Content-Length: 245

{
  "id" : "a5a565bd-4cbc-496b-a5d6-310b0687fc9e",
  "name" : "PERSONALITY_UPLOAD",
  "type" : "PERSONALITY_UPLOAD",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2021-09-13T23:54:59.982Z",
  "resources" : [ ],
  "isCancellable" : false
}
  1. Poll the status of the task using the task API with the ID from the response of the previous API.

Tip
Refer to: Get a Task.

2.22.3. Get a cluster image/personality by name

Prerequisites
  1. The following data is required:

    • Name of the cluster image

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/personalities?personalityName=esx-personality' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/personalities?personalityName=esx-personality HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 865

{
  "version" : "1",
  "personalityId" : "bbd38966-8537-46f1-9a54-06fbfe7079c6",
  "personalityName" : "test-display-name",
  "description" : "test-desc",
  "createdBy" : "USER",
  "imageChecksum" : "test-checksum",
  "displayName" : "test-display-name",
  "releaseDate" : 1631577298724,
  "tags" : [ ],
  "vsphereExportedZipPath" : "https://sddc-manager.vrack.vsphere.local/vmware/vcf/personalities/personality/bbd38966-8537-46f1-9a54-06fbfe7079c6/pers.zip",
  "vsphereExportedIsoPath" : "https://sddc-manager.vrack.vsphere.local/vmware/vcf/personalities/personality/bbd38966-8537-46f1-9a54-06fbfe7079c6/pers.iso",
  "vsphereExportedJsonPath" : "https://sddc-manager.vrack.vsphere.local/vmware/vcf/personalities/personality/bbd38966-8537-46f1-9a54-06fbfe7079c6/pers.json",
  "softwareInfo" : {
    "baseImage" : {
      "version" : "7.0.0-0.0.30340198"
    }
  }
}

2.22.4. Get a cluster image/personality by Id

Prerequisites
  1. The following data is required:

    • Id of the cluster image

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/personalities/af318b39-cdf3-4db4-a8b9-1570846e3481' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/personalities/af318b39-cdf3-4db4-a8b9-1570846e3481 HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 865

{
  "version" : "1",
  "personalityId" : "bbd38966-8537-46f1-9a54-06fbfe7079c6",
  "personalityName" : "test-display-name",
  "description" : "test-desc",
  "createdBy" : "USER",
  "imageChecksum" : "test-checksum",
  "displayName" : "test-display-name",
  "releaseDate" : 1631577299775,
  "tags" : [ ],
  "vsphereExportedZipPath" : "https://sddc-manager.vrack.vsphere.local/vmware/vcf/personalities/personality/bbd38966-8537-46f1-9a54-06fbfe7079c6/pers.zip",
  "vsphereExportedIsoPath" : "https://sddc-manager.vrack.vsphere.local/vmware/vcf/personalities/personality/bbd38966-8537-46f1-9a54-06fbfe7079c6/pers.iso",
  "vsphereExportedJsonPath" : "https://sddc-manager.vrack.vsphere.local/vmware/vcf/personalities/personality/bbd38966-8537-46f1-9a54-06fbfe7079c6/pers.json",
  "softwareInfo" : {
    "baseImage" : {
      "version" : "7.0.0-0.0.30340198"
    }
  }
}

2.22.5. Get all the Personalities/cluster images by base version

  • Get the Personalities API is used to get all the personalities by the base version.
    Similarly the api can be used for filtering based on the other Personality attributes such as addOnName,
    addOnVendorName, componentName and componentVendorNames.

Prerequisites
  1. The following data is required:

    • Base Version of the Personality

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/personalities?baseOSVersion=6.7.0-15160138' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/personalities?baseOSVersion=6.7.0-15160138 HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 22

{
  "elements" : [ ]
}

2.23. Manifests

2.23.1. Get latest supported LCM manifest

  • Get manifest API is used to get the latest supported LCM manifest

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/manifests' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/manifests HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1943

{
  "version" : 1,
  "sequenceNumber" : 2,
  "creationTime" : "2021-09-13T23:55:00.270Z",
  "publishedDate" : "2021-09-13T23:55:00.270Z",
  "releases" : [ {
    "product" : "vcf",
    "version" : "4.1.0",
    "description" : "VMware Cloud Foundation 4.1.0 Release",
    "releaseDate" : "2020-10-06T07:00:00.000Z",
    "bom" : [ {
      "name" : "DOMAIN_MANAGER",
      "version" : "4.1.0",
      "publicName" : "SDDC Manager"
    }, {
      "name" : "VCENTER",
      "version" : "7.0.1-16860138",
      "publicName" : "vCenter Server Appliance"
    }, {
      "name" : "HOST",
      "version" : "7.0.1-16850804",
      "publicName" : "VMware ESXi"
    }, {
      "name" : "NSX_T_MANAGER",
      "version" : "3.0.2-16887200",
      "publicName" : "NSX-T Data Center"
    }, {
      "name" : "VROPS",
      "version" : "8.1.1-16522874",
      "publicName" : "VMware vRealize Operations Manager"
    } ],
    "updates" : [ ],
    "patchBundles" : [ {
      "bundleId" : "0983221d-271c-46d9-826b-392d7a1372fb",
      "bundleType" : "EVORACK",
      "bundleElements" : [ "SDDC_MANAGER_VCF" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    }, {
      "bundleId" : "567a40c7-49ec-4c27-ada4-927256d44b1f",
      "bundleType" : "EVORACK",
      "bundleElements" : [ "SDDC_MANAGER_VCF" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    }, {
      "bundleId" : "f9c299f3-cf77-464e-9432-dd6337bec9b4",
      "bundleType" : "VMWARE_SOFTWARE",
      "bundleElements" : [ "VCENTER" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    }, {
      "bundleId" : "428c9f46-17c1-4de3-933c-dd7d91d9885b",
      "bundleType" : "VMWARE_SOFTWARE",
      "bundleElements" : [ "ESX_HOST" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    }, {
      "bundleId" : "fe35f667-af4e-4133-93bf-9ffb752fa35b",
      "bundleType" : "VMWARE_SOFTWARE",
      "bundleElements" : [ "NSX_MANAGER" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    } ]
  } ],
  "recalledBundles" : [ ]
}

2.23.2. Save/Upload supported LCM manifest with updated sequence number to LCM.

  • Save/Load manifest API is used to save/upload supported LCM manifest with updated sequence number to LCM.

Prerequisites

The following data is required:

  • Manifest Version

  • Sequence Number

  • Creation time of the manifest file

  • Collection of Releases till date

Tip
Refer to: Manifest.
Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/manifests' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "version" : 1,
  "sequenceNumber" : 2,
  "creationTime" : "2021-09-13T23:54:58.131Z",
  "publishedDate" : "2021-09-13T23:54:58.131Z",
  "releases" : [ {
    "product" : "vcf",
    "version" : "4.1.0",
    "description" : "VMware Cloud Foundation 4.1.0 Release",
    "releaseDate" : "2020-10-06T07:00:00Z",
    "bom" : [ {
      "name" : "DOMAIN_MANAGER",
      "version" : "4.1.0",
      "publicName" : "SDDC Manager"
    }, {
      "name" : "VCENTER",
      "version" : "7.0.1-16860138",
      "publicName" : "vCenter Server Appliance"
    }, {
      "name" : "HOST",
      "version" : "7.0.1-16850804",
      "publicName" : "VMware ESXi"
    }, {
      "name" : "NSX_T_MANAGER",
      "version" : "3.0.2-16887200",
      "publicName" : "NSX-T Data Center"
    }, {
      "name" : "VROPS",
      "version" : "8.1.1-16522874",
      "publicName" : "VMware vRealize Operations Manager"
    } ],
    "updates" : [ ],
    "patchBundles" : [ {
      "bundleId" : "f9ab0d1e-288e-40d3-ad02-317566800441",
      "bundleType" : "EVORACK",
      "bundleElements" : [ "SDDC_MANAGER_VCF" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    }, {
      "bundleId" : "9a7c4073-6f05-4d90-bf3a-3f1710c8a917",
      "bundleType" : "EVORACK",
      "bundleElements" : [ "SDDC_MANAGER_VCF" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    }, {
      "bundleId" : "f1838391-84b7-4497-a7aa-eaa061ea5db2",
      "bundleType" : "VMWARE_SOFTWARE",
      "bundleElements" : [ "VCENTER" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    }, {
      "bundleId" : "65afad1a-623a-415b-9269-d9180016d342",
      "bundleType" : "VMWARE_SOFTWARE",
      "bundleElements" : [ "ESX_HOST" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    }, {
      "bundleId" : "4622bbf1-d7d7-4244-a40d-3fff6d0b1efb",
      "bundleType" : "VMWARE_SOFTWARE",
      "bundleElements" : [ "NSX_MANAGER" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    } ]
  } ],
  "recalledBundles" : [ ]
}'

HTTP Request

POST /v1/manifests HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 1939
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "version" : 1,
  "sequenceNumber" : 2,
  "creationTime" : "2021-09-13T23:54:58.131Z",
  "publishedDate" : "2021-09-13T23:54:58.131Z",
  "releases" : [ {
    "product" : "vcf",
    "version" : "4.1.0",
    "description" : "VMware Cloud Foundation 4.1.0 Release",
    "releaseDate" : "2020-10-06T07:00:00Z",
    "bom" : [ {
      "name" : "DOMAIN_MANAGER",
      "version" : "4.1.0",
      "publicName" : "SDDC Manager"
    }, {
      "name" : "VCENTER",
      "version" : "7.0.1-16860138",
      "publicName" : "vCenter Server Appliance"
    }, {
      "name" : "HOST",
      "version" : "7.0.1-16850804",
      "publicName" : "VMware ESXi"
    }, {
      "name" : "NSX_T_MANAGER",
      "version" : "3.0.2-16887200",
      "publicName" : "NSX-T Data Center"
    }, {
      "name" : "VROPS",
      "version" : "8.1.1-16522874",
      "publicName" : "VMware vRealize Operations Manager"
    } ],
    "updates" : [ ],
    "patchBundles" : [ {
      "bundleId" : "f9ab0d1e-288e-40d3-ad02-317566800441",
      "bundleType" : "EVORACK",
      "bundleElements" : [ "SDDC_MANAGER_VCF" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    }, {
      "bundleId" : "9a7c4073-6f05-4d90-bf3a-3f1710c8a917",
      "bundleType" : "EVORACK",
      "bundleElements" : [ "SDDC_MANAGER_VCF" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    }, {
      "bundleId" : "f1838391-84b7-4497-a7aa-eaa061ea5db2",
      "bundleType" : "VMWARE_SOFTWARE",
      "bundleElements" : [ "VCENTER" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    }, {
      "bundleId" : "65afad1a-623a-415b-9269-d9180016d342",
      "bundleType" : "VMWARE_SOFTWARE",
      "bundleElements" : [ "ESX_HOST" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    }, {
      "bundleId" : "4622bbf1-d7d7-4244-a40d-3fff6d0b1efb",
      "bundleType" : "VMWARE_SOFTWARE",
      "bundleElements" : [ "NSX_MANAGER" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    } ]
  } ],
  "recalledBundles" : [ ]
}

HTTP Response

HTTP/1.1 202 Accepted

2.24. Releases

2.24.1. Get all releases

  • Get Releases. API is used to get the information for all the VMware Cloud Foundation releases along with the versions of each product within the given release.

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/releases' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/releases HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 4329

{
  "elements" : [ {
    "product" : "vcf",
    "version" : "3.0.0",
    "description" : "VMware Cloud Foundation 3.0.0 Release",
    "releaseDate" : "2018-09-20T07:00:00.000Z",
    "bom" : [ {
      "name" : "DOMAIN_MANAGER",
      "version" : "3.0.0",
      "publicName" : "SDDC Manager"
    }, {
      "name" : "VCENTER",
      "version" : "6.5.0-9451637",
      "publicName" : "vCenter Server Appliance"
    }, {
      "name" : "HOST",
      "version" : "6.5.0-9298722",
      "publicName" : "VMware ESXi"
    }, {
      "name" : "NSX_MANAGER",
      "version" : "6.4.1-8599035",
      "publicName" : "NSX-V Data Center"
    }, {
      "name" : "VROPS",
      "version" : "6.7.0-8183617",
      "publicName" : "VMware vRealize Operations Manager"
    } ],
    "updates" : [ ],
    "patchBundles" : [ {
      "bundleId" : "e634ba5d-6f0b-479f-abe3-b7b2e8e62f04",
      "bundleType" : "EVORACK",
      "bundleElements" : [ "SDDC_MANAGER_VCF" ],
      "cumulativeFromVcfVersion" : "2.3.0"
    }, {
      "bundleId" : "8c0603b3-638f-4994-8e06-3e080fcc227b",
      "bundleType" : "EVORACK",
      "bundleElements" : [ "SDDC_MANAGER_VCF" ],
      "cumulativeFromVcfVersion" : "2.3.0"
    }, {
      "bundleId" : "c42d5f36-ed52-49b6-923d-30499302680f",
      "bundleType" : "VMWARE_SOFTWARE",
      "bundleElements" : [ "VCENTER" ],
      "cumulativeFromVcfVersion" : "2.3.0"
    }, {
      "bundleId" : "c15c847c-d211-4641-aadd-dc26ed1fad86",
      "bundleType" : "VMWARE_SOFTWARE",
      "bundleElements" : [ "ESX_HOST" ],
      "cumulativeFromVcfVersion" : "2.3.0"
    }, {
      "bundleId" : "826a7fe8-ab04-4565-b12e-387220cc2b23",
      "bundleType" : "VMWARE_SOFTWARE",
      "bundleElements" : [ "NSX_MANAGER" ],
      "cumulativeFromVcfVersion" : "2.3.0"
    } ]
  }, {
    "product" : "vcf",
    "version" : "3.5.0",
    "description" : "VMware Cloud Foundation 3.5.0 Release",
    "releaseDate" : "2018-12-13T08:00:00.000Z",
    "bom" : [ {
      "name" : "DOMAIN_MANAGER",
      "version" : "3.5.0",
      "publicName" : "SDDC Manager"
    }, {
      "name" : "VCENTER",
      "version" : "6.7.0-10244745",
      "publicName" : "vCenter Server Appliance"
    }, {
      "name" : "HOST",
      "version" : "6.7.0-10764712",
      "publicName" : "VMware ESXi"
    }, {
      "name" : "NSX_MANAGER",
      "version" : "6.4.4-11197766",
      "publicName" : "NSX-V Data Center"
    }, {
      "name" : "VROPS",
      "version" : "7.0.0-10098133",
      "publicName" : "VMware vRealize Operations Manager"
    } ],
    "updates" : [ ],
    "patchBundles" : [ ]
  }, {
    "product" : "vcf",
    "version" : "4.1.0",
    "description" : "VMware Cloud Foundation 4.1.0 Release",
    "releaseDate" : "2020-10-06T07:00:00.000Z",
    "bom" : [ {
      "name" : "DOMAIN_MANAGER",
      "version" : "4.1.0",
      "publicName" : "SDDC Manager"
    }, {
      "name" : "VCENTER",
      "version" : "7.0.1-16860138",
      "publicName" : "vCenter Server Appliance"
    }, {
      "name" : "HOST",
      "version" : "7.0.1-16850804",
      "publicName" : "VMware ESXi"
    }, {
      "name" : "NSX_T_MANAGER",
      "version" : "3.0.2-16887200",
      "publicName" : "NSX-T Data Center"
    }, {
      "name" : "VROPS",
      "version" : "8.1.1-16522874",
      "publicName" : "VMware vRealize Operations Manager"
    } ],
    "updates" : [ ],
    "patchBundles" : [ {
      "bundleId" : "6c925104-85f7-4102-a7fc-4de78ef694b7",
      "bundleType" : "EVORACK",
      "bundleElements" : [ "SDDC_MANAGER_VCF" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    }, {
      "bundleId" : "468dee10-5242-4c33-b82f-df6b12baa280",
      "bundleType" : "EVORACK",
      "bundleElements" : [ "SDDC_MANAGER_VCF" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    }, {
      "bundleId" : "f400f9e5-9e5c-48e3-bf3b-93b805f1200e",
      "bundleType" : "VMWARE_SOFTWARE",
      "bundleElements" : [ "VCENTER" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    }, {
      "bundleId" : "e03e37c6-7553-4a77-8dde-16e57e17a84c",
      "bundleType" : "VMWARE_SOFTWARE",
      "bundleElements" : [ "ESX_HOST" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    }, {
      "bundleId" : "7308e534-4c4b-48cb-9354-5091e5563225",
      "bundleType" : "VMWARE_SOFTWARE",
      "bundleElements" : [ "NSX_MANAGER" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    } ]
  } ]
}

2.24.2. Get release for a given version

  • This API is used to get the release for a specified version.

Prerequisites
  1. The following data is required:

    • Version of the Release

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/releases?versionEq=4.1.0' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/releases?versionEq=4.1.0 HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1780

{
  "elements" : [ {
    "product" : "vcf",
    "version" : "4.1.0",
    "description" : "VMware Cloud Foundation 4.1.0 Release",
    "releaseDate" : "2020-10-06T07:00:00.000Z",
    "bom" : [ {
      "name" : "DOMAIN_MANAGER",
      "version" : "4.1.0",
      "publicName" : "SDDC Manager"
    }, {
      "name" : "VCENTER",
      "version" : "7.0.1-16860138",
      "publicName" : "vCenter Server Appliance"
    }, {
      "name" : "HOST",
      "version" : "7.0.1-16850804",
      "publicName" : "VMware ESXi"
    }, {
      "name" : "NSX_T_MANAGER",
      "version" : "3.0.2-16887200",
      "publicName" : "NSX-T Data Center"
    }, {
      "name" : "VROPS",
      "version" : "8.1.1-16522874",
      "publicName" : "VMware vRealize Operations Manager"
    } ],
    "updates" : [ ],
    "patchBundles" : [ {
      "bundleId" : "80f67bcf-1677-444a-b074-efa4ae9f8abb",
      "bundleType" : "EVORACK",
      "bundleElements" : [ "SDDC_MANAGER_VCF" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    }, {
      "bundleId" : "ddfc5bff-74be-464d-bb78-c37106b3f7ed",
      "bundleType" : "EVORACK",
      "bundleElements" : [ "SDDC_MANAGER_VCF" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    }, {
      "bundleId" : "8c75bf0f-9908-4df2-9298-190485a3fc03",
      "bundleType" : "VMWARE_SOFTWARE",
      "bundleElements" : [ "VCENTER" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    }, {
      "bundleId" : "f37e3f17-f5c7-40ff-9964-147c8331993b",
      "bundleType" : "VMWARE_SOFTWARE",
      "bundleElements" : [ "ESX_HOST" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    }, {
      "bundleId" : "e1237fca-f560-4bb2-ba72-f816bca5ee4d",
      "bundleType" : "VMWARE_SOFTWARE",
      "bundleElements" : [ "NSX_MANAGER" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    } ]
  } ]
}

2.24.3. Get future releases for a given version

  • This API is used to get all future releases for a given version.

Prerequisites
  1. The following data is required:

    • Version of a Release

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/releases?versionGt=2.3.0' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/releases?versionGt=2.3.0 HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 2576

{
  "elements" : [ {
    "product" : "vcf",
    "version" : "3.5.0",
    "description" : "VMware Cloud Foundation 3.5.0 Release",
    "releaseDate" : "2018-12-13T08:00:00.000Z",
    "bom" : [ {
      "name" : "DOMAIN_MANAGER",
      "version" : "3.5.0",
      "publicName" : "SDDC Manager"
    }, {
      "name" : "VCENTER",
      "version" : "6.7.0-10244745",
      "publicName" : "vCenter Server Appliance"
    }, {
      "name" : "HOST",
      "version" : "6.7.0-10764712",
      "publicName" : "VMware ESXi"
    }, {
      "name" : "NSX_MANAGER",
      "version" : "6.4.4-11197766",
      "publicName" : "NSX-V Data Center"
    }, {
      "name" : "VROPS",
      "version" : "7.0.0-10098133",
      "publicName" : "VMware vRealize Operations Manager"
    } ],
    "updates" : [ ],
    "patchBundles" : [ ]
  }, {
    "product" : "vcf",
    "version" : "4.1.0",
    "description" : "VMware Cloud Foundation 4.1.0 Release",
    "releaseDate" : "2020-10-06T07:00:00.000Z",
    "bom" : [ {
      "name" : "DOMAIN_MANAGER",
      "version" : "4.1.0",
      "publicName" : "SDDC Manager"
    }, {
      "name" : "VCENTER",
      "version" : "7.0.1-16860138",
      "publicName" : "vCenter Server Appliance"
    }, {
      "name" : "HOST",
      "version" : "7.0.1-16850804",
      "publicName" : "VMware ESXi"
    }, {
      "name" : "NSX_T_MANAGER",
      "version" : "3.0.2-16887200",
      "publicName" : "NSX-T Data Center"
    }, {
      "name" : "VROPS",
      "version" : "8.1.1-16522874",
      "publicName" : "VMware vRealize Operations Manager"
    } ],
    "updates" : [ ],
    "patchBundles" : [ {
      "bundleId" : "493f2958-fd4b-437f-9ce5-d6b27269cae6",
      "bundleType" : "EVORACK",
      "bundleElements" : [ "SDDC_MANAGER_VCF" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    }, {
      "bundleId" : "103c29cb-3a93-4130-8735-fc43299d0e3b",
      "bundleType" : "EVORACK",
      "bundleElements" : [ "SDDC_MANAGER_VCF" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    }, {
      "bundleId" : "92ae82d4-e05d-4716-87f7-3ff2289df976",
      "bundleType" : "VMWARE_SOFTWARE",
      "bundleElements" : [ "VCENTER" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    }, {
      "bundleId" : "56c8da2d-3f65-4ccd-b5b6-b11f67e74d1f",
      "bundleType" : "VMWARE_SOFTWARE",
      "bundleElements" : [ "ESX_HOST" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    }, {
      "bundleId" : "0155521b-73ca-485d-b52e-8c8df0fecf75",
      "bundleType" : "VMWARE_SOFTWARE",
      "bundleElements" : [ "NSX_MANAGER" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    } ]
  } ]
}

2.24.4. Get applicable target releases for a given version

  • This API is used to get all applicable target releases for a given version.

Prerequisites
  1. The following data is required:

    • Version of a Release

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/releases?applicableForVersion=2.3.0' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/releases?applicableForVersion=2.3.0 HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1780

{
  "elements" : [ {
    "product" : "vcf",
    "version" : "4.1.0",
    "description" : "VMware Cloud Foundation 4.1.0 Release",
    "releaseDate" : "2020-10-06T07:00:00.000Z",
    "bom" : [ {
      "name" : "DOMAIN_MANAGER",
      "version" : "4.1.0",
      "publicName" : "SDDC Manager"
    }, {
      "name" : "VCENTER",
      "version" : "7.0.1-16860138",
      "publicName" : "vCenter Server Appliance"
    }, {
      "name" : "HOST",
      "version" : "7.0.1-16850804",
      "publicName" : "VMware ESXi"
    }, {
      "name" : "NSX_T_MANAGER",
      "version" : "3.0.2-16887200",
      "publicName" : "NSX-T Data Center"
    }, {
      "name" : "VROPS",
      "version" : "8.1.1-16522874",
      "publicName" : "VMware vRealize Operations Manager"
    } ],
    "updates" : [ ],
    "patchBundles" : [ {
      "bundleId" : "32ee7b6f-de41-497f-a36c-27899185b1fd",
      "bundleType" : "EVORACK",
      "bundleElements" : [ "SDDC_MANAGER_VCF" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    }, {
      "bundleId" : "e21f4762-1e93-4ec9-a672-d2be23b3cf37",
      "bundleType" : "EVORACK",
      "bundleElements" : [ "SDDC_MANAGER_VCF" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    }, {
      "bundleId" : "4bf457e6-b16e-42a9-a587-7b6b67b8b6a1",
      "bundleType" : "VMWARE_SOFTWARE",
      "bundleElements" : [ "VCENTER" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    }, {
      "bundleId" : "888e4f94-71e7-443d-8bcf-0595f963aa22",
      "bundleType" : "VMWARE_SOFTWARE",
      "bundleElements" : [ "ESX_HOST" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    }, {
      "bundleId" : "4d315b0d-c48b-40e2-a907-99cfa143c3fa",
      "bundleType" : "VMWARE_SOFTWARE",
      "bundleElements" : [ "NSX_MANAGER" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    } ]
  } ]
}

2.24.5. Get Current Release for Domain

  • This API is used to get the release for a specified domain ID.

Prerequisites
  1. The following data is required:

    • ID of a domain

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/releases?domainId=mgmt-domain-1' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/releases?domainId=mgmt-domain-1 HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1780

{
  "elements" : [ {
    "product" : "vcf",
    "version" : "4.1.0",
    "description" : "VMware Cloud Foundation 4.1.0 Release",
    "releaseDate" : "2020-10-06T07:00:00.000Z",
    "bom" : [ {
      "name" : "DOMAIN_MANAGER",
      "version" : "4.1.0",
      "publicName" : "SDDC Manager"
    }, {
      "name" : "VCENTER",
      "version" : "7.0.1-16860138",
      "publicName" : "vCenter Server Appliance"
    }, {
      "name" : "HOST",
      "version" : "7.0.1-16850804",
      "publicName" : "VMware ESXi"
    }, {
      "name" : "NSX_T_MANAGER",
      "version" : "3.0.2-16887200",
      "publicName" : "NSX-T Data Center"
    }, {
      "name" : "VROPS",
      "version" : "8.1.1-16522874",
      "publicName" : "VMware vRealize Operations Manager"
    } ],
    "updates" : [ ],
    "patchBundles" : [ {
      "bundleId" : "799e3fb4-6b22-43d2-835d-c549244b686d",
      "bundleType" : "EVORACK",
      "bundleElements" : [ "SDDC_MANAGER_VCF" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    }, {
      "bundleId" : "5120b444-1214-4b62-af0e-8613c4a23fbe",
      "bundleType" : "EVORACK",
      "bundleElements" : [ "SDDC_MANAGER_VCF" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    }, {
      "bundleId" : "fb05e282-576e-459e-ba7e-5ced3d201b73",
      "bundleType" : "VMWARE_SOFTWARE",
      "bundleElements" : [ "VCENTER" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    }, {
      "bundleId" : "05639d5d-b151-4b7e-a9a7-33dfee94aa7e",
      "bundleType" : "VMWARE_SOFTWARE",
      "bundleElements" : [ "ESX_HOST" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    }, {
      "bundleId" : "7ff23332-2f82-497c-99a0-5ff5df7ddf95",
      "bundleType" : "VMWARE_SOFTWARE",
      "bundleElements" : [ "NSX_MANAGER" ],
      "cumulativeFromVcfVersion" : "3.7.0"
    } ]
  } ]
}

2.25. Upgradables

2.25.1. Get the Upgradables

Get the Upgradables API provides the list of upgradables in the system. Each upgradable provides information about the bundle, resource and its associated software components that can be prechecked and upgraded. The upgradables can be of different types ex: AVAILABLE, PENDING, SCHEDULED etc.

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/system/upgradables' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/system/upgradables HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 381

{
  "elements" : [ {
    "bundleId" : "7dc56a95-2b32-46b0-adb6-66fd2e6b7291",
    "bundleType" : "SDDC_MANAGER",
    "resource" : {
      "resourceId" : "293f9253-a1c0-4dd1-b989-f13d1b0ee1c1",
      "type" : "DOMAIN"
    },
    "softwareComponents" : [ {
      "id" : "329d6d92-a3bf-42e8-a0f9-8af6beaf65ca",
      "type" : "SDDC_MANAGER"
    } ],
    "status" : "AVAILABLE"
  } ]
}

2.25.2. Get the Upgradables for a Domain

This API provides the list of upgradables for a given domain. Each upgradable provides information about the bundle, resource and its associated software components that can be prechecked and upgraded. The upgradables can be of different types ex: AVAILABLE, PENDING, SCHEDULED etc.

Prerequisites
  • ID of a domain

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/upgradables/domains/293f9253-a1c0-4dd1-b989-f13d1b0ee1c1' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/upgradables/domains/293f9253-a1c0-4dd1-b989-f13d1b0ee1c1 HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 290

{
  "elements" : [ {
    "bundleId" : "7dc56a95-2b32-46b0-adb6-66fd2e6b7291",
    "bundleType" : "SDDC_MANAGER",
    "resource" : {
      "resourceId" : "293f9253-a1c0-4dd1-b989-f13d1b0ee1c1",
      "type" : "DOMAIN"
    },
    "softwareComponents" : [ ],
    "status" : "AVAILABLE"
  } ]
}

2.25.3. Get the Target VCF Release Upgradables for a Domain

This API provides the list of upgradables for a given domain and target VCF release. Each upgradable provides information about the bundle, resource and its associated software components that can be prechecked and upgraded. The upgradables can be of different types ex: AVAILABLE, PENDING, SCHEDULED etc.

Prerequisites
  • ID of a domain

  • Version of a Target Release

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/upgradables/domains/293f9253-a1c0-4dd1-b989-f13d1b0ee1c1?targetVersion=4.1.0.0' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/upgradables/domains/293f9253-a1c0-4dd1-b989-f13d1b0ee1c1?targetVersion=4.1.0.0 HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 290

{
  "elements" : [ {
    "bundleId" : "7dc56a95-2b32-46b0-adb6-66fd2e6b7291",
    "bundleType" : "SDDC_MANAGER",
    "resource" : {
      "resourceId" : "293f9253-a1c0-4dd1-b989-f13d1b0ee1c1",
      "type" : "DOMAIN"
    },
    "softwareComponents" : [ ],
    "status" : "AVAILABLE"
  } ]
}

2.26. Version Aliases

2.26.1. Get Version Aliases

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/system/settings/version-aliases' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/system/settings/version-aliases HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 177

{
  "elements" : [ {
    "bundleComponentType" : "VCENTER",
    "versionAliases" : [ {
      "version" : "6.7.0-14765156",
      "aliases" : [ "6.7.0-14765268" ]
    } ]
  } ]
}

2.26.2. Update Version Aliases

Update Version Alias Configurations
* Update Version Alias Configurations API is used to update multiple version alias configurations.

Prerequisites
  1. The following data is required

    • Bundle component type

    • One or more version aliases

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/system/settings/version-aliases' -i -X PUT \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "versionAliasesForBundleComponentTypes" : [ {
    "bundleComponentType" : "VCENTER",
    "versionAliases" : [ {
      "version" : "6.7.0-14765156",
      "aliases" : [ "6.7.0-14765268" ]
    } ]
  } ],
  "forceUpdate" : true
}'

HTTP Request

PUT /v1/system/settings/version-aliases HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 230
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "versionAliasesForBundleComponentTypes" : [ {
    "bundleComponentType" : "VCENTER",
    "versionAliases" : [ {
      "version" : "6.7.0-14765156",
      "aliases" : [ "6.7.0-14765268" ]
    } ]
  } ],
  "forceUpdate" : true
}

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 177

{
  "elements" : [ {
    "bundleComponentType" : "VCENTER",
    "versionAliases" : [ {
      "version" : "6.7.0-14765156",
      "aliases" : [ "6.7.0-14765268" ]
    } ]
  } ]
}

Update Version Alias Configuration
* Update Version Alias Configuration API is used to update a specific version alias configuration.

Prerequisites
  1. The following data is required

    • Bundle component type

    • Version

    • Alias specification

Tip
Refer to: AliasSpec
Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/system/settings/version-aliases/VCENTER/6.7.0-14765156' -i -X PUT \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "aliases" : [ "6.7.0-14765268" ],
  "forceUpdate" : true
}'

HTTP Request

PUT /v1/system/settings/version-aliases/VCENTER/6.7.0-14765156 HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 62
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "aliases" : [ "6.7.0-14765268" ],
  "forceUpdate" : true
}

HTTP Response

HTTP/1.1 200 OK
Content-Disposition: inline;filename=f.txt
Content-Type: application/json
Content-Length: 177

{
  "elements" : [ {
    "bundleComponentType" : "VCENTER",
    "versionAliases" : [ {
      "version" : "6.7.0-14765156",
      "aliases" : [ "6.7.0-14765268" ]
    } ]
  } ]
}

2.26.3. Delete Version Aliases

Delete Version Aliases
* Delete Version Alias Configuration API is used to delete version alias configurations by bundle component type, version and alias version.

Prerequisites
  1. The following data is required

    • Bundle component type

    • Bundle component version

    • One or more alias versions to be removed

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/system/settings/version-aliases/VCENTER/6.7.0-14765156' -i -X DELETE \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '[ "6.7.0-14765268" ]'

HTTP Request

DELETE /v1/system/settings/version-aliases/VCENTER/6.7.0-14765156 HTTP/1.1
Content-Type: application/json
Content-Length: 20
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

[ "6.7.0-14765268" ]

HTTP Response

HTTP/1.1 204 No Content

Delete Version Alias by Type and Version
* Delete Version Alias Configuration API is used to delete a version alias configuration by bundle component type and version.

Prerequisites
  1. The following data is required

    • Bundle component type

    • Bundle component version

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/system/settings/version-aliases/VCENTER/6.7.0-14765156' -i -X DELETE \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

DELETE /v1/system/settings/version-aliases/VCENTER/6.7.0-14765156 HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 204 No Content

Delete Version Alias by Type
* Delete Version Alias for a bundle component type API is used to delete a version alias configuration by bundle component type.

Prerequisites
  1. The following data is required

    • Bundle component type

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/system/settings/version-aliases/VCENTER' -i -X DELETE \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

DELETE /v1/system/settings/version-aliases/VCENTER HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 204 No Content

2.27. Upgrades

2.27.1. Perform Upgrade

Perform Upgrade API is used to perform upgrades. Upgrades are sequential. So in order to upgrade to a release, your environment must be on the version before that release. Upgrades are applied on a workload domain basis. The management domain contains the core infrastructure, so you must upgrade the management domain before upgrading the other workload domains. You must upgrade all required components to keep your system in an optimum state.

Note
Performing upgrades is supported on VMware Cloud Foundation 3.5 BOM resources and above.
Steps to Perform Upgrade.
  1. Download the required bundle.

  2. Execute Get the Upgradables API to retrieve the list of upgradables (bundle and resource detail) in the system.

  3. Execute Prechecks API to perform required system level health checks.

  4. Perform upgrade and monitor the upgrade progress.

2.27.2. Domain Upgrade

Prerequisites

The following data is required:

  • Bundle ID.

  • Resource Type. Ex: DOMAIN.

  • One or more Resource upgrade specifications.

  • Each Resource upgrade specification should contain.

    • Resource ID. Ex: Domain ID.

    • Upgrade scheduled time or Upgrade now option.

  • The following data is optional:

    • A boolean for parallel ESXi upgrade (default is 'true')

    • A boolean for quickboot run for ESXi upgrade (default is 'false')

Tip
Refer to: UpgradeSpec and ResourceUpgradeSpec.
Steps
  1. Invoke the API. This API returns a task which can be polled and monitored.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/upgrades' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "bundleId" : "7dc56a95-2b32-46b0-adb6-66fd2e6b7291",
  "resourceType" : "DOMAIN",
  "parallelUpgrade" : true,
  "resourceUpgradeSpecs" : [ {
    "resourceId" : "293f9253-a1c0-4dd1-b989-f13d1b0ee1c1",
    "scheduledTimestamp" : "2021-09-13T23:54:58.316Z",
    "upgradeNow" : false,
    "enableQuickboot" : true
  } ]
}'

HTTP Request

POST /v1/upgrades HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 321
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "bundleId" : "7dc56a95-2b32-46b0-adb6-66fd2e6b7291",
  "resourceType" : "DOMAIN",
  "parallelUpgrade" : true,
  "resourceUpgradeSpecs" : [ {
    "resourceId" : "293f9253-a1c0-4dd1-b989-f13d1b0ee1c1",
    "scheduledTimestamp" : "2021-09-13T23:54:58.316Z",
    "upgradeNow" : false,
    "enableQuickboot" : true
  } ]
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/6215b1d5-fd38-4573-b7a7-25c7ed8cc50d
Content-Length: 478

{
  "id" : "6215b1d5-fd38-4573-b7a7-25c7ed8cc50d",
  "name" : "Upgrade DOMAIN - [acme-domain] using BUNDLE - PSC:6.7.0-13010631 VCENTER:6.7.0-13010631",
  "type" : "UPGRADE",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2021-09-13T23:54:58.315Z",
  "resources" : [ {
    "resourceId" : "293f9253-a1c0-4dd1-b989-f13d1b0ee1c1",
    "type" : "DOMAIN"
  }, {
    "resourceId" : "7dc56a95-2b32-46b0-adb6-66fd2e6b7291",
    "type" : "BUNDLE"
  } ],
  "isCancellable" : false
}
  1. Poll the status of the task using the task API with the ID from the response of the previous API.

Tip
Refer to: Get a Task.

2.27.3. Cluster Upgrade

Note
For Cluster level upgrades, the Cluster ID’s can be retrieved based on the Host’s that are available for upgrade, Refer to: Get the Hosts and Get the Clusters API’s.
Prerequisites

The following data is required:

  • Bundle ID.

  • Resource Type. Ex: CLUSTER.

  • One or more Resource upgrade specifications.

  • Each Resource upgrade specification should contain.

    • Resource ID. Ex: Cluster ID.

    • Upgrade scheduled time or Upgrade now option.

  • The following data is optional:

    • A boolean for parallel ESXi upgrade (default is 'true')

    • A boolean for quickboot run for ESXi upgrade (default is 'false')

Tip
Refer to: UpgradeSpec and ResourceUpgradeSpec.
Steps
  1. Invoke the API. This API returns a task which can be polled and monitored.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/upgrades' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "bundleId" : "7dc56a95-2b32-46b0-adb6-66fd2e6b7291",
  "resourceType" : "CLUSTER",
  "parallelUpgrade" : true,
  "resourceUpgradeSpecs" : [ {
    "resourceId" : "be57cd46-84d2-408f-80a4-d38b668f1ba9",
    "scheduledTimestamp" : "2021-09-14T00:55:00.829Z",
    "upgradeNow" : false,
    "enableQuickboot" : true
  } ]
}'

HTTP Request

POST /v1/upgrades HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 322
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "bundleId" : "7dc56a95-2b32-46b0-adb6-66fd2e6b7291",
  "resourceType" : "CLUSTER",
  "parallelUpgrade" : true,
  "resourceUpgradeSpecs" : [ {
    "resourceId" : "be57cd46-84d2-408f-80a4-d38b668f1ba9",
    "scheduledTimestamp" : "2021-09-14T00:55:00.829Z",
    "upgradeNow" : false,
    "enableQuickboot" : true
  } ]
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/6215b1d5-fd38-4573-b7a7-25c7ed8cc50d
Content-Length: 456

{
  "id" : "6215b1d5-fd38-4573-b7a7-25c7ed8cc50d",
  "name" : "Upgrade DOMAIN - [acme-domain] using BUNDLE - HOST:6.7.0-13006603",
  "type" : "UPGRADE",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2021-09-13T23:55:00.829Z",
  "resources" : [ {
    "resourceId" : "293f9253-a1c0-4dd1-b989-f13d1b0ee1c1",
    "type" : "DOMAIN"
  }, {
    "resourceId" : "7dc56a95-2b32-46b0-adb6-66fd2e6b7291",
    "type" : "BUNDLE"
  } ],
  "isCancellable" : false
}
  1. Poll the status of the task using the task API with the ID from the response of the previous API.

Tip
Refer to: Get a Task.

2.27.4. vLCM Cluster Upgrade

Note
For vLCM Cluster level upgrades, the Cluster ID’s can be retrieved based on the Host’s that are available for upgrade, Refer to: Get the Hosts and Get the Clusters API’s.
Prerequisites

The following data is required:

  • Bundle ID.

  • Resource Type. Ex: CLUSTER.

  • Optional Draft Mode.

  • One or more Resource upgrade specifications.

  • Each Resource upgrade specification should contain.

    • Resource ID. Ex: Cluster ID.

    • Upgrade scheduled time or Upgrade now option.

    • Personality Spec

      • Personality ID

      • Optional Hardware Support Specs

  • The following data is optional:

    • A boolean for quickboot run for ESXi upgrade (default is 'false')

Steps
  1. Invoke the API. This API returns a task which can be polled and monitored. If the API is invoked with draftMode set to true, see Step 3

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/upgrades' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "bundleId" : "7dc56a95-2b32-46b0-adb6-66fd2e6b7291",
  "resourceType" : "CLUSTER",
  "draftMode" : false,
  "resourceUpgradeSpecs" : [ {
    "resourceId" : "be57cd46-84d2-408f-80a4-d38b668f1ba9",
    "scheduledTimestamp" : "2021-09-14T00:54:58.004Z",
    "upgradeNow" : false,
    "personalitySpec" : {
      "personalityId" : "af318b39-cdf3-4db4-a8b9-1570846e3481",
      "hardwareSupportSpecs" : [ {
        "name" : "HSM",
        "packageSpec" : {
          "name" : "HSP",
          "version" : "1.0.0"
        }
      } ]
    },
    "enableQuickboot" : true
  } ]
}'

HTTP Request

POST /v1/upgrades HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 575
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "bundleId" : "7dc56a95-2b32-46b0-adb6-66fd2e6b7291",
  "resourceType" : "CLUSTER",
  "draftMode" : false,
  "resourceUpgradeSpecs" : [ {
    "resourceId" : "be57cd46-84d2-408f-80a4-d38b668f1ba9",
    "scheduledTimestamp" : "2021-09-14T00:54:58.004Z",
    "upgradeNow" : false,
    "personalitySpec" : {
      "personalityId" : "af318b39-cdf3-4db4-a8b9-1570846e3481",
      "hardwareSupportSpecs" : [ {
        "name" : "HSM",
        "packageSpec" : {
          "name" : "HSP",
          "version" : "1.0.0"
        }
      } ]
    },
    "enableQuickboot" : true
  } ]
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/6215b1d5-fd38-4573-b7a7-25c7ed8cc50d
Content-Length: 452

{
  "id" : "6215b1d5-fd38-4573-b7a7-25c7ed8cc50d",
  "name" : "Upgrade SDDC_MANAGER - [] using BUNDLE - HOST:6.7.0-13006603",
  "type" : "UPGRADE",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2021-09-13T23:54:58.003Z",
  "resources" : [ {
    "resourceId" : "be57cd46-84d2-408f-80a4-d38b668f1ba9",
    "type" : "CLUSTER"
  }, {
    "resourceId" : "7dc56a95-2b32-46b0-adb6-66fd2e6b7291",
    "type" : "BUNDLE"
  } ],
  "isCancellable" : false
}
  1. Poll the status of the task using the task API with the ID from the response of the previous API.

Tip
Refer to: Get a Task.
  1. If the upgrade is created with draftMode set to true, the upgrade status will be in "DRAFT" state and you can trigger a hardware compatibility and compliance check before scheduling the upgrade. Invoke the API, with the upgrade ID from step 1, to trigger/start the hardware compatibility and compliance check.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/upgrades/d78f43b5-d904-411c-8a1d-0a39c23b5dd7/prechecks' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

POST /v1/upgrades/d78f43b5-d904-411c-8a1d-0a39c23b5dd7/prechecks HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/94949fb8-b9bb-446c-a7b8-e4175ba5caf7
Content-Length: 2008

{
  "id" : "94949fb8-b9bb-446c-a7b8-e4175ba5caf7",
  "name" : "PRECHECK",
  "type" : "PRECHECK",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2021-09-13T23:54:58.229Z",
  "completionTimestamp" : "2021-09-13T23:54:58.229Z",
  "subTasks" : [ {
    "name" : "vLCM Precheck for cluster: acme-cluster",
    "description" : "vLCM Precheck for cluster: acme-cluster",
    "status" : "IN_PROGRESS",
    "creationTimestamp" : "2021-09-13T23:54:58.230Z",
    "stages" : [ {
      "name" : "vLCM cluster health check",
      "description" : "Perform Stage - Perform Stage - Precheck if the cluster are in a good state to be updated with the desired software image",
      "status" : "UNKNOWN",
      "errors" : [ ]
    } ],
    "resources" : [ {
      "resourceId" : "be57cd46-84d2-408f-80a4-d38b668f1ba9",
      "type" : "CLUSTER"
    } ],
    "subTasks" : [ {
      "name" : "vLCM Precheck for host: 10.0.0.100",
      "description" : "vLCM Precheck for host: 10.0.0.100",
      "status" : "IN_PROGRESS",
      "creationTimestamp" : "2021-09-13T23:54:58.230Z",
      "stages" : [ {
        "name" : "vLCM image scan",
        "description" : "Perform Stage - Perform Stage - Host compliance",
        "status" : "UNKNOWN",
        "errors" : [ ]
      }, {
        "name" : "vLCM image baseOS scan",
        "description" : "Perform Stage - Perform Stage - Validating the baseOS version.",
        "status" : "FAILED",
        "errors" : [ {
          "errorCode" : "com.vmware.vcIntegrity.lifecycle.HostScan.BaseImageDowngrade",
          "errorType" : "ERROR",
          "message" : "Desired Base Image version 7.0.0-1.20.16321839 is a downgrade of the installed version ESXi.",
          "remediationMessage" : "Replace the Base Image in the desired state with one of the same or higher version."
        } ]
      } ],
      "resources" : [ {
        "resourceId" : "7066be3a-cdb7-4f04-add1-798a53818fab",
        "type" : "ESX"
      } ],
      "subTasks" : [ ]
    } ]
  } ],
  "isCancellable" : false
}
Tip
Refer to: performPrechecks
  1. Poll the status of the hardware compatibility and compliance check task using the task API with the ID from the response of the previous API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/upgrades/d78f43b5-d904-411c-8a1d-0a39c23b5dd7/prechecks/d78f43b5-d904-411c-8a1d-0a39c23b5dd7' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/upgrades/d78f43b5-d904-411c-8a1d-0a39c23b5dd7/prechecks/d78f43b5-d904-411c-8a1d-0a39c23b5dd7 HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 2008

{
  "id" : "94949fb8-b9bb-446c-a7b8-e4175ba5caf7",
  "name" : "PRECHECK",
  "type" : "PRECHECK",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2021-09-13T23:54:58.904Z",
  "completionTimestamp" : "2021-09-13T23:54:58.904Z",
  "subTasks" : [ {
    "name" : "vLCM Precheck for cluster: acme-cluster",
    "description" : "vLCM Precheck for cluster: acme-cluster",
    "status" : "IN_PROGRESS",
    "creationTimestamp" : "2021-09-13T23:54:58.904Z",
    "stages" : [ {
      "name" : "vLCM cluster health check",
      "description" : "Perform Stage - Perform Stage - Precheck if the cluster are in a good state to be updated with the desired software image",
      "status" : "UNKNOWN",
      "errors" : [ ]
    } ],
    "resources" : [ {
      "resourceId" : "be57cd46-84d2-408f-80a4-d38b668f1ba9",
      "type" : "CLUSTER"
    } ],
    "subTasks" : [ {
      "name" : "vLCM Precheck for host: 10.0.0.100",
      "description" : "vLCM Precheck for host: 10.0.0.100",
      "status" : "IN_PROGRESS",
      "creationTimestamp" : "2021-09-13T23:54:58.904Z",
      "stages" : [ {
        "name" : "vLCM image scan",
        "description" : "Perform Stage - Perform Stage - Host compliance",
        "status" : "UNKNOWN",
        "errors" : [ ]
      }, {
        "name" : "vLCM image baseOS scan",
        "description" : "Perform Stage - Perform Stage - Validating the baseOS version.",
        "status" : "FAILED",
        "errors" : [ {
          "errorCode" : "com.vmware.vcIntegrity.lifecycle.HostScan.BaseImageDowngrade",
          "errorType" : "ERROR",
          "message" : "Desired Base Image version 7.0.0-1.20.16321839 is a downgrade of the installed version ESXi.",
          "remediationMessage" : "Replace the Base Image in the desired state with one of the same or higher version."
        } ]
      } ],
      "resources" : [ {
        "resourceId" : "7066be3a-cdb7-4f04-add1-798a53818fab",
        "type" : "ESX"
      } ],
      "subTasks" : [ ]
    } ]
  } ],
  "isCancellable" : false
}
  1. Once the hardware compatibility and compliance check task is completed and result is reviewed, schedule the upgrade.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/upgrades/d78f43b5-d904-411c-8a1d-0a39c23b5dd7' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "scheduledTimestamp" : "2021-09-14T00:55:00.327Z",
  "upgradeNow" : false
}'

HTTP Request

PATCH /v1/upgrades/d78f43b5-d904-411c-8a1d-0a39c23b5dd7 HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 79
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "scheduledTimestamp" : "2021-09-14T00:55:00.327Z",
  "upgradeNow" : false
}

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 502

{
  "id" : "d78f43b5-d904-411c-8a1d-0a39c23b5dd7",
  "bundleId" : "7dc56a95-2b32-46b0-adb6-66fd2e6b7291",
  "resourceType" : "CLUSTER",
  "resourceUpgradeSpecs" : [ {
    "resourceId" : "be57cd46-84d2-408f-80a4-d38b668f1ba9",
    "shutdownVms" : null,
    "toVersion" : null,
    "scheduledTimestamp" : "2021-09-14T00:55:00.326Z",
    "upgradeNow" : null,
    "personalitySpec" : null,
    "enableQuickboot" : false
  } ],
  "status" : "SCHEDULED",
  "taskId" : "d78f43b5-d904-411c-8a1d-0a39c23b5dd7"
}
  1. Poll the status of the upgrade task using the task API with the ID from the response of the previous API.

Tip
Refer to: Get a Task.

2.28. Credentials

2.28.1. Get the Credentials

This API is used to fetch all credentials known to the system.

Prerequisites
  1. The following data is required

    • Resource type, name, IP address, accountType or the domain name associated with the resource is required to filter the results. For allowable resource type values, refer : Get the Credentials

    • "pageNumber" and "pageSize" filters are recommended to be additionally used for limiting response content and also improving response time.

Get All Credentials in Page

Steps
  1. Invoke the API by specifying the "pageNumber" and "pageSize" filters.

Tip
Other filters like "resourceName", "resourceIp", "resourceType" and "domainName" can be additionally used as search criteria.
Tip
If no value for "pageNumber" and "pageSize" filters is specified, the API returns all known records in a single page.
Tip
Page number starts with 0.
Tip
A page size value equal to 0 will return all known records in a single page.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/credentials?pageNumber=0&pageSize=15' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/credentials?pageNumber=0&pageSize=15 HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 7985

{
  "elements" : [ {
    "id" : "85735d06-ef2d-491d-9867-4e949d7165f2",
    "credentialType" : "SSH",
    "accountType" : "USER",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:26.892Z",
    "modificationTimestamp" : "2022-02-08T08:10:26.892Z",
    "resource" : {
      "resourceId" : "11707d85-9d1a-4308-86e0-5bfbdea904d0",
      "resourceName" : "sfo01-m01-esx01.rainpole.io",
      "resourceIp" : "10.0.0.100",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "ef5ef7f6-4ffc-47c9-8ea2-2ff8e1fa01b9",
    "credentialType" : "SSH",
    "accountType" : "USER",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:26.892Z",
    "modificationTimestamp" : "2022-02-08T08:10:26.892Z",
    "resource" : {
      "resourceId" : "9ad8ab0a-6cba-4fd8-956c-315891e8c8df",
      "resourceName" : "sfo01-m01-esx02.rainpole.io",
      "resourceIp" : "10.0.0.101",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "1b101f90-be16-4056-a531-04f002b95d32",
    "credentialType" : "SSH",
    "accountType" : "USER",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:26.892Z",
    "modificationTimestamp" : "2022-02-08T08:10:26.892Z",
    "resource" : {
      "resourceId" : "c318961d-3ba5-4574-94c1-8699603b7e77",
      "resourceName" : "sfo01-m01-esx03.rainpole.io",
      "resourceIp" : "10.0.0.102",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "328b6041-8728-421a-a9a9-8471b33a7290",
    "credentialType" : "SSH",
    "accountType" : "USER",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:26.892Z",
    "modificationTimestamp" : "2022-02-08T08:10:26.892Z",
    "resource" : {
      "resourceId" : "c61e8bfe-7846-4fad-abfa-9db6bf0bb059",
      "resourceName" : "sfo01-m01-esx04.rainpole.io",
      "resourceIp" : "10.0.0.103",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "ffe3e82e-53a8-4588-a267-bcbf4d54a05b",
    "credentialType" : "SSH",
    "accountType" : "USER",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:26.892Z",
    "modificationTimestamp" : "2022-02-08T08:10:26.892Z",
    "resource" : {
      "resourceId" : "baec1b32-28df-4648-a95f-b5cfbf8984ef",
      "resourceName" : "sfo01-m01-vc01.rainpole.io",
      "resourceIp" : "10.0.0.6",
      "resourceType" : "VCENTER",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "1c97c85b-6428-4c33-a2c0-3a5101dcd928",
    "credentialType" : "SSO",
    "accountType" : "USER",
    "username" : "[email protected]",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:26.892Z",
    "modificationTimestamp" : "2022-02-08T08:10:26.892Z",
    "resource" : {
      "resourceId" : "fa501625-572a-433a-bcde-be8c8735b76c",
      "resourceName" : "sfo01-m01-vc01.rainpole.io",
      "resourceIp" : "10.0.0.6",
      "resourceType" : "PSC",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "8b563742-0423-4fa6-ba59-4b2fcdf5e1ff",
    "credentialType" : "SSO",
    "accountType" : "SERVICE",
    "username" : "[email protected]",
    "creationTimestamp" : "2022-02-08T08:10:26.892Z",
    "modificationTimestamp" : "2022-02-08T08:10:26.892Z",
    "resource" : {
      "resourceId" : "2e453b86-0ef3-4dcb-9315-cdb06faa7c5f",
      "resourceName" : "sfo01m01vcenter01.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.6",
      "resourceType" : "VCENTER",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "6332bd07-f813-481e-8e57-813a16b28d57",
    "credentialType" : "API",
    "accountType" : "USER",
    "username" : "admin",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:26.892Z",
    "modificationTimestamp" : "2022-02-08T08:10:26.892Z",
    "resource" : {
      "resourceId" : "86f142da-0fbe-436a-8541-7e369cd4af09",
      "resourceName" : "sfo01-m01-nsx01.rainpole.io",
      "resourceIp" : "10.0.0.9",
      "resourceType" : "NSXT_MANAGER",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "f12dd678-f9b2-420e-a515-4a046a3e8f93",
    "credentialType" : "SSH",
    "accountType" : "USER",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:26.892Z",
    "modificationTimestamp" : "2022-02-08T08:10:26.892Z",
    "resource" : {
      "resourceId" : "d9a99517-29de-4319-a8cd-e05d1bce7103",
      "resourceName" : "sfo01-m01-nsx01.rainpole.io",
      "resourceIp" : "10.0.0.9",
      "resourceType" : "NSXT_MANAGER",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "f328a44f-099c-434c-8d16-ed6b7974c0d7",
    "credentialType" : "API",
    "accountType" : "USER",
    "username" : "admin",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:26.892Z",
    "modificationTimestamp" : "2022-02-08T08:10:26.892Z",
    "resource" : {
      "resourceId" : "d93b688b-d6f1-4763-9953-a9e894281199",
      "resourceName" : "sfo-vrli01.rainpole.io",
      "resourceIp" : "10.0.0.15",
      "resourceType" : "VRLI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "e05a3d3c-05a2-4ade-ba82-115a4f3490ed",
    "credentialType" : "SSH",
    "accountType" : "USER",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:26.892Z",
    "modificationTimestamp" : "2022-02-08T08:10:26.892Z",
    "resource" : {
      "resourceId" : "852646c0-9be3-4a9a-86a5-bc466516b09c",
      "resourceName" : "sfo-vrli01b.rainpole.io",
      "resourceIp" : "10.0.0.16",
      "resourceType" : "VRLI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "be3e15dd-b92a-4bef-9bab-d4e29ab45b52",
    "credentialType" : "SSH",
    "accountType" : "USER",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:26.892Z",
    "modificationTimestamp" : "2022-02-08T08:10:26.892Z",
    "resource" : {
      "resourceId" : "ca942adf-fac3-4d22-ae2f-05358c40fc53",
      "resourceName" : "xreg-vrops01a.rainpole.io",
      "resourceIp" : "10.0.1.33",
      "resourceType" : "VROPS",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "50654473-fade-441e-ba12-da8effdc1da3",
    "credentialType" : "API",
    "accountType" : "USER",
    "username" : "admin",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:26.892Z",
    "modificationTimestamp" : "2022-02-08T08:10:26.892Z",
    "resource" : {
      "resourceId" : "8baaa2e8-58d0-4e41-b69f-92ed0ea3fc7c",
      "resourceName" : "xreg-vrops01.rainpole.io",
      "resourceIp" : "10.0.0.31",
      "resourceType" : "VROPS",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "ec5fb3f8-1821-48db-84ef-24466f6da6d8",
    "credentialType" : "SSH",
    "accountType" : "USER",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:26.892Z",
    "modificationTimestamp" : "2022-02-08T08:10:26.892Z",
    "resource" : {
      "resourceId" : "86b527c8-7c5c-45e6-85c9-6e8c9a2c5092",
      "resourceName" : "xreg-vrslcm01.rainpole.io",
      "resourceIp" : "10.0.0.32",
      "resourceType" : "VRSLCM",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "cefb756c-ae12-4495-8e0c-660bcb100d33",
    "credentialType" : "API",
    "accountType" : "USER",
    "username" : "admin@localhost",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:26.892Z",
    "modificationTimestamp" : "2022-02-08T08:10:26.892Z",
    "resource" : {
      "resourceId" : "7fb92e63-5c71-4b56-82f3-901441b8c00b",
      "resourceName" : "xreg-vrslcm01.rainpole.io",
      "resourceIp" : "10.0.0.32",
      "resourceType" : "VRSLCM",
      "domainName" : "MGMT"
    }
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 15,
    "totalElements" : 15,
    "totalPages" : 1
  }
}

Get All Credentials

Steps
  1. Invoke the API.

Tip
For a scaled environment, it is always recommended to provide "resourceType" filter for avoiding timeouts.
Tip
"pageNumber" and "pageSize" filters are recommended to be additionally used for limiting response content and also improving response time.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/credentials' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/credentials HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 7985

{
  "elements" : [ {
    "id" : "8de1f5da-7b1a-4ad9-a3ab-57429703af80",
    "credentialType" : "SSH",
    "accountType" : "USER",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:24.601Z",
    "modificationTimestamp" : "2022-02-08T08:10:24.601Z",
    "resource" : {
      "resourceId" : "01f963af-9def-4839-b60a-497ed73f0bef",
      "resourceName" : "sfo01-m01-esx01.rainpole.io",
      "resourceIp" : "10.0.0.100",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "ef5ef7f6-4ffc-47c9-8ea2-2ff8e1fa01b9",
    "credentialType" : "SSH",
    "accountType" : "USER",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:24.601Z",
    "modificationTimestamp" : "2022-02-08T08:10:24.601Z",
    "resource" : {
      "resourceId" : "9ad8ab0a-6cba-4fd8-956c-315891e8c8df",
      "resourceName" : "sfo01-m01-esx02.rainpole.io",
      "resourceIp" : "10.0.0.101",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "81c90af9-4ee5-4978-88f6-b325088e5adb",
    "credentialType" : "SSH",
    "accountType" : "USER",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:24.601Z",
    "modificationTimestamp" : "2022-02-08T08:10:24.601Z",
    "resource" : {
      "resourceId" : "2940a071-1563-4d6f-9edf-c0b06fb1034d",
      "resourceName" : "sfo01-m01-esx03.rainpole.io",
      "resourceIp" : "10.0.0.102",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "6d4296b4-4700-49ba-aad7-69d4d8611976",
    "credentialType" : "SSH",
    "accountType" : "USER",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:24.601Z",
    "modificationTimestamp" : "2022-02-08T08:10:24.601Z",
    "resource" : {
      "resourceId" : "c939a171-6bf5-4e07-8f47-614613de620a",
      "resourceName" : "sfo01-m01-esx04.rainpole.io",
      "resourceIp" : "10.0.0.103",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "11450c75-7ba6-49eb-b0c4-51472d83cdf8",
    "credentialType" : "SSH",
    "accountType" : "USER",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:24.601Z",
    "modificationTimestamp" : "2022-02-08T08:10:24.601Z",
    "resource" : {
      "resourceId" : "baec1b32-28df-4648-a95f-b5cfbf8984ef",
      "resourceName" : "sfo01-m01-vc01.rainpole.io",
      "resourceIp" : "10.0.0.6",
      "resourceType" : "VCENTER",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "45d8d206-099d-4944-9365-6b71a937bf77",
    "credentialType" : "SSO",
    "accountType" : "USER",
    "username" : "[email protected]",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:24.601Z",
    "modificationTimestamp" : "2022-02-08T08:10:24.601Z",
    "resource" : {
      "resourceId" : "8f7dacb7-d633-411d-ba21-d72ebfa148f4",
      "resourceName" : "sfo01-m01-vc01.rainpole.io",
      "resourceIp" : "10.0.0.6",
      "resourceType" : "PSC",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "ed1c1cca-1aaa-4e8c-9b86-c752bd3380cb",
    "credentialType" : "SSO",
    "accountType" : "SERVICE",
    "username" : "[email protected]",
    "creationTimestamp" : "2022-02-08T08:10:24.601Z",
    "modificationTimestamp" : "2022-02-08T08:10:24.601Z",
    "resource" : {
      "resourceId" : "09f3855e-9461-4a14-ad26-9fd58f36fbd0",
      "resourceName" : "sfo01m01vcenter01.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.6",
      "resourceType" : "VCENTER",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "7514f035-2e5e-4a75-a7eb-8635a517588a",
    "credentialType" : "API",
    "accountType" : "USER",
    "username" : "admin",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:24.601Z",
    "modificationTimestamp" : "2022-02-08T08:10:24.601Z",
    "resource" : {
      "resourceId" : "f349794a-1a90-4a32-9d25-768a3ba4820c",
      "resourceName" : "sfo01-m01-nsx01.rainpole.io",
      "resourceIp" : "10.0.0.9",
      "resourceType" : "NSXT_MANAGER",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "112feb83-237b-41bf-bfc6-147e602448f6",
    "credentialType" : "SSH",
    "accountType" : "USER",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:24.601Z",
    "modificationTimestamp" : "2022-02-08T08:10:24.601Z",
    "resource" : {
      "resourceId" : "a62f63e1-6345-4cd4-b569-755f770fdf35",
      "resourceName" : "sfo01-m01-nsx01.rainpole.io",
      "resourceIp" : "10.0.0.9",
      "resourceType" : "NSXT_MANAGER",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "9cc3e06b-24fa-4e43-9eac-7002f45b72f6",
    "credentialType" : "API",
    "accountType" : "USER",
    "username" : "admin",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:24.601Z",
    "modificationTimestamp" : "2022-02-08T08:10:24.601Z",
    "resource" : {
      "resourceId" : "6da2745a-a065-4e9c-8d29-abb468b1d844",
      "resourceName" : "sfo-vrli01.rainpole.io",
      "resourceIp" : "10.0.0.15",
      "resourceType" : "VRLI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "4ba91e77-9409-420d-a19b-2d19cbc5e74e",
    "credentialType" : "SSH",
    "accountType" : "USER",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:24.602Z",
    "modificationTimestamp" : "2022-02-08T08:10:24.602Z",
    "resource" : {
      "resourceId" : "7f003cbf-c051-4a42-9896-155e32b3551f",
      "resourceName" : "sfo-vrli01b.rainpole.io",
      "resourceIp" : "10.0.0.16",
      "resourceType" : "VRLI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "aba38991-56d9-447d-86ae-1418d4376610",
    "credentialType" : "SSH",
    "accountType" : "USER",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:24.602Z",
    "modificationTimestamp" : "2022-02-08T08:10:24.602Z",
    "resource" : {
      "resourceId" : "55f79e14-3bad-4ada-8b7d-32e6d25a636b",
      "resourceName" : "xreg-vrops01a.rainpole.io",
      "resourceIp" : "10.0.1.33",
      "resourceType" : "VROPS",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "85d7fc9b-e605-4fdc-8071-482c0f8a64dc",
    "credentialType" : "API",
    "accountType" : "USER",
    "username" : "admin",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:24.602Z",
    "modificationTimestamp" : "2022-02-08T08:10:24.602Z",
    "resource" : {
      "resourceId" : "df4a1f6d-0a60-41aa-8940-7a81803b3aa4",
      "resourceName" : "xreg-vrops01.rainpole.io",
      "resourceIp" : "10.0.0.31",
      "resourceType" : "VROPS",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "c6e24c89-6bb9-49e6-9c66-cfe7f35d9f85",
    "credentialType" : "SSH",
    "accountType" : "USER",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:24.602Z",
    "modificationTimestamp" : "2022-02-08T08:10:24.602Z",
    "resource" : {
      "resourceId" : "efb1c925-b3ed-48bd-9951-1401cde7e40c",
      "resourceName" : "xreg-vrslcm01.rainpole.io",
      "resourceIp" : "10.0.0.32",
      "resourceType" : "VRSLCM",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "3d90709d-2fcd-4e3b-8d8a-75c0f5292766",
    "credentialType" : "API",
    "accountType" : "USER",
    "username" : "admin@localhost",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:24.602Z",
    "modificationTimestamp" : "2022-02-08T08:10:24.602Z",
    "resource" : {
      "resourceId" : "dca113f9-691f-4a9c-956c-dbfa2a184008",
      "resourceName" : "xreg-vrslcm01.rainpole.io",
      "resourceIp" : "10.0.0.32",
      "resourceType" : "VRSLCM",
      "domainName" : "MGMT"
    }
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 15,
    "totalElements" : 15,
    "totalPages" : 1
  }
}

Get Credentials by "resourceName"

This API can be used to fetch the credentials associated with a resource with a specific name.

Steps
  1. Invoke the API by specifying the "resourceName".

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/credentials?resourceName=sfo01-mo1-esx02.rainpole.io' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/credentials?resourceName=sfo01-mo1-esx02.rainpole.io HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 656

{
  "elements" : [ {
    "id" : "ef5ef7f6-4ffc-47c9-8ea2-2ff8e1fa01b9",
    "credentialType" : "SSH",
    "accountType" : "USER",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:26.759Z",
    "modificationTimestamp" : "2022-02-08T08:10:26.759Z",
    "resource" : {
      "resourceId" : "9ad8ab0a-6cba-4fd8-956c-315891e8c8df",
      "resourceName" : "sfo01-m01-esx02.rainpole.io",
      "resourceIp" : "10.0.0.101",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 1,
    "totalElements" : 1,
    "totalPages" : 1
  }
}

Get Credentials by "resourceIp"

This API can be used to fetch the credentials associated with a resource with a specific IP address.

Steps
  1. Invoke the API by specifying the "resourceIp".

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/credentials?resourceIp=10.0.0.101' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/credentials?resourceIp=10.0.0.101 HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 656

{
  "elements" : [ {
    "id" : "ef5ef7f6-4ffc-47c9-8ea2-2ff8e1fa01b9",
    "credentialType" : "SSH",
    "accountType" : "USER",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:25.144Z",
    "modificationTimestamp" : "2022-02-08T08:10:25.144Z",
    "resource" : {
      "resourceId" : "9ad8ab0a-6cba-4fd8-956c-315891e8c8df",
      "resourceName" : "sfo01-m01-esx02.rainpole.io",
      "resourceIp" : "10.0.0.101",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 1,
    "totalElements" : 1,
    "totalPages" : 1
  }
}

Get Credentials by "resourceType"

This API can be used to fetch the credentials associated with all the resources with a specific resource type.

Steps
  1. Invoke the API by specifying the "resourceType".

Tip
"pageNumber" and "pageSize" filters are recommended to be additionally used for limiting response content and also improving response time.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/credentials?resourceType=ESXI' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/credentials?resourceType=ESXI HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 2219

{
  "elements" : [ {
    "id" : "c1a7f9d6-f7ae-470e-beb6-2e14f7c03e4c",
    "credentialType" : "SSH",
    "accountType" : "USER",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:24.422Z",
    "modificationTimestamp" : "2022-02-08T08:10:24.422Z",
    "resource" : {
      "resourceId" : "6c38d668-affe-476e-8c2b-fc7ed9f0990a",
      "resourceName" : "sfo01-m01-esx01.rainpole.io",
      "resourceIp" : "10.0.0.100",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "ef5ef7f6-4ffc-47c9-8ea2-2ff8e1fa01b9",
    "credentialType" : "SSH",
    "accountType" : "USER",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:24.422Z",
    "modificationTimestamp" : "2022-02-08T08:10:24.422Z",
    "resource" : {
      "resourceId" : "9ad8ab0a-6cba-4fd8-956c-315891e8c8df",
      "resourceName" : "sfo01-m01-esx02.rainpole.io",
      "resourceIp" : "10.0.0.101",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "dfd833d3-a879-4ada-8fca-d7bda3653ca0",
    "credentialType" : "SSH",
    "accountType" : "USER",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:24.422Z",
    "modificationTimestamp" : "2022-02-08T08:10:24.422Z",
    "resource" : {
      "resourceId" : "d24b8a75-0e37-48ef-9c6b-34fd9b983510",
      "resourceName" : "sfo01-m01-esx03.rainpole.io",
      "resourceIp" : "10.0.0.102",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "37ac6df4-9684-45d9-bfd3-86e109353fc0",
    "credentialType" : "SSH",
    "accountType" : "USER",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:24.422Z",
    "modificationTimestamp" : "2022-02-08T08:10:24.422Z",
    "resource" : {
      "resourceId" : "1e2878db-5400-447e-a109-64a0a24f4300",
      "resourceName" : "sfo01-m01-esx04.rainpole.io",
      "resourceIp" : "10.0.0.103",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 4,
    "totalElements" : 4,
    "totalPages" : 1
  }
}

Get Credentials by "domainName"

This API can be used to fetch the credentials associated with all the resources belonging to a specific domain.

Steps
  1. Invoke the API by specifying the "domainName".

Tip
"pageNumber" and "pageSize" filters are recommended to be additionally used for limiting response content and also improving response time.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/credentials?domainName=MGMT' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/credentials?domainName=MGMT HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 7985

{
  "elements" : [ {
    "id" : "6c6d04df-7c43-49ee-907d-94036dcaaa2b",
    "credentialType" : "SSH",
    "accountType" : "USER",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:26.632Z",
    "modificationTimestamp" : "2022-02-08T08:10:26.632Z",
    "resource" : {
      "resourceId" : "b3f26ac9-6912-4819-a5ac-80425b7b6984",
      "resourceName" : "sfo01-m01-esx01.rainpole.io",
      "resourceIp" : "10.0.0.100",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "ef5ef7f6-4ffc-47c9-8ea2-2ff8e1fa01b9",
    "credentialType" : "SSH",
    "accountType" : "USER",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:26.632Z",
    "modificationTimestamp" : "2022-02-08T08:10:26.632Z",
    "resource" : {
      "resourceId" : "9ad8ab0a-6cba-4fd8-956c-315891e8c8df",
      "resourceName" : "sfo01-m01-esx02.rainpole.io",
      "resourceIp" : "10.0.0.101",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "b59bf496-7b47-42e1-8d27-39007f88244c",
    "credentialType" : "SSH",
    "accountType" : "USER",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:26.632Z",
    "modificationTimestamp" : "2022-02-08T08:10:26.632Z",
    "resource" : {
      "resourceId" : "5b147342-5808-4e76-9650-65e5eeb24d90",
      "resourceName" : "sfo01-m01-esx03.rainpole.io",
      "resourceIp" : "10.0.0.102",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "30ccb477-4fd0-41b4-894e-1137484219cb",
    "credentialType" : "SSH",
    "accountType" : "USER",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:26.632Z",
    "modificationTimestamp" : "2022-02-08T08:10:26.632Z",
    "resource" : {
      "resourceId" : "765959c3-93e4-4fe4-9ee1-e478d9c3f20f",
      "resourceName" : "sfo01-m01-esx04.rainpole.io",
      "resourceIp" : "10.0.0.103",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "56374339-dd5a-46ac-9ce8-28049e274b0e",
    "credentialType" : "SSH",
    "accountType" : "USER",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:26.632Z",
    "modificationTimestamp" : "2022-02-08T08:10:26.632Z",
    "resource" : {
      "resourceId" : "baec1b32-28df-4648-a95f-b5cfbf8984ef",
      "resourceName" : "sfo01-m01-vc01.rainpole.io",
      "resourceIp" : "10.0.0.6",
      "resourceType" : "VCENTER",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "50ca7fac-7517-4ba8-8583-90b19f3e6da7",
    "credentialType" : "SSO",
    "accountType" : "USER",
    "username" : "[email protected]",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:26.632Z",
    "modificationTimestamp" : "2022-02-08T08:10:26.632Z",
    "resource" : {
      "resourceId" : "9cb9b83b-3fd6-4af2-894c-0ee7aaed7da3",
      "resourceName" : "sfo01-m01-vc01.rainpole.io",
      "resourceIp" : "10.0.0.6",
      "resourceType" : "PSC",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "9bd837e1-879e-4f6b-b8da-cb550513c7d9",
    "credentialType" : "SSO",
    "accountType" : "SERVICE",
    "username" : "[email protected]",
    "creationTimestamp" : "2022-02-08T08:10:26.632Z",
    "modificationTimestamp" : "2022-02-08T08:10:26.632Z",
    "resource" : {
      "resourceId" : "d20ef2e8-43ad-4760-a5a3-9a1c7ee441e1",
      "resourceName" : "sfo01m01vcenter01.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.6",
      "resourceType" : "VCENTER",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "fe8ccb85-ff57-45f0-977d-c00eab44388f",
    "credentialType" : "API",
    "accountType" : "USER",
    "username" : "admin",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:26.632Z",
    "modificationTimestamp" : "2022-02-08T08:10:26.632Z",
    "resource" : {
      "resourceId" : "5018e274-8466-4633-b40e-6c588ac13462",
      "resourceName" : "sfo01-m01-nsx01.rainpole.io",
      "resourceIp" : "10.0.0.9",
      "resourceType" : "NSXT_MANAGER",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "510838c1-2400-42ef-a14d-54fd2e2fd70c",
    "credentialType" : "SSH",
    "accountType" : "USER",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:26.632Z",
    "modificationTimestamp" : "2022-02-08T08:10:26.632Z",
    "resource" : {
      "resourceId" : "3c39356c-d34e-4451-bea2-7ce7e7678b37",
      "resourceName" : "sfo01-m01-nsx01.rainpole.io",
      "resourceIp" : "10.0.0.9",
      "resourceType" : "NSXT_MANAGER",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "ca75152a-489a-471b-9a4e-52ab69c82e79",
    "credentialType" : "API",
    "accountType" : "USER",
    "username" : "admin",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:26.632Z",
    "modificationTimestamp" : "2022-02-08T08:10:26.632Z",
    "resource" : {
      "resourceId" : "01c6b5d4-56c9-4932-a245-89cb958638ed",
      "resourceName" : "sfo-vrli01.rainpole.io",
      "resourceIp" : "10.0.0.15",
      "resourceType" : "VRLI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "707b84d3-791c-4838-b407-2da315c28dd8",
    "credentialType" : "SSH",
    "accountType" : "USER",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:26.632Z",
    "modificationTimestamp" : "2022-02-08T08:10:26.632Z",
    "resource" : {
      "resourceId" : "cb66be71-5725-462d-a1ea-1564b9540957",
      "resourceName" : "sfo-vrli01b.rainpole.io",
      "resourceIp" : "10.0.0.16",
      "resourceType" : "VRLI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "9ebdcc78-27dd-4262-9ad2-4c9dc259d46e",
    "credentialType" : "SSH",
    "accountType" : "USER",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:26.632Z",
    "modificationTimestamp" : "2022-02-08T08:10:26.632Z",
    "resource" : {
      "resourceId" : "1d12bafe-240a-4a29-996b-0333429871af",
      "resourceName" : "xreg-vrops01a.rainpole.io",
      "resourceIp" : "10.0.1.33",
      "resourceType" : "VROPS",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "2d95ed29-a073-47ac-8658-3b3fc580440d",
    "credentialType" : "API",
    "accountType" : "USER",
    "username" : "admin",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:26.632Z",
    "modificationTimestamp" : "2022-02-08T08:10:26.632Z",
    "resource" : {
      "resourceId" : "eca766da-f0fa-49c6-b6f6-9f3f5357d2fc",
      "resourceName" : "xreg-vrops01.rainpole.io",
      "resourceIp" : "10.0.0.31",
      "resourceType" : "VROPS",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "d640828f-0be7-489a-96af-e22c8f5c0de5",
    "credentialType" : "SSH",
    "accountType" : "USER",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:26.632Z",
    "modificationTimestamp" : "2022-02-08T08:10:26.632Z",
    "resource" : {
      "resourceId" : "071c5bd2-3a0a-4cb6-9e58-c2d54b5ce3c3",
      "resourceName" : "xreg-vrslcm01.rainpole.io",
      "resourceIp" : "10.0.0.32",
      "resourceType" : "VRSLCM",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "b1927913-4602-416f-b7dd-6698879ab480",
    "credentialType" : "API",
    "accountType" : "USER",
    "username" : "admin@localhost",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2022-02-08T08:10:26.633Z",
    "modificationTimestamp" : "2022-02-08T08:10:26.633Z",
    "resource" : {
      "resourceId" : "8c39a813-2361-42f4-9c11-eaa2e643b3bf",
      "resourceName" : "xreg-vrslcm01.rainpole.io",
      "resourceIp" : "10.0.0.32",
      "resourceType" : "VRSLCM",
      "domainName" : "MGMT"
    }
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 15,
    "totalElements" : 15,
    "totalPages" : 1
  }
}
Note
SSH services might be disabled for a few accounts. The user needs to enable SSH service in the product in order to use SSH credentials. In order to connect to the "enable" user of NSX_MANAGER, firstly enable SSH services using API credentials, connect to the API user and then enter enable mode using "enable" user credentials.

2.28.2. Get a Credential

This API is used to fetch credential for an ID.

Prerequisites
  1. The following data is required

    • ID of the credential

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/credentials/ef5ef7f6-4ffc-47c9-8ea2-2ff8e1fa01b9' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/credentials/ef5ef7f6-4ffc-47c9-8ea2-2ff8e1fa01b9 HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 489

{
  "id" : "ef5ef7f6-4ffc-47c9-8ea2-2ff8e1fa01b9",
  "credentialType" : "SSH",
  "accountType" : "USER",
  "username" : "root",
  "password" : "VMwareInfra@1",
  "creationTimestamp" : "2022-02-08T08:10:26.411Z",
  "modificationTimestamp" : "2022-02-08T08:10:26.411Z",
  "resource" : {
    "resourceId" : "9ad8ab0a-6cba-4fd8-956c-315891e8c8df",
    "resourceName" : "sfo01-m01-esx02.rainpole.io",
    "resourceIp" : "10.0.0.101",
    "resourceType" : "ESXI",
    "domainName" : "MGMT"
  }
}

2.28.3. Update the Passwords

This API is used to update passwords for list of resources by supplying new passwords.

Prerequisites
  1. The following data is required

    • Name or ID of the resource

    • Type of the resource

    • Credential type of the resource

    • Username of the resource

Tip
Refer to: Get the Credentials to get the credential type, username, name, ID and type of the resource.
  1. New password must be in compliance with these password policies.

    Password requirements:

    • Length: 8-20 characters

    • Allowed special characters: ! @ # $ ^ *

    • At least 1 small letter, capital letter, number and special character should be present

    • Cannot include: Three same consecutive characters

Steps
  1. Trigger the task using the valid input specification.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/credentials' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "operationType" : "UPDATE",
  "elements" : [ {
    "resourceName" : "sfo01-mo1-esx02.rainpole.io",
    "resourceType" : "ESXI",
    "credentials" : [ {
      "credentialType" : "SSH",
      "username" : "root",
      "password" : "VMwareInfra@1"
    } ]
  } ]
}'

HTTP Request

PATCH /v1/credentials HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 265
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "operationType" : "UPDATE",
  "elements" : [ {
    "resourceName" : "sfo01-mo1-esx02.rainpole.io",
    "resourceType" : "ESXI",
    "credentials" : [ {
      "credentialType" : "SSH",
      "username" : "root",
      "password" : "VMwareInfra@1"
    } ]
  } ]
}

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/tasks/19bdd9f9-772a-464c-909c-8032a6652fec
Content-Type: application/json
Content-Length: 100

{
  "id" : "19bdd9f9-772a-464c-909c-8032a6652fec",
  "name" : "UPDATE",
  "status" : "IN_PROGRESS"
}
  1. Poll the status of the task using the task API with the ID from the response of the previous API.

  1. Poll the task until "status" is not "IN_PROGRESS" with the ID from the previous response.

Tip
Refer to: Get a Task.
  • If the "status" is "SUCCESSFUL", the task is completed successfully.

  • If the "status" is "FAILED", the task can be re-executed.

Warning
The password once updated cannot be rolled back.
Note
The password is updated in the order of the input.
Note
The passwords of the dependent resources of the requested resources will also get updated.

2.28.4. Rotate the Passwords

This API is used to rotate passwords for list of resources using system generated passwords.

Prerequisites
  1. The following data is required

    • Name or ID of the resource

    • Type of the resource

    • Credential type of the resource

    • Username of the resource

Tip
Refer to: Get the Credentials to get the credential type, username, name, ID and type of the resource.
Steps
  1. Trigger the task using the valid input specification.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/credentials' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "operationType" : "ROTATE",
  "elements" : [ {
    "resourceName" : "sfo01-mo1-esx02.rainpole.io",
    "resourceType" : "ESXI",
    "credentials" : [ {
      "credentialType" : "SSH",
      "username" : "root"
    } ]
  } ]
}'

HTTP Request

PATCH /v1/credentials HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 229
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "operationType" : "ROTATE",
  "elements" : [ {
    "resourceName" : "sfo01-mo1-esx02.rainpole.io",
    "resourceType" : "ESXI",
    "credentials" : [ {
      "credentialType" : "SSH",
      "username" : "root"
    } ]
  } ]
}

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/tasks/a742a5a4-cd16-4e2b-a923-dd6383dcc974
Content-Type: application/json
Content-Length: 100

{
  "id" : "a742a5a4-cd16-4e2b-a923-dd6383dcc974",
  "name" : "ROTATE",
  "status" : "IN_PROGRESS"
}
  1. Poll the status of the task using the task API with the ID from the response of the previous API.

  1. Poll the task until "status" is not "IN_PROGRESS" with the ID from the previous response.

Tip
Refer to: Get a Task.
  • If the "status" is "SUCCESSFUL", the task is completed successfully.

  • If the "status" is "FAILED", the task can be re-executed.

Warning
The password once rotated cannot be rolled back.
Note
The password is rotated in the order of the input.
Note
The generated password adheres to the password compliance. Refer to: Password Compliance Guide.
Note
The passwords of the dependent resources of the requested resources will also get rotated.

2.28.5. Retry the Update Passwords Task

This API is used to retry a failed update passwords task.

Prerequisites
  1. The following data is required

    • ID of the last triggered failed update passwords task

    • Name or ID of the resource

    • Type of the resource

    • Credential type of the resource

    • Username of the resource

Tip
Refer to: Get the Credentials to get the credential type, username, name, ID and type of the resource and ID of the failed task.
  1. New password must be in compliance with the password policies.

Tip
Refer to: Password Compliance Guide.
Steps
  1. Trigger the task using the valid input specification.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/credentials/tasks/08520678-0fae-474c-8d29-3379a88ee1e3' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "operationType" : "UPDATE",
  "elements" : [ {
    "resourceName" : "sfo01-mo1-esx02.rainpole.io",
    "resourceType" : "ESXI",
    "credentials" : [ {
      "credentialType" : "SSH",
      "username" : "root",
      "password" : "VMwareInfra@1"
    } ]
  } ]
}'

HTTP Request

PATCH /v1/credentials/tasks/08520678-0fae-474c-8d29-3379a88ee1e3 HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 265
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "operationType" : "UPDATE",
  "elements" : [ {
    "resourceName" : "sfo01-mo1-esx02.rainpole.io",
    "resourceType" : "ESXI",
    "credentials" : [ {
      "credentialType" : "SSH",
      "username" : "root",
      "password" : "VMwareInfra@1"
    } ]
  } ]
}

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/tasks/08520678-0fae-474c-8d29-3379a88ee1e3
Content-Type: application/json
Content-Length: 100

{
  "id" : "08520678-0fae-474c-8d29-3379a88ee1e3",
  "name" : "UPDATE",
  "status" : "IN_PROGRESS"
}
  1. Poll the task until "status" is not "IN_PROGRESS" with the ID from the previous response.

  • If the "status" is "SUCCESSFUL", the task is completed successfully.

  • If the "status" is "FAILED", the task can be re-executed by providing previous credentials rotate specification or by amending the credentials rotate specification for FAILED resources.

  • The failed task can be cancelled.

Warning
The password once updated cannot be rolled back.
Note
The password is updated in the order of the input.
Note
Retry should be performed if updating passwords task has failed.
Note
Retry should be performed on the same list of resources as in the failed operation specification.
Tip
Refer to: Get the Resource Credentials for Credentials Task for the list of resources in the failed task.
Note
The passwords of the dependent resources of the requested resources will also get updated.

2.28.6. Retry the Rotate Passwords Task

This API is used to retry a failed rotate passwords task.

Prerequisites
  1. The following data is required

    • ID of the last triggered failed rotate passwords task

    • Name or ID of the resource

    • Type of the resource

    • Credential type of the resource

    • Username of the resource

Tip
Refer to: Get the Credentials to get the credential type, username, name, ID and type of the resource and ID of the failed task.
Steps
  1. Trigger the task using the valid input specification.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/credentials/tasks/a4ef569c-251e-4727-b6c5-b7f548c6f966' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "operationType" : "ROTATE",
  "elements" : [ {
    "resourceName" : "sfo01-mo1-esx02.rainpole.io",
    "resourceType" : "ESXI",
    "credentials" : [ {
      "credentialType" : "SSH",
      "username" : "root"
    } ]
  } ]
}'

HTTP Request

PATCH /v1/credentials/tasks/a4ef569c-251e-4727-b6c5-b7f548c6f966 HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 229
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "operationType" : "ROTATE",
  "elements" : [ {
    "resourceName" : "sfo01-mo1-esx02.rainpole.io",
    "resourceType" : "ESXI",
    "credentials" : [ {
      "credentialType" : "SSH",
      "username" : "root"
    } ]
  } ]
}

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/tasks/a4ef569c-251e-4727-b6c5-b7f548c6f966
Content-Type: application/json
Content-Length: 100

{
  "id" : "a4ef569c-251e-4727-b6c5-b7f548c6f966",
  "name" : "ROTATE",
  "status" : "IN_PROGRESS"
}
  1. Poll the task until "status" is not "IN_PROGRESS" with the ID from the previous response.

  • If the "status" is "SUCCESSFUL", the task is completed successfully.

  • If the "status" is "FAILED", the task can be re-executed by providing previous credentials rotate specification or by amending the credentials rotate specification for FAILED resources.

  • The failed task can be cancelled.

Warning
The password once rotated cannot be rolled back.
Note
The password is rotated in the order of the input.
Note
The generated password adheres to the password compliance. Refer to: Password Compliance Guide.
Note
Retry should be performed if some password rotation task has failed.
Note
Retry should be performed on the same list of resources as in the failed operation specification.
Tip
Refer to: Get the Resource Credentials for Credentials Task for the list of resources in the failed task.
Note
The passwords of the dependent resources of the requested resources will also get rotated.

2.28.7. Cancel the Update/Rotate Passwords Task

  • This API is used to cancel a failed update or rotate passwords task.

Prerequisites
  1. The following data is required

    • ID of the last triggered failed update/rotate passwords task

Tip
Refer to: Get the Credentials Tasks section to get the ID of the failed task.
Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/credentials/tasks/133ee2ec-e291-49d3-8f5c-2a2ac1ef412c' -i -X DELETE \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

DELETE /v1/credentials/tasks/133ee2ec-e291-49d3-8f5c-2a2ac1ef412c HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 74

{
  "id" : "133ee2ec-e291-49d3-8f5c-2a2ac1ef412c",
  "status" : "FAILED"
}
Warning
The password once updated or rotated cannot be rolled back.
Note
The password is updated or rotated in the order of the input.
Note
Cancel should be performed to release the internal global lock held at VCF instance level if some password updation or rotation task has failed after several retries.

2.28.8. Get the Credentials Tasks

This API is used to fetch all credentials tasks in reverse chronological order.

Note
"oldPassword" and "newPassword" fields won’t be listed and will come as empty string.
Refer Get a Credentials Subtask for fetching passwords details.
Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/credentials/tasks' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/credentials/tasks HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1597

{
  "elements" : [ {
    "id" : "186d891f-aac3-4501-ae52-afb89eb7e32f",
    "name" : "Credentials rotate operation",
    "type" : "ROTATE",
    "creationTimestamp" : "2018-11-05T05:15:32.864Z",
    "status" : "SUCCESSFUL",
    "subTasks" : [ {
      "id" : "acb6fa7b-a81b-41d8-bb53-0c1611609dd7",
      "resourceName" : "vra01svr01a.rainpole.io",
      "name" : "Password rotate for resource : vra01svr01a.rainpole.io, user : root and credential type : SSH",
      "creationTimestamp" : "2018-11-05T05:15:32.864Z",
      "status" : "SUCCESSFUL",
      "oldPassword" : "",
      "newPassword" : "",
      "entityType" : "VRA",
      "username" : "root",
      "credentialType" : "SSH"
    }, {
      "id" : "900e8ce0-4ff4-4a76-a7e0-8e44748aa46e",
      "resourceName" : "vra01svr01b.rainpole.io",
      "name" : "Password rotate for resource : vra01svr01b.rainpole.io, user : root and credential type : SSH",
      "creationTimestamp" : "2018-11-05T05:15:32.864Z",
      "status" : "SUCCESSFUL",
      "oldPassword" : "",
      "newPassword" : "",
      "entityType" : "VRA",
      "username" : "root",
      "credentialType" : "SSH"
    }, {
      "id" : "1b3b962d-fff7-4dcc-98ed-0a15b495afa5",
      "resourceName" : "vra01svr01c.rainpole.io",
      "name" : "Password rotate for resource : vra01svr01c.rainpole.io, user : root and credential type : SSH",
      "creationTimestamp" : "2018-11-05T05:15:32.864Z",
      "status" : "SUCCESSFUL",
      "oldPassword" : "",
      "newPassword" : "",
      "entityType" : "VRA",
      "username" : "root",
      "credentialType" : "SSH"
    } ]
  } ]
}

2.28.9. Get a Credentials Task

This API is used to fetch a credentials task for an ID.

Note
"oldPassword" and "newPassword" fields won’t be listed and will come as empty string.
Refer Get a Credentials Subtask for fetching passwords details.
Prerequisites
  1. The following data is required

    • ID of the credentials task

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/credentials/tasks/186d891f-aac3-4501-ae52-afb89eb7e32f' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/credentials/tasks/186d891f-aac3-4501-ae52-afb89eb7e32f HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1494

{
  "id" : "186d891f-aac3-4501-ae52-afb89eb7e32f",
  "name" : "Credentials rotate operation",
  "type" : "ROTATE",
  "creationTimestamp" : "2018-11-05T05:15:32.864Z",
  "status" : "SUCCESSFUL",
  "subTasks" : [ {
    "id" : "acb6fa7b-a81b-41d8-bb53-0c1611609dd7",
    "resourceName" : "vra01svr01a.rainpole.io",
    "name" : "Password rotate for resource : vra01svr01a.rainpole.io, user : root and credential type : SSH",
    "creationTimestamp" : "2018-11-05T05:15:32.864Z",
    "status" : "SUCCESSFUL",
    "oldPassword" : "",
    "newPassword" : "",
    "entityType" : "VRA",
    "username" : "root",
    "credentialType" : "SSH"
  }, {
    "id" : "900e8ce0-4ff4-4a76-a7e0-8e44748aa46e",
    "resourceName" : "vra01svr01b.rainpole.io",
    "name" : "Password rotate for resource : vra01svr01b.rainpole.io, user : root and credential type : SSH",
    "creationTimestamp" : "2018-11-05T05:15:32.864Z",
    "status" : "SUCCESSFUL",
    "oldPassword" : "",
    "newPassword" : "",
    "entityType" : "VRA",
    "username" : "root",
    "credentialType" : "SSH"
  }, {
    "id" : "1b3b962d-fff7-4dcc-98ed-0a15b495afa5",
    "resourceName" : "vra01svr01c.rainpole.io",
    "name" : "Password rotate for resource : vra01svr01c.rainpole.io, user : root and credential type : SSH",
    "creationTimestamp" : "2018-11-05T05:15:32.864Z",
    "status" : "SUCCESSFUL",
    "oldPassword" : "",
    "newPassword" : "",
    "entityType" : "VRA",
    "username" : "root",
    "credentialType" : "SSH"
  } ]
}

2.28.10. Get the Resource Credentials for Credentials Task

This API is used to fetch resource credentials for a credentials task ID.

Prerequisites
  1. The following data is required

    • ID of the credentials task

Tip
Refer to: Get the Credentials Tasks to get the ID of credentials tasks.
Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/credentials/tasks/186d891f-aac3-4501-ae52-afb89eb7e32f/resource-credentials' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/credentials/tasks/186d891f-aac3-4501-ae52-afb89eb7e32f/resource-credentials HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 578

[ {
  "resourceName" : "vra01svr01a.rainpole.io",
  "resourceType" : "VRA",
  "credentials" : [ {
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "EvoSDDC2020!"
  } ]
}, {
  "resourceName" : "vra01svr01b.rainpole.io",
  "resourceType" : "VRA",
  "credentials" : [ {
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "EvoSDDC2018!"
  } ]
}, {
  "resourceName" : "vra01svr01c.rainpole.io",
  "resourceType" : "VRA",
  "credentials" : [ {
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "EvoSDDC2017!"
  } ]
} ]

2.28.11. Get a Credentials Subtask

This API is used to fetch details of a subtask corresponding to a credentials task ID and subtask ID.

Prerequisites
  1. The following data is required

    • ID of the credentials task

    • ID of the credentials subtask

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/credentials/tasks/186d891f-aac3-4501-ae52-afb89eb7e32f/subtasks/acb6fa7b-a81b-41d8-bb53-0c1611609dd7' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/credentials/tasks/186d891f-aac3-4501-ae52-afb89eb7e32f/subtasks/acb6fa7b-a81b-41d8-bb53-0c1611609dd7 HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 664

{
  "id" : "186d891f-aac3-4501-ae52-afb89eb7e32f",
  "name" : "Credentials rotate operation",
  "type" : "ROTATE",
  "creationTimestamp" : "2018-11-05T05:15:32.864Z",
  "status" : "SUCCESSFUL",
  "subTasks" : [ {
    "id" : "acb6fa7b-a81b-41d8-bb53-0c1611609dd7",
    "resourceName" : "vra01svr01a.rainpole.io",
    "name" : "Password rotate for resource : vra01svr01a.rainpole.io, user : root and credential type : SSH",
    "creationTimestamp" : "2018-11-05T05:15:32.864Z",
    "status" : "SUCCESSFUL",
    "oldPassword" : "EvoSDDC2019!",
    "newPassword" : "EvoSDDC2020!",
    "entityType" : "VRA",
    "username" : "root",
    "credentialType" : "SSH"
  } ]
}

2.28.12. Remediate expired Passwords

If the password is expired, then the customer requires to manually reset the account in the product and then reach out to GSS to sync credentials store of VCF with new password for the product.

Hence this new API will accept the new password from the client, validates by testing the connectivity and then performs credentials store update. This API is generalized so that the same API can be used for both service accounts and user accounts.

For service accounts, Password will be auto rotated post rememdiaton with correct password.

Please note: Credentials store sync is irreversible operation, ie when credentials store sync is successful and password rotation failed due to other issues, then we wont be reverting credentials store with older non working password.

Prerequisites
  1. The following data is required

    • Name or ID of the resource

    • Type of the resource

    • Username of the resource

    • Working password of the resource

Tip
Refer to: Get the Credentials to get the credential type, username, name, ID and type of the resource.
Steps
  1. Trigger the task using the valid input specification.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/credentials' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "operationType" : "REMEDIATE",
  "elements" : [ {
    "resourceName" : "sfo01m01esx02.sfo01.rainpole.local",
    "resourceType" : "ESXI",
    "credentials" : [ {
      "username" : "root",
      "password" : "VMwareInfra@1"
    } ]
  } ]
}'

HTTP Request

PATCH /v1/credentials HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 243
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "operationType" : "REMEDIATE",
  "elements" : [ {
    "resourceName" : "sfo01m01esx02.sfo01.rainpole.local",
    "resourceType" : "ESXI",
    "credentials" : [ {
      "username" : "root",
      "password" : "VMwareInfra@1"
    } ]
  } ]
}

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/tasks/594470ec-5abe-4987-843f-b95dfd9b635c
Content-Type: application/json
Content-Length: 103

{
  "id" : "594470ec-5abe-4987-843f-b95dfd9b635c",
  "name" : "REMEDIATE",
  "status" : "IN_PROGRESS"
}
  1. Poll the status of the task using the task API with the ID from the response of the previous API.

  1. Poll the task until "status" is not "IN_PROGRESS" with the ID from the previous response.

Tip
Refer to: Get a Task.
  • If the "status" is "SUCCESSFUL", the task is completed successfully.

  • If the "status" is "FAILED", the task can be re-executed.

Warning
The password once rotated cannot be rolled back.
Note
Currently we support only one credential at a time for remediation.
Note
The password is rotated in the order of the input.
Note
The generated password adheres to the password compliance. Refer to: Password Compliance Guide.
Note
The passwords of the dependent resources of the requested resources will also get rotated.

2.28.13. Configure auto-rotate schedule for Credentials

This API is used to configure schedule for auto-rotate of the passwords for the list of selected credentials.

Prerequisites
  1. The following data is required

    • Name or ID of the resource

    • Type of the resource

    • Credential type of the resource

    • Username of the resource

    • enableAutoRotatePolicy refers to property for enable/disable the auto-rotate schedule

    • frequencyInDays refers to frequency in number of days for auto-rotate schedule

Tip
Refer to: Get the Credentials to get the credential type, username, name, ID and type of the resource.
Steps
  1. Trigger the task using the valid input specification.
    set enableAutoRotatePolicy to True
    set frequencyInDays to number of days auto-rotate schedule should execute.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/credentials' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "operationType" : "UPDATE_AUTO_ROTATE_POLICY",
  "elements" : [ {
    "resourceName" : "sfo01-m01-vc01.rainpole.io",
    "resourceType" : "VCENTER",
    "credentials" : [ {
      "credentialType" : "SSH",
      "username" : "root"
    } ]
  } ],
  "autoRotatePolicy" : {
    "frequencyInDays" : 30,
    "enableAutoRotatePolicy" : true
  }
}'

HTTP Request

PATCH /v1/credentials HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 344
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "operationType" : "UPDATE_AUTO_ROTATE_POLICY",
  "elements" : [ {
    "resourceName" : "sfo01-m01-vc01.rainpole.io",
    "resourceType" : "VCENTER",
    "credentials" : [ {
      "credentialType" : "SSH",
      "username" : "root"
    } ]
  } ],
  "autoRotatePolicy" : {
    "frequencyInDays" : 30,
    "enableAutoRotatePolicy" : true
  }
}

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/tasks/5275518f-9579-4656-86e7-ac7ef0618618
Content-Type: application/json
Content-Length: 119

{
  "id" : "5275518f-9579-4656-86e7-ac7ef0618618",
  "name" : "UPDATE_AUTO_ROTATE_POLICY",
  "status" : "IN_PROGRESS"
}
  1. Poll the status of the task using the task API with the ID from the response of the previous API.

  1. Poll the task until "status" is not "IN_PROGRESS" with the ID from the previous response.

Tip
Refer to: Get a Task.
  • If the "status" is "SUCCESSFUL", the task is completed successfully.

  • If the "status" is "FAILED", the task can be re-executed.

2.28.14. Disable auto-rotate schedule for credentials

This API is used to disable configured schedule for auto-rotate of passwords for the list of selected credentials.

Prerequisites
  1. The following data is required

    • Name or ID of the resource

    • Type of the resource

    • Credential type of the resource

    • Username of the resource

    • enableAutoRotatePolicy refers to property for enable/disable the auto-rotate schedule

Tip
Refer to: Get the Credentials to get the credential type, username, name, ID and type of the resource.
Steps
  1. Trigger the task using the valid input specification.
    set enableAutoRotatePolicy to True

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/credentials' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "operationType" : "UPDATE_AUTO_ROTATE_POLICY",
  "elements" : [ {
    "resourceName" : "sfo01-m01-vc01.rainpole.io",
    "resourceType" : "VCENTER",
    "credentials" : [ {
      "credentialType" : "SSH",
      "username" : "root"
    } ]
  } ],
  "autoRotatePolicy" : {
    "enableAutoRotatePolicy" : false
  }
}'

HTTP Request

PATCH /v1/credentials HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 317
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "operationType" : "UPDATE_AUTO_ROTATE_POLICY",
  "elements" : [ {
    "resourceName" : "sfo01-m01-vc01.rainpole.io",
    "resourceType" : "VCENTER",
    "credentials" : [ {
      "credentialType" : "SSH",
      "username" : "root"
    } ]
  } ],
  "autoRotatePolicy" : {
    "enableAutoRotatePolicy" : false
  }
}

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/tasks/e976f853-524f-429c-b396-081be479d5e7
Content-Type: application/json
Content-Length: 119

{
  "id" : "e976f853-524f-429c-b396-081be479d5e7",
  "name" : "UPDATE_AUTO_ROTATE_POLICY",
  "status" : "IN_PROGRESS"
}
  1. Poll the status of the task using the task API with the ID from the response of the previous API.

  1. Poll the task until "status" is not "IN_PROGRESS" with the ID from the previous response.

Tip
Refer to: Get a Task.
  • If the "status" is "SUCCESSFUL", the task is completed successfully.

  • If the "status" is "FAILED", the task can be re-executed.

2.29. Certificates

2.29.1. Install Certificates By Online Mode

The following steps have to be followed to install certificates signed by VCF supporting certificate authorities (Microsoft CA and OpenSSL CA).

Prerequisites
  1. VCF environment.

Steps
  1. Check if certificate authority is configured or not by invoking the API. If certificate authority is configured, proceed directly to step-3.

Note
Operations are performed on domain named MGMT.
Note
The following returns the list of all configured cerificate authorities.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/certificate-authorities' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/certificate-authorities HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 386

{
  "elements" : [ {
    "id" : "OpenSSL",
    "commonName" : "test.openssl.eng.vmware.com",
    "country" : "IN",
    "state" : "Karnataka",
    "locality" : "Bengaluru",
    "organization" : "VMware",
    "organizationUnit" : "ISBU"
  }, {
    "id" : "Microsoft",
    "username" : "Admin",
    "serverUrl" : "https://AD-vcf.eng.vmware.com/certsrv",
    "templateName" : "Vcms"
  } ]
}
  1. Configure certificate authority if it is not configured by invoking the API

Configure "Microsoft" certificate authority

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/certificate-authorities' -i -X PUT \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "microsoftCertificateAuthoritySpec" : {
    "username" : "Admin",
    "secret" : "VMwareInfra@1",
    "serverUrl" : "https://AD-vcf.eng.vmware.com/certsrv",
    "templateName" : "Vcms"
  }
}'

HTTP Request

PUT /v1/certificate-authorities HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 194
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "microsoftCertificateAuthoritySpec" : {
    "username" : "Admin",
    "secret" : "VMwareInfra@1",
    "serverUrl" : "https://AD-vcf.eng.vmware.com/certsrv",
    "templateName" : "Vcms"
  }
}

HTTP Response

HTTP/1.1 200 OK

Configure "OpenSSL" certificate authority

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/certificate-authorities' -i -X PUT \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "openSSLCertificateAuthoritySpec" : {
    "commonName" : "test.openssl.eng.vmware.com",
    "country" : "IN",
    "state" : "Karnataka",
    "locality" : "Bengaluru",
    "organization" : "VMware",
    "organizationUnit" : "ISBU"
  }
}'

HTTP Request

PUT /v1/certificate-authorities HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 239
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "openSSLCertificateAuthoritySpec" : {
    "commonName" : "test.openssl.eng.vmware.com",
    "country" : "IN",
    "state" : "Karnataka",
    "locality" : "Bengaluru",
    "organization" : "VMware",
    "organizationUnit" : "ISBU"
  }
}

HTTP Response

HTTP/1.1 200 OK
  1. Reconfigure the certificate authority if required by invoking the API

Reconfigure "Microsoft" certificate authority

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/certificate-authorities' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "microsoftCertificateAuthoritySpec" : {
    "templateName" : "Vcms1"
  }
}'

HTTP Request

PATCH /v1/certificate-authorities HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 78
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "microsoftCertificateAuthoritySpec" : {
    "templateName" : "Vcms1"
  }
}

HTTP Response

HTTP/1.1 200 OK

Reconfigure "OpenSSL" certificate authority

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/certificate-authorities' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "openSSLCertificateAuthoritySpec" : {
    "commonName" : "test1.openssl.eng.vmware.com"
  }
}'

HTTP Request

PATCH /v1/certificate-authorities HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 97
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "openSSLCertificateAuthoritySpec" : {
    "commonName" : "test1.openssl.eng.vmware.com"
  }
}

HTTP Response

HTTP/1.1 200 OK
  1. Verify that the certificate authority is successfully configured by invoking the API with type of CA as the ID

Verify configuration for "Microsoft" certificate authority

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/certificate-authorities/Microsoft' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/certificate-authorities/Microsoft HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 132

{
  "id" : "Microsoft",
  "username" : "Admin",
  "serverUrl" : "https://AD-vcf.eng.vmware.com/certsrv",
  "templateName" : "Vcms"
}

Verify configuration for "OpenSSL" certificate authority

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/certificate-authorities/OpenSSL' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/certificate-authorities/OpenSSL HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 203

{
  "id" : "OpenSSL",
  "commonName" : "test.openssl.eng.vmware.com",
  "country" : "IN",
  "state" : "Karnataka",
  "locality" : "Bengaluru",
  "organization" : "VMware",
  "organizationUnit" : "ISBU"
}
  1. After the successful certificate authority configuration, generate CSR by invoking the API

Tip
If "resources" field is not given then operations are performed on all the resources in the domain.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/domains/MGMT/csrs' -i -X PUT \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "csrGenerationSpec" : {
    "country" : "IN",
    "state" : "Karnataka",
    "locality" : "Bengaluru",
    "organization" : "VMware",
    "organizationUnit" : "ISBU",
    "email" : "[email protected]",
    "keySize" : "2048",
    "keyAlgorithm" : "RSA"
  },
  "resources" : [ {
    "fqdn" : "sfo-m01-nsx01.rainpole.io",
    "type" : "NSX_MANAGER",
    "sans" : [ "sfo-m01-nsx01.rainpole.io", "10.0.0.6" ]
  } ]
}'

HTTP Request

PUT /v1/domains/MGMT/csrs HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 415
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "csrGenerationSpec" : {
    "country" : "IN",
    "state" : "Karnataka",
    "locality" : "Bengaluru",
    "organization" : "VMware",
    "organizationUnit" : "ISBU",
    "email" : "[email protected]",
    "keySize" : "2048",
    "keyAlgorithm" : "RSA"
  },
  "resources" : [ {
    "fqdn" : "sfo-m01-nsx01.rainpole.io",
    "type" : "NSX_MANAGER",
    "sans" : [ "sfo-m01-nsx01.rainpole.io", "10.0.0.6" ]
  } ]
}

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/tasks/b1b0531b-4a7f-41a7-8f18-78df8f9097b3
Content-Type: application/json
Content-Length: 79

{
  "id" : "b1b0531b-4a7f-41a7-8f18-78df8f9097b3",
  "status" : "IN_PROGRESS"
}
Tip
Refer to: Generate CSR(s)
  • Poll the status of the task using the task API with the ID from the response of the previous API.

Tip
Refer to: Get a Task
  • Poll the task until "status" is not "IN_PROGRESS" with the ID from the previous response.

Tip
Refer to: Get a Task.
  • If the "status" is "SUCCESSFUL", the task is completed successfully.

  • If the "status" is "FAILED", execute the generate CSR request again.

  1. If the generation of CSR is successful, fetch the contents of the CSR to check for which resources CSR is generated by invoking the API

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/domains/MGMT/csrs' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/domains/MGMT/csrs HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1154

{
  "elements" : [ {
    "csrEncodedContent" : "-----BEGIN CERTIFICATE REQUEST-----\nMIICtDCCAZwCAQAwbzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMQswCQYDVQQH\nEwJQQTEMMAoGA1UECxMDVkNGMQ8wDQYDVQQKEwZWTXdhcmUxJzAlBgNVBAMTHm5z\neE1hbmFnZXIudnJhY2sudnNwaGVyZS5sb2NhbDCCASIwDQYJKoZIhvcNAQEBBQAD\nggEPADCCAQoCggEBAKtumknTB1do77E5rCXGRgqT6iqTgW0moiDZS6USGkeTQMvj\nR5JnQjq11xJl0y1meSdA6ufft8xndOr1b8alRs4+FreuJLl/8HBIVLRECrfkfIn0\nImwZzGFih2wwrCD/evb/7paNcdt97+KF2nwqB5ADysyFkjYs0uiJxxE5i8HsST1L\n+AStKeAV0lOk/2n/qgHPUcnjH7KchJAet9DFuKBWUW7QIryQffuiQrdAFqcEPHJC\nubHyqnoBPktosD3SXs1UickNiTyXIRC1NGHK/w7VTTJfBxkXxIdejazVGjCAW8w0\n/N4iW3rCaxSpnggWLGYFbGEkhikgtkpj8zIRjk8CAwEAAaAAMA0GCSqGSIb3DQEB\nCwUAA4IBAQBkxJTuymqggHLhWbtnvtA3mU4freKzF2XDUUP+K5kz43j2IXNbsCJI\nWDpY9OCVj9NHZ+uFTvQLvCb3E+6h0vE4Dw2PVUuOpz/Ag1qmgYIxtC5vzN4gLKih\nUNROG5wYryYKO8YL4MB3XIQdx9b8y8Fxyh3ZHIvdghhUPBooWzeCUXVPD8Le4p52\nD8yMGREtSQL4avLughd+SFd0fvKQq+/K42WOFn7PYVfgLBqdW1YCjEIfAdsG+bhG\n3CIBan84uV3cKFSM4NtxCvHZnuRZmx6+0Frtt1w9sndjKvHrA6ozoHO9O1gl/E9D\nY1rzOB7KFzGiZHAMT2Cf/x/xGo8rTGFZ\n-----END CERTIFICATE REQUEST-----",
    "resource" : {
      "fqdn" : "sfo-m01-nsx01.rainpole.io"
    }
  } ]
}
  1. After successful CSR generation, generate the certificates signed by supported certificates authorities (either OpenSSL or Microsoft) by invoking the API

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/domains/MGMT/certificates' -i -X PUT \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "caType" : "Microsoft",
  "resources" : [ {
    "fqdn" : "sfo-m01-nsx01.rainpole.io",
    "type" : "NSX_MANAGER"
  } ]
}'

HTTP Request

PUT /v1/domains/MGMT/certificates HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 124
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "caType" : "Microsoft",
  "resources" : [ {
    "fqdn" : "sfo-m01-nsx01.rainpole.io",
    "type" : "NSX_MANAGER"
  } ]
}

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/tasks/b6c471ec-32a6-430e-86c7-733b8fd09cdd
Content-Type: application/json
Content-Length: 79

{
  "id" : "b6c471ec-32a6-430e-86c7-733b8fd09cdd",
  "status" : "IN_PROGRESS"
}
  • Poll the status of the task using the task API with the ID from the response of the previous API.

Tip
Refer to: Get a Task
  • Poll the task until "status" is not "IN_PROGRESS" with the ID from the previous response.

Tip
Refer to: Get a Task.
  • If the "status" is "SUCCESSFUL", the task is completed successfully.

  • If the "status" is "FAILED", execute the generate certificate request again.

  1. If the generation of certificates is successful, fetch the contents of the generated certificates to check for which resources certificates are generated by invoking the API

Note
The following will display the list of generated as well as already installed certificates.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/domains/MGMT/certificates' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/domains/MGMT/certificates HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 8488

{
  "elements" : [ {
    "isInstalled" : true,
    "version" : "V3",
    "serialNumber" : "ca:0b:5d:6d:07:4e:db:41",
    "issuedTo" : "sfo-m01-vc01.rainpole.io",
    "issuedBy" : "OU=VMware Engineering, O=sfo-m01-psc01.rainpole.io, ST=California, C=US, DC=local, DC=vsphere, CN=CA",
    "notBefore" : "2019-07-11T10:16:05.000Z",
    "notAfter" : "2029-07-06T08:17:24.000Z",
    "signatureAlgorithm" : "SHA256withRSA",
    "subject" : "C=US, CN=sfo-m01-vc01.rainpole.io",
    "subjectAlternativeName" : [ "sfo-m01-vc01.rainpole.io" ],
    "publicKey" : "BA:16:16:DF:00:B2:88:C9:F9:E0:7F:72:B6:DC:83:1F:87:46:C3:C4:4B:8B:EB:C0:AD:B9:A2:FB:31:75:0A:89:12:25:58:B6:42:B1:78:A3:7F:19:B0:03:19:35:AD:51:5D:08:36:CB:C3:6E:63:B2:CE:89:2D:24:AD:EA:DD:BD:73:0A:06:84:4E:4D:83:AF:B8:EC:F9:E1:98:9F:35:9F:83:11:DD:71:61:5E:CF:DE:9A:BF:0D:A7:8A:64:F2:94:26:5D:A7:E0:20:B9:C2:01:BB:62:F2:7D:C3:A9:9B:91:DE:49:1E:97:B7:E8:CA:38:1C:E9:92:76:07:A8:26:95:5D:C1:89:E7:EA:27:03:57:BE:D2:76:B5:E4:AC:89:10:67:7F:42:DA:5D:52:5C:9F:65:59:A4:42:0B:81:F8:77:B5:F8:2D:18:DA:9B:1A:F4:BD:BD:F2:33:97:7A:EA:64:1B:CE:58:CF:9C:E7:18:60:94:CE:66:C9:57:7E:62:A2:AD:47:3D:29:D2:F8:DB:AB:D7:8F:D1:7D:8A:9A:FC:68:37:48:3C:AD:38:A5:76:D8:4C:E2:64:AE:87:B7:DA:78:3E:EB:2B:C8:70:43:4D:CB:4E:72:80:43:CB:D2:43:A7:71:16:22:27:0F:A1:DB:0A:83:88:2C:09:49:0A:35:8C:76:76:55:E2:3A:1C:7C:74:F0:91:60:A2:45:7F:6C:7A:2B:A5:51:87:25:D0:DB:9C:E0:B8:32:27:83:D6:3F:70:C5:7A:1B:92:09:E7:77:39:3A:C2:28:B1:5C:8A:3F:42:FE:D6:6A:7D:F6:E5:D6:FB:B0:DB:AB:D9:65:29:BE:75:DA:07:E8:38:B2:A0:75:9F:45:8E:FF:6B:AF:27:DB:FA:2E:AB:80:51:09:88:7D:7B:AC:A4:B7:15:41:30:A0:E1:0F:C7:DD:D1:F4:84:7D:D3:F8:B1:B0:F9:55:8F:A6:DC:44:E0:E6:0F:C5:DF:32:93:51:8D:7D:BA:79:4A:3E:72:CA:CB:9A:2E:8B:E6:A0:63:57:C8:CD:92:F8:70:0A:1E:6D:CA:DF:35:D4:91:45:E7:DB:7F:86:32:E9:8C:A3:D2:D0:35:15:70:A9:DA:39:DF:FA:76:9C:EF:5D:B6:A4:58:49:EE:A0:B1:74:33:D2:41:97:F6:FE:0C:07:66:DE:56:5F:3E:15:03:70:3D:56:80:5E:F6:CB:C3:FA:78:CE:14:0C:D7:E1:53:48:8B:5A:61:C0:04:BA:DD:ED:B3:E4:F1:76:AD:FD:03:27:C9:FB:EC:5A:75:0B:22:8F:6A:E8:35:47:FB:04:B7:A7:5F:51:FA:46:EF:00:64:03:27:1C:FB",
    "publicKeyAlgorithm" : "RSA",
    "keySize" : "2048",
    "thumbprintAlgorithm" : "SHA-256",
    "thumbprint" : "35:4B:A5:11:A9:3D:39:0D:B7:95:9B:4D:07:5C:73:40:D0:DF:63:D4:68:97:6E:1B:20:70:87:AE:40:3F:7E:AD",
    "numberOfDaysToExpire" : 3644,
    "expirationStatus" : "ACTIVE",
    "pemEncoded" : "-----BEGIN CERTIFICATE-----MIIFRDCCBCygAwIBAgIJAOx9cA2cGcUUMA0GCSqGSIb3DQEBCwUAMIGgMQswCQYDVQQDDAJDQTEXMBUGCgmSJomT8ixkARkWB3ZzcGhlcmUxFTATBgoJkiaJk/IsZAEZFgVsb2NhbDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExIjAgBgNVBAoMGXBzYy0xLnZyYWNrLnZzcGhlcmUubG9jYWwxGzAZBgNVBAsMElZNd2FyZSBFbmdpbmVlcmluZzAeFw0xODA3MDIxNDE1NTJaFw0yODA2MjcxMjIyMzlaMIGwMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTESMBAGA1UEBxMJUGFsbyBBbHRvMQ8wDQYDVQQKEwZWTXdhcmUxGzAZBgNVBAsTElZNd2FyZSBFbmdpbmVlcmluZzEqMCgGA1UEAxMhbG9hZC1iYWxhbmNlci52cmFjay52c3BoZXJlLmxvY2FsMR4wHAYJKoZIhvcNAQkBFg92bWNhQHZtd2FyZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC6FhbfALKIyfngf3K23IMfh0bDxEuL68CtuaL7MXUKiRIlWLZCsXijfxmwAxk1rVFdCDbLw25jss6JLSSt6t29cwoGhE5Ng6+47PnhmJ81n4MR3XFhXs/emr8Np4pk8pQmXafgILnCAbti8n3DqZuR3kkel7foyjgc6ZJ2B6gmlV3BiefqJwNXvtJ2teSsiRBnf0LaXVJcn2VZpEILgfh3tfgtGNqbGvS9vfIzl3rqZBvOWM+c5xhglM5myVd+YqKtRz0p0vjbq9eP0X2KmvxoN0g8rTildthM4mSuh7faeD7rK8hwQ03LTnKAQ8vSQ6dxFiInD6HbCoOILAlJCjWMdnZV4jocfHTwkWCiRX9seiulUYcl0Nuc4LgyJ4PWP3DFehuSCed3OTrCKLFcij9C/tZqffbl1vuw26vZZSm+ddoH6DiyoHWfRY7/a68n2/ouq4BRCYh9e6yktxVBMKDhD8fd0fSEfdP4sbD5VY+m3ETg5g/F3zKTUY19unlKPnLKy5oui+agY1fIzZL4cAoebcrfNdSRRefbf4Yy6Yyj0tA1FXCp2jnf+nac7122pFhJ7qCxdDPSQZf2/gwHZt5WXz4VA3A9VoBe9svD+njOFAzX4VNIi1phwAS63e2z5PF2rf0DJ8n77Fp1CyKPaug1R/sEt6dfUfpG7wBkAycc+wIDAQABo28wbTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIF4DAyBgNVHREEKzApgiFsb2FkLWJhbGFuY2VyLnZyYWNrLnZzcGhlcmUubG9jYWyHBAoAAA8wHwYDVR0jBBgwFoAUauWGErq+/JHwQ3qju9Ch8V2097MwDQYJKoZIhvcNAQELBQADggEBAMCvNCQ3KsvncoYK9fI0cfcBYEpFuToB+duK7yztklf8P6PLRSWdU39KaG+xv5768K+xe90riOYs0Mhcs0IuUQW2F6kCnlW3ff2R3pvTeM3kGqXclk4KGKRNnhhsF3Ze8QW3drH0dzD3vNcumdLr+GvG6vF2O/Pl3+Nn9dwE72ZVl7Ai970jJM5CVjI+wST19ZQPpq1E3aad3Bk+AQcQCIGputBGkHFZUGX4T6jPH0uDOcSRjH7v6TXhF2Cury7zme0zpWYwC4RMH/AxqK4z6DlmAwu2zycN097TMM/ZUXePmvgY7JSB5BIiY4ZxlnNbJy4756XDSBt41AaHxqWNcfs=-----END CERTIFICATE-----"
  }, {
    "isInstalled" : false,
    "version" : "V3",
    "serialNumber" : "f4:80:33:5f:e5:77:2a:f7",
    "issuedTo" : "sfo-m01-nsx01.rainpole.io",
    "issuedBy" : "OU=ISBU, O=VMware, L= Bangalore, ST=Karnataka, C=IN, CN=test1.openssl.eng.vmware.com",
    "notBefore" : "2019-07-25T07:38:55.000Z",
    "notAfter" : "2020-07-24T07:38:55.000Z",
    "signatureAlgorithm" : "SHA256withRSA",
    "subject" : "C=US, CN=sfo-m01-nsx01.rainpole.io",
    "subjectAlternativeName" : [ "sfo-m01-nsx01.rainpole.io" ],
    "publicKey" : "BA:16:16:DF:00:B2:88:C9:F9:E0:7F:72:B6:DC:83:1F:87:46:C3:C4:4B:8B:EB:C0:AD:B9:A2:FB:31:75:0A:89:12:25:58:B6:42:B1:78:A3:7F:19:B0:03:19:35:AD:51:5D:08:36:CB:C3:6E:63:B2:CE:89:2D:24:AD:EA:DD:BD:73:0A:06:84:4E:4D:83:AF:B8:EC:F9:E1:98:9F:35:9F:83:11:DD:71:61:5E:CF:DE:9A:BF:0D:A7:8A:64:F2:94:26:5D:A7:E0:20:B9:C2:01:BB:62:F2:7D:C3:A9:9B:91:DE:49:1E:97:B7:E8:CA:38:1C:E9:92:76:07:A8:26:95:5D:C1:89:E7:EA:27:03:57:BE:D2:76:B5:E4:AC:89:10:67:7F:42:DA:5D:52:5C:9F:65:59:A4:42:0B:81:F8:77:B5:F8:2D:18:DA:9B:1A:F4:BD:BD:F2:33:97:7A:EA:64:1B:CE:58:CF:9C:E7:18:60:94:CE:66:C9:57:7E:62:A2:AD:47:3D:29:D2:F8:DB:AB:D7:8F:D1:7D:8A:9A:FC:68:37:48:3C:AD:38:A5:76:D8:4C:E2:64:AE:87:B7:DA:78:3E:EB:2B:C8:70:43:4D:CB:4E:72:80:43:CB:D2:43:A7:71:16:22:27:0F:A1:DB:0A:83:88:2C:09:49:0A:35:8C:76:76:55:E2:3A:1C:7C:74:F0:91:60:A2:45:7F:6C:7A:2B:A5:51:87:25:D0:DB:9C:E0:B8:32:27:83:D6:3F:70:C5:7A:1B:92:09:E7:77:39:3A:C2:28:B1:5C:8A:3F:42:FE:D6:6A:7D:F6:E5:D6:FB:B0:DB:AB:D9:65:29:BE:75:DA:07:E8:38:B2:A0:75:9F:45:8E:FF:6B:AF:27:DB:FA:2E:AB:80:51:09:88:7D:7B:AC:A4:B7:15:41:30:A0:E1:0F:C7:DD:D1:F4:84:7D:D3:F8:B1:B0:F9:55:8F:A6:DC:44:E0:E6:0F:C5:DF:32:93:51:8D:7D:BA:79:4A:3E:72:CA:CB:9A:2E:8B:E6:A0:63:57:C8:CD:92:F8:70:0A:1E:6D:CA:DF:35:D4:91:45:E7:DB:7F:86:32:E9:8C:A3:D2:D0:35:15:70:A9:DA:39:DF:FA:76:9C:EF:5D:B6:A4:58:49:EE:A0:B1:74:33:D2:41:97:F6:FE:0C:07:66:DE:56:5F:3E:15:03:70:3D:56:80:5E:F6:CB:C3:FA:78:CE:14:0C:D7:E1:53:48:8B:5A:61:C0:04:BA:DD:ED:B3:E4:F1:76:AD:FD:03:27:C9:FB:EC:5A:75:0B:22:8F:6A:E8:35:47:FB:04:B7:A7:5F:51:FA:46:EF:00:64:03:27:1C:FB",
    "publicKeyAlgorithm" : "RSA",
    "keySize" : "2048",
    "thumbprintAlgorithm" : "SHA-256",
    "thumbprint" : "02:B1:D1:01:18:9F:07:39:E1:7C:94:BC:50:07:64:E8:45:8C:F8:73:3E:A9:23:BC:D2:BD:B1:17:E9:B3:C0:11",
    "numberOfDaysToExpire" : 365,
    "expirationStatus" : "ACTIVE",
    "pemEncoded" : "-----BEGIN CERTIFICATE-----MIIFRDCCBCygAwIBAgIJAOx9cA2cGcUUMA0GCSqGSIb3DQEBCwUAMIGgMQswCQYDVQQDDAJDQTEXMBUGCgmSJomT8ixkARkWB3ZzcGhlcmUxFTATBgoJkiaJk/IsZAEZFgVsb2NhbDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExIjAgBgNVBAoMGXBzYy0xLnZyYWNrLnZzcGhlcmUubG9jYWwxGzAZBgNVBAsMElZNd2FyZSBFbmdpbmVlcmluZzAeFw0xODA3MDIxNDE1NTJaFw0yODA2MjcxMjIyMzlaMIGwMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTESMBAGA1UEBxMJUGFsbyBBbHRvMQ8wDQYDVQQKEwZWTXdhcmUxGzAZBgNVBAsTElZNd2FyZSBFbmdpbmVlcmluZzEqMCgGA1UEAxMhbG9hZC1iYWxhbmNlci52cmFjay52c3BoZXJlLmxvY2FsMR4wHAYJKoZIhvcNAQkBFg92bWNhQHZtd2FyZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC6FhbfALKIyfngf3K23IMfh0bDxEuL68CtuaL7MXUKiRIlWLZCsXijfxmwAxk1rVFdCDbLw25jss6JLSSt6t29cwoGhE5Ng6+47PnhmJ81n4MR3XFhXs/emr8Np4pk8pQmXafgILnCAbti8n3DqZuR3kkel7foyjgc6ZJ2B6gmlV3BiefqJwNXvtJ2teSsiRBnf0LaXVJcn2VZpEILgfh3tfgtGNqbGvS9vfIzl3rqZBvOWM+c5xhglM5myVd+YqKtRz0p0vjbq9eP0X2KmvxoN0g8rTildthM4mSuh7faeD7rK8hwQ03LTnKAQ8vSQ6dxFiInD6HbCoOILAlJCjWMdnZV4jocfHTwkWCiRX9seiulUYcl0Nuc4LgyJ4PWP3DFehuSCed3OTrCKLFcij9C/tZqffbl1vuw26vZZSm+ddoH6DiyoHWfRY7/a68n2/ouq4BRCYh9e6yktxVBMKDhD8fd0fSEfdP4sbD5VY+m3ETg5g/F3zKTUY19unlKPnLKy5oui+agY1fIzZL4cAoebcrfNdSRRefbf4Yy6Yyj0tA1FXCp2jnf+nac7122pFhJ7qCxdDPSQZf2/gwHZt5WXz4VA3A9VoBe9svD+njOFAzX4VNIi1phwAS63e2z5PF2rf0DJ8n77Fp1CyKPaug1R/sEt6dfUfpG7wBkAycc+wIDAQABo28wbTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIF4DAyBgNVHREEKzApgiFsb2FkLWJhbGFuY2VyLnZyYWNrLnZzcGhlcmUubG9jYWyHBAoAAA8wHwYDVR0jBBgwFoAUauWGErq+/JHwQ3qju9Ch8V2097MwDQYJKoZIhvcNAQELBQADggEBAMCvNCQ3KsvncoYK9fI0cfcBYEpFuToB+duK7yztklf8P6PLRSWdU39KaG+xv5768K+xe90riOYs0Mhcs0IuUQW2F6kCnlW3ff2R3pvTeM3kGqXclk4KGKRNnhhsF3Ze8QW3drH0dzD3vNcumdLr+GvG6vF2O/Pl3+Nn9dwE72ZVl7Ai970jJM5CVjI+wST19ZQPpq1E3aad3Bk+AQcQCIGputBGkHFZUGX4T6jPH0uDOcSRjH7v6TXhF2Cury7zme0zpWYwC4RMH/AxqK4z6DlmAwu2zycN097TMM/ZUXePmvgY7JSB5BIiY4ZxlnNbJy4756XDSBt41AaHxqWNcfs=-----END CERTIFICATE-----"
  } ]
}
  1. After successful certificate generation, install the signed certificates on remote resources by invoking the API

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/domains/MGMT/certificates' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "operationType" : "INSTALL",
  "resources" : [ {
    "fqdn" : "sfo-m01-nsx01.rainpole.io",
    "type" : "NSX_MANAGER"
  } ]
}'

HTTP Request

PATCH /v1/domains/MGMT/certificates HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 129
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "operationType" : "INSTALL",
  "resources" : [ {
    "fqdn" : "sfo-m01-nsx01.rainpole.io",
    "type" : "NSX_MANAGER"
  } ]
}

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/tasks/4942e046-191a-45c3-9c8a-75fb5e8121b3
Content-Type: application/json
Content-Length: 79

{
  "id" : "4942e046-191a-45c3-9c8a-75fb5e8121b3",
  "status" : "IN_PROGRESS"
}
  • Poll the status of the task using the task API with the ID from the response of the previous API.

Tip
Refer to: Get a Task
  • Poll the task until "status" is not "IN_PROGRESS" with the ID from the previous response.

Tip
Refer to: Get a Task.
  • If the "status" is "SUCCESSFUL", the task is completed successfully.

  • If the "status" is "FAILED", the task can be re-executed.

Tip
Refer to: Retry a Task
  1. Restart all the services as follows:

    • Using SSH, log in to the SDDC Manager VM with the following credentials:

      • Username: vcf

      • Password: use the password specified in the deployment parameter sheet

    • Enter su to switch to the root user.

    • Execute the following command:

      • sh /opt/vmware/vcf/operationsmanager/scripts/cli/sddcmanager_restart_services.sh

  1. Fetch the installed certificates by invoking the API

Note
The following will display the list of installed certificates.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/domains/MGMT/resource-certificates' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/domains/MGMT/resource-certificates HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 8435

{
  "elements" : [ {
    "version" : "V3",
    "serialNumber" : "ca:0b:5d:6d:07:4e:db:41",
    "issuedTo" : "sfo-m01-vc01.rainpole.io",
    "issuedBy" : "OU=VMware Engineering, O=sfo-m01-psc01.rainpole.io, ST=California, C=US, DC=local, DC=vsphere, CN=CA",
    "notBefore" : "2019-07-11T10:16:05.000Z",
    "notAfter" : "2029-07-06T08:17:24.000Z",
    "signatureAlgorithm" : "SHA256withRSA",
    "subject" : "C=US, CN=sfo-m01-vc01.rainpole.io",
    "subjectAlternativeName" : [ "sfo-m01-vc01.rainpole.io" ],
    "publicKey" : "BA:16:16:DF:00:B2:88:C9:F9:E0:7F:72:B6:DC:83:1F:87:46:C3:C4:4B:8B:EB:C0:AD:B9:A2:FB:31:75:0A:89:12:25:58:B6:42:B1:78:A3:7F:19:B0:03:19:35:AD:51:5D:08:36:CB:C3:6E:63:B2:CE:89:2D:24:AD:EA:DD:BD:73:0A:06:84:4E:4D:83:AF:B8:EC:F9:E1:98:9F:35:9F:83:11:DD:71:61:5E:CF:DE:9A:BF:0D:A7:8A:64:F2:94:26:5D:A7:E0:20:B9:C2:01:BB:62:F2:7D:C3:A9:9B:91:DE:49:1E:97:B7:E8:CA:38:1C:E9:92:76:07:A8:26:95:5D:C1:89:E7:EA:27:03:57:BE:D2:76:B5:E4:AC:89:10:67:7F:42:DA:5D:52:5C:9F:65:59:A4:42:0B:81:F8:77:B5:F8:2D:18:DA:9B:1A:F4:BD:BD:F2:33:97:7A:EA:64:1B:CE:58:CF:9C:E7:18:60:94:CE:66:C9:57:7E:62:A2:AD:47:3D:29:D2:F8:DB:AB:D7:8F:D1:7D:8A:9A:FC:68:37:48:3C:AD:38:A5:76:D8:4C:E2:64:AE:87:B7:DA:78:3E:EB:2B:C8:70:43:4D:CB:4E:72:80:43:CB:D2:43:A7:71:16:22:27:0F:A1:DB:0A:83:88:2C:09:49:0A:35:8C:76:76:55:E2:3A:1C:7C:74:F0:91:60:A2:45:7F:6C:7A:2B:A5:51:87:25:D0:DB:9C:E0:B8:32:27:83:D6:3F:70:C5:7A:1B:92:09:E7:77:39:3A:C2:28:B1:5C:8A:3F:42:FE:D6:6A:7D:F6:E5:D6:FB:B0:DB:AB:D9:65:29:BE:75:DA:07:E8:38:B2:A0:75:9F:45:8E:FF:6B:AF:27:DB:FA:2E:AB:80:51:09:88:7D:7B:AC:A4:B7:15:41:30:A0:E1:0F:C7:DD:D1:F4:84:7D:D3:F8:B1:B0:F9:55:8F:A6:DC:44:E0:E6:0F:C5:DF:32:93:51:8D:7D:BA:79:4A:3E:72:CA:CB:9A:2E:8B:E6:A0:63:57:C8:CD:92:F8:70:0A:1E:6D:CA:DF:35:D4:91:45:E7:DB:7F:86:32:E9:8C:A3:D2:D0:35:15:70:A9:DA:39:DF:FA:76:9C:EF:5D:B6:A4:58:49:EE:A0:B1:74:33:D2:41:97:F6:FE:0C:07:66:DE:56:5F:3E:15:03:70:3D:56:80:5E:F6:CB:C3:FA:78:CE:14:0C:D7:E1:53:48:8B:5A:61:C0:04:BA:DD:ED:B3:E4:F1:76:AD:FD:03:27:C9:FB:EC:5A:75:0B:22:8F:6A:E8:35:47:FB:04:B7:A7:5F:51:FA:46:EF:00:64:03:27:1C:FB",
    "publicKeyAlgorithm" : "RSA",
    "keySize" : "2048",
    "thumbprintAlgorithm" : "SHA-256",
    "thumbprint" : "35:4B:A5:11:A9:3D:39:0D:B7:95:9B:4D:07:5C:73:40:D0:DF:63:D4:68:97:6E:1B:20:70:87:AE:40:3F:7E:AD",
    "numberOfDaysToExpire" : 3644,
    "expirationStatus" : "ACTIVE",
    "pemEncoded" : "-----BEGIN CERTIFICATE-----MIIFRDCCBCygAwIBAgIJAOx9cA2cGcUUMA0GCSqGSIb3DQEBCwUAMIGgMQswCQYDVQQDDAJDQTEXMBUGCgmSJomT8ixkARkWB3ZzcGhlcmUxFTATBgoJkiaJk/IsZAEZFgVsb2NhbDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExIjAgBgNVBAoMGXBzYy0xLnZyYWNrLnZzcGhlcmUubG9jYWwxGzAZBgNVBAsMElZNd2FyZSBFbmdpbmVlcmluZzAeFw0xODA3MDIxNDE1NTJaFw0yODA2MjcxMjIyMzlaMIGwMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTESMBAGA1UEBxMJUGFsbyBBbHRvMQ8wDQYDVQQKEwZWTXdhcmUxGzAZBgNVBAsTElZNd2FyZSBFbmdpbmVlcmluZzEqMCgGA1UEAxMhbG9hZC1iYWxhbmNlci52cmFjay52c3BoZXJlLmxvY2FsMR4wHAYJKoZIhvcNAQkBFg92bWNhQHZtd2FyZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC6FhbfALKIyfngf3K23IMfh0bDxEuL68CtuaL7MXUKiRIlWLZCsXijfxmwAxk1rVFdCDbLw25jss6JLSSt6t29cwoGhE5Ng6+47PnhmJ81n4MR3XFhXs/emr8Np4pk8pQmXafgILnCAbti8n3DqZuR3kkel7foyjgc6ZJ2B6gmlV3BiefqJwNXvtJ2teSsiRBnf0LaXVJcn2VZpEILgfh3tfgtGNqbGvS9vfIzl3rqZBvOWM+c5xhglM5myVd+YqKtRz0p0vjbq9eP0X2KmvxoN0g8rTildthM4mSuh7faeD7rK8hwQ03LTnKAQ8vSQ6dxFiInD6HbCoOILAlJCjWMdnZV4jocfHTwkWCiRX9seiulUYcl0Nuc4LgyJ4PWP3DFehuSCed3OTrCKLFcij9C/tZqffbl1vuw26vZZSm+ddoH6DiyoHWfRY7/a68n2/ouq4BRCYh9e6yktxVBMKDhD8fd0fSEfdP4sbD5VY+m3ETg5g/F3zKTUY19unlKPnLKy5oui+agY1fIzZL4cAoebcrfNdSRRefbf4Yy6Yyj0tA1FXCp2jnf+nac7122pFhJ7qCxdDPSQZf2/gwHZt5WXz4VA3A9VoBe9svD+njOFAzX4VNIi1phwAS63e2z5PF2rf0DJ8n77Fp1CyKPaug1R/sEt6dfUfpG7wBkAycc+wIDAQABo28wbTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIF4DAyBgNVHREEKzApgiFsb2FkLWJhbGFuY2VyLnZyYWNrLnZzcGhlcmUubG9jYWyHBAoAAA8wHwYDVR0jBBgwFoAUauWGErq+/JHwQ3qju9Ch8V2097MwDQYJKoZIhvcNAQELBQADggEBAMCvNCQ3KsvncoYK9fI0cfcBYEpFuToB+duK7yztklf8P6PLRSWdU39KaG+xv5768K+xe90riOYs0Mhcs0IuUQW2F6kCnlW3ff2R3pvTeM3kGqXclk4KGKRNnhhsF3Ze8QW3drH0dzD3vNcumdLr+GvG6vF2O/Pl3+Nn9dwE72ZVl7Ai970jJM5CVjI+wST19ZQPpq1E3aad3Bk+AQcQCIGputBGkHFZUGX4T6jPH0uDOcSRjH7v6TXhF2Cury7zme0zpWYwC4RMH/AxqK4z6DlmAwu2zycN097TMM/ZUXePmvgY7JSB5BIiY4ZxlnNbJy4756XDSBt41AaHxqWNcfs=-----END CERTIFICATE-----"
  }, {
    "version" : "V3",
    "serialNumber" : "f4:80:33:5f:e5:77:2a:f7",
    "issuedTo" : "sfo-m01-nsx01.rainpole.io",
    "issuedBy" : "OU=ISBU, O=VMware, L= Bangalore, ST=Karnataka, C=IN, CN=test1.openssl.eng.vmware.com",
    "notBefore" : "2019-07-25T07:38:55.000Z",
    "notAfter" : "2020-07-24T07:38:55.000Z",
    "signatureAlgorithm" : "SHA256withRSA",
    "subject" : "C=US, CN=sfo-m01-nsx01.rainpole.io",
    "subjectAlternativeName" : [ "sfo-m01-nsx01.rainpole.io" ],
    "publicKey" : "BA:16:16:DF:00:B2:88:C9:F9:E0:7F:72:B6:DC:83:1F:87:46:C3:C4:4B:8B:EB:C0:AD:B9:A2:FB:31:75:0A:89:12:25:58:B6:42:B1:78:A3:7F:19:B0:03:19:35:AD:51:5D:08:36:CB:C3:6E:63:B2:CE:89:2D:24:AD:EA:DD:BD:73:0A:06:84:4E:4D:83:AF:B8:EC:F9:E1:98:9F:35:9F:83:11:DD:71:61:5E:CF:DE:9A:BF:0D:A7:8A:64:F2:94:26:5D:A7:E0:20:B9:C2:01:BB:62:F2:7D:C3:A9:9B:91:DE:49:1E:97:B7:E8:CA:38:1C:E9:92:76:07:A8:26:95:5D:C1:89:E7:EA:27:03:57:BE:D2:76:B5:E4:AC:89:10:67:7F:42:DA:5D:52:5C:9F:65:59:A4:42:0B:81:F8:77:B5:F8:2D:18:DA:9B:1A:F4:BD:BD:F2:33:97:7A:EA:64:1B:CE:58:CF:9C:E7:18:60:94:CE:66:C9:57:7E:62:A2:AD:47:3D:29:D2:F8:DB:AB:D7:8F:D1:7D:8A:9A:FC:68:37:48:3C:AD:38:A5:76:D8:4C:E2:64:AE:87:B7:DA:78:3E:EB:2B:C8:70:43:4D:CB:4E:72:80:43:CB:D2:43:A7:71:16:22:27:0F:A1:DB:0A:83:88:2C:09:49:0A:35:8C:76:76:55:E2:3A:1C:7C:74:F0:91:60:A2:45:7F:6C:7A:2B:A5:51:87:25:D0:DB:9C:E0:B8:32:27:83:D6:3F:70:C5:7A:1B:92:09:E7:77:39:3A:C2:28:B1:5C:8A:3F:42:FE:D6:6A:7D:F6:E5:D6:FB:B0:DB:AB:D9:65:29:BE:75:DA:07:E8:38:B2:A0:75:9F:45:8E:FF:6B:AF:27:DB:FA:2E:AB:80:51:09:88:7D:7B:AC:A4:B7:15:41:30:A0:E1:0F:C7:DD:D1:F4:84:7D:D3:F8:B1:B0:F9:55:8F:A6:DC:44:E0:E6:0F:C5:DF:32:93:51:8D:7D:BA:79:4A:3E:72:CA:CB:9A:2E:8B:E6:A0:63:57:C8:CD:92:F8:70:0A:1E:6D:CA:DF:35:D4:91:45:E7:DB:7F:86:32:E9:8C:A3:D2:D0:35:15:70:A9:DA:39:DF:FA:76:9C:EF:5D:B6:A4:58:49:EE:A0:B1:74:33:D2:41:97:F6:FE:0C:07:66:DE:56:5F:3E:15:03:70:3D:56:80:5E:F6:CB:C3:FA:78:CE:14:0C:D7:E1:53:48:8B:5A:61:C0:04:BA:DD:ED:B3:E4:F1:76:AD:FD:03:27:C9:FB:EC:5A:75:0B:22:8F:6A:E8:35:47:FB:04:B7:A7:5F:51:FA:46:EF:00:64:03:27:1C:FB",
    "publicKeyAlgorithm" : "RSA",
    "keySize" : "2048",
    "thumbprintAlgorithm" : "SHA-256",
    "thumbprint" : "02:B1:D1:01:18:9F:07:39:E1:7C:94:BC:50:07:64:E8:45:8C:F8:73:3E:A9:23:BC:D2:BD:B1:17:E9:B3:C0:11",
    "numberOfDaysToExpire" : 365,
    "expirationStatus" : "ACTIVE",
    "pemEncoded" : "-----BEGIN CERTIFICATE-----MIIFRDCCBCygAwIBAgIJAOx9cA2cGcUUMA0GCSqGSIb3DQEBCwUAMIGgMQswCQYDVQQDDAJDQTEXMBUGCgmSJomT8ixkARkWB3ZzcGhlcmUxFTATBgoJkiaJk/IsZAEZFgVsb2NhbDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExIjAgBgNVBAoMGXBzYy0xLnZyYWNrLnZzcGhlcmUubG9jYWwxGzAZBgNVBAsMElZNd2FyZSBFbmdpbmVlcmluZzAeFw0xODA3MDIxNDE1NTJaFw0yODA2MjcxMjIyMzlaMIGwMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTESMBAGA1UEBxMJUGFsbyBBbHRvMQ8wDQYDVQQKEwZWTXdhcmUxGzAZBgNVBAsTElZNd2FyZSBFbmdpbmVlcmluZzEqMCgGA1UEAxMhbG9hZC1iYWxhbmNlci52cmFjay52c3BoZXJlLmxvY2FsMR4wHAYJKoZIhvcNAQkBFg92bWNhQHZtd2FyZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC6FhbfALKIyfngf3K23IMfh0bDxEuL68CtuaL7MXUKiRIlWLZCsXijfxmwAxk1rVFdCDbLw25jss6JLSSt6t29cwoGhE5Ng6+47PnhmJ81n4MR3XFhXs/emr8Np4pk8pQmXafgILnCAbti8n3DqZuR3kkel7foyjgc6ZJ2B6gmlV3BiefqJwNXvtJ2teSsiRBnf0LaXVJcn2VZpEILgfh3tfgtGNqbGvS9vfIzl3rqZBvOWM+c5xhglM5myVd+YqKtRz0p0vjbq9eP0X2KmvxoN0g8rTildthM4mSuh7faeD7rK8hwQ03LTnKAQ8vSQ6dxFiInD6HbCoOILAlJCjWMdnZV4jocfHTwkWCiRX9seiulUYcl0Nuc4LgyJ4PWP3DFehuSCed3OTrCKLFcij9C/tZqffbl1vuw26vZZSm+ddoH6DiyoHWfRY7/a68n2/ouq4BRCYh9e6yktxVBMKDhD8fd0fSEfdP4sbD5VY+m3ETg5g/F3zKTUY19unlKPnLKy5oui+agY1fIzZL4cAoebcrfNdSRRefbf4Yy6Yyj0tA1FXCp2jnf+nac7122pFhJ7qCxdDPSQZf2/gwHZt5WXz4VA3A9VoBe9svD+njOFAzX4VNIi1phwAS63e2z5PF2rf0DJ8n77Fp1CyKPaug1R/sEt6dfUfpG7wBkAycc+wIDAQABo28wbTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIF4DAyBgNVHREEKzApgiFsb2FkLWJhbGFuY2VyLnZyYWNrLnZzcGhlcmUubG9jYWyHBAoAAA8wHwYDVR0jBBgwFoAUauWGErq+/JHwQ3qju9Ch8V2097MwDQYJKoZIhvcNAQELBQADggEBAMCvNCQ3KsvncoYK9fI0cfcBYEpFuToB+duK7yztklf8P6PLRSWdU39KaG+xv5768K+xe90riOYs0Mhcs0IuUQW2F6kCnlW3ff2R3pvTeM3kGqXclk4KGKRNnhhsF3Ze8QW3drH0dzD3vNcumdLr+GvG6vF2O/Pl3+Nn9dwE72ZVl7Ai970jJM5CVjI+wST19ZQPpq1E3aad3Bk+AQcQCIGputBGkHFZUGX4T6jPH0uDOcSRjH7v6TXhF2Cury7zme0zpWYwC4RMH/AxqK4z6DlmAwu2zycN097TMM/ZUXePmvgY7JSB5BIiY4ZxlnNbJy4756XDSBt41AaHxqWNcfs=-----END CERTIFICATE-----"
  } ]
}
Warning
Certificate installation will replace the already installed certificates.
Note
The CSRs cannot be fetched after successful certificate installation.
Note
Only singleton object of a particular certificate authority will exist at any point of time in the VCF environment.
Note
Only the latest generated CSRs will exist in the VCF environment after a series of generate CSR operation.
Note
Only the latest generated certificates will exist in the VCF environment after a series of generate certificate operation.

2.29.2. Install Certificates By Offline Mode

The following steps have to be followed to install certificates signed by external third party certificate authorities.

Prerequisites
  1. VCF environment.

Steps
  1. Generate CSR by invoking the API

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/domains/MGMT/csrs' -i -X PUT \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "csrGenerationSpec" : {
    "country" : "IN",
    "state" : "Karnataka",
    "locality" : "Bengaluru",
    "organization" : "VMware",
    "organizationUnit" : "ISBU",
    "email" : "[email protected]",
    "keySize" : "2048",
    "keyAlgorithm" : "RSA"
  },
  "resources" : [ {
    "fqdn" : "sfo-m01-nsx01.rainpole.io",
    "type" : "NSX_MANAGER",
    "sans" : [ "sfo-m01-nsx01.rainpole.io", "10.0.0.6" ]
  } ]
}'

HTTP Request

PUT /v1/domains/MGMT/csrs HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 415
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "csrGenerationSpec" : {
    "country" : "IN",
    "state" : "Karnataka",
    "locality" : "Bengaluru",
    "organization" : "VMware",
    "organizationUnit" : "ISBU",
    "email" : "[email protected]",
    "keySize" : "2048",
    "keyAlgorithm" : "RSA"
  },
  "resources" : [ {
    "fqdn" : "sfo-m01-nsx01.rainpole.io",
    "type" : "NSX_MANAGER",
    "sans" : [ "sfo-m01-nsx01.rainpole.io", "10.0.0.6" ]
  } ]
}

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/tasks/b1b0531b-4a7f-41a7-8f18-78df8f9097b3
Content-Type: application/json
Content-Length: 79

{
  "id" : "b1b0531b-4a7f-41a7-8f18-78df8f9097b3",
  "status" : "IN_PROGRESS"
}
Tip
Refer to: Generate CSR(s)
  • Poll the status of the task using the task API with the ID from the response of the previous API.

Tip
Refer to: Get a Task
  • Poll the task until "status" is not "IN_PROGRESS" with the ID from the previous response.

Tip
Refer to: Get a Task.
  • If the "status" is "SUCCESSFUL", the task is completed successfully.

  • If the "status" is "FAILED", execute the generate CSR request again.

  1. If the generation of CSR is successful, fetch the contents of the CSR to check for which resources CSR is generated by invoking the API

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/domains/MGMT/csrs' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/domains/MGMT/csrs HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1154

{
  "elements" : [ {
    "csrEncodedContent" : "-----BEGIN CERTIFICATE REQUEST-----\nMIICtDCCAZwCAQAwbzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMQswCQYDVQQH\nEwJQQTEMMAoGA1UECxMDVkNGMQ8wDQYDVQQKEwZWTXdhcmUxJzAlBgNVBAMTHm5z\neE1hbmFnZXIudnJhY2sudnNwaGVyZS5sb2NhbDCCASIwDQYJKoZIhvcNAQEBBQAD\nggEPADCCAQoCggEBAKtumknTB1do77E5rCXGRgqT6iqTgW0moiDZS6USGkeTQMvj\nR5JnQjq11xJl0y1meSdA6ufft8xndOr1b8alRs4+FreuJLl/8HBIVLRECrfkfIn0\nImwZzGFih2wwrCD/evb/7paNcdt97+KF2nwqB5ADysyFkjYs0uiJxxE5i8HsST1L\n+AStKeAV0lOk/2n/qgHPUcnjH7KchJAet9DFuKBWUW7QIryQffuiQrdAFqcEPHJC\nubHyqnoBPktosD3SXs1UickNiTyXIRC1NGHK/w7VTTJfBxkXxIdejazVGjCAW8w0\n/N4iW3rCaxSpnggWLGYFbGEkhikgtkpj8zIRjk8CAwEAAaAAMA0GCSqGSIb3DQEB\nCwUAA4IBAQBkxJTuymqggHLhWbtnvtA3mU4freKzF2XDUUP+K5kz43j2IXNbsCJI\nWDpY9OCVj9NHZ+uFTvQLvCb3E+6h0vE4Dw2PVUuOpz/Ag1qmgYIxtC5vzN4gLKih\nUNROG5wYryYKO8YL4MB3XIQdx9b8y8Fxyh3ZHIvdghhUPBooWzeCUXVPD8Le4p52\nD8yMGREtSQL4avLughd+SFd0fvKQq+/K42WOFn7PYVfgLBqdW1YCjEIfAdsG+bhG\n3CIBan84uV3cKFSM4NtxCvHZnuRZmx6+0Frtt1w9sndjKvHrA6ozoHO9O1gl/E9D\nY1rzOB7KFzGiZHAMT2Cf/x/xGo8rTGFZ\n-----END CERTIFICATE REQUEST-----",
    "resource" : {
      "fqdn" : "sfo-m01-nsx01.rainpole.io"
    }
  } ]
}
  1. After successful CSR generation, download CSR in ".tar.gz" format by invoking the API

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/domains/MGMT/csrs/downloads' -i -X GET \
    -H 'Accept: application/octet-stream' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/domains/MGMT/csrs/downloads HTTP/1.1
Accept: application/octet-stream
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/octet-stream
Content-Length: 1012
Content-Disposition: attachment; filename="csrString.txt"
Accept-Ranges: bytes

-----BEGIN CERTIFICATE REQUEST-----
MIICtDCCAZwCAQAwbzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMQswCQYDVQQH
EwJQQTEMMAoGA1UECxMDVkNGMQ8wDQYDVQQKEwZWTXdhcmUxJzAlBgNVBAMTHm5z
eE1hbmFnZXIudnJhY2sudnNwaGVyZS5sb2NhbDCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBAKtumknTB1do77E5rCXGRgqT6iqTgW0moiDZS6USGkeTQMvj
R5JnQjq11xJl0y1meSdA6ufft8xndOr1b8alRs4+FreuJLl/8HBIVLRECrfkfIn0
ImwZzGFih2wwrCD/evb/7paNcdt97+KF2nwqB5ADysyFkjYs0uiJxxE5i8HsST1L
+AStKeAV0lOk/2n/qgHPUcnjH7KchJAet9DFuKBWUW7QIryQffuiQrdAFqcEPHJC
ubHyqnoBPktosD3SXs1UickNiTyXIRC1NGHK/w7VTTJfBxkXxIdejazVGjCAW8w0
/N4iW3rCaxSpnggWLGYFbGEkhikgtkpj8zIRjk8CAwEAAaAAMA0GCSqGSIb3DQEB
CwUAA4IBAQBkxJTuymqggHLhWbtnvtA3mU4freKzF2XDUUP+K5kz43j2IXNbsCJI
WDpY9OCVj9NHZ+uFTvQLvCb3E+6h0vE4Dw2PVUuOpz/Ag1qmgYIxtC5vzN4gLKih
UNROG5wYryYKO8YL4MB3XIQdx9b8y8Fxyh3ZHIvdghhUPBooWzeCUXVPD8Le4p52
D8yMGREtSQL4avLughd+SFd0fvKQq+/K42WOFn7PYVfgLBqdW1YCjEIfAdsG+bhG
3CIBan84uV3cKFSM4NtxCvHZnuRZmx6+0Frtt1w9sndjKvHrA6ozoHO9O1gl/E9D
Y1rzOB7KFzGiZHAMT2Cf/x/xGo8rTGFZ
-----END CERTIFICATE REQUEST-----
  1. Use the downloaded CSRs to have it manually signed by external certificate authorities.

  1. Verify that the certificate authority configuration files have been configured and packaged in the form of
    a ".tar.gz" file with the following conditions

    • The name of the top-level directory must exactly match the name of the domain to which certificates are to be installed.

    • The PEM-encoded root CA certificate chain file (rootca.crt) must reside inside this top-level directory.

    • This directory must contain one sub-directory for each component resource and the name of each sub-directory must exactly match the resource fqdn.

    • Each sub-directory must contain a corresponding ".csr" file, whose name must exactly match the
      resource fqdn followed by ".csr" extension.

    • Each sub-directory must contain a corresponding ".crt" file, whose name must exactly match the
      resource fqdn followed by ".crt" extension.

  1. Upload the packaged signed certificates by invoking the API

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/domains/MGMT/certificates/uploads' -i -X PUT \
    -H 'Content-Type: multipart/form-data' \
    -H 'Authorization: Bearer etYWRta....' \
    -F '[email protected];type=multipart/form-data'

HTTP Request

PUT /v1/domains/MGMT/certificates/uploads HTTP/1.1
Content-Type: multipart/form-data; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=file; filename=MGMT.tar.gz
Content-Type: multipart/form-data

-----BEGIN CERTIFICATE-----
MIIC2zCCAcMCAQAwgZUxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
MRIwEAYDVQQHEwlQYWxvIEFsdG8xHjAcBgNVBAsTFVZNd2FyZSBJVCAgZGVwYXJ0
bWVudDEUMBIGA1UEChMLVk1XYXJlIEluYy4xJzAlBgNVBAMTHm5zeE1hbmFnZXIu
dnJhY2sudnNwaGVyZS5sb2NhbDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
ggEBAPgggMHrSsbcC9JYjGQCDiSTsG0LPGjMcTKgEaUi6zcVKWAv7ccpvW7cwFtc
2FqtM4zlETOK0tHZmS17uUg/tsJSWq+nr2VQ541XifvZOVINcIlKnzGJO32d4qxO
3xY3lr8Pj7xZe0xZK3iP+TBiUdtHggSYJ6uWYHoZAJ74Jqp4pVdwQgjm1sINldYm
e1x+txQINQB7MFG2tflQ7iXRaiLGZKXR86xDvw/T1OcPPjtSnwFjYfeHtE2KjuT9
RiCXl4cUuH+pjQTsWSSByK0LyC8U9/tqDGnMiERxBl1g9rBKQMOoZmTCF3gr7hhx
PZ16JlYqU9hbAjPxVkGO0NkI9PsCAwEAAaAAMA0GCSqGSIb3DQEBCwUAA4IBAQAq
vqrtJ4nQepjbwOmJor2ZHOUaoqwImE3OJaa6PxaikD1c14maMXJ4XQm+ONJooCPx
CL6TVs2DSydxVzRFHj5dyAz7MJ8XIkqijvarxb+gLjhim4+O+MuS7hHaCnVU9KMg
i3QhWFc1SwDuhiHL3RXbf04gOzrbEhIPa9rBKQMOoZmTCF3gr7JiuSqBvKtG3cus
3DjxA1z9CGUgIrYBlOm2/xPDp91AIMGeP9YXh8ue/NVPZ+tlZOCgKGiS05CTK5Wr
cHaC7yQqIyZdKP9EQhv3yhxL4ho9e1xL9f4puv3CBE5VmCb8LZ/5CRIKOHEsIV70
XGKY78p5LoKf4ro2LLQ+
-----END CERTIFICATE-----
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--

HTTP Response

HTTP/1.1 200 OK
  1. After successful upload operation, install the signed certificates on remote resources by invoking the API

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/domains/MGMT/certificates' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "operationType" : "INSTALL",
  "resources" : [ {
    "fqdn" : "sfo-m01-nsx01.rainpole.io",
    "type" : "NSX_MANAGER"
  } ]
}'

HTTP Request

PATCH /v1/domains/MGMT/certificates HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 129
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "operationType" : "INSTALL",
  "resources" : [ {
    "fqdn" : "sfo-m01-nsx01.rainpole.io",
    "type" : "NSX_MANAGER"
  } ]
}

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/tasks/4942e046-191a-45c3-9c8a-75fb5e8121b3
Content-Type: application/json
Content-Length: 79

{
  "id" : "4942e046-191a-45c3-9c8a-75fb5e8121b3",
  "status" : "IN_PROGRESS"
}
  • Poll the status of the task using the task API with the ID from the response of the previous API.

Tip
Refer to: Get a Task
  • Poll the task until "status" is not "IN_PROGRESS" with the ID from the previous response.

Tip
Refer to: Get a Task.
  • If the "status" is "SUCCESSFUL", the task is completed successfully.

  • If the "status" is "FAILED", the task can be re-executed.

Tip
Refer to: Retry a Task
  1. Restart all the services as follows:

    • Using SSH, log in to the SDDC Manager VM with the following credentials:

      • Username: vcf

      • Password: use the password specified in the deployment parameter sheet

    • Enter su to switch to the root user.

    • Execute the following command:

      • sh /opt/vmware/vcf/operationsmanager/scripts/cli/sddcmanager_restart_services.sh

  1. Fetch the installed certificates by invoking the API

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/domains/MGMT/resource-certificates' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/domains/MGMT/resource-certificates HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 8435

{
  "elements" : [ {
    "version" : "V3",
    "serialNumber" : "ca:0b:5d:6d:07:4e:db:41",
    "issuedTo" : "sfo-m01-vc01.rainpole.io",
    "issuedBy" : "OU=VMware Engineering, O=sfo-m01-psc01.rainpole.io, ST=California, C=US, DC=local, DC=vsphere, CN=CA",
    "notBefore" : "2019-07-11T10:16:05.000Z",
    "notAfter" : "2029-07-06T08:17:24.000Z",
    "signatureAlgorithm" : "SHA256withRSA",
    "subject" : "C=US, CN=sfo-m01-vc01.rainpole.io",
    "subjectAlternativeName" : [ "sfo-m01-vc01.rainpole.io" ],
    "publicKey" : "BA:16:16:DF:00:B2:88:C9:F9:E0:7F:72:B6:DC:83:1F:87:46:C3:C4:4B:8B:EB:C0:AD:B9:A2:FB:31:75:0A:89:12:25:58:B6:42:B1:78:A3:7F:19:B0:03:19:35:AD:51:5D:08:36:CB:C3:6E:63:B2:CE:89:2D:24:AD:EA:DD:BD:73:0A:06:84:4E:4D:83:AF:B8:EC:F9:E1:98:9F:35:9F:83:11:DD:71:61:5E:CF:DE:9A:BF:0D:A7:8A:64:F2:94:26:5D:A7:E0:20:B9:C2:01:BB:62:F2:7D:C3:A9:9B:91:DE:49:1E:97:B7:E8:CA:38:1C:E9:92:76:07:A8:26:95:5D:C1:89:E7:EA:27:03:57:BE:D2:76:B5:E4:AC:89:10:67:7F:42:DA:5D:52:5C:9F:65:59:A4:42:0B:81:F8:77:B5:F8:2D:18:DA:9B:1A:F4:BD:BD:F2:33:97:7A:EA:64:1B:CE:58:CF:9C:E7:18:60:94:CE:66:C9:57:7E:62:A2:AD:47:3D:29:D2:F8:DB:AB:D7:8F:D1:7D:8A:9A:FC:68:37:48:3C:AD:38:A5:76:D8:4C:E2:64:AE:87:B7:DA:78:3E:EB:2B:C8:70:43:4D:CB:4E:72:80:43:CB:D2:43:A7:71:16:22:27:0F:A1:DB:0A:83:88:2C:09:49:0A:35:8C:76:76:55:E2:3A:1C:7C:74:F0:91:60:A2:45:7F:6C:7A:2B:A5:51:87:25:D0:DB:9C:E0:B8:32:27:83:D6:3F:70:C5:7A:1B:92:09:E7:77:39:3A:C2:28:B1:5C:8A:3F:42:FE:D6:6A:7D:F6:E5:D6:FB:B0:DB:AB:D9:65:29:BE:75:DA:07:E8:38:B2:A0:75:9F:45:8E:FF:6B:AF:27:DB:FA:2E:AB:80:51:09:88:7D:7B:AC:A4:B7:15:41:30:A0:E1:0F:C7:DD:D1:F4:84:7D:D3:F8:B1:B0:F9:55:8F:A6:DC:44:E0:E6:0F:C5:DF:32:93:51:8D:7D:BA:79:4A:3E:72:CA:CB:9A:2E:8B:E6:A0:63:57:C8:CD:92:F8:70:0A:1E:6D:CA:DF:35:D4:91:45:E7:DB:7F:86:32:E9:8C:A3:D2:D0:35:15:70:A9:DA:39:DF:FA:76:9C:EF:5D:B6:A4:58:49:EE:A0:B1:74:33:D2:41:97:F6:FE:0C:07:66:DE:56:5F:3E:15:03:70:3D:56:80:5E:F6:CB:C3:FA:78:CE:14:0C:D7:E1:53:48:8B:5A:61:C0:04:BA:DD:ED:B3:E4:F1:76:AD:FD:03:27:C9:FB:EC:5A:75:0B:22:8F:6A:E8:35:47:FB:04:B7:A7:5F:51:FA:46:EF:00:64:03:27:1C:FB",
    "publicKeyAlgorithm" : "RSA",
    "keySize" : "2048",
    "thumbprintAlgorithm" : "SHA-256",
    "thumbprint" : "35:4B:A5:11:A9:3D:39:0D:B7:95:9B:4D:07:5C:73:40:D0:DF:63:D4:68:97:6E:1B:20:70:87:AE:40:3F:7E:AD",
    "numberOfDaysToExpire" : 3644,
    "expirationStatus" : "ACTIVE",
    "pemEncoded" : "-----BEGIN CERTIFICATE-----MIIFRDCCBCygAwIBAgIJAOx9cA2cGcUUMA0GCSqGSIb3DQEBCwUAMIGgMQswCQYDVQQDDAJDQTEXMBUGCgmSJomT8ixkARkWB3ZzcGhlcmUxFTATBgoJkiaJk/IsZAEZFgVsb2NhbDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExIjAgBgNVBAoMGXBzYy0xLnZyYWNrLnZzcGhlcmUubG9jYWwxGzAZBgNVBAsMElZNd2FyZSBFbmdpbmVlcmluZzAeFw0xODA3MDIxNDE1NTJaFw0yODA2MjcxMjIyMzlaMIGwMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTESMBAGA1UEBxMJUGFsbyBBbHRvMQ8wDQYDVQQKEwZWTXdhcmUxGzAZBgNVBAsTElZNd2FyZSBFbmdpbmVlcmluZzEqMCgGA1UEAxMhbG9hZC1iYWxhbmNlci52cmFjay52c3BoZXJlLmxvY2FsMR4wHAYJKoZIhvcNAQkBFg92bWNhQHZtd2FyZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC6FhbfALKIyfngf3K23IMfh0bDxEuL68CtuaL7MXUKiRIlWLZCsXijfxmwAxk1rVFdCDbLw25jss6JLSSt6t29cwoGhE5Ng6+47PnhmJ81n4MR3XFhXs/emr8Np4pk8pQmXafgILnCAbti8n3DqZuR3kkel7foyjgc6ZJ2B6gmlV3BiefqJwNXvtJ2teSsiRBnf0LaXVJcn2VZpEILgfh3tfgtGNqbGvS9vfIzl3rqZBvOWM+c5xhglM5myVd+YqKtRz0p0vjbq9eP0X2KmvxoN0g8rTildthM4mSuh7faeD7rK8hwQ03LTnKAQ8vSQ6dxFiInD6HbCoOILAlJCjWMdnZV4jocfHTwkWCiRX9seiulUYcl0Nuc4LgyJ4PWP3DFehuSCed3OTrCKLFcij9C/tZqffbl1vuw26vZZSm+ddoH6DiyoHWfRY7/a68n2/ouq4BRCYh9e6yktxVBMKDhD8fd0fSEfdP4sbD5VY+m3ETg5g/F3zKTUY19unlKPnLKy5oui+agY1fIzZL4cAoebcrfNdSRRefbf4Yy6Yyj0tA1FXCp2jnf+nac7122pFhJ7qCxdDPSQZf2/gwHZt5WXz4VA3A9VoBe9svD+njOFAzX4VNIi1phwAS63e2z5PF2rf0DJ8n77Fp1CyKPaug1R/sEt6dfUfpG7wBkAycc+wIDAQABo28wbTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIF4DAyBgNVHREEKzApgiFsb2FkLWJhbGFuY2VyLnZyYWNrLnZzcGhlcmUubG9jYWyHBAoAAA8wHwYDVR0jBBgwFoAUauWGErq+/JHwQ3qju9Ch8V2097MwDQYJKoZIhvcNAQELBQADggEBAMCvNCQ3KsvncoYK9fI0cfcBYEpFuToB+duK7yztklf8P6PLRSWdU39KaG+xv5768K+xe90riOYs0Mhcs0IuUQW2F6kCnlW3ff2R3pvTeM3kGqXclk4KGKRNnhhsF3Ze8QW3drH0dzD3vNcumdLr+GvG6vF2O/Pl3+Nn9dwE72ZVl7Ai970jJM5CVjI+wST19ZQPpq1E3aad3Bk+AQcQCIGputBGkHFZUGX4T6jPH0uDOcSRjH7v6TXhF2Cury7zme0zpWYwC4RMH/AxqK4z6DlmAwu2zycN097TMM/ZUXePmvgY7JSB5BIiY4ZxlnNbJy4756XDSBt41AaHxqWNcfs=-----END CERTIFICATE-----"
  }, {
    "version" : "V3",
    "serialNumber" : "f4:80:33:5f:e5:77:2a:f7",
    "issuedTo" : "sfo-m01-nsx01.rainpole.io",
    "issuedBy" : "OU=ISBU, O=VMware, L= Bangalore, ST=Karnataka, C=IN, CN=test1.openssl.eng.vmware.com",
    "notBefore" : "2019-07-25T07:38:55.000Z",
    "notAfter" : "2020-07-24T07:38:55.000Z",
    "signatureAlgorithm" : "SHA256withRSA",
    "subject" : "C=US, CN=sfo-m01-nsx01.rainpole.io",
    "subjectAlternativeName" : [ "sfo-m01-nsx01.rainpole.io" ],
    "publicKey" : "BA:16:16:DF:00:B2:88:C9:F9:E0:7F:72:B6:DC:83:1F:87:46:C3:C4:4B:8B:EB:C0:AD:B9:A2:FB:31:75:0A:89:12:25:58:B6:42:B1:78:A3:7F:19:B0:03:19:35:AD:51:5D:08:36:CB:C3:6E:63:B2:CE:89:2D:24:AD:EA:DD:BD:73:0A:06:84:4E:4D:83:AF:B8:EC:F9:E1:98:9F:35:9F:83:11:DD:71:61:5E:CF:DE:9A:BF:0D:A7:8A:64:F2:94:26:5D:A7:E0:20:B9:C2:01:BB:62:F2:7D:C3:A9:9B:91:DE:49:1E:97:B7:E8:CA:38:1C:E9:92:76:07:A8:26:95:5D:C1:89:E7:EA:27:03:57:BE:D2:76:B5:E4:AC:89:10:67:7F:42:DA:5D:52:5C:9F:65:59:A4:42:0B:81:F8:77:B5:F8:2D:18:DA:9B:1A:F4:BD:BD:F2:33:97:7A:EA:64:1B:CE:58:CF:9C:E7:18:60:94:CE:66:C9:57:7E:62:A2:AD:47:3D:29:D2:F8:DB:AB:D7:8F:D1:7D:8A:9A:FC:68:37:48:3C:AD:38:A5:76:D8:4C:E2:64:AE:87:B7:DA:78:3E:EB:2B:C8:70:43:4D:CB:4E:72:80:43:CB:D2:43:A7:71:16:22:27:0F:A1:DB:0A:83:88:2C:09:49:0A:35:8C:76:76:55:E2:3A:1C:7C:74:F0:91:60:A2:45:7F:6C:7A:2B:A5:51:87:25:D0:DB:9C:E0:B8:32:27:83:D6:3F:70:C5:7A:1B:92:09:E7:77:39:3A:C2:28:B1:5C:8A:3F:42:FE:D6:6A:7D:F6:E5:D6:FB:B0:DB:AB:D9:65:29:BE:75:DA:07:E8:38:B2:A0:75:9F:45:8E:FF:6B:AF:27:DB:FA:2E:AB:80:51:09:88:7D:7B:AC:A4:B7:15:41:30:A0:E1:0F:C7:DD:D1:F4:84:7D:D3:F8:B1:B0:F9:55:8F:A6:DC:44:E0:E6:0F:C5:DF:32:93:51:8D:7D:BA:79:4A:3E:72:CA:CB:9A:2E:8B:E6:A0:63:57:C8:CD:92:F8:70:0A:1E:6D:CA:DF:35:D4:91:45:E7:DB:7F:86:32:E9:8C:A3:D2:D0:35:15:70:A9:DA:39:DF:FA:76:9C:EF:5D:B6:A4:58:49:EE:A0:B1:74:33:D2:41:97:F6:FE:0C:07:66:DE:56:5F:3E:15:03:70:3D:56:80:5E:F6:CB:C3:FA:78:CE:14:0C:D7:E1:53:48:8B:5A:61:C0:04:BA:DD:ED:B3:E4:F1:76:AD:FD:03:27:C9:FB:EC:5A:75:0B:22:8F:6A:E8:35:47:FB:04:B7:A7:5F:51:FA:46:EF:00:64:03:27:1C:FB",
    "publicKeyAlgorithm" : "RSA",
    "keySize" : "2048",
    "thumbprintAlgorithm" : "SHA-256",
    "thumbprint" : "02:B1:D1:01:18:9F:07:39:E1:7C:94:BC:50:07:64:E8:45:8C:F8:73:3E:A9:23:BC:D2:BD:B1:17:E9:B3:C0:11",
    "numberOfDaysToExpire" : 365,
    "expirationStatus" : "ACTIVE",
    "pemEncoded" : "-----BEGIN CERTIFICATE-----MIIFRDCCBCygAwIBAgIJAOx9cA2cGcUUMA0GCSqGSIb3DQEBCwUAMIGgMQswCQYDVQQDDAJDQTEXMBUGCgmSJomT8ixkARkWB3ZzcGhlcmUxFTATBgoJkiaJk/IsZAEZFgVsb2NhbDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExIjAgBgNVBAoMGXBzYy0xLnZyYWNrLnZzcGhlcmUubG9jYWwxGzAZBgNVBAsMElZNd2FyZSBFbmdpbmVlcmluZzAeFw0xODA3MDIxNDE1NTJaFw0yODA2MjcxMjIyMzlaMIGwMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTESMBAGA1UEBxMJUGFsbyBBbHRvMQ8wDQYDVQQKEwZWTXdhcmUxGzAZBgNVBAsTElZNd2FyZSBFbmdpbmVlcmluZzEqMCgGA1UEAxMhbG9hZC1iYWxhbmNlci52cmFjay52c3BoZXJlLmxvY2FsMR4wHAYJKoZIhvcNAQkBFg92bWNhQHZtd2FyZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC6FhbfALKIyfngf3K23IMfh0bDxEuL68CtuaL7MXUKiRIlWLZCsXijfxmwAxk1rVFdCDbLw25jss6JLSSt6t29cwoGhE5Ng6+47PnhmJ81n4MR3XFhXs/emr8Np4pk8pQmXafgILnCAbti8n3DqZuR3kkel7foyjgc6ZJ2B6gmlV3BiefqJwNXvtJ2teSsiRBnf0LaXVJcn2VZpEILgfh3tfgtGNqbGvS9vfIzl3rqZBvOWM+c5xhglM5myVd+YqKtRz0p0vjbq9eP0X2KmvxoN0g8rTildthM4mSuh7faeD7rK8hwQ03LTnKAQ8vSQ6dxFiInD6HbCoOILAlJCjWMdnZV4jocfHTwkWCiRX9seiulUYcl0Nuc4LgyJ4PWP3DFehuSCed3OTrCKLFcij9C/tZqffbl1vuw26vZZSm+ddoH6DiyoHWfRY7/a68n2/ouq4BRCYh9e6yktxVBMKDhD8fd0fSEfdP4sbD5VY+m3ETg5g/F3zKTUY19unlKPnLKy5oui+agY1fIzZL4cAoebcrfNdSRRefbf4Yy6Yyj0tA1FXCp2jnf+nac7122pFhJ7qCxdDPSQZf2/gwHZt5WXz4VA3A9VoBe9svD+njOFAzX4VNIi1phwAS63e2z5PF2rf0DJ8n77Fp1CyKPaug1R/sEt6dfUfpG7wBkAycc+wIDAQABo28wbTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIF4DAyBgNVHREEKzApgiFsb2FkLWJhbGFuY2VyLnZyYWNrLnZzcGhlcmUubG9jYWyHBAoAAA8wHwYDVR0jBBgwFoAUauWGErq+/JHwQ3qju9Ch8V2097MwDQYJKoZIhvcNAQELBQADggEBAMCvNCQ3KsvncoYK9fI0cfcBYEpFuToB+duK7yztklf8P6PLRSWdU39KaG+xv5768K+xe90riOYs0Mhcs0IuUQW2F6kCnlW3ff2R3pvTeM3kGqXclk4KGKRNnhhsF3Ze8QW3drH0dzD3vNcumdLr+GvG6vF2O/Pl3+Nn9dwE72ZVl7Ai970jJM5CVjI+wST19ZQPpq1E3aad3Bk+AQcQCIGputBGkHFZUGX4T6jPH0uDOcSRjH7v6TXhF2Cury7zme0zpWYwC4RMH/AxqK4z6DlmAwu2zycN097TMM/ZUXePmvgY7JSB5BIiY4ZxlnNbJy4756XDSBt41AaHxqWNcfs=-----END CERTIFICATE-----"
  } ]
}
Warning
Certificate installation will replace the already installed certificates.
Note
The CSRs cannot be fetched or downloaded after successful certificate installation.
Note
Only the latest generated CSRs will exist in the VCF environment after a series of generate CSR operation.
Note
Only the latest uploaded certificates will exist in the VCF environment after a series of upload certificate operation.

2.29.3. Add trusted certificate to the SDDC Manager

Prerequisites
  1. VCF environment.

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/sddc-manager/trusted-certificates' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
  "certificate" : "-----BEGIN CERTIFICATE-----\n ... \n-----END CERTIFICATE-----",
  "certificateUsageType" : "TRUSTED_FOR_OUTBOUND"
}'
$ curl 'https://sfo-vcf01.rainpole.io/v1/sddc-manager/trusted-certificates' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
  "certificate" : "-----BEGIN CERTIFICATE-----\n ... \n-----END CERTIFICATE-----",
  "certificateUsageType" : "TRUSTED_FOR_INBOUND"
}'

HTTP Request

POST /v1/sddc-manager/trusted-certificates HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 136
Host: sfo-vcf01.rainpole.io

{
  "certificate" : "-----BEGIN CERTIFICATE-----\n ... \n-----END CERTIFICATE-----",
  "certificateUsageType" : "TRUSTED_FOR_OUTBOUND"
}
POST /v1/sddc-manager/trusted-certificates HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 135
Host: sfo-vcf01.rainpole.io

{
  "certificate" : "-----BEGIN CERTIFICATE-----\n ... \n-----END CERTIFICATE-----",
  "certificateUsageType" : "TRUSTED_FOR_INBOUND"
}

HTTP Response

HTTP/1.1 200 OK
HTTP/1.1 200 OK
  1. If the API response is 200 and CertificateUsageType is TRUSTED_FOR_OUTBOUND, then restart all the services as follows:

    • Using SSH, log in to the SDDC Manager VM with the following credentials:

      • Username: vcf

      • Password: use the password specified in the deployment parameter sheet

    • Enter su to switch to the root user.

    • Execute the following command:

      • sh /opt/vmware/vcf/operationsmanager/scripts/cli/sddcmanager_restart_services.sh

2.30. vCenters

2.30.1. Get a vCenter

Prerequisites
  1. The following data is required

    • ID of the vCenter

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/vcenters/c0703437-6756-470b-9e1c-f9d3bbc9b1c6' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/vcenters/c0703437-6756-470b-9e1c-f9d3bbc9b1c6 HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 226

{
  "id" : "c0703437-6756-470b-9e1c-f9d3bbc9b1c6",
  "fqdn" : "sfo-m01-vc01.rainpole.io",
  "ipAddress" : "10.0.0.6",
  "domain" : {
    "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c5"
  },
  "version" : "7.0.1.00000-16796246"
}

2.30.2. Get the vCenters

Prerequisites

None

Get All vCenters

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/vcenters' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/vcenters HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 510

{
  "elements" : [ {
    "id" : "c0703437-6756-470b-9e1c-f9d3bbc9b1c6",
    "fqdn" : "sfo-m01-vc01.rainpole.io",
    "ipAddress" : "10.0.0.6",
    "domain" : {
      "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c5"
    },
    "version" : "7.0.1.00000-16796246"
  }, {
    "id" : "c0703437-6846-470b-9e1c-f9d3bbc9b1c9",
    "fqdn" : "sfo-w01-vc01.rainpole.io",
    "ipAddress" : "10.0.0.20",
    "domain" : {
      "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c1"
    },
    "version" : "7.0.1.00000-16796246"
  } ]
}

2.30.3. Get vCenters for a domain

Prerequisites
  1. The following data is required

    • ID of the Domain

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/vcenters?domainId=c0703437-6746-470b-9e1c-f9d3bbc9b1c5' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/vcenters?domainId=c0703437-6746-470b-9e1c-f9d3bbc9b1c5 HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 265

{
  "elements" : [ {
    "id" : "c0703437-6756-470b-9e1c-f9d3bbc9b1c6",
    "fqdn" : "sfo-m01-vc01.rainpole.io",
    "ipAddress" : "10.0.0.6",
    "domain" : {
      "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c5"
    },
    "version" : "7.0.1.00000-16796246"
  } ]
}

2.31. NSX-T Clusters

2.31.1. Get an NSX-T Cluster

Prerequisites
  1. The following data is required

    • ID of the NSX-T Cluster

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/nsxt-clusters/d77231ad-bf61-4331-88f3-b52534d564ba' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/nsxt-clusters/d77231ad-bf61-4331-88f3-b52534d564ba HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 822

{
  "id" : "d77231ad-bf61-4331-88f3-b52534d564ba",
  "vipFqdn" : "sfo-w01-nsx01.sfo.rainpole.io",
  "vip" : "172.19.10.81",
  "domains" : [ {
    "id" : "5c6e4716-b069-4481-aa6e-4eca8bf5596a",
    "name" : "sfo-w01"
  } ],
  "nodes" : [ {
    "id" : "7d69b00d-6e5c-41a0-aa21-7152c6647c54",
    "fqdn" : "sfo-w01-nsx01a.sfo.rainpole.io",
    "ipAddress" : "172.19.10.84",
    "name" : "sfo-w01-nsx01a"
  }, {
    "id" : "c9662d07-fa06-41b9-8253-bbbe17251658",
    "fqdn" : "sfo-w01-nsx01b.sfo.rainpole.io",
    "ipAddress" : "172.19.10.83",
    "name" : "sfo-w01-nsx01b"
  }, {
    "id" : "39a6ca0b-5071-473f-8f45-e1aefeba371d",
    "fqdn" : "sfo-w01-nsx01c.sfo.rainpole.io",
    "ipAddress" : "172.19.10.82",
    "name" : "sfo-w01-nsx01c"
  } ],
  "isShared" : false,
  "isShareable" : true,
  "isVlcmCompatible" : false
}

2.31.2. Get the NSX-T Clusters

Prerequisites

None

Get All NSX-T Clusters

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/nsxt-clusters' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/nsxt-clusters HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 903

{
  "elements" : [ [ {
    "id" : "d77231ad-bf61-4331-88f3-b52534d564ba",
    "vipFqdn" : "sfo-w01-nsx01.sfo.rainpole.io",
    "vip" : "172.19.10.81",
    "domains" : [ {
      "id" : "5c6e4716-b069-4481-aa6e-4eca8bf5596a",
      "name" : "sfo-w01"
    } ],
    "nodes" : [ {
      "id" : "7d69b00d-6e5c-41a0-aa21-7152c6647c54",
      "fqdn" : "sfo-w01-nsx01a.sfo.rainpole.io",
      "ipAddress" : "172.19.10.84",
      "name" : "sfo-w01-nsx01a"
    }, {
      "id" : "c9662d07-fa06-41b9-8253-bbbe17251658",
      "fqdn" : "sfo-w01-nsx01b.sfo.rainpole.io",
      "ipAddress" : "172.19.10.83",
      "name" : "sfo-w01-nsx01b"
    }, {
      "id" : "39a6ca0b-5071-473f-8f45-e1aefeba371d",
      "fqdn" : "sfo-w01-nsx01c.sfo.rainpole.io",
      "ipAddress" : "172.19.10.82",
      "name" : "sfo-w01-nsx01c"
    } ],
    "isShared" : false,
    "isShareable" : true,
    "isVlcmCompatible" : false
  } ] ]
}

2.31.3. Get the NSX-T cluster(s) based on a Criterion

This API is used to get the NSX-T clusters that meets a specific criterion.

Prerequisites

None

Get the NSX-T cluster(s) based on a criterion

Steps
  1. Invoke the Get NSX-T Clusters Criterion API to list all the criteria supported.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/nsxt-clusters/criteria' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/nsxt-clusters/criteria HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 130

{
  "elements" : [ {
    "name" : "NSXT_CLUSTERS_WITH_STATUS",
    "description" : "Return the NSX-T clusters with status"
  } ]
}
  1. Pick one of the criterion and post a query

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/nsxt-clusters/queries' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "name" : "NSXT_CLUSTERS_WITH_STATUS"
}'

HTTP Request

POST /v1/nsxt-clusters/queries HTTP/1.1
Content-Type: application/json
Content-Length: 42
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "name" : "NSXT_CLUSTERS_WITH_STATUS"
}

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/nsxt-clusters/queries/8d44cc20-b751-4585-9872-0730f4a9d27d
Content-Type: application/json
Content-Length: 127

{
  "queryInfo" : {
    "status" : "IN_PROGRESS",
    "failure" : false,
    "completed" : false,
    "processing" : true
  }
}
  1. Read the tracking URL returned as Location header in the previous step.

  1. Poll the tracking URL until the "status" is not "IN_PROGRESS".

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/nsxt-clusters/queries/23abc8bc-4981-4006-bf2d-5f0b9467ab79' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/nsxt-clusters/queries/23abc8bc-4981-4006-bf2d-5f0b9467ab79 HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1164

{
  "queryInfo" : {
    "status" : "COMPLETED",
    "failure" : false,
    "completed" : true,
    "processing" : false
  },
  "result" : {
    "elements" : [ {
      "id" : "d77231ad-bf61-4331-88f3-b52534d564ba",
      "vipFqdn" : "sfo-w01-nsx01.sfo.rainpole.io",
      "vip" : "172.19.10.81",
      "domains" : [ {
        "id" : "5c6e4716-b069-4481-aa6e-4eca8bf5596a",
        "name" : "sfo-w01"
      } ],
      "nodes" : [ {
        "id" : "7d69b00d-6e5c-41a0-aa21-7152c6647c54",
        "fqdn" : "sfo-w01-nsx01a.sfo.rainpole.io",
        "ipAddress" : "172.19.10.84",
        "name" : "sfo-w01-nsx01a"
      }, {
        "id" : "c9662d07-fa06-41b9-8253-bbbe17251658",
        "fqdn" : "sfo-w01-nsx01b.sfo.rainpole.io",
        "ipAddress" : "172.19.10.83",
        "name" : "sfo-w01-nsx01b"
      }, {
        "id" : "39a6ca0b-5071-473f-8f45-e1aefeba371d",
        "fqdn" : "sfo-w01-nsx01c.sfo.rainpole.io",
        "ipAddress" : "172.19.10.82",
        "name" : "sfo-w01-nsx01c"
      } ],
      "version" : "3.1.2.0.0-17645047",
      "isShared" : false,
      "isShareable" : true,
      "isVlcmCompatible" : false,
      "status" : "STABLE"
    } ]
  }
}

2.31.4. Get an IP address pool from the NSX-T cluster

Prerequisites
  1. The following data is required

    • ID of the NSX-T Cluster

    • Name of the IP address pool

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/nsxt-clusters/5b4ef9bd-0bd2-4805-a3db-735446c1bdfd/ip-address-pools/static-ip-pool-01' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/nsxt-clusters/5b4ef9bd-0bd2-4805-a3db-735446c1bdfd/ip-address-pools/static-ip-pool-01 HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 387

{
  "name" : "static-ip-pool-01",
  "availableIpAddresses" : 31,
  "totalIpAddresses" : 37,
  "blockSubnets" : [ {
    "size" : 16,
    "gatewayAssigned" : true,
    "cidr" : "10.0.15.0/24"
  } ],
  "staticSubnets" : [ {
    "ipAddressPoolRanges" : [ {
      "start" : "10.0.12.100",
      "end" : "10.0.12.120"
    } ],
    "gateway" : "10.0.12.250",
    "cidr" : "10.0.12.0/24"
  } ]
}

2.31.5. Get the IP address pools from the NSX-T cluster

Prerequisites
  1. The following data is required

    • ID of the NSX-T Cluster

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/nsxt-clusters/1897cc4a-645f-42db-814b-8098e583e577/ip-address-pools' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/nsxt-clusters/1897cc4a-645f-42db-814b-8098e583e577/ip-address-pools HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 444

{
  "elements" : [ {
    "name" : "static-ip-pool-01",
    "availableIpAddresses" : 31,
    "totalIpAddresses" : 37,
    "blockSubnets" : [ {
      "size" : 16,
      "gatewayAssigned" : true,
      "cidr" : "10.0.15.0/24"
    } ],
    "staticSubnets" : [ {
      "ipAddressPoolRanges" : [ {
        "start" : "10.0.12.100",
        "end" : "10.0.12.120"
      } ],
      "gateway" : "10.0.12.250",
      "cidr" : "10.0.12.0/24"
    } ]
  } ]
}

2.32. Platform Service Controllers

2.32.1. Get a PSC

Prerequisites
  1. The following data is required

    • ID of the PSC

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/pscs/6e9f56aa-4afb-4101-91a0-1b011fab6241' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/pscs/6e9f56aa-4afb-4101-91a0-1b011fab6241 HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 284

{
  "id" : "6e9f56aa-4afb-4101-91a0-1b011fab6241",
  "fqdn" : "sfo-m01-vc01.rainpole.io",
  "ipAddress" : "10.0.0.6",
  "ssoDomainName" : "rainpole.io",
  "ssoSubDomainName" : "rainpole.io",
  "isReplica" : false,
  "domain" : {
    "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c5"
  }
}

2.32.2. Get the PSCs

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/pscs' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/pscs HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 327

{
  "elements" : [ {
    "id" : "6e9f56aa-4afb-4101-91a0-1b011fab6241",
    "fqdn" : "sfo-m01-vc01.rainpole.io",
    "ipAddress" : "10.0.0.6",
    "ssoDomainName" : "rainpole.io",
    "ssoSubDomainName" : "rainpole.io",
    "isReplica" : false,
    "domain" : {
      "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c5"
    }
  } ]
}

2.33. SDDC Managers

2.33.1. Get an SDDC Manager

Prerequisites
  1. The following data is required

    • ID of the SDDC Manager

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/sddc-managers/ebb0944f-3b86-4872-9afa-2e80ce814c8f' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/sddc-managers/ebb0944f-3b86-4872-9afa-2e80ce814c8f HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 219

{
  "domain" : {
    "id" : "d1f91ef5-dfa2-48e7-adde-cd37b0aa7911"
  },
  "id" : "ebb0944f-3b86-4872-9afa-2e80ce814c8f",
  "fqdn" : "sfo-vcf01.rainpole.io",
  "version" : "3.9.0.0-14713675",
  "ipAddress" : "10.0.0.4"
}

2.33.2. Get the SDDC Managers

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/sddc-managers' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/sddc-managers HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 258

{
  "elements" : [ {
    "domain" : {
      "id" : "d1f91ef5-dfa2-48e7-adde-cd37b0aa7911"
    },
    "id" : "ebb0944f-3b86-4872-9afa-2e80ce814c8f",
    "fqdn" : "sfo-vcf01.rainpole.io",
    "version" : "3.9.0.0-14713675",
    "ipAddress" : "10.0.0.4"
  } ]
}
Note
This API currently returns a singleton list which has the current SDDC Manager. It is meant to be future ready in such cases where multiple SDDC Managers can be returned, for example in the federated environments having multiple SDDC Managers.

2.34. VCF Services

2.34.1. Get a VCF Service

Prerequisites
  1. The following data is required

    • ID of the VCF Service

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/vcf-services/bc0debfe-bd38-453a-822d-fdd012fbd0b2' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/vcf-services/bc0debfe-bd38-453a-822d-fdd012fbd0b2 HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 131

{
  "id" : "bc0debfe-bd38-453a-822d-fdd012fbd0b2",
  "name" : "COMMON_SERVICES",
  "version" : "3.8.2-RELEASE",
  "status" : "UP"
}

2.34.2. Get the VCF Services

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/vcf-services' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/vcf-services HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 870

{
  "elements" : [ {
    "id" : "bc0debfe-bd38-453a-822d-fdd012fbd0b2",
    "name" : "COMMON_SERVICES",
    "version" : "3.8.2-RELEASE",
    "status" : "UP"
  }, {
    "id" : "174ca011-0f17-48ec-a4cb-8fc3d35149bd",
    "name" : "DOMAIN_MANAGER",
    "version" : "3.8.2-RELEASE",
    "status" : "UP"
  }, {
    "id" : "8c64a3f9-fa12-4d00-ba19-9fe747e2bda",
    "name" : "OPERATIONS_MANAGER",
    "version" : "3.8.2-RELEASE",
    "status" : "UP"
  }, {
    "id" : "8bd696dc-958a-482a-9747-4f4e172a3005",
    "name" : "LCM",
    "version" : "3.8.2-RELEASE",
    "status" : "UP"
  }, {
    "id" : "9294a99d-8755-4298-9fb6-a255ab6a12f4",
    "name" : "SDDC_MANAGER_UI",
    "version" : "3.8.2-RELEASE",
    "status" : "UP"
  }, {
    "id" : "20f1f50f-8e50-4f19-9fd0-3472330b0fb2",
    "name" : "SOLUTIONS_MANAGER",
    "version" : "3.8.2-RELEASE",
    "status" : "UP"
  } ]
}

2.35. DNS Configuration

2.35.1. Configuration of New DNS Server

Prerequisites
  1. The new DNS server to be configured should be reachable from SDDC components.

  2. DNS resolution (forward and reverse lookup) for all management VMs and ESXi hosts in place

  3. All SDDC components should be reachable from SDDC manager.

  4. All SDDC components state should be "ACTIVE" in VCF inventory.

Steps
  1. Validate the DnsConfiguration input before configuration.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/system/dns-configuration/validations' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "dnsServers" : [ {
    "ipAddress" : "10.0.0.250",
    "isPrimary" : true
  } ]
}'

HTTP Request

POST /v1/system/dns-configuration/validations HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 85
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "dnsServers" : [ {
    "ipAddress" : "10.0.0.250",
    "isPrimary" : true
  } ]
}

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/system/dns-configuration/validations/71653367-2ea8-49f2-bf72-0e0e1fa57dcd
Content-Type: application/json
Content-Length: 407

{
  "id" : "71653367-2ea8-49f2-bf72-0e0e1fa57dcd",
  "description" : "Validate input specification as new NtpConfiguration to VMware Cloud Foundations",
  "executionStatus" : "IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "Validating NTP input specification",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "Validating NTP server 10.0.0.250",
    "resultStatus" : "UNKNOWN"
  } ]
}
  1. Poll until "executionStatus" is not "IN_PROGRESS" using the "id" from the previous response.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/system/dns-configuration/validations/71653367-2ea8-49f2-bf72-0e0e1fa57dcd' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/system/dns-configuration/validations/71653367-2ea8-49f2-bf72-0e0e1fa57dcd HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 407

{
  "id" : "71653367-2ea8-49f2-bf72-0e0e1fa57dcd",
  "description" : "Validate input specification as new NtpConfiguration to VMware Cloud Foundations",
  "executionStatus" : "IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "Validating NTP input specification",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "Validating NTP server 10.0.0.250",
    "resultStatus" : "UNKNOWN"
  } ]
}
  1. In case of no errors in the validation , the "executionStatus" is "COMPLETED" and "resultStatus" is "SUCCEEDED".

  2. In case of errors in the input specification, the "executionStatus" is "COMPLETED" and "resultStatus" is "FAILED".

Note
Make changes to the input specification and re-validate using a new API invocation.
  1. Trigger the task using the valid input specification.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/system/dns-configuration' -i -X PUT \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "dnsServers" : [ {
    "ipAddress" : "10.0.0.250",
    "isPrimary" : true
  } ]
}'

HTTP Request

PUT /v1/system/dns-configuration HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 85
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "dnsServers" : [ {
    "ipAddress" : "10.0.0.250",
    "isPrimary" : true
  } ]
}

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/tasks/f0da79cd-6f5c-4118-95cc-e56af204e4cd
Content-Type: application/json
Content-Length: 131

{
  "id" : "f0da79cd-6f5c-4118-95cc-e56af204e4cd",
  "name" : "Configuring DNS servers on VCF system",
  "status" : "IN_PROGRESS"
}
  1. Poll the task until "status" is not "IN_PROGRESS" using the "id" from the previous response.

Tip
Refer to: Get a Task.
  • If the "status" is "SUCCESSFUL", the task is completed successfully.

  • If the "status" is "FAILED", the task can be re-executed.

Tip
Refer to: Retry a Task.
  1. Get the DnsConfiguration state.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/system/dns-configuration' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/system/dns-configuration HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 85

{
  "dnsServers" : [ {
    "ipAddress" : "10.0.0.250",
    "isPrimary" : true
  } ]
}

2.36. NTP Configuration

2.36.1. Configuration of New NTP Server

Prerequisites
  1. The new NTP server(s) to be configured should be reachable from SDDC components.

  2. The new NTP server(s) should be able to do NTP sync from SDDC Manager.

  3. All SDDC components should be reachable from SDDC manager.

  4. All SDDC components state should be active as per SDDC Manager.

  5. The new server should be NTP synced from the SDDC Manager.

Steps
  1. Perform the validation step for the desired NTP configuration before applying the same.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/system/ntp-configuration/validations' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "ntpServers" : [ {
    "ipAddress" : "10.0.0.250"
  } ]
}'

HTTP Request

POST /v1/system/ntp-configuration/validations HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 61
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "ntpServers" : [ {
    "ipAddress" : "10.0.0.250"
  } ]
}

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/system/ntp-configuration/validations/71653367-2ea8-49f2-bf72-0e0e1fa57dcd
Content-Type: application/json
Content-Length: 407

{
  "id" : "71653367-2ea8-49f2-bf72-0e0e1fa57dcd",
  "description" : "Validate input specification as new NtpConfiguration to VMware Cloud Foundations",
  "executionStatus" : "IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "Validating NTP input specification",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "Validating NTP server 10.0.0.250",
    "resultStatus" : "UNKNOWN"
  } ]
}
  1. Poll until "executionStatus" is not "IN_PROGRESS" using the "id" from the previous response.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/system/ntp-configuration/validations/71653367-2ea8-49f2-bf72-0e0e1fa57dcd' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/system/ntp-configuration/validations/71653367-2ea8-49f2-bf72-0e0e1fa57dcd HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 407

{
  "id" : "71653367-2ea8-49f2-bf72-0e0e1fa57dcd",
  "description" : "Validate input specification as new NtpConfiguration to VMware Cloud Foundations",
  "executionStatus" : "IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "Validating NTP input specification",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "Validating NTP server 10.0.0.250",
    "resultStatus" : "UNKNOWN"
  } ]
}
  1. In case of no errors in the validation , the "executionStatus" is "COMPLETED" and "resultStatus" is "SUCCEEDED".

  1. In case of errors in the input specification, the "executionStatus" is "COMPLETED" and "resultStatus" is "FAILED".

Note
Make changes to the input specification and re-validate using a new API invocation.
  1. As the Validation is complete now, perform the NTP configuration using the valid input specification.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/system/ntp-configuration' -i -X PUT \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "ntpServers" : [ {
    "ipAddress" : "10.0.0.250"
  } ]
}'

HTTP Request

PUT /v1/system/ntp-configuration HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 61
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "ntpServers" : [ {
    "ipAddress" : "10.0.0.250"
  } ]
}

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/tasks/28d3f5ae-8072-4b83-ac99-b18d465485bc
Content-Type: application/json
Content-Length: 131

{
  "id" : "28d3f5ae-8072-4b83-ac99-b18d465485bc",
  "name" : "Configuring NTP servers on VCF system",
  "status" : "IN_PROGRESS"
}
  1. Poll the task until "status" is not "IN_PROGRESS" using the "id" from the previous response.

Tip
Refer to: Get a Task.
  • If the "status" is "SUCCESSFUL", the task is completed successfully.

  • If the "status" is "FAILED", the task can be re-executed.

Tip
Refer to: Retry a Task.
  1. Get the DnsConfiguration state

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/system/ntp-configuration' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/system/ntp-configuration HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 61

{
  "ntpServers" : [ {
    "ipAddress" : "10.0.0.250"
  } ]
}

2.37. Edge Clusters

2.37.1. Validate Edge Cluster

Prerequisites

Complete the required prerequisites before invoking the API.

  • Separate VLANs and subnets are available for Host TEP VLAN and Edge TEP VLAN use

  • Host TEP VLAN and Edge TEP VLAN need to be routed

  • If dynamic routing is desired, please set up two BGP peers (on TORs or infra ESG) with an interface IP, ASN and BGP password

  • Reserve an ASN to use for the NSX Edge cluster’s Tier-0 interfaces

  • DNS entries for NSX Edge components should be populated in customer managed DNS server

  • The vSphere clusters hosting the Edge clusters should be L2 Uniform. All hosts in a hosting vSphere cluster need to have identical management, uplink, Edge and host TEP networks

  • The vSphere clusters hosting the Edge nodes must have the same pNIC speed for NSX enabled VDS uplinks chosen for Edge overlay (e.g., either 10G or 25G but not both)

  • All nodes of an NSX Edge cluster must use the same set of NSX enabled VDS uplinks. The selected uplinks must be prepared for overlay use

The following data is required for the Validate an Edge Cluster spec:

  • Edge cluster name

  • Maximum transmission unit

  • ASN to be used for the edge cluster

  • Edge cluster profile type, for example: DEFAULT, CUSTOM

  • Edge cluster type, for example: NSX-T

  • Edge cluster form factor, for example: SMALL, MEDIUM, LARGE

  • Edge cluster profile spec, refer to: NsxTEdgeClusterProfileSpec

  • Edge Node specs, refer to: NsxTEdgeNodeSpec

  • Name for the Tier-0 router

  • Tier-0 routing type, for example: EBGP, STATIC

  • High-Availability mode for Tier-0 router, for example: ACTIVE_ACTIVE, ACTIVE_STANDBY

  • Name for the Tier-1 router

Tip
Refer to: EdgeClusterCreationSpec.
Steps
  1. Validate the input specification using Validate an Edge Cluster spec.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/edge-clusters/validations' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "edgeClusterName" : "sfo-w01-cl01-edge",
  "edgeClusterType" : "NSX-T",
  "edgeRootPassword" : "Acme123!Acme123!",
  "edgeAdminPassword" : "Acme123!Acme123!",
  "edgeAuditPassword" : "Acme123!Acme123!",
  "edgeFormFactor" : "MEDIUM",
  "tier0ServicesHighAvailability" : "ACTIVE_ACTIVE",
  "mtu" : 9000,
  "asn" : 65003,
  "edgeNodeSpecs" : [ {
    "edgeNodeName" : "sfo-m01-en01.rainpole.io",
    "managementIP" : "10.0.0.50/24",
    "managementGateway" : "10.0.0.250",
    "edgeTepGateway" : "192.168.52.1",
    "edgeTep1IP" : "192.168.52.10/24",
    "edgeTep2IP" : "192.168.52.11/24",
    "edgeTepVlan" : 1252,
    "clusterId" : "d1052c9c-6973-4e32-8034-06e7fa71e83c",
    "interRackCluster" : false,
    "uplinkNetwork" : [ {
      "uplinkVlan" : 2081,
      "uplinkInterfaceIP" : "192.168.16.2/24",
      "peerIP" : "192.168.16.10/24",
      "asnPeer" : 65001,
      "bgpPeerPassword" : "Acme1!"
    }, {
      "uplinkVlan" : 2082,
      "uplinkInterfaceIP" : "192.168.17.2/24",
      "peerIP" : "192.168.17.10/24",
      "asnPeer" : 65001,
      "bgpPeerPassword" : "Acme1!"
    } ]
  }, {
    "edgeNodeName" : "sfo-m01-en02.rainpole.io",
    "managementIP" : "10.0.0.51/24",
    "managementGateway" : "10.0.0.250",
    "edgeTepGateway" : "192.168.52.1",
    "edgeTep1IP" : "192.168.52.12/24",
    "edgeTep2IP" : "192.168.52.13/24",
    "edgeTepVlan" : 1252,
    "clusterId" : "d1052c9c-6973-4e32-8034-06e7fa71e83c",
    "interRackCluster" : false,
    "uplinkNetwork" : [ {
      "uplinkVlan" : 2081,
      "uplinkInterfaceIP" : "192.168.16.3/24",
      "peerIP" : "192.168.16.10/24",
      "asnPeer" : 65001,
      "bgpPeerPassword" : "Acme1!"
    }, {
      "uplinkVlan" : 2082,
      "uplinkInterfaceIP" : "192.168.17.3/24",
      "peerIP" : "192.168.17.10/24",
      "asnPeer" : 65001,
      "bgpPeerPassword" : "Acme1!"
    } ]
  } ],
  "tier0RoutingType" : "EBGP",
  "tier0Name" : "Acme-Tier0",
  "tier1Name" : "Acme-Tier1",
  "edgeClusterProfileType" : "DEFAULT"
}'

HTTP Request

POST /v1/edge-clusters/validations HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 1981
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "edgeClusterName" : "sfo-w01-cl01-edge",
  "edgeClusterType" : "NSX-T",
  "edgeRootPassword" : "Acme123!Acme123!",
  "edgeAdminPassword" : "Acme123!Acme123!",
  "edgeAuditPassword" : "Acme123!Acme123!",
  "edgeFormFactor" : "MEDIUM",
  "tier0ServicesHighAvailability" : "ACTIVE_ACTIVE",
  "mtu" : 9000,
  "asn" : 65003,
  "edgeNodeSpecs" : [ {
    "edgeNodeName" : "sfo-m01-en01.rainpole.io",
    "managementIP" : "10.0.0.50/24",
    "managementGateway" : "10.0.0.250",
    "edgeTepGateway" : "192.168.52.1",
    "edgeTep1IP" : "192.168.52.10/24",
    "edgeTep2IP" : "192.168.52.11/24",
    "edgeTepVlan" : 1252,
    "clusterId" : "d1052c9c-6973-4e32-8034-06e7fa71e83c",
    "interRackCluster" : false,
    "uplinkNetwork" : [ {
      "uplinkVlan" : 2081,
      "uplinkInterfaceIP" : "192.168.16.2/24",
      "peerIP" : "192.168.16.10/24",
      "asnPeer" : 65001,
      "bgpPeerPassword" : "Acme1!"
    }, {
      "uplinkVlan" : 2082,
      "uplinkInterfaceIP" : "192.168.17.2/24",
      "peerIP" : "192.168.17.10/24",
      "asnPeer" : 65001,
      "bgpPeerPassword" : "Acme1!"
    } ]
  }, {
    "edgeNodeName" : "sfo-m01-en02.rainpole.io",
    "managementIP" : "10.0.0.51/24",
    "managementGateway" : "10.0.0.250",
    "edgeTepGateway" : "192.168.52.1",
    "edgeTep1IP" : "192.168.52.12/24",
    "edgeTep2IP" : "192.168.52.13/24",
    "edgeTepVlan" : 1252,
    "clusterId" : "d1052c9c-6973-4e32-8034-06e7fa71e83c",
    "interRackCluster" : false,
    "uplinkNetwork" : [ {
      "uplinkVlan" : 2081,
      "uplinkInterfaceIP" : "192.168.16.3/24",
      "peerIP" : "192.168.16.10/24",
      "asnPeer" : 65001,
      "bgpPeerPassword" : "Acme1!"
    }, {
      "uplinkVlan" : 2082,
      "uplinkInterfaceIP" : "192.168.17.3/24",
      "peerIP" : "192.168.17.10/24",
      "asnPeer" : 65001,
      "bgpPeerPassword" : "Acme1!"
    } ]
  } ],
  "tier0RoutingType" : "EBGP",
  "tier0Name" : "Acme-Tier0",
  "tier1Name" : "Acme-Tier1",
  "edgeClusterProfileType" : "DEFAULT"
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Content-Length: 3402

{
  "id" : "eba76474-2a24-4864-a2e4-fd9c334f0051",
  "description" : "@@Validating NSX Edge cluster creation spec@@",
  "executionStatus" : "IN_PROGRESS",
  "resultStatus" : "UNKNOWN",
  "validationChecks" : [ {
    "description" : "@@Check for Edge management IP to Edge node FQDN resolution@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Two unique uplink interfaces per Edge node@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Check that Tier-1 with the same name does not exist@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Validate the specified NSX enabled VDS uplinks are prepared for Edge overlay@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Check vSphere cluster has all hosts with a vCPU count and RAM size to accommodate the selected Edge form factor@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Validate that IPs are in the same subnet@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Unique Edge TEP IPs for Edge nodes@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Check for duplicates: Duplicate Edge cluster name@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Check that management networks are reachable@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Edge cluster password(s) is not meeting NSX password policy standard@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Validate that TEP IPs, gateway, and management IP, gateway are in the same subnet@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Check that Edge cluster with the same name does not exist in NSX Manager@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Validate that the specified IP addresses in the input spec do not conflict with the Tier-0 transit subnets@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Check that the custom Edge cluster profile does not conflict with an existing profile@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Check that Edge node FQDNs are unique@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Check for L2 Non-uniform and L3 cluster@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Validate all vCenter clusters are not stretched@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Check for IP conflict for Edge management IP, Edge TEP IPs, Tier-0 uplink interface IPs@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Check that Tier-0 with the same name does not exist@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@The vSphere cluster(s) hosting the Edge cluster belong to the same workload domain@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Check that uplink VLANs are valid@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Capacity check for hosting vSphere cluster(s)@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Check routing between Host TEP VLAN and Edge TEP VLAN@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Validate each Edge node's VLAN is consistent per vSphere cluster@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Check for unique IPs for Edge management IP, Edge TEP IPs, Tier-0 uplink interface IPs@@",
    "resultStatus" : "UNKNOWN"
  } ]
}
  1. Poll the status of the validation using the validation API with the ID from the response of the previous API.

2.37.2. Get Edge Cluster Validation

Prerequisites

The following data is required for the Get the Edge Cluster spec validation.

  • ID of the Edge Cluster Validation

Steps

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/edge-clusters/validations/a9b5513e-9798-475a-803b-92dae8625d74' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/edge-clusters/validations/a9b5513e-9798-475a-803b-92dae8625d74 HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 3402

{
  "id" : "a9b5513e-9798-475a-803b-92dae8625d74",
  "description" : "@@Validating NSX Edge cluster creation spec@@",
  "executionStatus" : "IN_PROGRESS",
  "resultStatus" : "UNKNOWN",
  "validationChecks" : [ {
    "description" : "@@Check for Edge management IP to Edge node FQDN resolution@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Two unique uplink interfaces per Edge node@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Check that Tier-1 with the same name does not exist@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Validate the specified NSX enabled VDS uplinks are prepared for Edge overlay@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Check vSphere cluster has all hosts with a vCPU count and RAM size to accommodate the selected Edge form factor@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Validate that IPs are in the same subnet@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Unique Edge TEP IPs for Edge nodes@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Check for duplicates: Duplicate Edge cluster name@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Check that management networks are reachable@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Edge cluster password(s) is not meeting NSX password policy standard@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Validate that TEP IPs, gateway, and management IP, gateway are in the same subnet@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Check that Edge cluster with the same name does not exist in NSX Manager@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Validate that the specified IP addresses in the input spec do not conflict with the Tier-0 transit subnets@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Check that the custom Edge cluster profile does not conflict with an existing profile@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Check that Edge node FQDNs are unique@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Check for L2 Non-uniform and L3 cluster@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Validate all vCenter clusters are not stretched@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Check for IP conflict for Edge management IP, Edge TEP IPs, Tier-0 uplink interface IPs@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Check that Tier-0 with the same name does not exist@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@The vSphere cluster(s) hosting the Edge cluster belong to the same workload domain@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Check that uplink VLANs are valid@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Capacity check for hosting vSphere cluster(s)@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Check routing between Host TEP VLAN and Edge TEP VLAN@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Validate each Edge node's VLAN is consistent per vSphere cluster@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Check for unique IPs for Edge management IP, Edge TEP IPs, Tier-0 uplink interface IPs@@",
    "resultStatus" : "UNKNOWN"
  } ]
}

2.37.3. Create Edge Cluster

Prerequisites

Complete the required prerequisites before invoking the API.

  • Separate VLANs and subnets are available for Host TEP VLAN and Edge TEP VLAN use

  • Host TEP VLAN and Edge TEP VLAN need to be routed

  • If dynamic routing is desired, please set up two BGP peers (on TORs or infra ESG) with an interface IP, ASN and BGP password

  • Reserve an ASN to use for the NSX Edge cluster’s Tier-0 interfaces

  • DNS entries for NSX Edge components should be populated in customer managed DNS server

  • The vSphere clusters hosting the Edge clusters should be L2 Uniform. All hosts in a hosting vSphere cluster need to have identical management, uplink, Edge and host TEP networks

  • The vSphere clusters hosting the Edge nodes must have the same pNIC speed for NSX enabled VDS uplinks chosen for Edge overlay (e.g., either 10G or 25G but not both)

  • All nodes of an NSX Edge cluster must use the same set of NSX enabled VDS uplinks. The selected uplinks must be prepared for overlay use

The following data is required for the Create an Edge Cluster:

  • Edge cluster name

  • Maximum transmission unit

  • ASN to be used for the edge cluster

  • Edge cluster profile type, for example: DEFAULT, CUSTOM

  • Edge cluster type, for example: NSX-T

  • Edge cluster form factor, for example: SMALL, MEDIUM, LARGE

  • Edge cluster profile spec, refer to: NsxTEdgeClusterProfileSpec

  • Edge Node specs, refer to: NsxTEdgeNodeSpec

  • Name for the Tier-0 router

  • Tier-0 routing type, for example: EBGP, STATIC

  • High-Availability mode for Tier-0 router, for example: ACTIVE_ACTIVE, ACTIVE_STANDBY

  • Name for the Tier-1 router

Tip
Refer to: EdgeClusterCreationSpec.
Steps
  1. Invoke the Create an Edge Cluster. This API returns a task which can be polled and monitored.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/edge-clusters' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "edgeClusterName" : "sfo-w01-cl01-edge",
  "edgeClusterType" : "NSX-T",
  "edgeRootPassword" : "Acme123!Acme123!",
  "edgeAdminPassword" : "Acme123!Acme123!",
  "edgeAuditPassword" : "Acme123!Acme123!",
  "edgeFormFactor" : "MEDIUM",
  "tier0ServicesHighAvailability" : "ACTIVE_ACTIVE",
  "mtu" : 9000,
  "asn" : 65003,
  "edgeNodeSpecs" : [ {
    "edgeNodeName" : "sfo-m01-en01.rainpole.io",
    "managementIP" : "10.0.0.50/24",
    "managementGateway" : "10.0.0.250",
    "edgeTepGateway" : "192.168.52.1",
    "edgeTep1IP" : "192.168.52.10/24",
    "edgeTep2IP" : "192.168.52.11/24",
    "edgeTepVlan" : 1252,
    "clusterId" : "d1052c9c-6973-4e32-8034-06e7fa71e83c",
    "interRackCluster" : false,
    "uplinkNetwork" : [ {
      "uplinkVlan" : 2081,
      "uplinkInterfaceIP" : "192.168.16.2/24",
      "peerIP" : "192.168.16.10/24",
      "asnPeer" : 65001,
      "bgpPeerPassword" : "Acme1!"
    }, {
      "uplinkVlan" : 2082,
      "uplinkInterfaceIP" : "192.168.17.2/24",
      "peerIP" : "192.168.17.10/24",
      "asnPeer" : 65001,
      "bgpPeerPassword" : "Acme1!"
    } ]
  }, {
    "edgeNodeName" : "sfo-m01-en02.rainpole.io",
    "managementIP" : "10.0.0.51/24",
    "managementGateway" : "10.0.0.250",
    "edgeTepGateway" : "192.168.52.1",
    "edgeTep1IP" : "192.168.52.12/24",
    "edgeTep2IP" : "192.168.52.13/24",
    "edgeTepVlan" : 1252,
    "clusterId" : "d1052c9c-6973-4e32-8034-06e7fa71e83c",
    "interRackCluster" : false,
    "uplinkNetwork" : [ {
      "uplinkVlan" : 2081,
      "uplinkInterfaceIP" : "192.168.16.3/24",
      "peerIP" : "192.168.16.10/24",
      "asnPeer" : 65001,
      "bgpPeerPassword" : "Acme1!"
    }, {
      "uplinkVlan" : 2082,
      "uplinkInterfaceIP" : "192.168.17.3/24",
      "peerIP" : "192.168.17.10/24",
      "asnPeer" : 65001,
      "bgpPeerPassword" : "Acme1!"
    } ]
  } ],
  "tier0RoutingType" : "EBGP",
  "tier0Name" : "Acme-Tier0",
  "tier1Name" : "Acme-Tier1",
  "edgeClusterProfileType" : "DEFAULT"
}'

HTTP Request

POST /v1/edge-clusters HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 1981
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "edgeClusterName" : "sfo-w01-cl01-edge",
  "edgeClusterType" : "NSX-T",
  "edgeRootPassword" : "Acme123!Acme123!",
  "edgeAdminPassword" : "Acme123!Acme123!",
  "edgeAuditPassword" : "Acme123!Acme123!",
  "edgeFormFactor" : "MEDIUM",
  "tier0ServicesHighAvailability" : "ACTIVE_ACTIVE",
  "mtu" : 9000,
  "asn" : 65003,
  "edgeNodeSpecs" : [ {
    "edgeNodeName" : "sfo-m01-en01.rainpole.io",
    "managementIP" : "10.0.0.50/24",
    "managementGateway" : "10.0.0.250",
    "edgeTepGateway" : "192.168.52.1",
    "edgeTep1IP" : "192.168.52.10/24",
    "edgeTep2IP" : "192.168.52.11/24",
    "edgeTepVlan" : 1252,
    "clusterId" : "d1052c9c-6973-4e32-8034-06e7fa71e83c",
    "interRackCluster" : false,
    "uplinkNetwork" : [ {
      "uplinkVlan" : 2081,
      "uplinkInterfaceIP" : "192.168.16.2/24",
      "peerIP" : "192.168.16.10/24",
      "asnPeer" : 65001,
      "bgpPeerPassword" : "Acme1!"
    }, {
      "uplinkVlan" : 2082,
      "uplinkInterfaceIP" : "192.168.17.2/24",
      "peerIP" : "192.168.17.10/24",
      "asnPeer" : 65001,
      "bgpPeerPassword" : "Acme1!"
    } ]
  }, {
    "edgeNodeName" : "sfo-m01-en02.rainpole.io",
    "managementIP" : "10.0.0.51/24",
    "managementGateway" : "10.0.0.250",
    "edgeTepGateway" : "192.168.52.1",
    "edgeTep1IP" : "192.168.52.12/24",
    "edgeTep2IP" : "192.168.52.13/24",
    "edgeTepVlan" : 1252,
    "clusterId" : "d1052c9c-6973-4e32-8034-06e7fa71e83c",
    "interRackCluster" : false,
    "uplinkNetwork" : [ {
      "uplinkVlan" : 2081,
      "uplinkInterfaceIP" : "192.168.16.3/24",
      "peerIP" : "192.168.16.10/24",
      "asnPeer" : 65001,
      "bgpPeerPassword" : "Acme1!"
    }, {
      "uplinkVlan" : 2082,
      "uplinkInterfaceIP" : "192.168.17.3/24",
      "peerIP" : "192.168.17.10/24",
      "asnPeer" : 65001,
      "bgpPeerPassword" : "Acme1!"
    } ]
  } ],
  "tier0RoutingType" : "EBGP",
  "tier0Name" : "Acme-Tier0",
  "tier1Name" : "Acme-Tier1",
  "edgeClusterProfileType" : "DEFAULT"
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/71c14050-2800-4256-9dd5-9113d7da0f8f
Content-Length: 170

{
  "id" : "71c14050-2800-4256-9dd5-9113d7da0f8f",
  "name" : "Add a NSX-T edge cluster",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2022-02-08T08:18:19.146Z"
}
  1. Poll the status of the task using the task API with the ID from the response of the previous API.

Tip
Refer to: Get a Task.

2.37.4. Get the Edge Clusters

Steps
  1. Invoke the Get the Edge Clusters.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/edge-clusters?clusterId=d1052c9c-6973-4e32-8034-06e7fa71e83c' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/edge-clusters?clusterId=d1052c9c-6973-4e32-8034-06e7fa71e83c HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 583

{
  "elements" : [ {
    "id" : "60127e17-e2e6-4d7b-b019-c0edcf0b141d",
    "name" : "sfo-m01-ecp01",
    "clusters" : [ {
      "id" : "d1052c9c-6973-4e32-8034-06e7fa71e83c"
    } ],
    "nsxtCluster" : {
      "id" : "3ec85048-be28-4664-85bb-bb4b4208b0d1",
      "vipFqdn" : "sfo-m01-ecp01.rainpole.io",
      "vip" : "10.0.0.30"
    },
    "edgeNodes" : [ {
      "id" : "fb9cc94e-81bf-45a4-a6c7-114f91456771",
      "hostName" : "sfo-m01-en01.rainpole.io"
    }, {
      "id" : "a0032951-7e0c-4c69-95cf-a3ab99217695",
      "hostName" : "sfo-m01-en02.rainpole.io"
    } ]
  } ]
}

2.37.5. Get an Edge Cluster

Prerequisites
  1. The following data is required:

    • ID of the Edge cluster

Steps
  1. Invoke the Get an Edge Cluster.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/edge-clusters/a8654438-ab84-4b98-a7a5-08d9c704af31' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/edge-clusters/a8654438-ab84-4b98-a7a5-08d9c704af31 HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 524

{
  "id" : "1e8b456f-d10b-4e02-abae-36bf78a1bbf9",
  "name" : "sfo-m01-ecp01",
  "clusters" : [ {
    "id" : "d1052c9c-6973-4e32-8034-06e7fa71e83c"
  } ],
  "nsxtCluster" : {
    "id" : "2c9d9bba-b8bb-4b75-b91e-cdb124421f7e",
    "vipFqdn" : "sfo-m01-ecp01.rainpole.io",
    "vip" : "10.0.0.30"
  },
  "edgeNodes" : [ {
    "id" : "d800c093-605a-4ac2-b336-18e283d5191b",
    "hostName" : "sfo-m01-en01.rainpole.io"
  }, {
    "id" : "3327f53d-76f6-4e5a-99c7-cf13f8dd6404",
    "hostName" : "sfo-m01-en02.rainpole.io"
  } ]
}

2.37.6. Validate Edge Cluster Expansion

Prerequisites

Complete the required prerequisites before invoking the API.

  • Separate VLANs and subnets are available for Host TEP VLAN and Edge TEP VLAN use

  • Host TEP VLAN and Edge TEP VLAN need to be routed

  • If dynamic routing is desired, please set up two BGP peers (on TORs or infra ESG) with an interface IP, ASN and BGP password

  • Reserve an ASN to use for the NSX Edge cluster’s Tier-0 interfaces

  • DNS entries for NSX Edge components should be populated in customer managed DNS server

  • The vSphere clusters hosting the Edge clusters should be L2 Uniform. All host nodes in a hosting vSphere cluster need to have identical management, uplink, Edge and host TEP networks

  • The vSphere clusters hosting the NSX Edge node VMs must have the same pNIC speed for NSX enabled VDS uplinks chosen for Edge overlay (e.g., either 10G or 25G but not both)

  • All nodes of an NSX Edge cluster must use the same set of NSX enabled VDS uplinks. The selected uplinks must be prepared for overlay use

  • Please refer to the official NSX documentation for the deployed version

  • Make sure there is enough capacity on the cluster(s) to deploy additional Edge nodes based on the form factor

Steps
  1. Validate the input specification using EdgeClusterUpdateSpec.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/edge-clusters/d1052c9c-6973-4e32-8034-06e7fa71e83c/validations' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "edgeClusterExpansionSpec" : {
    "edgeNodeRootPassword" : "Acme123!Acme123!",
    "edgeNodeAdminPassword" : "Acme123!Acme123!",
    "edgeNodeAuditPassword" : "Acme123!Acme123!",
    "edgeNodeSpecs" : [ {
      "edgeNodeName" : "sfo-m01-en04.rainpole.io",
      "managementIP" : "10.0.0.53/24",
      "managementGateway" : "10.0.0.250",
      "edgeTepGateway" : "192.168.52.1",
      "edgeTep1IP" : "192.168.52.32/24",
      "edgeTep2IP" : "192.168.52.42/24",
      "edgeTepVlan" : 1252,
      "clusterId" : "cff07657-5697-4ecc-8f66-efd8ec345754",
      "interRackCluster" : false,
      "uplinkNetwork" : [ {
        "uplinkVlan" : 2081,
        "uplinkInterfaceIP" : "192.168.16.34/24",
        "bgpPeers" : [ {
          "ip" : "192.168.16.10/24",
          "asn" : 65001,
          "password" : "Acme1!"
        } ]
      }, {
        "uplinkVlan" : 2082,
        "uplinkInterfaceIP" : "192.168.17.34/24",
        "bgpPeers" : [ {
          "ip" : "192.168.17.10/24",
          "asn" : 65001,
          "password" : "Acme1!"
        } ]
      } ],
      "firstNsxVdsUplink" : "uplink1",
      "secondNsxVdsUplink" : "uplink2"
    } ]
  },
  "operation" : "EXPANSION"
}'

HTTP Request

POST /v1/edge-clusters/d1052c9c-6973-4e32-8034-06e7fa71e83c/validations HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 1177
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "edgeClusterExpansionSpec" : {
    "edgeNodeRootPassword" : "Acme123!Acme123!",
    "edgeNodeAdminPassword" : "Acme123!Acme123!",
    "edgeNodeAuditPassword" : "Acme123!Acme123!",
    "edgeNodeSpecs" : [ {
      "edgeNodeName" : "sfo-m01-en04.rainpole.io",
      "managementIP" : "10.0.0.53/24",
      "managementGateway" : "10.0.0.250",
      "edgeTepGateway" : "192.168.52.1",
      "edgeTep1IP" : "192.168.52.32/24",
      "edgeTep2IP" : "192.168.52.42/24",
      "edgeTepVlan" : 1252,
      "clusterId" : "cff07657-5697-4ecc-8f66-efd8ec345754",
      "interRackCluster" : false,
      "uplinkNetwork" : [ {
        "uplinkVlan" : 2081,
        "uplinkInterfaceIP" : "192.168.16.34/24",
        "bgpPeers" : [ {
          "ip" : "192.168.16.10/24",
          "asn" : 65001,
          "password" : "Acme1!"
        } ]
      }, {
        "uplinkVlan" : 2082,
        "uplinkInterfaceIP" : "192.168.17.34/24",
        "bgpPeers" : [ {
          "ip" : "192.168.17.10/24",
          "asn" : 65001,
          "password" : "Acme1!"
        } ]
      } ],
      "firstNsxVdsUplink" : "uplink1",
      "secondNsxVdsUplink" : "uplink2"
    } ]
  },
  "operation" : "EXPANSION"
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Content-Length: 3625

{
  "id" : "378e6dc2-e39b-4cea-9d7a-ccfcb5838239",
  "description" : "@@Validating NSX Edge cluster update spec@@",
  "executionStatus" : "IN_PROGRESS",
  "resultStatus" : "UNKNOWN",
  "validationChecks" : [ {
    "description" : "@@Check for Edge management IP to Edge node FQDN resolution@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Two unique uplink interfaces per Edge node@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Check that Tier-1 with the same name does not exist@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Validate the specified NSX enabled VDS uplinks are prepared for Edge overlay@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Check vSphere cluster has all hosts with a vCPU count and RAM size to accommodate the selected Edge form factor@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Compliance of Edge cluster size with Tier-0 High-Availability mode@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Validate that IPs are in the same subnet@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Unique Edge TEP IPs for Edge nodes@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Check that management networks are reachable@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Edge cluster password(s) is not meeting NSX password policy standard@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Check Tier-0 uplink settings@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Check NSX Edge cluster's health status@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Validate that TEP IPs, gateway, and management IP, gateway are in the same subnet@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Validate that the specified IP addresses in the input spec do not conflict with the Tier-0 transit subnets@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Additional Tier-1s can be configured if existing Edge cluster is not federated@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Check that Edge node FQDNs are unique@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Validate all vCenter clusters, both current and newly added, are either all stretched or none are stretched@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Check for L2 Non-uniform and L3 cluster@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Check for IP conflict for Edge management IP, Edge TEP IPs, Tier-0 uplink interface IPs@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@The vSphere cluster(s) hosting the Edge cluster belong to the same workload domain@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Check that uplink VLANs are valid@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Capacity check for hosting vSphere cluster(s)@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Compliance checks for Edge cluster expansion spec@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Check routing between Host TEP VLAN and Edge TEP VLAN@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Validate each Edge node's VLAN is consistent per vSphere cluster@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Checking Edge cluster existence@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Check for unique IPs for Edge management IP, Edge TEP IPs, Tier-0 uplink interface IPs@@",
    "resultStatus" : "UNKNOWN"
  } ]
}
  1. Poll the status of the validation using the Validation API with the ID from the response of the previous API.

2.37.7. Expand an Edge Cluster

Prerequisites

Complete the required prerequisites before invoking the API.

  • Separate VLANs and subnets are available for Host TEP VLAN and Edge TEP VLAN use

  • Host TEP VLAN and Edge TEP VLAN need to be routed

  • If dynamic routing is desired, please set up two BGP peers (on TORs or infra ESG) with an interface IP, ASN and BGP password

  • Reserve an ASN to use for the NSX Edge cluster’s Tier-0 interfaces

  • DNS entries for NSX Edge components should be populated in customer managed DNS server

  • The vSphere clusters hosting the Edge clusters should be L2 Uniform. All host nodes in a hosting vSphere cluster need to have identical management, uplink, Edge and host TEP networks

  • The vSphere clusters hosting the NSX Edge node VMs must have the same pNIC speed for NSX enabled VDS uplinks chosen for Edge overlay (e.g., either 10G or 25G but not both)

  • All nodes of an NSX Edge cluster must use the same set of NSX enabled VDS uplinks. The selected uplinks must be prepared for overlay use

  • Please refer to the official NSX documentation for the deployed version

  • Make sure there is enough capacity on the cluster(s) to deploy additional Edge nodes based on the form factor

  • Validation API for expansion should complete successfully

Tip
Refer to: EdgeClusterUpdateSpec.
Steps
  1. Invoke the Expand or Shrink an NSX-T Edge Cluster. This API returns a task which can be polled and monitored.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/edge-clusters/d1052c9c-6973-4e32-8034-06e7fa71e83c' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "edgeClusterExpansionSpec" : {
    "edgeNodeRootPassword" : "EvoSddc!2016",
    "edgeNodeAdminPassword" : "EvoSddc!2016",
    "edgeNodeAuditPassword" : "EvoSddc!2016",
    "edgeNodeSpecs" : [ {
      "edgeNodeName" : "sfo-m01-en05.rainpole.io",
      "managementIP" : "10.0.0.55/24",
      "managementGateway" : "10.0.0.250",
      "edgeTepGateway" : "192.168.52.1",
      "edgeTep1IP" : "192.168.52.15/24",
      "edgeTep2IP" : "192.168.52.16/24",
      "edgeTepVlan" : 1252,
      "clusterId" : "d1052c9c-6973-4e32-8034-06e7fa71e83d",
      "interRackCluster" : false,
      "uplinkNetwork" : [ {
        "uplinkVlan" : 2081,
        "uplinkInterfaceIP" : "192.168.16.14/24",
        "bgpPeers" : [ {
          "ip" : "192.168.16.10/24",
          "asn" : 65001,
          "password" : "VMware1!"
        } ]
      }, {
        "uplinkVlan" : 2082,
        "uplinkInterfaceIP" : "192.168.17.14/24",
        "bgpPeers" : [ {
          "ip" : "192.168.17.10/24",
          "asn" : 65001,
          "password" : "VMware1!"
        } ]
      } ]
    } ],
    "additionalTier1Names" : [ ]
  },
  "operation" : "EXPANSION"
}'

HTTP Request

PATCH /v1/edge-clusters/d1052c9c-6973-4e32-8034-06e7fa71e83c HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 1124
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "edgeClusterExpansionSpec" : {
    "edgeNodeRootPassword" : "EvoSddc!2016",
    "edgeNodeAdminPassword" : "EvoSddc!2016",
    "edgeNodeAuditPassword" : "EvoSddc!2016",
    "edgeNodeSpecs" : [ {
      "edgeNodeName" : "sfo-m01-en05.rainpole.io",
      "managementIP" : "10.0.0.55/24",
      "managementGateway" : "10.0.0.250",
      "edgeTepGateway" : "192.168.52.1",
      "edgeTep1IP" : "192.168.52.15/24",
      "edgeTep2IP" : "192.168.52.16/24",
      "edgeTepVlan" : 1252,
      "clusterId" : "d1052c9c-6973-4e32-8034-06e7fa71e83d",
      "interRackCluster" : false,
      "uplinkNetwork" : [ {
        "uplinkVlan" : 2081,
        "uplinkInterfaceIP" : "192.168.16.14/24",
        "bgpPeers" : [ {
          "ip" : "192.168.16.10/24",
          "asn" : 65001,
          "password" : "VMware1!"
        } ]
      }, {
        "uplinkVlan" : 2082,
        "uplinkInterfaceIP" : "192.168.17.14/24",
        "bgpPeers" : [ {
          "ip" : "192.168.17.10/24",
          "asn" : 65001,
          "password" : "VMware1!"
        } ]
      } ]
    } ],
    "additionalTier1Names" : [ ]
  },
  "operation" : "EXPANSION"
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/5e27955d-3b65-45fd-a53d-2860025a929e
Content-Length: 174

{
  "id" : "5e27955d-3b65-45fd-a53d-2860025a929e",
  "name" : "Update an NSX-T Edge Cluster",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2022-02-08T08:18:17.720Z"
}

In case of edge cluster expansion for an edge cluster hosted on a stretched cluster, following are the sample requests and responses.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/edge-clusters/d1052c9c-6973-4e32-8034-06e7fa71e83c' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "edgeClusterExpansionSpec" : {
    "edgeNodeRootPassword" : "EvoSddc!2016",
    "edgeNodeAdminPassword" : "EvoSddc!2016",
    "edgeNodeAuditPassword" : "EvoSddc!2016",
    "edgeNodeSpecs" : [ {
      "edgeNodeName" : "sfo-m01-en05.rainpole.io",
      "managementIP" : "10.0.0.55/24",
      "managementGateway" : "10.0.0.250",
      "edgeTepGateway" : "192.168.52.1",
      "edgeTep1IP" : "192.168.52.15/24",
      "edgeTep2IP" : "192.168.52.16/24",
      "edgeTepVlan" : 1252,
      "clusterId" : "d1052c9c-6973-4e32-8034-06e7fa71e83d",
      "interRackCluster" : false,
      "uplinkNetwork" : [ {
        "uplinkVlan" : 2081,
        "uplinkInterfaceIP" : "192.168.16.14/24",
        "bgpPeers" : [ {
          "ip" : "192.168.16.10/24",
          "asn" : 65001,
          "password" : "VMware1!"
        } ]
      }, {
        "uplinkVlan" : 2082,
        "uplinkInterfaceIP" : "192.168.17.14/24",
        "bgpPeers" : [ {
          "ip" : "192.168.17.10/24",
          "asn" : 65001,
          "password" : "VMware1!"
        } ]
      } ]
    } ],
    "additionalTier1Names" : [ ]
  },
  "operation" : "EXPANSION"
}'

HTTP Request

PATCH /v1/edge-clusters/d1052c9c-6973-4e32-8034-06e7fa71e83c HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 1124
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "edgeClusterExpansionSpec" : {
    "edgeNodeRootPassword" : "EvoSddc!2016",
    "edgeNodeAdminPassword" : "EvoSddc!2016",
    "edgeNodeAuditPassword" : "EvoSddc!2016",
    "edgeNodeSpecs" : [ {
      "edgeNodeName" : "sfo-m01-en05.rainpole.io",
      "managementIP" : "10.0.0.55/24",
      "managementGateway" : "10.0.0.250",
      "edgeTepGateway" : "192.168.52.1",
      "edgeTep1IP" : "192.168.52.15/24",
      "edgeTep2IP" : "192.168.52.16/24",
      "edgeTepVlan" : 1252,
      "clusterId" : "d1052c9c-6973-4e32-8034-06e7fa71e83d",
      "interRackCluster" : false,
      "uplinkNetwork" : [ {
        "uplinkVlan" : 2081,
        "uplinkInterfaceIP" : "192.168.16.14/24",
        "bgpPeers" : [ {
          "ip" : "192.168.16.10/24",
          "asn" : 65001,
          "password" : "VMware1!"
        } ]
      }, {
        "uplinkVlan" : 2082,
        "uplinkInterfaceIP" : "192.168.17.14/24",
        "bgpPeers" : [ {
          "ip" : "192.168.17.10/24",
          "asn" : 65001,
          "password" : "VMware1!"
        } ]
      } ]
    } ],
    "additionalTier1Names" : [ ]
  },
  "operation" : "EXPANSION"
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/559ea6f0-0b78-4a5d-a617-04e0b9de961d
Content-Length: 174

{
  "id" : "559ea6f0-0b78-4a5d-a617-04e0b9de961d",
  "name" : "Update an NSX-T Edge Cluster",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2022-02-08T08:18:17.216Z"
}
  1. Poll the status of the task using the task API with the ID from the response of the previous API.

Tip
Refer to: Get a Task.

2.37.8. Validate Edge Cluster Shrinkage

Prerequisites

Complete the required prerequisites before invoking the API.

  • Selected Edge cluster must be available in VCF inventory with ACTIVE status

  • Selected Edge node(s) must be available in VCF inventory

  • Edge cluster must contain more than 2 Edge nodes

  • Edge cluster must be hosted on one or more vSphere clusters from the same domain

  • Edge cluster must not be federated and/or stretched

  • If the selected Edge cluster was deployed with Tier-0 High-Availability mode ACTIVE_ACTIVE, then the Edge node selection will be allowed if the Edge cluster contains two or more Edge nodes with two or more Tier-0 routers (Service Router Component) after the shrinkage operation

  • If the selected Edge cluster was deployed with Tier-0 High-Availability mode ACTIVE_STANDBY, then the selected Edge node(s) should not be in Active or Standby mode for the Tier-0 Service Router

  • The selected Edge node list should not contain both Active and Standby Edge nodes of the same Tier-1 router

Steps
  1. Validate the input specification using EdgeClusterUpdateSpec.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/edge-clusters/d1052c9c-6973-4e32-8034-06e7fa71e83c/validations' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "edgeClusterShrinkageSpec" : {
    "edgeNodeIds" : [ "73f034b7-d9bc-44ee-99e8-4a5290e44c08" ]
  },
  "operation" : "SHRINKAGE"
}'

HTTP Request

POST /v1/edge-clusters/d1052c9c-6973-4e32-8034-06e7fa71e83c/validations HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 132
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "edgeClusterShrinkageSpec" : {
    "edgeNodeIds" : [ "73f034b7-d9bc-44ee-99e8-4a5290e44c08" ]
  },
  "operation" : "SHRINKAGE"
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Content-Length: 1036

{
  "id" : "f8e4c6d8-5873-425e-b61a-d62e87e2443c",
  "description" : "@@Validating NSX Edge cluster update spec@@",
  "executionStatus" : "IN_PROGRESS",
  "resultStatus" : "UNKNOWN",
  "validationChecks" : [ {
    "description" : "@@Validate at least 2 nodes are required after shrinking Edge cluster@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Validate Edge cluster is not federated@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Validate all vCenter clusters are not stretched@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Validate the selection for Edge node(s) for hosting Tier-1 router@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Checking Edge cluster existence@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Validate the selection for Edge node(s) for hosting Tier-0 router@@",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "@@Validate Edge node IDs are part of the Edge cluster@@",
    "resultStatus" : "UNKNOWN"
  } ]
}
  1. Poll the status of the validation using the Validation API with the ID from the response of the previous API.

2.37.9. Shrink an Edge Cluster

Prerequisites

Complete the required prerequisites before invoking the API.

  • Selected Edge cluster must be available in VCF inventory with ACTIVE status

  • Selected Edge node(s) must be available in VCF inventory

  • Edge cluster must contain more than 2 Edge nodes

  • Edge cluster must be hosted on one or more vSphere clusters from the same domain

  • Edge cluster must not be federated and/or stretched

  • If the selected Edge cluster was deployed with Tier-0 High-Availability mode ACTIVE_ACTIVE, then the Edge node selection will be allowed if the Edge cluster contains two or more Edge nodes with two or more Tier-0 routers (Service Router Component) after the shrinkage operation

  • If the selected Edge cluster was deployed with Tier-0 High-Availability mode ACTIVE_STANDBY, then the selected Edge node(s) should not be in Active or Standby mode for the Tier-0 Service Router

  • The selected Edge node list should not contain both Active and Standby Edge nodes of the same Tier-1 router

  • Validation API for shrinkage should complete successfully

Tip
Refer to: EdgeClusterUpdateSpec.
Steps
  1. Invoke the Expand or Shrink an NSX-T Edge Cluster. This API returns a task which can be polled and monitored.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/edge-clusters/d1052c9c-6973-4e32-8034-06e7fa71e83c' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "edgeClusterShrinkageSpec" : {
    "edgeNodeIds" : [ "node-1", "node-2" ]
  },
  "operation" : "SHRINKAGE"
}'

HTTP Request

PATCH /v1/edge-clusters/d1052c9c-6973-4e32-8034-06e7fa71e83c HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 112
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "edgeClusterShrinkageSpec" : {
    "edgeNodeIds" : [ "node-1", "node-2" ]
  },
  "operation" : "SHRINKAGE"
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/784941ee-4622-412f-8846-c73036603d37
Content-Length: 174

{
  "id" : "784941ee-4622-412f-8846-c73036603d37",
  "name" : "Update an NSX-T Edge Cluster",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2022-02-08T08:18:18.843Z"
}
  1. Poll the status of the task using the task API with the ID from the response of the previous API

Tip
Refer to: Get a Task.

2.38. Workload Management

vSphere with Kubernetes transforms vSphere to a platform for running Kubernetes workloads natively on the hypervisor layer.

2.38.1. Deploy Workload Management

Prerequisites
  1. Create NSX-T VI workload domain.

    1. VUM (vSphere Update Manager) option should be enabled.

Tip
Refer to: Create a Domain
  1. Deploy an NSX-T Edge cluster with the following properties:

    1. Edge Form Factor - Large

    2. Tier0 Service High Availability - Active-Active

Tip
Refer to: Create an Edge Cluster
  1. All hosts in the cluster where you want to deploy Workload Management must have a vSphere with Kubernetes license applied on them.

  2. Workload Management supports one Edge cluster per transport zone, so ensure that the overlay transport zone connected to this cluster does not have other Edge clusters connected to it.

  3. The following subnets must have been defined:

    1. Subnet for pod networking (non-routable), minimum of a /22 subnet.

    2. Subnet for Service IP addresses (non-routable), minimum of a /24 subnet.

    3. Subnet for Ingress (routable), minimum of a /27 subnet.

    4. Subnet for Egress (routable), minimum of a /27 subnet.

  4. Create OIDC registration using NSX-T API.

Steps
  1. Enable Workload Management using vCenter API.

2.39. SOS

2.39.1. Generate Support-Bundle for SDDC.

The Create Health Summary operation:

  • Collects logs of various components of SDDC stack.

  • The whole logs are included in a archive file.

  • This can be downloaded by the user.

The result is supportbundle.

Prerequisites
  1. The following data is optional

    • logs

      • vcLogs

      • nsxLogs

      • esxLogs

      • wcpLogs

      • sddcManagerLogs

      • apiLogs

      • vxrailManagerLogs

      • systemDebugLogs

      • vmScreenshots

      • vraLogs

      • vropsLogs

      • vrliLogs

      • vrslcmLogs

    • scopes

      • includeFreeHosts

      • domains

        • domainName

        • clusterNames

    • options

      • include

        • summaryReport

        • healthCheck

Note
To trigger the API, the user should have a role of an ADMIN or OPERATOR in VCF.
Note
User cannot initiate parallel Support bundle collection.
Note
It is not advised to run CLI and API operations in parallel.
Note
User can also pass empty specification as data, then default logs will be conducted.
Note
Only single domain is allowed in domain field.
Note
If no domain is passed default MANAGEMENT domain will be considered.
Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/system/support-bundles' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "options" : {
    "config" : {
      "skipKnownHostCheck" : false,
      "force" : false
    },
    "include" : {
      "summaryReport" : false,
      "healthCheck" : false
    }
  },
  "scope" : {
    "includeFreeHosts" : false,
    "domains" : [ {
      "domainName" : "sddcId-1001",
      "clusterNames" : [ "SDDC-Cluster1" ]
    } ]
  },
  "logs" : {
    "vcLogs" : false,
    "nsxLogs" : false,
    "esxLogs" : false,
    "wcpLogs" : false,
    "sddcManagerLogs" : true,
    "apiLogs" : true,
    "vxrailManagerLogs" : false,
    "systemDebugLogs" : false,
    "vmScreenshots" : false,
    "vraLogs" : false,
    "vropsLogs" : false,
    "vrliLogs" : false,
    "vrslcmLogs" : false
  }
}'

HTTP Request

POST /v1/system/support-bundles HTTP/1.1
Content-Type: application/json
Content-Length: 697
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "options" : {
    "config" : {
      "skipKnownHostCheck" : false,
      "force" : false
    },
    "include" : {
      "summaryReport" : false,
      "healthCheck" : false
    }
  },
  "scope" : {
    "includeFreeHosts" : false,
    "domains" : [ {
      "domainName" : "sddcId-1001",
      "clusterNames" : [ "SDDC-Cluster1" ]
    } ]
  },
  "logs" : {
    "vcLogs" : false,
    "nsxLogs" : false,
    "esxLogs" : false,
    "wcpLogs" : false,
    "sddcManagerLogs" : true,
    "apiLogs" : true,
    "vxrailManagerLogs" : false,
    "systemDebugLogs" : false,
    "vmScreenshots" : false,
    "vraLogs" : false,
    "vropsLogs" : false,
    "vrliLogs" : false,
    "vrslcmLogs" : false
  }
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Content-Length: 117

{
  "description" : "Support-Bundle collection operation for SDDC",
  "id" : "8a2f69a8-9f97-4ac3-8778-4aceb1640245"
}
  1. Poll the task until "status" is not "IN_PROGRESS" using the "id" from the previous response.

  • If the "status" is "COMPLETED_WITH_SUCCESS", the task is completed successfully.

  • The task is failed if "status" is "COMPLETED_WITH_FAILURE".

  1. Download the bundle after successful bundle creation, using the "id" from the previous response.

2.39.2. Get the status of SOS SupportBundle Task.

The get health-summary operation

  • Polls the status of SOS SupportBundle operation.

Prerequisites
  1. The following data is required

    • ID of the task

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/system/support-bundles/8a2f69a8-9f97-4ac3-8778-4aceb1640245' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/system/support-bundles/8a2f69a8-9f97-4ac3-8778-4aceb1640245 HTTP/1.1
Content-Type: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 341

{
  "status" : "COMPLETED_WITH_SUCCESS",
  "creationTimestamp" : "2021-07-09T06:22:32.856Z",
  "description" : "Support-Bundle collection operation for SDDC",
  "bundleAvailable" : "Yes",
  "id" : "8a2f69a8-9f97-4ac3-8778-4aceb1640245",
  "completionTimestamp" : "2021-07-09T06:23:04.949Z",
  "bundleName" : "sos-2021-07-09-06-22-32-87667"
}

2.39.3. Downloads the SOS Support bundle created.

The download operation:

  • User can download the supportbundle bundle created.

  • The data is streamed in octect-stream format.

Prerequisites
  1. The following data is required

    • ID of the task

Steps
  1. Invoke the API.

Note
To trigger the API, the user should have a role of an ADMIN or OPERATOR in VCF.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/system/support-bundles/8a2f69a8-9f97-4ac3-8778-4aceb1640245/data' -i -X GET \
    -H 'Accept: application/octet-stream' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/system/support-bundles/8a2f69a8-9f97-4ac3-8778-4aceb1640245/data HTTP/1.1
Accept: application/octet-stream
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

2.39.4. Get the status of all SOS SupportBundle collect tasks.

The get health-summary operation

  • User can get the history of all SupportBundle tasks.

Prerequisites
  1. The following data is required

    • None

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/system/support-bundles' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/system/support-bundles HTTP/1.1
Content-Type: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 738

{
  "elements" : [ {
    "status" : "COMPLETED_WITH_SUCCESS",
    "creationTimestamp" : "2021-07-09T06:22:32.856Z",
    "description" : "Support-Bundle collection operation for SDDC",
    "bundleAvailable" : "No",
    "id" : "8a2f69a8-9f97-4ac3-8778-4aceb1640245",
    "completionTimestamp" : "2021-07-09T06:23:04.949Z",
    "bundleName" : "sos-2021-07-09-06-22-32-87667"
  }, {
    "status" : "COMPLETED_WITH_SUCCESS",
    "creationTimestamp" : "2021-07-09T06:23:55.973Z",
    "description" : "Support-Bundle collection operation for SDDC",
    "bundleAvailable" : "Yes",
    "id" : "b65d036d-01cd-4238-929e-d94f87f9b894",
    "completionTimestamp" : "2021-07-09T06:24:22.631Z",
    "bundleName" : "sos-2021-07-09-06-23-55-87667"
  } ]
}

2.39.5. Perform Health-Check operation for SDDC.

The Create Health Summary operation:

  • Validates overall health of system.

  • The health checks results are included in a archive file.

  • This can be downloaded by the user.

The result is health-summary bundle.

Prerequisites
  1. The following data is optional

    • healthChecks

      • servicesHealth

      • ntpHealth

      • generalHealth

      • certificateHealth

      • passwordHealth

      • connectivityHealth

      • computeHealth

      • storageHealth

      • dnsHealth

      • composabilityHealth

      • hardwareCompatibilityHealth

    • scopes

      • includeAllDomains

      • includeFreeHosts

      • domains

        • domainName

        • clusterNames

    • options

      • include

        • summaryReport

Note
To trigger the API, the user should have a role of an ADMIN or OPERATOR in VCF.
Note
User can also pass empty specification as data, then default health checks will be conducted.
Note
It is not advised to run CLI and API operations in parallel.
Note
Only single domain is allowed in domain field, or user has to pass includeAllDomains as true.
Note
If no domain is passed default MANAGEMENT domain will be considered.
Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/system/health-summary' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "options" : {
    "config" : {
      "skipKnownHostCheck" : false,
      "force" : false
    },
    "include" : {
      "summaryReport" : false
    }
  },
  "scope" : {
    "includeFreeHosts" : false,
    "includeAllDomains" : false,
    "domains" : [ {
      "domainName" : "sddcId-1001",
      "clusterNames" : [ "SDDC-Cluster1" ]
    } ]
  },
  "healthChecks" : {
    "servicesHealth" : true,
    "ntpHealth" : true,
    "generalHealth" : true,
    "certificateHealth" : true,
    "passwordHealth" : true,
    "connectivityHealth" : true,
    "computeHealth" : true,
    "storageHealth" : true,
    "dnsHealth" : true,
    "composabilityHealth" : true,
    "hardwareCompatibilityHealth" : true
  }
}'

HTTP Request

POST /v1/system/health-summary HTTP/1.1
Content-Type: application/json
Content-Length: 706
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "options" : {
    "config" : {
      "skipKnownHostCheck" : false,
      "force" : false
    },
    "include" : {
      "summaryReport" : false
    }
  },
  "scope" : {
    "includeFreeHosts" : false,
    "includeAllDomains" : false,
    "domains" : [ {
      "domainName" : "sddcId-1001",
      "clusterNames" : [ "SDDC-Cluster1" ]
    } ]
  },
  "healthChecks" : {
    "servicesHealth" : true,
    "ntpHealth" : true,
    "generalHealth" : true,
    "certificateHealth" : true,
    "passwordHealth" : true,
    "connectivityHealth" : true,
    "computeHealth" : true,
    "storageHealth" : true,
    "dnsHealth" : true,
    "composabilityHealth" : true,
    "hardwareCompatibilityHealth" : true
  }
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Content-Length: 104

{
  "description" : "Health-Check operation for SDDC",
  "id" : "beedc2ff-66d2-452f-af4b-176fa433148f"
}
  1. Poll the task until "status" is not "IN_PROGRESS" using the "id" from the previous response.

  • If the "status" is "COMPLETED_WITH_SUCCESS", the task is completed successfully.

  • The task is failed if "status" is "COMPLETED_WITH_FAILURE".

  1. Download the bundle after successful bundle creation, using the "id" from the previous response.

2.39.6. Get the status of SOS health-summary task.

The get health-summary operation

  • Polls the status of SOS health-summary operation.

Prerequisites
  1. The following data is required

    • ID of the task

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/system/health-summary/beedc2ff-66d2-452f-af4b-176fa433148f' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/system/health-summary/beedc2ff-66d2-452f-af4b-176fa433148f HTTP/1.1
Content-Type: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 336

{
  "status" : "COMPLETED_WITH_SUCCESS",
  "creationTimestamp" : "2021-07-08T09:11:22.957Z",
  "description" : "Health-Check operation for SDDC",
  "bundleAvailable" : "Yes",
  "id" : "beedc2ff-66d2-452f-af4b-176fa433148f",
  "completionTimestamp" : "2021-07-08T09:12:12.336Z",
  "bundleName" : "healthcheck-2021-07-08-09-11-22-91496"
}

2.39.7. Downloads the HealthSummary bundle created.

The download operation

  • User can download the health summary bundle created.

  • The data is streamed in octect-stream format.

Prerequisites
  1. The following data is required

    • ID of the task

Steps
  1. Invoke the API.

Note
To trigger the API, the user should have a role of an ADMIN or OPERATOR in VCF.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/system/health-summary/d14d42ea-3061-4874-a2ed-651253db37a3/data' -i -X GET \
    -H 'Accept: application/octet-stream' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/system/health-summary/d14d42ea-3061-4874-a2ed-651253db37a3/data HTTP/1.1
Accept: application/octet-stream
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

2.39.8. Get the status of all SOS health-summary tasks.

The get health-summary operation

  • User can get the history of all Health Summary tasks.

Prerequisites
  1. The following data is required

    • None

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/system/health-summary' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/system/health-summary HTTP/1.1
Content-Type: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 729

{
  "elements" : [ {
    "status" : "COMPLETED_WITH_SUCCESS",
    "creationTimestamp" : "2021-07-08T09:11:22.957Z",
    "description" : "Health-Check operation for SDDC",
    "bundleAvailable" : "Yes",
    "id" : "beedc2ff-66d2-452f-af4b-176fa433148f",
    "completionTimestamp" : "2021-07-08T09:12:12.336Z",
    "bundleName" : "healthcheck-2021-07-08-09-11-22-91496"
  }, {
    "status" : "COMPLETED_WITH_SUCCESS",
    "creationTimestamp" : "2021-07-08T09:15:59.885Z",
    "description" : "Health-Check operation for SDDC",
    "bundleAvailable" : "Yes",
    "id" : "212090e7-833e-4436-9136-f4a4f86277de",
    "completionTimestamp" : "2021-07-08T09:16:46.701Z",
    "bundleName" : "healthcheck-2021-07-08-09-15-59-91496"
  } ]
}

2.40. VASA Providers

2.40.1. Validate VASA Provider

  • This API validates the input specification of the VASA Provider

Prerequisites

The following data is required

  • VASA Provider name

  • VASA Provider URL

  • List of storage containers

    • For each storage container

      • Name of the storage container

      • Storage protocol type

  • List of VASA users

    • For each VASA user

      • User name

      • Password.

Tip
Refer to: VasaProvider.
Steps
  1. Validate the input specification.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/vasa-providers/validations' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "name" : "VASA-Provider1",
  "url" : "https://10.0.0.217:8443/vasa/version.xml",
  "storageContainers" : [ {
    "name" : "StorageContainer-FC",
    "protocolType" : "FC"
  }, {
    "name" : "StorageContainer-NFS",
    "protocolType" : "NFS"
  } ],
  "users" : [ {
    "username" : "User1",
    "password" : "password"
  }, {
    "username" : "User2",
    "password" : "password"
  } ]
}'

HTTP Request

POST /v1/vasa-providers/validations HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 391
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "name" : "VASA-Provider1",
  "url" : "https://10.0.0.217:8443/vasa/version.xml",
  "storageContainers" : [ {
    "name" : "StorageContainer-FC",
    "protocolType" : "FC"
  }, {
    "name" : "StorageContainer-NFS",
    "protocolType" : "NFS"
  } ],
  "users" : [ {
    "username" : "User1",
    "password" : "password"
  }, {
    "username" : "User2",
    "password" : "password"
  } ]
}

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/vasa-providers/validations/ecd8060c-d107-434a-86c2-29cd3992520e
Content-Type: application/json
Content-Length: 321

{
  "id" : "ecd8060c-d107-434a-86c2-29cd3992520e",
  "description" : "Validate input specification to add a VASA Provider to VMware Cloud Foundation",
  "executionStatus" : "IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "Validating VASA Provider input specification",
    "resultStatus" : "UNKNOWN"
  } ]
}
  1. Poll the status of the validation using the get validation API with the ID from the response.

2.40.2. Get VASA Provider Validation

Prerequisites

The following data is required

  • ID of the VASA Provider Validation

Steps
  1. Invoke the API

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/vasa-providers/validations/31c3dcb0-9bb5-46c9-9fd5-2383814c1e03' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/vasa-providers/validations/31c3dcb0-9bb5-46c9-9fd5-2383814c1e03 HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 321

{
  "id" : "31c3dcb0-9bb5-46c9-9fd5-2383814c1e03",
  "description" : "Validate input specification to add a VASA Provider to VMware Cloud Foundation",
  "executionStatus" : "COMPLETED",
  "validationChecks" : [ {
    "description" : "Validating VASA Provider input specification",
    "resultStatus" : "SUCCEEDED"
  } ]
}

2.40.3. Add VASA Provider

  • This API is used to add a VASA Provider to the system. The added VASA Provider would be used during domain creation, cluster creation flows.

  • If a VASA Provider already exists, you will get an error with HTTP status 400.

Prerequisites

The following data is required

  • VASA Provider name

  • VASA Provider URL

  • List of storage containers

    • For each storage container

      • Name of the storage container

      • Storage protocol type

  • List of VASA users

    • For each VASA user

      • User name

      • Password.

Tip
Refer to: VasaProvider.
Steps
  1. Invoke the API

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/vasa-providers' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "name" : "VASA-Provider1",
  "url" : "https://10.0.0.217:8443/vasa/version.xml",
  "storageContainers" : [ {
    "name" : "StorageContainer-FC",
    "protocolType" : "FC"
  }, {
    "name" : "StorageContainer-NFS",
    "protocolType" : "NFS"
  } ],
  "users" : [ {
    "username" : "User1",
    "password" : "password"
  }, {
    "username" : "User2",
    "password" : "password"
  } ]
}'

HTTP Request

POST /v1/vasa-providers HTTP/1.1
Content-Type: application/json
Content-Length: 391
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "name" : "VASA-Provider1",
  "url" : "https://10.0.0.217:8443/vasa/version.xml",
  "storageContainers" : [ {
    "name" : "StorageContainer-FC",
    "protocolType" : "FC"
  }, {
    "name" : "StorageContainer-NFS",
    "protocolType" : "NFS"
  } ],
  "users" : [ {
    "username" : "User1",
    "password" : "password"
  }, {
    "username" : "User2",
    "password" : "password"
  } ]
}

HTTP Response

HTTP/1.1 201 Created
Content-Type: application/json
Content-Length: 669

{
  "id" : "fb962aaa-d57c-4e15-8f5c-66d3844f7c70",
  "name" : "VASA-Provider1",
  "url" : "https://10.0.0.217:8443/vasa/version.xml",
  "storageContainers" : [ {
    "id" : "e035c0f3-3c46-4147-84ca-c1d7dd1ebe4c",
    "name" : "StorageContainer-FC",
    "protocolType" : "FC"
  }, {
    "id" : "3b85507d-61a6-4f54-9fe1-7c5cfdd8f956",
    "name" : "StorageContainer-NFS",
    "protocolType" : "NFS"
  } ],
  "users" : [ {
    "id" : "858d130e-b4e9-4cf7-8ff6-9e8421427894",
    "username" : "User1"
  }, {
    "id" : "4573f09f-6a9a-48a6-a5d1-f6d319115d12",
    "username" : "User2"
  }, {
    "id" : "8ec223b9-46d6-4c5a-85ce-69cbe64967b8",
    "username" : "User3"
  } ]
}

2.40.4. Get the VASA Providers

  • This API is used to get the VASA Providers.

Steps
  1. Invoke the API

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/vasa-providers' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/vasa-providers HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 649

{
  "elements" : [ {
    "id" : "fb962aaa-d57c-4e15-8f5c-66d3844f7c70",
    "name" : "VASA-Provider1",
    "url" : "https://10.0.0.217:8443/vasa/version.xml",
    "storageContainers" : [ {
      "id" : "e035c0f3-3c46-4147-84ca-c1d7dd1ebe4c",
      "name" : "StorageContainer-FC",
      "protocolType" : "FC"
    }, {
      "id" : "3b85507d-61a6-4f54-9fe1-7c5cfdd8f956",
      "name" : "StorageContainer-NFS",
      "protocolType" : "NFS"
    } ],
    "users" : [ {
      "id" : "858d130e-b4e9-4cf7-8ff6-9e8421427894",
      "username" : "User1"
    }, {
      "id" : "4573f09f-6a9a-48a6-a5d1-f6d319115d12",
      "username" : "User2"
    } ]
  } ]
}

2.40.5. Get a VASA Provider

This API is used to get a VASA Provider.

Prerequisites
  1. The following data is required:

    • ID of the VASA Provider

Steps
  1. Invoke the API

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/vasa-providers/fb962aaa-d57c-4e15-8f5c-66d3844f7c70' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/vasa-providers/fb962aaa-d57c-4e15-8f5c-66d3844f7c70 HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 586

{
  "id" : "fb962aaa-d57c-4e15-8f5c-66d3844f7c70",
  "name" : "VASA-Provider1",
  "url" : "https://10.0.0.217:8443/vasa/version.xml",
  "storageContainers" : [ {
    "id" : "e035c0f3-3c46-4147-84ca-c1d7dd1ebe4c",
    "name" : "StorageContainer-FC",
    "protocolType" : "FC"
  }, {
    "id" : "3b85507d-61a6-4f54-9fe1-7c5cfdd8f956",
    "name" : "StorageContainer-NFS",
    "protocolType" : "NFS"
  } ],
  "users" : [ {
    "id" : "858d130e-b4e9-4cf7-8ff6-9e8421427894",
    "username" : "User1"
  }, {
    "id" : "4573f09f-6a9a-48a6-a5d1-f6d319115d12",
    "username" : "User2"
  } ]
}

2.40.6. Update a VASA Provider

  • This API is used to update a VASA Provider.

Prerequisites
  1. The following data is required

    • ID of the VASA Provider

  2. The following data is optional

    • VASA Provider name

    • VASA Provider URL

Tip
Refer to: Get the VASA Providers
Steps
  1. Invoke the API

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/vasa-providers/fb962aaa-d57c-4e15-8f5c-66d3844f7c70' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "name" : "new-VASA-Provider1",
  "url" : "https://10.0.32.217/vasa/version.xml"
}'

HTTP Request

PATCH /v1/vasa-providers/fb962aaa-d57c-4e15-8f5c-66d3844f7c70 HTTP/1.1
Content-Type: application/json
Content-Length: 85
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "name" : "new-VASA-Provider1",
  "url" : "https://10.0.32.217/vasa/version.xml"
}

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 590

{
  "id" : "fb962aaa-d57c-4e15-8f5c-66d3844f7c70",
  "name" : "new-VASA-Provider1",
  "url" : "https://10.0.0.217:8443/vasa/version.xml",
  "storageContainers" : [ {
    "id" : "e035c0f3-3c46-4147-84ca-c1d7dd1ebe4c",
    "name" : "StorageContainer-FC",
    "protocolType" : "FC"
  }, {
    "id" : "3b85507d-61a6-4f54-9fe1-7c5cfdd8f956",
    "name" : "StorageContainer-NFS",
    "protocolType" : "NFS"
  } ],
  "users" : [ {
    "id" : "858d130e-b4e9-4cf7-8ff6-9e8421427894",
    "username" : "User1"
  }, {
    "id" : "4573f09f-6a9a-48a6-a5d1-f6d319115d12",
    "username" : "User2"
  } ]
}

2.40.7. Delete a VASA Provider

  • Used to delete a VASA Provider.

  • Deleting a VASA Provider which is being used, will give an error.

  • Deleting a VASA Provider which does not exist, will give a HTTP response code 404.

Prerequisites
  1. The following data is required

    • ID of the VASA Provider

Steps
  1. Invoke the API

Tip
Refer to: Get the VASA Providers to retrieve all VASA providers in the system and use the ID of VASA Provider to be deleted.

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/vasa-providers/fb962aaa-d57c-4e15-8f5c-66d3844f7c70' -i -X DELETE \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

DELETE /v1/vasa-providers/fb962aaa-d57c-4e15-8f5c-66d3844f7c70 HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 204 No Content

2.40.8. Get the Storage Containers of a VASA Provider

  • This API is used to fetch all the storage containers of a VASA Provider

Prerequisites
  1. The following data is required

    • ID of the VASA Provider

Tip
Refer to: Get the VASA Providers
Steps
  1. Invoke the API

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/vasa-providers/fb962aaa-d57c-4e15-8f5c-66d3844f7c70/storage-containers' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/vasa-providers/fb962aaa-d57c-4e15-8f5c-66d3844f7c70/storage-containers HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 228

[ {
  "id" : "e035c0f3-3c46-4147-84ca-c1d7dd1ebe4c",
  "name" : "StorageContainer-FC",
  "protocolType" : "FC"
}, {
  "id" : "3b85507d-61a6-4f54-9fe1-7c5cfdd8f956",
  "name" : "StorageContainer-NFS",
  "protocolType" : "NFS"
} ]

2.40.9. Get the Storage Containers by ProtocolType

  • This API is used to fetch all the storage containers for a given protocol type

Prerequisites
  1. The following data is required

    • ID of the VASA Provider

    • Protocol type of the storage container

Tip
Refer to: Get the VASA Providers
Steps
  1. Invoke the API

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/vasa-providers/fb962aaa-d57c-4e15-8f5c-66d3844f7c70/storage-containers?protocolType=FC' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/vasa-providers/fb962aaa-d57c-4e15-8f5c-66d3844f7c70/storage-containers?protocolType=FC HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 114

[ {
  "id" : "e035c0f3-3c46-4147-84ca-c1d7dd1ebe4c",
  "name" : "StorageContainer-FC",
  "protocolType" : "FC"
} ]

2.40.10. Add the Storage Containers to a VASA Provider

  • This API is used to add the storage containers to a VASA Provider.

  • If a storage container already exists, you will get an error with HTTP status 400.

Prerequisites
  1. The following data is required

    • ID of the VASA Provider

    • List of storage containers

      • For each storage container

        • Name of the storage container

        • Storage protocol type

Tip
Refer to: Get the VASA Providers
Steps
  1. Invoke the API

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/vasa-providers/fb962aaa-d57c-4e15-8f5c-66d3844f7c70/storage-containers' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '[ {
  "name" : "StorageContainer-ISCSI",
  "protocolType" : "ISCSI"
} ]'

HTTP Request

POST /v1/vasa-providers/fb962aaa-d57c-4e15-8f5c-66d3844f7c70/storage-containers HTTP/1.1
Content-Type: application/json
Content-Length: 71
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

[ {
  "name" : "StorageContainer-ISCSI",
  "protocolType" : "ISCSI"
} ]

HTTP Response

HTTP/1.1 201 Created
Content-Type: application/json
Content-Length: 712

{
  "id" : "fb962aaa-d57c-4e15-8f5c-66d3844f7c70",
  "name" : "VASA-Provider1",
  "url" : "https://10.0.0.217:8443/vasa/version.xml",
  "storageContainers" : [ {
    "id" : "e035c0f3-3c46-4147-84ca-c1d7dd1ebe4c",
    "name" : "StorageContainer-FC",
    "protocolType" : "FC"
  }, {
    "id" : "3b85507d-61a6-4f54-9fe1-7c5cfdd8f956",
    "name" : "StorageContainer-NFS",
    "protocolType" : "NFS"
  }, {
    "id" : "15df88fb-622f-470a-9300-fb5e848d2ec5",
    "name" : "StorageContainer-ISCSI",
    "protocolType" : "ISCSI"
  } ],
  "users" : [ {
    "id" : "858d130e-b4e9-4cf7-8ff6-9e8421427894",
    "username" : "User1"
  }, {
    "id" : "4573f09f-6a9a-48a6-a5d1-f6d319115d12",
    "username" : "User2"
  } ]
}

2.40.11. Rename a Storage Container of a VASA Provider

  • This API is used to rename a storage container of a VASA Provider.

Prerequisites
  1. The following data is required

    • ID of the VASA Provider

    • ID of the storage container

    • New storage container name

Steps
  1. Invoke the API

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/vasa-providers/fb962aaa-d57c-4e15-8f5c-66d3844f7c70/storage-containers/e035c0f3-3c46-4147-84ca-c1d7dd1ebe4c' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "name" : "new-StorageContainer-FC"
}'

HTTP Request

PATCH /v1/vasa-providers/fb962aaa-d57c-4e15-8f5c-66d3844f7c70/storage-containers/e035c0f3-3c46-4147-84ca-c1d7dd1ebe4c HTTP/1.1
Content-Type: application/json
Content-Length: 40
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "name" : "new-StorageContainer-FC"
}

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 590

{
  "id" : "fb962aaa-d57c-4e15-8f5c-66d3844f7c70",
  "name" : "VASA-Provider1",
  "url" : "https://10.0.0.217:8443/vasa/version.xml",
  "storageContainers" : [ {
    "id" : "e035c0f3-3c46-4147-84ca-c1d7dd1ebe4c",
    "name" : "new-StorageContainer-FC",
    "protocolType" : "FC"
  }, {
    "id" : "3b85507d-61a6-4f54-9fe1-7c5cfdd8f956",
    "name" : "StorageContainer-NFS",
    "protocolType" : "NFS"
  } ],
  "users" : [ {
    "id" : "858d130e-b4e9-4cf7-8ff6-9e8421427894",
    "username" : "User1"
  }, {
    "id" : "4573f09f-6a9a-48a6-a5d1-f6d319115d12",
    "username" : "User2"
  } ]
}

2.40.12. Delete a Storage Container of a VASA Provider

  • Used to delete a storage container of a VASA Provider

  • Deleting a storage container which is being used, will give an error.

  • Deleting a storage container which does not exist, will give a HTTP response code 404.

Prerequisites
  1. The following data is required

    • ID of the VASA Provider

    • ID of the storage containers

Steps
  1. Invoke the API

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/vasa-providers/fb962aaa-d57c-4e15-8f5c-66d3844f7c70/storage-containers/e035c0f3-3c46-4147-84ca-c1d7dd1ebe4c' -i -X DELETE \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

DELETE /v1/vasa-providers/fb962aaa-d57c-4e15-8f5c-66d3844f7c70/storage-containers/e035c0f3-3c46-4147-84ca-c1d7dd1ebe4c HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 204 No Content

2.40.13. Get the Users of a VASA Provider

Prerequisites
  1. The following data is required

    • ID of the VASA Provider

Tip
Refer to: Get the VASA Providers
Steps
  1. Invoke the API

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/vasa-providers/fb962aaa-d57c-4e15-8f5c-66d3844f7c70/users' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/vasa-providers/fb962aaa-d57c-4e15-8f5c-66d3844f7c70/users HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 156

[ {
  "id" : "858d130e-b4e9-4cf7-8ff6-9e8421427894",
  "username" : "User1"
}, {
  "id" : "4573f09f-6a9a-48a6-a5d1-f6d319115d12",
  "username" : "User2"
} ]

2.40.14. Add the Users to a VASA Provider

  • This API is used to add the VASA users to a VASA Provider.

  • If a VASA user already exists, you will get an error with HTTP status 400.

Prerequisites
  1. The following data is required

    • ID of the VASA Provider

    • List of VASA users

      • For each VASA user

        • User name

        • Password.

Tip
Refer to: Get the VASA Providers
Steps
  1. Invoke the API

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/vasa-providers/fb962aaa-d57c-4e15-8f5c-66d3844f7c70/users' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '[ {
  "username" : "User3",
  "password" : "password"
} ]'

HTTP Request

POST /v1/vasa-providers/fb962aaa-d57c-4e15-8f5c-66d3844f7c70/users HTTP/1.1
Content-Type: application/json
Content-Length: 57
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

[ {
  "username" : "User3",
  "password" : "password"
} ]

HTTP Response

HTTP/1.1 201 Created
Content-Type: application/json
Content-Length: 669

{
  "id" : "fb962aaa-d57c-4e15-8f5c-66d3844f7c70",
  "name" : "VASA-Provider1",
  "url" : "https://10.0.0.217:8443/vasa/version.xml",
  "storageContainers" : [ {
    "id" : "e035c0f3-3c46-4147-84ca-c1d7dd1ebe4c",
    "name" : "StorageContainer-FC",
    "protocolType" : "FC"
  }, {
    "id" : "3b85507d-61a6-4f54-9fe1-7c5cfdd8f956",
    "name" : "StorageContainer-NFS",
    "protocolType" : "NFS"
  } ],
  "users" : [ {
    "id" : "858d130e-b4e9-4cf7-8ff6-9e8421427894",
    "username" : "User1"
  }, {
    "id" : "4573f09f-6a9a-48a6-a5d1-f6d319115d12",
    "username" : "User2"
  }, {
    "id" : "de5848f5-70d2-4c45-ba7d-bbf6b8b63ad0",
    "username" : "User3"
  } ]
}

2.40.15. Update the User of a VASA Provider

  • This API is used to update the user of a VASA Provider.

Prerequisites
  1. The following data is required

    • ID of the VASA Provider

    • ID of the VASA User

  2. The following data is optional

    • VASA user name

    • VASA password

Steps
  1. Invoke the API

cURL Request

$ curl 'https://sfo-vcf01.rainpole.io/v1/vasa-providers/fb962aaa-d57c-4e15-8f5c-66d3844f7c70/users/858d130e-b4e9-4cf7-8ff6-9e8421427894' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "username" : "new-User1",
  "password" : "password"
}'

HTTP Request

PATCH /v1/vasa-providers/fb962aaa-d57c-4e15-8f5c-66d3844f7c70/users/858d130e-b4e9-4cf7-8ff6-9e8421427894 HTTP/1.1
Content-Type: application/json
Content-Length: 57
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....

{
  "username" : "new-User1",
  "password" : "password"
}

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 590

{
  "id" : "fb962aaa-d57c-4e15-8f5c-66d3844f7c70",
  "name" : "VASA-Provider1",
  "url" : "https://10.0.0.217:8443/vasa/version.xml",
  "storageContainers" : [ {
    "id" : "e035c0f3-3c46-4147-84ca-c1d7dd1ebe4c",
    "name" : "StorageContainer-FC",
    "protocolType" : "FC"
  }, {
    "id" : "3b85507d-61a6-4f54-9fe1-7c5cfdd8f956",
    "name" : "StorageContainer-NFS",
    "protocolType" : "NFS"
  } ],
  "users" : [ {
    "id" : "858d130e-b4e9-4cf7-8ff6-9e8421427894",
    "username" : "new-User1"
  }, {
    "id" : "4573f09f-6a9a-48a6-a5d1-f6d319115d12",
    "username" : "User2"
  } ]
}

3. Resources

3.1. AVNs

APIs for managing Solutions Networking (Application Virtual Networks)

3.1.1. Create AVNs

POST /v1/avns
Parameters
Type Name Description Schema

Body

avnsCreationSpec
required

Avn creation data

Responses
HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/avns
Request body
{
  "avns" : [ {
    "domainName" : "rainpole.io",
    "gateway" : "192.168.31.1",
    "id" : "3f39d4a1-78d2-11e8-af85-f1cf26258cdc",
    "mtu" : 1600,
    "name" : "vRealize-AVN",
    "portGroupName" : "sfo-m01-seg01-pg",
    "regionType" : "REGION_A",
    "routerName" : "sfo-m01-ec01-t1-gw01",
    "subnet" : "192.168.31.0",
    "subnetMask" : "255.255.255.0",
    "vlanId" : 30
  } ],
  "edgeClusterId" : "3f39d4a1-78d2-11e8-af85-f1cf26258cdc"
}
Example HTTP response
Response 200
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.1.2. Fetches all AVNs

GET /v1/avns
Description

Returns all matching AVNs

Parameters
Type Name Description Schema

Query

regionType
optional

Pass an optional AVN region type matching either Region-A or X-Region

string

Responses
HTTP Code Description Schema

200

Returns the list of all matching AVNs

< Avn > array

500

Unexpected error

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 200
[ {
  "domainName" : "rainpole.io",
  "gateway" : "192.168.31.1",
  "id" : "3f39d4a1-78d2-11e8-af85-f1cf26258cdc",
  "mtu" : 1600,
  "name" : "vRealize-AVN",
  "portGroupName" : "sfo-m01-seg01-pg",
  "regionType" : "REGION_A",
  "routerName" : "sfo-m01-ec01-t1-gw01",
  "subnet" : "192.168.31.0",
  "subnetMask" : "255.255.255.0",
  "vlanId" : 30
} ]
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.1.3. Validate AVN Creation Spec

POST /v1/avns/validations
Description

Returns Validation report

Parameters
Type Name Description Schema

Body

avnsCreationSpec
required

Provide the spec to create the AVNs

Responses
HTTP Code Description Schema

200

Validation of AVN Creation spec completed

500

Unexpected error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/avns/validations
Request body
{
  "avns" : [ {
    "domainName" : "rainpole.io",
    "gateway" : "192.168.31.1",
    "id" : "3f39d4a1-78d2-11e8-af85-f1cf26258cdc",
    "mtu" : 1600,
    "name" : "vRealize-AVN",
    "portGroupName" : "sfo-m01-seg01-pg",
    "regionType" : "REGION_A",
    "routerName" : "sfo-m01-ec01-t1-gw01",
    "subnet" : "192.168.31.0",
    "subnetMask" : "255.255.255.0",
    "vlanId" : 30
  } ],
  "edgeClusterId" : "3f39d4a1-78d2-11e8-af85-f1cf26258cdc"
}
Example HTTP response
Response 200
{
  "additionalProperties" : {
    "string" : "string"
  },
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS, CANCELLATION_IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "nestedValidationChecks" : [ {
      "description" : "string",
      "errorResponse" : {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.2. BackupRestore

APIs for managing Backups and Restore

3.2.1. Trigger backup

POST /v1/backups/tasks
Parameters
Type Name Description Schema

Body

backupsSpec
required

backupsSpec

Responses
HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

Internal server error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/backups/tasks
Request body
{
  "elements" : [ {
    "resourceType" : "SDDC_MANAGER"
  } ]
}
Example HTTP response
Response 200
{
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "name" : "string",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: IN_PROGRESS"
}
Response 202
{
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "name" : "string",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: IN_PROGRESS"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.2.2. Trigger Restore

POST /v1/restores/tasks
Parameters
Type Name Description Schema

Body

restoreSpec
required

restoreSpec

Responses
HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

Internal server error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/restores/tasks
Request body
{
  "backupFile" : "string",
  "elements" : [ {
    "resourceType" : "SDDC_MANAGER"
  } ],
  "encryption" : {
    "passphrase" : "string"
  }
}
Example HTTP response
Response 200
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.2.3. Fetch the restores task

GET /v1/restores/tasks/{id}
Parameters
Type Name Description Schema

Path

id
required

The restore task ID

string

Responses
HTTP Code Description Schema

200

Ok

400

Bad Request

500

Internal server error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/restores/tasks/string
Example HTTP response
Response 200
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.2.4. Get backup configuration used to backup NSX and SDDC manager

GET /v1/system/backup-configuration
Responses
HTTP Code Description Schema

200

Ok

400

Bad Request

500

Internal server error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/system/backup-configuration
Example HTTP response
Response 200
{
  "backupLocations" : [ {
    "directoryPath" : "string",
    "password" : "string",
    "port" : 0,
    "protocol" : "SFTP",
    "server" : "string",
    "sshFingerprint" : "string",
    "username" : "string"
  } ],
  "backupSchedules" : [ {
    "daysOfWeek" : "One among: SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY",
    "frequency" : "One among: WEEKLY, HOURLY",
    "hourOfDay" : 0,
    "minuteOfHour" : 0,
    "resourceType" : "SDDC_MANAGER",
    "retentionPolicy" : {
      "numberOfDaysOfDailyBackups" : 20,
      "numberOfDaysOfHourlyBackups" : 10,
      "numberOfMostRecentBackups" : 15
    },
    "takeBackupOnStateChange" : true,
    "takeScheduledBackups" : true
  } ],
  "encryption" : {
    "passphrase" : "string"
  },
  "isConfigured" : true
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.2.5. Configure backup settings to backup NSX and SDDC manager

PUT /v1/system/backup-configuration
Parameters
Type Name Description Schema

Body

backupConfigurationSpec
required

backupConfigurationSpec

Responses
HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

Internal server error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/system/backup-configuration
Request body
{
  "backupLocations" : [ {
    "directoryPath" : "string",
    "password" : "string",
    "port" : 0,
    "protocol" : "SFTP",
    "server" : "string",
    "sshFingerprint" : "string",
    "username" : "string"
  } ],
  "backupSchedules" : [ {
    "daysOfWeek" : "One among: SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY",
    "frequency" : "One among: WEEKLY, HOURLY",
    "hourOfDay" : 0,
    "minuteOfHour" : 0,
    "resourceType" : "SDDC_MANAGER",
    "retentionPolicy" : {
      "numberOfDaysOfDailyBackups" : 20,
      "numberOfDaysOfHourlyBackups" : 10,
      "numberOfMostRecentBackups" : 15
    },
    "takeBackupOnStateChange" : true,
    "takeScheduledBackups" : true
  } ],
  "encryption" : {
    "passphrase" : "string"
  }
}
Example HTTP response
Response 200
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.2.6. Edit backup configuration to backup NSX and SDDC manager

PATCH /v1/system/backup-configuration
Parameters
Type Name Description Schema

Body

backupConfigurationSpec
required

backupConfigurationSpec

Responses
HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

Internal server error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/system/backup-configuration
Request body
{
  "backupLocations" : [ {
    "directoryPath" : "string",
    "password" : "string",
    "port" : 0,
    "protocol" : "SFTP",
    "server" : "string",
    "sshFingerprint" : "string",
    "username" : "string"
  } ],
  "backupSchedules" : [ {
    "daysOfWeek" : "One among: SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY",
    "frequency" : "One among: WEEKLY, HOURLY",
    "hourOfDay" : 0,
    "minuteOfHour" : 0,
    "resourceType" : "SDDC_MANAGER",
    "retentionPolicy" : {
      "numberOfDaysOfDailyBackups" : 20,
      "numberOfDaysOfHourlyBackups" : 10,
      "numberOfMostRecentBackups" : 15
    },
    "takeBackupOnStateChange" : true,
    "takeScheduledBackups" : true
  } ],
  "encryption" : {
    "passphrase" : "string"
  }
}
Example HTTP response
Response 200
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.3. Bundles

APIs for managing Bundles

3.3.1. Upload a Bundle

POST /v1/bundles
Description

Upload Bundle to SDDC Manager. Used when you do not have internet connectivity for downloading bundles from VMWare/VxRail to SDDC Manager. The Bundles are manually downloaded from Depot using Bundle Transfer utility

Parameters
Type Name Description Schema

Body

bundleUploadSpec
required

Bundle Upload Specification

Responses
HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/bundles
Request body
{
  "bundleFilePath" : "string",
  "compatibilitySetsFilePath" : "string",
  "manifestFilePath" : "string",
  "partnerExtensionSpec" : {
    "partnerBundleMetadataFilePath" : "string",
    "partnerBundleVersion" : "string"
  },
  "signatureFilePath" : "string"
}
Example HTTP response
Response 200
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.3.2. Get the Bundles

GET /v1/bundles
Description

Get all Bundles i.e uploaded bundles and also bundles available via depot access.

Parameters
Type Name Description Schema

Query

bundleType
optional

The type of the bundle

string

Query

isCompliant
optional

Is compliant with the current VCF version

boolean

Query

productType
optional

The type of the product

string

Responses
HTTP Code Description Schema

200

Ok

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 200
{
  "elements" : [ {
    "components" : [ {
      "description" : "string",
      "fromVersion" : "string",
      "id" : "string",
      "imageType" : "One among: PATCH, INSTALL",
      "releasedDate" : "string",
      "toVersion" : "string",
      "type" : "string",
      "vendor" : "string"
    } ],
    "description" : "string",
    "downloadStatus" : "One among: PENDING, SCHEDULED, IN_PROGRESS, SUCCESSFUL, FAILED, RECALLED",
    "id" : "string",
    "isCompliant" : true,
    "isCumulative" : true,
    "releasedDate" : "string",
    "severity" : "One among: CRITICAL, IMPORTANT, MODERATE, LOW",
    "sizeMB" : 0.0,
    "type" : "One among: SDDC_MANAGER, VMWARE_SOFTWARE, VXRAIL",
    "vendor" : "string",
    "version" : "string"
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.3.3. Update software compatibility sets for Bundles

PATCH /v1/bundles/
Description

Update software compatibility sets for Bundles

Parameters
Type Name Description Schema

Body

bundleUpdateSpec
required

Bundle Update Specification

Responses
HTTP Code Description Schema

200

OK

No Content

202

Accepted

No Content

400

Bad Request

409

Conflict

500

Internal Server Error

Consumes
  • application/json

Produces
  • */*

Example HTTP request
Request path
/v1/bundles/
Request body
{
  "bundleDownloadSpec" : {
    "downloadNow" : true,
    "scheduledTimestamp" : "string"
  },
  "compatibilitySetsFilePath" : "string"
}
Example HTTP response
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 409
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.3.4. Get a Bundle

GET /v1/bundles/{id}
Description

Get a Bundle

Parameters
Type Name Description Schema

Path

id
required

Bundle ID

string

Responses
HTTP Code Description Schema

200

Ok

404

Bundle Not Found

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/bundles/string
Example HTTP response
Response 200
{
  "components" : [ {
    "description" : "string",
    "fromVersion" : "string",
    "id" : "string",
    "imageType" : "One among: PATCH, INSTALL",
    "releasedDate" : "string",
    "toVersion" : "string",
    "type" : "string",
    "vendor" : "string"
  } ],
  "description" : "string",
  "downloadStatus" : "One among: PENDING, SCHEDULED, IN_PROGRESS, SUCCESSFUL, FAILED, RECALLED",
  "id" : "string",
  "isCompliant" : true,
  "isCumulative" : true,
  "releasedDate" : "string",
  "severity" : "One among: CRITICAL, IMPORTANT, MODERATE, LOW",
  "sizeMB" : 0.0,
  "type" : "One among: SDDC_MANAGER, VMWARE_SOFTWARE, VXRAIL",
  "vendor" : "string",
  "version" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.3.5. Update a Bundle for downloading from depot

PATCH /v1/bundles/{id}
Description

Update a Bundle for scheduling/triggering download. Only one download can triggered for a Bundle.

Parameters
Type Name Description Schema

Path

id
required

Bundle ID

string

Body

bundleUpdateSpec
required

Bundle Update Specification

Responses
HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

409

Conflict

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/bundles/string
Request body
{
  "bundleDownloadSpec" : {
    "downloadNow" : true,
    "scheduledTimestamp" : "string"
  },
  "compatibilitySetsFilePath" : "string"
}
Example HTTP response
Response 200
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 409
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.4. CEIP

APIs for managing CEIP status

3.4.1. Get CEIP status

GET /v1/system/ceip
Description

Get CEIP status and instance id

Responses
HTTP Code Description Schema

200

Ok

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 200
{
  "instanceId" : "3f39d4a1-78d2-11e8-af85-f1cf26258cdc",
  "status" : "One among: ENABLED, DISABLED, ENABLING, DISABLING, ENABLING_FAILED, DISABLING_FAILED"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.4.2. Opt-in or Opt-out of CEIP

PATCH /v1/system/ceip
Description

Opt-in or Opt-out of CEIP

Parameters
Type Name Description Schema

Body

ceipUpdateSpec
required

Required action for CEIP.

Responses
HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

409

The request could not be completed due to a conflict with the current state

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/system/ceip
Request body
{
  "status" : "One among: ENABLE, DISABLE"
}
Example HTTP response
Response 200
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 409
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.5. Certificates

APIs for managing Certificates

3.5.1. Get certificate authorities information

GET /v1/certificate-authorities
Description

Get certificate authorities information

Responses
HTTP Code Description Schema

200

OK

400

Bad request

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/certificate-authorities
Example HTTP response
Response 200
{
  "elements" : [ {
    "commonName" : "string",
    "country" : "string",
    "id" : "One among: OpenSSL, Microsoft",
    "locality" : "string",
    "organization" : "string",
    "organizationUnit" : "string",
    "serverUrl" : "string",
    "state" : "string",
    "templateName" : "string",
    "username" : "string"
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.5.2. Create a certificate authority

PUT /v1/certificate-authorities
Description

Creates a certificate authority. This is required to generate signed certificates by supporting CAs.

Parameters
Type Name Description Schema

Body

certificateAuthorityCreationSpec
required

certificateAuthorityCreationSpec

Responses
HTTP Code Description Schema

200

OK

object

400

Bad request

500

Internal server error

Consumes
  • application/json

Produces
  • */*

Example HTTP request
Request path
/v1/certificate-authorities
Request body
{
  "microsoftCertificateAuthoritySpec" : {
    "secret" : "string",
    "serverUrl" : "string",
    "templateName" : "string",
    "username" : "string"
  },
  "openSSLCertificateAuthoritySpec" : {
    "commonName" : "string",
    "country" : "string",
    "locality" : "string",
    "organization" : "string",
    "organizationUnit" : "string",
    "state" : "string"
  }
}
Example HTTP response
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.5.3. Configure existing certificate authority

PATCH /v1/certificate-authorities
Description

Configure existing certificate authority

Parameters
Type Name Description Schema

Body

certificateAuthoritySpec
required

certificateAuthoritySpec

Responses
HTTP Code Description Schema

200

OK

object

400

Bad request

404

Not Found

500

Internal server error

Consumes
  • application/json

Produces
  • */*

Example HTTP request
Request path
/v1/certificate-authorities
Request body
{
  "microsoftCertificateAuthoritySpec" : {
    "secret" : "string",
    "serverUrl" : "string",
    "templateName" : "string",
    "username" : "string"
  },
  "openSSLCertificateAuthoritySpec" : {
    "commonName" : "string",
    "country" : "string",
    "locality" : "string",
    "organization" : "string",
    "organizationUnit" : "string",
    "state" : "string"
  }
}
Example HTTP response
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.5.4. Deletes CA configuration file

DELETE /v1/certificate-authorities/{caType}
Description

Deletes CA configuration file

Parameters
Type Name Description Schema

Path

caType
required

The CA type

string

Responses
HTTP Code Description Schema

200

OK

object

204

No contet

object

404

Not Found

500

Internal server error

Consumes
  • application/json

Produces
  • */*

Example HTTP request
Request path
/v1/certificate-authorities/string
Example HTTP response
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.5.5. Get certificate authority information

GET /v1/certificate-authorities/{id}
Description

Get certificate authority information

Parameters
Type Name Description Schema

Path

id
required

CA type

string

Responses
HTTP Code Description Schema

200

OK

404

Not Found

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/certificate-authorities/string
Example HTTP response
Response 200
{
  "commonName" : "string",
  "country" : "string",
  "id" : "One among: OpenSSL, Microsoft",
  "locality" : "string",
  "organization" : "string",
  "organizationUnit" : "string",
  "serverUrl" : "string",
  "state" : "string",
  "templateName" : "string",
  "username" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.5.6. Get latest generated certificate(s) in a domain.

GET /v1/domains/{domainName}/certificates
Description

Get latest generated certificate(s) in a domain.

Parameters
Type Name Description Schema

Path

domainName
required

The domain name

string

Responses
HTTP Code Description Schema

200

OK

404

Not Found

500

Internal server error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/domains/string/certificates
Example HTTP response
Response 200
{
  "elements" : [ {
    "expirationStatus" : "One among: ACTIVE, ABOUT_TO_EXPIRE, EXPIRED",
    "getCertificateError" : "string",
    "isInstalled" : true,
    "issuedBy" : "string",
    "issuedTo" : "string",
    "keySize" : "One among: 2048, 3072, 4096",
    "notAfter" : "string",
    "notBefore" : "string",
    "numberOfDaysToExpire" : 0,
    "pemEncoded" : "string",
    "publicKey" : "string",
    "publicKeyAlgorithm" : "One among: RSA",
    "serialNumber" : "string",
    "signatureAlgorithm" : "string",
    "subject" : "string",
    "subjectAlternativeName" : [ "string" ],
    "thumbprint" : "string",
    "thumbprintAlgorithm" : "string",
    "version" : "string"
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.5.7. Generate certificate(s) for the selected resource(s) in a domain

PUT /v1/domains/{domainName}/certificates
Description

Generate certificate(s) for the selected resource(s) in a domain. CA must be configured and CSR must be generated beforehand.

Parameters
Type Name Description Schema

Path

domainName
required

The domain name

string

Body

certificateGenerationSpec
required

certificateGenerationSpec

Responses
HTTP Code Description Schema

200

OK

202

Accepted

400

Bad request

404

Not Found

409

Conflict

500

Internal server error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/domains/string/certificates
Request body
{
  "caType" : "One among: OpenSSL, Microsoft",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ]
}
Example HTTP response
Response 200
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 409
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.5.8. Replace certificate(s) for the selected resource(s) in a domain

PATCH /v1/domains/{domainName}/certificates
Description

Replace certificate(s) for the selected resource(s) in a domain

Parameters
Type Name Description Schema

Path

domainName
required

The domain name

string

Body

certificateOperationSpec
required

certificateOperationSpec

Responses
HTTP Code Description Schema

200

OK

202

Accepted

400

Bad request

403

Forbidden

404

Not Found

409

Conflict

500

Internal server error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/domains/string/certificates
Request body
{
  "operationType" : "One among: INSTALL",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ]
}
Example HTTP response
Response 200
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 403
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 409
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.5.9. Upload certificates to the certificate store

PUT /v1/domains/{domainName}/certificates/uploads
Description

Upload certificates to the certificate store

Parameters
Type Name Description Schema

Path

domainName
required

The domain name

string

FormData

file
required

file

file

Responses
HTTP Code Description Schema

200

OK

object

400

Bad request.

404

Not Found

500

Internal server error

Consumes
  • multipart/form-data

Produces
  • application/json

Example HTTP request
Request path
/v1/domains/string/certificates/uploads
Example HTTP response
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.5.10. Get available CSR(s) in json format

GET /v1/domains/{domainName}/csrs
Description

Get available CSR(s) in json format

Parameters
Type Name Description Schema

Path

domainName
required

The domain name

string

Responses
HTTP Code Description Schema

200

OK

404

Not Found

500

Internal server error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/domains/string/csrs
Example HTTP response
Response 200
{
  "elements" : [ {
    "csrEncodedContent" : "string",
    "resource" : {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    }
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.5.11. Generate CSR(s)

PUT /v1/domains/{domainName}/csrs
Description

Generate CSR(s) for the selected resource(s) in the domain.

Warning:
Avoid using wildcard certificates. Instead, use subdomain-specific certificates that are rotated often. A compromised wildcard certificate can lead to security repercussions.

Parameters
Type Name Description Schema

Path

domainName
required

The domain name

string

Body

csrsGenerationSpec
required

csrsGenerationSpec

Responses
HTTP Code Description Schema

200

OK

202

Accepted

400

Bad request

404

Not Found

409

Conflict

500

Internal server error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/domains/string/csrs
Request body
{
  "csrGenerationSpec" : {
    "country" : "string",
    "email" : "string",
    "keyAlgorithm" : "One among: RSA",
    "keySize" : "One among: 2048, 3072, 4096",
    "locality" : "string",
    "organization" : "string",
    "organizationUnit" : "string",
    "state" : "string"
  },
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ]
}
Example HTTP response
Response 200
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 409
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.5.12. Download available CSR(s) in tar.gz format

GET /v1/domains/{domainName}/csrs/downloads
Description

Download available CSR(s) in tar.gz format

Parameters
Type Name Description Schema

Path

domainName
required

The domain name

string

Responses
HTTP Code Description Schema

200

OK

string (byte)

404

Not Found

500

Internal server error

Consumes
  • application/json

Produces
  • application/octet-stream

Example HTTP request
Request path
/v1/domains/string/csrs/downloads
Example HTTP response
Response 200
"Ynl0ZQ=="
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.5.13. View certificate of all the resources in a domain

GET /v1/domains/{domainName}/resource-certificates
Description

View detailed metadata about the certificate(s) of all the resources in a domain

Parameters
Type Name Description Schema

Path

domainName
required

The domain name

string

Responses
HTTP Code Description Schema

200

OK

404

Not Found

500

Internal server error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/domains/string/resource-certificates
Example HTTP response
Response 200
{
  "elements" : [ {
    "expirationStatus" : "One among: ACTIVE, ABOUT_TO_EXPIRE, EXPIRED",
    "getCertificateError" : "string",
    "isInstalled" : true,
    "issuedBy" : "string",
    "issuedTo" : "string",
    "keySize" : "One among: 2048, 3072, 4096",
    "notAfter" : "string",
    "notBefore" : "string",
    "numberOfDaysToExpire" : 0,
    "pemEncoded" : "string",
    "publicKey" : "string",
    "publicKeyAlgorithm" : "One among: RSA",
    "serialNumber" : "string",
    "signatureAlgorithm" : "string",
    "subject" : "string",
    "subjectAlternativeName" : [ "string" ],
    "thumbprint" : "string",
    "thumbprintAlgorithm" : "string",
    "version" : "string"
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.6. Clusters

APIs for managing Clusters

3.6.1. Create a Cluster and add to an existing Domain

POST /v1/clusters
Parameters
Type Name Description Schema

Body

clusterCreationSpec
required

Cluster Creation Spec

Responses
HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/clusters
Request body
{
  "computeSpec" : {
    "clusterSpecs" : [ {
      "advancedOptions" : {
        "evcMode" : "One among: INTEL_MEROM, INTEL_PENRYN, INTEL_NEALEM, INTEL_WESTMERE, INTEL_SANDYBRIDGE, INTEL_IVYBRIDGE, INTEL_HASWELL, INTEL_BROADWELL, INTEL_SKYLAKE, INTEL_CASCADELAKE, AMD_REV_E, AMD_REV_F, AMD_GREYHOUND_NO3DNOW, AMD_GREYHOUND, AMD_BULLDOZER, AMD_PILEDRIVER, AMD_STREAMROLLER, AMD_ZEN",
        "highAvailability" : {
          "enabled" : true
        }
      },
      "clusterImageId" : "string",
      "datastoreSpec" : {
        "nfsDatastoreSpecs" : [ {
          "datastoreName" : "string",
          "nasVolume" : {
            "path" : "string",
            "readOnly" : true,
            "serverName" : [ "string" ],
            "userTag" : "string"
          }
        } ],
        "vmfsDatastoreSpec" : {
          "fcSpec" : [ {
            "datastoreName" : "string"
          } ]
        },
        "vsanDatastoreSpec" : {
          "datastoreName" : "string",
          "dedupAndCompressionEnabled" : true,
          "failuresToTolerate" : 0,
          "licenseKey" : "string"
        },
        "vvolDatastoreSpecs" : [ {
          "name" : "string",
          "vasaProviderSpec" : {
            "storageContainerId" : "string",
            "storageProtocolType" : "One among: ISCSI, NFS, FC",
            "userId" : "string",
            "vasaProviderId" : "string"
          }
        } ]
      },
      "hostSpecs" : [ {
        "azName" : "string",
        "hostName" : "string",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "string",
            "moveToNvds" : true,
            "uplink" : "string",
            "vdsName" : "string"
          } ]
        },
        "id" : "string",
        "ipAddress" : "string",
        "licenseKey" : "string",
        "password" : "string",
        "serialNumber" : "string",
        "sshThumbprint" : "string",
        "username" : "string"
      } ],
      "name" : "string",
      "networkSpec" : {
        "nsxClusterSpec" : {
          "nsxTClusterSpec" : {
            "geneveVlanId" : 0,
            "ipAddressPoolSpec" : {
              "description" : "string",
              "ignoreUnavailableNsxtCluster" : true,
              "name" : "string",
              "subnets" : [ {
                "cidr" : "string",
                "gateway" : "string",
                "ipAddressPoolRanges" : [ {
                  "end" : "string",
                  "start" : "string"
                } ]
              } ]
            }
          }
        },
        "vdsSpecs" : [ {
          "isUsedByNsxt" : true,
          "name" : "string",
          "niocBandwidthAllocationSpecs" : [ {
            "niocTrafficResourceAllocation" : {
              "limit" : 0,
              "reservation" : 0,
              "sharesInfo" : {
                "level" : "One among: low, normal, high, custom",
                "shares" : 0
              }
            },
            "type" : "string"
          } ],
          "portGroupSpecs" : [ {
            "activeUplinks" : [ "string" ],
            "name" : "string",
            "transportType" : "One among: VSAN, VMOTION, MANAGEMENT, PUBLIC, NFS, VREALIZE, ISCSI, EDGE_INFRA_OVERLAY_UPLINK"
          } ]
        } ]
      },
      "skipThumbprintValidation" : true,
      "vxRailDetails" : {
        "adminCredentials" : {
          "credentialType" : "One among: SSH",
          "password" : "string",
          "username" : "string"
        },
        "dnsName" : "string",
        "ipAddress" : "string",
        "networks" : [ {
          "freeIps" : [ "string" ],
          "gateway" : "string",
          "id" : "string",
          "ipPools" : [ {
            "end" : "string",
            "start" : "string"
          } ],
          "mask" : "string",
          "mtu" : 0,
          "subnet" : "string",
          "type" : "string",
          "usedIps" : [ "string" ],
          "vlanId" : 0
        } ],
        "nicProfile" : "string",
        "rootCredentials" : {
          "credentialType" : "One among: SSH",
          "password" : "string",
          "username" : "string"
        },
        "sshThumbprint" : "string",
        "sslThumbprint" : "string"
      }
    } ],
    "skipFailedHosts" : false
  },
  "domainId" : "string"
}
Example HTTP response
Response 200
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.6.2. Get the Clusters

GET /v1/clusters
Parameters
Type Name Description Schema

Query

isStretched
optional

isStretched

boolean

Responses
HTTP Code Description Schema

200

Ok

400

Bad Request

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 200
{
  "elements" : [ {
    "hosts" : [ {
      "azName" : "string",
      "fqdn" : "string",
      "id" : "string",
      "ipAddress" : "string",
      "vmNics" : [ {
        "isActive" : true,
        "isAutoNegotiateSupported" : true,
        "isInUse" : true,
        "linkSpeedMB" : 0,
        "name" : "string"
      } ]
    } ],
    "id" : "string",
    "isDefault" : true,
    "isStretched" : true,
    "name" : "string",
    "primaryDatastoreName" : "string",
    "primaryDatastoreType" : "One among: VSAN, NFS, FC, VVOL_FC, VVOL_ISCSI, VVOL_NFS",
    "vdsSpecs" : [ {
      "isUsedByNsxt" : true,
      "name" : "string",
      "niocBandwidthAllocationSpecs" : [ {
        "niocTrafficResourceAllocation" : {
          "limit" : 0,
          "reservation" : 0,
          "sharesInfo" : {
            "level" : "One among: low, normal, high, custom",
            "shares" : 0
          }
        },
        "type" : "string"
      } ],
      "portGroupSpecs" : [ {
        "activeUplinks" : [ "string" ],
        "name" : "string",
        "transportType" : "One among: VSAN, VMOTION, MANAGEMENT, PUBLIC, NFS, VREALIZE, ISCSI, EDGE_INFRA_OVERLAY_UPLINK"
      } ]
    } ]
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.6.3. Validate the input spec for clusters operations

POST /v1/clusters/validations
Parameters
Type Name Description Schema

Body

clusterCreationSpec
required

Clusters Operation Spec Validation

Responses
HTTP Code Description Schema

200

Ok

400

Bad Request

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/clusters/validations
Request body
{
  "computeSpec" : {
    "clusterSpecs" : [ {
      "advancedOptions" : {
        "evcMode" : "One among: INTEL_MEROM, INTEL_PENRYN, INTEL_NEALEM, INTEL_WESTMERE, INTEL_SANDYBRIDGE, INTEL_IVYBRIDGE, INTEL_HASWELL, INTEL_BROADWELL, INTEL_SKYLAKE, INTEL_CASCADELAKE, AMD_REV_E, AMD_REV_F, AMD_GREYHOUND_NO3DNOW, AMD_GREYHOUND, AMD_BULLDOZER, AMD_PILEDRIVER, AMD_STREAMROLLER, AMD_ZEN",
        "highAvailability" : {
          "enabled" : true
        }
      },
      "clusterImageId" : "string",
      "datastoreSpec" : {
        "nfsDatastoreSpecs" : [ {
          "datastoreName" : "string",
          "nasVolume" : {
            "path" : "string",
            "readOnly" : true,
            "serverName" : [ "string" ],
            "userTag" : "string"
          }
        } ],
        "vmfsDatastoreSpec" : {
          "fcSpec" : [ {
            "datastoreName" : "string"
          } ]
        },
        "vsanDatastoreSpec" : {
          "datastoreName" : "string",
          "dedupAndCompressionEnabled" : true,
          "failuresToTolerate" : 0,
          "licenseKey" : "string"
        },
        "vvolDatastoreSpecs" : [ {
          "name" : "string",
          "vasaProviderSpec" : {
            "storageContainerId" : "string",
            "storageProtocolType" : "One among: ISCSI, NFS, FC",
            "userId" : "string",
            "vasaProviderId" : "string"
          }
        } ]
      },
      "hostSpecs" : [ {
        "azName" : "string",
        "hostName" : "string",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "string",
            "moveToNvds" : true,
            "uplink" : "string",
            "vdsName" : "string"
          } ]
        },
        "id" : "string",
        "ipAddress" : "string",
        "licenseKey" : "string",
        "password" : "string",
        "serialNumber" : "string",
        "sshThumbprint" : "string",
        "username" : "string"
      } ],
      "name" : "string",
      "networkSpec" : {
        "nsxClusterSpec" : {
          "nsxTClusterSpec" : {
            "geneveVlanId" : 0,
            "ipAddressPoolSpec" : {
              "description" : "string",
              "ignoreUnavailableNsxtCluster" : true,
              "name" : "string",
              "subnets" : [ {
                "cidr" : "string",
                "gateway" : "string",
                "ipAddressPoolRanges" : [ {
                  "end" : "string",
                  "start" : "string"
                } ]
              } ]
            }
          }
        },
        "vdsSpecs" : [ {
          "isUsedByNsxt" : true,
          "name" : "string",
          "niocBandwidthAllocationSpecs" : [ {
            "niocTrafficResourceAllocation" : {
              "limit" : 0,
              "reservation" : 0,
              "sharesInfo" : {
                "level" : "One among: low, normal, high, custom",
                "shares" : 0
              }
            },
            "type" : "string"
          } ],
          "portGroupSpecs" : [ {
            "activeUplinks" : [ "string" ],
            "name" : "string",
            "transportType" : "One among: VSAN, VMOTION, MANAGEMENT, PUBLIC, NFS, VREALIZE, ISCSI, EDGE_INFRA_OVERLAY_UPLINK"
          } ]
        } ]
      },
      "skipThumbprintValidation" : true,
      "vxRailDetails" : {
        "adminCredentials" : {
          "credentialType" : "One among: SSH",
          "password" : "string",
          "username" : "string"
        },
        "dnsName" : "string",
        "ipAddress" : "string",
        "networks" : [ {
          "freeIps" : [ "string" ],
          "gateway" : "string",
          "id" : "string",
          "ipPools" : [ {
            "end" : "string",
            "start" : "string"
          } ],
          "mask" : "string",
          "mtu" : 0,
          "subnet" : "string",
          "type" : "string",
          "usedIps" : [ "string" ],
          "vlanId" : 0
        } ],
        "nicProfile" : "string",
        "rootCredentials" : {
          "credentialType" : "One among: SSH",
          "password" : "string",
          "username" : "string"
        },
        "sshThumbprint" : "string",
        "sslThumbprint" : "string"
      }
    } ],
    "skipFailedHosts" : false
  },
  "domainId" : "string"
}
Example HTTP response
Response 200
{
  "additionalProperties" : {
    "string" : "string"
  },
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS, CANCELLATION_IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "nestedValidationChecks" : [ {
      "description" : "string",
      "errorResponse" : {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.6.4. Get query response

GET /v1/clusters/{clusterId}/hosts/queries/{queryId}
Parameters
Type Name Description Schema

Path

clusterId
required

Cluster ID

string

Path

queryId
required

Query ID

string

Responses
HTTP Code Description Schema

200

Ok

400

Bad Request

404

Query Not Found

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/clusters/string/hosts/queries/string
Example HTTP response
Response 200
{
  "queryInfo" : {
    "completed" : true,
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "failure" : true,
    "processing" : true,
    "status" : "string"
  },
  "result" : {
    "elements" : [ {
      "bundleRepoDatastore" : "string",
      "cluster" : {
        "id" : "string"
      },
      "compatibleStorageType" : "string",
      "cpu" : {
        "cores" : 0,
        "cpuCores" : [ {
          "frequencyMHz" : 0.0,
          "manufacturer" : "string",
          "model" : "string"
        } ],
        "frequencyMHz" : 0.0,
        "usedFrequencyMHz" : 0.0
      },
      "domain" : {
        "id" : "string",
        "name" : "string"
      },
      "esxiVersion" : "string",
      "fqdn" : "string",
      "hardwareModel" : "string",
      "hardwareVendor" : "string",
      "hybrid" : true,
      "id" : "string",
      "ipAddresses" : [ {
        "ipAddress" : "string",
        "type" : "One among: MANAGEMENT, VSAN, VMOTION, NFS"
      } ],
      "isPrimary" : true,
      "memory" : {
        "totalCapacityMB" : 0.0,
        "usedCapacityMB" : 0.0
      },
      "networkpool" : {
        "id" : "string",
        "name" : "string"
      },
      "physicalNics" : [ {
        "deviceName" : "string",
        "macAddress" : "string",
        "speed" : 0
      } ],
      "serialNumber" : {
        "present" : true
      },
      "sshThumbprint" : {
        "present" : true
      },
      "sslThumbprint" : {
        "present" : true
      },
      "status" : "One among: ASSIGNED, UNASSIGNED_USEABLE, UNASSIGNED_UNUSEABLE",
      "storage" : {
        "disks" : [ {
          "capacityMB" : 0.0,
          "diskType" : "One among: HDD, FLASH",
          "manufacturer" : "string",
          "model" : "string"
        } ],
        "totalCapacityMB" : 0.0,
        "usedCapacityMB" : 0.0
      }
    } ],
    "pageMetadata" : {
      "pageNumber" : 0,
      "pageSize" : 0,
      "totalElements" : 0,
      "totalPages" : 0
    }
  }
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.6.5. Get the list of VDSes of a cluster.

GET /v1/clusters/{clusterId}/vdses
Parameters
Type Name Description Schema

Path

clusterId
required

Cluster ID

string

Responses
HTTP Code Description Schema

200

Ok

< Vds > array

400

Bad Request

404

Cluster Not Found

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/clusters/string/vdses
Example HTTP response
Response 200
[ {
  "id" : "string",
  "isUsedByNsxt" : true,
  "mtu" : 0,
  "name" : "string",
  "niocBandwidthAllocations" : [ {
    "niocTrafficResourceAllocation" : {
      "limit" : 0,
      "reservation" : 0,
      "sharesInfo" : {
        "level" : "One among: low, normal, high, custom",
        "shares" : 0
      }
    },
    "type" : "One among: management, faultTolerance, vmotion, virtualMachine, iSCSI, nfs, hbr, vsan, vdp"
  } ],
  "portGroups" : [ {
    "activeUplinks" : [ "string" ],
    "name" : "string",
    "portBindingType" : "One among: STATIC, DYNAMIC, EPHEMERAL",
    "standbyUplinks" : [ "string" ],
    "transportType" : "One among: VSAN, VMOTION, MANAGEMENT, PUBLIC, NFS, VREALIZE, ISCSI, EDGE_INFRA_OVERLAY_UPLINK",
    "vlanId" : 0
  } ]
} ]
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.6.6. Get a Cluster

GET /v1/clusters/{id}
Parameters
Type Name Description Schema

Path

id
required

Cluster ID

string

Responses
HTTP Code Description Schema

200

Ok

404

Cluster not found

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/clusters/string
Example HTTP response
Response 200
{
  "hosts" : [ {
    "azName" : "string",
    "fqdn" : "string",
    "id" : "string",
    "ipAddress" : "string",
    "vmNics" : [ {
      "isActive" : true,
      "isAutoNegotiateSupported" : true,
      "isInUse" : true,
      "linkSpeedMB" : 0,
      "name" : "string"
    } ]
  } ],
  "id" : "string",
  "isDefault" : true,
  "isStretched" : true,
  "name" : "string",
  "primaryDatastoreName" : "string",
  "primaryDatastoreType" : "One among: VSAN, NFS, FC, VVOL_FC, VVOL_ISCSI, VVOL_NFS",
  "vdsSpecs" : [ {
    "isUsedByNsxt" : true,
    "name" : "string",
    "niocBandwidthAllocationSpecs" : [ {
      "niocTrafficResourceAllocation" : {
        "limit" : 0,
        "reservation" : 0,
        "sharesInfo" : {
          "level" : "One among: low, normal, high, custom",
          "shares" : 0
        }
      },
      "type" : "string"
    } ],
    "portGroupSpecs" : [ {
      "activeUplinks" : [ "string" ],
      "name" : "string",
      "transportType" : "One among: VSAN, VMOTION, MANAGEMENT, PUBLIC, NFS, VREALIZE, ISCSI, EDGE_INFRA_OVERLAY_UPLINK"
    } ]
  } ]
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.6.7. Delete a Cluster from a Domain if it has been previously initialized for deletion

DELETE /v1/clusters/{id}
Parameters
Type Name Description Schema

Path

id
required

Cluster ID

string

Responses
HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

404

Not Found

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/clusters/string
Example HTTP response
Response 200
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.6.8. Update a Cluster by adding or removing Hosts, Stretching a standard vSAN cluster, Unstretching a stretched cluster or by marking for deletion

PATCH /v1/clusters/{id}
Parameters
Type Name Description Schema

Path

id
required

Cluster ID

string

Body

clusterUpdateSpec
required

Cluster Update Data

Responses
HTTP Code Description Schema

200

Ok

202

Accepted

400

Bad Request

404

Not Found

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/clusters/string
Request body
{
  "clusterCompactionSpec" : {
    "force" : true,
    "forceByPassingSafeMinSize" : true,
    "hosts" : [ {
      "azName" : "string",
      "fqdn" : "string",
      "id" : "string",
      "ipAddress" : "string",
      "vmNics" : [ {
        "isActive" : true,
        "isAutoNegotiateSupported" : true,
        "isInUse" : true,
        "linkSpeedMB" : 0,
        "name" : "string"
      } ]
    } ]
  },
  "clusterExpansionSpec" : {
    "forceHostAdditionInPresenceofDeadHosts" : true,
    "hostSpecs" : [ {
      "azName" : "string",
      "hostName" : "string",
      "hostNetworkSpec" : {
        "vmNics" : [ {
          "id" : "string",
          "moveToNvds" : true,
          "uplink" : "string",
          "vdsName" : "string"
        } ]
      },
      "id" : "string",
      "ipAddress" : "string",
      "licenseKey" : "string",
      "password" : "string",
      "serialNumber" : "string",
      "sshThumbprint" : "string",
      "username" : "string"
    } ],
    "interRackExpansion" : true,
    "skipThumbprintValidation" : true,
    "vsanNetworkSpecs" : [ {
      "vsanCidr" : "string",
      "vsanGatewayIP" : "string"
    } ],
    "witnessSpec" : {
      "fqdn" : "string",
      "vsanCidr" : "string",
      "vsanIp" : "string"
    },
    "witnessTrafficSharedWithVsanTraffic" : true
  },
  "clusterStretchSpec" : {
    "hostSpecs" : [ {
      "azName" : "string",
      "hostName" : "string",
      "hostNetworkSpec" : {
        "vmNics" : [ {
          "id" : "string",
          "moveToNvds" : true,
          "uplink" : "string",
          "vdsName" : "string"
        } ]
      },
      "id" : "string",
      "ipAddress" : "string",
      "licenseKey" : "string",
      "password" : "string",
      "serialNumber" : "string",
      "sshThumbprint" : "string",
      "username" : "string"
    } ],
    "isEdgeClusterConfiguredForMultiAZ" : true,
    "secondaryAzOverlayVlanId" : 0,
    "vsanNetworkSpecs" : [ {
      "vsanCidr" : "string",
      "vsanGatewayIP" : "string"
    } ],
    "witnessSpec" : {
      "fqdn" : "string",
      "vsanCidr" : "string",
      "vsanIp" : "string"
    },
    "witnessTrafficSharedWithVsanTraffic" : true
  },
  "clusterUnstretchSpec" : { },
  "markForDeletion" : true,
  "prepareForStretch" : true
}
Example HTTP response
Response 200
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.6.9. Get all host criteria

GET /v1/clusters/{id}/hosts/criteria
Parameters
Type Name Description Schema

Path

id
required

Cluster ID

string

Responses
HTTP Code Description Schema

200

Ok

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/clusters/string/hosts/criteria
Example HTTP response
Response 200
{
  "elements" : [ {
    "arguments" : {
      "string" : "string"
    },
    "description" : "string",
    "name" : "One among: HOST_COMPATIBLE_WITH_CLUSTER_USING_PNICS, UNMANAGED_HOSTS_IN_VCENTER, UNMANAGED_HOSTS_IN_HCIMGR"
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}

3.6.10. Get a criterion to query for host

GET /v1/clusters/{id}/hosts/criteria/{name}
Parameters
Type Name Description Schema

Path

id
required

Cluster ID

string

Path

name
required

Criteria Name

string

Responses
HTTP Code Description Schema

200

Ok

404

Criterion Not Found

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/clusters/string/hosts/criteria/string
Example HTTP response
Response 200
{
  "arguments" : {
    "string" : "string"
  },
  "description" : "string",
  "name" : "One among: HOST_COMPATIBLE_WITH_CLUSTER_USING_PNICS, UNMANAGED_HOSTS_IN_VCENTER, UNMANAGED_HOSTS_IN_HCIMGR"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.6.11. Post a host query

POST /v1/clusters/{id}/hosts/queries
Parameters
Type Name Description Schema

Path

id
required

Cluster ID

string

Body

hostCriterion
required

hostCriterion

Responses
HTTP Code Description Schema

200

Ok

400

Bad Request

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/clusters/string/hosts/queries
Request body
{
  "arguments" : {
    "string" : "string"
  },
  "description" : "string",
  "name" : "One among: HOST_COMPATIBLE_WITH_CLUSTER_USING_PNICS, UNMANAGED_HOSTS_IN_VCENTER, UNMANAGED_HOSTS_IN_HCIMGR"
}
Example HTTP response
Response 200
{
  "queryInfo" : {
    "completed" : true,
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "failure" : true,
    "processing" : true,
    "status" : "string"
  },
  "result" : {
    "elements" : [ {
      "bundleRepoDatastore" : "string",
      "cluster" : {
        "id" : "string"
      },
      "compatibleStorageType" : "string",
      "cpu" : {
        "cores" : 0,
        "cpuCores" : [ {
          "frequencyMHz" : 0.0,
          "manufacturer" : "string",
          "model" : "string"
        } ],
        "frequencyMHz" : 0.0,
        "usedFrequencyMHz" : 0.0
      },
      "domain" : {
        "id" : "string",
        "name" : "string"
      },
      "esxiVersion" : "string",
      "fqdn" : "string",
      "hardwareModel" : "string",
      "hardwareVendor" : "string",
      "hybrid" : true,
      "id" : "string",
      "ipAddresses" : [ {
        "ipAddress" : "string",
        "type" : "One among: MANAGEMENT, VSAN, VMOTION, NFS"
      } ],
      "isPrimary" : true,
      "memory" : {
        "totalCapacityMB" : 0.0,
        "usedCapacityMB" : 0.0
      },
      "networkpool" : {
        "id" : "string",
        "name" : "string"
      },
      "physicalNics" : [ {
        "deviceName" : "string",
        "macAddress" : "string",
        "speed" : 0
      } ],
      "serialNumber" : {
        "present" : true
      },
      "sshThumbprint" : {
        "present" : true
      },
      "sslThumbprint" : {
        "present" : true
      },
      "status" : "One among: ASSIGNED, UNASSIGNED_USEABLE, UNASSIGNED_UNUSEABLE",
      "storage" : {
        "disks" : [ {
          "capacityMB" : 0.0,
          "diskType" : "One among: HDD, FLASH",
          "manufacturer" : "string",
          "model" : "string"
        } ],
        "totalCapacityMB" : 0.0,
        "usedCapacityMB" : 0.0
      }
    } ],
    "pageMetadata" : {
      "pageNumber" : 0,
      "pageSize" : 0,
      "totalElements" : 0,
      "totalPages" : 0
    }
  }
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.6.12. Validate the input spec for operations on a cluster

POST /v1/clusters/{id}/validations
Parameters
Type Name Description Schema

Path

id
required

Cluster ID

string

Body

clusterUpdateSpec
required

clusterUpdateSpec

Responses
HTTP Code Description Schema

200

Ok

400

Bad Request

404

Not Found

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/clusters/string/validations
Request body
{
  "clusterCompactionSpec" : {
    "force" : true,
    "forceByPassingSafeMinSize" : true,
    "hosts" : [ {
      "azName" : "string",
      "fqdn" : "string",
      "id" : "string",
      "ipAddress" : "string",
      "vmNics" : [ {
        "isActive" : true,
        "isAutoNegotiateSupported" : true,
        "isInUse" : true,
        "linkSpeedMB" : 0,
        "name" : "string"
      } ]
    } ]
  },
  "clusterExpansionSpec" : {
    "forceHostAdditionInPresenceofDeadHosts" : true,
    "hostSpecs" : [ {
      "azName" : "string",
      "hostName" : "string",
      "hostNetworkSpec" : {
        "vmNics" : [ {
          "id" : "string",
          "moveToNvds" : true,
          "uplink" : "string",
          "vdsName" : "string"
        } ]
      },
      "id" : "string",
      "ipAddress" : "string",
      "licenseKey" : "string",
      "password" : "string",
      "serialNumber" : "string",
      "sshThumbprint" : "string",
      "username" : "string"
    } ],
    "interRackExpansion" : true,
    "skipThumbprintValidation" : true,
    "vsanNetworkSpecs" : [ {
      "vsanCidr" : "string",
      "vsanGatewayIP" : "string"
    } ],
    "witnessSpec" : {
      "fqdn" : "string",
      "vsanCidr" : "string",
      "vsanIp" : "string"
    },
    "witnessTrafficSharedWithVsanTraffic" : true
  },
  "clusterStretchSpec" : {
    "hostSpecs" : [ {
      "azName" : "string",
      "hostName" : "string",
      "hostNetworkSpec" : {
        "vmNics" : [ {
          "id" : "string",
          "moveToNvds" : true,
          "uplink" : "string",
          "vdsName" : "string"
        } ]
      },
      "id" : "string",
      "ipAddress" : "string",
      "licenseKey" : "string",
      "password" : "string",
      "serialNumber" : "string",
      "sshThumbprint" : "string",
      "username" : "string"
    } ],
    "isEdgeClusterConfiguredForMultiAZ" : true,
    "secondaryAzOverlayVlanId" : 0,
    "vsanNetworkSpecs" : [ {
      "vsanCidr" : "string",
      "vsanGatewayIP" : "string"
    } ],
    "witnessSpec" : {
      "fqdn" : "string",
      "vsanCidr" : "string",
      "vsanIp" : "string"
    },
    "witnessTrafficSharedWithVsanTraffic" : true
  },
  "clusterUnstretchSpec" : { },
  "markForDeletion" : true,
  "prepareForStretch" : true
}
Example HTTP response
Response 200
{
  "additionalProperties" : {
    "string" : "string"
  },
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS, CANCELLATION_IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "nestedValidationChecks" : [ {
      "description" : "string",
      "errorResponse" : {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.7. Credentials

APIs for managing Credentials

3.7.1. Get the Credentials

GET /v1/credentials
Description

Get the Credentials

Parameters
Type Name Description Schema

Query

accountType
optional

Type of the account that needs to be fetched by filtering

string

Query

domainName
optional

The name of the domain to which the resource belongs to (may be null in case there is no associated domain)

string

Query

pageNumber
optional

The page number (must be a positive number), starts with 0

string

Query

pageSize
optional

The page size (must be a positive number, 0 as page size returns all records in one page

string

Query

resourceIp
optional

The IP address of the resource

string

Query

resourceName
optional

The name of the resource

string

Query

resourceType
optional

The type of the resource. One among: ESXI, VCENTER, PSC, NSX_MANAGER, NSX_CONTROLLER, NSX_EDGE, NSXT_MANAGER, NSXT_EDGE, VRLI, VROPS, VRA, WSA, VRSLCM, VXRAIL_MANAGER, BACKUP

string

Responses
HTTP Code Description Schema

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 200
{
  "elements" : [ {
    "accountType" : "One among: USER, SYSTEM, SERVICE",
    "autoRotatePolicy" : {
      "frequencyInDays" : 0,
      "nextSchedule" : "string"
    },
    "creationTimestamp" : "string",
    "credentialType" : "One among: SSO, SSH, API, FTP, AUDIT",
    "id" : "string",
    "modificationTimestamp" : "string",
    "password" : "string",
    "resource" : {
      "domainName" : "string",
      "resourceId" : "string",
      "resourceIp" : "string",
      "resourceName" : "string",
      "resourceType" : "One among: ESXI, VCENTER, PSC, NSX_MANAGER, NSX_CONTROLLER, NSX_EDGE, NSXT_MANAGER, NSXT_EDGE, VRLI, VROPS, VRA, WSA, VRSLCM, VXRAIL_MANAGER, BACKUP"
    },
    "username" : "string"
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 401
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 403
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.7.2. Update or rotate passwords for a list of resources

PATCH /v1/credentials
Description

Update passwords for given list of resources by supplying new passwords or rotate the passwords using system generated passwords

Parameters
Type Name Description Schema

Body

credentialsUpdateSpec
required

credentialsUpdateSpec

Responses
HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

401

Unauthorized

403

Forbidden

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/credentials
Request body
{
  "autoRotatePolicy" : {
    "enableAutoRotatePolicy" : true,
    "frequencyInDays" : 0
  },
  "elements" : [ {
    "credentials" : [ {
      "accountType" : "One among: USER, SYSTEM, SERVICE",
      "credentialType" : "One among: SSO, SSH, API, FTP, AUDIT",
      "password" : "string",
      "username" : "string"
    } ],
    "resourceId" : "string",
    "resourceName" : "string",
    "resourceType" : "One among: ESXI, VCENTER, PSC, NSX_MANAGER, NSX_CONTROLLER, NSX_EDGE, NSXT_MANAGER, NSXT_EDGE, VRLI, VROPS, VRA, WSA, VRSLCM, VXRAIL_MANAGER, BACKUP"
  } ],
  "operationType" : "One among: UPDATE, ROTATE, REMEDIATE, UPDATE_AUTO_ROTATE_POLICY"
}
Example HTTP response
Response 200
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 401
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 403
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.7.3. Fetch the credentials tasks

GET /v1/credentials/tasks
Description

Fetch all credentials tasks in reverse chronological order

Parameters
Type Name Description Schema

Query

limit
optional

The number of elements to be returned in the result

integer (int32)

Responses
HTTP Code Description Schema

200

OK

400

Bad Request

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/credentials/tasks
Example HTTP response
Response 200
{
  "elements" : [ {
    "creationTimestamp" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "id" : "string",
    "isAutoRotate" : true,
    "name" : "string",
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, USER_CANCELLED, INCONSISTENT",
    "subTasks" : [ {
      "creationTimestamp" : "string",
      "credentialType" : "string",
      "dependentSubTasks" : [ {
        "creationTimestamp" : "string",
        "credentialType" : "string",
        "dependentSubTasks" : [ "..." ],
        "description" : "string",
        "entityType" : "string",
        "errors" : [ {
          "arguments" : [ "string" ],
          "causes" : [ {
            "message" : "string",
            "type" : "string"
          } ],
          "context" : {
            "string" : "string"
          },
          "errorCode" : "string",
          "errorType" : "string",
          "message" : "string",
          "nestedErrors" : [ "..." ],
          "referenceToken" : "string",
          "remediationMessage" : "string"
        } ],
        "id" : "string",
        "name" : "string",
        "newPassword" : "string",
        "oldPassword" : "string",
        "resourceName" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, USER_CANCELLED, INCONSISTENT",
        "username" : "string"
      } ],
      "description" : "string",
      "entityType" : "string",
      "errors" : [ "..." ],
      "id" : "string",
      "name" : "string",
      "newPassword" : "string",
      "oldPassword" : "string",
      "resourceName" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, USER_CANCELLED, INCONSISTENT",
      "username" : "string"
    } ],
    "type" : "One among: UPDATE, ROTATE, REMEDIATE, UPDATE_AUTO_ROTATE_POLICY"
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.7.4. Fetch a credentials task

GET /v1/credentials/tasks/{id}
Description

Fetch credentials task for a given ID

Parameters
Type Name Description Schema

Path

id
required

The ID of the credentials task

string

Responses
HTTP Code Description Schema

200

OK

400

Bad Request

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/credentials/tasks/string
Example HTTP response
Response 200
{
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isAutoRotate" : true,
  "name" : "string",
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, USER_CANCELLED, INCONSISTENT",
  "subTasks" : [ {
    "creationTimestamp" : "string",
    "credentialType" : "string",
    "dependentSubTasks" : [ {
      "creationTimestamp" : "string",
      "credentialType" : "string",
      "dependentSubTasks" : [ "..." ],
      "description" : "string",
      "entityType" : "string",
      "errors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "id" : "string",
      "name" : "string",
      "newPassword" : "string",
      "oldPassword" : "string",
      "resourceName" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, USER_CANCELLED, INCONSISTENT",
      "username" : "string"
    } ],
    "description" : "string",
    "entityType" : "string",
    "errors" : [ "..." ],
    "id" : "string",
    "name" : "string",
    "newPassword" : "string",
    "oldPassword" : "string",
    "resourceName" : "string",
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, USER_CANCELLED, INCONSISTENT",
    "username" : "string"
  } ],
  "type" : "One among: UPDATE, ROTATE, REMEDIATE, UPDATE_AUTO_ROTATE_POLICY"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.7.5. Cancel a failed credentials task for a given ID

DELETE /v1/credentials/tasks/{id}
Description

Cancel a failed credentials task for a given ID

Parameters
Type Name Description Schema

Path

id
required

Task ID of the failed operation required to be cancelled

string

Responses
HTTP Code Description Schema

200

OK

204

No content

400

Bad Request

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/credentials/tasks/string
Example HTTP response
Response 200
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 204
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.7.6. Retry a failed credentials task for a given ID

PATCH /v1/credentials/tasks/{id}
Description

Retry a failed credentials task for a given ID

Parameters
Type Name Description Schema

Path

id
required

Task ID of the failed operation that is to be retried

string

Body

credentialsUpdateSpec
required

credentialsUpdateSpec

Responses
HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

401

Unauthorized

403

Forbidden

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/credentials/tasks/string
Request body
{
  "autoRotatePolicy" : {
    "enableAutoRotatePolicy" : true,
    "frequencyInDays" : 0
  },
  "elements" : [ {
    "credentials" : [ {
      "accountType" : "One among: USER, SYSTEM, SERVICE",
      "credentialType" : "One among: SSO, SSH, API, FTP, AUDIT",
      "password" : "string",
      "username" : "string"
    } ],
    "resourceId" : "string",
    "resourceName" : "string",
    "resourceType" : "One among: ESXI, VCENTER, PSC, NSX_MANAGER, NSX_CONTROLLER, NSX_EDGE, NSXT_MANAGER, NSXT_EDGE, VRLI, VROPS, VRA, WSA, VRSLCM, VXRAIL_MANAGER, BACKUP"
  } ],
  "operationType" : "One among: UPDATE, ROTATE, REMEDIATE, UPDATE_AUTO_ROTATE_POLICY"
}
Example HTTP response
Response 200
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 401
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 403
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.7.7. Fetch resource credentials for a given credentials task ID

GET /v1/credentials/tasks/{id}/resource-credentials
Description

Fetch resource credentials for a given credentials task ID

Parameters
Type Name Description Schema

Path

id
required

The ID of the credentials task

string

Responses
HTTP Code Description Schema

200

OK

400

Bad Request

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/credentials/tasks/string/resource-credentials
Example HTTP response
Response 200
[ {
  "credentials" : [ {
    "accountType" : "One among: USER, SYSTEM, SERVICE",
    "credentialType" : "One among: SSO, SSH, API, FTP, AUDIT",
    "password" : "string",
    "username" : "string"
  } ],
  "resourceId" : "string",
  "resourceName" : "string",
  "resourceType" : "One among: ESXI, VCENTER, PSC, NSX_MANAGER, NSX_CONTROLLER, NSX_EDGE, NSXT_MANAGER, NSXT_EDGE, VRLI, VROPS, VRA, WSA, VRSLCM, VXRAIL_MANAGER, BACKUP"
} ]
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.7.8. Fetch details of a subtask for a given credentials task ID and sub-task ID.

GET /v1/credentials/tasks/{id}/subtasks/{subtaskId}
Description

Fetch details of a subtask for a given credentials task ID and sub-task ID.

Parameters
Type Name Description Schema

Path

id
required

The ID of the credentials task

string

Path

subtaskId
required

The ID of the credentials sub-task

string

Responses
HTTP Code Description Schema

200

OK

400

Bad Request

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/credentials/tasks/string/subtasks/string
Example HTTP response
Response 200
{
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isAutoRotate" : true,
  "name" : "string",
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, USER_CANCELLED, INCONSISTENT",
  "subTasks" : [ {
    "creationTimestamp" : "string",
    "credentialType" : "string",
    "dependentSubTasks" : [ {
      "creationTimestamp" : "string",
      "credentialType" : "string",
      "dependentSubTasks" : [ "..." ],
      "description" : "string",
      "entityType" : "string",
      "errors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "id" : "string",
      "name" : "string",
      "newPassword" : "string",
      "oldPassword" : "string",
      "resourceName" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, USER_CANCELLED, INCONSISTENT",
      "username" : "string"
    } ],
    "description" : "string",
    "entityType" : "string",
    "errors" : [ "..." ],
    "id" : "string",
    "name" : "string",
    "newPassword" : "string",
    "oldPassword" : "string",
    "resourceName" : "string",
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, USER_CANCELLED, INCONSISTENT",
    "username" : "string"
  } ],
  "type" : "One among: UPDATE, ROTATE, REMEDIATE, UPDATE_AUTO_ROTATE_POLICY"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.7.9. Get Credential for the given ID

GET /v1/credentials/{id}
Description

Get Credential for the given ID

Parameters
Type Name Description Schema

Path

id
required

The ID of the credential

string

Responses
HTTP Code Description Schema

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/credentials/string
Example HTTP response
Response 200
{
  "accountType" : "One among: USER, SYSTEM, SERVICE",
  "autoRotatePolicy" : {
    "frequencyInDays" : 0,
    "nextSchedule" : "string"
  },
  "creationTimestamp" : "string",
  "credentialType" : "One among: SSO, SSH, API, FTP, AUDIT",
  "id" : "string",
  "modificationTimestamp" : "string",
  "password" : "string",
  "resource" : {
    "domainName" : "string",
    "resourceId" : "string",
    "resourceIp" : "string",
    "resourceName" : "string",
    "resourceType" : "One among: ESXI, VCENTER, PSC, NSX_MANAGER, NSX_CONTROLLER, NSX_EDGE, NSXT_MANAGER, NSXT_EDGE, VRLI, VROPS, VRA, WSA, VRSLCM, VXRAIL_MANAGER, BACKUP"
  },
  "username" : "string"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 401
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 403
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.8. DepotSettings

APIs for managing Depot Settings

3.8.1. Get Depot Settings

GET /v1/system/settings/depot
Description

Get the Depot Settings, In a fresh setup, this would be empty

Responses
HTTP Code Description Schema

200

Ok

< DepotSettings > array

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/system/settings/depot
Example HTTP response
Response 200
[ {
  "dellEmcSupportAccount" : {
    "message" : "string",
    "password" : "string",
    "status" : "One among: DEPOT_UNKNOWN_HOST, DEPOT_NOT_AVAILABLE, DEPOT_USER_NOT_SET, DEPOT_INVALID_CREDENTIAL, UNKNOWN_FAILURE, DEPOT_CONNECTION_SUCCESSFUL",
    "username" : "string"
  },
  "vmwareAccount" : {
    "message" : "string",
    "password" : "string",
    "status" : "One among: DEPOT_UNKNOWN_HOST, DEPOT_NOT_AVAILABLE, DEPOT_USER_NOT_SET, DEPOT_INVALID_CREDENTIAL, UNKNOWN_FAILURE, DEPOT_CONNECTION_SUCCESSFUL",
    "username" : "string"
  }
} ]
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.8.2. Update Depot Settings

PUT /v1/system/settings/depot
Description

Update Depot Settings. Depot Settings can be updated with VMware Depot Account

Parameters
Type Name Description Schema

Body

depotSettings
required

Depot Settings

Responses
HTTP Code Description Schema

200

OK

202

Ok

400

Bad Request

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/system/settings/depot
Request body
{
  "dellEmcSupportAccount" : {
    "message" : "string",
    "password" : "string",
    "status" : "One among: DEPOT_UNKNOWN_HOST, DEPOT_NOT_AVAILABLE, DEPOT_USER_NOT_SET, DEPOT_INVALID_CREDENTIAL, UNKNOWN_FAILURE, DEPOT_CONNECTION_SUCCESSFUL",
    "username" : "string"
  },
  "vmwareAccount" : {
    "message" : "string",
    "password" : "string",
    "status" : "One among: DEPOT_UNKNOWN_HOST, DEPOT_NOT_AVAILABLE, DEPOT_USER_NOT_SET, DEPOT_INVALID_CREDENTIAL, UNKNOWN_FAILURE, DEPOT_CONNECTION_SUCCESSFUL",
    "username" : "string"
  }
}
Example HTTP response
Response 200
{
  "dellEmcSupportAccount" : {
    "message" : "string",
    "password" : "string",
    "status" : "One among: DEPOT_UNKNOWN_HOST, DEPOT_NOT_AVAILABLE, DEPOT_USER_NOT_SET, DEPOT_INVALID_CREDENTIAL, UNKNOWN_FAILURE, DEPOT_CONNECTION_SUCCESSFUL",
    "username" : "string"
  },
  "vmwareAccount" : {
    "message" : "string",
    "password" : "string",
    "status" : "One among: DEPOT_UNKNOWN_HOST, DEPOT_NOT_AVAILABLE, DEPOT_USER_NOT_SET, DEPOT_INVALID_CREDENTIAL, UNKNOWN_FAILURE, DEPOT_CONNECTION_SUCCESSFUL",
    "username" : "string"
  }
}
Response 202
{
  "dellEmcSupportAccount" : {
    "message" : "string",
    "password" : "string",
    "status" : "One among: DEPOT_UNKNOWN_HOST, DEPOT_NOT_AVAILABLE, DEPOT_USER_NOT_SET, DEPOT_INVALID_CREDENTIAL, UNKNOWN_FAILURE, DEPOT_CONNECTION_SUCCESSFUL",
    "username" : "string"
  },
  "vmwareAccount" : {
    "message" : "string",
    "password" : "string",
    "status" : "One among: DEPOT_UNKNOWN_HOST, DEPOT_NOT_AVAILABLE, DEPOT_USER_NOT_SET, DEPOT_INVALID_CREDENTIAL, UNKNOWN_FAILURE, DEPOT_CONNECTION_SUCCESSFUL",
    "username" : "string"
  }
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.9. Domains

APIs for managing Domains

3.9.1. Create a Domain

POST /v1/domains
Parameters
Type Name Description Schema

Body

domainCreationSpec
required

Domain creation data

Responses
HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/domains
Request body
{
  "computeSpec" : {
    "clusterSpecs" : [ {
      "advancedOptions" : {
        "evcMode" : "One among: INTEL_MEROM, INTEL_PENRYN, INTEL_NEALEM, INTEL_WESTMERE, INTEL_SANDYBRIDGE, INTEL_IVYBRIDGE, INTEL_HASWELL, INTEL_BROADWELL, INTEL_SKYLAKE, INTEL_CASCADELAKE, AMD_REV_E, AMD_REV_F, AMD_GREYHOUND_NO3DNOW, AMD_GREYHOUND, AMD_BULLDOZER, AMD_PILEDRIVER, AMD_STREAMROLLER, AMD_ZEN",
        "highAvailability" : {
          "enabled" : true
        }
      },
      "clusterImageId" : "string",
      "datastoreSpec" : {
        "nfsDatastoreSpecs" : [ {
          "datastoreName" : "string",
          "nasVolume" : {
            "path" : "string",
            "readOnly" : true,
            "serverName" : [ "string" ],
            "userTag" : "string"
          }
        } ],
        "vmfsDatastoreSpec" : {
          "fcSpec" : [ {
            "datastoreName" : "string"
          } ]
        },
        "vsanDatastoreSpec" : {
          "datastoreName" : "string",
          "dedupAndCompressionEnabled" : true,
          "failuresToTolerate" : 0,
          "licenseKey" : "string"
        },
        "vvolDatastoreSpecs" : [ {
          "name" : "string",
          "vasaProviderSpec" : {
            "storageContainerId" : "string",
            "storageProtocolType" : "One among: ISCSI, NFS, FC",
            "userId" : "string",
            "vasaProviderId" : "string"
          }
        } ]
      },
      "hostSpecs" : [ {
        "azName" : "string",
        "hostName" : "string",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "string",
            "moveToNvds" : true,
            "uplink" : "string",
            "vdsName" : "string"
          } ]
        },
        "id" : "string",
        "ipAddress" : "string",
        "licenseKey" : "string",
        "password" : "string",
        "serialNumber" : "string",
        "sshThumbprint" : "string",
        "username" : "string"
      } ],
      "name" : "string",
      "networkSpec" : {
        "nsxClusterSpec" : {
          "nsxTClusterSpec" : {
            "geneveVlanId" : 0,
            "ipAddressPoolSpec" : {
              "description" : "string",
              "ignoreUnavailableNsxtCluster" : true,
              "name" : "string",
              "subnets" : [ {
                "cidr" : "string",
                "gateway" : "string",
                "ipAddressPoolRanges" : [ {
                  "end" : "string",
                  "start" : "string"
                } ]
              } ]
            }
          }
        },
        "vdsSpecs" : [ {
          "isUsedByNsxt" : true,
          "name" : "string",
          "niocBandwidthAllocationSpecs" : [ {
            "niocTrafficResourceAllocation" : {
              "limit" : 0,
              "reservation" : 0,
              "sharesInfo" : {
                "level" : "One among: low, normal, high, custom",
                "shares" : 0
              }
            },
            "type" : "string"
          } ],
          "portGroupSpecs" : [ {
            "activeUplinks" : [ "string" ],
            "name" : "string",
            "transportType" : "One among: VSAN, VMOTION, MANAGEMENT, PUBLIC, NFS, VREALIZE, ISCSI, EDGE_INFRA_OVERLAY_UPLINK"
          } ]
        } ]
      },
      "skipThumbprintValidation" : true,
      "vxRailDetails" : {
        "adminCredentials" : {
          "credentialType" : "One among: SSH",
          "password" : "string",
          "username" : "string"
        },
        "dnsName" : "string",
        "ipAddress" : "string",
        "networks" : [ {
          "freeIps" : [ "string" ],
          "gateway" : "string",
          "id" : "string",
          "ipPools" : [ {
            "end" : "string",
            "start" : "string"
          } ],
          "mask" : "string",
          "mtu" : 0,
          "subnet" : "string",
          "type" : "string",
          "usedIps" : [ "string" ],
          "vlanId" : 0
        } ],
        "nicProfile" : "string",
        "rootCredentials" : {
          "credentialType" : "One among: SSH",
          "password" : "string",
          "username" : "string"
        },
        "sshThumbprint" : "string",
        "sslThumbprint" : "string"
      }
    } ],
    "skipFailedHosts" : false
  },
  "domainName" : "string",
  "nsxTSpec" : {
    "formFactor" : "string",
    "ipAddressPoolSpec" : {
      "description" : "string",
      "ignoreUnavailableNsxtCluster" : true,
      "name" : "string",
      "subnets" : [ {
        "cidr" : "string",
        "gateway" : "string",
        "ipAddressPoolRanges" : [ {
          "end" : "string",
          "start" : "string"
        } ]
      } ]
    },
    "licenseKey" : "string",
    "nsxManagerAdminPassword" : "string",
    "nsxManagerSpecs" : [ {
      "name" : "string",
      "networkDetailsSpec" : {
        "dnsName" : "string",
        "gateway" : "string",
        "ipAddress" : "string",
        "subnetMask" : "string"
      }
    } ],
    "vip" : "string",
    "vipFqdn" : "string"
  },
  "vcenterSpec" : {
    "datacenterName" : "string",
    "name" : "string",
    "networkDetailsSpec" : {
      "dnsName" : "string",
      "gateway" : "string",
      "ipAddress" : "string",
      "subnetMask" : "string"
    },
    "rootPassword" : "string",
    "storageSize" : "One among:lstorage, xlstorage",
    "vmSize" : "One among:xlarge, large, medium, small, tiny"
  }
}
Example HTTP response
Response 200
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.9.2. Get the Domains

GET /v1/domains
Parameters
Type Name Description Schema

Query

type
optional

The type of the domain

string

Responses
HTTP Code Description Schema

200

Ok

400

Bad Request

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 200
{
  "elements" : [ {
    "capacity" : {
      "cpu" : {
        "total" : {
          "unit" : "Hz",
          "value" : 0.0
        },
        "used" : {
          "unit" : "Hz",
          "value" : 0.0
        }
      },
      "memory" : {
        "total" : {
          "unit" : "B",
          "value" : 0.0
        },
        "used" : {
          "unit" : "B",
          "value" : 0.0
        }
      },
      "storage" : {
        "total" : {
          "unit" : "B",
          "value" : 0.0
        },
        "used" : {
          "unit" : "B",
          "value" : 0.0
        }
      }
    },
    "clusters" : [ {
      "id" : "string"
    } ],
    "id" : "string",
    "name" : "string",
    "nsxtCluster" : {
      "id" : "string",
      "vip" : "string",
      "vipFqdn" : "string"
    },
    "status" : "string",
    "type" : "string",
    "vcenters" : [ {
      "fqdn" : "string",
      "id" : "string"
    } ]
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.9.3. Validate the input spec for domains operations

POST /v1/domains/validations
Parameters
Type Name Description Schema

Body

domainCreationSpec
required

Domain Creation Spec

Responses
HTTP Code Description Schema

200

Ok

400

Bad Request

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/domains/validations
Request body
{
  "computeSpec" : {
    "clusterSpecs" : [ {
      "advancedOptions" : {
        "evcMode" : "One among: INTEL_MEROM, INTEL_PENRYN, INTEL_NEALEM, INTEL_WESTMERE, INTEL_SANDYBRIDGE, INTEL_IVYBRIDGE, INTEL_HASWELL, INTEL_BROADWELL, INTEL_SKYLAKE, INTEL_CASCADELAKE, AMD_REV_E, AMD_REV_F, AMD_GREYHOUND_NO3DNOW, AMD_GREYHOUND, AMD_BULLDOZER, AMD_PILEDRIVER, AMD_STREAMROLLER, AMD_ZEN",
        "highAvailability" : {
          "enabled" : true
        }
      },
      "clusterImageId" : "string",
      "datastoreSpec" : {
        "nfsDatastoreSpecs" : [ {
          "datastoreName" : "string",
          "nasVolume" : {
            "path" : "string",
            "readOnly" : true,
            "serverName" : [ "string" ],
            "userTag" : "string"
          }
        } ],
        "vmfsDatastoreSpec" : {
          "fcSpec" : [ {
            "datastoreName" : "string"
          } ]
        },
        "vsanDatastoreSpec" : {
          "datastoreName" : "string",
          "dedupAndCompressionEnabled" : true,
          "failuresToTolerate" : 0,
          "licenseKey" : "string"
        },
        "vvolDatastoreSpecs" : [ {
          "name" : "string",
          "vasaProviderSpec" : {
            "storageContainerId" : "string",
            "storageProtocolType" : "One among: ISCSI, NFS, FC",
            "userId" : "string",
            "vasaProviderId" : "string"
          }
        } ]
      },
      "hostSpecs" : [ {
        "azName" : "string",
        "hostName" : "string",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "string",
            "moveToNvds" : true,
            "uplink" : "string",
            "vdsName" : "string"
          } ]
        },
        "id" : "string",
        "ipAddress" : "string",
        "licenseKey" : "string",
        "password" : "string",
        "serialNumber" : "string",
        "sshThumbprint" : "string",
        "username" : "string"
      } ],
      "name" : "string",
      "networkSpec" : {
        "nsxClusterSpec" : {
          "nsxTClusterSpec" : {
            "geneveVlanId" : 0,
            "ipAddressPoolSpec" : {
              "description" : "string",
              "ignoreUnavailableNsxtCluster" : true,
              "name" : "string",
              "subnets" : [ {
                "cidr" : "string",
                "gateway" : "string",
                "ipAddressPoolRanges" : [ {
                  "end" : "string",
                  "start" : "string"
                } ]
              } ]
            }
          }
        },
        "vdsSpecs" : [ {
          "isUsedByNsxt" : true,
          "name" : "string",
          "niocBandwidthAllocationSpecs" : [ {
            "niocTrafficResourceAllocation" : {
              "limit" : 0,
              "reservation" : 0,
              "sharesInfo" : {
                "level" : "One among: low, normal, high, custom",
                "shares" : 0
              }
            },
            "type" : "string"
          } ],
          "portGroupSpecs" : [ {
            "activeUplinks" : [ "string" ],
            "name" : "string",
            "transportType" : "One among: VSAN, VMOTION, MANAGEMENT, PUBLIC, NFS, VREALIZE, ISCSI, EDGE_INFRA_OVERLAY_UPLINK"
          } ]
        } ]
      },
      "skipThumbprintValidation" : true,
      "vxRailDetails" : {
        "adminCredentials" : {
          "credentialType" : "One among: SSH",
          "password" : "string",
          "username" : "string"
        },
        "dnsName" : "string",
        "ipAddress" : "string",
        "networks" : [ {
          "freeIps" : [ "string" ],
          "gateway" : "string",
          "id" : "string",
          "ipPools" : [ {
            "end" : "string",
            "start" : "string"
          } ],
          "mask" : "string",
          "mtu" : 0,
          "subnet" : "string",
          "type" : "string",
          "usedIps" : [ "string" ],
          "vlanId" : 0
        } ],
        "nicProfile" : "string",
        "rootCredentials" : {
          "credentialType" : "One among: SSH",
          "password" : "string",
          "username" : "string"
        },
        "sshThumbprint" : "string",
        "sslThumbprint" : "string"
      }
    } ],
    "skipFailedHosts" : false
  },
  "domainName" : "string",
  "nsxTSpec" : {
    "formFactor" : "string",
    "ipAddressPoolSpec" : {
      "description" : "string",
      "ignoreUnavailableNsxtCluster" : true,
      "name" : "string",
      "subnets" : [ {
        "cidr" : "string",
        "gateway" : "string",
        "ipAddressPoolRanges" : [ {
          "end" : "string",
          "start" : "string"
        } ]
      } ]
    },
    "licenseKey" : "string",
    "nsxManagerAdminPassword" : "string",
    "nsxManagerSpecs" : [ {
      "name" : "string",
      "networkDetailsSpec" : {
        "dnsName" : "string",
        "gateway" : "string",
        "ipAddress" : "string",
        "subnetMask" : "string"
      }
    } ],
    "vip" : "string",
    "vipFqdn" : "string"
  },
  "vcenterSpec" : {
    "datacenterName" : "string",
    "name" : "string",
    "networkDetailsSpec" : {
      "dnsName" : "string",
      "gateway" : "string",
      "ipAddress" : "string",
      "subnetMask" : "string"
    },
    "rootPassword" : "string",
    "storageSize" : "One among:lstorage, xlstorage",
    "vmSize" : "One among:xlarge, large, medium, small, tiny"
  }
}
Example HTTP response
Response 200
{
  "additionalProperties" : {
    "string" : "string"
  },
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS, CANCELLATION_IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "nestedValidationChecks" : [ {
      "description" : "string",
      "errorResponse" : {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.9.4. Get all cluster criteria

GET /v1/domains/{domainId}/clusters/criteria
Parameters
Type Name Description Schema

Path

domainId
required

Domain ID

string

Responses
HTTP Code Description Schema

200

Ok

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/domains/string/clusters/criteria
Example HTTP response
Response 200
{
  "elements" : [ {
    "arguments" : {
      "string" : "string"
    },
    "description" : "string",
    "name" : "One among: UNMANAGED_CLUSTERS_IN_VCENTER, UNMANAGED_CLUSTER_IN_VCENTER"
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}

3.9.5. Get a criterion to query for cluster

GET /v1/domains/{domainId}/clusters/criteria/{name}
Parameters
Type Name Description Schema

Path

domainId
required

Domain ID

string

Path

name
required

Criteria Name

string

Responses
HTTP Code Description Schema

200

Ok

404

Criterion Not Found

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/domains/string/clusters/criteria/string
Example HTTP response
Response 200
{
  "arguments" : {
    "string" : "string"
  },
  "description" : "string",
  "name" : "One among: UNMANAGED_CLUSTERS_IN_VCENTER, UNMANAGED_CLUSTER_IN_VCENTER"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.9.6. Post clusters query

POST /v1/domains/{domainId}/clusters/queries
Parameters
Type Name Description Schema

Path

domainId
required

Domain ID

string

Body

clusterCriterion
required

clusterCriterion

Responses
HTTP Code Description Schema

200

Ok

400

Bad Request

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/domains/string/clusters/queries
Request body
{
  "arguments" : {
    "string" : "string"
  },
  "description" : "string",
  "name" : "One among: UNMANAGED_CLUSTERS_IN_VCENTER, UNMANAGED_CLUSTER_IN_VCENTER"
}
Example HTTP response
Response 200
{
  "queryInfo" : {
    "completed" : true,
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "failure" : true,
    "processing" : true,
    "status" : "string"
  },
  "result" : {
    "elements" : [ {
      "hosts" : [ {
        "azName" : "string",
        "fqdn" : "string",
        "id" : "string",
        "ipAddress" : "string",
        "vmNics" : [ {
          "isActive" : true,
          "isAutoNegotiateSupported" : true,
          "isInUse" : true,
          "linkSpeedMB" : 0,
          "name" : "string"
        } ]
      } ],
      "id" : "string",
      "isDefault" : true,
      "isStretched" : true,
      "name" : "string",
      "primaryDatastoreName" : "string",
      "primaryDatastoreType" : "One among: VSAN, NFS, FC, VVOL_FC, VVOL_ISCSI, VVOL_NFS",
      "vdsSpecs" : [ {
        "isUsedByNsxt" : true,
        "name" : "string",
        "niocBandwidthAllocationSpecs" : [ {
          "niocTrafficResourceAllocation" : {
            "limit" : 0,
            "reservation" : 0,
            "sharesInfo" : {
              "level" : "One among: low, normal, high, custom",
              "shares" : 0
            }
          },
          "type" : "string"
        } ],
        "portGroupSpecs" : [ {
          "activeUplinks" : [ "string" ],
          "name" : "string",
          "transportType" : "One among: VSAN, VMOTION, MANAGEMENT, PUBLIC, NFS, VREALIZE, ISCSI, EDGE_INFRA_OVERLAY_UPLINK"
        } ]
      } ]
    } ],
    "pageMetadata" : {
      "pageNumber" : 0,
      "pageSize" : 0,
      "totalElements" : 0,
      "totalPages" : 0
    }
  }
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.9.7. Get clusters query response

GET /v1/domains/{domainId}/clusters/queries/{queryId}
Parameters
Type Name Description Schema

Path

domainId
required

Domain ID

string

Path

queryId
required

Query ID

string

Responses
HTTP Code Description Schema

200

Ok

400

Bad Request

404

Query Not Found

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/domains/string/clusters/queries/string
Example HTTP response
Response 200
{
  "queryInfo" : {
    "completed" : true,
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "failure" : true,
    "processing" : true,
    "status" : "string"
  },
  "result" : {
    "elements" : [ {
      "hosts" : [ {
        "azName" : "string",
        "fqdn" : "string",
        "id" : "string",
        "ipAddress" : "string",
        "vmNics" : [ {
          "isActive" : true,
          "isAutoNegotiateSupported" : true,
          "isInUse" : true,
          "linkSpeedMB" : 0,
          "name" : "string"
        } ]
      } ],
      "id" : "string",
      "isDefault" : true,
      "isStretched" : true,
      "name" : "string",
      "primaryDatastoreName" : "string",
      "primaryDatastoreType" : "One among: VSAN, NFS, FC, VVOL_FC, VVOL_ISCSI, VVOL_NFS",
      "vdsSpecs" : [ {
        "isUsedByNsxt" : true,
        "name" : "string",
        "niocBandwidthAllocationSpecs" : [ {
          "niocTrafficResourceAllocation" : {
            "limit" : 0,
            "reservation" : 0,
            "sharesInfo" : {
              "level" : "One among: low, normal, high, custom",
              "shares" : 0
            }
          },
          "type" : "string"
        } ],
        "portGroupSpecs" : [ {
          "activeUplinks" : [ "string" ],
          "name" : "string",
          "transportType" : "One among: VSAN, VMOTION, MANAGEMENT, PUBLIC, NFS, VREALIZE, ISCSI, EDGE_INFRA_OVERLAY_UPLINK"
        } ]
      } ]
    } ],
    "pageMetadata" : {
      "pageNumber" : 0,
      "pageSize" : 0,
      "totalElements" : 0,
      "totalPages" : 0
    }
  }
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.9.8. Post a cluster query

POST /v1/domains/{domainId}/clusters/{clusterName}/queries
Parameters
Type Name Description Schema

Path

clusterName
required

Cluster Name

string

Path

domainId
required

Domain ID

string

Body

clusterCriterion
required

clusterCriterion

Responses
HTTP Code Description Schema

200

Ok

400

Bad Request

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/domains/string/clusters/string/queries
Request body
{
  "arguments" : {
    "string" : "string"
  },
  "description" : "string",
  "name" : "One among: UNMANAGED_CLUSTERS_IN_VCENTER, UNMANAGED_CLUSTER_IN_VCENTER"
}
Example HTTP response
Response 200
{
  "queryInfo" : {
    "completed" : true,
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "failure" : true,
    "processing" : true,
    "status" : "string"
  },
  "result" : {
    "elements" : [ {
      "hosts" : [ {
        "azName" : "string",
        "fqdn" : "string",
        "id" : "string",
        "ipAddress" : "string",
        "vmNics" : [ {
          "isActive" : true,
          "isAutoNegotiateSupported" : true,
          "isInUse" : true,
          "linkSpeedMB" : 0,
          "name" : "string"
        } ]
      } ],
      "id" : "string",
      "isDefault" : true,
      "isStretched" : true,
      "name" : "string",
      "primaryDatastoreName" : "string",
      "primaryDatastoreType" : "One among: VSAN, NFS, FC, VVOL_FC, VVOL_ISCSI, VVOL_NFS",
      "vdsSpecs" : [ {
        "isUsedByNsxt" : true,
        "name" : "string",
        "niocBandwidthAllocationSpecs" : [ {
          "niocTrafficResourceAllocation" : {
            "limit" : 0,
            "reservation" : 0,
            "sharesInfo" : {
              "level" : "One among: low, normal, high, custom",
              "shares" : 0
            }
          },
          "type" : "string"
        } ],
        "portGroupSpecs" : [ {
          "activeUplinks" : [ "string" ],
          "name" : "string",
          "transportType" : "One among: VSAN, VMOTION, MANAGEMENT, PUBLIC, NFS, VREALIZE, ISCSI, EDGE_INFRA_OVERLAY_UPLINK"
        } ]
      } ]
    } ],
    "pageMetadata" : {
      "pageNumber" : 0,
      "pageSize" : 0,
      "totalElements" : 0,
      "totalPages" : 0
    }
  }
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.9.9. Get cluster query response

GET /v1/domains/{domainId}/clusters/{clusterName}/queries/{queryId}
Parameters
Type Name Description Schema

Path

clusterName
required

Cluster Name

string

Path

domainId
required

Domain ID

string

Path

queryId
required

Query ID

string

Responses
HTTP Code Description Schema

200

Ok

400

Bad Request

404

Query Not Found

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/domains/string/clusters/string/queries/string
Example HTTP response
Response 200
{
  "queryInfo" : {
    "completed" : true,
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "failure" : true,
    "processing" : true,
    "status" : "string"
  },
  "result" : {
    "elements" : [ {
      "hosts" : [ {
        "azName" : "string",
        "fqdn" : "string",
        "id" : "string",
        "ipAddress" : "string",
        "vmNics" : [ {
          "isActive" : true,
          "isAutoNegotiateSupported" : true,
          "isInUse" : true,
          "linkSpeedMB" : 0,
          "name" : "string"
        } ]
      } ],
      "id" : "string",
      "isDefault" : true,
      "isStretched" : true,
      "name" : "string",
      "primaryDatastoreName" : "string",
      "primaryDatastoreType" : "One among: VSAN, NFS, FC, VVOL_FC, VVOL_ISCSI, VVOL_NFS",
      "vdsSpecs" : [ {
        "isUsedByNsxt" : true,
        "name" : "string",
        "niocBandwidthAllocationSpecs" : [ {
          "niocTrafficResourceAllocation" : {
            "limit" : 0,
            "reservation" : 0,
            "sharesInfo" : {
              "level" : "One among: low, normal, high, custom",
              "shares" : 0
            }
          },
          "type" : "string"
        } ],
        "portGroupSpecs" : [ {
          "activeUplinks" : [ "string" ],
          "name" : "string",
          "transportType" : "One among: VSAN, VMOTION, MANAGEMENT, PUBLIC, NFS, VREALIZE, ISCSI, EDGE_INFRA_OVERLAY_UPLINK"
        } ]
      } ]
    } ],
    "pageMetadata" : {
      "pageNumber" : 0,
      "pageSize" : 0,
      "totalElements" : 0,
      "totalPages" : 0
    }
  }
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.9.10. Get a Domain

GET /v1/domains/{id}
Parameters
Type Name Description Schema

Path

id
required

Domain ID

string

Responses
HTTP Code Description Schema

200

Ok

404

Domain not found

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/domains/string
Example HTTP response
Response 200
{
  "capacity" : {
    "cpu" : {
      "total" : {
        "unit" : "Hz",
        "value" : 0.0
      },
      "used" : {
        "unit" : "Hz",
        "value" : 0.0
      }
    },
    "memory" : {
      "total" : {
        "unit" : "B",
        "value" : 0.0
      },
      "used" : {
        "unit" : "B",
        "value" : 0.0
      }
    },
    "storage" : {
      "total" : {
        "unit" : "B",
        "value" : 0.0
      },
      "used" : {
        "unit" : "B",
        "value" : 0.0
      }
    }
  },
  "clusters" : [ {
    "id" : "string"
  } ],
  "id" : "string",
  "name" : "string",
  "nsxtCluster" : {
    "id" : "string",
    "vip" : "string",
    "vipFqdn" : "string"
  },
  "status" : "string",
  "type" : "string",
  "vcenters" : [ {
    "fqdn" : "string",
    "id" : "string"
  } ]
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.9.11. Delete a Domain if it has been previously initialized for deletion

DELETE /v1/domains/{id}
Parameters
Type Name Description Schema

Path

id
required

Domain ID

string

Responses
HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

404

Not Found

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/domains/string
Example HTTP response
Response 200
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.9.12. Update a Domain

PATCH /v1/domains/{id}
Parameters
Type Name Description Schema

Path

id
required

Domain ID

string

Body

domainUpdateSpec
required

Domain Update Data

Responses
HTTP Code Description Schema

200

Ok

202

Accepted

400

Bad Request

404

Not Found

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/domains/string
Request body
{
  "clusterSpec" : {
    "advancedOptions" : {
      "evcMode" : "One among: INTEL_MEROM, INTEL_PENRYN, INTEL_NEALEM, INTEL_WESTMERE, INTEL_SANDYBRIDGE, INTEL_IVYBRIDGE, INTEL_HASWELL, INTEL_BROADWELL, INTEL_SKYLAKE, INTEL_CASCADELAKE, AMD_REV_E, AMD_REV_F, AMD_GREYHOUND_NO3DNOW, AMD_GREYHOUND, AMD_BULLDOZER, AMD_PILEDRIVER, AMD_STREAMROLLER, AMD_ZEN",
      "highAvailability" : {
        "enabled" : true
      }
    },
    "clusterImageId" : "string",
    "datastoreSpec" : {
      "nfsDatastoreSpecs" : [ {
        "datastoreName" : "string",
        "nasVolume" : {
          "path" : "string",
          "readOnly" : true,
          "serverName" : [ "string" ],
          "userTag" : "string"
        }
      } ],
      "vmfsDatastoreSpec" : {
        "fcSpec" : [ {
          "datastoreName" : "string"
        } ]
      },
      "vsanDatastoreSpec" : {
        "datastoreName" : "string",
        "dedupAndCompressionEnabled" : true,
        "failuresToTolerate" : 0,
        "licenseKey" : "string"
      },
      "vvolDatastoreSpecs" : [ {
        "name" : "string",
        "vasaProviderSpec" : {
          "storageContainerId" : "string",
          "storageProtocolType" : "One among: ISCSI, NFS, FC",
          "userId" : "string",
          "vasaProviderId" : "string"
        }
      } ]
    },
    "hostSpecs" : [ {
      "azName" : "string",
      "hostName" : "string",
      "hostNetworkSpec" : {
        "vmNics" : [ {
          "id" : "string",
          "moveToNvds" : true,
          "uplink" : "string",
          "vdsName" : "string"
        } ]
      },
      "id" : "string",
      "ipAddress" : "string",
      "licenseKey" : "string",
      "password" : "string",
      "serialNumber" : "string",
      "sshThumbprint" : "string",
      "username" : "string"
    } ],
    "name" : "string",
    "networkSpec" : {
      "nsxClusterSpec" : {
        "nsxTClusterSpec" : {
          "geneveVlanId" : 0,
          "ipAddressPoolSpec" : {
            "description" : "string",
            "ignoreUnavailableNsxtCluster" : true,
            "name" : "string",
            "subnets" : [ {
              "cidr" : "string",
              "gateway" : "string",
              "ipAddressPoolRanges" : [ {
                "end" : "string",
                "start" : "string"
              } ]
            } ]
          }
        }
      },
      "vdsSpecs" : [ {
        "isUsedByNsxt" : true,
        "name" : "string",
        "niocBandwidthAllocationSpecs" : [ {
          "niocTrafficResourceAllocation" : {
            "limit" : 0,
            "reservation" : 0,
            "sharesInfo" : {
              "level" : "One among: low, normal, high, custom",
              "shares" : 0
            }
          },
          "type" : "string"
        } ],
        "portGroupSpecs" : [ {
          "activeUplinks" : [ "string" ],
          "name" : "string",
          "transportType" : "One among: VSAN, VMOTION, MANAGEMENT, PUBLIC, NFS, VREALIZE, ISCSI, EDGE_INFRA_OVERLAY_UPLINK"
        } ]
      } ]
    },
    "skipThumbprintValidation" : true,
    "vxRailDetails" : {
      "adminCredentials" : {
        "credentialType" : "One among: SSH",
        "password" : "string",
        "username" : "string"
      },
      "dnsName" : "string",
      "ipAddress" : "string",
      "networks" : [ {
        "freeIps" : [ "string" ],
        "gateway" : "string",
        "id" : "string",
        "ipPools" : [ {
          "end" : "string",
          "start" : "string"
        } ],
        "mask" : "string",
        "mtu" : 0,
        "subnet" : "string",
        "type" : "string",
        "usedIps" : [ "string" ],
        "vlanId" : 0
      } ],
      "nicProfile" : "string",
      "rootCredentials" : {
        "credentialType" : "One among: SSH",
        "password" : "string",
        "username" : "string"
      },
      "sshThumbprint" : "string",
      "sslThumbprint" : "string"
    }
  },
  "markForDeletion" : true,
  "name" : "string",
  "nsxTSpec" : {
    "formFactor" : "string",
    "ipAddressPoolSpec" : {
      "description" : "string",
      "ignoreUnavailableNsxtCluster" : true,
      "name" : "string",
      "subnets" : [ {
        "cidr" : "string",
        "gateway" : "string",
        "ipAddressPoolRanges" : [ {
          "end" : "string",
          "start" : "string"
        } ]
      } ]
    },
    "licenseKey" : "string",
    "nsxManagerAdminPassword" : "string",
    "nsxManagerSpecs" : [ {
      "name" : "string",
      "networkDetailsSpec" : {
        "dnsName" : "string",
        "gateway" : "string",
        "ipAddress" : "string",
        "subnetMask" : "string"
      }
    } ],
    "vip" : "string",
    "vipFqdn" : "string"
  }
}
Example HTTP response
Response 200
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.9.13. Get Endpoints of a Domain

GET /v1/domains/{id}/endpoints
Parameters
Type Name Description Schema

Path

id
required

Domain ID

string

Responses
HTTP Code Description Schema

200

Ok

404

Domain not found

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/domains/string/endpoints
Example HTTP response
Response 200
{
  "elements" : [ {
    "type" : "One among: PSC, VCENTER, NSX_MANAGER, NSX_T_MANAGER, VRLI, VRA, VROPS, WSA, VRSLCM",
    "url" : "string"
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.10. FIPS Mode Details

APIs for getting FIPS mode details

3.10.1. Get VCF security configuration

GET /v1/system/security/fips
Description

Retrieve VCF security FIPS mode.

Responses
HTTP Code Description Schema

200

OK

500

Internal server error

No Content

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/system/security/fips
Example HTTP response
Response 200
{
  "enabled" : true
}

3.11. Federation

APIs for managing Federation

3.11.1. Get details of a federation

GET /v1/sddc-federation
Responses
HTTP Code Description Schema

200

OK

< MemberInfo > array

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/sddc-federation
Example HTTP response
Response 200
[ {
  "memberDetails" : {
    "city" : "string",
    "coordinate" : {
      "latitude" : 0.0,
      "longitude" : 0.0
    },
    "country" : "string",
    "fqdn" : "string",
    "role" : "CONTROLLER",
    "siteName" : "string",
    "siteType" : "DATACENTER",
    "state" : "string"
  },
  "memberHealth" : {
    "healthCode" : "GREEN",
    "healthDetails" : [ "string" ]
  },
  "memberInventory" : {
    "capacity" : {
      "summary" : {
        "aggregatedCapacity" : {
          "cpu" : {
            "free" : 0.0,
            "total" : 0.0,
            "unallocated" : 0.0,
            "unit" : "GHZ",
            "used" : 0.0
          },
          "datastores" : [ {
            "capacity" : 0.0,
            "datastoreName" : "string",
            "datastoreType" : "VSAN",
            "freeSpace" : 0.0,
            "unallocated" : 0.0,
            "unit" : "GHZ",
            "used" : 0.0
          } ],
          "hostCount" : {
            "total" : 0,
            "unallocated" : 0,
            "used" : 0
          },
          "memory" : {
            "totalCapacityMB" : 0.0,
            "usedCapacityMB" : 0.0
          }
        },
        "domainCount" : 0,
        "domainInfo" : [ {
          "domainCapacity" : {
            "cpu" : {
              "free" : 0.0,
              "total" : 0.0,
              "unallocated" : 0.0,
              "unit" : "GHZ",
              "used" : 0.0
            },
            "datastores" : [ {
              "capacity" : 0.0,
              "datastoreName" : "string",
              "datastoreType" : "VSAN",
              "freeSpace" : 0.0,
              "unallocated" : 0.0,
              "unit" : "GHZ",
              "used" : 0.0
            } ],
            "hostCount" : {
              "total" : 0,
              "unallocated" : 0,
              "used" : 0
            },
            "memory" : {
              "totalCapacityMB" : 0.0,
              "usedCapacityMB" : 0.0
            }
          },
          "domainId" : "string",
          "name" : "string",
          "status" : "string",
          "type" : "string"
        } ],
        "domainTypeInfo" : [ {
          "aggregatedCapacity" : {
            "cpu" : {
              "free" : 0.0,
              "total" : 0.0,
              "unallocated" : 0.0,
              "unit" : "GHZ",
              "used" : 0.0
            },
            "datastores" : [ {
              "capacity" : 0.0,
              "datastoreName" : "string",
              "datastoreType" : "VSAN",
              "freeSpace" : 0.0,
              "unallocated" : 0.0,
              "unit" : "GHZ",
              "used" : 0.0
            } ],
            "hostCount" : {
              "total" : 0,
              "unallocated" : 0,
              "used" : 0
            },
            "memory" : {
              "totalCapacityMB" : 0.0,
              "usedCapacityMB" : 0.0
            }
          },
          "domainCount" : 0,
          "type" : "string"
        } ]
      }
    },
    "createTime" : "string",
    "creationTime" : "string",
    "inventoryInfo" : {
      "hostCount" : {
        "total" : 0,
        "unallocated" : 0,
        "used" : 0
      }
    },
    "softwareInfo" : {
      "pendingUpdates" : 0
    }
  },
  "memberLiveness" : {
    "livelinessCode" : "GREEN",
    "livelinessDetails" : [ "string" ]
  }
} ]

3.11.2. Bootstrap a VMware Cloud Foundation to form a federation

PUT /v1/sddc-federation
Parameters
Type Name Description Schema

Body

bootstrapSpec
required

Bootstrap Spec

Responses
HTTP Code Description Schema

202

Accepted

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/sddc-federation
Request body
{
  "federationName" : "string",
  "memberJoinDetail" : {
    "city" : "string",
    "coordinate" : {
      "latitude" : 0.0,
      "longitude" : 0.0
    },
    "country" : "string",
    "fqdn" : "string",
    "role" : "CONTROLLER",
    "siteName" : "string",
    "siteType" : "DATACENTER",
    "state" : "string"
  }
}
Example HTTP response
Response 202
{
  "created" : {
    "dateTime" : "string",
    "timestamp" : 0
  },
  "errors" : [ {
    "error" : "string",
    "errorPack" : {
      "arguments" : [ "object" ],
      "component" : "string",
      "defaultMessage" : "string",
      "localBundle" : "string",
      "messageKey" : "string"
    },
    "suggestedRemedy" : "string",
    "suggestedRemedyPack" : {
      "arguments" : [ "object" ],
      "component" : "string",
      "defaultMessage" : "string",
      "localBundle" : "string",
      "messageKey" : "string"
    }
  } ],
  "lastUpdated" : {
    "dateTime" : "string",
    "timestamp" : 0
  },
  "operation" : "BOOTSTRAP",
  "payload" : {
    "assignedBrokerId" : 0,
    "assignedZkId" : 0,
    "mbServers" : {
      "messageBusServersInfo" : [ {
        "brokerId" : 0,
        "fqdn" : "string",
        "hostAddress" : "string",
        "port" : 0
      } ]
    },
    "srServers" : {
      "schemaRegistryServersInfo" : [ {
        "hostAddress" : "string",
        "port" : 0,
        "protocol" : "string"
      } ]
    },
    "zkServers" : {
      "zookeeperServersInfo" : [ {
        "clientPort" : 0,
        "electionPort" : 0,
        "fqdn" : "string",
        "hostAddress" : "string",
        "peerPort" : 0,
        "securePort" : 0,
        "zkId" : 0,
        "zkRole" : "string"
      } ]
    }
  },
  "progressDetails" : "string",
  "remoteOperationTask" : {
    "created" : {
      "dateTime" : "string",
      "timestamp" : 0
    },
    "errors" : [ {
      "error" : "string",
      "errorPack" : {
        "arguments" : [ "object" ],
        "component" : "string",
        "defaultMessage" : "string",
        "localBundle" : "string",
        "messageKey" : "string"
      },
      "suggestedRemedy" : "string",
      "suggestedRemedyPack" : {
        "arguments" : [ "object" ],
        "component" : "string",
        "defaultMessage" : "string",
        "localBundle" : "string",
        "messageKey" : "string"
      }
    } ],
    "lastUpdated" : {
      "dateTime" : "string",
      "timestamp" : 0
    },
    "operation" : "BOOTSTRAP",
    "payload" : {
      "assignedBrokerId" : 0,
      "assignedZkId" : 0,
      "mbServers" : {
        "messageBusServersInfo" : [ {
          "brokerId" : 0,
          "fqdn" : "string",
          "hostAddress" : "string",
          "port" : 0
        } ]
      },
      "srServers" : {
        "schemaRegistryServersInfo" : [ {
          "hostAddress" : "string",
          "port" : 0,
          "protocol" : "string"
        } ]
      },
      "zkServers" : {
        "zookeeperServersInfo" : [ {
          "clientPort" : 0,
          "electionPort" : 0,
          "fqdn" : "string",
          "hostAddress" : "string",
          "peerPort" : 0,
          "securePort" : 0,
          "zkId" : 0,
          "zkRole" : "string"
        } ]
      }
    },
    "progressDetails" : "string",
    "remoteOperationTask" : "...",
    "status" : "NOT_STARTED",
    "taskId" : "string"
  },
  "status" : "NOT_STARTED",
  "taskId" : "string"
}

3.11.3. Teardown a federation

DELETE /v1/sddc-federation
Responses
HTTP Code Description Schema

202

ACCEPTED

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/sddc-federation
Example HTTP response
Response 202
{
  "created" : {
    "dateTime" : "string",
    "timestamp" : 0
  },
  "errors" : [ {
    "error" : "string",
    "errorPack" : {
      "arguments" : [ "object" ],
      "component" : "string",
      "defaultMessage" : "string",
      "localBundle" : "string",
      "messageKey" : "string"
    },
    "suggestedRemedy" : "string",
    "suggestedRemedyPack" : {
      "arguments" : [ "object" ],
      "component" : "string",
      "defaultMessage" : "string",
      "localBundle" : "string",
      "messageKey" : "string"
    }
  } ],
  "lastUpdated" : {
    "dateTime" : "string",
    "timestamp" : 0
  },
  "operation" : "BOOTSTRAP",
  "payload" : {
    "assignedBrokerId" : 0,
    "assignedZkId" : 0,
    "mbServers" : {
      "messageBusServersInfo" : [ {
        "brokerId" : 0,
        "fqdn" : "string",
        "hostAddress" : "string",
        "port" : 0
      } ]
    },
    "srServers" : {
      "schemaRegistryServersInfo" : [ {
        "hostAddress" : "string",
        "port" : 0,
        "protocol" : "string"
      } ]
    },
    "zkServers" : {
      "zookeeperServersInfo" : [ {
        "clientPort" : 0,
        "electionPort" : 0,
        "fqdn" : "string",
        "hostAddress" : "string",
        "peerPort" : 0,
        "securePort" : 0,
        "zkId" : 0,
        "zkRole" : "string"
      } ]
    }
  },
  "progressDetails" : "string",
  "remoteOperationTask" : {
    "created" : {
      "dateTime" : "string",
      "timestamp" : 0
    },
    "errors" : [ {
      "error" : "string",
      "errorPack" : {
        "arguments" : [ "object" ],
        "component" : "string",
        "defaultMessage" : "string",
        "localBundle" : "string",
        "messageKey" : "string"
      },
      "suggestedRemedy" : "string",
      "suggestedRemedyPack" : {
        "arguments" : [ "object" ],
        "component" : "string",
        "defaultMessage" : "string",
        "localBundle" : "string",
        "messageKey" : "string"
      }
    } ],
    "lastUpdated" : {
      "dateTime" : "string",
      "timestamp" : 0
    },
    "operation" : "BOOTSTRAP",
    "payload" : {
      "assignedBrokerId" : 0,
      "assignedZkId" : 0,
      "mbServers" : {
        "messageBusServersInfo" : [ {
          "brokerId" : 0,
          "fqdn" : "string",
          "hostAddress" : "string",
          "port" : 0
        } ]
      },
      "srServers" : {
        "schemaRegistryServersInfo" : [ {
          "hostAddress" : "string",
          "port" : 0,
          "protocol" : "string"
        } ]
      },
      "zkServers" : {
        "zookeeperServersInfo" : [ {
          "clientPort" : 0,
          "electionPort" : 0,
          "fqdn" : "string",
          "hostAddress" : "string",
          "peerPort" : 0,
          "securePort" : 0,
          "zkId" : 0,
          "zkRole" : "string"
        } ]
      }
    },
    "progressDetails" : "string",
    "remoteOperationTask" : "...",
    "status" : "NOT_STARTED",
    "taskId" : "string"
  },
  "status" : "NOT_STARTED",
  "taskId" : "string"
}

3.12. Hosts

APIs for managing Hosts

3.12.1. Commission the Hosts

POST /v1/hosts
Parameters
Type Name Description Schema

Body

hostCommissionSpecs
required

hostCommissionSpecs

< HostCommissionSpec > array

Responses
HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

Internal server error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/hosts
Request body
[ {
  "fqdn" : "string",
  "networkPoolId" : "string",
  "networkPoolName" : "string",
  "password" : "string",
  "sshThumbprint" : "string",
  "sslThumbprint" : "string",
  "storageType" : "One among: VSAN, NFS, VMFS_FC, VVOL",
  "username" : "string",
  "vvolStorageProtocolType" : "One among: ISCSI, NFS, FC"
} ]
Example HTTP response
Response 200
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.12.2. Get the Hosts

GET /v1/hosts
Parameters
Type Name Description Schema

Query

clusterId
optional

ID of the Cluster

string

Query

datastoreName
optional

Name of the datastore

string

Query

domainId
optional

ID of the Domain

string

Query

networkpoolId
optional

ID of the Network pool

string

Query

status
optional

Status of the Host.One among: ASSIGNED, UNASSIGNED_USEABLE, UNASSIGNED_UNUSEABLE

string

Query

storageType
optional

Type of the Storage.VMFS_FC

string

Responses
HTTP Code Description Schema

200

Ok

400

Bad Request

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 200
{
  "elements" : [ {
    "bundleRepoDatastore" : "string",
    "cluster" : {
      "id" : "string"
    },
    "compatibleStorageType" : "string",
    "cpu" : {
      "cores" : 0,
      "cpuCores" : [ {
        "frequencyMHz" : 0.0,
        "manufacturer" : "string",
        "model" : "string"
      } ],
      "frequencyMHz" : 0.0,
      "usedFrequencyMHz" : 0.0
    },
    "domain" : {
      "id" : "string",
      "name" : "string"
    },
    "esxiVersion" : "string",
    "fqdn" : "string",
    "hardwareModel" : "string",
    "hardwareVendor" : "string",
    "hybrid" : true,
    "id" : "string",
    "ipAddresses" : [ {
      "ipAddress" : "string",
      "type" : "One among: MANAGEMENT, VSAN, VMOTION, NFS"
    } ],
    "isPrimary" : true,
    "memory" : {
      "totalCapacityMB" : 0.0,
      "usedCapacityMB" : 0.0
    },
    "networkpool" : {
      "id" : "string",
      "name" : "string"
    },
    "physicalNics" : [ {
      "deviceName" : "string",
      "macAddress" : "string",
      "speed" : 0
    } ],
    "serialNumber" : {
      "present" : true
    },
    "sshThumbprint" : {
      "present" : true
    },
    "sslThumbprint" : {
      "present" : true
    },
    "status" : "One among: ASSIGNED, UNASSIGNED_USEABLE, UNASSIGNED_UNUSEABLE",
    "storage" : {
      "disks" : [ {
        "capacityMB" : 0.0,
        "diskType" : "One among: HDD, FLASH",
        "manufacturer" : "string",
        "model" : "string"
      } ],
      "totalCapacityMB" : 0.0,
      "usedCapacityMB" : 0.0
    }
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.12.3. Decommission the Hosts

DELETE /v1/hosts
Parameters
Type Name Description Schema

Body

hostDecommissionSpecs
required

hostDecommissionSpecs

Responses
HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

Internal server error

No Content

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/hosts
Request body
[ {
  "fqdn" : "string"
} ]
Example HTTP response
Response 200
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.12.4. Get all criteria

GET /v1/hosts/criteria
Responses
HTTP Code Description Schema

200

Ok

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/hosts/criteria
Example HTTP response
Response 200
{
  "elements" : [ {
    "arguments" : {
      "string" : "string"
    },
    "description" : "string",
    "name" : "One among: HOST_COMPATIBLE_WITH_CLUSTER_USING_PNICS, UNMANAGED_HOSTS_IN_VCENTER, UNMANAGED_HOSTS_IN_HCIMGR"
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}

3.12.5. Get a criterion

GET /v1/hosts/criteria/{name}
Parameters
Type Name Description Schema

Path

name
required

name

string

Responses
HTTP Code Description Schema

200

Ok

404

Criterion Not Found

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/hosts/criteria/string
Example HTTP response
Response 200
{
  "arguments" : {
    "string" : "string"
  },
  "description" : "string",
  "name" : "One among: HOST_COMPATIBLE_WITH_CLUSTER_USING_PNICS, UNMANAGED_HOSTS_IN_VCENTER, UNMANAGED_HOSTS_IN_HCIMGR"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.12.6. Post a query

POST /v1/hosts/queries
Parameters
Type Name Description Schema

Body

hostCriterion
required

hostCriterion

Responses
HTTP Code Description Schema

200

Ok

400

Bad Request

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/hosts/queries
Request body
{
  "arguments" : {
    "string" : "string"
  },
  "description" : "string",
  "name" : "One among: HOST_COMPATIBLE_WITH_CLUSTER_USING_PNICS, UNMANAGED_HOSTS_IN_VCENTER, UNMANAGED_HOSTS_IN_HCIMGR"
}
Example HTTP response
Response 200
{
  "queryInfo" : {
    "completed" : true,
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "failure" : true,
    "processing" : true,
    "status" : "string"
  },
  "result" : {
    "elements" : [ {
      "bundleRepoDatastore" : "string",
      "cluster" : {
        "id" : "string"
      },
      "compatibleStorageType" : "string",
      "cpu" : {
        "cores" : 0,
        "cpuCores" : [ {
          "frequencyMHz" : 0.0,
          "manufacturer" : "string",
          "model" : "string"
        } ],
        "frequencyMHz" : 0.0,
        "usedFrequencyMHz" : 0.0
      },
      "domain" : {
        "id" : "string",
        "name" : "string"
      },
      "esxiVersion" : "string",
      "fqdn" : "string",
      "hardwareModel" : "string",
      "hardwareVendor" : "string",
      "hybrid" : true,
      "id" : "string",
      "ipAddresses" : [ {
        "ipAddress" : "string",
        "type" : "One among: MANAGEMENT, VSAN, VMOTION, NFS"
      } ],
      "isPrimary" : true,
      "memory" : {
        "totalCapacityMB" : 0.0,
        "usedCapacityMB" : 0.0
      },
      "networkpool" : {
        "id" : "string",
        "name" : "string"
      },
      "physicalNics" : [ {
        "deviceName" : "string",
        "macAddress" : "string",
        "speed" : 0
      } ],
      "serialNumber" : {
        "present" : true
      },
      "sshThumbprint" : {
        "present" : true
      },
      "sslThumbprint" : {
        "present" : true
      },
      "status" : "One among: ASSIGNED, UNASSIGNED_USEABLE, UNASSIGNED_UNUSEABLE",
      "storage" : {
        "disks" : [ {
          "capacityMB" : 0.0,
          "diskType" : "One among: HDD, FLASH",
          "manufacturer" : "string",
          "model" : "string"
        } ],
        "totalCapacityMB" : 0.0,
        "usedCapacityMB" : 0.0
      }
    } ],
    "pageMetadata" : {
      "pageNumber" : 0,
      "pageSize" : 0,
      "totalElements" : 0,
      "totalPages" : 0
    }
  }
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.12.7. Get query response

GET /v1/hosts/queries/{id}
Parameters
Type Name Description Schema

Path

id
required

id

string

Responses
HTTP Code Description Schema

200

Ok

400

Bad Request

404

Query Not Found

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/hosts/queries/string
Example HTTP response
Response 200
{
  "queryInfo" : {
    "completed" : true,
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "failure" : true,
    "processing" : true,
    "status" : "string"
  },
  "result" : {
    "elements" : [ {
      "bundleRepoDatastore" : "string",
      "cluster" : {
        "id" : "string"
      },
      "compatibleStorageType" : "string",
      "cpu" : {
        "cores" : 0,
        "cpuCores" : [ {
          "frequencyMHz" : 0.0,
          "manufacturer" : "string",
          "model" : "string"
        } ],
        "frequencyMHz" : 0.0,
        "usedFrequencyMHz" : 0.0
      },
      "domain" : {
        "id" : "string",
        "name" : "string"
      },
      "esxiVersion" : "string",
      "fqdn" : "string",
      "hardwareModel" : "string",
      "hardwareVendor" : "string",
      "hybrid" : true,
      "id" : "string",
      "ipAddresses" : [ {
        "ipAddress" : "string",
        "type" : "One among: MANAGEMENT, VSAN, VMOTION, NFS"
      } ],
      "isPrimary" : true,
      "memory" : {
        "totalCapacityMB" : 0.0,
        "usedCapacityMB" : 0.0
      },
      "networkpool" : {
        "id" : "string",
        "name" : "string"
      },
      "physicalNics" : [ {
        "deviceName" : "string",
        "macAddress" : "string",
        "speed" : 0
      } ],
      "serialNumber" : {
        "present" : true
      },
      "sshThumbprint" : {
        "present" : true
      },
      "sslThumbprint" : {
        "present" : true
      },
      "status" : "One among: ASSIGNED, UNASSIGNED_USEABLE, UNASSIGNED_UNUSEABLE",
      "storage" : {
        "disks" : [ {
          "capacityMB" : 0.0,
          "diskType" : "One among: HDD, FLASH",
          "manufacturer" : "string",
          "model" : "string"
        } ],
        "totalCapacityMB" : 0.0,
        "usedCapacityMB" : 0.0
      }
    } ],
    "pageMetadata" : {
      "pageNumber" : 0,
      "pageSize" : 0,
      "totalElements" : 0,
      "totalPages" : 0
    }
  }
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.12.8. Validate the input spec for hosts operations

POST /v1/hosts/validations
Parameters
Type Name Description Schema

Body

hostCommissionSpecs
required

hostCommissionSpecs

< HostCommissionSpec > array

Responses
HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

Internal server error

No Content

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/hosts/validations
Request body
[ {
  "fqdn" : "string",
  "networkPoolId" : "string",
  "networkPoolName" : "string",
  "password" : "string",
  "sshThumbprint" : "string",
  "sslThumbprint" : "string",
  "storageType" : "One among: VSAN, NFS, VMFS_FC, VVOL",
  "username" : "string",
  "vvolStorageProtocolType" : "One among: ISCSI, NFS, FC"
} ]
Example HTTP response
Response 200
{
  "additionalProperties" : {
    "string" : "string"
  },
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS, CANCELLATION_IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "nestedValidationChecks" : [ {
      "description" : "string",
      "errorResponse" : {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 202
{
  "additionalProperties" : {
    "string" : "string"
  },
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS, CANCELLATION_IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "nestedValidationChecks" : [ {
      "description" : "string",
      "errorResponse" : {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.12.9. Get the status of the validation of the input specification to commission the Hosts

GET /v1/hosts/validations/{id}
Parameters
Type Name Description Schema

Path

id
required

The validation ID

string

Responses
HTTP Code Description Schema

200

OK

400

Bad Request

500

Internal server error

No Content

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/hosts/validations/string
Example HTTP response
Response 200
{
  "additionalProperties" : {
    "string" : "string"
  },
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS, CANCELLATION_IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "nestedValidationChecks" : [ {
      "description" : "string",
      "errorResponse" : {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.12.10. Get a Host

GET /v1/hosts/{id}
Parameters
Type Name Description Schema

Path

id
required

id

string

Responses
HTTP Code Description Schema

200

Ok

400

Bad Request

404

Host Not Found

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 200
{
  "bundleRepoDatastore" : "string",
  "cluster" : {
    "id" : "string"
  },
  "compatibleStorageType" : "string",
  "cpu" : {
    "cores" : 0,
    "cpuCores" : [ {
      "frequencyMHz" : 0.0,
      "manufacturer" : "string",
      "model" : "string"
    } ],
    "frequencyMHz" : 0.0,
    "usedFrequencyMHz" : 0.0
  },
  "domain" : {
    "id" : "string",
    "name" : "string"
  },
  "esxiVersion" : "string",
  "fqdn" : "string",
  "hardwareModel" : "string",
  "hardwareVendor" : "string",
  "hybrid" : true,
  "id" : "string",
  "ipAddresses" : [ {
    "ipAddress" : "string",
    "type" : "One among: MANAGEMENT, VSAN, VMOTION, NFS"
  } ],
  "isPrimary" : true,
  "memory" : {
    "totalCapacityMB" : 0.0,
    "usedCapacityMB" : 0.0
  },
  "networkpool" : {
    "id" : "string",
    "name" : "string"
  },
  "physicalNics" : [ {
    "deviceName" : "string",
    "macAddress" : "string",
    "speed" : 0
  } ],
  "serialNumber" : {
    "present" : true
  },
  "sshThumbprint" : {
    "present" : true
  },
  "sslThumbprint" : {
    "present" : true
  },
  "status" : "One among: ASSIGNED, UNASSIGNED_USEABLE, UNASSIGNED_UNUSEABLE",
  "storage" : {
    "disks" : [ {
      "capacityMB" : 0.0,
      "diskType" : "One among: HDD, FLASH",
      "manufacturer" : "string",
      "model" : "string"
    } ],
    "totalCapacityMB" : 0.0,
    "usedCapacityMB" : 0.0
  }
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.13. License Keys

APIs for managing License Keys

3.13.1. Add a License Key

POST /v1/license-keys
Parameters
Type Name Description Schema

Body

licenseKey
required

License key with other attributes

Responses
HTTP Code Description Schema

200

OK

201

Created

500

Internal server error

Consumes
  • application/json

Produces
  • */*

Example HTTP request
Request path
/v1/license-keys
Request body
{
  "description" : "string",
  "id" : "string",
  "isUnlimited" : true,
  "key" : "XX0XX-XX0XX-XX0XX-XX0XX-XX0XX ",
  "licenseKeyUsage" : {
    "licenseUnit" : "One among: CPUPACKAGE, INSTANCE, VMS, CCU, PLU, DESKTOPVM, SERVERVM, VM, SERVER, CORES, CONCURRENTUSER, NAMEDUSER",
    "remaining" : 0,
    "total" : 0,
    "used" : 0
  },
  "licenseKeyValidity" : {
    "expiryDate" : "string",
    "licenseKeyStatus" : "One among: EXPIRED, ACTIVE, NEVER_EXPIRES"
  },
  "productType" : "One among: VCENTER, VSAN, SDDC_MANAGER, ESXI, NSXT, WCP, HORIZON_VIEW"
}
Example HTTP response
Response 200
{
  "description" : "string",
  "id" : "string",
  "isUnlimited" : true,
  "key" : "XX0XX-XX0XX-XX0XX-XX0XX-XX0XX ",
  "licenseKeyUsage" : {
    "licenseUnit" : "One among: CPUPACKAGE, INSTANCE, VMS, CCU, PLU, DESKTOPVM, SERVERVM, VM, SERVER, CORES, CONCURRENTUSER, NAMEDUSER",
    "remaining" : 0,
    "total" : 0,
    "used" : 0
  },
  "licenseKeyValidity" : {
    "expiryDate" : "string",
    "licenseKeyStatus" : "One among: EXPIRED, ACTIVE, NEVER_EXPIRES"
  },
  "productType" : "One among: VCENTER, VSAN, SDDC_MANAGER, ESXI, NSXT, WCP, HORIZON_VIEW"
}
Response 201
{
  "description" : "string",
  "id" : "string",
  "isUnlimited" : true,
  "key" : "XX0XX-XX0XX-XX0XX-XX0XX-XX0XX ",
  "licenseKeyUsage" : {
    "licenseUnit" : "One among: CPUPACKAGE, INSTANCE, VMS, CCU, PLU, DESKTOPVM, SERVERVM, VM, SERVER, CORES, CONCURRENTUSER, NAMEDUSER",
    "remaining" : 0,
    "total" : 0,
    "used" : 0
  },
  "licenseKeyValidity" : {
    "expiryDate" : "string",
    "licenseKeyStatus" : "One among: EXPIRED, ACTIVE, NEVER_EXPIRES"
  },
  "productType" : "One among: VCENTER, VSAN, SDDC_MANAGER, ESXI, NSXT, WCP, HORIZON_VIEW"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.13.2. Get the License Keys

GET /v1/license-keys
Parameters
Type Name Description Schema

Query

licenseKeyStatus
optional

Status of a License Key

< string > array(multi)

Query

productType
optional

Type of a Product

< string > array(multi)

Responses
HTTP Code Description Schema

200

Successful

500

Internal server error

Consumes
  • application/json

Produces
  • */*

Example HTTP response
Response 200
{
  "elements" : [ {
    "description" : "string",
    "id" : "string",
    "isUnlimited" : true,
    "key" : "XX0XX-XX0XX-XX0XX-XX0XX-XX0XX ",
    "licenseKeyUsage" : {
      "licenseUnit" : "One among: CPUPACKAGE, INSTANCE, VMS, CCU, PLU, DESKTOPVM, SERVERVM, VM, SERVER, CORES, CONCURRENTUSER, NAMEDUSER",
      "remaining" : 0,
      "total" : 0,
      "used" : 0
    },
    "licenseKeyValidity" : {
      "expiryDate" : "string",
      "licenseKeyStatus" : "One among: EXPIRED, ACTIVE, NEVER_EXPIRES"
    },
    "productType" : "One among: VCENTER, VSAN, SDDC_MANAGER, ESXI, NSXT, WCP, HORIZON_VIEW"
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.13.3. Get a License Key by key

GET /v1/license-keys/{key}
Parameters
Type Name Description Schema

Path

key
required

The 29 alpha numeric character license key with hyphens

string

Responses
HTTP Code Description Schema

200

Successful

404

License key not found

500

Internal server error

Consumes
  • application/json

Produces
  • */*

Example HTTP request
Request path
/v1/license-keys/string
Example HTTP response
Response 200
{
  "description" : "string",
  "id" : "string",
  "isUnlimited" : true,
  "key" : "XX0XX-XX0XX-XX0XX-XX0XX-XX0XX ",
  "licenseKeyUsage" : {
    "licenseUnit" : "One among: CPUPACKAGE, INSTANCE, VMS, CCU, PLU, DESKTOPVM, SERVERVM, VM, SERVER, CORES, CONCURRENTUSER, NAMEDUSER",
    "remaining" : 0,
    "total" : 0,
    "used" : 0
  },
  "licenseKeyValidity" : {
    "expiryDate" : "string",
    "licenseKeyStatus" : "One among: EXPIRED, ACTIVE, NEVER_EXPIRES"
  },
  "productType" : "One among: VCENTER, VSAN, SDDC_MANAGER, ESXI, NSXT, WCP, HORIZON_VIEW"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.13.4. Delete a License Key

DELETE /v1/license-keys/{key}
Parameters
Type Name Description Schema

Path

key
required

The 29 alpha numeric character license key with hyphens

string

Responses
HTTP Code Description Schema

200

OK

No Content

204

No content

No Content

404

License key not found

No Content

500

Internal server error

Consumes
  • application/json

Produces
  • */*

Example HTTP request
Request path
/v1/license-keys/string
Example HTTP response
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.14. Manifests

APIs for managing LCM Manifests

3.14.1. Save/Load manifest

POST /v1/manifests
Description

Save/Load manifest. Make sure manifest is a valid one. If manifest already exists, it gets overridden.

Parameters
Type Name Description Schema

Body

manifest
required

manifest

Responses
HTTP Code Description Schema

202

Accepted

No Content

400

Bad Request

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/manifests
Request body
{
  "creationTime" : "string",
  "publishedDate" : "string",
  "recalledBundles" : [ {
    "recalledBundleIds" : [ "string" ],
    "replacementBundleIds" : [ "string" ],
    "replacementBundleStatus" : "One among: NONE, PENDING, READY"
  } ],
  "releases" : [ {
    "bom" : [ {
      "additionalMetadata" : "string",
      "name" : "string",
      "publicName" : "string",
      "releaseURL" : {
        "authority" : "string",
        "content" : "object",
        "defaultPort" : 0,
        "file" : "string",
        "host" : "string",
        "path" : "string",
        "port" : 0,
        "protocol" : "string",
        "query" : "string",
        "ref" : "string",
        "userInfo" : "string"
      },
      "version" : "string"
    } ],
    "description" : "string",
    "eol" : "string",
    "minCompatibleVcfVersion" : "string",
    "patchBundles" : [ {
      "bundleElements" : [ "string" ],
      "bundleId" : "string",
      "bundleType" : "string",
      "cumulativeFromVcfVersion" : "string"
    } ],
    "product" : "string",
    "releaseDate" : "string",
    "updates" : [ {
      "baseProductVersion" : "string",
      "description" : "string",
      "id" : "string",
      "productName" : "string",
      "releaseDate" : "string",
      "releaseUpdateURL" : {
        "authority" : "string",
        "content" : "object",
        "defaultPort" : 0,
        "file" : "string",
        "host" : "string",
        "path" : "string",
        "port" : 0,
        "protocol" : "string",
        "query" : "string",
        "ref" : "string",
        "userInfo" : "string"
      }
    } ],
    "version" : "string"
  } ],
  "sequenceNumber" : 0,
  "version" : 0
}
Example HTTP response
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.14.2. Get manifest

GET /v1/manifests
Description

Get manifest. There should be only one valid manifest in the System.

Responses
HTTP Code Description Schema

200

Ok

404

Manifest Not Found

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 200
{
  "creationTime" : "string",
  "publishedDate" : "string",
  "recalledBundles" : [ {
    "recalledBundleIds" : [ "string" ],
    "replacementBundleIds" : [ "string" ],
    "replacementBundleStatus" : "One among: NONE, PENDING, READY"
  } ],
  "releases" : [ {
    "bom" : [ {
      "additionalMetadata" : "string",
      "name" : "string",
      "publicName" : "string",
      "releaseURL" : {
        "authority" : "string",
        "content" : "object",
        "defaultPort" : 0,
        "file" : "string",
        "host" : "string",
        "path" : "string",
        "port" : 0,
        "protocol" : "string",
        "query" : "string",
        "ref" : "string",
        "userInfo" : "string"
      },
      "version" : "string"
    } ],
    "description" : "string",
    "eol" : "string",
    "minCompatibleVcfVersion" : "string",
    "patchBundles" : [ {
      "bundleElements" : [ "string" ],
      "bundleId" : "string",
      "bundleType" : "string",
      "cumulativeFromVcfVersion" : "string"
    } ],
    "product" : "string",
    "releaseDate" : "string",
    "updates" : [ {
      "baseProductVersion" : "string",
      "description" : "string",
      "id" : "string",
      "productName" : "string",
      "releaseDate" : "string",
      "releaseUpdateURL" : {
        "authority" : "string",
        "content" : "object",
        "defaultPort" : 0,
        "file" : "string",
        "host" : "string",
        "path" : "string",
        "port" : 0,
        "protocol" : "string",
        "query" : "string",
        "ref" : "string",
        "userInfo" : "string"
      }
    } ],
    "version" : "string"
  } ],
  "sequenceNumber" : 0,
  "version" : 0
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.15. Members

APIs for managing Members of the Federation

3.15.1. Join a VMware Cloud Foundation to a federation

POST /v1/sddc-federation/members
Parameters
Type Name Description Schema

Body

joinSpec
required

Member Join Spec

Responses
HTTP Code Description Schema

202

ACCEPTED

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/sddc-federation/members
Request body
{
  "commonName" : "string",
  "controllerFqdn" : "string",
  "joinToken" : "string",
  "memberJoinDetail" : {
    "city" : "string",
    "coordinate" : {
      "latitude" : 0.0,
      "longitude" : 0.0
    },
    "country" : "string",
    "fqdn" : "string",
    "role" : "CONTROLLER",
    "siteName" : "string",
    "siteType" : "DATACENTER",
    "state" : "string"
  }
}
Example HTTP response
Response 202
{
  "created" : {
    "dateTime" : "string",
    "timestamp" : 0
  },
  "errors" : [ {
    "error" : "string",
    "errorPack" : {
      "arguments" : [ "object" ],
      "component" : "string",
      "defaultMessage" : "string",
      "localBundle" : "string",
      "messageKey" : "string"
    },
    "suggestedRemedy" : "string",
    "suggestedRemedyPack" : {
      "arguments" : [ "object" ],
      "component" : "string",
      "defaultMessage" : "string",
      "localBundle" : "string",
      "messageKey" : "string"
    }
  } ],
  "lastUpdated" : {
    "dateTime" : "string",
    "timestamp" : 0
  },
  "operation" : "BOOTSTRAP",
  "payload" : {
    "assignedBrokerId" : 0,
    "assignedZkId" : 0,
    "mbServers" : {
      "messageBusServersInfo" : [ {
        "brokerId" : 0,
        "fqdn" : "string",
        "hostAddress" : "string",
        "port" : 0
      } ]
    },
    "srServers" : {
      "schemaRegistryServersInfo" : [ {
        "hostAddress" : "string",
        "port" : 0,
        "protocol" : "string"
      } ]
    },
    "zkServers" : {
      "zookeeperServersInfo" : [ {
        "clientPort" : 0,
        "electionPort" : 0,
        "fqdn" : "string",
        "hostAddress" : "string",
        "peerPort" : 0,
        "securePort" : 0,
        "zkId" : 0,
        "zkRole" : "string"
      } ]
    }
  },
  "progressDetails" : "string",
  "remoteOperationTask" : {
    "created" : {
      "dateTime" : "string",
      "timestamp" : 0
    },
    "errors" : [ {
      "error" : "string",
      "errorPack" : {
        "arguments" : [ "object" ],
        "component" : "string",
        "defaultMessage" : "string",
        "localBundle" : "string",
        "messageKey" : "string"
      },
      "suggestedRemedy" : "string",
      "suggestedRemedyPack" : {
        "arguments" : [ "object" ],
        "component" : "string",
        "defaultMessage" : "string",
        "localBundle" : "string",
        "messageKey" : "string"
      }
    } ],
    "lastUpdated" : {
      "dateTime" : "string",
      "timestamp" : 0
    },
    "operation" : "BOOTSTRAP",
    "payload" : {
      "assignedBrokerId" : 0,
      "assignedZkId" : 0,
      "mbServers" : {
        "messageBusServersInfo" : [ {
          "brokerId" : 0,
          "fqdn" : "string",
          "hostAddress" : "string",
          "port" : 0
        } ]
      },
      "srServers" : {
        "schemaRegistryServersInfo" : [ {
          "hostAddress" : "string",
          "port" : 0,
          "protocol" : "string"
        } ]
      },
      "zkServers" : {
        "zookeeperServersInfo" : [ {
          "clientPort" : 0,
          "electionPort" : 0,
          "fqdn" : "string",
          "hostAddress" : "string",
          "peerPort" : 0,
          "securePort" : 0,
          "zkId" : 0,
          "zkRole" : "string"
        } ]
      }
    },
    "progressDetails" : "string",
    "remoteOperationTask" : "...",
    "status" : "NOT_STARTED",
    "taskId" : "string"
  },
  "status" : "NOT_STARTED",
  "taskId" : "string"
}

3.15.2. Get fact about a VMware Cloud Foundation

GET /v1/sddc-federation/members
Parameters
Type Name Description Schema

Query

local
optional

Provide current member fact

boolean

Responses
HTTP Code Description Schema

200

OK

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/sddc-federation/members
Example HTTP response
Response 200
{
  "error" : {
    "error" : "string",
    "errorPack" : {
      "arguments" : [ "object" ],
      "component" : "string",
      "defaultMessage" : "string",
      "localBundle" : "string",
      "messageKey" : "string"
    },
    "suggestedRemedy" : "string",
    "suggestedRemedyPack" : {
      "arguments" : [ "object" ],
      "component" : "string",
      "defaultMessage" : "string",
      "localBundle" : "string",
      "messageKey" : "string"
    }
  },
  "federationName" : "string",
  "memberDetail" : {
    "city" : "string",
    "coordinate" : {
      "latitude" : 0.0,
      "longitude" : 0.0
    },
    "country" : "string",
    "fqdn" : "string",
    "role" : "CONTROLLER",
    "siteName" : "string",
    "siteType" : "DATACENTER",
    "state" : "string"
  },
  "permissions" : [ "BOOTSTRAP" ]
}

3.15.3. Leave a VMware Cloud Foundation from a federation

DELETE /v1/sddc-federation/members/{memberId}
Parameters
Type Name Description Schema

Path

memberId
required

Member FQDN

string

Query

force
optional

force

boolean

Responses
HTTP Code Description Schema

202

ACCEPTED

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/sddc-federation/members/string
Example HTTP response
Response 202
{
  "created" : {
    "dateTime" : "string",
    "timestamp" : 0
  },
  "errors" : [ {
    "error" : "string",
    "errorPack" : {
      "arguments" : [ "object" ],
      "component" : "string",
      "defaultMessage" : "string",
      "localBundle" : "string",
      "messageKey" : "string"
    },
    "suggestedRemedy" : "string",
    "suggestedRemedyPack" : {
      "arguments" : [ "object" ],
      "component" : "string",
      "defaultMessage" : "string",
      "localBundle" : "string",
      "messageKey" : "string"
    }
  } ],
  "lastUpdated" : {
    "dateTime" : "string",
    "timestamp" : 0
  },
  "operation" : "BOOTSTRAP",
  "payload" : {
    "assignedBrokerId" : 0,
    "assignedZkId" : 0,
    "mbServers" : {
      "messageBusServersInfo" : [ {
        "brokerId" : 0,
        "fqdn" : "string",
        "hostAddress" : "string",
        "port" : 0
      } ]
    },
    "srServers" : {
      "schemaRegistryServersInfo" : [ {
        "hostAddress" : "string",
        "port" : 0,
        "protocol" : "string"
      } ]
    },
    "zkServers" : {
      "zookeeperServersInfo" : [ {
        "clientPort" : 0,
        "electionPort" : 0,
        "fqdn" : "string",
        "hostAddress" : "string",
        "peerPort" : 0,
        "securePort" : 0,
        "zkId" : 0,
        "zkRole" : "string"
      } ]
    }
  },
  "progressDetails" : "string",
  "remoteOperationTask" : {
    "created" : {
      "dateTime" : "string",
      "timestamp" : 0
    },
    "errors" : [ {
      "error" : "string",
      "errorPack" : {
        "arguments" : [ "object" ],
        "component" : "string",
        "defaultMessage" : "string",
        "localBundle" : "string",
        "messageKey" : "string"
      },
      "suggestedRemedy" : "string",
      "suggestedRemedyPack" : {
        "arguments" : [ "object" ],
        "component" : "string",
        "defaultMessage" : "string",
        "localBundle" : "string",
        "messageKey" : "string"
      }
    } ],
    "lastUpdated" : {
      "dateTime" : "string",
      "timestamp" : 0
    },
    "operation" : "BOOTSTRAP",
    "payload" : {
      "assignedBrokerId" : 0,
      "assignedZkId" : 0,
      "mbServers" : {
        "messageBusServersInfo" : [ {
          "brokerId" : 0,
          "fqdn" : "string",
          "hostAddress" : "string",
          "port" : 0
        } ]
      },
      "srServers" : {
        "schemaRegistryServersInfo" : [ {
          "hostAddress" : "string",
          "port" : 0,
          "protocol" : "string"
        } ]
      },
      "zkServers" : {
        "zookeeperServersInfo" : [ {
          "clientPort" : 0,
          "electionPort" : 0,
          "fqdn" : "string",
          "hostAddress" : "string",
          "peerPort" : 0,
          "securePort" : 0,
          "zkId" : 0,
          "zkRole" : "string"
        } ]
      }
    },
    "progressDetails" : "string",
    "remoteOperationTask" : "...",
    "status" : "NOT_STARTED",
    "taskId" : "string"
  },
  "status" : "NOT_STARTED",
  "taskId" : "string"
}

3.16. Membership Token

APIs for managing Membership Token

3.16.1. Invite a VMware Cloud Foundation to be member of a federation

POST /v1/sddc-federation/membership-tokens
Parameters
Type Name Description Schema

Body

inviteSpec
required

Invitation Spec

Responses
HTTP Code Description Schema

200

OK

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/sddc-federation/membership-tokens
Request body
{
  "inviteeFqdn" : "string",
  "inviteeRole" : "CONTROLLER",
  "tokenExpiryHours" : 0.0
}
Example HTTP response
Response 200
{
  "controllerFqdn" : [ "string" ],
  "error" : {
    "error" : "string",
    "errorPack" : {
      "arguments" : [ "object" ],
      "component" : "string",
      "defaultMessage" : "string",
      "localBundle" : "string",
      "messageKey" : "string"
    },
    "suggestedRemedy" : "string",
    "suggestedRemedyPack" : {
      "arguments" : [ "object" ],
      "component" : "string",
      "defaultMessage" : "string",
      "localBundle" : "string",
      "messageKey" : "string"
    }
  },
  "invitationToken" : "string",
  "inviteeFqdn" : "string",
  "inviteeRole" : "CONTROLLER"
}

3.17. NSX-T Clusters

APIs for managing NSX-T Clusters

3.17.1. Get the NSX-T clusters

GET /v1/nsxt-clusters
Parameters
Type Name Description Schema

Query

isShareable
optional

filter NSX-T clusters which can be shared for domain creation

boolean

Responses
HTTP Code Description Schema

200

Ok

400

Bad Request

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 200
{
  "elements" : [ {
    "domains" : [ {
      "id" : "string",
      "name" : "string"
    } ],
    "id" : "string",
    "isShareable" : true,
    "isShared" : true,
    "isVlcmCompatible" : true,
    "nodes" : [ {
      "fqdn" : "string",
      "id" : "string",
      "ipAddress" : "string",
      "name" : "string"
    } ],
    "status" : "One among: INITIALIZING, STABLE, DEGRADED, UNSTABLE, UNAVAILABLE, UNIDENTIFIED, UNDEFINED",
    "version" : "string",
    "vip" : "string",
    "vipFqdn" : "string"
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.17.2. Get all NSX-T criteria

GET /v1/nsxt-clusters/criteria
Responses
HTTP Code Description Schema

200

Ok

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/nsxt-clusters/criteria
Example HTTP response
Response 200
{
  "elements" : [ {
    "arguments" : {
      "string" : "string"
    },
    "description" : "string",
    "name" : "NSXT_CLUSTERS_WITH_STATUS"
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}

3.17.3. Get a NSX-T criterion

GET /v1/nsxt-clusters/criteria/{name}
Parameters
Type Name Description Schema

Path

name
required

name

string

Responses
HTTP Code Description Schema

200

Ok

404

Criterion Not Found

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/nsxt-clusters/criteria/string
Example HTTP response
Response 200
{
  "arguments" : {
    "string" : "string"
  },
  "description" : "string",
  "name" : "NSXT_CLUSTERS_WITH_STATUS"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.17.4. validateIpPool

POST /v1/nsxt-clusters/ip-address-pools/validations
Parameters
Type Name Description Schema

Body

nsxtIpAddressPoolValidationSpec
required

nsxtIpAddressPoolValidationSpec

Responses
HTTP Code Description Schema

200

OK

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/nsxt-clusters/ip-address-pools/validations
Request body
{
  "ipAddressPoolSpec" : {
    "description" : "string",
    "ignoreUnavailableNsxtCluster" : true,
    "name" : "string",
    "subnets" : [ {
      "cidr" : "string",
      "gateway" : "string",
      "ipAddressPoolRanges" : [ {
        "end" : "string",
        "start" : "string"
      } ]
    } ]
  },
  "nsxtClusterId" : "string"
}
Example HTTP response
Response 200
{
  "additionalProperties" : {
    "string" : "string"
  },
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS, CANCELLATION_IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "nestedValidationChecks" : [ {
      "description" : "string",
      "errorResponse" : {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}

3.17.5. getValidationResult

GET /v1/nsxt-clusters/ip-address-pools/validations/{id}
Parameters
Type Name Description Schema

Path

id
required

id

string

Responses
HTTP Code Description Schema

200

OK

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/nsxt-clusters/ip-address-pools/validations/string
Example HTTP response
Response 200
{
  "additionalProperties" : {
    "string" : "string"
  },
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS, CANCELLATION_IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "nestedValidationChecks" : [ {
      "description" : "string",
      "errorResponse" : {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}

3.17.6. Post a query

POST /v1/nsxt-clusters/queries
Parameters
Type Name Description Schema

Body

nsxtCriterion
required

nsxtCriterion

Responses
HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/nsxt-clusters/queries
Request body
{
  "arguments" : {
    "string" : "string"
  },
  "description" : "string",
  "name" : "NSXT_CLUSTERS_WITH_STATUS"
}
Example HTTP response
Response 200
{
  "queryInfo" : {
    "completed" : true,
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "failure" : true,
    "processing" : true,
    "status" : "string"
  },
  "result" : {
    "elements" : [ {
      "domains" : [ {
        "id" : "string",
        "name" : "string"
      } ],
      "id" : "string",
      "isShareable" : true,
      "isShared" : true,
      "isVlcmCompatible" : true,
      "nodes" : [ {
        "fqdn" : "string",
        "id" : "string",
        "ipAddress" : "string",
        "name" : "string"
      } ],
      "status" : "One among: INITIALIZING, STABLE, DEGRADED, UNSTABLE, UNAVAILABLE, UNIDENTIFIED, UNDEFINED",
      "version" : "string",
      "vip" : "string",
      "vipFqdn" : "string"
    } ],
    "pageMetadata" : {
      "pageNumber" : 0,
      "pageSize" : 0,
      "totalElements" : 0,
      "totalPages" : 0
    }
  }
}
Response 202
{
  "queryInfo" : {
    "completed" : true,
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "failure" : true,
    "processing" : true,
    "status" : "string"
  },
  "result" : {
    "elements" : [ {
      "domains" : [ {
        "id" : "string",
        "name" : "string"
      } ],
      "id" : "string",
      "isShareable" : true,
      "isShared" : true,
      "isVlcmCompatible" : true,
      "nodes" : [ {
        "fqdn" : "string",
        "id" : "string",
        "ipAddress" : "string",
        "name" : "string"
      } ],
      "status" : "One among: INITIALIZING, STABLE, DEGRADED, UNSTABLE, UNAVAILABLE, UNIDENTIFIED, UNDEFINED",
      "version" : "string",
      "vip" : "string",
      "vipFqdn" : "string"
    } ],
    "pageMetadata" : {
      "pageNumber" : 0,
      "pageSize" : 0,
      "totalElements" : 0,
      "totalPages" : 0
    }
  }
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.17.7. Get NSX-T cluster query response

GET /v1/nsxt-clusters/queries/{id}
Parameters
Type Name Description Schema

Path

id
required

id

string

Responses
HTTP Code Description Schema

200

Ok

202

Accepted

400

Bad Request

404

Query Not Found

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/nsxt-clusters/queries/string
Example HTTP response
Response 200
{
  "queryInfo" : {
    "completed" : true,
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "failure" : true,
    "processing" : true,
    "status" : "string"
  },
  "result" : {
    "elements" : [ {
      "domains" : [ {
        "id" : "string",
        "name" : "string"
      } ],
      "id" : "string",
      "isShareable" : true,
      "isShared" : true,
      "isVlcmCompatible" : true,
      "nodes" : [ {
        "fqdn" : "string",
        "id" : "string",
        "ipAddress" : "string",
        "name" : "string"
      } ],
      "status" : "One among: INITIALIZING, STABLE, DEGRADED, UNSTABLE, UNAVAILABLE, UNIDENTIFIED, UNDEFINED",
      "version" : "string",
      "vip" : "string",
      "vipFqdn" : "string"
    } ],
    "pageMetadata" : {
      "pageNumber" : 0,
      "pageSize" : 0,
      "totalElements" : 0,
      "totalPages" : 0
    }
  }
}
Response 202
{
  "queryInfo" : {
    "completed" : true,
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "failure" : true,
    "processing" : true,
    "status" : "string"
  },
  "result" : {
    "elements" : [ {
      "domains" : [ {
        "id" : "string",
        "name" : "string"
      } ],
      "id" : "string",
      "isShareable" : true,
      "isShared" : true,
      "isVlcmCompatible" : true,
      "nodes" : [ {
        "fqdn" : "string",
        "id" : "string",
        "ipAddress" : "string",
        "name" : "string"
      } ],
      "status" : "One among: INITIALIZING, STABLE, DEGRADED, UNSTABLE, UNAVAILABLE, UNIDENTIFIED, UNDEFINED",
      "version" : "string",
      "vip" : "string",
      "vipFqdn" : "string"
    } ],
    "pageMetadata" : {
      "pageNumber" : 0,
      "pageSize" : 0,
      "totalElements" : 0,
      "totalPages" : 0
    }
  }
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.17.8. Get a NSX-T cluster

GET /v1/nsxt-clusters/{id}
Parameters
Type Name Description Schema

Path

id
required

NSX-T cluster ID

string

Responses
HTTP Code Description Schema

200

Ok

404

NSX-T cluster not found

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/nsxt-clusters/string
Example HTTP response
Response 200
{
  "domains" : [ {
    "id" : "string",
    "name" : "string"
  } ],
  "id" : "string",
  "isShareable" : true,
  "isShared" : true,
  "isVlcmCompatible" : true,
  "nodes" : [ {
    "fqdn" : "string",
    "id" : "string",
    "ipAddress" : "string",
    "name" : "string"
  } ],
  "status" : "One among: INITIALIZING, STABLE, DEGRADED, UNSTABLE, UNAVAILABLE, UNIDENTIFIED, UNDEFINED",
  "version" : "string",
  "vip" : "string",
  "vipFqdn" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.17.9. Get the NSX-T IP address pools

GET /v1/nsxt-clusters/{nsxt-cluster-id}/ip-address-pools
Parameters
Type Name Description Schema

Path

nsxt-cluster-id
required

NSX-T cluster ID

string

Responses
HTTP Code Description Schema

200

Ok

404

IP address pools not found

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/nsxt-clusters/string/ip-address-pools
Example HTTP response
Response 200
{
  "availableIpAddresses" : 0,
  "blockSubnets" : [ {
    "cidr" : "string",
    "gatewayAssigned" : true,
    "size" : 0
  } ],
  "description" : "string",
  "name" : "string",
  "staticSubnets" : [ {
    "cidr" : "string",
    "gateway" : "string",
    "ipAddressPoolRanges" : [ {
      "end" : "string",
      "start" : "string"
    } ]
  } ],
  "totalIpAddresses" : 0
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.17.10. Get a NSX-T IP address pool

GET /v1/nsxt-clusters/{nsxt-cluster-id}/ip-address-pools/{name}
Parameters
Type Name Description Schema

Path

name
required

IP address pool name

string

Path

nsxt-cluster-id
required

NSX-T cluster ID

string

Responses
HTTP Code Description Schema

200

Ok

404

IP address pool not found

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/nsxt-clusters/string/ip-address-pools/string
Example HTTP response
Response 200
{
  "availableIpAddresses" : 0,
  "blockSubnets" : [ {
    "cidr" : "string",
    "gatewayAssigned" : true,
    "size" : 0
  } ],
  "description" : "string",
  "name" : "string",
  "staticSubnets" : [ {
    "cidr" : "string",
    "gateway" : "string",
    "ipAddressPoolRanges" : [ {
      "end" : "string",
      "start" : "string"
    } ]
  } ],
  "totalIpAddresses" : 0
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.18. Network Pools

APIs for managing Network Pools

3.18.1. Create a Network Pool

POST /v1/network-pools
Description

Create a Network Pool

Parameters
Type Name Description Schema

Body

networkPool
required

Specification of the Network pool to create

Responses
HTTP Code Description Schema

200

OK

201

The newly created network pool

400

Errors due to network pool validations failures

500

Unexpected error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/network-pools
Request body
{
  "id" : "string",
  "name" : "string",
  "networks" : [ {
    "freeIps" : [ "string" ],
    "gateway" : "string",
    "id" : "string",
    "ipPools" : [ {
      "end" : "string",
      "start" : "string"
    } ],
    "mask" : "string",
    "mtu" : 0,
    "subnet" : "string",
    "type" : "string",
    "usedIps" : [ "string" ],
    "vlanId" : 0
  } ]
}
Example HTTP response
Response 200
{
  "id" : "string",
  "name" : "string",
  "networks" : [ {
    "freeIps" : [ "string" ],
    "gateway" : "string",
    "id" : "string",
    "ipPools" : [ {
      "end" : "string",
      "start" : "string"
    } ],
    "mask" : "string",
    "mtu" : 0,
    "subnet" : "string",
    "type" : "string",
    "usedIps" : [ "string" ],
    "vlanId" : 0
  } ]
}
Response 201
{
  "id" : "string",
  "name" : "string",
  "networks" : [ {
    "freeIps" : [ "string" ],
    "gateway" : "string",
    "id" : "string",
    "ipPools" : [ {
      "end" : "string",
      "start" : "string"
    } ],
    "mask" : "string",
    "mtu" : 0,
    "subnet" : "string",
    "type" : "string",
    "usedIps" : [ "string" ],
    "vlanId" : 0
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.18.2. Get the Network Pools

GET /v1/network-pools
Description

Get the Network Pools

Responses
HTTP Code Description Schema

200

Referenced network pool

404

Referenced network pool not found

500

Unexpected error

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 200
{
  "elements" : [ {
    "id" : "string",
    "name" : "string",
    "networks" : [ {
      "freeIps" : [ "string" ],
      "gateway" : "string",
      "id" : "string",
      "ipPools" : [ {
        "end" : "string",
        "start" : "string"
      } ],
      "mask" : "string",
      "mtu" : 0,
      "subnet" : "string",
      "type" : "string",
      "usedIps" : [ "string" ],
      "vlanId" : 0
    } ]
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.18.3. Get a Network Pool

GET /v1/network-pools/{id}
Description

Get a Network Pool by ID, if it exists

Parameters
Type Name Description Schema

Path

id
required

ID of the network pool to fetch

string

Responses
HTTP Code Description Schema

200

Referenced network pool

404

Referenced network pool not found

500

Unexpected error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/network-pools/string
Example HTTP response
Response 200
{
  "id" : "string",
  "name" : "string",
  "networks" : [ {
    "freeIps" : [ "string" ],
    "gateway" : "string",
    "id" : "string",
    "ipPools" : [ {
      "end" : "string",
      "start" : "string"
    } ],
    "mask" : "string",
    "mtu" : 0,
    "subnet" : "string",
    "type" : "string",
    "usedIps" : [ "string" ],
    "vlanId" : 0
  } ]
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.18.4. Delete a Network Pool

DELETE /v1/network-pools/{id}
Description

Delete the Network Pool by the ID, if it exists and is unused

Parameters
Type Name Description Schema

Path

id
required

ID of the network pool

string

Responses
HTTP Code Description Schema

204

The specification of the deleted network pool

No Content

400

Hosts are still associated with NetworkPool

404

Referenced network pool not found

500

Unexpected error

Consumes
  • application/json

Produces
  • */*

Example HTTP request
Request path
/v1/network-pools/string
Example HTTP response
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.18.5. Update Network Pool

PATCH /v1/network-pools/{id}
Description

Update a Network Pool by ID, if it exists

Parameters
Type Name Description Schema

Path

id
required

Network Pool ID

string

Body

networkPoolUpdateSpec
required

Network Pool update data

Responses
HTTP Code Description Schema

200

Network Pool update completed

404

Network Pool not found

500

Unexpected error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/network-pools/string
Request body
{
  "name" : "string"
}
Example HTTP response
Response 200
{
  "id" : "string",
  "name" : "string",
  "networks" : [ {
    "freeIps" : [ "string" ],
    "gateway" : "string",
    "id" : "string",
    "ipPools" : [ {
      "end" : "string",
      "start" : "string"
    } ],
    "mask" : "string",
    "mtu" : 0,
    "subnet" : "string",
    "type" : "string",
    "usedIps" : [ "string" ],
    "vlanId" : 0
  } ]
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.18.6. Get the Networks of a Network Pool

GET /v1/network-pools/{id}/networks
Description

Get the Networks that are part of a Network Pool

Parameters
Type Name Description Schema

Path

id
required

ID for Networkpool to get the networks from

string

Responses
HTTP Code Description Schema

200

Networks for referenced network pool

404

Network pool not found

500

Unexpected error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/network-pools/string/networks
Example HTTP response
Response 200
{
  "elements" : [ {
    "freeIps" : [ "string" ],
    "gateway" : "string",
    "id" : "string",
    "ipPools" : [ {
      "end" : "string",
      "start" : "string"
    } ],
    "mask" : "string",
    "mtu" : 0,
    "subnet" : "string",
    "type" : "string",
    "usedIps" : [ "string" ],
    "vlanId" : 0
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.18.7. Get a Network of a Network Pool

GET /v1/network-pools/{id}/networks/{networkId}
Description

Get a Network that is part of a Network Pool

Parameters
Type Name Description Schema

Path

id
required

Id of the Network pool

string

Path

networkId
required

Id of the Network

string

Responses
HTTP Code Description Schema

200

Network for referenced network pool

404

Networkpool not found

500

Unexpected error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/network-pools/string/networks/string
Example HTTP response
Response 200
{
  "freeIps" : [ "string" ],
  "gateway" : "string",
  "id" : "string",
  "ipPools" : [ {
    "end" : "string",
    "start" : "string"
  } ],
  "mask" : "string",
  "mtu" : 0,
  "subnet" : "string",
  "type" : "string",
  "usedIps" : [ "string" ],
  "vlanId" : 0
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.18.8. Add an IP Pool to a Network of a Network Pool

POST /v1/network-pools/{id}/networks/{networkId}/ip-pools
Description

Add an IP Pool to a Network of a Network Pool

Parameters
Type Name Description Schema

Path

id
required

Id of the networkpoolk

string

Path

networkId
required

Id of the network

string

Body

ipPool
required

ipPool

Responses
HTTP Code Description Schema

200

Add the IP Pool associated with a Network of a Network Pool

400

IP range validation failed error

404

Either Network Pool ID or Network ID not found

500

Unexpected error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/network-pools/string/networks/string/ip-pools
Request body
{
  "end" : "string",
  "start" : "string"
}
Example HTTP response
Response 200
{
  "freeIps" : [ "string" ],
  "gateway" : "string",
  "id" : "string",
  "ipPools" : [ {
    "end" : "string",
    "start" : "string"
  } ],
  "mask" : "string",
  "mtu" : 0,
  "subnet" : "string",
  "type" : "string",
  "usedIps" : [ "string" ],
  "vlanId" : 0
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.18.9. Delete an IP Pool from a Network of a Network Pool

DELETE /v1/network-pools/{id}/networks/{networkId}/ip-pools
Description

Delete an IP Pool from a Network of a Network Pool

Parameters
Type Name Description Schema

Path

id
required

ID of the networkpool

string

Path

networkId
required

ID of the network

string

Body

ipPool
required

ipPool

Responses
HTTP Code Description Schema

204

No Content

No Content

400

Errors due to network/networkpool validations failures

404

Either network or Network pool not found

500

Unexpected error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/network-pools/string/networks/string/ip-pools
Request body
{
  "end" : "string",
  "start" : "string"
}
Example HTTP response
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.19. NsxTEdgeClusters

APIs for managing NSX-T Edge Clusters

3.19.1. Create an Edge Cluster

POST /v1/edge-clusters
Parameters
Type Name Description Schema

Body

edgeCreationSpec
required

NSX-T Edge cluster creation data

Responses
HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/edge-clusters
Request body
{
  "asn" : 0,
  "edgeAdminPassword" : "string",
  "edgeAuditPassword" : "string",
  "edgeClusterName" : "string",
  "edgeClusterProfileSpec" : {
    "bfdAllowedHop" : 0,
    "bfdDeclareDeadMultiple" : 0,
    "bfdProbeInterval" : 0,
    "edgeClusterProfileName" : "string",
    "standbyRelocationThreshold" : 0
  },
  "edgeClusterProfileType" : "One among: DEFAULT, CUSTOM",
  "edgeClusterType" : "One among: NSX-T",
  "edgeFormFactor" : "One among: XLARGE, LARGE, MEDIUM, SMALL",
  "edgeNodeSpecs" : [ {
    "clusterId" : "string",
    "edgeNodeName" : "string",
    "edgeTep1IP" : "string",
    "edgeTep2IP" : "string",
    "edgeTepGateway" : "string",
    "edgeTepVlan" : 0,
    "firstNsxVdsUplink" : "One among: uplink1, uplink2, uplink3, uplink4",
    "interRackCluster" : true,
    "managementGateway" : "string",
    "managementIP" : "string",
    "secondNsxVdsUplink" : "One among: uplink1, uplink2, uplink3, uplink4",
    "uplinkNetwork" : [ {
      "asnPeer" : 0,
      "bgpPeerPassword" : "string",
      "bgpPeers" : [ {
        "asn" : 0,
        "ip" : "string",
        "password" : "string"
      } ],
      "peerIP" : "string",
      "uplinkInterfaceIP" : "string",
      "uplinkVlan" : 0
    } ]
  } ],
  "edgeRootPassword" : "string",
  "internalTransitSubnets" : [ "string" ],
  "mtu" : 0,
  "tier0Name" : "string",
  "tier0RoutingType" : "One among: EBGP, STATIC",
  "tier0ServicesHighAvailability" : "One among: ACTIVE_ACTIVE, ACTIVE_STANDBY",
  "tier1Name" : "string",
  "transitSubnets" : [ "string" ]
}
Example HTTP response
Response 200
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.19.2. Get the Edge Clusters

GET /v1/edge-clusters
Parameters
Type Name Description Schema

Query

clusterId
optional

Pass an optional vSphere Cluster ID to fetch edge clusters associated with the vSphere Cluster

string

Responses
HTTP Code Description Schema

200

Ok

400

Bad Request

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 200
{
  "elements" : [ {
    "clusters" : [ {
      "id" : "string"
    } ],
    "edgeNodes" : [ {
      "hostName" : "string",
      "id" : "string"
    } ],
    "id" : "string",
    "name" : "string",
    "nsxtCluster" : {
      "id" : "string",
      "vip" : "string",
      "vipFqdn" : "string"
    }
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.19.3. Validate an Edge Cluster spec

POST /v1/edge-clusters/validations
Parameters
Type Name Description Schema

Body

edgeCreationSpec
required

NSX-T Edge cluster creation data to be validated

Responses
HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/edge-clusters/validations
Request body
{
  "asn" : 0,
  "edgeAdminPassword" : "string",
  "edgeAuditPassword" : "string",
  "edgeClusterName" : "string",
  "edgeClusterProfileSpec" : {
    "bfdAllowedHop" : 0,
    "bfdDeclareDeadMultiple" : 0,
    "bfdProbeInterval" : 0,
    "edgeClusterProfileName" : "string",
    "standbyRelocationThreshold" : 0
  },
  "edgeClusterProfileType" : "One among: DEFAULT, CUSTOM",
  "edgeClusterType" : "One among: NSX-T",
  "edgeFormFactor" : "One among: XLARGE, LARGE, MEDIUM, SMALL",
  "edgeNodeSpecs" : [ {
    "clusterId" : "string",
    "edgeNodeName" : "string",
    "edgeTep1IP" : "string",
    "edgeTep2IP" : "string",
    "edgeTepGateway" : "string",
    "edgeTepVlan" : 0,
    "firstNsxVdsUplink" : "One among: uplink1, uplink2, uplink3, uplink4",
    "interRackCluster" : true,
    "managementGateway" : "string",
    "managementIP" : "string",
    "secondNsxVdsUplink" : "One among: uplink1, uplink2, uplink3, uplink4",
    "uplinkNetwork" : [ {
      "asnPeer" : 0,
      "bgpPeerPassword" : "string",
      "bgpPeers" : [ {
        "asn" : 0,
        "ip" : "string",
        "password" : "string"
      } ],
      "peerIP" : "string",
      "uplinkInterfaceIP" : "string",
      "uplinkVlan" : 0
    } ]
  } ],
  "edgeRootPassword" : "string",
  "internalTransitSubnets" : [ "string" ],
  "mtu" : 0,
  "tier0Name" : "string",
  "tier0RoutingType" : "One among: EBGP, STATIC",
  "tier0ServicesHighAvailability" : "One among: ACTIVE_ACTIVE, ACTIVE_STANDBY",
  "tier1Name" : "string",
  "transitSubnets" : [ "string" ]
}
Example HTTP response
Response 200
{
  "additionalProperties" : {
    "string" : "string"
  },
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS, CANCELLATION_IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "nestedValidationChecks" : [ {
      "description" : "string",
      "errorResponse" : {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 202
{
  "additionalProperties" : {
    "string" : "string"
  },
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS, CANCELLATION_IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "nestedValidationChecks" : [ {
      "description" : "string",
      "errorResponse" : {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.19.4. Get the Edge Cluster spec validation

GET /v1/edge-clusters/validations/{id}
Parameters
Type Name Description Schema

Path

id
required

The validation ID

string

Responses
HTTP Code Description Schema

200

OK

400

Bad Request

500

Internal server error

No Content

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/edge-clusters/validations/string
Example HTTP response
Response 200
{
  "additionalProperties" : {
    "string" : "string"
  },
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS, CANCELLATION_IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "nestedValidationChecks" : [ {
      "description" : "string",
      "errorResponse" : {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.19.5. Get an Edge Cluster

GET /v1/edge-clusters/{id}
Parameters
Type Name Description Schema

Path

id
required

Edge Cluster ID

string

Responses
HTTP Code Description Schema

200

Ok

404

Edge Cluster not found

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/edge-clusters/string
Example HTTP response
Response 200
{
  "clusters" : [ {
    "id" : "string"
  } ],
  "edgeNodes" : [ {
    "hostName" : "string",
    "id" : "string"
  } ],
  "id" : "string",
  "name" : "string",
  "nsxtCluster" : {
    "id" : "string",
    "vip" : "string",
    "vipFqdn" : "string"
  }
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.19.6. Expand or Shrink an NSX-T Edge Cluster

PATCH /v1/edge-clusters/{id}
Parameters
Type Name Description Schema

Path

id
required

Edge Cluster ID

string

Body

edgeClusterUpdateSpec
required

NSX-T Edge cluster update specification

Responses
HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

InternalServerError

501

Not Implemented

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/edge-clusters/string
Request body
{
  "edgeClusterExpansionSpec" : {
    "additionalTier1Names" : [ "string" ],
    "edgeNodeAdminPassword" : "string",
    "edgeNodeAuditPassword" : "string",
    "edgeNodeRootPassword" : "string",
    "edgeNodeSpecs" : [ {
      "clusterId" : "string",
      "edgeNodeName" : "string",
      "edgeTep1IP" : "string",
      "edgeTep2IP" : "string",
      "edgeTepGateway" : "string",
      "edgeTepVlan" : 0,
      "firstNsxVdsUplink" : "One among: uplink1, uplink2, uplink3, uplink4",
      "interRackCluster" : true,
      "managementGateway" : "string",
      "managementIP" : "string",
      "secondNsxVdsUplink" : "One among: uplink1, uplink2, uplink3, uplink4",
      "uplinkNetwork" : [ {
        "asnPeer" : 0,
        "bgpPeerPassword" : "string",
        "bgpPeers" : [ {
          "asn" : 0,
          "ip" : "string",
          "password" : "string"
        } ],
        "peerIP" : "string",
        "uplinkInterfaceIP" : "string",
        "uplinkVlan" : 0
      } ]
    } ]
  },
  "edgeClusterShrinkageSpec" : {
    "edgeNodeIds" : [ "string" ]
  },
  "operation" : "One among: EXPANSION, SHRINKAGE"
}
Example HTTP response
Response 200
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 501
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.19.7. Validate an NSX-T Edge Cluster update spec

POST /v1/edge-clusters/{id}/validations
Parameters
Type Name Description Schema

Path

id
required

NSX-T Edge cluster id

string

Body

edgeClusterUpdateSpec
required

NSX-T Edge Cluster Update spec to be validated

Responses
HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/edge-clusters/string/validations
Request body
{
  "edgeClusterExpansionSpec" : {
    "additionalTier1Names" : [ "string" ],
    "edgeNodeAdminPassword" : "string",
    "edgeNodeAuditPassword" : "string",
    "edgeNodeRootPassword" : "string",
    "edgeNodeSpecs" : [ {
      "clusterId" : "string",
      "edgeNodeName" : "string",
      "edgeTep1IP" : "string",
      "edgeTep2IP" : "string",
      "edgeTepGateway" : "string",
      "edgeTepVlan" : 0,
      "firstNsxVdsUplink" : "One among: uplink1, uplink2, uplink3, uplink4",
      "interRackCluster" : true,
      "managementGateway" : "string",
      "managementIP" : "string",
      "secondNsxVdsUplink" : "One among: uplink1, uplink2, uplink3, uplink4",
      "uplinkNetwork" : [ {
        "asnPeer" : 0,
        "bgpPeerPassword" : "string",
        "bgpPeers" : [ {
          "asn" : 0,
          "ip" : "string",
          "password" : "string"
        } ],
        "peerIP" : "string",
        "uplinkInterfaceIP" : "string",
        "uplinkVlan" : 0
      } ]
    } ]
  },
  "edgeClusterShrinkageSpec" : {
    "edgeNodeIds" : [ "string" ]
  },
  "operation" : "One among: EXPANSION, SHRINKAGE"
}
Example HTTP response
Response 200
{
  "additionalProperties" : {
    "string" : "string"
  },
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS, CANCELLATION_IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "nestedValidationChecks" : [ {
      "description" : "string",
      "errorResponse" : {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 202
{
  "additionalProperties" : {
    "string" : "string"
  },
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS, CANCELLATION_IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "nestedValidationChecks" : [ {
      "description" : "string",
      "errorResponse" : {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.20. PSCs

APIs for managing PSCs

3.20.1. Get the PSCs

GET /v1/pscs
Responses
HTTP Code Description Schema

200

Ok

400

Bad Request

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 200
{
  "elements" : [ {
    "domain" : {
      "id" : "string",
      "name" : "string"
    },
    "fqdn" : "string",
    "id" : "string",
    "ipAddress" : "string",
    "isReplica" : true,
    "ssoDomainName" : "string",
    "ssoSubDomainName" : "string"
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.20.2. Get a PSC

GET /v1/pscs/{id}
Parameters
Type Name Description Schema

Path

id
required

PSC ID

string

Responses
HTTP Code Description Schema

200

Ok

Psc

404

Psc not found

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 200
{
  "domain" : {
    "id" : "string",
    "name" : "string"
  },
  "fqdn" : "string",
  "id" : "string",
  "ipAddress" : "string",
  "isReplica" : true,
  "ssoDomainName" : "string",
  "ssoSubDomainName" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.21. Personalities

APIs for managing Personalities

3.21.1. Upload a Personality

POST /v1/personalities
Description

Upload Personality to SDDC Manager.

Parameters
Type Name Description Schema

Body

personalityUploadSpec
required

Personality Upload Specification

Responses
HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/personalities
Request body
{
  "name" : "string",
  "uploadMode" : "RAW, RAW_WITH_FILE_UPLOAD_ID, REFERRED",
  "uploadSpecRawMode" : {
    "personalityISOFilePath" : "string",
    "personalityInfoJSONFilePath" : "string",
    "personalityJSONFilePath" : "string",
    "personalityZIPFilePath" : "string"
  },
  "uploadSpecRawWithFileUploadIdMode" : {
    "fileUploadId" : "string"
  },
  "uploadSpecReferredMode" : {
    "clusterId" : "string",
    "vCenterId" : "string",
    "vcenterId" : "string"
  }
}
Example HTTP response
Response 200
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.21.2. Get the Personalities

GET /v1/personalities
Description

Get the Personalities which are available via depot access.

Parameters
Type Name Description Schema

Query

addOnName
optional

The add on name

string

Query

addOnVendorName
optional

The add on vendor name

string

Query

baseOSVersion
optional

The base OS version

string

Query

componentName
optional

The component name

string

Query

componentVendorName
optional

The component vendor name

string

Query

personalityName
optional

personalityName

string

Responses
HTTP Code Description Schema

200

Ok

< Personality > array

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 200
[ {
  "createdBy" : "string",
  "description" : "ESXi 7.0 Dell Personality",
  "displayName" : "ESXi 7.0 Dell Personality",
  "imageChecksum" : "string",
  "imageSize" : "string",
  "kbArticles" : {
    "authority" : "string",
    "content" : "object",
    "defaultPort" : 0,
    "file" : "string",
    "host" : "string",
    "path" : "string",
    "port" : 0,
    "protocol" : "string",
    "query" : "string",
    "ref" : "string",
    "userInfo" : "string"
  },
  "personalityId" : "string",
  "personalityName" : "string",
  "releaseDate" : 0,
  "softwareInfo" : {
    "addOn" : {
      "displayName" : "string",
      "displayVersion" : "string",
      "name" : "DELL-sample-Addon",
      "vendor" : "Dell",
      "version" : "2.0-1"
    },
    "baseImage" : {
      "details" : {
        "displayName" : "7.0.0-0.0.30340198",
        "displayVersion" : "string",
        "releaseDate" : {
          "calendarType" : "string",
          "firstDayOfWeek" : 0,
          "lenient" : true,
          "minimalDaysInFirstWeek" : 0,
          "time" : "1970-01-01T00:00:00Z",
          "timeInMillis" : 0,
          "timeZone" : {
            "displayName" : "string",
            "dstsavings" : 0,
            "id" : "string",
            "rawOffset" : 0
          },
          "weekDateSupported" : true,
          "weekYear" : 0,
          "weeksInWeekYear" : 0
        }
      },
      "version" : "7.0.0-0.0.30340198"
    },
    "components" : {
      "string" : "<<_componentinfo>>"
    },
    "hardwareSupport" : {
      "packages" : {
        "string" : "<<_hardwaresupportpackageinfo>>"
      }
    }
  },
  "tags" : [ "string" ],
  "version" : "string",
  "vsphereExportedIsoPath" : "string",
  "vsphereExportedJsonPath" : "string",
  "vsphereExportedZipPath" : "string"
} ]
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.21.3. Delete the personality based on either name or id

DELETE /v1/personalities
Description

Delete the personality based on either name or id

Parameters
Type Name Description Schema

Query

personalityId
optional

The personality id

string

Query

personalityName
optional

The personality name

string

Responses
HTTP Code Description Schema

200

OK

No Content

404

Personality by name or id not found

500

Unexpected error

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.21.4. Upload personality files to SDDC Manager

PUT /v1/personalities/files
Description

Upload personality files to SDDC Manager

Parameters
Type Name Description Schema

Query

files
required

files

< file > array(multi)

Responses
HTTP Code Description Schema

200

OK

string

400

Bad request.

404

Not Found

500

Internal server error

Consumes
  • multipart/form-data

Produces
  • application/json

Example HTTP request
Request path
/v1/personalities/files?files=file
Example HTTP response
Response 200
"string"
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.21.5. Get Personalities By Id

GET /v1/personalities/{personalityId}
Description

Get the Personality for id

Parameters
Type Name Description Schema

Path

personalityId
required

Personality ID

string

Responses
HTTP Code Description Schema

200

OK

404

Personality not found

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/personalities/string
Example HTTP response
Response 200
{
  "createdBy" : "string",
  "description" : "ESXi 7.0 Dell Personality",
  "displayName" : "ESXi 7.0 Dell Personality",
  "imageChecksum" : "string",
  "imageSize" : "string",
  "kbArticles" : {
    "authority" : "string",
    "content" : "object",
    "defaultPort" : 0,
    "file" : "string",
    "host" : "string",
    "path" : "string",
    "port" : 0,
    "protocol" : "string",
    "query" : "string",
    "ref" : "string",
    "userInfo" : "string"
  },
  "personalityId" : "string",
  "personalityName" : "string",
  "releaseDate" : 0,
  "softwareInfo" : {
    "addOn" : {
      "displayName" : "string",
      "displayVersion" : "string",
      "name" : "DELL-sample-Addon",
      "vendor" : "Dell",
      "version" : "2.0-1"
    },
    "baseImage" : {
      "details" : {
        "displayName" : "7.0.0-0.0.30340198",
        "displayVersion" : "string",
        "releaseDate" : {
          "calendarType" : "string",
          "firstDayOfWeek" : 0,
          "lenient" : true,
          "minimalDaysInFirstWeek" : 0,
          "time" : "1970-01-01T00:00:00Z",
          "timeInMillis" : 0,
          "timeZone" : {
            "displayName" : "string",
            "dstsavings" : 0,
            "id" : "string",
            "rawOffset" : 0
          },
          "weekDateSupported" : true,
          "weekYear" : 0,
          "weeksInWeekYear" : 0
        }
      },
      "version" : "7.0.0-0.0.30340198"
    },
    "components" : {
      "string" : "<<_componentinfo>>"
    },
    "hardwareSupport" : {
      "packages" : {
        "string" : "<<_hardwaresupportpackageinfo>>"
      }
    }
  },
  "tags" : [ "string" ],
  "version" : "string",
  "vsphereExportedIsoPath" : "string",
  "vsphereExportedJsonPath" : "string",
  "vsphereExportedZipPath" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.22. Progress

APIs for progress of Federation Tasks

3.22.1. Get progress of an invoked operation

GET /v1/sddc-federation/tasks/{taskId}
Parameters
Type Name Description Schema

Path

taskId
required

Task ID

string

Responses
HTTP Code Description Schema

200

OK

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/sddc-federation/tasks/string
Example HTTP response
Response 200
{
  "created" : {
    "dateTime" : "string",
    "timestamp" : 0
  },
  "errors" : [ {
    "error" : "string",
    "errorPack" : {
      "arguments" : [ "object" ],
      "component" : "string",
      "defaultMessage" : "string",
      "localBundle" : "string",
      "messageKey" : "string"
    },
    "suggestedRemedy" : "string",
    "suggestedRemedyPack" : {
      "arguments" : [ "object" ],
      "component" : "string",
      "defaultMessage" : "string",
      "localBundle" : "string",
      "messageKey" : "string"
    }
  } ],
  "lastUpdated" : {
    "dateTime" : "string",
    "timestamp" : 0
  },
  "operation" : "BOOTSTRAP",
  "payload" : {
    "assignedBrokerId" : 0,
    "assignedZkId" : 0,
    "mbServers" : {
      "messageBusServersInfo" : [ {
        "brokerId" : 0,
        "fqdn" : "string",
        "hostAddress" : "string",
        "port" : 0
      } ]
    },
    "srServers" : {
      "schemaRegistryServersInfo" : [ {
        "hostAddress" : "string",
        "port" : 0,
        "protocol" : "string"
      } ]
    },
    "zkServers" : {
      "zookeeperServersInfo" : [ {
        "clientPort" : 0,
        "electionPort" : 0,
        "fqdn" : "string",
        "hostAddress" : "string",
        "peerPort" : 0,
        "securePort" : 0,
        "zkId" : 0,
        "zkRole" : "string"
      } ]
    }
  },
  "progressDetails" : "string",
  "remoteOperationTask" : {
    "created" : {
      "dateTime" : "string",
      "timestamp" : 0
    },
    "errors" : [ {
      "error" : "string",
      "errorPack" : {
        "arguments" : [ "object" ],
        "component" : "string",
        "defaultMessage" : "string",
        "localBundle" : "string",
        "messageKey" : "string"
      },
      "suggestedRemedy" : "string",
      "suggestedRemedyPack" : {
        "arguments" : [ "object" ],
        "component" : "string",
        "defaultMessage" : "string",
        "localBundle" : "string",
        "messageKey" : "string"
      }
    } ],
    "lastUpdated" : {
      "dateTime" : "string",
      "timestamp" : 0
    },
    "operation" : "BOOTSTRAP",
    "payload" : {
      "assignedBrokerId" : 0,
      "assignedZkId" : 0,
      "mbServers" : {
        "messageBusServersInfo" : [ {
          "brokerId" : 0,
          "fqdn" : "string",
          "hostAddress" : "string",
          "port" : 0
        } ]
      },
      "srServers" : {
        "schemaRegistryServersInfo" : [ {
          "hostAddress" : "string",
          "port" : 0,
          "protocol" : "string"
        } ]
      },
      "zkServers" : {
        "zookeeperServersInfo" : [ {
          "clientPort" : 0,
          "electionPort" : 0,
          "fqdn" : "string",
          "hostAddress" : "string",
          "peerPort" : 0,
          "securePort" : 0,
          "zkId" : 0,
          "zkRole" : "string"
        } ]
      }
    },
    "progressDetails" : "string",
    "remoteOperationTask" : "...",
    "status" : "NOT_STARTED",
    "taskId" : "string"
  },
  "status" : "NOT_STARTED",
  "taskId" : "string"
}

3.23. Releases

APIs for managing Releases

3.23.1. Get Releases.

GET /v1/releases
Description

Get all Releases, with option to get current release for a domain, get release by version or get future releases for a versionor get all the applicable target release.

Parameters
Type Name Description Schema

Query

applicableForVersion
optional

Release version to get applicable releases

string

Query

domainId
optional

Domain ID to get current release of the domain

string

Query

versionEq
optional

Release version to get its release

string

Query

versionGt
optional

Release version to get its future releases

string

Responses
HTTP Code Description Schema

200

Ok

404

Release not found

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 200
{
  "elements" : [ {
    "bom" : [ {
      "additionalMetadata" : "string",
      "name" : "string",
      "publicName" : "string",
      "releaseURL" : {
        "authority" : "string",
        "content" : "object",
        "defaultPort" : 0,
        "file" : "string",
        "host" : "string",
        "path" : "string",
        "port" : 0,
        "protocol" : "string",
        "query" : "string",
        "ref" : "string",
        "userInfo" : "string"
      },
      "version" : "string"
    } ],
    "description" : "string",
    "eol" : "string",
    "minCompatibleVcfVersion" : "string",
    "patchBundles" : [ {
      "bundleElements" : [ "string" ],
      "bundleId" : "string",
      "bundleType" : "string",
      "cumulativeFromVcfVersion" : "string"
    } ],
    "product" : "string",
    "releaseDate" : "string",
    "updates" : [ {
      "baseProductVersion" : "string",
      "description" : "string",
      "id" : "string",
      "productName" : "string",
      "releaseDate" : "string",
      "releaseUpdateURL" : {
        "authority" : "string",
        "content" : "object",
        "defaultPort" : 0,
        "file" : "string",
        "host" : "string",
        "path" : "string",
        "port" : 0,
        "protocol" : "string",
        "query" : "string",
        "ref" : "string",
        "userInfo" : "string"
      }
    } ],
    "version" : "string"
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.24. SDDC

APIs for managing SDDC

3.24.1. Create SDDC

POST /v1/sddcs
Parameters
Type Name Description Schema

Body

sddcSpec
required

SDDC specification

Responses
HTTP Code Description Schema

200

OK

202

Success

400

SDDC already exists, Bad Request

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/sddcs
Request body
{
  "ceipEnabled" : true,
  "certificatesPassphrase" : "string",
  "clusterSpec" : {
    "clusterEvcMode" : "string",
    "clusterName" : "string",
    "hostFailuresToTolerate" : 0,
    "hostProfileComplianceCheckHour" : 0,
    "hostProfileComplianceCheckMinute" : 0,
    "hosts" : [ "string" ],
    "personalityName" : "string",
    "resourcePoolSpecs" : [ {
      "cpuLimit" : 0,
      "cpuReservationExpandable" : true,
      "cpuReservationMhz" : 0,
      "cpuReservationPercentage" : 0,
      "cpuSharesLevel" : "custom",
      "cpuSharesValue" : 0,
      "memoryLimit" : 0,
      "memoryReservationExpandable" : true,
      "memoryReservationMb" : 0,
      "memoryReservationPercentage" : 0,
      "memorySharesLevel" : "custom",
      "memorySharesValue" : 0,
      "name" : "string",
      "type" : "management"
    } ],
    "vmFolders" : "One among:MANAGEMENT, NETWORKING, EDGENODES"
  },
  "dnsSpec" : {
    "domain" : "vmware.com",
    "nameserver" : "172.0.0.4",
    "secondaryNameserver" : "172.0.0.5",
    "subdomain" : "vcf.vmware.com"
  },
  "dvSwitchVersion" : "One among:6.0.0, 6.5.0, 7.0.0",
  "dvsSpecs" : [ {
    "dvsName" : "string",
    "isUsedByNsxt" : true,
    "mtu" : 0,
    "networks" : "One among: VSAN, VMOTION, MANAGEMENT, UPLINK01, UPLINK02, X_REGION, REGION_SPECIFIC, NSXT_EDGE_TEP or any custom network types defined in networkSpecs",
    "niocSpecs" : [ {
      "trafficType" : "One among:VSAN, VMOTION, VIRTUALMACHINE, MANAGEMENT, NFS, VDP, HBR, FAULTTOLERANCE, ISCSI",
      "value" : "string"
    } ],
    "vmnics" : [ "string" ]
  } ],
  "esxLicense" : "string",
  "excludedComponents" : "One among:Foundation, VsphereHostProfiles, LogInsight, NSX, VrealizeNetwork, VSAN, VSANCleanup, VROPS, VRA, DRDeployment, DRConfiguration, ConfigurationBackup, VRB, VRSLCM, Inventory, UMDS, EsxThumbprintValidation, AVN, CEIP, Backup, EBGP",
  "fipsEnabled" : true,
  "hostSpecs" : [ {
    "association" : "string",
    "credentials" : {
      "password" : "Admin!23",
      "username" : "root"
    },
    "hostname" : "esx-1",
    "ipAddressPrivate" : {
      "cidr" : "172.0.0.0/24",
      "gateway" : "192.168.0.1",
      "ipAddress" : "192.168.0.123",
      "subnet" : "255.255.255.252"
    },
    "key" : "string",
    "serverId" : "string",
    "sshThumbprint" : "string",
    "sslThumbprint" : "string",
    "vSwitch" : "string",
    "vmknicSpecs" : [ {
      "ipAddress" : "string",
      "macAddress" : "string",
      "portgroup" : "One among:VSAN, VMOTION, MANAGEMENT"
    } ],
    "vswitch" : "string"
  } ],
  "managementPoolName" : "string",
  "networkSpecs" : [ {
    "activeUplinks" : [ "string" ],
    "excludeIpAddressRanges" : [ "string" ],
    "excludeIpaddresses" : [ "string" ],
    "gateway" : "string",
    "includeIpAddress" : [ "string" ],
    "includeIpAddressRanges" : [ {
      "endIpAddress" : "192.168.0.128",
      "startIpAddress" : "192.168.0.123"
    } ],
    "mtu" : "string",
    "networkType" : "One among: VSAN, VMOTION, MANAGEMENT, UPLINK01, UPLINK02, X_REGION, REGION_SPECIFIC, NSXT_EDGE_TEP or any custom network type",
    "portGroupKey" : "string",
    "standbyUplinks" : [ "string" ],
    "subnet" : "string",
    "subnetMask" : "string",
    "teamingPolicy" : "One among:loadbalance_ip, loadbalance_srcmac, loadbalance_srcid, failover_explicit, loadbalance_loadbased",
    "vlanId" : "string"
  } ],
  "nsxtSpec" : {
    "ipAddressPoolSpec" : {
      "description" : "string",
      "ignoreUnavailableNsxtCluster" : true,
      "name" : "string",
      "subnets" : [ {
        "cidr" : "string",
        "gateway" : "string",
        "ipAddressPoolRanges" : [ {
          "end" : "string",
          "start" : "string"
        } ]
      } ]
    },
    "logicalSegments" : [ {
      "name" : "string",
      "networkType" : "Oneamong:X_REGION"
    } ],
    "nsxtAdminPassword" : "string",
    "nsxtAuditPassword" : "string",
    "nsxtEdgeSpec" : {
      "asn" : 0,
      "bgpNeighbours" : [ {
        "autonomousSystem" : 0,
        "forwardingIp" : "192.168.0.123",
        "holdDownTimeSeconds" : 0,
        "keepAliveTimeSeconds" : 0,
        "neighbourIp" : "192.168.0.123",
        "password" : "string",
        "protocolIp" : "192.168.0.123",
        "weight" : 0
      } ],
      "edgeAdminPassword" : "string",
      "edgeAuditPassword" : "string",
      "edgeClusterName" : "string",
      "edgeFormFactor" : "Oneamong:SMALL",
      "edgeNodeSpecs" : [ {
        "edgeNodeHostname" : "string",
        "edgeNodeName" : "string",
        "edgeVtep1Cidr" : "string",
        "edgeVtep2Cidr" : "string",
        "interfaces" : [ {
          "interfaceCidr" : "string",
          "name" : "string"
        } ],
        "managementCidr" : "string"
      } ],
      "edgeRootPassword" : "string",
      "edgeServicesSpecs" : {
        "tier0GatewayName" : "string",
        "tier1GatewayName" : "string"
      },
      "tier0ServicesHighAvailability" : "string"
    },
    "nsxtLicense" : "string",
    "nsxtManagerSize" : "One among:medium, large",
    "nsxtManagers" : [ {
      "hostname" : "string",
      "ip" : "string"
    } ],
    "overLayTransportZone" : {
      "networkName" : "string",
      "zoneName" : "string"
    },
    "rootLoginEnabledForNsxtManager" : true,
    "rootNsxtManagerPassword" : "string",
    "sshEnabledForNsxtManager" : true,
    "transportVlanId" : 0,
    "vip" : "string",
    "vipFqdn" : "string",
    "vlanTransportZone" : {
      "networkName" : "string",
      "zoneName" : "string"
    }
  },
  "ntpServers" : [ "string" ],
  "pscSpecs" : [ {
    "adminUserSsoPassword" : "string",
    "pscId" : "string",
    "pscSsoSpec" : {
      "ssoDomain" : "string"
    }
  } ],
  "remoteSiteSpec" : {
    "pscAddress" : "string",
    "sslThumbprint" : "string",
    "vcCredentials" : {
      "password" : "Admin!23",
      "username" : "root"
    }
  },
  "sddcId" : "sfo01-m01",
  "sddcManagerSpec" : {
    "hostname" : "string",
    "ipAddress" : "string",
    "licenseKey" : "string",
    "localUserPassword" : "string",
    "netmask" : "string",
    "rootUserCredentials" : {
      "password" : "Admin!23",
      "username" : "root"
    },
    "secondUserCredentials" : {
      "password" : "Admin!23",
      "username" : "root"
    }
  },
  "securitySpec" : {
    "esxiCertsMode" : "One among:Custom, VMCA",
    "rootCaCerts" : [ {
      "alias" : "string",
      "certChain" : [ "string" ]
    } ]
  },
  "shouldCleanupVsan" : false,
  "skipEsxThumbprintValidation" : true,
  "skipGatewayPingValidation" : true,
  "taskName" : "workflowconfig/workflowspec-ems.json",
  "vcenterSpec" : {
    "licenseFile" : "string",
    "rootVcenterPassword" : "string",
    "sshThumbprint" : "string",
    "sslThumbprint" : "string",
    "storageSize" : "One among:lstorage, xlstorage",
    "vcenterHostname" : "string",
    "vcenterIp" : "string",
    "vcenterNetmask" : "string",
    "vmSize" : "One among:xlarge, large, medium, small, tiny"
  },
  "vsanSpec" : {
    "datastoreName" : "string",
    "hclFile" : "string",
    "licenseFile" : "string",
    "vsanDedup" : true,
    "vsanName" : "string"
  },
  "vxManagerSpec" : {
    "defaultAdminUserCredentials" : {
      "password" : "Admin!23",
      "username" : "root"
    },
    "defaultRootUserCredentials" : {
      "password" : "Admin!23",
      "username" : "root"
    },
    "sshThumbprint" : "string",
    "sslThumbprint" : "string",
    "vxManagerHostName" : "string"
  }
}
Example HTTP response
Response 200
{
  "creationTimestamp" : "string",
  "id" : "string",
  "localizableNamePack" : {
    "arguments" : [ "string" ],
    "component" : "string",
    "message" : "string",
    "messageKey" : "string"
  },
  "name" : "string",
  "sddcSubTasks" : [ {
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "localizableDescriptionPack" : {
      "arguments" : [ "string" ],
      "component" : "string",
      "message" : "string",
      "messageKey" : "string"
    },
    "localizableNamePack" : {
      "arguments" : [ "string" ],
      "component" : "string",
      "message" : "string",
      "messageKey" : "string"
    },
    "name" : "string",
    "processingStateDescription" : "string",
    "processingStateName" : "string",
    "sddcId" : "123e4567-e89b-42d3-a456-556642440000",
    "status" : "INITIALIZED, COMPLETED_WITH_SUCCESS, COMPLETED_WITH_FAILURE, PREVALIDATION_COMPLETED_WITH_SUCCESS, PREVALIDATION_COMPLETED_WITH_FAILURE, POSTVALIDATION_COMPLETED_WITH_SUCCESS, POSTVALIDATION_COMPLETED_WITH_FAILURE,IN_PROGRESS, PREVALIDATION_IN_PROGRESS, POSTVALIDATION_IN_PROGRESS, INTERNAL_ERROR",
    "updateTimestamp" : "string"
  } ],
  "status" : "One among: IN_PROGRESS, COMPLETED_WITH_SUCCESS, ROLLBACK_SUCCESS, COMPLETED_WITH_FAILURE"
}
Response 202
{
  "creationTimestamp" : "string",
  "id" : "string",
  "localizableNamePack" : {
    "arguments" : [ "string" ],
    "component" : "string",
    "message" : "string",
    "messageKey" : "string"
  },
  "name" : "string",
  "sddcSubTasks" : [ {
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "localizableDescriptionPack" : {
      "arguments" : [ "string" ],
      "component" : "string",
      "message" : "string",
      "messageKey" : "string"
    },
    "localizableNamePack" : {
      "arguments" : [ "string" ],
      "component" : "string",
      "message" : "string",
      "messageKey" : "string"
    },
    "name" : "string",
    "processingStateDescription" : "string",
    "processingStateName" : "string",
    "sddcId" : "123e4567-e89b-42d3-a456-556642440000",
    "status" : "INITIALIZED, COMPLETED_WITH_SUCCESS, COMPLETED_WITH_FAILURE, PREVALIDATION_COMPLETED_WITH_SUCCESS, PREVALIDATION_COMPLETED_WITH_FAILURE, POSTVALIDATION_COMPLETED_WITH_SUCCESS, POSTVALIDATION_COMPLETED_WITH_FAILURE,IN_PROGRESS, PREVALIDATION_IN_PROGRESS, POSTVALIDATION_IN_PROGRESS, INTERNAL_ERROR",
    "updateTimestamp" : "string"
  } ],
  "status" : "One among: IN_PROGRESS, COMPLETED_WITH_SUCCESS, ROLLBACK_SUCCESS, COMPLETED_WITH_FAILURE"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.24.2. Retrieve all SDDCs

GET /v1/sddcs
Responses
HTTP Code Description Schema

200

Accepted

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 200
{
  "elements" : [ {
    "creationTimestamp" : "string",
    "id" : "string",
    "localizableNamePack" : {
      "arguments" : [ "string" ],
      "component" : "string",
      "message" : "string",
      "messageKey" : "string"
    },
    "name" : "string",
    "sddcSubTasks" : [ {
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ {
          "arguments" : [ "string" ],
          "causes" : [ {
            "message" : "string",
            "type" : "string"
          } ],
          "context" : {
            "string" : "string"
          },
          "errorCode" : "string",
          "errorType" : "string",
          "message" : "string",
          "nestedErrors" : [ "..." ],
          "referenceToken" : "string",
          "remediationMessage" : "string"
        } ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "localizableDescriptionPack" : {
        "arguments" : [ "string" ],
        "component" : "string",
        "message" : "string",
        "messageKey" : "string"
      },
      "localizableNamePack" : {
        "arguments" : [ "string" ],
        "component" : "string",
        "message" : "string",
        "messageKey" : "string"
      },
      "name" : "string",
      "processingStateDescription" : "string",
      "processingStateName" : "string",
      "sddcId" : "123e4567-e89b-42d3-a456-556642440000",
      "status" : "INITIALIZED, COMPLETED_WITH_SUCCESS, COMPLETED_WITH_FAILURE, PREVALIDATION_COMPLETED_WITH_SUCCESS, PREVALIDATION_COMPLETED_WITH_FAILURE, POSTVALIDATION_COMPLETED_WITH_SUCCESS, POSTVALIDATION_COMPLETED_WITH_FAILURE,IN_PROGRESS, PREVALIDATION_IN_PROGRESS, POSTVALIDATION_IN_PROGRESS, INTERNAL_ERROR",
      "updateTimestamp" : "string"
    } ],
    "status" : "One among: IN_PROGRESS, COMPLETED_WITH_SUCCESS, ROLLBACK_SUCCESS, COMPLETED_WITH_FAILURE"
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.24.3. Get Bringup Info

GET /v1/sddcs/about
Description

GET Method to retrieve information about Bringup app

Responses
HTTP Code Description Schema

200

OK

404

Not Found

No Content

500

Internal Server Error

No Content

501

Not Implemented

No Content

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 200
{
  "id" : "string",
  "name" : "string",
  "status" : "string",
  "version" : "string"
}

3.24.4. Validate SDDC specification before creation

POST /v1/sddcs/validations
Description

SDDC specification incorporates all the client inputs regarding VMW component parameters constituting the SDDC: NTP, DNS spec, ESXi, VC, VSAN, NSX spec et al.

Parameters
Type Name Description Schema

Query

name
optional

Validation name
Deprecated: ESXI_VERSION_VALIDATION

enum (JSON_SPEC_VALIDATION, SECURE_PLATFORM_AUDIT, LICENSE_KEY_VALIDATION, TIME_SYNC_VALIDATION, NETWORK_IP_POOLS_VALIDATION, NETWORK_CONFIG_VALIDATION, NETWORK_CONNECTIVITY_VALIDATION, ESXI_VERSION_VALIDATION, ESXI_HOST_READINESS_VALIDATION, PASSWORDS_VALIDATION, HOST_IP_DNS_VALIDATION, CLOUDBUILDER_READY_VALIDATION, VSAN_AVAILABILITY_VALIDATION, NSXT_NETWORKS_VALIDATION, AVN_NETWORKS_VALIDATION, MANAGEMENT_NETWORKS_VALIDATION)

Query

redo
optional

redo

boolean

Body

sddcSpec
required

SDDC specification

Responses
HTTP Code Description Schema

200

Accepted

202

Success

403

Forbidden

No Content

404

Not Found

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/sddcs/validations
Request body
{
  "ceipEnabled" : true,
  "certificatesPassphrase" : "string",
  "clusterSpec" : {
    "clusterEvcMode" : "string",
    "clusterName" : "string",
    "hostFailuresToTolerate" : 0,
    "hostProfileComplianceCheckHour" : 0,
    "hostProfileComplianceCheckMinute" : 0,
    "hosts" : [ "string" ],
    "personalityName" : "string",
    "resourcePoolSpecs" : [ {
      "cpuLimit" : 0,
      "cpuReservationExpandable" : true,
      "cpuReservationMhz" : 0,
      "cpuReservationPercentage" : 0,
      "cpuSharesLevel" : "custom",
      "cpuSharesValue" : 0,
      "memoryLimit" : 0,
      "memoryReservationExpandable" : true,
      "memoryReservationMb" : 0,
      "memoryReservationPercentage" : 0,
      "memorySharesLevel" : "custom",
      "memorySharesValue" : 0,
      "name" : "string",
      "type" : "management"
    } ],
    "vmFolders" : "One among:MANAGEMENT, NETWORKING, EDGENODES"
  },
  "dnsSpec" : {
    "domain" : "vmware.com",
    "nameserver" : "172.0.0.4",
    "secondaryNameserver" : "172.0.0.5",
    "subdomain" : "vcf.vmware.com"
  },
  "dvSwitchVersion" : "One among:6.0.0, 6.5.0, 7.0.0",
  "dvsSpecs" : [ {
    "dvsName" : "string",
    "isUsedByNsxt" : true,
    "mtu" : 0,
    "networks" : "One among: VSAN, VMOTION, MANAGEMENT, UPLINK01, UPLINK02, X_REGION, REGION_SPECIFIC, NSXT_EDGE_TEP or any custom network types defined in networkSpecs",
    "niocSpecs" : [ {
      "trafficType" : "One among:VSAN, VMOTION, VIRTUALMACHINE, MANAGEMENT, NFS, VDP, HBR, FAULTTOLERANCE, ISCSI",
      "value" : "string"
    } ],
    "vmnics" : [ "string" ]
  } ],
  "esxLicense" : "string",
  "excludedComponents" : "One among:Foundation, VsphereHostProfiles, LogInsight, NSX, VrealizeNetwork, VSAN, VSANCleanup, VROPS, VRA, DRDeployment, DRConfiguration, ConfigurationBackup, VRB, VRSLCM, Inventory, UMDS, EsxThumbprintValidation, AVN, CEIP, Backup, EBGP",
  "fipsEnabled" : true,
  "hostSpecs" : [ {
    "association" : "string",
    "credentials" : {
      "password" : "Admin!23",
      "username" : "root"
    },
    "hostname" : "esx-1",
    "ipAddressPrivate" : {
      "cidr" : "172.0.0.0/24",
      "gateway" : "192.168.0.1",
      "ipAddress" : "192.168.0.123",
      "subnet" : "255.255.255.252"
    },
    "key" : "string",
    "serverId" : "string",
    "sshThumbprint" : "string",
    "sslThumbprint" : "string",
    "vSwitch" : "string",
    "vmknicSpecs" : [ {
      "ipAddress" : "string",
      "macAddress" : "string",
      "portgroup" : "One among:VSAN, VMOTION, MANAGEMENT"
    } ],
    "vswitch" : "string"
  } ],
  "managementPoolName" : "string",
  "networkSpecs" : [ {
    "activeUplinks" : [ "string" ],
    "excludeIpAddressRanges" : [ "string" ],
    "excludeIpaddresses" : [ "string" ],
    "gateway" : "string",
    "includeIpAddress" : [ "string" ],
    "includeIpAddressRanges" : [ {
      "endIpAddress" : "192.168.0.128",
      "startIpAddress" : "192.168.0.123"
    } ],
    "mtu" : "string",
    "networkType" : "One among: VSAN, VMOTION, MANAGEMENT, UPLINK01, UPLINK02, X_REGION, REGION_SPECIFIC, NSXT_EDGE_TEP or any custom network type",
    "portGroupKey" : "string",
    "standbyUplinks" : [ "string" ],
    "subnet" : "string",
    "subnetMask" : "string",
    "teamingPolicy" : "One among:loadbalance_ip, loadbalance_srcmac, loadbalance_srcid, failover_explicit, loadbalance_loadbased",
    "vlanId" : "string"
  } ],
  "nsxtSpec" : {
    "ipAddressPoolSpec" : {
      "description" : "string",
      "ignoreUnavailableNsxtCluster" : true,
      "name" : "string",
      "subnets" : [ {
        "cidr" : "string",
        "gateway" : "string",
        "ipAddressPoolRanges" : [ {
          "end" : "string",
          "start" : "string"
        } ]
      } ]
    },
    "logicalSegments" : [ {
      "name" : "string",
      "networkType" : "Oneamong:X_REGION"
    } ],
    "nsxtAdminPassword" : "string",
    "nsxtAuditPassword" : "string",
    "nsxtEdgeSpec" : {
      "asn" : 0,
      "bgpNeighbours" : [ {
        "autonomousSystem" : 0,
        "forwardingIp" : "192.168.0.123",
        "holdDownTimeSeconds" : 0,
        "keepAliveTimeSeconds" : 0,
        "neighbourIp" : "192.168.0.123",
        "password" : "string",
        "protocolIp" : "192.168.0.123",
        "weight" : 0
      } ],
      "edgeAdminPassword" : "string",
      "edgeAuditPassword" : "string",
      "edgeClusterName" : "string",
      "edgeFormFactor" : "Oneamong:SMALL",
      "edgeNodeSpecs" : [ {
        "edgeNodeHostname" : "string",
        "edgeNodeName" : "string",
        "edgeVtep1Cidr" : "string",
        "edgeVtep2Cidr" : "string",
        "interfaces" : [ {
          "interfaceCidr" : "string",
          "name" : "string"
        } ],
        "managementCidr" : "string"
      } ],
      "edgeRootPassword" : "string",
      "edgeServicesSpecs" : {
        "tier0GatewayName" : "string",
        "tier1GatewayName" : "string"
      },
      "tier0ServicesHighAvailability" : "string"
    },
    "nsxtLicense" : "string",
    "nsxtManagerSize" : "One among:medium, large",
    "nsxtManagers" : [ {
      "hostname" : "string",
      "ip" : "string"
    } ],
    "overLayTransportZone" : {
      "networkName" : "string",
      "zoneName" : "string"
    },
    "rootLoginEnabledForNsxtManager" : true,
    "rootNsxtManagerPassword" : "string",
    "sshEnabledForNsxtManager" : true,
    "transportVlanId" : 0,
    "vip" : "string",
    "vipFqdn" : "string",
    "vlanTransportZone" : {
      "networkName" : "string",
      "zoneName" : "string"
    }
  },
  "ntpServers" : [ "string" ],
  "pscSpecs" : [ {
    "adminUserSsoPassword" : "string",
    "pscId" : "string",
    "pscSsoSpec" : {
      "ssoDomain" : "string"
    }
  } ],
  "remoteSiteSpec" : {
    "pscAddress" : "string",
    "sslThumbprint" : "string",
    "vcCredentials" : {
      "password" : "Admin!23",
      "username" : "root"
    }
  },
  "sddcId" : "sfo01-m01",
  "sddcManagerSpec" : {
    "hostname" : "string",
    "ipAddress" : "string",
    "licenseKey" : "string",
    "localUserPassword" : "string",
    "netmask" : "string",
    "rootUserCredentials" : {
      "password" : "Admin!23",
      "username" : "root"
    },
    "secondUserCredentials" : {
      "password" : "Admin!23",
      "username" : "root"
    }
  },
  "securitySpec" : {
    "esxiCertsMode" : "One among:Custom, VMCA",
    "rootCaCerts" : [ {
      "alias" : "string",
      "certChain" : [ "string" ]
    } ]
  },
  "shouldCleanupVsan" : false,
  "skipEsxThumbprintValidation" : true,
  "skipGatewayPingValidation" : true,
  "taskName" : "workflowconfig/workflowspec-ems.json",
  "vcenterSpec" : {
    "licenseFile" : "string",
    "rootVcenterPassword" : "string",
    "sshThumbprint" : "string",
    "sslThumbprint" : "string",
    "storageSize" : "One among:lstorage, xlstorage",
    "vcenterHostname" : "string",
    "vcenterIp" : "string",
    "vcenterNetmask" : "string",
    "vmSize" : "One among:xlarge, large, medium, small, tiny"
  },
  "vsanSpec" : {
    "datastoreName" : "string",
    "hclFile" : "string",
    "licenseFile" : "string",
    "vsanDedup" : true,
    "vsanName" : "string"
  },
  "vxManagerSpec" : {
    "defaultAdminUserCredentials" : {
      "password" : "Admin!23",
      "username" : "root"
    },
    "defaultRootUserCredentials" : {
      "password" : "Admin!23",
      "username" : "root"
    },
    "sshThumbprint" : "string",
    "sslThumbprint" : "string",
    "vxManagerHostName" : "string"
  }
}
Example HTTP response
Response 200
{
  "additionalProperties" : {
    "string" : "string"
  },
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS, CANCELLATION_IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "nestedValidationChecks" : [ {
      "description" : "string",
      "errorResponse" : {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 202
{
  "additionalProperties" : {
    "string" : "string"
  },
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS, CANCELLATION_IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "nestedValidationChecks" : [ {
      "description" : "string",
      "errorResponse" : {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.24.5. Get all SDDC specification validations

GET /v1/sddcs/validations
Responses
HTTP Code Description Schema

200

Accepted

< Validation > array

404

Not Found

500

Internal Server Error

501

Not Implemented

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/sddcs/validations
Example HTTP response
Response 200
[ {
  "additionalProperties" : {
    "string" : "string"
  },
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS, CANCELLATION_IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "nestedValidationChecks" : [ {
      "description" : "string",
      "errorResponse" : {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
} ]
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 501
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.24.6. Get SDDC specification validation status by ID

GET /v1/sddcs/validations/{id}
Parameters
Type Name Description Schema

Path

id
required

SDDC validation ID

string

Responses
HTTP Code Description Schema

200

Accepted

400

Bad Request

404

Not Found

500

Internal Server Error

501

Not Implemented

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/sddcs/validations/string
Example HTTP response
Response 200
{
  "additionalProperties" : {
    "string" : "string"
  },
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS, CANCELLATION_IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "nestedValidationChecks" : [ {
      "description" : "string",
      "errorResponse" : {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 400
{
  "additionalProperties" : {
    "string" : "string"
  },
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS, CANCELLATION_IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "nestedValidationChecks" : [ {
      "description" : "string",
      "errorResponse" : {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 501
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.24.7. Retry SDDC validation

PATCH /v1/sddcs/validations/{id}
Description

Retry a completed SDDC validation

Parameters
Type Name Description Schema

Path

id
required

SDDC validation ID

string

Responses
HTTP Code Description Schema

200

Completed

400

Bad Request

No Content

405

Method Not Allowed

No Content

500

Internal Server Error

No Content

Consumes
  • application/json

Produces
  • */*

Example HTTP request
Request path
/v1/sddcs/validations/string
Example HTTP response
Response 200
{
  "additionalProperties" : {
    "string" : "string"
  },
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS, CANCELLATION_IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "nestedValidationChecks" : [ {
      "description" : "string",
      "errorResponse" : {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}

3.24.8. Get validation report by ID

GET /v1/sddcs/validations/{validationId}/report
Description

Returns the bringup report for a validation. Reports are generated in PDF format.

Parameters
Type Name Description Schema

Path

validationId
required

Bringup validation ID

string

Query

curClientTime
optional

Current client local time of the the report generation

string

Query

startTime
optional

Start time of validation to be put in the report

string

Responses
HTTP Code Description Schema

200

OK

string

500

Internal Server Error

No Content

501

Not Implemented

No Content

Consumes
  • application/json

Produces
  • application/pdf

Example HTTP request
Request path
/v1/sddcs/validations/string/report

3.24.9. Retrieve a SDDC

GET /v1/sddcs/{id}
Parameters
Type Name Description Schema

Path

id
required

SDDC ID

string

Responses
HTTP Code Description Schema

200

OK

400

Bad Request

404

Not Found

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 200
{
  "creationTimestamp" : "string",
  "id" : "string",
  "localizableNamePack" : {
    "arguments" : [ "string" ],
    "component" : "string",
    "message" : "string",
    "messageKey" : "string"
  },
  "name" : "string",
  "sddcSubTasks" : [ {
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "localizableDescriptionPack" : {
      "arguments" : [ "string" ],
      "component" : "string",
      "message" : "string",
      "messageKey" : "string"
    },
    "localizableNamePack" : {
      "arguments" : [ "string" ],
      "component" : "string",
      "message" : "string",
      "messageKey" : "string"
    },
    "name" : "string",
    "processingStateDescription" : "string",
    "processingStateName" : "string",
    "sddcId" : "123e4567-e89b-42d3-a456-556642440000",
    "status" : "INITIALIZED, COMPLETED_WITH_SUCCESS, COMPLETED_WITH_FAILURE, PREVALIDATION_COMPLETED_WITH_SUCCESS, PREVALIDATION_COMPLETED_WITH_FAILURE, POSTVALIDATION_COMPLETED_WITH_SUCCESS, POSTVALIDATION_COMPLETED_WITH_FAILURE,IN_PROGRESS, PREVALIDATION_IN_PROGRESS, POSTVALIDATION_IN_PROGRESS, INTERNAL_ERROR",
    "updateTimestamp" : "string"
  } ],
  "status" : "One among: IN_PROGRESS, COMPLETED_WITH_SUCCESS, ROLLBACK_SUCCESS, COMPLETED_WITH_FAILURE"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.24.10. Retry failed SDDC creation

PATCH /v1/sddcs/{id}
Parameters
Type Name Description Schema

Path

id
required

SDDC ID

string

Body

sddcSpec
optional

sddcSpec

Responses
HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

404

Not Found

405

Not allowed

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/sddcs/string
Request body
{
  "ceipEnabled" : true,
  "certificatesPassphrase" : "string",
  "clusterSpec" : {
    "clusterEvcMode" : "string",
    "clusterName" : "string",
    "hostFailuresToTolerate" : 0,
    "hostProfileComplianceCheckHour" : 0,
    "hostProfileComplianceCheckMinute" : 0,
    "hosts" : [ "string" ],
    "personalityName" : "string",
    "resourcePoolSpecs" : [ {
      "cpuLimit" : 0,
      "cpuReservationExpandable" : true,
      "cpuReservationMhz" : 0,
      "cpuReservationPercentage" : 0,
      "cpuSharesLevel" : "custom",
      "cpuSharesValue" : 0,
      "memoryLimit" : 0,
      "memoryReservationExpandable" : true,
      "memoryReservationMb" : 0,
      "memoryReservationPercentage" : 0,
      "memorySharesLevel" : "custom",
      "memorySharesValue" : 0,
      "name" : "string",
      "type" : "management"
    } ],
    "vmFolders" : "One among:MANAGEMENT, NETWORKING, EDGENODES"
  },
  "dnsSpec" : {
    "domain" : "vmware.com",
    "nameserver" : "172.0.0.4",
    "secondaryNameserver" : "172.0.0.5",
    "subdomain" : "vcf.vmware.com"
  },
  "dvSwitchVersion" : "One among:6.0.0, 6.5.0, 7.0.0",
  "dvsSpecs" : [ {
    "dvsName" : "string",
    "isUsedByNsxt" : true,
    "mtu" : 0,
    "networks" : "One among: VSAN, VMOTION, MANAGEMENT, UPLINK01, UPLINK02, X_REGION, REGION_SPECIFIC, NSXT_EDGE_TEP or any custom network types defined in networkSpecs",
    "niocSpecs" : [ {
      "trafficType" : "One among:VSAN, VMOTION, VIRTUALMACHINE, MANAGEMENT, NFS, VDP, HBR, FAULTTOLERANCE, ISCSI",
      "value" : "string"
    } ],
    "vmnics" : [ "string" ]
  } ],
  "esxLicense" : "string",
  "excludedComponents" : "One among:Foundation, VsphereHostProfiles, LogInsight, NSX, VrealizeNetwork, VSAN, VSANCleanup, VROPS, VRA, DRDeployment, DRConfiguration, ConfigurationBackup, VRB, VRSLCM, Inventory, UMDS, EsxThumbprintValidation, AVN, CEIP, Backup, EBGP",
  "fipsEnabled" : true,
  "hostSpecs" : [ {
    "association" : "string",
    "credentials" : {
      "password" : "Admin!23",
      "username" : "root"
    },
    "hostname" : "esx-1",
    "ipAddressPrivate" : {
      "cidr" : "172.0.0.0/24",
      "gateway" : "192.168.0.1",
      "ipAddress" : "192.168.0.123",
      "subnet" : "255.255.255.252"
    },
    "key" : "string",
    "serverId" : "string",
    "sshThumbprint" : "string",
    "sslThumbprint" : "string",
    "vSwitch" : "string",
    "vmknicSpecs" : [ {
      "ipAddress" : "string",
      "macAddress" : "string",
      "portgroup" : "One among:VSAN, VMOTION, MANAGEMENT"
    } ],
    "vswitch" : "string"
  } ],
  "managementPoolName" : "string",
  "networkSpecs" : [ {
    "activeUplinks" : [ "string" ],
    "excludeIpAddressRanges" : [ "string" ],
    "excludeIpaddresses" : [ "string" ],
    "gateway" : "string",
    "includeIpAddress" : [ "string" ],
    "includeIpAddressRanges" : [ {
      "endIpAddress" : "192.168.0.128",
      "startIpAddress" : "192.168.0.123"
    } ],
    "mtu" : "string",
    "networkType" : "One among: VSAN, VMOTION, MANAGEMENT, UPLINK01, UPLINK02, X_REGION, REGION_SPECIFIC, NSXT_EDGE_TEP or any custom network type",
    "portGroupKey" : "string",
    "standbyUplinks" : [ "string" ],
    "subnet" : "string",
    "subnetMask" : "string",
    "teamingPolicy" : "One among:loadbalance_ip, loadbalance_srcmac, loadbalance_srcid, failover_explicit, loadbalance_loadbased",
    "vlanId" : "string"
  } ],
  "nsxtSpec" : {
    "ipAddressPoolSpec" : {
      "description" : "string",
      "ignoreUnavailableNsxtCluster" : true,
      "name" : "string",
      "subnets" : [ {
        "cidr" : "string",
        "gateway" : "string",
        "ipAddressPoolRanges" : [ {
          "end" : "string",
          "start" : "string"
        } ]
      } ]
    },
    "logicalSegments" : [ {
      "name" : "string",
      "networkType" : "Oneamong:X_REGION"
    } ],
    "nsxtAdminPassword" : "string",
    "nsxtAuditPassword" : "string",
    "nsxtEdgeSpec" : {
      "asn" : 0,
      "bgpNeighbours" : [ {
        "autonomousSystem" : 0,
        "forwardingIp" : "192.168.0.123",
        "holdDownTimeSeconds" : 0,
        "keepAliveTimeSeconds" : 0,
        "neighbourIp" : "192.168.0.123",
        "password" : "string",
        "protocolIp" : "192.168.0.123",
        "weight" : 0
      } ],
      "edgeAdminPassword" : "string",
      "edgeAuditPassword" : "string",
      "edgeClusterName" : "string",
      "edgeFormFactor" : "Oneamong:SMALL",
      "edgeNodeSpecs" : [ {
        "edgeNodeHostname" : "string",
        "edgeNodeName" : "string",
        "edgeVtep1Cidr" : "string",
        "edgeVtep2Cidr" : "string",
        "interfaces" : [ {
          "interfaceCidr" : "string",
          "name" : "string"
        } ],
        "managementCidr" : "string"
      } ],
      "edgeRootPassword" : "string",
      "edgeServicesSpecs" : {
        "tier0GatewayName" : "string",
        "tier1GatewayName" : "string"
      },
      "tier0ServicesHighAvailability" : "string"
    },
    "nsxtLicense" : "string",
    "nsxtManagerSize" : "One among:medium, large",
    "nsxtManagers" : [ {
      "hostname" : "string",
      "ip" : "string"
    } ],
    "overLayTransportZone" : {
      "networkName" : "string",
      "zoneName" : "string"
    },
    "rootLoginEnabledForNsxtManager" : true,
    "rootNsxtManagerPassword" : "string",
    "sshEnabledForNsxtManager" : true,
    "transportVlanId" : 0,
    "vip" : "string",
    "vipFqdn" : "string",
    "vlanTransportZone" : {
      "networkName" : "string",
      "zoneName" : "string"
    }
  },
  "ntpServers" : [ "string" ],
  "pscSpecs" : [ {
    "adminUserSsoPassword" : "string",
    "pscId" : "string",
    "pscSsoSpec" : {
      "ssoDomain" : "string"
    }
  } ],
  "remoteSiteSpec" : {
    "pscAddress" : "string",
    "sslThumbprint" : "string",
    "vcCredentials" : {
      "password" : "Admin!23",
      "username" : "root"
    }
  },
  "sddcId" : "sfo01-m01",
  "sddcManagerSpec" : {
    "hostname" : "string",
    "ipAddress" : "string",
    "licenseKey" : "string",
    "localUserPassword" : "string",
    "netmask" : "string",
    "rootUserCredentials" : {
      "password" : "Admin!23",
      "username" : "root"
    },
    "secondUserCredentials" : {
      "password" : "Admin!23",
      "username" : "root"
    }
  },
  "securitySpec" : {
    "esxiCertsMode" : "One among:Custom, VMCA",
    "rootCaCerts" : [ {
      "alias" : "string",
      "certChain" : [ "string" ]
    } ]
  },
  "shouldCleanupVsan" : false,
  "skipEsxThumbprintValidation" : true,
  "skipGatewayPingValidation" : true,
  "taskName" : "workflowconfig/workflowspec-ems.json",
  "vcenterSpec" : {
    "licenseFile" : "string",
    "rootVcenterPassword" : "string",
    "sshThumbprint" : "string",
    "sslThumbprint" : "string",
    "storageSize" : "One among:lstorage, xlstorage",
    "vcenterHostname" : "string",
    "vcenterIp" : "string",
    "vcenterNetmask" : "string",
    "vmSize" : "One among:xlarge, large, medium, small, tiny"
  },
  "vsanSpec" : {
    "datastoreName" : "string",
    "hclFile" : "string",
    "licenseFile" : "string",
    "vsanDedup" : true,
    "vsanName" : "string"
  },
  "vxManagerSpec" : {
    "defaultAdminUserCredentials" : {
      "password" : "Admin!23",
      "username" : "root"
    },
    "defaultRootUserCredentials" : {
      "password" : "Admin!23",
      "username" : "root"
    },
    "sshThumbprint" : "string",
    "sslThumbprint" : "string",
    "vxManagerHostName" : "string"
  }
}
Example HTTP response
Response 200
{
  "creationTimestamp" : "string",
  "id" : "string",
  "localizableNamePack" : {
    "arguments" : [ "string" ],
    "component" : "string",
    "message" : "string",
    "messageKey" : "string"
  },
  "name" : "string",
  "sddcSubTasks" : [ {
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "localizableDescriptionPack" : {
      "arguments" : [ "string" ],
      "component" : "string",
      "message" : "string",
      "messageKey" : "string"
    },
    "localizableNamePack" : {
      "arguments" : [ "string" ],
      "component" : "string",
      "message" : "string",
      "messageKey" : "string"
    },
    "name" : "string",
    "processingStateDescription" : "string",
    "processingStateName" : "string",
    "sddcId" : "123e4567-e89b-42d3-a456-556642440000",
    "status" : "INITIALIZED, COMPLETED_WITH_SUCCESS, COMPLETED_WITH_FAILURE, PREVALIDATION_COMPLETED_WITH_SUCCESS, PREVALIDATION_COMPLETED_WITH_FAILURE, POSTVALIDATION_COMPLETED_WITH_SUCCESS, POSTVALIDATION_COMPLETED_WITH_FAILURE,IN_PROGRESS, PREVALIDATION_IN_PROGRESS, POSTVALIDATION_IN_PROGRESS, INTERNAL_ERROR",
    "updateTimestamp" : "string"
  } ],
  "status" : "One among: IN_PROGRESS, COMPLETED_WITH_SUCCESS, ROLLBACK_SUCCESS, COMPLETED_WITH_FAILURE"
}
Response 202
{
  "creationTimestamp" : "string",
  "id" : "string",
  "localizableNamePack" : {
    "arguments" : [ "string" ],
    "component" : "string",
    "message" : "string",
    "messageKey" : "string"
  },
  "name" : "string",
  "sddcSubTasks" : [ {
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "localizableDescriptionPack" : {
      "arguments" : [ "string" ],
      "component" : "string",
      "message" : "string",
      "messageKey" : "string"
    },
    "localizableNamePack" : {
      "arguments" : [ "string" ],
      "component" : "string",
      "message" : "string",
      "messageKey" : "string"
    },
    "name" : "string",
    "processingStateDescription" : "string",
    "processingStateName" : "string",
    "sddcId" : "123e4567-e89b-42d3-a456-556642440000",
    "status" : "INITIALIZED, COMPLETED_WITH_SUCCESS, COMPLETED_WITH_FAILURE, PREVALIDATION_COMPLETED_WITH_SUCCESS, PREVALIDATION_COMPLETED_WITH_FAILURE, POSTVALIDATION_COMPLETED_WITH_SUCCESS, POSTVALIDATION_COMPLETED_WITH_FAILURE,IN_PROGRESS, PREVALIDATION_IN_PROGRESS, POSTVALIDATION_IN_PROGRESS, INTERNAL_ERROR",
    "updateTimestamp" : "string"
  } ],
  "status" : "One among: IN_PROGRESS, COMPLETED_WITH_SUCCESS, ROLLBACK_SUCCESS, COMPLETED_WITH_FAILURE"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 405
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.24.11. Get SDDC report by ID

GET /v1/sddcs/{id}/detail-report
Description

Returns the bringup report. Reports are generated in PDF and CSV formats.

Parameters
Type Name Description Schema Default

Path

id
required

SDDC ID

string

Query

format
optional

Supported bringup report formats - PDF,CSV

enum (PDF, CSV)

"pdf"

Responses
HTTP Code Description Schema

200

OK

string

204

No content

string

500

Internal Server Error

No Content

501

Not Implemented

No Content

Consumes
  • application/json

Produces
  • application/pdf

  • text/csv

Example HTTP request
Request path
/v1/sddcs/string/detail-report

3.24.12. Retrieve SDDC Manager VM details

GET /v1/sddcs/{id}/sddc-manager
Description

Retrieves the details of SDDC Manager VM

Parameters
Type Name Description Schema

Path

id
required

SDDC ID

string

Responses
HTTP Code Description Schema

200

OK

404

Not Found

No Content

500

Internal Server Error

No Content

501

Not Implemented

No Content

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/sddcs/string/sddc-manager
Example HTTP response
Response 200
{
  "fqdn" : "string",
  "id" : "string",
  "ipAddress" : "string",
  "version" : "string"
}

3.24.13. Convert SDDC specification Json/Excel File

POST /v1/system/sddc-spec-converter
Description

SDDC specification incorporates all the client inputs regarding VMW component parameters constituting the SDDC: NTP, DNS spec, ESXi, VC, VSAN, NSX spec et al.

Parameters
Type Name Description Schema Default

Query

design
optional

Supported bringup designs - EMS,ems,VXRAIL,vxrail

enum (EMS, ems, VXRAIL, vxrail)

"ems"

FormData

specFile
required

SDDC specification file which is either a JSON or xls file

file

Responses
HTTP Code Description Schema

200

OK

400

Converting SDDC specification failed

404

Not Found

500

Internal Server Error

501

Not Implemented

Consumes
  • multipart/form-data

Produces
  • application/json

Example HTTP request
Request path
/v1/system/sddc-spec-converter
Example HTTP response
Response 200
{
  "ceipEnabled" : true,
  "certificatesPassphrase" : "string",
  "clusterSpec" : {
    "clusterEvcMode" : "string",
    "clusterName" : "string",
    "hostFailuresToTolerate" : 0,
    "hostProfileComplianceCheckHour" : 0,
    "hostProfileComplianceCheckMinute" : 0,
    "hosts" : [ "string" ],
    "personalityName" : "string",
    "resourcePoolSpecs" : [ {
      "cpuLimit" : 0,
      "cpuReservationExpandable" : true,
      "cpuReservationMhz" : 0,
      "cpuReservationPercentage" : 0,
      "cpuSharesLevel" : "custom",
      "cpuSharesValue" : 0,
      "memoryLimit" : 0,
      "memoryReservationExpandable" : true,
      "memoryReservationMb" : 0,
      "memoryReservationPercentage" : 0,
      "memorySharesLevel" : "custom",
      "memorySharesValue" : 0,
      "name" : "string",
      "type" : "management"
    } ],
    "vmFolders" : "One among:MANAGEMENT, NETWORKING, EDGENODES"
  },
  "dnsSpec" : {
    "domain" : "vmware.com",
    "nameserver" : "172.0.0.4",
    "secondaryNameserver" : "172.0.0.5",
    "subdomain" : "vcf.vmware.com"
  },
  "dvSwitchVersion" : "One among:6.0.0, 6.5.0, 7.0.0",
  "dvsSpecs" : [ {
    "dvsName" : "string",
    "isUsedByNsxt" : true,
    "mtu" : 0,
    "networks" : "One among: VSAN, VMOTION, MANAGEMENT, UPLINK01, UPLINK02, X_REGION, REGION_SPECIFIC, NSXT_EDGE_TEP or any custom network types defined in networkSpecs",
    "niocSpecs" : [ {
      "trafficType" : "One among:VSAN, VMOTION, VIRTUALMACHINE, MANAGEMENT, NFS, VDP, HBR, FAULTTOLERANCE, ISCSI",
      "value" : "string"
    } ],
    "vmnics" : [ "string" ]
  } ],
  "esxLicense" : "string",
  "excludedComponents" : "One among:Foundation, VsphereHostProfiles, LogInsight, NSX, VrealizeNetwork, VSAN, VSANCleanup, VROPS, VRA, DRDeployment, DRConfiguration, ConfigurationBackup, VRB, VRSLCM, Inventory, UMDS, EsxThumbprintValidation, AVN, CEIP, Backup, EBGP",
  "fipsEnabled" : true,
  "hostSpecs" : [ {
    "association" : "string",
    "credentials" : {
      "password" : "Admin!23",
      "username" : "root"
    },
    "hostname" : "esx-1",
    "ipAddressPrivate" : {
      "cidr" : "172.0.0.0/24",
      "gateway" : "192.168.0.1",
      "ipAddress" : "192.168.0.123",
      "subnet" : "255.255.255.252"
    },
    "key" : "string",
    "serverId" : "string",
    "sshThumbprint" : "string",
    "sslThumbprint" : "string",
    "vSwitch" : "string",
    "vmknicSpecs" : [ {
      "ipAddress" : "string",
      "macAddress" : "string",
      "portgroup" : "One among:VSAN, VMOTION, MANAGEMENT"
    } ],
    "vswitch" : "string"
  } ],
  "managementPoolName" : "string",
  "networkSpecs" : [ {
    "activeUplinks" : [ "string" ],
    "excludeIpAddressRanges" : [ "string" ],
    "excludeIpaddresses" : [ "string" ],
    "gateway" : "string",
    "includeIpAddress" : [ "string" ],
    "includeIpAddressRanges" : [ {
      "endIpAddress" : "192.168.0.128",
      "startIpAddress" : "192.168.0.123"
    } ],
    "mtu" : "string",
    "networkType" : "One among: VSAN, VMOTION, MANAGEMENT, UPLINK01, UPLINK02, X_REGION, REGION_SPECIFIC, NSXT_EDGE_TEP or any custom network type",
    "portGroupKey" : "string",
    "standbyUplinks" : [ "string" ],
    "subnet" : "string",
    "subnetMask" : "string",
    "teamingPolicy" : "One among:loadbalance_ip, loadbalance_srcmac, loadbalance_srcid, failover_explicit, loadbalance_loadbased",
    "vlanId" : "string"
  } ],
  "nsxtSpec" : {
    "ipAddressPoolSpec" : {
      "description" : "string",
      "ignoreUnavailableNsxtCluster" : true,
      "name" : "string",
      "subnets" : [ {
        "cidr" : "string",
        "gateway" : "string",
        "ipAddressPoolRanges" : [ {
          "end" : "string",
          "start" : "string"
        } ]
      } ]
    },
    "logicalSegments" : [ {
      "name" : "string",
      "networkType" : "Oneamong:X_REGION"
    } ],
    "nsxtAdminPassword" : "string",
    "nsxtAuditPassword" : "string",
    "nsxtEdgeSpec" : {
      "asn" : 0,
      "bgpNeighbours" : [ {
        "autonomousSystem" : 0,
        "forwardingIp" : "192.168.0.123",
        "holdDownTimeSeconds" : 0,
        "keepAliveTimeSeconds" : 0,
        "neighbourIp" : "192.168.0.123",
        "password" : "string",
        "protocolIp" : "192.168.0.123",
        "weight" : 0
      } ],
      "edgeAdminPassword" : "string",
      "edgeAuditPassword" : "string",
      "edgeClusterName" : "string",
      "edgeFormFactor" : "Oneamong:SMALL",
      "edgeNodeSpecs" : [ {
        "edgeNodeHostname" : "string",
        "edgeNodeName" : "string",
        "edgeVtep1Cidr" : "string",
        "edgeVtep2Cidr" : "string",
        "interfaces" : [ {
          "interfaceCidr" : "string",
          "name" : "string"
        } ],
        "managementCidr" : "string"
      } ],
      "edgeRootPassword" : "string",
      "edgeServicesSpecs" : {
        "tier0GatewayName" : "string",
        "tier1GatewayName" : "string"
      },
      "tier0ServicesHighAvailability" : "string"
    },
    "nsxtLicense" : "string",
    "nsxtManagerSize" : "One among:medium, large",
    "nsxtManagers" : [ {
      "hostname" : "string",
      "ip" : "string"
    } ],
    "overLayTransportZone" : {
      "networkName" : "string",
      "zoneName" : "string"
    },
    "rootLoginEnabledForNsxtManager" : true,
    "rootNsxtManagerPassword" : "string",
    "sshEnabledForNsxtManager" : true,
    "transportVlanId" : 0,
    "vip" : "string",
    "vipFqdn" : "string",
    "vlanTransportZone" : {
      "networkName" : "string",
      "zoneName" : "string"
    }
  },
  "ntpServers" : [ "string" ],
  "pscSpecs" : [ {
    "adminUserSsoPassword" : "string",
    "pscId" : "string",
    "pscSsoSpec" : {
      "ssoDomain" : "string"
    }
  } ],
  "remoteSiteSpec" : {
    "pscAddress" : "string",
    "sslThumbprint" : "string",
    "vcCredentials" : {
      "password" : "Admin!23",
      "username" : "root"
    }
  },
  "sddcId" : "sfo01-m01",
  "sddcManagerSpec" : {
    "hostname" : "string",
    "ipAddress" : "string",
    "licenseKey" : "string",
    "localUserPassword" : "string",
    "netmask" : "string",
    "rootUserCredentials" : {
      "password" : "Admin!23",
      "username" : "root"
    },
    "secondUserCredentials" : {
      "password" : "Admin!23",
      "username" : "root"
    }
  },
  "securitySpec" : {
    "esxiCertsMode" : "One among:Custom, VMCA",
    "rootCaCerts" : [ {
      "alias" : "string",
      "certChain" : [ "string" ]
    } ]
  },
  "shouldCleanupVsan" : false,
  "skipEsxThumbprintValidation" : true,
  "skipGatewayPingValidation" : true,
  "taskName" : "workflowconfig/workflowspec-ems.json",
  "vcenterSpec" : {
    "licenseFile" : "string",
    "rootVcenterPassword" : "string",
    "sshThumbprint" : "string",
    "sslThumbprint" : "string",
    "storageSize" : "One among:lstorage, xlstorage",
    "vcenterHostname" : "string",
    "vcenterIp" : "string",
    "vcenterNetmask" : "string",
    "vmSize" : "One among:xlarge, large, medium, small, tiny"
  },
  "vsanSpec" : {
    "datastoreName" : "string",
    "hclFile" : "string",
    "licenseFile" : "string",
    "vsanDedup" : true,
    "vsanName" : "string"
  },
  "vxManagerSpec" : {
    "defaultAdminUserCredentials" : {
      "password" : "Admin!23",
      "username" : "root"
    },
    "defaultRootUserCredentials" : {
      "password" : "Admin!23",
      "username" : "root"
    },
    "sshThumbprint" : "string",
    "sslThumbprint" : "string",
    "vxManagerHostName" : "string"
  }
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 501
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.25. SOS

APIs for managing SOS

3.25.1. Initiates Health-Checks for SDDC.

POST /v1/system/health-summary
Description

Initiates Health-Checks for SDDC.

Parameters
Type Name Description Schema

Body

healthsummaryspec
required

healthsummaryspec

Responses
HTTP Code Description Schema

200

OK

202

Accepted

400

Bad request! Invalid Headers or Data. Error: {error}

401

Bad request! Authorization Header is missing or not in correct format.

409

Operation is in progress for Id {id}. Wait for the operation to complete.

500

Something went wrong. Internal server error occurred. Error {error}

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/system/health-summary
Request body
{
  "healthChecks" : {
    "certificateHealth" : true,
    "composabilityHealth" : true,
    "computeHealth" : true,
    "connectivityHealth" : true,
    "dnsHealth" : true,
    "generalHealth" : true,
    "hardwareCompatibilityHealth" : true,
    "ntpHealth" : true,
    "passwordHealth" : true,
    "servicesHealth" : true,
    "storageHealth" : true
  },
  "options" : {
    "config" : {
      "force" : true,
      "skipKnownHostCheck" : true
    },
    "include" : {
      "summaryReport" : true
    }
  },
  "scope" : {
    "domains" : [ {
      "clusterNames" : [ "string" ],
      "domainName" : "string"
    } ],
    "includeAllDomains" : true,
    "includeFreeHosts" : true
  }
}
Example HTTP response
Response 200
{
  "bundleAvailable" : "string",
  "bundleName" : "string",
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "description" : "string",
  "id" : "string",
  "status" : "string"
}
Response 202
{
  "bundleAvailable" : "string",
  "bundleName" : "string",
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "description" : "string",
  "id" : "string",
  "status" : "string"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 401
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 409
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.25.2. Get all Health-Checks task records.

GET /v1/system/health-summary
Description

Get all Health-Checks task records.

Responses
HTTP Code Description Schema

200

Ok

400

Bad request! Invalid Headers or Data. Error: {error}

401

Bad request! Authorization Header is missing or not in correct format.

500

Something went wrong. Internal server error occurred. Error {error}

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/system/health-summary
Example HTTP response
Response 200
{
  "elements" : [ {
    "bundleAvailable" : "string",
    "bundleName" : "string",
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "id" : "string",
    "status" : "string"
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 401
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.25.3. Get Health-Checks task record for an id.

GET /v1/system/health-summary/{id}
Description

Get Health-Checks task record for an id.

Parameters
Type Name Description Schema

Path

id
required

The Health Summary Id

string

Responses
HTTP Code Description Schema

200

Ok

400

Bad request! Invalid Headers or Data. Error: {error}

401

Bad request! Authorization Header is missing or not in correct format.

500

Something went wrong. Internal server error occurred. Error {error}

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/system/health-summary/string
Example HTTP response
Response 200
{
  "bundleAvailable" : "string",
  "bundleName" : "string",
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "description" : "string",
  "id" : "string",
  "status" : "string"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 401
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.25.4. Download Health-Checks bundle.

GET /v1/system/health-summary/{id}/data
Description

Download Health-Checks bundle.

Parameters
Type Name Description Schema

Path

id
required

The Health Summary Id

string

Responses
HTTP Code Description Schema

200

Ok

string (byte)

400

Bad request! Invalid Headers or Data. Error: {error}.

401

Bad request! Authorization Header is missing or not in correct format.

404

Bundle not found or not available for download. Id:{id}.

500

Something went wrong. Internal server error occurred. Error {error}.

Consumes
  • application/json

Produces
  • application/octet-stream

Example HTTP request
Request path
/v1/system/health-summary/string/data
Example HTTP response
Response 200
"Ynl0ZQ=="
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 401
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.25.5. Initiates Support-Bundle collection for SDDC.

POST /v1/system/support-bundles
Description

Initiates Support-Bundle collection for SDDC.

Parameters
Type Name Description Schema

Body

supportbundlespec
required

supportbundlespec

Responses
HTTP Code Description Schema

200

OK

202

Accepted

400

Bad request! Invalid Headers or Data. Error: {error}

401

Bad request! Authorization Header is missing or not in correct format.

409

Operation is in progress for Id {id}. Wait for the operation to complete.

500

Something went wrong. Internal server error occurred. Error {error}

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/system/support-bundles
Request body
{
  "logs" : {
    "apiLogs" : true,
    "esxLogs" : true,
    "nsxLogs" : true,
    "sddcManagerLogs" : true,
    "systemDebugLogs" : true,
    "vcLogs" : true,
    "vmScreenshots" : true,
    "vraLogs" : true,
    "vrliLogs" : true,
    "vropsLogs" : true,
    "vrslcmLogs" : true,
    "vxrailManagerLogs" : true,
    "wcpLogs" : true
  },
  "options" : {
    "config" : {
      "force" : true,
      "skipKnownHostCheck" : true
    },
    "include" : {
      "healthCheck" : true,
      "summaryReport" : true
    }
  },
  "scope" : {
    "domains" : [ {
      "clusterNames" : [ "string" ],
      "domainName" : "string"
    } ],
    "includeFreeHosts" : true
  }
}
Example HTTP response
Response 200
{
  "bundleAvailable" : "string",
  "bundleName" : "string",
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "description" : "string",
  "id" : "string",
  "status" : "string"
}
Response 202
{
  "bundleAvailable" : "string",
  "bundleName" : "string",
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "description" : "string",
  "id" : "string",
  "status" : "string"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 401
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 409
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.25.6. Get all Support-Bundle task records.

GET /v1/system/support-bundles
Description

Get all Support-Bundle task records.

Responses
HTTP Code Description Schema

200

Ok

400

Bad request! Invalid Headers or Data. Error: {error}

401

Bad request! Authorization Header is missing or not in correct format.

500

Something went wrong. Internal server error occurred. Error {error}

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/system/support-bundles
Example HTTP response
Response 200
{
  "elements" : [ {
    "bundleAvailable" : "string",
    "bundleName" : "string",
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "id" : "string",
    "status" : "string"
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 401
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.25.7. Get Support-Bundle task record for an id.

GET /v1/system/support-bundles/{id}
Description

Get Support-Bundle task record for an id.

Parameters
Type Name Description Schema

Path

id
required

The Support Bundle ID

string

Responses
HTTP Code Description Schema

200

Ok

400

Bad request! Invalid Headers or Data. Error: {error}

401

Bad request! Authorization Header is missing or not in correct format.

500

Something went wrong. Internal server error occurred. Error {error}

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/system/support-bundles/string
Example HTTP response
Response 200
{
  "bundleAvailable" : "string",
  "bundleName" : "string",
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "description" : "string",
  "id" : "string",
  "status" : "string"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 401
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.25.8. Download Support-Bundle.

GET /v1/system/support-bundles/{id}/data
Description

Download Support-Bundle.

Parameters
Type Name Description Schema

Path

id
required

The Support Bundle ID

string

Responses
HTTP Code Description Schema

200

Ok

string (byte)

400

Bad request! Invalid Headers or Data. Error: {error}

401

Bad request! Authorization Header is missing or not in correct format.

404

Bundle not found or not available for download. Id:{id}

500

Something went wrong. Internal server error occurred. Error {error}

Consumes
  • application/json

Produces
  • application/octet-stream

Example HTTP request
Request path
/v1/system/support-bundles/string/data
Example HTTP response
Response 200
"Ynl0ZQ=="
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 401
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.26. SddcManagers

APIs for managing SDDC Managers

3.26.1. Get the SDDC Managers

GET /v1/sddc-managers
Responses
HTTP Code Description Schema

200

Ok

400

Bad Request

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 200
{
  "elements" : [ {
    "basicAuthDetails" : {
      "status" : "One among: ENABLED, DISABLED",
      "username" : "string"
    },
    "domain" : {
      "id" : "string",
      "name" : "string"
    },
    "fqdn" : "string",
    "id" : "string",
    "ipAddress" : "string",
    "version" : "string"
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.26.2. Get a SDDC Manager

GET /v1/sddc-managers/{id}
Parameters
Type Name Description Schema

Path

id
required

Sddc Manager ID

string

Responses
HTTP Code Description Schema

200

Ok

404

Sddc Manager not found

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/sddc-managers/string
Example HTTP response
Response 200
{
  "basicAuthDetails" : {
    "status" : "One among: ENABLED, DISABLED",
    "username" : "string"
  },
  "domain" : {
    "id" : "string",
    "name" : "string"
  },
  "fqdn" : "string",
  "id" : "string",
  "ipAddress" : "string",
  "version" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.27. SystemPrechecks

APIs for managing System Prechecks

3.27.1. Precheck System

POST /v1/system/prechecks
Description

Perform precheck of resource(ex: Domain, Cluster). If only resource is specified, all resources/software components under it are included. If resource(Domain, Cluster etc) and specific resources/software components are provided, only those are included in precheck

Parameters
Type Name Description Schema

Body

precheckSpec
required

Precheck System Spec

Responses
HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/system/prechecks
Request body
{
  "bundleId" : "string",
  "mode" : "string",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ]
}
Example HTTP response
Response 200
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.27.2. Get Precheck Task by ID

GET /v1/system/prechecks/tasks/{id}
Description

Monitor the progress of precheck task by the precheck task ID

Parameters
Type Name Description Schema

Path

id
required

Precheck Task ID

string

Responses
HTTP Code Description Schema

200

Ok

404

Precheck Task Not Found

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/system/prechecks/tasks/string
Example HTTP response
Response 200
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.28. Tasks

APIs for managing Tasks

3.28.1. Get the Tasks

GET /v1/tasks
Description

Get the Tasks

Parameters
Type Name Description Schema

Query

completedAfter
optional

A time based filter to get tasks which are completed after the given timestamp. A task is completed if its status is 'Successsful' or 'Failed'. Time is in milliseconds.

integer (int64)

Query

limit
optional

The number of elements to be returned in the result

integer (int32)

Query

resourceId
optional

resourceId

string

Query

resourceType
optional

resourceType

string

Query

taskStatus
optional

taskStatus

string

Query

taskType
optional

taskType

string

Responses
HTTP Code Description Schema

200

Returns the list of tasks.

500

Unexpected error

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 200
{
  "elements" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "id" : "string",
    "isCancellable" : true,
    "name" : "string",
    "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "resources" : [ {
          "fqdn" : "string",
          "name" : "string",
          "resourceId" : "string",
          "sans" : [ "string" ],
          "type" : "string"
        } ],
        "stages" : [ {
          "completionTimestamp" : "string",
          "creationTimestamp" : "string",
          "description" : "string",
          "errors" : [ "..." ],
          "name" : "string",
          "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
          "type" : "string"
        } ],
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "subTasks" : [ "..." ],
        "type" : "string"
      } ],
      "type" : "string"
    } ],
    "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.28.2. Get a Task

GET /v1/tasks/{id}
Description

Get a Task by ID, if it exists

Parameters
Type Name Description Schema

Path

id
required

Task id to retrieve

string

Responses
HTTP Code Description Schema

200

A task object.

404

Task not found

500

Unexpected error

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 200
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.28.3. Cancel a Task

DELETE /v1/tasks/{id}
Description

Cancel a Task by ID, if it exists

Parameters
Type Name Description Schema

Path

id
required

Task id for cancelling

string

Responses
HTTP Code Description Schema

200

Task was cancelled successfully.

No Content

404

Task not found

409

Task can not be cancelled. Only a IN_PROGRESS task can be cancelled.

500

Unexpected error

Consumes
  • application/json

Produces
  • */*

Example HTTP response
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 409
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.28.4. Retry a Task

PATCH /v1/tasks/{id}
Description

Retry a failed Task by ID, if it exists

Parameters
Type Name Description Schema

Path

id
required

Task id retry

string

Responses
HTTP Code Description Schema

200

Task was retried successfully.

No Content

404

Task not found

409

Task can not be retried. Only a failed Task can be retried.

500

Unexpected error

Consumes
  • application/json

Produces
  • */*

Example HTTP response
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 409
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.29. Tokens

APIs for managing Access and Refresh Token

3.29.1. Create Token Pair

POST /v1/tokens
Description

Creates access token and refresh token for user access

Parameters
Type Name Description Schema

Body

tokenCreationSpec
required

tokenCreationSpec

Responses
HTTP Code Description Schema

200

OK

201

Created

400

Bad Request

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/tokens
Request body
{
  "apiKey" : "string",
  "password" : "string",
  "username" : "string"
}
Example HTTP response
Response 200
{
  "accessToken" : "string",
  "refreshToken" : {
    "id" : "string"
  }
}
Response 201
{
  "accessToken" : "string",
  "refreshToken" : {
    "id" : "string"
  }
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.29.2. Refresh Access Token

PATCH /v1/tokens/access-token/refresh
Description

Refresh the access token associated with the given refresh token

Parameters
Type Name Description Schema

Body

refreshToken
required

refreshToken

string

Responses
HTTP Code Description Schema

200

OK

string

400

Bad Request

404

Not Found

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/tokens/access-token/refresh
Example HTTP response
Response 200
"string"
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.29.3. Invalidate Refresh Token

DELETE /v1/tokens/refresh-token
Description

Invalidate the provided refresh token

Parameters
Type Name Description Schema

Body

refreshToken
required

refreshToken

string

Responses
HTTP Code Description Schema

204

No content

No Content

Consumes
  • application/json

Produces
  • */*

3.30. Trusted Certificates

APIs for managing Trusted Certificates

3.30.1. Add trusted certificate to the SDDC manager

POST /v1/sddc-manager/trusted-certificates
Description

Add trusted certificate to the SDDC manager

Parameters
Type Name Description Schema

Body

trustedCertificateSpec
required

trustedCertificateSpec

Responses
HTTP Code Description Schema

200

OK

No Content

400

Bad request

409

Trusted certificate already exists

500

Internal server error

Consumes
  • application/json

Produces
  • */*

Example HTTP request
Request path
/v1/sddc-manager/trusted-certificates
Request body
{
  "certificate" : "string",
  "certificateUsageType" : "One among: TRUSTED_FOR_OUTBOUND, TRUSTED_FOR_INBOUND"
}
Example HTTP response
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 409
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.31. Upgradables

APIs for managing Upgradables

3.31.1. Get the Upgradables

GET /v1/system/upgradables
Description

Fetches the list of Upgradables in the System. Only one Upgradable becomes AVAILABLE for Upgrade. The Upgradables provides information that can be use for Precheck API and also in the actual Upgrade API call.

Responses
HTTP Code Description Schema

200

Ok

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/system/upgradables
Example HTTP response
Response 200
{
  "elements" : [ {
    "bundleId" : "string",
    "bundleType" : "string",
    "resource" : {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    },
    "softwareComponents" : [ {
      "id" : "string",
      "type" : "string"
    } ],
    "status" : "string"
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.31.2. Get the Upgradables

GET /v1/upgradables/domains/{domainId}
Description

Fetches the list of Upgradables for a given domain. If a target version is provided, Upgradables that are required for given target version become Available. The Upgradables providesinformation that can be use for Precheck API and also in the actual Upgrade API call.

Parameters
Type Name Description Schema

Path

domainId
required

Domain ID

string

Query

targetVersion
optional

Target Version to get Upgradables for a given Target Release

string

Responses
HTTP Code Description Schema

200

Ok

404

Domain not found

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/upgradables/domains/string
Example HTTP response
Response 200
{
  "elements" : [ {
    "bundleId" : "string",
    "bundleType" : "string",
    "resource" : {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    },
    "softwareComponents" : [ {
      "id" : "string",
      "type" : "string"
    } ],
    "status" : "string"
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.31.3. Get registered and available HSM details along with Software details

GET /v1/upgradables/domains/{domainId}/clusters
Description

Fetches the list of available hardware support managers and configured hardware support managers for the give resource along with the hardware support packages and Software details.

Parameters
Type Name Description Schema

Path

domainId
required

Domain ID

string

Responses
HTTP Code Description Schema

200

Ok

404

Domain Not Found

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/upgradables/domains/string/clusters
Example HTTP response
Response 200
{
  "elements" : [ {
    "availableHardwareSupportManagers" : [ {
      "displayName" : "string",
      "name" : "string",
      "packages" : [ {
        "name" : "string",
        "version" : "string"
      } ]
    } ],
    "configuredHardwareSupportManagers" : [ {
      "displayName" : "string",
      "name" : "string",
      "pkg" : {
        "name" : "string",
        "version" : "string"
      }
    } ],
    "primaryCluster" : true,
    "resourceId" : "string",
    "resourceType" : "CLUSTER",
    "softwareInfo" : {
      "addOn" : {
        "displayName" : "string",
        "displayVersion" : "string",
        "name" : "DELL-sample-Addon",
        "vendor" : "Dell",
        "version" : "2.0-1"
      },
      "baseImage" : {
        "details" : {
          "displayName" : "7.0.0-0.0.30340198",
          "displayVersion" : "string",
          "releaseDate" : {
            "calendarType" : "string",
            "firstDayOfWeek" : 0,
            "lenient" : true,
            "minimalDaysInFirstWeek" : 0,
            "time" : "1970-01-01T00:00:00Z",
            "timeInMillis" : 0,
            "timeZone" : {
              "displayName" : "string",
              "dstsavings" : 0,
              "id" : "string",
              "rawOffset" : 0
            },
            "weekDateSupported" : true,
            "weekYear" : 0,
            "weeksInWeekYear" : 0
          }
        },
        "version" : "7.0.0-0.0.30340198"
      },
      "components" : {
        "string" : "<<_componentinfo>>"
      },
      "hardwareSupport" : {
        "packages" : {
          "string" : "<<_hardwaresupportpackageinfo>>"
        }
      }
    },
    "vlcmEnabled" : true
  } ]
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.31.4. Get NSXT upgradable resources

GET /v1/upgradables/domains/{domainId}/nsxt
Description

Get the list NSXT upgradable reosurce with resource metadata info

Parameters
Type Name Description Schema

Path

domainId
required

Domain ID

string

Query

bundleId
optional

bundle Id of the upgrade bundle applicable on the domain

string

Responses
HTTP Code Description Schema

200

Ok

< NsxtResources > array

404

Bundle not found

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/upgradables/domains/string/nsxt
Example HTTP response
Response 200
[ {
  "bundleId" : "string",
  "domainId" : "string",
  "nsxtEdgeClusters" : [ {
    "id" : "string",
    "name" : "string",
    "resourceHealth" : "string",
    "upgradeStatus" : "string",
    "version" : "string"
  } ],
  "nsxtHostClusters" : [ {
    "availableHardwareSupportManagers" : [ {
      "displayName" : "string",
      "name" : "string",
      "packages" : [ {
        "name" : "string",
        "version" : "string"
      } ]
    } ],
    "configuredHardwareSupportManagers" : [ {
      "displayName" : "string",
      "name" : "string",
      "pkg" : {
        "name" : "string",
        "version" : "string"
      }
    } ],
    "domainId" : "string",
    "id" : "string",
    "name" : "string",
    "primaryCluster" : true,
    "resourceHealth" : "string",
    "totalUnits" : 0,
    "upgradeStatus" : "string",
    "upgradedUnits" : 0,
    "version" : "string",
    "vlcmEnabled" : true
  } ],
  "nsxtManagerCluster" : {
    "id" : "string",
    "name" : "string",
    "resourceHealth" : "string",
    "upgradeStatus" : "string",
    "version" : "string"
  },
  "nsxtUpgradeCoordinator" : {
    "enabledOn" : "string",
    "id" : "string",
    "resourceHealth" : "string",
    "upgradeStatus" : "string",
    "version" : "string"
  }
} ]
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.32. Upgrades

APIs for managing Upgrades

3.32.1. Perform Upgrade

POST /v1/upgrades
Description

Schedule/Trigger Upgrade of a Resource. Ex: Resource can be DOMAIN, CLUSTER, UNMANAGED_HOST etc. Performing upgrades are supported on VMware Cloud Foundation 3.5 BOM resources and above.

Parameters
Type Name Description Schema

Body

upgradeSpec
required

Upgrade Specification

Responses
HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

403

Operation not allowed

424

Failed Dependency

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/upgrades
Request body
{
  "bundleId" : "string",
  "draftMode" : true,
  "nsxtUpgradeUserInputSpecs" : [ {
    "nsxtEdgeClusterUpgradeSpecs" : [ {
      "edgeClusterId" : "string",
      "edgeParallelUpgrade" : true
    } ],
    "nsxtHostClusterUpgradeSpecs" : [ {
      "hostClusterId" : "string",
      "hostParallelUpgrade" : true,
      "liveUpgrade" : true
    } ],
    "nsxtId" : "string",
    "nsxtUpgradeOptions" : {
      "isEdgeClustersUpgradeParallel" : true,
      "isEdgeOnlyUpgrade" : true,
      "isHostClustersUpgradeParallel" : true
    }
  } ],
  "parallelUpgrade" : true,
  "resourceType" : "One among: DOMAIN, CLUSTER, UNASSIGNED_HOST",
  "resourceUpgradeSpecs" : [ {
    "enableQuickboot" : true,
    "personalitySpec" : {
      "hardwareSupportSpecs" : [ {
        "name" : "string",
        "packageSpec" : {
          "name" : "string",
          "version" : "string"
        }
      } ],
      "personalityId" : "string"
    },
    "resourceId" : "string",
    "scheduledTimestamp" : "string",
    "shutdownVms" : true,
    "toVersion" : "string",
    "upgradeNow" : true
  } ]
}
Example HTTP response
Response 200
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 403
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 424
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.32.2. Get Upgrades

GET /v1/upgrades
Description

Get Upgrades

Parameters
Type Name Description Schema

Query

bundleId
optional

Bundle Id for the upgrade

string

Query

status
optional

Status of the upgrades you want to retrieve

string

Responses
HTTP Code Description Schema

200

OK

404

Upgrade not found

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 200
{
  "elements" : [ {
    "bundleId" : "string",
    "id" : "string",
    "nsxtUpgradeUserInputSpec" : {
      "nsxtEdgeClusterUpgradeSpecs" : [ {
        "edgeClusterId" : "string",
        "edgeParallelUpgrade" : true
      } ],
      "nsxtHostClusterUpgradeSpecs" : [ {
        "hostClusterId" : "string",
        "hostParallelUpgrade" : true,
        "liveUpgrade" : true
      } ],
      "nsxtId" : "string",
      "nsxtUpgradeOptions" : {
        "isEdgeClustersUpgradeParallel" : true,
        "isEdgeOnlyUpgrade" : true,
        "isHostClustersUpgradeParallel" : true
      }
    },
    "parallelUpgrade" : true,
    "resourceType" : "One among: DOMAIN, CLUSTER, UNASSIGNED_HOST",
    "resourceUpgradeSpecs" : [ {
      "enableQuickboot" : true,
      "personalitySpec" : {
        "hardwareSupportSpecs" : [ {
          "name" : "string",
          "packageSpec" : {
            "name" : "string",
            "version" : "string"
          }
        } ],
        "personalityId" : "string"
      },
      "resourceId" : "string",
      "scheduledTimestamp" : "string",
      "shutdownVms" : true,
      "toVersion" : "string",
      "upgradeNow" : true
    } ],
    "status" : "string",
    "taskId" : "string"
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.32.3. Get Upgrade By Id

GET /v1/upgrades/{upgradeId}
Description

Get Upgrade By Id

Parameters
Type Name Description Schema

Path

upgradeId
required

upgradeId

string

Responses
HTTP Code Description Schema

200

OK

404

Upgrade not found

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/upgrades/string
Example HTTP response
Response 200
{
  "bundleId" : "string",
  "id" : "string",
  "nsxtUpgradeUserInputSpec" : {
    "nsxtEdgeClusterUpgradeSpecs" : [ {
      "edgeClusterId" : "string",
      "edgeParallelUpgrade" : true
    } ],
    "nsxtHostClusterUpgradeSpecs" : [ {
      "hostClusterId" : "string",
      "hostParallelUpgrade" : true,
      "liveUpgrade" : true
    } ],
    "nsxtId" : "string",
    "nsxtUpgradeOptions" : {
      "isEdgeClustersUpgradeParallel" : true,
      "isEdgeOnlyUpgrade" : true,
      "isHostClustersUpgradeParallel" : true
    }
  },
  "parallelUpgrade" : true,
  "resourceType" : "One among: DOMAIN, CLUSTER, UNASSIGNED_HOST",
  "resourceUpgradeSpecs" : [ {
    "enableQuickboot" : true,
    "personalitySpec" : {
      "hardwareSupportSpecs" : [ {
        "name" : "string",
        "packageSpec" : {
          "name" : "string",
          "version" : "string"
        }
      } ],
      "personalityId" : "string"
    },
    "resourceId" : "string",
    "scheduledTimestamp" : "string",
    "shutdownVms" : true,
    "toVersion" : "string",
    "upgradeNow" : true
  } ],
  "status" : "string",
  "taskId" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.32.4. Commit/Reschedule Upgrade

PATCH /v1/upgrades/{upgradeId}
Description

Commit/Reschedule an existing upgrade. It moves the upgrade from DRAFT state to SCHEDULED state and/or changes the upgrade scheduled date/time.

Parameters
Type Name Description Schema

Path

upgradeId
required

upgradeId

string

Body

upgradeCommitSpec
required

Upgrade Commit/Reschedule Specification

Responses
HTTP Code Description Schema

200

Ok

404

Upgrade not found

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/upgrades/string
Request body
{
  "scheduledTimestamp" : "string",
  "upgradeNow" : true
}
Example HTTP response
Response 200
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.32.5. performPrechecks

POST /v1/upgrades/{upgradeId}/prechecks
Parameters
Type Name Description Schema

Path

upgradeId
required

upgradeId

string

Responses
HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

403

Operation not allowed

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/upgrades/string/prechecks
Example HTTP response
Response 200
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 403
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.32.6. getPrecheck

GET /v1/upgrades/{upgradeId}/prechecks/{precheckId}
Parameters
Type Name Description Schema

Path

precheckId
required

precheckId

string

Path

upgradeId
required

upgradeId

string

Responses
HTTP Code Description Schema

200

Ok

400

Bad Request

403

Operation not allowed

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/upgrades/string/prechecks/string
Example HTTP response
Response 200
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 403
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.33. Users

APIs for managing Users

3.33.1. Get all roles

GET /v1/roles
Description

Get a list of all roles

Responses
HTTP Code Description Schema

200

OK

400

Bad request

401

Unauthorized Request

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 200
{
  "elements" : [ {
    "description" : "string",
    "id" : "string",
    "name" : "string"
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}
Response 400
{
  "arguments" : [ "string" ],
  "cause" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "cause" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 401
{
  "arguments" : [ "string" ],
  "cause" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "cause" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "cause" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "cause" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.33.2. Get all SSO domains

GET /v1/sso-domains
Description

Get a list of all SSO domains

Responses
HTTP Code Description Schema

200

OK

401

Unauthorized Request

403

Forbidden request

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 200
{
  "elements" : [ "string" ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}
Response 401
{
  "arguments" : [ "string" ],
  "cause" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "cause" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 403
{
  "arguments" : [ "string" ],
  "cause" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "cause" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "cause" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "cause" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.33.3. Get all entities of SSO domain

GET /v1/sso-domains/{sso-domain}/entities
Description

Get a list of all entities in the SSO domain

Parameters
Type Name Description Schema

Path

sso-domain
required

SSO Domain Name

string

Responses
HTTP Code Description Schema

200

OK

401

Unauthorized Request

403

Forbidden request

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/sso-domains/string/entities
Example HTTP response
Response 200
{
  "elements" : [ {
    "id" : "string",
    "name" : "string",
    "type" : "One among: USER, GROUP"
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}
Response 401
{
  "arguments" : [ "string" ],
  "cause" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "cause" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 403
{
  "arguments" : [ "string" ],
  "cause" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "cause" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "cause" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "cause" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.33.4. Add users

POST /v1/users
Description

Add list of users

Parameters
Type Name Description Schema

Body

users
required

User data collection

< User > array

Responses
HTTP Code Description Schema

200

OK

201

Created

400

Bad request

401

Unauthorized Request

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/users
Request body
[ {
  "apiKey" : "string",
  "creationTimestamp" : "string",
  "domain" : "string",
  "id" : "string",
  "name" : "string",
  "role" : {
    "id" : "string"
  },
  "type" : "One among: USER, GROUP, SERVICE"
} ]
Example HTTP response
Response 200
{
  "elements" : [ {
    "apiKey" : "string",
    "creationTimestamp" : "string",
    "domain" : "string",
    "id" : "string",
    "name" : "string",
    "role" : {
      "id" : "string"
    },
    "type" : "One among: USER, GROUP, SERVICE"
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}
Response 201
{
  "elements" : [ {
    "apiKey" : "string",
    "creationTimestamp" : "string",
    "domain" : "string",
    "id" : "string",
    "name" : "string",
    "role" : {
      "id" : "string"
    },
    "type" : "One among: USER, GROUP, SERVICE"
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}
Response 400
{
  "arguments" : [ "string" ],
  "cause" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "cause" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 401
{
  "arguments" : [ "string" ],
  "cause" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "cause" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "cause" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "cause" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.33.5. Get all Users

GET /v1/users
Description

Get a list of all users

Responses
HTTP Code Description Schema

200

OK

400

Bad request

401

Unauthorized Request

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 200
{
  "elements" : [ {
    "apiKey" : "string",
    "creationTimestamp" : "string",
    "domain" : "string",
    "id" : "string",
    "name" : "string",
    "role" : {
      "id" : "string"
    },
    "type" : "One among: USER, GROUP, SERVICE"
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}
Response 400
{
  "arguments" : [ "string" ],
  "cause" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "cause" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 401
{
  "arguments" : [ "string" ],
  "cause" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "cause" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "cause" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "cause" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.33.6. Get local account details

GET /v1/users/local/admin
Description

Get information on the local account

Responses
HTTP Code Description Schema

200

OK

400

Bad request

401

Unauthorized Request

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/users/local/admin
Example HTTP response
Response 200
{
  "apiKey" : "string",
  "creationTimestamp" : "string",
  "domain" : "string",
  "id" : "string",
  "isConfigured" : true,
  "name" : "string",
  "role" : {
    "id" : "string"
  },
  "type" : "One among: USER, GROUP, SERVICE"
}
Response 400
{
  "arguments" : [ "string" ],
  "cause" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "cause" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 401
{
  "arguments" : [ "string" ],
  "cause" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "cause" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "cause" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "cause" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.33.7. Update password for local account

PATCH /v1/users/local/admin
Description

Update the password for local account only if the old password is correct, or if user configures the local account for the first time

Parameters
Type Name Description Schema

Body

locaUserPassword
required

Local user password details

Responses
HTTP Code Description Schema

204

No content

No Content

500

Internal server error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/users/local/admin
Request body
{
  "newPassword" : "string",
  "oldPassword" : "string"
}
Example HTTP response
Response 500
{
  "arguments" : [ "string" ],
  "cause" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "cause" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.33.8. getAllUiUsers

GET /v1/users/ui
Responses
HTTP Code Description Schema

200

OK

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 200
{
  "elements" : [ {
    "apiKey" : "string",
    "creationTimestamp" : "string",
    "domain" : "string",
    "id" : "string",
    "name" : "string",
    "role" : {
      "id" : "string"
    },
    "type" : "One among: USER, GROUP, SERVICE"
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}

3.33.9. Delete a user

DELETE /v1/users/{id}
Description

Delete the user by the ID, if it exists

Parameters
Type Name Description Schema

Path

id
required

ID of the user

string

Responses
HTTP Code Description Schema

204

No content

No Content

404

User not found

500

Internal server error

Consumes
  • application/json

Produces
  • */*

Example HTTP response
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.34. VasaProviders

APIs for managing VASA Providers

3.34.1. Add a VASA Provider

POST /v1/vasa-providers
Parameters
Type Name Description Schema

Body

vasaProvider
required

VASA Provider data

Responses
HTTP Code Description Schema

201

Created

400

Bad Request

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/vasa-providers
Request body
{
  "id" : "string",
  "name" : "string",
  "storageContainers" : [ {
    "clusterId" : "string",
    "id" : "string",
    "name" : "string",
    "protocolType" : "One among: ISCSI, FC, NFS"
  } ],
  "url" : "string",
  "users" : [ {
    "id" : "string",
    "password" : "string",
    "username" : "string"
  } ]
}
Example HTTP response
Response 201
{
  "id" : "string",
  "name" : "string",
  "storageContainers" : [ {
    "clusterId" : "string",
    "id" : "string",
    "name" : "string",
    "protocolType" : "One among: ISCSI, FC, NFS"
  } ],
  "url" : "string",
  "users" : [ {
    "id" : "string",
    "password" : "string",
    "username" : "string"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.34.2. Get the VASA Providers

GET /v1/vasa-providers
Responses
HTTP Code Description Schema

200

Ok

400

Bad Request

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/vasa-providers
Example HTTP response
Response 200
{
  "elements" : [ {
    "id" : "string",
    "name" : "string",
    "storageContainers" : [ {
      "clusterId" : "string",
      "id" : "string",
      "name" : "string",
      "protocolType" : "One among: ISCSI, FC, NFS"
    } ],
    "url" : "string",
    "users" : [ {
      "id" : "string",
      "password" : "string",
      "username" : "string"
    } ]
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.34.3. Validate VasaProvider input specification

POST /v1/vasa-providers/validations
Parameters
Type Name Description Schema

Body

vasaProvider
required

vasaProvider

Responses
HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

Internal Server Error

No Content

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/vasa-providers/validations
Request body
{
  "id" : "string",
  "name" : "string",
  "storageContainers" : [ {
    "clusterId" : "string",
    "id" : "string",
    "name" : "string",
    "protocolType" : "One among: ISCSI, FC, NFS"
  } ],
  "url" : "string",
  "users" : [ {
    "id" : "string",
    "password" : "string",
    "username" : "string"
  } ]
}
Example HTTP response
Response 200
{
  "additionalProperties" : {
    "string" : "string"
  },
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS, CANCELLATION_IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "nestedValidationChecks" : [ {
      "description" : "string",
      "errorResponse" : {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 202
{
  "additionalProperties" : {
    "string" : "string"
  },
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS, CANCELLATION_IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "nestedValidationChecks" : [ {
      "description" : "string",
      "errorResponse" : {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.34.4. Get the status of the validation of the VASA Provider

GET /v1/vasa-providers/validations/{id}
Parameters
Type Name Description Schema

Path

id
required

The validation ID

string

Responses
HTTP Code Description Schema

200

OK

400

Bad Request

404

Validation ID not found

500

Internal server error

No Content

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/vasa-providers/validations/string
Example HTTP response
Response 200
{
  "additionalProperties" : {
    "string" : "string"
  },
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS, CANCELLATION_IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "nestedValidationChecks" : [ {
      "description" : "string",
      "errorResponse" : {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.34.5. Get a VASA Provider

GET /v1/vasa-providers/{id}
Parameters
Type Name Description Schema

Path

id
required

VASA Provider ID

string

Responses
HTTP Code Description Schema

200

Ok

404

VASA Provider not found

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/vasa-providers/string
Example HTTP response
Response 200
{
  "id" : "string",
  "name" : "string",
  "storageContainers" : [ {
    "clusterId" : "string",
    "id" : "string",
    "name" : "string",
    "protocolType" : "One among: ISCSI, FC, NFS"
  } ],
  "url" : "string",
  "users" : [ {
    "id" : "string",
    "password" : "string",
    "username" : "string"
  } ]
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.34.6. Delete a VASA Provider

DELETE /v1/vasa-providers/{id}
Parameters
Type Name Description Schema

Path

id
required

VASA Provider ID

string

Responses
HTTP Code Description Schema

204

No Content

No Content

400

Bad Request

404

VASA Provider not found

500

InternalServerError

Consumes
  • application/json

Produces
  • */*

Example HTTP request
Request path
/v1/vasa-providers/string
Example HTTP response
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.34.7. Update a VASA Provider

PATCH /v1/vasa-providers/{id}
Parameters
Type Name Description Schema

Path

id
required

VASA Provider ID

string

Body

vasaProvider
required

VASA Provider update data

Responses
HTTP Code Description Schema

200

Ok

400

Bad Request

404

VASA Provider not found

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/vasa-providers/string
Request body
{
  "name" : "string",
  "url" : "string"
}
Example HTTP response
Response 200
{
  "id" : "string",
  "name" : "string",
  "storageContainers" : [ {
    "clusterId" : "string",
    "id" : "string",
    "name" : "string",
    "protocolType" : "One among: ISCSI, FC, NFS"
  } ],
  "url" : "string",
  "users" : [ {
    "id" : "string",
    "password" : "string",
    "username" : "string"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.34.8. Add the storage containers to a VASA Provider

POST /v1/vasa-providers/{id}/storage-containers
Parameters
Type Name Description Schema

Path

id
required

VASA Provider ID

string

Body

storageContainers
required

Storage containers data

< StorageContainer > array

Responses
HTTP Code Description Schema

201

Created

400

Bad Request

404

VASA Provider not found

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/vasa-providers/string/storage-containers
Request body
[ {
  "clusterId" : "string",
  "id" : "string",
  "name" : "string",
  "protocolType" : "One among: ISCSI, FC, NFS"
} ]
Example HTTP response
Response 201
{
  "id" : "string",
  "name" : "string",
  "storageContainers" : [ {
    "clusterId" : "string",
    "id" : "string",
    "name" : "string",
    "protocolType" : "One among: ISCSI, FC, NFS"
  } ],
  "url" : "string",
  "users" : [ {
    "id" : "string",
    "password" : "string",
    "username" : "string"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.34.9. Get the storage containers of a VASA Provider

GET /v1/vasa-providers/{id}/storage-containers
Parameters
Type Name Description Schema

Path

id
required

VASA Provider ID

string

Query

protocolType
optional

Pass an optional Storage Protocol type

string

Responses
HTTP Code Description Schema

200

Ok

< StorageContainer > array

400

Bad Request

404

VASA Provider not found

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/vasa-providers/string/storage-containers
Example HTTP response
Response 200
[ {
  "clusterId" : "string",
  "id" : "string",
  "name" : "string",
  "protocolType" : "One among: ISCSI, FC, NFS"
} ]
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.34.10. Delete a storage container of a VASA Provider

DELETE /v1/vasa-providers/{id}/storage-containers/{storageContainerId}
Parameters
Type Name Description Schema

Path

id
required

VASA Provider ID

string

Path

storageContainerId
required

Storage container ID

string

Responses
HTTP Code Description Schema

204

No Content

No Content

400

Bad Request

404

Storage container not found

500

InternalServerError

Consumes
  • application/json

Produces
  • */*

Example HTTP request
Request path
/v1/vasa-providers/string/storage-containers/string
Example HTTP response
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.34.11. Update the storage container of a VASA Provider

PATCH /v1/vasa-providers/{id}/storage-containers/{storageContainerId}
Parameters
Type Name Description Schema

Path

id
required

VASA Provider ID

string

Path

storageContainerId
required

Storage container ID

string

Body

storageContainer
required

Storage container update data

Responses
HTTP Code Description Schema

200

Ok

400

Bad Request

404

Storage container not found

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/vasa-providers/string/storage-containers/string
Request body
{
  "name" : "string"
}
Example HTTP response
Response 200
{
  "id" : "string",
  "name" : "string",
  "storageContainers" : [ {
    "clusterId" : "string",
    "id" : "string",
    "name" : "string",
    "protocolType" : "One among: ISCSI, FC, NFS"
  } ],
  "url" : "string",
  "users" : [ {
    "id" : "string",
    "password" : "string",
    "username" : "string"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.34.12. Add the users to a VASA Provider

POST /v1/vasa-providers/{id}/users
Parameters
Type Name Description Schema

Path

id
required

VASA Provider ID

string

Body

vasaUsers
required

VASA Users data

< VasaUser > array

Responses
HTTP Code Description Schema

201

Created

400

Bad Request

404

VASA Provider not found

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/vasa-providers/string/users
Request body
[ {
  "id" : "string",
  "password" : "string",
  "username" : "string"
} ]
Example HTTP response
Response 201
{
  "id" : "string",
  "name" : "string",
  "storageContainers" : [ {
    "clusterId" : "string",
    "id" : "string",
    "name" : "string",
    "protocolType" : "One among: ISCSI, FC, NFS"
  } ],
  "url" : "string",
  "users" : [ {
    "id" : "string",
    "password" : "string",
    "username" : "string"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.34.13. Get the users of a VASA Provider

GET /v1/vasa-providers/{id}/users
Parameters
Type Name Description Schema

Path

id
required

VASA Provider ID

string

Responses
HTTP Code Description Schema

200

Ok

< VasaUser > array

400

Bad Request

404

VASA Provider not found

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/vasa-providers/string/users
Example HTTP response
Response 200
[ {
  "id" : "string",
  "password" : "string",
  "username" : "string"
} ]
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.34.14. Update the user of a VASA Provider

PATCH /v1/vasa-providers/{id}/users/{userId}
Parameters
Type Name Description Schema

Path

id
required

VASA Provider ID

string

Path

userId
required

User ID

string

Body

vasaUser
required

User update data

Responses
HTTP Code Description Schema

200

Ok

400

Bad Request

404

User not found

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/vasa-providers/string/users/string
Request body
{
  "password" : "string",
  "username" : "string"
}
Example HTTP response
Response 200
{
  "id" : "string",
  "name" : "string",
  "storageContainers" : [ {
    "clusterId" : "string",
    "id" : "string",
    "name" : "string",
    "protocolType" : "One among: ISCSI, FC, NFS"
  } ],
  "url" : "string",
  "users" : [ {
    "id" : "string",
    "password" : "string",
    "username" : "string"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.35. VcfServices

APIs for managing VCF Services

3.35.1. Get the VcfServices

GET /v1/vcf-services
Responses
HTTP Code Description Schema

200

Ok

400

Bad Request

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 200
{
  "elements" : [ {
    "id" : "string",
    "name" : "string",
    "status" : "string",
    "version" : "string"
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.35.2. Get a VcfService

GET /v1/vcf-services/{id}
Parameters
Type Name Description Schema

Path

id
required

VcfService ID

string

Responses
HTTP Code Description Schema

200

Ok

404

VcfService not found

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/vcf-services/string
Example HTTP response
Response 200
{
  "id" : "string",
  "name" : "string",
  "status" : "string",
  "version" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.36. VersionAliasesForBundleComponentType

APIs for managing Version Alias Configuration

3.36.1. Get Version Alias Configuration

GET /v1/system/settings/version-aliases
Description

Get the Version Alias Configuration.

Responses
HTTP Code Description Schema

200

Ok

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/system/settings/version-aliases
Example HTTP response
Response 200
{
  "elements" : [ {
    "bundleComponentType" : "One among: VCENTER, PSC, NSX_T_MANAGER, NSX_MANAGER, ESX_HOST, VCF_VRA_UPGRADE, VCF_VRLI_UPGRADE, VCF_VROPS_UPGRADE, VCF_VRSLCM_UPGRADE, SDDC_MANAGER_VCF, LCM, SDDC_MANAGER, SDDC_MANAGER_UI, OPERATIONS_MANAGER, COMMON_SERVICES, SOLUTIONS_MANAGER, MULTI_SITE_SERVICE, ",
    "versionAliases" : [ {
      "aliases" : [ "string" ],
      "version" : "string"
    } ]
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.36.2. Update Version Alias Configurations

PUT /v1/system/settings/version-aliases
Description

Update Version Alias Configurations.

Parameters
Type Name Description Schema

Body

versionAliasesForBundleComponentTypeSpec
required

Version Alias Configuration Specification

Responses
HTTP Code Description Schema

200

Ok

400

Bad Request

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/system/settings/version-aliases
Request body
{
  "forceUpdate" : true,
  "targetVcfVersion" : "string",
  "versionAliasesForBundleComponentTypes" : [ {
    "bundleComponentType" : "One among: VCENTER, PSC, NSX_T_MANAGER, NSX_MANAGER, ESX_HOST, VCF_VRA_UPGRADE, VCF_VRLI_UPGRADE, VCF_VROPS_UPGRADE, VCF_VRSLCM_UPGRADE, SDDC_MANAGER_VCF, LCM, SDDC_MANAGER, SDDC_MANAGER_UI, OPERATIONS_MANAGER, COMMON_SERVICES, SOLUTIONS_MANAGER, MULTI_SITE_SERVICE, ",
    "versionAliases" : [ {
      "aliases" : [ "string" ],
      "version" : "string"
    } ]
  } ]
}
Example HTTP response
Response 200
{
  "elements" : [ {
    "bundleComponentType" : "One among: VCENTER, PSC, NSX_T_MANAGER, NSX_MANAGER, ESX_HOST, VCF_VRA_UPGRADE, VCF_VRLI_UPGRADE, VCF_VROPS_UPGRADE, VCF_VRSLCM_UPGRADE, SDDC_MANAGER_VCF, LCM, SDDC_MANAGER, SDDC_MANAGER_UI, OPERATIONS_MANAGER, COMMON_SERVICES, SOLUTIONS_MANAGER, MULTI_SITE_SERVICE, ",
    "versionAliases" : [ {
      "aliases" : [ "string" ],
      "version" : "string"
    } ]
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.36.3. Delete Version Alias for a bundle component type

DELETE /v1/system/settings/version-aliases/{bundleComponentType}
Description

Delete Version Alias for a bundle component type.

Parameters
Type Name Description Schema

Path

bundleComponentType
required

Bundle Component Type

enum (VCENTER, PSC, NSX_T_MANAGER, NSX_MANAGER, ESX_HOST, VCF_VRA_UPGRADE, VCF_VRLI_UPGRADE, VCF_VROPS_UPGRADE, VCF_VRSLCM_UPGRADE, SDDC_MANAGER_VCF, LCM, SDDC_MANAGER, SDDC_MANAGER_UI, OPERATIONS_MANAGER, COMMON_SERVICES, SOLUTIONS_MANAGER, MULTI_SITE_SERVICE)

Responses
HTTP Code Description Schema

200

OK

No Content

204

No Content

No Content

400

Bad Request

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/system/settings/version-aliases/VCENTER
Example HTTP response
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.36.4. Update Version Alias Configuration

PUT /v1/system/settings/version-aliases/{bundleComponentType}/{version}
Description

Update Version Alias Configuration.

Parameters
Type Name Description Schema

Path

bundleComponentType
required

Bundle Component Type

enum (VCENTER, PSC, NSX_T_MANAGER, NSX_MANAGER, ESX_HOST, VCF_VRA_UPGRADE, VCF_VRLI_UPGRADE, VCF_VROPS_UPGRADE, VCF_VRSLCM_UPGRADE, SDDC_MANAGER_VCF, LCM, SDDC_MANAGER, SDDC_MANAGER_UI, OPERATIONS_MANAGER, COMMON_SERVICES, SOLUTIONS_MANAGER, MULTI_SITE_SERVICE)

Path

version
required

Version

string

Body

aliasSpec
required

Alias Specification

Responses
HTTP Code Description Schema

200

Ok

400

Bad Request

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/system/settings/version-aliases/VCENTER/string
Request body
{
  "aliases" : [ "string" ],
  "forceUpdate" : true
}
Example HTTP response
Response 200
{
  "elements" : [ {
    "bundleComponentType" : "One among: VCENTER, PSC, NSX_T_MANAGER, NSX_MANAGER, ESX_HOST, VCF_VRA_UPGRADE, VCF_VRLI_UPGRADE, VCF_VROPS_UPGRADE, VCF_VRSLCM_UPGRADE, SDDC_MANAGER_VCF, LCM, SDDC_MANAGER, SDDC_MANAGER_UI, OPERATIONS_MANAGER, COMMON_SERVICES, SOLUTIONS_MANAGER, MULTI_SITE_SERVICE, ",
    "versionAliases" : [ {
      "aliases" : [ "string" ],
      "version" : "string"
    } ]
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.36.5. Delete Version Alias Configuration

DELETE /v1/system/settings/version-aliases/{bundleComponentType}/{version}
Description

Delete Version Alias Configuration by bundle component type, version, and aliases.

Parameters
Type Name Description Schema

Path

bundleComponentType
required

Bundle Component Type

enum (VCENTER, PSC, NSX_T_MANAGER, NSX_MANAGER, ESX_HOST, VCF_VRA_UPGRADE, VCF_VRLI_UPGRADE, VCF_VROPS_UPGRADE, VCF_VRSLCM_UPGRADE, SDDC_MANAGER_VCF, LCM, SDDC_MANAGER, SDDC_MANAGER_UI, OPERATIONS_MANAGER, COMMON_SERVICES, SOLUTIONS_MANAGER, MULTI_SITE_SERVICE)

Path

version
required

Version

string

Body

aliasVersions
optional

List of alias versions

< string > array

Responses
HTTP Code Description Schema

200

OK

No Content

204

No Content

No Content

400

Bad Request

500

Internal Server Error

Consumes
  • application/json

Produces
  • */*

Example HTTP request
Request path
/v1/system/settings/version-aliases/VCENTER/string
Request body
[ "string" ]
Example HTTP response
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.37. WSA

APIs for managing Workspace ONE Access for vRealize

3.37.1. Get all existing Workspace ONE Access instances

GET /v1/wsas
Responses
HTTP Code Description Schema

200

OK

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 200
{
  "elements" : [ {
    "id" : "string",
    "loadBalancerFqdn" : "wsa-lb.vrack.vsphere.local",
    "loadBalancerIpAddress" : "10.0.0.15",
    "nodes" : [ {
      "fqdn" : "vrealize.node.vrack.vsphere.local",
      "id" : "string",
      "ipAddress" : "10.0.0.17",
      "type" : "MASTER, REPLICA, DATA, REMOTE_COLLECTOR, WORKER"
    } ],
    "status" : "ACTIVE, ERROR",
    "version" : "8.1.0-13036238"
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}

3.38. System

APIs for managing DNS & NTP configuration

3.38.1. Get the current DnsConfiguration

GET /v1/system/dns-configuration
Responses
HTTP Code Description Schema

200

Ok

400

Bad Request

500

Internal server error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/system/dns-configuration
Example HTTP response
Response 200
{
  "dnsServers" : [ {
    "ipAddress" : "10.0.0.250",
    "isPrimary" : true
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.38.2. Configure the Dns Server

PUT /v1/system/dns-configuration
Parameters
Type Name Description Schema

Body

dnsConfiguration
required

dnsConfiguration

Responses
HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

Internal server error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/system/dns-configuration
Request body
{
  "dnsServers" : [ {
    "ipAddress" : "10.0.0.250",
    "isPrimary" : true
  } ]
}
Example HTTP response
Response 200
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.38.3. Validate DnsConfiguration input spec and system health before DNS configuration

POST /v1/system/dns-configuration/validations
Parameters
Type Name Description Schema

Body

dnsConfiguration
required

dnsConfiguration

Responses
HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

Internal Server Error

No Content

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/system/dns-configuration/validations
Request body
{
  "dnsServers" : [ {
    "ipAddress" : "10.0.0.250",
    "isPrimary" : true
  } ]
}
Example HTTP response
Response 200
{
  "additionalProperties" : {
    "string" : "string"
  },
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS, CANCELLATION_IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "nestedValidationChecks" : [ {
      "description" : "string",
      "errorResponse" : {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 202
{
  "additionalProperties" : {
    "string" : "string"
  },
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS, CANCELLATION_IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "nestedValidationChecks" : [ {
      "description" : "string",
      "errorResponse" : {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.38.4. Get the validations of the input dnsServers to configure new DNS server

GET /v1/system/dns-configuration/validations
Parameters
Type Name Description Schema

Query

executionStatus
optional

executionStatus

string

Responses
HTTP Code Description Schema

200

OK

400

Bad Request

500

Internal server error

No Content

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/system/dns-configuration/validations
Example HTTP response
Response 200
{
  "additionalProperties" : {
    "string" : "string"
  },
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS, CANCELLATION_IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "nestedValidationChecks" : [ {
      "description" : "string",
      "errorResponse" : {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.38.5. Get the status of the validation of the input DnsConfiguration

GET /v1/system/dns-configuration/validations/{id}
Parameters
Type Name Description Schema

Path

id
required

The validation ID

string

Responses
HTTP Code Description Schema

200

OK

400

Bad Request

500

Internal server error

No Content

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/system/dns-configuration/validations/string
Example HTTP response
Response 200
{
  "additionalProperties" : {
    "string" : "string"
  },
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS, CANCELLATION_IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "nestedValidationChecks" : [ {
      "description" : "string",
      "errorResponse" : {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.38.6. Get the current NtpConfiguration

GET /v1/system/ntp-configuration
Responses
HTTP Code Description Schema

200

Ok

400

Bad Request

500

Internal server error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/system/ntp-configuration
Example HTTP response
Response 200
{
  "ntpServers" : [ {
    "ipAddress" : "10.0.0.250"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.38.7. Configure the Ntp Server

PUT /v1/system/ntp-configuration
Parameters
Type Name Description Schema

Body

ntpConfiguration
required

ntpConfiguration

Responses
HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

Internal server error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/system/ntp-configuration
Request body
{
  "ntpServers" : [ {
    "ipAddress" : "10.0.0.250"
  } ]
}
Example HTTP response
Response 200
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.38.8. Validate NtpConfiguration input spec and system health before Ntp configuration

POST /v1/system/ntp-configuration/validations
Parameters
Type Name Description Schema

Body

ntpConfiguration
required

ntpConfiguration

Responses
HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

Internal Server Error

No Content

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/system/ntp-configuration/validations
Request body
{
  "ntpServers" : [ {
    "ipAddress" : "10.0.0.250"
  } ]
}
Example HTTP response
Response 200
{
  "additionalProperties" : {
    "string" : "string"
  },
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS, CANCELLATION_IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "nestedValidationChecks" : [ {
      "description" : "string",
      "errorResponse" : {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 202
{
  "additionalProperties" : {
    "string" : "string"
  },
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS, CANCELLATION_IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "nestedValidationChecks" : [ {
      "description" : "string",
      "errorResponse" : {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.38.9. Get the validations of the input ntpServers to configure new Ntp server

GET /v1/system/ntp-configuration/validations
Parameters
Type Name Description Schema

Query

executionStatus
optional

executionStatus

string

Responses
HTTP Code Description Schema

200

OK

400

Bad Request

500

Internal server error

No Content

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/system/ntp-configuration/validations
Example HTTP response
Response 200
{
  "additionalProperties" : {
    "string" : "string"
  },
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS, CANCELLATION_IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "nestedValidationChecks" : [ {
      "description" : "string",
      "errorResponse" : {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.38.10. Get the status of the validation of the input ntpServers to configure new Ntp server

GET /v1/system/ntp-configuration/validations/{id}
Parameters
Type Name Description Schema

Path

id
required

The validation ID

string

Responses
HTTP Code Description Schema

200

OK

400

Bad Request

500

Internal server error

No Content

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/system/ntp-configuration/validations/string
Example HTTP response
Response 200
{
  "additionalProperties" : {
    "string" : "string"
  },
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS, CANCELLATION_IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "nestedValidationChecks" : [ {
      "description" : "string",
      "errorResponse" : {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.39. VCenters

APIs for managing vCenters

3.39.1. Get vCenters

GET /v1/vcenters
Parameters
Type Name Description Schema

Query

domainId
optional

ID of the domain

string

Responses
HTTP Code Description Schema

200

Ok

400

Bad Request

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 200
{
  "elements" : [ {
    "domain" : {
      "id" : "string",
      "name" : "string"
    },
    "fqdn" : "string",
    "id" : "string",
    "ipAddress" : "string",
    "version" : "string"
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.39.2. Get a vCenter

GET /v1/vcenters/{id}
Parameters
Type Name Description Schema

Path

id
required

vCenter ID

string

Responses
HTTP Code Description Schema

200

Ok

404

vCenter not found

500

InternalServerError

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/vcenters/string
Example HTTP response
Response 200
{
  "domain" : {
    "id" : "string",
    "name" : "string"
  },
  "fqdn" : "string",
  "id" : "string",
  "ipAddress" : "string",
  "version" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.40. VRA

APIs for managing vRealize Automation

3.40.1. Get all existing vRealize Automation instances

GET /v1/vras
Responses
HTTP Code Description Schema

200

OK

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 200
{
  "elements" : [ {
    "id" : "string",
    "loadBalancerFqdn" : "vra-lb.vrack.vsphere.local",
    "loadBalancerIpAddress" : "10.0.0.15",
    "nodes" : [ {
      "fqdn" : "vrealize.node.vrack.vsphere.local",
      "id" : "string",
      "ipAddress" : "10.0.0.17",
      "type" : "MASTER, REPLICA, DATA, REMOTE_COLLECTOR, WORKER"
    } ],
    "status" : "ACTIVE, ERROR",
    "version" : "8.1.0-13036238"
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}

3.41. VRLI

APIs for managing vRealize Log Insight

3.41.1. Gets vRealize Log Insight integration status for workload domains

GET /v1/vrli/domains
Responses
HTTP Code Description Schema

200

OK

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 200
{
  "elements" : [ {
    "domainId" : "string",
    "status" : "ENABLED, DISABLED, IN_PROGRESS"
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}

3.41.2. Connects vRealize Log Insight with domain

PUT /v1/vrli/domains
Parameters
Type Name Description Schema

Body

domainIntegration
required

Domain Integration Specification

Responses
HTTP Code Description Schema

200

OK

202

Accepted

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/vrli/domains
Request body
{
  "domainId" : "string",
  "status" : "ENABLED, DISABLED, IN_PROGRESS"
}
Example HTTP response
Response 200
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}

3.41.3. Get all existing vRealize Log Insight instances

GET /v1/vrlis
Responses
HTTP Code Description Schema

200

OK

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 200
{
  "elements" : [ {
    "id" : "string",
    "loadBalancerFqdn" : "load-balancer.vrack.vsphere.local",
    "loadBalancerIpAddress" : "10.0.0.15",
    "nodes" : [ {
      "fqdn" : "vrealize.node.vrack.vsphere.local",
      "id" : "string",
      "ipAddress" : "10.0.0.17",
      "type" : "MASTER, REPLICA, DATA, REMOTE_COLLECTOR, WORKER"
    } ],
    "status" : "ACTIVE, ERROR",
    "version" : "4.8.0-13036238"
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}

3.42. VROPs

APIs for managing vRealize Operations

3.42.1. Gets vRealize Operations integration status for workload domains

GET /v1/vrops/domains
Description

Retrieves the existing domains and their connection status with vRealize Operations.

Responses
HTTP Code Description Schema

200

OK

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 200
{
  "elements" : [ {
    "domainId" : "string",
    "status" : "ENABLED, DISABLED, IN_PROGRESS"
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}

3.42.2. Connect/disconnect workload domains with vRealize Operations

PUT /v1/vrops/domains
Description

Connects/disconnects a workload domains with vRealize Operations

Parameters
Type Name Description Schema

Body

domainIntegration
required

Domain Integration Specification

Responses
HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/vrops/domains
Request body
{
  "domainId" : "string",
  "status" : "ENABLED, DISABLED, IN_PROGRESS"
}
Example HTTP response
Response 200
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.42.3. Get all existing vRealize Operations instances

GET /v1/vropses
Responses
HTTP Code Description Schema

200

OK

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 200
{
  "elements" : [ {
    "id" : "string",
    "loadBalancerFqdn" : "string",
    "loadBalancerIp" : "string",
    "nodes" : [ {
      "fqdn" : "vrealize.node.vrack.vsphere.local",
      "id" : "string",
      "ipAddress" : "10.0.0.17",
      "password" : "string",
      "status" : "ACTIVE",
      "type" : "MASTER, REPLICA, DATA, REMOTE_COLLECTOR, WORKER",
      "username" : "user"
    } ],
    "status" : "string",
    "version" : "string"
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}

3.43. VRSLCM

APIs for managing vRealize Suite Lifecycle Manager

3.43.1. Get the existing vRealize Suite Lifecycle Manager

GET /v1/vrslcm
Description

Gets the complete information about the existing vRealize Suite Lifecycle Manager instance.

Responses
HTTP Code Description Schema

200

OK

404

Not Found

No Content

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 200
{
  "fqdn" : "string",
  "id" : "string",
  "ipAddress" : "string",
  "status" : "string",
  "version" : "string"
}

3.43.2. Rollback vRealize Suite Lifecycle Manager after unsuccessful deployment

DELETE /v1/vrslcm
Description

Triggers the vRealize Suite Lifecycle Manager rollback operation and returns an URL in the headers to track the operation status.

Responses
HTTP Code Description Schema

202

Accepted

405

Method Not Allowed

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 202
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 405
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.43.3. Deploy vRealize Suite Lifecycle Manager

POST /v1/vrslcms
Description

Triggers the vRealize Suite Lifecycle Manager deployment operation and returns an URL in the headers to track the operation status.

Parameters
Type Name Description Schema

Body

vrslcmPublicDeploymentSpec
required

vRealize Suite Lifecycle Manager Deployment Specification

Responses
HTTP Code Description Schema

202

Accepted

400

Bad Request

405

Method Not Allowed

500

Internal Server Error

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/vrslcms
Request body
{
  "apiPassword" : "string",
  "fqdn" : "vrslcm.vrack.vsphere.local",
  "nsxtStandaloneTier1Ip" : "string",
  "sshPassword" : "string"
}
Example HTTP response
Response 202
{
  "completionTimestamp" : "string",
  "creationTimestamp" : "string",
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "isCancellable" : true,
  "name" : "string",
  "resolutionStatus" : "Can have only one of the two values: RESOLVED or UNRESOLVED",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "sans" : [ "string" ],
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : "string",
    "creationTimestamp" : "string",
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "sans" : [ "string" ],
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "subTasks" : [ {
      "completionTimestamp" : "string",
      "creationTimestamp" : "string",
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "sans" : [ "string" ],
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : "string",
        "creationTimestamp" : "string",
        "description" : "string",
        "errors" : [ "..." ],
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "subTasks" : [ "..." ],
      "type" : "string"
    } ],
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 405
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.43.4. Get all existing vRealize Suite Lifecycle Manager instances

GET /v1/vrslcms
Responses
HTTP Code Description Schema

200

OK

Consumes
  • application/json

Produces
  • application/json

Example HTTP response
Response 200
{
  "elements" : [ {
    "fqdn" : "string",
    "id" : "string",
    "ipAddress" : "string",
    "status" : "string",
    "version" : "string"
  } ],
  "pageMetadata" : {
    "pageNumber" : 0,
    "pageSize" : 0,
    "totalElements" : 0,
    "totalPages" : 0
  }
}

3.43.5. Validate the input specification for vRealize Suite Lifecycle Manager deployment

POST /v1/vrslcms/validations
Description

Triggers vRealize Suite Lifecycle Manager deployment specification validation workflow

Parameters
Type Name Description Schema

Body

vrslcmPublicDeploymentSpec
required

vRealize Suite Lifecycle Manager Deployment Specification

Responses
HTTP Code Description Schema

202

Accepted

400

Bad Request

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/vrslcms/validations
Request body
{
  "apiPassword" : "string",
  "fqdn" : "vrslcm.vrack.vsphere.local",
  "nsxtStandaloneTier1Ip" : "string",
  "sshPassword" : "string"
}
Example HTTP response
Response 202
{
  "additionalProperties" : {
    "string" : "string"
  },
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS, CANCELLATION_IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "nestedValidationChecks" : [ {
      "description" : "string",
      "errorResponse" : {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.43.6. Get the status of the validations for vRealize Lifecycle Manager deployment

GET /v1/vrslcms/validations/{id}
Description

Gets the status of given vRealize Suite Lifecycle Manager validation workflow by given validation id

Parameters
Type Name Description Schema

Path

id
required

vRealize validation id

string

Responses
HTTP Code Description Schema

200

OK

400

Bad Request

404

Not Found

Consumes
  • application/json

Produces
  • application/json

Example HTTP request
Request path
/v1/vrslcms/validations/string
Example HTTP response
Response 200
{
  "additionalProperties" : {
    "string" : "string"
  },
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS, CANCELLATION_IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "errorType" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "nestedValidationChecks" : [ {
      "description" : "string",
      "errorResponse" : {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "errorType" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "errorType" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "errorType" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

4. Definitions

4.1. AddOnInfo

AddOn contains bits to install/update the appropriate Cloud Foundation software components in your management domain or workload domain.

Name Description Schema

displayName
optional

Add On display name
Example : "string"

string

displayVersion
optional

Add On display version
Example : "string"

string

name
required

Component name
Example : "DELL-sample-Addon"

string

vendor
required

vendor
Example : "Dell"

string

version
required

Add on software version
Example : "2.0-1"

string

4.2. AdvancedOptions

Advanced Options used to add Cluster

Name Description Schema

evcMode
optional

EVC mode for new cluster, if needed
Example : "One among: INTEL_MEROM, INTEL_PENRYN, INTEL_NEALEM, INTEL_WESTMERE, INTEL_SANDYBRIDGE, INTEL_IVYBRIDGE, INTEL_HASWELL, INTEL_BROADWELL, INTEL_SKYLAKE, INTEL_CASCADELAKE, AMD_REV_E, AMD_REV_F, AMD_GREYHOUND_NO3DNOW, AMD_GREYHOUND, AMD_BULLDOZER, AMD_PILEDRIVER, AMD_STREAMROLLER, AMD_ZEN"

string

highAvailability
optional

High availability settings for the cluster
Example : HighAvailability

4.3. AliasSpec

Version Alias update Specification. This specification gets used in the Version Alias Update API.

Name Description Schema

aliases
required

Aliases for bundle component type and version.
Example : [ "string" ]

< string > array

forceUpdate
optional

Flag for force update version alias configuration.
Example : true

boolean

4.4. AuthenticatedResource

Represents the credential resource in the system

Name Description Schema

domainName
required

Domain name
Example : "string"

string

resourceId
required

Resource ID
Example : "string"

string

resourceIp
required

Resource IP address
Example : "string"

string

resourceName
required

Resource name
Example : "string"

string

resourceType
required

Resource type
Example : "One among: ESXI, VCENTER, PSC, NSX_MANAGER, NSX_CONTROLLER, NSX_EDGE, NSXT_MANAGER, NSXT_EDGE, VRLI, VROPS, VRA, WSA, VRSLCM, VXRAIL_MANAGER, BACKUP"

string

4.5. AutoRotateCredentialPolicy

Represents a auto-rotate policy for a credential

Name Description Schema

frequencyInDays
optional

Frequency in days
Example : 0

integer (int32)

nextSchedule
required

The timestamp at which auto-rotate for credential will run
Example : "string"

string

4.6. AutoRotateCredentialPolicyInputSpec

Represents password auto rotate config details

Name Description Schema

enableAutoRotatePolicy
optional

Enable or disable auto rotate policy
Example : true

boolean

frequencyInDays
optional

Frequency in days
Example : 0

integer (int32)

4.7. Avn

Defines an Application virtual Network (AVN) and its attributes

Name Description Schema

domainName
optional

AVN search domain
Example : "rainpole.io"

string

gateway
required

Gateway of the AVN subnet
Example : "192.168.31.1"

string

id
optional

The UUID of the AVN
Example : "3f39d4a1-78d2-11e8-af85-f1cf26258cdc"

string

mtu
required

MTU for the AVN
Example : 1600

integer (int32)

name
required

User provided name of the AVN
Example : "vRealize-AVN"

string

portGroupName
optional

Port group name identifying the AVN on the distributed switch
Example : "sfo-m01-seg01-pg"

string

regionType
required

The region type of AVN; X_REGION or REGION_A
Example : "REGION_A"

string

routerName
optional

Name of Tier-1 Gateway AVN is connected to
Example : "sfo-m01-ec01-t1-gw01"

string

subnet
required

Subnet assigned to the AVN
Example : "192.168.31.0"

string

subnetMask
required

Subnet mask for the network assigned to the AVN
Example : "255.255.255.0"

string

vlanId
optional

VLAN ID for the VLAN backed AVN
Example : 30

integer (int32)

4.8. AvnsCreationSpec

Defines the spec to create Application virtual Networks (AVNs) and its attributes

Name Description Schema

avns
required

The list of AVNs to be created
Example : [ "Avn" ]

< Avn > array

edgeClusterId
required

The UUID of the Edge Cluster to associate AVNs
Example : "3f39d4a1-78d2-11e8-af85-f1cf26258cdc"

string

4.9. BackupConfiguration

Backup configuration used to configure backup of NSX and SDDC manager

Name Description Schema

backupLocations
optional

List of backup locations
Example : [ "BackupLocation" ]

< BackupLocation > array

backupSchedules
optional

List of backup schedules
Example : [ "BackupSchedule" ]

< BackupSchedule > array

encryption
optional

Encryption passphrase used to encrypt and decrypt backup file
Example : Encryption

isConfigured
optional

Backup configuration status of both FTP server and passphrase
Example : true

boolean

4.10. BackupConfigurationSpec

Backup configuration Specification

Name Description Schema

backupLocations
optional

List of backup locations
Example : [ "BackupLocation" ]

< BackupLocation > array

backupSchedules
optional

List of backup schedules
Example : [ "BackupSchedule" ]

< BackupSchedule > array

encryption
optional

Encryption passphrase to encrypt and decrypt backup file
Example : Encryption

4.11. BackupLocation

Backup location to backup VCF resources

Name Description Schema

directoryPath
optional

Full directory path to save the backup files
Example : "string"

string

password
required

Backup server password
Example : "string"

string

port
optional

Port number for the backup server to connect
Example : 0

integer (int32)

protocol
required

Protocol to be used for transferring files
Example : "SFTP"

string

server
optional

IP address or FQDN of the backup server
Example : "string"

string

sshFingerprint
optional

SSH fingerprint of the backup server
Example : "string"

string

username
optional

Password for backup server username
Example : "string"

string

4.12. BackupResource

Element specification to trigger backup

Name Description Schema

resourceType
required

Resource type
Example : "SDDC_MANAGER"

string

4.13. BackupRetentionPolicy

Backup retention policy for SDDC Manager comprising three attributes. Backup files are deleted if they do not satisfy any of the three attributes.

Name Description Schema

numberOfDaysOfDailyBackups
optional

This attribute controls the number of daily backup files to retain, measured in days. Range 0 to 30 days. The system will filter the existing backup files, and retain one for every day for the specified number of days, counting back from the most recent backup.
Example : 20

integer (int32)

numberOfDaysOfHourlyBackups
optional

This attribute controls the number of hourly backup files to retain, measured in days. Range 0 to 14 days. The system will filter the existing backup files, and retain one for every hour for the specified number of days, counting back from the most recent backup.
Example : 10

integer (int32)

numberOfMostRecentBackups
required

This attribute controls the number of recent backup files to retain. Range 1 to 600 backup files.
Example : 15

integer (int32)

4.14. BackupSchedule

Backup schedule configuration

Name Description Schema

daysOfWeek
optional

List of days of the week to schedule backup
Example : "One among: SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY"

< string > array

frequency
required

Backup frequency
Example : "One among: WEEKLY, HOURLY"

string

hourOfDay
optional

Hour of the day to schedule backup
Example : 0

integer (int32)

minuteOfHour
optional

Minute of the hour to schedule backup
Example : 0

integer (int32)

resourceType
required

Resource type to configure backup schedule
Example : "SDDC_MANAGER"

string

retentionPolicy
optional

Backup retention policy
Example : BackupRetentionPolicy

takeBackupOnStateChange
optional

Enable/disable backups on state change. If enabled, SDDC Manager will take a backup after the successful completion of an operation that changes its state. This mode requires that scheduled backups be enabled.
Example : true

boolean

takeScheduledBackups
optional

Enable/disable scheduled backups
Example : true

boolean

4.15. BackupSpec

Backup Specification

Name Description Schema

elements
required

List of elements to be backed up
Example : [ "BackupResource" ]

< BackupResource > array

4.16. BackupTask

Name Description Schema

errors
optional

List of errors in case of a failure
Example : [ "Error" ]

< Error > array

id
optional

Backup task ID
Example : "string"

string

name
optional

Backup task name
Example : "string"

string

resources
optional

Backup resources, to get the backup details
Example : [ "Resource" ]

< Resource > array

status
optional

Backup task status
Example : "One among: IN_PROGRESS"

string

4.17. BaseAlias

Base Alias representation

Name Description Schema

aliases
required

List of Alias versions
Example : [ "string" ]

< string > array

version
required

Base version
Example : "string"

string

4.18. BaseCredential

Represents credentials of a resource in the system

Name Description Schema

accountType
optional

Account type
Example : "One among: USER, SYSTEM, SERVICE"

string

credentialType
optional

Credential type
Example : "One among: SSO, SSH, API, FTP, AUDIT"

string

password
optional

Password
Example : "string"

string

username
required

Username
Example : "string"

string

4.19. BaseImageDetails

BaseImage contains bits to install/update the appropriate Cloud Foundation software components in your management domain or workload domain.

Name Description Schema

displayName
required

BaseImage display name
Example : "7.0.0-0.0.30340198"

string

displayVersion
required

BaseImage display version
Example : "string"

string

releaseDate
optional

BaseImage release date
Example : Calendar

4.20. BaseImageInfo

BaseImage contains bits to install/update the appropriate Cloud Foundation software components in your management domain or workload domain.

Name Description Schema

details
optional

BaseImage details
Example : BaseImageDetails

version
required

BaseImage Version
Example : "7.0.0-0.0.30340198"

string

4.21. BasicAuthDetails

Basic auth details

Name Description Schema

status
required

Basic auth status
Example : "One among: ENABLED, DISABLED"

string

username
optional

Basic auth username
Example : "string"

string

4.22. BgpNeighbour

NSX Edge BGP Neighbour Specification. Deprecated as of 4.3, Bringup AVN has been deprecated. Instead use DAY-N AVN workflow.

Name Description Schema

autonomousSystem
optional

BGP neighbour autonomous system ID
Example : 0

integer (int64)

forwardingIp
optional

BGP forwarding IP address
Length : 7 - 15
Example : "192.168.0.123"

string

holdDownTimeSeconds
optional

BGP neighbour hold down time (in seconds)
Example : 0

integer (int32)

keepAliveTimeSeconds
optional

BGP neighbour keep alive time (in seconds)
Example : 0

integer (int32)

neighbourIp
required

BGP neighbour IP address
Length : 7 - 15
Example : "192.168.0.123"

string

password
required

BGP neighbour password
Example : "string"

string

protocolIp
optional

BGP protocol IP address
Length : 7 - 15
Example : "192.168.0.123"

string

weight
optional

BGP neighbour weight
Example : 0

integer (int32)

4.23. BgpPeerSpec

This specification contains configuration inputs required for BGP configuration for an uplink

Name Description Schema

asn
required

ASN of Peer
Example : 0

integer (int64)

ip
required

BGP Peer IP
Example : "string"

string

password
required

BGP Peer Password
Example : "string"

string

4.24. BootstrapSpec

Name Description Schema

federationName
optional

Example : "string"

string

memberJoinDetail
optional

Example : MemberDetail

4.25. Bundle

Bundle contains bits to install/update the appropriate Cloud Foundation software components in your management domain or workload domain.

Name Description Schema

components
optional

Bundle Components
Example : [ "BundleComponent" ]

< BundleComponent > array

description
optional

Bundle Description
Example : "string"

string

downloadStatus
required

Bundle Download Status
Example : "One among: PENDING, SCHEDULED, IN_PROGRESS, SUCCESSFUL, FAILED, RECALLED"

string

id
optional

Bundle ID
Example : "string"

string

isCompliant
optional

Is compliant with the current VCF version
Example : true

boolean

isCumulative
optional

Is Bundle Cumulative
Example : true

boolean

releasedDate
optional

Bundle Release Date
Example : "string"

string

severity
optional

Bundle Severity
Example : "One among: CRITICAL, IMPORTANT, MODERATE, LOW"

string

sizeMB
optional

Bundle Size in MB
Example : 0.0

number (double)

type
required

Bundle Type
Example : "One among: SDDC_MANAGER, VMWARE_SOFTWARE, VXRAIL"

string

vendor
optional

Bundle Vendor
Example : "string"

string

version
optional

Bundle Version
Example : "string"

string

4.26. BundleComponent

Bundle Software Component

Name Description Schema

description
optional

Bundle Component Description
Example : "string"

string

fromVersion
optional

Bundle Component’s from/source version before Upgrade
Example : "string"

string

id
optional

ID of Resource/Software Component
Example : "string"

string

imageType
required

Bundle Component Image Type
Example : "One among: PATCH, INSTALL"

string

releasedDate
optional

Bundle Component Release Date
Example : "string"

string

toVersion
optional

Bundle Component’s to/target version after Upgrade
Example : "string"

string

type
optional

Type of Resource/Software Component
Example : "string"

string

vendor
optional

Bundle Component Vendor
Example : "string"

string

4.27. BundleDownloadSpec

Bundle Download Specification. This specification gets used in the Bundle Download API

Name Description Schema

downloadNow
optional

Flag for enabling Download Now. If true, scheduledTimestamp is ignored
Example : true

boolean

scheduledTimestamp
optional

Bundle Download Scheduled Time
Example : "string"

string

4.28. BundleRecall

Bundle Recall model for collection of bundles that are recalled with their replacements if applicable.

Name Description Schema

recalledBundleIds
required

List of Bundle IDs that are recalled
Example : [ "string" ]

< string > array

replacementBundleIds
optional

List of Bundle IDs that act as replacement
Example : [ "string" ]

< string > array

replacementBundleStatus
required

Status of bundle replacement.
Example : "One among: NONE, PENDING, READY"

string

4.29. BundleUpdateSpec

Bundle Update Specification.

Name Description Schema

bundleDownloadSpec
optional

Bundle Download Specification.
Example : BundleDownloadSpec

compatibilitySetsFilePath
optional

Path to the software compatibility sets file
Example : "string"

string

4.30. BundleUploadSpec

Bundle Upload Specification. This specification is used in the Bundle Upload API

Name Description Schema

bundleFilePath
required

Bundle Upload File Path
Example : "string"

string

compatibilitySetsFilePath
optional

Path to the software compatibility sets file
Example : "string"

string

manifestFilePath
required

Bundle Upload Manifest File Path
Example : "string"

string

partnerExtensionSpec
optional

Partner extensions for bundle upload
Example : PartnerExtensionSpec

signatureFilePath
optional

Bundle Upload Signature File Path
Example : "string"

string

4.31. CPU

Name Description Schema

free
optional

Example : 0.0

number (double)

total
optional

Example : 0.0

number (double)

unallocated
optional

Example : 0.0

number (double)

unit
optional

Example : "GHZ"

enum (GHZ, GB, TB, HZ, KHZ, MHZ, THZ, B, PB)

used
optional

Example : 0.0

number (double)

4.32. Calendar

Name Description Schema

calendarType
optional

Example : "string"

string

firstDayOfWeek
optional

Example : 0

integer (int32)

lenient
optional

Example : true

boolean

minimalDaysInFirstWeek
optional

Example : 0

integer (int32)

time
optional

Example : "1970-01-01T00:00:00Z"

string (date-time)

timeInMillis
optional

Example : 0

integer (int64)

timeZone
optional

Example : TimeZone

weekDateSupported
optional

Example : true

boolean

weekYear
optional

Example : 0

integer (int32)

weeksInWeekYear
optional

Example : 0

integer (int32)

4.33. Capacity

Represents a usage and capacity information of a Resource

Name Description Schema

cpu
optional

Cpu metrics of the resource
Example : CpuInfo

memory
optional

Memory metrics of the resource
Example : MemoryInfo

storage
optional

Storage metrics of the resource
Example : StorageInfo

4.34. CapacitySummary

Name Description Schema

aggregatedCapacity
optional

Example : ResourceCapacity

domainCount
optional

Example : 0

integer (int32)

domainInfo
optional

Example : [ "DomainInfo" ]

< DomainInfo > array

domainTypeInfo
optional

Example : [ "DomainSummary" ]

< DomainSummary > array

4.35. Ceip

Defines VCF CEIP status and instance id

Name Description Schema

instanceId
optional

Instance Id of VCF
Example : "3f39d4a1-78d2-11e8-af85-f1cf26258cdc"

string

status
required

CEIP status
Example : "One among: ENABLED, DISABLED, ENABLING, DISABLING, ENABLING_FAILED, DISABLING_FAILED"

string

4.36. CeipUpdateSpec

Specification for CEIP state change

Name Description Schema

status
required

User provided CEIP operation
Example : "One among: ENABLE, DISABLE"

string

4.37. Certificate

Represents certificate and its attributes

Name Description Schema

expirationStatus
required

Certificate expiry status
Example : "One among: ACTIVE, ABOUT_TO_EXPIRE, EXPIRED"

string

getCertificateError
required

Error if certificate cannot be fetched
Example : "string"

string

isInstalled
required

Whether the certificate is installed or not
Example : true

boolean

issuedBy
required

The certificate authority that issued the certificate
Example : "string"

string

issuedTo
required

To whom the certificate is issued
Example : "string"

string

keySize
required

The keysize of the certificate
Example : "One among: 2048, 3072, 4096"

string

notAfter
required

The timestamp after which certificate is not valid
Example : "string"

string

notBefore
required

The timestamp before which certificate is not valid
Example : "string"

string

numberOfDaysToExpire
required

Number of days left for the certificate to expire
Example : 0

integer (int32)

pemEncoded
required

The PEM encoded certificate content
Example : "string"

string

publicKey
required

The public key of the certificate
Example : "string"

string

publicKeyAlgorithm
required

The public key algorithm of the certificate
Example : "One among: RSA"

string

serialNumber
required

The serial number of the certificate
Example : "string"

string

signatureAlgorithm
required

Algorithm used to sign the certificate
Example : "string"

string

subject
required

Complete distinguished name to which the certificate is issued
Example : "string"

string

subjectAlternativeName
required

The alternative names to which the certificate is issued
Example : [ "string" ]

< string > array

thumbprint
required

Thumbprint generated using certificate content
Example : "string"

string

thumbprintAlgorithm
required

Algorithm used to generate thumbprint
Example : "string"

string

version
required

The X.509 version of the certificate
Example : "string"

string

4.38. CertificateAuthority

The Certificate Authority (CA) details

Name Description Schema

commonName
optional

OpenSSL CA domain name
Example : "string"

string

country
optional

ISO 3166 country code where company is legally registered
Example : "string"

string

id
required

CA type. Only supports Microsoft and OpenSSL CAs
Example : "One among: OpenSSL, Microsoft"

string

locality
optional

The city or locality where company is legally registered
Example : "string"

string

organization
optional

The name under which company is legally registered
Example : "string"

string

organizationUnit
optional

Organization with which the certificate is associated
Example : "string"

string

serverUrl
optional

Microsoft CA server url
Example : "string"

string

state
optional

The full name of the state where company is legally registered
Example : "string"

string

templateName
optional

Microsoft CA server template name
Example : "string"

string

username
optional

Microsoft CA server username
Example : "string"

string

4.39. CertificateAuthorityCreationSpec

This specification contains Certificate Authority (CA) creation details

Name Description Schema

microsoftCertificateAuthoritySpec
optional

Microsoft Certificate Authority specification
Example : MicrosoftCertificateAuthoritySpec

openSSLCertificateAuthoritySpec
optional

OpenSSL Certificate Authority specification
Example : OpenSSLCertificateAuthoritySpec

4.40. CertificateOperationSpec

This specification contains certificate operation request details

Name Description Schema

operationType
required

The Certificates operation type
Example : "One among: INSTALL"

string

resources
optional

Resource(s) in a domain
Example : [ "Resource" ]

< Resource > array

4.41. CertificatesGenerationSpec

This specification contains certificates generation request details

Name Description Schema

caType
required

CA type. Only supports Microsoft and OpenSSL CAs
Example : "One among: OpenSSL, Microsoft"

string

resources
optional

Resource(s) in a domain
Example : [ "Resource" ]

< Resource > array

4.43. Cluster

Cluster representation

Name Description Schema

hosts
optional

List of hosts associated with the cluster
Example : [ "HostReference" ]

< HostReference > array

id
optional

ID of the cluster
Example : "string"

string

isDefault
optional

Status of the cluster if default or not
Example : true

boolean

isStretched
optional

Status of the cluster if Stretched or not
Example : true

boolean

name
optional

Name of the cluster
Example : "string"

string

primaryDatastoreName
optional

Name of the primary datastore
Example : "string"

string

primaryDatastoreType
optional

Storage type of the primary datastore
Example : "One among: VSAN, NFS, FC, VVOL_FC, VVOL_ISCSI, VVOL_NFS"

string

vdsSpecs
optional

Distributed switches to added to the cluster
Example : [ "VdsSpec" ]

< VdsSpec > array

4.44. ClusterCompactionSpec

This specification contains the parameters required to remove one or more vSphere hosts from existing cluster in a workload domain

Name Description Schema

force
optional

Force removal of vSphere host
Example : true

boolean

forceByPassingSafeMinSize
optional

Remove dead hosts from cluster, bypassing validations. Forced removal may result in permanent data loss. Review recovery plan with VMware Support before using.
Example : true

boolean

hosts
optional

List of vSphere hosts to be removed
Example : [ "HostReference" ]

< HostReference > array

4.45. ClusterCreationSpec

This specification contains the parameters required to add a cluster to an existing workload Domain

Name Description Schema

computeSpec
required

Cluster specification to be added to the domain
Example : ComputeSpec

domainId
required

ID of the domain to which the clusters will be added
Example : "string"

string

4.46. ClusterCriterion

Represents a criterion for querying the cluster

Name Description Schema

arguments
optional

Arguments required for a particular criterion
Example : {
"string" : "string"
}

< string, string > map

description
optional

Description of the criterion
Example : "string"

string

name
optional

Name of the criterion
Example : "One among: UNMANAGED_CLUSTERS_IN_VCENTER, UNMANAGED_CLUSTER_IN_VCENTER"

string

4.47. ClusterExpansionSpec

This specification contains the parameters required to add one or more vSphere hosts to an existing cluster in a workload domain

Name Description Schema

forceHostAdditionInPresenceofDeadHosts
optional

Use to add host to a cluster with dead host(s). Bypasses validation of disconnected hosts and vSAN cluster health. Review recovery plan VMware Support before using. False if omitted. This property is deprecated and it has no effect when using it.
Example : true

boolean

hostSpecs
required

List of vSphere host information from the free pool to consume in the workload domain
Example : [ "HostSpec" ]

< HostSpec > array

interRackExpansion
optional

Is inter-rack cluster(true for L2 non-uniform and L3 : At least one of management, uplink, Edge and host TEP networks is different for hosts of the cluster, false for L2 uniform : All hosts in cluster have identical management, uplink, Edge and host TEP networks) expansion. Required, only if Cluster contains NSX-T Edge Cluster
Example : true

boolean

skipThumbprintValidation
optional

Skip thumbprint validation for ESXi hosts during add host operation
Example : true

boolean

vsanNetworkSpecs
optional

vSAN Network Pool Spec
Example : [ "VSANNetworkSpec" ]

< VSANNetworkSpec > array

witnessSpec
optional

Witness host Info
Example : WitnessSpec

witnessTrafficSharedWithVsanTraffic
optional

Witness traffic to be shared with vSAN traffic
Example : true

boolean

4.48. ClusterProductSpec

Spec contains information for a vRealize product

Name Description Schema

adminCredentials
required

The credentials of the vRealize product Admin
Example : CredentialsSpec

certificateChain
optional

The certificate chain of the vRealize product.
Example : "string"

string

id
optional

The ID of the product
Example : "string"

string

loadBalancerFqdn
required

Fully Qualified Domain Name for the vRealize product load balancer
Example : "string"

string

nodes
required

The nodes of the vRealize product instance
Example : [ "ProductNode" ]

< ProductNode > array

version
required

The version of the vRealize product instance
Example : "string"

string

4.49. ClusterQueryResponse

Represents a cluster query response.

Name Description Schema

queryInfo
optional

Query info
Example : QueryInfo

result
optional

Query result
Example : PageOfCluster

4.50. ClusterReference

Represents a reference to the cluster

Name Description Schema

id
required

ID of the cluster
Example : "string"

string

4.51. ClusterSpec

This specification contains the parameters required to add a cluster to a workload domain

Name Description Schema

advancedOptions
optional

Advanced options used for cluster creation
Example : AdvancedOptions

clusterImageId
optional

ID of the Cluster Image to be used with the cluster
Example : "string"

string

datastoreSpec
required

Cluster storage configuration; e.g. VSAN, NFS,vVol(nfs/iscsi/fc)
Example : DatastoreSpec

hostSpecs
required

List of vSphere host information from the free pool to consume in the workload domain
Example : [ "HostSpec" ]

< HostSpec > array

name
required

Name of the new cluster that will be added to the specified workload domain
Example : "string"

string

networkSpec
required

Network configuration for the cluster
Example : NetworkSpec

skipThumbprintValidation
optional

Skip thumbprint validation for ESXi and VxRail Manager during add cluster/host operation
Example : true

boolean

vxRailDetails
optional

Contains the VxRail Manager details
Example : VxRailDetails

4.52. ClusterStretchSpec

This spec contains the parameters required to convert a Standard vSAN cluster to a Stretched cluster

Name Description Schema

hostSpecs
required

List of vSphere host information from the free pool to consume in the workload domain
Example : [ "HostSpec" ]

< HostSpec > array

isEdgeClusterConfiguredForMultiAZ
optional

Edge cluster configured for multi AZ
Example : true

boolean

secondaryAzOverlayVlanId
required

Secondary AZ Overlay Vlan Id
Example : 0

integer (int32)

vsanNetworkSpecs
optional

vSAN Network Pool Specs
Example : [ "VSANNetworkSpec" ]

< VSANNetworkSpec > array

witnessSpec
required

Witness host information
Example : WitnessSpec

witnessTrafficSharedWithVsanTraffic
optional

Witness traffic to be shared with vSAN traffic
Example : true

boolean

4.53. ClusterUnstretchSpec

This spec contains the parameters required to convert a Stretched cluster to a Standard vSAN cluster

4.54. ClusterUpdateSpec

This specification contains the parameters required to perform update operation on cluster

Name Description Schema

clusterCompactionSpec
optional

Parameters required to perform cluster compaction, optional otherwise
Example : ClusterCompactionSpec

clusterExpansionSpec
optional

Parameters required to perform cluster expansion, optional otherwise
Example : ClusterExpansionSpec

clusterStretchSpec
optional

Parameters required to perform Stretch operation on cluster, optional otherwise
Example : ClusterStretchSpec

clusterUnstretchSpec
optional

Parameters required to perform Unstretch operation on cluster, optional otherwise
Example : ClusterUnstretchSpec

markForDeletion
optional

Prepare the cluster for deletion
Example : true

boolean

prepareForStretch
optional

Prepare the cluster for stretch
Example : true

boolean

4.55. ComponentDetails

Component contains bits to install/update the appropriate Cloud Foundation software components in your management domain or workload domain.

Name Description Schema

displayName
required

Component display name
Example : "string"

string

displayVersion
optional

Component display version
Example : "string"

string

vendor
required

Component vendor
Example : "intel"

string

4.56. ComponentInfo

Component contains bits to install/update the appropriate Cloud Foundation software components in your management domain or workload domain.

Name Description Schema

details
required

Component details
Example : ComponentDetails

version
required

Component Version
Example : "1.3.2.8-1OEM.650.0.0.4598673"

string

4.57. ComputeSpec

This specification contains the parameters required to add each cluster to a workload domain

Name Description Schema

clusterSpecs
required

List of clusters to be added to workload domain
Example : [ "ClusterSpec" ]

< ClusterSpec > array

skipFailedHosts
optional

Skip failed ESXi Hosts and proceed with the rest of the ESXi Hosts during add Cluster. This is not supported for VCF VxRail.
Example : false

boolean

4.58. Cpu

Represents information about CPUs on a host

Name Description Schema

cores
optional

Number of CPU cores
Example : 0

integer (int32)

cpuCores
optional

Information about each of the CPU cores
Example : [ "CpuCore" ]

< CpuCore > array

frequencyMHz
optional

Total CPU frequency in MHz
Example : 0.0

number (double)

usedFrequencyMHz
optional

Used CPU frequency in MHz
Example : 0.0

number (double)

4.59. CpuCore

Represents a CPU core

Name Description Schema

frequencyMHz
optional

CPU frequency in MHz
Example : 0.0

number (double)

manufacturer
optional

Hardware manufacturer of the CPU
Example : "string"

string

model
optional

Hardware model of the CPU
Example : "string"

string

4.60. CpuInfo

Represents a cpu metric with used and total for a resource

Name Description Schema

total
optional

Total value
Example : FrequencyMetric

used
optional

Used value
Example : FrequencyMetric

4.61. Credential

Represents a credential and the resource to which it is associated with

Name Description Schema

accountType
required

Account type
Example : "One among: USER, SYSTEM, SERVICE"

string

autoRotatePolicy
optional

Configured auto-rotate policy of a credential. Empty if not configured
Example : AutoRotateCredentialPolicy

creationTimestamp
required

The timestamp at which credential was created
Example : "string"

string

credentialType
required

Credential type
Example : "One among: SSO, SSH, API, FTP, AUDIT"

string

id
required

Credential ID
Example : "string"

string

modificationTimestamp
required

The timestamp at which credential was last modified
Example : "string"

string

password
optional

Password
Example : "string"

string

resource
required

The resource which owns the credential
Example : AuthenticatedResource

username
required

Username
Example : "string"

string

4.62. CredentialsSpec

This specification contains information about credentials.

Name Description Schema

password
required

Password
Example : "string"

string

username
required

Username
Example : "string"

string

4.63. CredentialsSubTask

Represents the credentials sub-task in the system

Name Description Schema

creationTimestamp
optional

Credential sub-task creation timestamp
Example : "string"

string

credentialType
optional

Credential sub-task credential type
Example : "string"

string

dependentSubTasks
optional

List of dependent sub-tasks of the credential sub-task
Example : [ "CredentialsSubTask" ]

< CredentialsSubTask > array

description
optional

Credential sub-task description
Example : "string"

string

entityType
optional

Credential sub-task entity type
Example : "string"

string

errors
optional

List of errors in case of a failure
Example : [ "Error" ]

< Error > array

id
optional

Credential sub-task ID
Example : "string"

string

name
optional

Credential sub-task name
Example : "string"

string

newPassword
optional

Credential sub-task new password
Example : "string"

string

oldPassword
optional

Credential sub-task old password
Example : "string"

string

resourceName
optional

Resource name
Example : "string"

string

status
optional

Credential sub-task status
Example : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, USER_CANCELLED, INCONSISTENT"

string

username
optional

Credential sub-task username
Example : "string"

string

4.64. CredentialsTask

Represents the credentials task in the system

Name Description Schema

creationTimestamp
optional

Credential task creation timestamp
Example : "string"

string

errors
optional

List of errors in case of a failure
Example : [ "Error" ]

< Error > array

id
optional

Credential task ID
Example : "string"

string

isAutoRotate
optional

Is Credential task an auto rotate task
Example : true

boolean

name
optional

Credential task name
Example : "string"

string

status
optional

Credential task status
Example : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, USER_CANCELLED, INCONSISTENT"

string

subTasks
optional

List of credential sub-tasks of the credential task
Example : [ "CredentialsSubTask" ]

< CredentialsSubTask > array

type
optional

Credential task type
Example : "One among: UPDATE, ROTATE, REMEDIATE, UPDATE_AUTO_ROTATE_POLICY"

string

4.65. CredentialsUpdateSpec

This specification contains password operation request details

Name Description Schema

autoRotatePolicy
optional

Auto Rotate policy for set of credentials
Example : AutoRotateCredentialPolicyInputSpec

elements
required

List of resource credentials to be changed
Example : [ "ResourceCredentials" ]

operationType
required

Operation type
Example : "One among: UPDATE, ROTATE, REMEDIATE, UPDATE_AUTO_ROTATE_POLICY"

string

4.66. Csr

The Certificate Signing Request (CSR) details

Name Description Schema

csrEncodedContent
required

The CSR encoded content
Example : "string"

string

resource
required

Resource associated with CSR
Example : Resource

4.67. CsrGenerationSpec

This specification contains Certificate Signing Request (CSR) details

Name Description Schema

country
required

ISO 3166 country code where company is legally registered
Example : "string"

string

email
optional

Contact email address
Example : "string"

string

keyAlgorithm
required

The public key algorithm of the certificate
Example : "One among: RSA"

string

keySize
required

Certificate public key size
Example : "One among: 2048, 3072, 4096"

string

locality
required

The city or locality where company is legally registered
Example : "string"

string

organization
required

The name under which company is legally registered
Example : "string"

string

organizationUnit
required

Organization with which the certificate is associated
Example : "string"

string

state
required

The full name of the state where company is legally registered
Example : "string"

string

4.68. CsrsGenerationSpec

This specification contains CSR Generation request details

Name Description Schema

csrGenerationSpec
required

The CSR specification to generate CSR for resource(s)
Example : CsrGenerationSpec

resources
optional

Resource(s) in a domain
Example : [ "Resource" ]

< Resource > array

4.69. DataMetric

Represents a single metric representing digital data

Name Description Schema

unit
optional

Unit of the metric
Example : "B"

enum (B, KB, MB, GB, TB, PB)

value
optional

Value of the metric
Example : 0.0

number (double)

4.70. Datastore

Name Description Schema

capacity
optional

Example : 0.0

number (double)

datastoreName
optional

Example : "string"

string

datastoreType
optional

Example : "VSAN"

enum (VSAN, VMFS, NFS)

freeSpace
optional

Example : 0.0

number (double)

unallocated
optional

Example : 0.0

number (double)

unit
optional

Example : "GHZ"

enum (GHZ, GB, TB, HZ, KHZ, MHZ, THZ, B, PB)

used
optional

Example : 0.0

number (double)

4.71. DatastoreSpec

This specification contains cluster storage configuration

Name Description Schema

nfsDatastoreSpecs
optional

Cluster storage configuration for NFS
Example : [ "NfsDatastoreSpec" ]

< NfsDatastoreSpec > array

vmfsDatastoreSpec
optional

Cluster storage configuration for VMFS
Example : VmfsDatastoreSpec

vsanDatastoreSpec
optional

Cluster storage configuration for vSAN
Example : VsanDatastoreSpec

vvolDatastoreSpecs
optional

Cluster storage configuration for VVOL
Example : [ "VvolDatastoreSpec" ]

< VvolDatastoreSpec > array

4.72. DateTimeDetail

Name Description Schema

dateTime
optional

Example : "string"

string

timestamp
optional

Example : 0

integer (int64)

4.73. DepotAccount

VMware Depot Account Information

Name Description Schema

message
optional

Message explaining depot status
Example : "string"

string

password
required

Depot Password for Access
Example : "string"

string

status
optional

Depot Status
Example : "One among: DEPOT_UNKNOWN_HOST, DEPOT_NOT_AVAILABLE, DEPOT_USER_NOT_SET, DEPOT_INVALID_CREDENTIAL, UNKNOWN_FAILURE, DEPOT_CONNECTION_SUCCESSFUL"

string

username
required

Depot Username for Access
Example : "string"

string

4.74. DepotSettings

VMware Depot Settings. At least one of vmwareAccount or dellEmcSupportAccount value must be provided

Name Description Schema

dellEmcSupportAccount
optional

Dell EMC Support Account
Example : DepotAccount

vmwareAccount
optional

VMware Depot Account
Example : DepotAccount

4.75. Disk

Represents a disk

Name Description Schema

capacityMB
optional

Total capacity of the disk in MB
Example : 0.0

number (double)

diskType
optional

Type of the disk.
Example : "One among: HDD, FLASH"

string

manufacturer
optional

Hardware manufacturer of the disk
Example : "string"

string

model
optional

Hardware model of the disk
Example : "string"

string

4.76. DnsConfiguration

DNS Configuration

Name Description Schema

dnsServers
required

List of DNS servers
Example : [ "DnsServer" ]

< DnsServer > array

4.77. DnsServer

DNS server details

Name Description Schema

ipAddress
required

IP address/FQDN of DNS server
Example : "10.0.0.250"

string

isPrimary
required

Is DNS server primary
Example : true

boolean

4.78. DnsSpec

Spec contains parameters of Domain Name System

Name Description Schema

domain
required

Tenant domain
Example : "vmware.com"

string

nameserver
optional

Primary nameserver to be configured for vCenter/PSC/ESXi’s/NSX
Example : "172.0.0.4"

string

secondaryNameserver
optional

Secondary nameserver to be configured for vCenter/PSC/ESXi’s/NSX
Example : "172.0.0.5"

string

subdomain
required

Tenant Sub domain
Example : "vcf.vmware.com"

string

4.79. Domain

Represents a domain

Name Description Schema

capacity
optional

Capacity information for the workload domain
Example : Capacity

clusters
optional

List of clusters associated with the workload domain
Example : [ "ClusterReference" ]

< ClusterReference > array

id
optional

ID of the workload domain
Example : "string"

string

name
optional

Name of the workload domain
Example : "string"

string

nsxtCluster
optional

NSX-T cluster associated with the workload domain
Example : NsxTClusterReference

status
optional

Status of the workload domain
Example : "string"

string

type
optional

Type of the workload domain
Example : "string"

string

vcenters
optional

List of vCenters associated with the workload domain
Example : [ "VcenterReference" ]

< VcenterReference > array

4.80. DomainCreationSpec

This specification contains the parameters required to create a new workload domain

Name Description Schema

computeSpec
required

Specification representing the clusters to be added to the workload domain
Example : ComputeSpec

domainName
required

Name of the workload domain
Example : "string"

string

nsxTSpec
optional

Specification details for NSX-T configuration
Example : NsxTSpec

vcenterSpec
required

Specification details for vCenter
Example : VcenterSpec

4.81. DomainInfo

Name Description Schema

domainCapacity
optional

Example : ResourceCapacity

domainId
optional

Example : "string"

string

name
optional

Example : "string"

string

status
optional

Example : "string"

string

type
optional

Example : "string"

string

4.82. DomainIntegration

This specification contains information related to the existing vRealize Operations instance deployment

Name Description Schema

domainId
optional

The ID of the workload domain
Example : "string"

string

status
required

The association status of the workload domain
Example : "ENABLED, DISABLED, IN_PROGRESS"

enum (ENABLED, DISABLED)

4.83. DomainReference

Represents a domain reference

Name Description Schema

id
required

ID of the domain
Example : "string"

string

name
optional

Name of the domain
Example : "string"

string

4.84. DomainSummary

Name Description Schema

aggregatedCapacity
optional

Example : ResourceCapacity

domainCount
optional

Example : 0

integer (int32)

type
optional

Example : "string"

string

4.85. DomainUpdateSpec

Contains the parameters required to perform update operation on domain

Name Description Schema

clusterSpec
optional

Cluster Specification for the domain
Example : ClusterSpec

markForDeletion
optional

Enable deletion for the domain
Example : true

boolean

name
optional

Name of the domain
Example : "string"

string

nsxTSpec
optional

NSX-T Specification for the domain
Example : NsxTSpec

4.86. Domains

Name Description Schema

clusterNames
optional

Clusters for the operation
Example : [ "string" ]

< string > array

domainName
optional

Domain name
Example : "string"

string

4.87. DvsSpec

Spec contains parameters for DVS

Name Description Schema

dvsName
required

DVS Name
Example : "string"

string

isUsedByNsxt
optional

Flag indicating whether the DVS is used by NSX-T
Example : true

boolean

mtu
optional

DVS MTU (default value is 9000)
Minimum value : 1500
Maximum value : 9000
Example : 0

integer (int32)

networks
required

Types of networks in this portgroup
Example : "One among: VSAN, VMOTION, MANAGEMENT, UPLINK01, UPLINK02, X_REGION, REGION_SPECIFIC, NSXT_EDGE_TEP or any custom network types defined in networkSpecs"

< string > array

niocSpecs
optional

List of NIOC specs for networks
Example : [ "NiocSpec" ]

< NiocSpec > array

vmnics
required

Vmnics to be attached to the DVS
Example : [ "string" ]

< string > array

4.88. EdgeCluster

EdgeCluster representation

Name Description Schema

clusters
optional

List of clusters associated with the edge cluster
Example : [ "ClusterReference" ]

< ClusterReference > array

edgeNodes
optional

List of edge nodes associated with the edge cluster
Example : [ "EdgeNodeReference" ]

< EdgeNodeReference > array

id
optional

ID of the egde cluster
Example : "string"

string

name
optional

Name of the edge cluster
Example : "string"

string

nsxtCluster
optional

NSX-T cluster associated with the edge cluster
Example : NsxTClusterReference

4.89. EdgeClusterCreationSpec

This specification contains the parameters required to add a NSX-T edge cluster spanning multiple VI clusters.

Name Description Schema

asn
required

ASN to be used for the edge cluster
Example : 0

integer (int64)

edgeAdminPassword
required

Edge Password for admin user
Example : "string"

string

edgeAuditPassword
required

Edge Password for audit
Example : "string"

string

edgeClusterName
required

Name for the edge cluster.
Example : "string"

string

edgeClusterProfileSpec
required

Specifications for Edge Node
Example : NsxTEdgeClusterProfileSpec

edgeClusterProfileType
required

Type of edge cluster profile
Example : "One among: DEFAULT, CUSTOM"

string

edgeClusterType
required

Type of edge cluster
Example : "One among: NSX-T"

string

edgeFormFactor
required

Edge Form Factor
Example : "One among: XLARGE, LARGE, MEDIUM, SMALL"

string

edgeNodeSpecs
required

Specifications for Edge Node. Number of Edge Nodes cannot exceed 8 if HA mode is ACTIVE-ACTIVE and can not exceed 2 if HA mode is ACTIVE-STANDBY
Example : [ "NsxTEdgeNodeSpec" ]

< NsxTEdgeNodeSpec > array

edgeRootPassword
required

Edge Password for root user.
Example : "string"

string

internalTransitSubnets
optional

Subnet addresses in CIDR notation that are used to assign addresses to logical links connecting service routers and distributed routers
Example : [ "string" ]

< string > array

mtu
required

Maximum transmission unit
Example : 0

integer (int32)

tier0Name
required

Name for the T0 .
Example : "string"

string

tier0RoutingType
required

Tier 0 Routing type -eg eBGP, Static
Example : "One among: EBGP, STATIC"

string

tier0ServicesHighAvailability
required

High-availability Mode for Tier-0
Example : "One among: ACTIVE_ACTIVE, ACTIVE_STANDBY"

string

tier1Name
required

Name for the T1 .
Example : "string"

string

transitSubnets
optional

Transit subnet addresses in CIDR notation that are used to assign addresses to logical links connecting Tier-0 and Tier-1s
Example : [ "string" ]

< string > array

4.90. EdgeClusterExpansionSpec

This specification contains the parameters required to expand a NSX-T edge cluster.

Name Description Schema

additionalTier1Names
optional

List of names for the additional T1 to be created for expansion.
Example : [ "string" ]

< string > array

edgeNodeAdminPassword
required

Edge Password for admin user
Example : "string"

string

edgeNodeAuditPassword
required

Edge Password for audit user
Example : "string"

string

edgeNodeRootPassword
required

Edge Password for root user.
Example : "string"

string

edgeNodeSpecs
required

Specifications for Edge Node
Example : [ "NsxTEdgeNodeSpec" ]

< NsxTEdgeNodeSpec > array

4.91. EdgeClusterNsxtEntityCriterion

Represents a criterion for querying the Edge Cluster

Name Description Schema

arguments
optional

Arguments required for a particular criterion
Example : {
"string" : "string"
}

< string, string > map

description
optional

Description of the criterion
Example : "string"

string

name
optional

Name of the criterion
Example : "One among: TIER_0_GATEWAY_ASSOCIATED_WITH_EDGE_CLUSTER, TIER_1_GATEWAY_ASSOCIATED_WITH_EDGE_CLUSTER"

string

4.92. EdgeClusterShrinkageSpec

This specification contains the parameters required to shrink a NSX-T edge cluster.

Name Description Schema

edgeNodeIds
required

List of VCF Edge Node ID’s to be removed for shrinkage.
Example : [ "string" ]

< string > array

4.93. EdgeClusterUpdateSpec

This specification contains the parameters required to perform an update operation on an NSX-T edge cluster. The nested expansion and shrinkage specifications need to be populated in a mutually exclusive manner

Name Description Schema

edgeClusterExpansionSpec
optional

Parameters required to perform edge cluster expansion, optional otherwise
Example : EdgeClusterExpansionSpec

edgeClusterShrinkageSpec
optional

Parameters required to perform edge cluster shrinkage, optional otherwise
Example : EdgeClusterShrinkageSpec

operation
required

Edge cluster operation Type.
Example : "One among: EXPANSION, SHRINKAGE"

string

4.94. EdgeNodeReference

Represents a reference to the edge node

Name Description Schema

hostName
required

Hostname of the edge node
Example : "string"

string

id
required

ID of the edge node
Example : "string"

string

4.95. Encryption

Restore Specification

Name Description Schema

passphrase
required

Passphrase
Example : "string"

string

4.96. Endpoint

Represents an Endpoint in a Domain

Name Description Schema

type
required

Type of the Endpoint
Example : "One among: PSC, VCENTER, NSX_MANAGER, NSX_T_MANAGER, VRLI, VRA, VROPS, WSA, VRSLCM"

string

url
required

Url of the Endpoint
Example : "string"

string

4.97. Error

Error response containing a minor error code, a localized error message, a localized remediation message and optionally a reference token to correlate the error with the logs

Name Description Schema

arguments
optional

The arguments used to localize the message, Can be used by scripts to automate the error processing.
Example : [ "string" ]

< string > array

causes
optional

The underlying cause exceptions.
Example : [ "ErrorCause" ]

< ErrorCause > array

context
optional

The error context (e.g. the component where it occurred).
Example : {
"string" : "string"
}

< string, string > map

errorCode
optional
read-only

The minor error code
Example : "string"

string

errorType
optional
read-only

The error type
Example : "string"

string

message
optional

The localized error message
Example : "string"

string

nestedErrors
optional

The nested errors when the error is a composite one
Example : [ "Error" ]

< Error > array

referenceToken
optional

A reference token correlating the error with the relevant detailed error logs. Should be sent to the service provider when reporting issues.
Example : "string"

string

remediationMessage
optional

The localized remediation error message
Example : "string"

string

4.98. ErrorCause

Describes a single error cause

Name Description Schema

message
optional

The message describing the reason for the error
Example : "string"

string

type
optional

The type of the error cause
Example : "string"

string

4.99. ErrorCode

Name Description Schema

bundleName
optional

Example : "string"

string

code
optional

Example : "string"

string

component
optional

Example : "string"

string

4.100. ErrorCodePack

Name Description Schema

arguments
optional

Example : [ "object" ]

< object > array

bundleName
optional

Example : "string"

string

classLoader
optional

Example : ClassLoader

code
optional

Example : "string"

string

component
optional

Example : "string"

string

errorCode
optional

Example : ErrorCode

stringArguments
optional

Example : [ "string" ]

< string > array

4.101. ErrorResponse

Name Description Schema

arguments
optional

Example : [ "string" ]

< string > array

cause
optional

Example : [ "ErrorCause" ]

< ErrorCause > array

context
optional

Example : {
"string" : "string"
}

< string, string > map

errorCode
optional

Example : "string"

string

message
optional

Example : "string"

string

nestedErrors
optional

Example : [ "ErrorResponse" ]

< ErrorResponse > array

referenceToken
optional

Example : "string"

string

remediationMessage
optional

Example : "string"

string

4.102. FcSpec

Cluster storage configuration for VMFS on FC

Name Description Schema

datastoreName
required

Datastore name used for cluster creation
Example : "string"

string

4.103. FederationOperationError

Name Description Schema

error
optional

Example : "string"

string

errorPack
optional

suggestedRemedy
optional

Example : "string"

string

suggestedRemedyPack
optional

4.104. FederationTask

Name Description Schema

created
optional

Example : DateTimeDetail

errors
optional

Example : [ "FederationOperationError" ]

lastUpdated
optional

Example : DateTimeDetail

operation
optional

Example : "BOOTSTRAP"

enum (BOOTSTRAP, START, STOP, TEARDOWN, INVITE_MEMBER, EVICT_MEMBER, JOIN, HANDLE_JOIN, HANDLE_CONTROLLER_JOIN, LEAVE, HANDLE_LEAVE, HANDLE_CONTROLLER_LEAVE, HANDLE_CERT_ROTATION)

payload
optional

progressDetails
optional

Example : "string"

string

remoteOperationTask
optional

Example : FederationTask

status
optional

Example : "NOT_STARTED"

enum (NOT_STARTED, SUCCEEDED, FAILED, IN_PROGRESS, UNKNOWN)

taskId
optional

Example : "string"

string

4.105. Fips

Represents VCF FIPS mode status (enabled/disabled)

Name Description Schema

enabled
required

VCF FIPS mode status
Example : true

boolean

4.106. FrequencyMetric

Represents a single metric representing freequency

Name Description Schema

unit
optional

Unit of the metric
Example : "Hz"

enum (Hz, KHz, MHz, GHz, THz)

value
optional

Value of the metric
Example : 0.0

number (double)

4.107. HardwareSupportInfo

Hardware support contains base os, components, hardware support, addOn metadata to install/update the appropriate Cloud Foundation software components in your management domain or workload domain.

Name Description Schema

packages
required

Hardware support packages
Example : {
"string" : "HardwareSupportPackageInfo"
}

< string, HardwareSupportPackageInfo > map

4.108. HardwareSupportPackage

Configured Hardware Support Manager details

Name Description Schema

displayName
optional

Hardware Support Manager display name
Example : "string"

string

name
required

Hardware Support Manager Name
Example : "string"

string

pkg
required

Hardware Support Package
Example : PackageSpec

4.109. HardwareSupportPackageInfo

Hardware Support Package contains metadata regarding the package, version to install/update the appropriate Cloud Foundation software components in your management domain or workload domain.

Name Description Schema

pkg
required

Hardware support package name
Example : "string"

string

version
required

Hardware support package version
Example : "string"

string

4.110. HardwareSupportPackages

Available Hardware Support Manager details

Name Description Schema

displayName
required

Hardware Support Manager display name
Example : "string"

string

name
required

Hardware Support Manager Name
Example : "string"

string

packages
required

Hardware Support Packages
Example : [ "PackageSpec" ]

< PackageSpec > array

4.111. HardwareSupportSpec

Hardware Support Specification for Firmware Upgrade

Name Description Schema

name
required

Hardware Support Manager name
Example : "string"

string

packageSpec
required

Package for Hardware Support Managers
Example : PackageSpec

4.112. HealthChecks

Name Description Schema

certificateHealth
optional

Performs Certificate health checks.
Example : true

boolean

composabilityHealth
optional

Performs Composability Health checks.
Example : true

boolean

computeHealth
optional

Performs Compute Health checks.
Example : true

boolean

connectivityHealth
optional

Performs Connectivity health checks.
Example : true

boolean

dnsHealth
optional

Performs DNS Health checks.
Example : true

boolean

generalHealth
optional

Performs some generic health checks.
Example : true

boolean

hardwareCompatibilityHealth
optional

Performs HardwareCompatibilityHealth Health checks.
Example : true

boolean

ntpHealth
optional

Performs NTP checks for components.
Example : true

boolean

passwordHealth
optional

Performs Password Expiry checks.
Example : true

boolean

servicesHealth
optional

Performs checks on Services health.
Example : true

boolean

storageHealth
optional

Performs Storage Health checks.
Example : true

boolean

4.113. HealthSummary

Name Description Schema

bundleAvailable
optional

Indicate if bundle is available in file system.
Example : "string"

string

bundleName
optional

Name of the Support Bundle.
Example : "string"

string

completionTimestamp
optional

CompletionTimestamp.
Example : "string"

string

creationTimestamp
optional

CreationTimestamp.
Example : "string"

string

description
optional

Name of the Operation.
Example : "string"

string

id
optional

Id of the Support Bundle task.
Example : "string"

string

status
optional

Health summary collection status.
Example : "string"

string

4.114. HealthSummaryConfig

Name Description Schema

force
optional

Run SOS operations, even if there is a Workflow running.
Example : true

boolean

skipKnownHostCheck
optional

Skip known_hosts file for HealthSummary.
Example : true

boolean

4.115. HealthSummaryIncludeItems

Name Description Schema

summaryReport
optional

Collect Vcf Summary Reports
Example : true

boolean

4.116. HealthSummaryOption

Name Description Schema

config
optional

HealthSummary config
Example : HealthSummaryConfig

include
optional

Sos Additional Reports for Health Checks.
Example : HealthSummaryIncludeItems

4.117. HealthSummaryScope

Name Description Schema

domains
optional

Domains and Clusters for SOS operation.
Example : [ "Domains" ]

< Domains > array

includeAllDomains
optional

Include all domains for SOS operation.
Example : true

boolean

includeFreeHosts
optional

Include free hosts.
Example : true

boolean

4.118. HealthSummarySpec

Name Description Schema

healthChecks
optional

Sos Health Checks.
Example : HealthChecks

options
optional

Sos options for support health checks.
Example : HealthSummaryOption

scope
optional

Domain and cluster under which logs should be collected.
Example : HealthSummaryScope

4.119. HighAvailability

This specification contains high availability settings

Name Description Schema

enabled
required

Example : true

boolean

4.120. Host

Represents an Esxi host in the system

Name Description Schema

bundleRepoDatastore
optional

Bundle repositry datastore for this host
Example : "string"

string

cluster
optional

Information about the cluster this host is part of
Example : ClusterReference

compatibleStorageType
optional

Information about the host compatible storage type
Example : "string"

string

cpu
optional

Information about CPUs on the host
Example : CPU

Cpu

domain
optional

Information about the domain this host is part of
Example : DomainReference

esxiVersion
optional

ESXi software version of the host
Example : "string"

string

fqdn
optional

FQDN of the host
Example : "string"

string

hardwareModel
optional

Hardware model of the host
Example : "string"

string

hardwareVendor
optional

Hardware vendor of the host
Example : "string"

string

hybrid
optional

Information about the storage type of the host, true if the host is hybrid.
Example : true

boolean

id
optional

ID of the host
Example : "string"

string

ipAddresses
optional

Information about IP addresses assigned to the host
Example : [ "IpAddress" ]

< IpAddress > array

isPrimary
optional

Is the host a primary host in VxRail HCI Context
Example : true

boolean

memory
optional

Information about memory on the host
Example : Memory

networkpool
optional

Information about the network pool this host is part of
Example : NetworkPoolReference

physicalNics
optional

Information about physical NICs on the host
Example : [ "PhysicalNic" ]

< PhysicalNic > array

serialNumber
optional

Serial Number of the host
Example : OptionalOfstring

sshThumbprint
optional

SSH Thumbprint of the host
Example : OptionalOfstring

sslThumbprint
optional

SSL Thumbprint of the host
Example : OptionalOfstring

status
optional

Status of the host
Example : "One among: ASSIGNED, UNASSIGNED_USEABLE, UNASSIGNED_UNUSEABLE"

string

storage
optional

Information about storage on the host
Example : Storage

4.121. HostCommissionSpec

This specification contains the input to commission a host to VMware Cloud Foundation

Name Description Schema

fqdn
required

FQDN of the host
Example : "string"

string

networkPoolId
required

ID of the network pool to associate the host with
Example : "string"

string

networkPoolName
optional

Name of the network pool to associate the host with
Example : "string"

string

password
required

Password of the host
Example : "string"

string

sshThumbprint
optional

SSH thumbprint of the host
Example : "string"

string

sslThumbprint
optional

SSL thumbprint of the host
Example : "string"

string

storageType
required

Storage Type
Example : "One among: VSAN, NFS, VMFS_FC, VVOL"

string

username
required

Username of the host
Example : "string"

string

vvolStorageProtocolType
optional

vVol Storage Protocol Type
Example : "One among: ISCSI, NFS, FC"

string

4.122. HostCount

Name Description Schema

total
optional

Example : 0

integer (int32)

unallocated
optional

Example : 0

integer (int32)

used
optional

Example : 0

integer (int32)

4.123. HostCriterion

Represents a criterion for querying the host

Name Description Schema

arguments
optional

Arguments required for a particular criterion
Example : {
"string" : "string"
}

< string, string > map

description
optional

Description of the criterion
Example : "string"

string

name
optional

Name of the criterion
Example : "One among: HOST_COMPATIBLE_WITH_CLUSTER_USING_PNICS, UNMANAGED_HOSTS_IN_VCENTER, UNMANAGED_HOSTS_IN_HCIMGR"

string

4.124. HostDecommissionSpec

This specification contains host details required to decommission a host from VMware Cloud Foundation

Name Description Schema

fqdn
required

FQDN of the host
Example : "string"

string

4.125. HostNetworkSpec

This specification contains network details required when adding a vSphere host to a cluster

Name Description Schema

vmNics
optional

List of the vSphere host vmNics
Example : [ "VmNic" ]

< VmNic > array

4.126. HostQueryResponse

Represents a host query response.

Name Description Schema

queryInfo
optional

Query info
Example : QueryInfo

result
optional

Query result
Example : PageOfHost

4.127. HostReference

Represents an ESXi host reference

Name Description Schema

azName
optional

Fault domain name of the host
Example : "string"

string

fqdn
optional

FQDN of the host
Example : "string"

string

id
optional

ID of the host
Example : "string"

string

ipAddress
optional

IP address of the host
Example : "string"

string

vmNics
optional

VM NICs of the host
Example : [ "VMNicInfo" ]

< VMNicInfo > array

4.128. HostSpec

This specification contains information required to add vSphere host to a cluster

Name Description Schema

azName
optional

Availability Zone Name
(This is required while performing a stretched cluster expand operation)
Example : "string"

string

hostName
optional

Host name of the vSphere host
Example : "string"

string

hostNetworkSpec
optional

Network Details of the vSphere host
Example : HostNetworkSpec

id
required

ID of a vSphere host in the free pool
Example : "string"

string

ipAddress
optional

IP address of the vSphere host
Example : "string"

string

licenseKey
optional

License key of a vSphere host in the free pool
(This is required except in cases where the ESXi host has already been licensed outside of the VMware Cloud Foundation system)
Example : "string"

string

password
optional

SSH password of the vSphere host
Example : "string"

string

serialNumber
optional

Serial Number of the vSphere host
Example : "string"

string

sshThumbprint
optional

SSH thumbprint of the vSphere host
Example : "string"

string

username
optional

Username of the vSphere host
Example : "string"

string

4.129. HostVmknicSpec

Spec contains parameters for ESXi Host Vmknic

Name Description Schema

ipAddress
optional

Vmknic IP address
Length : 7 - 15
Example : "string"

string

macAddress
optional

Vmknic mac address
Length : 18
Example : "string"

string

portgroup
required

Portgroup
Example : "One among:VSAN, VMOTION, MANAGEMENT"

string

4.130. InventoryInfo

Name Description Schema

hostCount
optional

Example : HostCount

4.131. InvitationSpec

Name Description Schema

inviteeFqdn
optional

Example : "string"

string

inviteeRole
optional

Example : "CONTROLLER"

enum (CONTROLLER, MANAGER, MEMBER, NOT_JOINED)

tokenExpiryHours
optional

Example : 0.0

number (float)

4.132. IpAddress

Represents IP address

Name Description Schema

ipAddress
optional

IP address
Example : "string"

string

type
optional

Type of IP addresss
Example : "One among: MANAGEMENT, VSAN, VMOTION, NFS"

string

4.133. IpAddressPoolRangeSpec

This specification contains the parameters required to create an IP address range

Name Description Schema

end
required

The last IP Address of the IP Address Range
Example : "string"

string

start
required

The first IP Address of the IP Address Range
Example : "string"

string

4.134. IpAddressPoolSpec

This specification contains the parameters required to create or reuse an IP address pool.

Name Description Schema

description
optional

Description of the IP address pool
Example : "string"

string

ignoreUnavailableNsxtCluster
optional

Ignore unavailable NSX-T cluster(s) during IP pool spec validation
Example : true

boolean

name
required

Name of the IP address pool
Example : "string"

string

subnets
optional

List of IP address pool subnet specification
Example : [ "IpAddressPoolSubnetSpec" ]

4.135. IpAddressPoolSubnetSpec

This specification contains the parameters required to create an IP address pool subnet

Name Description Schema

cidr
required

The subnet representation, contains the network address and the prefix length
Example : "string"

string

gateway
required

The default gateway address of the network
Example : "string"

string

ipAddressPoolRanges
required

List of the IP allocation ranges. Atleast 1 IP address range has to be specified
Example : [ "IpAddressPoolRangeSpec" ]

4.136. IpAllocation

Defines an IP address with gateway and subnet

Name Description Schema

cidr
optional

Classless Inter-Domain Routing (CIDR)
Length : 10 - 18
Example : "172.0.0.0/24"

string

gateway
optional

Gateway
Length : 7 - 15
Example : "192.168.0.1"

string

ipAddress
required

IP Address
Length : 7 - 15
Example : "192.168.0.123"

string

subnet
optional

Subnet
Length : 7 - 15
Example : "255.255.255.252"

string

4.137. IpPool

Represents an IP Pool of a network in a network pool

Name Description Schema

end
optional

End IP address of the IP pool
Example : "string"

string

start
optional

Start IP address of the IP pool
Example : "string"

string

4.138. IpRange

Spec contains parameters for range of IP addresses

Name Description Schema

endIpAddress
required

End IP Address
Length : 7 - 15
Example : "192.168.0.128"

string

startIpAddress
required

Start IP Address
Length : 7 - 15
Example : "192.168.0.123"

string

4.139. LicenseKey

Defines a license key and its attributes

Name Description Schema

description
required

Description of the license key
Example : "string"

string

id
optional

The ID of the license key
Example : "string"

string

isUnlimited
optional

Indicates if the license key has unlimited usage
Example : true

boolean

key
required

The 29 alpha numeric character license key with hyphens
Example : "XX0XX-XX0XX-XX0XX-XX0XX-XX0XX "

string

licenseKeyUsage
optional

License key usage details
Example : LicenseKeyUsage

licenseKeyValidity
optional

License key validity details
Example : LicenseKeyValidity

productType
required

The type of the product to which the license key is applicable
Example : "One among: VCENTER, VSAN, SDDC_MANAGER, ESXI, NSXT, WCP, HORIZON_VIEW"

string

4.140. LicenseKeyUsage

Defines license key usage

Name Description Schema

licenseUnit
optional

Units of the license key
Example : "One among: CPUPACKAGE, INSTANCE, VMS, CCU, PLU, DESKTOPVM, SERVERVM, VM, SERVER, CORES, CONCURRENTUSER, NAMEDUSER"

string

remaining
optional

The remaining/free units of the license key
Example : 0

integer (int32)

total
optional

The total units of the license key
Example : 0

integer (int32)

used
optional

The consumed/used units of the license key
Example : 0

integer (int32)

4.141. LicenseKeyValidity

Defines license key validity details

Name Description Schema

expiryDate
optional

The license key expiry date
Example : "string"

string

licenseKeyStatus
optional

The validity status of the license key
Example : "One among: EXPIRED, ACTIVE, NEVER_EXPIRES"

string

4.142. LocalAccountPasswordInfo

Represents local account and its attributes

Name Description Schema

newPassword
required

The new password of the local account
Example : "string"

string

oldPassword
optional

The old password of the local account
Example : "string"

string

4.143. LocalUser

Represents Local User and its attributes

Name Description Schema

apiKey
optional

The API key of the user
Example : "string"

string

creationTimestamp
optional

The timestamp at which the user was created
Example : "string"

string

domain
optional

The domain of the user
Example : "string"

string

id
optional

The ID of the user
Example : "string"

string

isConfigured
optional

Flag indicating whether or not local account is configured
Example : true

boolean

name
required

The name of the user
Example : "string"

string

role
required

The role of the user
Example : RoleReference

type
required

The type of the user
Example : "One among: USER, GROUP, SERVICE"

string

4.144. LocalizableErrorCodePack

Name Description Schema

arguments
optional

Example : [ "object" ]

< object > array

component
optional

Example : "string"

string

defaultMessage
optional

Example : "string"

string

localBundle
optional

Example : "string"

string

messageKey
optional

Example : "string"

string

4.145. Logs

Name Description Schema

apiLogs
optional

Collect API Logs.
Example : true

boolean

esxLogs
optional

Collect ESX Logs.
Example : true

boolean

nsxLogs
optional

Collect NSX Logs.
Example : true

boolean

sddcManagerLogs
optional

Collect SDDC Manager Logs.
Example : true

boolean

systemDebugLogs
optional

Collect SystemDebug Logs.
Example : true

boolean

vcLogs
optional

Collect vCenter Logs.
Example : true

boolean

vmScreenshots
optional

Collect VMScreenshots.
Example : true

boolean

vraLogs
optional

Collect VRA Logs.
Example : true

boolean

vrliLogs
optional

Collect VRLi Logs.
Example : true

boolean

vropsLogs
optional

Collect VROps Logs.
Example : true

boolean

vrslcmLogs
optional

Collect VRSLCM Logs.
Example : true

boolean

vxrailManagerLogs
optional

Collect VXRailManager Logs.
Example : true

boolean

wcpLogs
optional

Collect WCP Logs.
Example : true

boolean

4.146. Manifest

LCM 2.0 Manifest model that represents the metadata of the VMware Cloud foundation components and releases that Lyfe cycle manager utilises.

Name Description Schema

creationTime
required

Creation time for the manifest e.g. 2020-06-08T02:20:15.844Z, in yyyy-MM-dd’T’HH:mm:ss[.SSS]XXX ISO 8601 format
Example : "string"

string

publishedDate
required

Date of publish of the manifest e.g. 2020-06-08T02:20:15.844Z, in yyyy-MM-dd’T’HH:mm:ss[.SSS]XXX ISO 8601 format
Example : "string"

string

recalledBundles
optional

Collection of bundles that are recalled and thier replacements, if applicable
Example : [ "BundleRecall" ]

< BundleRecall > array

releases
required

Releases of VCF in the ascending order of product version
Example : [ "Release" ]

< Release > array

sequenceNumber
required

Manifest sequence number which signifies an update in manifest
Example : 0

integer (int32)

version
required

Manifest version supported by VCF
Example : 0

integer (int32)

4.149. MapOfstringAndstring

Type : < string, string > map

4.150. MemberCapacityInfo

Name Description Schema

summary
optional

Example : CapacitySummary

4.151. MemberDetail

Name Description Schema

city
optional

Example : "string"

string

coordinate
optional

Example : PositionCoordinate

country
optional

Example : "string"

string

fqdn
optional

Example : "string"

string

role
optional

Example : "CONTROLLER"

enum (CONTROLLER, MANAGER, MEMBER, NOT_JOINED)

siteName
optional

Example : "string"

string

siteType
optional

Example : "DATACENTER"

enum (DATACENTER, ROBO, EDGE)

state
optional

Example : "string"

string

4.152. MemberFact

Name Description Schema

error
optional

federationName
optional

Example : "string"

string

memberDetail
optional

Example : MemberDetail

permissions
optional

Example : [ "BOOTSTRAP" ]

< enum (BOOTSTRAP, TEARDOWN, INVITE_MEMBER, EVICT, LIST_INVENTORY, JOIN, LEAVE) > array

4.153. MemberHealth

Name Description Schema

healthCode
optional

Example : "GREEN"

enum (GREEN, YELLOW, RED)

healthDetails
optional

Example : [ "string" ]

< string > array

4.154. MemberInfo

Name Description Schema

memberDetails
optional

Example : MemberDetail

memberHealth
optional

Example : MemberHealth

memberInventory
optional

Example : MemberInventory

memberLiveness
optional

Example : MemberLiveliness

4.155. MemberInventory

Name Description Schema

capacity
optional

Example : MemberCapacityInfo

createTime
optional

Example : "string"

string

creationTime
optional

Example : "string"

string

inventoryInfo
optional

Example : InventoryInfo

softwareInfo
optional

Example : MemberSoftwareInfo

4.156. MemberJoinSpec

Name Description Schema

commonName
optional

Example : "string"

string

controllerFqdn
optional

Example : "string"

string

joinToken
optional

Example : "string"

string

memberJoinDetail
optional

Example : MemberDetail

4.157. MemberLiveliness

Name Description Schema

livelinessCode
optional

Example : "GREEN"

enum (GREEN, YELLOW, RED)

livelinessDetails
optional

Example : [ "string" ]

< string > array

4.158. MemberSoftwareInfo

Name Description Schema

pendingUpdates
optional

Example : 0

integer (int32)

4.159. MembershipInvitation

Name Description Schema

controllerFqdn
optional

Example : [ "string" ]

< string > array

error
optional

invitationToken
optional

Example : "string"

string

inviteeFqdn
optional

Example : "string"

string

inviteeRole
optional

Example : "CONTROLLER"

enum (CONTROLLER, MANAGER, MEMBER, NOT_JOINED)

4.160. Memory

Represents information about memory on a host

Name Description Schema

totalCapacityMB
optional

Total memory in MB
Example : 0.0

number (double)

usedCapacityMB
optional

Used memory in MB
Example : 0.0

number (double)

4.161. MemoryInfo

Represents a memory metric with used and total for a resource

Name Description Schema

total
optional

Total value
Example : DataMetric

used
optional

Used value
Example : DataMetric

4.162. MessageBusServerInfo

Name Description Schema

brokerId
optional

Example : 0

integer (int32)

fqdn
optional

Example : "string"

string

hostAddress
optional

Example : "string"

string

port
optional

Example : 0

integer (int32)

4.163. MessageBusServerInfoList

Name Description Schema

messageBusServersInfo
optional

Example : [ "MessageBusServerInfo" ]

4.164. MessagePack

A messasge pack representing a localizable message and suitable for machine processing. Contains a message key unique in the scope of the specified component, as well as the arguments needed to generate the localized message.

Name Description Schema

arguments
optional

The arguments used to localize the message. Can be used by scripts to automate the response processing.
Example : [ "string" ]

< string > array

component
optional

The component the message belongs to
Example : "string"

string

message
optional

The localized message (if not provided by another property)
Example : "string"

string

messageKey
required

The machine-readable key of the message
Example : "string"

string

4.165. MicrosoftCertificateAuthoritySpec

This specification contains Microsoft CA configuration details

Name Description Schema

secret
required

CA server password
Example : "string"

string

serverUrl
required

CA server url
Example : "string"

string

templateName
required

CA server template name
Example : "string"

string

username
required

CA server username
Example : "string"

string

4.166. NasVolumeSpec

NAS configuration for NFS based cluster

Name Description Schema

path
required

Shared directory path used for NFS based cluster creation
Example : "string"

string

readOnly
required

Readonly is used to identify whether to mount the directory as readOnly or not
Example : true

boolean

serverName
required

NFS Server name used for cluster creation
Example : [ "string" ]

< string > array

userTag
optional

User tag used to annotate NFS share
Example : "string"

string

4.167. Network

Represents a network in a network pool

Name Description Schema

freeIps
optional

List of free IPs to use
Example : [ "string" ]

< string > array

gateway
optional

Gateway for the network
Example : "string"

string

id
optional

The ID of the network
Example : "string"

string

ipPools
optional

List of IP pool ranges to use
Example : [ "IpPool" ]

< IpPool > array

mask
optional

Subnet mask for the subnet of the network
Example : "string"

string

mtu
optional

MTU of the network
Example : 0

integer (int32)

subnet
optional

Subnet associated with the network
Example : "string"

string

type
optional

Network Type of the network
Example : "string"

string

usedIps
optional

List of used IPs
Example : [ "string" ]

< string > array

vlanId
optional

VLAN ID associated with the network
Example : 0

integer (int32)

4.168. NetworkDetailsSpec

This specification contains network parameters required for new virtual machines being added to a workload domain

Name Description Schema

dnsName
optional

DNS name of the virtual machine, e.g., vc-1.domain1.vsphere.local
Example : "string"

string

gateway
optional

IPv4 gateway the VM can use to connect to the outside world
Example : "string"

string

ipAddress
required

IPv4 address of the virtual machine
Example : "string"

string

subnetMask
optional

Subnet mask
Example : "string"

string

4.169. NetworkPool

Represents a network pool in the system

Name Description Schema

id
optional

The ID of the network pool
Example : "string"

string

name
optional

User specified name of the network pool
Example : "string"

string

networks
optional

Representing the networks associated with the network pool
Example : [ "Network" ]

< Network > array

4.170. NetworkPoolReference

Represents a network pool reference

Name Description Schema

id
required

ID of the network pool
Example : "string"

string

name
optional

Name of the network pool
Example : "string"

string

4.171. NetworkPoolUpdateSpec

Represents a network pool update spec

Name Description Schema

name
optional

Name of the Network Pool
Example : "string"

string

4.172. NetworkSpec

This specification contains cluster network configuration

Name Description Schema

nsxClusterSpec
required

NSX configuration to add to the cluster
Example : NsxClusterSpec

vdsSpecs
required

Distributed switches to add to the cluster
Example : [ "VdsSpec" ]

< VdsSpec > array

4.173. NfsDatastoreSpec

This specification contains cluster storage configuration for NFS

Name Description Schema

datastoreName
required

Datastore name used for cluster creation
Example : "string"

string

nasVolume
optional

NAS volume configuration for NFS based cluster
Example : NasVolumeSpec

4.174. NiocBandwidthAllocation

Network traffic per resource type

Name Description Schema

niocTrafficResourceAllocation
optional

Specify network traffic allocation for a resource
Example : NiocTrafficResourceAllocation

type
optional

Host infrastructure traffic type
Example : "One among: management, faultTolerance, vmotion, virtualMachine, iSCSI, nfs, hbr, vsan, vdp"

string

4.175. NiocBandwidthAllocationSpec

This specification contains network traffic per resource type

Name Description Schema

niocTrafficResourceAllocation
optional

DvsHostInfrastructureTrafficResourceAllocation
Example : NiocTrafficResourceAllocation

type
required

DvsHostInfrastructureTrafficResource resource type
Example : "string"

string

4.176. NiocSpec

Spec contains parameters for Network IO Control

Name Description Schema

trafficType
required

Traffic Type
Example : "One among:VSAN, VMOTION, VIRTUALMACHINE, MANAGEMENT, NFS, VDP, HBR, FAULTTOLERANCE, ISCSI"

string

value
required

NIOC Value
Example : "string"

string

4.177. NiocTrafficResourceAllocation

Specify network traffic allocation for a resource

Name Description Schema

limit
required

Example : 0

integer (int64)

reservation
required

Example : 0

integer (int64)

sharesInfo
required

Example : SharesInfo

4.178. NsxClusterSpec

This specification contains NSX configuration for cluster

Name Description Schema

nsxTClusterSpec
optional

NSX-T spec for the new cluster, required for NSX-T based workload domains, optional otherwise
Example : NsxTClusterSpec

4.179. NsxManagerSpec

This specification contains the parameters required to install and configure NSX Manager in a workload domain

Name Description Schema

name
required

Name of the NSX Manager virtual machine
Example : "string"

string

networkDetailsSpec
required

Network speciication details of the NSX Manager virtual machine
Example : NetworkDetailsSpec

4.180. NsxTCluster

NSX-T Cluster representation

Name Description Schema

domains
optional

Information about the domains associated with the cluster
Example : [ "DomainReference" ]

< DomainReference > array

id
optional

ID of the cluster
Example : "string"

string

isShareable
optional

Boolean to identify if the NSX-T cluster can be shared to create a new workload domain
Example : true

boolean

isShared
optional

Boolean to identify if the NSX-T cluster is shared among workload domains
Example : true

boolean

isVlcmCompatible
optional

Boolean to identify if the NSX-T cluster is compatible with Vlcm
Example : true

boolean

nodes
optional

Information about the NSX-T managers associated with the cluster
Example : [ "NsxTManager" ]

< NsxTManager > array

status
optional

NSX-T cluster status. To get NSX-T cluster status invoke nsxt-clusters query API with criterion NSXT_CLUSTERS_WITH_STATUS
Example : "One among: INITIALIZING, STABLE, DEGRADED, UNSTABLE, UNAVAILABLE, UNIDENTIFIED, UNDEFINED"

string

version
optional

Version of the NSX-T managers associated with the cluster
Example : "string"

string

vip
optional

VIP (Virtual IP Address) of the cluster
Example : "string"

string

vipFqdn
optional

FQDN for VIP of the cluster
Example : "string"

string

4.181. NsxTClusterReference

Represents an NSX-T Cluster reference

Name Description Schema

id
optional

ID of the NSX-T cluster
Example : "string"

string

vip
optional

VIP (Virtual IP Address) of the NSX-T cluster
Example : "string"

string

vipFqdn
optional

FQDN for VIP of the NSX-T cluster
Example : "string"

string

4.182. NsxTClusterSpec

This specification contains NSX-T configuration for a new cluster.

Name Description Schema

geneveVlanId
optional

Vlan id of Geneve
Example : 0

integer (int32)

ipAddressPoolSpec
optional

The IP address pool specification
Example : IpAddressPoolSpec

4.183. NsxTCriterion

Represents a criterion for querying the NSX-T cluster

Name Description Schema

arguments
optional

Arguments required for a particular criterion
Example : {
"string" : "string"
}

< string, string > map

description
optional

Description of the criterion
Example : "string"

string

name
optional

Name of the criterion
Example : "NSXT_CLUSTERS_WITH_STATUS"

string

4.184. NsxTEdgeClusterProfileSpec

This specification contains edge cluster profile configurations

Name Description Schema

bfdAllowedHop
required

BFD allowed Hop
Example : 0

integer (int64)

bfdDeclareDeadMultiple
required

BFD Declare Dead Multiple
Example : 0

integer (int64)

bfdProbeInterval
required

BFD Probe
Example : 0

integer (int64)

edgeClusterProfileName
required

Name for the edge cluster profile.
Example : "string"

string

standbyRelocationThreshold
required

Standby Relocation Threshold
Example : 0

integer (int64)

4.185. NsxTEdgeNodeSpec

This specification contains configuration inputs required to deploy and configure an edge node

Name Description Schema

clusterId
required

Cluster on which the edge needs to be deployed
Example : "string"

string

edgeNodeName
required

Edge Node Name
Example : "string"

string

edgeTep1IP
required

Edge TEP 1 IP
Example : "string"

string

edgeTep2IP
required

Edge TEP 2 IP
Example : "string"

string

edgeTepGateway
required

Edge TEP Gateway IP
Example : "string"

string

edgeTepVlan
required

Edge TEP VLAN
Example : 0

integer (int32)

firstNsxVdsUplink
optional

First NSX enabled VDS uplink for the Edge node
Example : "One among: uplink1, uplink2, uplink3, uplink4"

string

interRackCluster
required

Is inter-rack cluster(true for L2 non-uniform and L3 : At least one of management, uplink, Edge and host TEP networks is different for hosts of the cluster, false for L2 uniform : All hosts in cluster have identical management, uplink, Edge and host TEP networks)
Example : true

boolean

managementGateway
required

Management Gateway IP
Example : "string"

string

managementIP
required

Management Interface IP
Example : "string"

string

secondNsxVdsUplink
optional

Second NSX enabled VDS uplink for the Edge node
Example : "One among: uplink1, uplink2, uplink3, uplink4"

string

uplinkNetwork
optional

Specifications of Tier0 uplinks for the Edge Node
Example : [ "NsxTEdgeUplinkNetwork" ]

4.186. NsxTEdgeUplinkNetwork

This specification contains input parameters required to configure uplink network for NSX-T edge node VM

Name Description Schema

asnPeer
optional

ASN of Peer
Example : 0

integer (int64)

bgpPeerPassword
optional

BGP Peer Password
Example : "string"

string

bgpPeers
optional

List of BGP Peer configuration
Example : [ "BgpPeerSpec" ]

< BgpPeerSpec > array

peerIP
optional

BGP Peer IP
Example : "string"

string

uplinkInterfaceIP
required

Uplink IP
Example : "string"

string

uplinkVlan
required

Uplink Vlan
Example : 0

integer (int32)

4.187. NsxTManager

NSX-T Manager representation

Name Description Schema

fqdn
optional

FQDN of the manager
Example : "string"

string

id
optional

ID of the manager
Example : "string"

string

ipAddress
optional

IP address of the manager
Example : "string"

string

name
optional

NSX-T Manager VM name in vCenter
Example : "string"

string

4.188. NsxTQueryResponse

Represents a NSX-T cluster query response.

Name Description Schema

queryInfo
optional

Query info
Example : QueryInfo

result
optional

Query result
Example : PageOfNsxTCluster

4.189. NsxTSpec

This specification contains the parameters required to install and configure NSX-T in a workload domain

Name Description Schema

formFactor
optional

NSX manager form factor
Example : "string"

string

ipAddressPoolSpec
optional

The IP address pool specification
Example : IpAddressPoolSpec

licenseKey
required

NSX license value
Example : "string"

string

nsxManagerAdminPassword
optional

NSX manager admin password (basic auth and SSH)
Example : "string"

string

nsxManagerSpecs
required

Specification details of the NSX Manager virtual machine
Example : [ "NsxManagerSpec" ]

< NsxManagerSpec > array

vip
required

Virtual IP address which would act as proxy/alias for NSX-T Managers
Example : "string"

string

vipFqdn
required

FQDN for VIP so that common SSL certificates can be installed across all managers
Example : "string"

string

4.190. NsxtEdgeCluster

Nsxt Edge Cluster Upgrade Resource

Name Description Schema

id
optional

Edge cluster id
Example : "string"

string

name
optional

Edge cluster name
Example : "string"

string

resourceHealth
optional

Current resource health status
Example : "string"

string

upgradeStatus
optional

Upgrade status with respect to the bundle
Example : "string"

string

version
optional

The current version of the edge cluster.If a partial upgrade is done, this will be the least version among the edges in the edge cluster
Example : "string"

string

4.191. NsxtEdgeClusterUpgradeSpec

Host transport node cluster upgrade input

Name Description Schema

edgeClusterId
required

Resource ID of the edge transport node cluster
Example : "string"

string

edgeParallelUpgrade
optional

disable/enable parallel upgrade of edges within the cluster
Example : true

boolean

4.192. NsxtEdgeSpec

NSX-T edge specification. Deprecated as of 4.3, Bringup AVN has been deprecated. Instead use DAY-N AVN workflow.

Name Description Schema

asn
required

NSX-T edge asn
Example : 0

integer (int64)

bgpNeighbours
optional

NSX-T edge bgp neighbour
Example : [ "BgpNeighbour" ]

< BgpNeighbour > array

edgeAdminPassword
required

NSX-T edge admin password
Example : "string"

string

edgeAuditPassword
required

NSX-T edge audit password
Example : "string"

string

edgeClusterName
required

NSX-T edge cluster name
Example : "string"

string

edgeFormFactor
optional

NSX-T edge form factor
Example : "Oneamong:SMALL"

enum (Oneamong:SMALL, MEDIUM, LARGE, XLARGE)

edgeNodeSpecs
optional

NSX-T edge node specification
Example : [ "SddcNsxtEdgeNodeSpec" ]

edgeRootPassword
required

NSX-T edge root password
Example : "string"

string

edgeServicesSpecs
optional

NSX-T Edge Services specification
Example : SddcNsxtEdgeServicesSpec

tier0ServicesHighAvailability
optional

NSX-T tier0 service high availability
Example : "string"

string

4.193. NsxtHostCluster

Nsxt Host Cluster Upgrade Resource

Name Description Schema

availableHardwareSupportManagers
optional

Available Hardware Support Managers for Firmware upgrade
Example : [ "HardwareSupportPackages" ]

configuredHardwareSupportManagers
optional

Configured Hardware Support Managers for Firmware upgrade
Example : [ "HardwareSupportPackage" ]

domainId
optional

Id of the domain the Host cluster belongs to
Example : "string"

string

id
optional

Host cluster VCF cluster id
Example : "string"

string

name
optional

Cluster name
Example : "string"

string

primaryCluster
optional

Flag to determine if primary cluster for vLCM
Example : true

boolean

resourceHealth
optional

Current resource health status
Example : "string"

string

totalUnits
optional

Total number of hosts in the Host cluster
Example : 0

integer (int32)

upgradeStatus
optional

Upgrade status with respect to the bundle
Example : "string"

string

upgradedUnits
optional

Number of hosts which are already upgraded
Example : 0

integer (int32)

version
optional

The current version of the host node cluster.If a partial upgrade is done, this will be the least version among the hosts
Example : "string"

string

vlcmEnabled
optional

Example : true

boolean

4.194. NsxtHostClusterUpgradeSpec

Host trnasport node cluster upgrade input

Name Description Schema

hostClusterId
required

Resource ID of the host transport node cluster
Example : "string"

string

hostParallelUpgrade
optional

Flag for disabling/enabling parallel upgrade within the cluster
Example : true

boolean

liveUpgrade
optional

Flag for disabling/enabling live upgrade of hosts in the transportnode clusters
Example : true

boolean

4.195. NsxtInterface

NSX-T edge node interface specification. Deprecated as of 4.3, Bringup AVN has been deprecated. Instead use DAY-N AVN workflow.

Name Description Schema

interfaceCidr
required

NSX-T edge node interface CIDR
Example : "string"

string

name
required

NSX-T edge node interface name
Example : "string"

string

4.196. NsxtIpAddressPool

NSX-T IP address pool representation

Name Description Schema

availableIpAddresses
optional

The number of IP addresses available in the IP address pool
Example : 0

integer (int32)

blockSubnets
optional

The list of IP address pool block subnets
Example : [ "NsxtIpAddressPoolBlockSubnet" ]

description
optional

Description of the IP address pool
Example : "string"

string

name
optional

Name of the IP address pool
Example : "string"

string

staticSubnets
optional

The list of IP address pool static subnets
Example : [ "NsxtIpAddressPoolStaticSubnet" ]

totalIpAddresses
optional

The total number of IP addresses in the IP address pool
Example : 0

integer (int32)

4.197. NsxtIpAddressPoolBlockSubnet

NSX-T IP address pool block subnet representation

Name Description Schema

cidr
optional

The CIDR of the IP address subnet
Example : "string"

string

gatewayAssigned
optional

The boolean representing the state of the gateway assignment
Example : true

boolean

size
optional

The size of the IP address block
Example : 0

integer (int32)

4.198. NsxtIpAddressPoolRange

NSX-T IP address pool range representation

Name Description Schema

end
optional

The end of the IP address range
Example : "string"

string

start
optional

The start of the IP address range
Example : "string"

string

4.199. NsxtIpAddressPoolStaticSubnet

NSX-T IP address pool static subnet representation

Name Description Schema

cidr
optional

The CIDR of the IP address subnet
Example : "string"

string

gateway
optional

The gateway IP address
Example : "string"

string

ipAddressPoolRanges
optional

The list of IP address ranges
Example : [ "NsxtIpAddressPoolRange" ]

4.200. NsxtIpAddressPoolValidationSpec

Name Description Schema

ipAddressPoolSpec
required

Example : IpAddressPoolSpec

nsxtClusterId
required

Example : "string"

string

4.201. NsxtLogicalSegment

NSX-T edge node logical segment specification. Deprecated as of 4.3, Bringup AVN has been deprecated. Instead use DAY-N AVN workflow.

Name Description Schema

name
required

NSX-T edge node logical switch name
Example : "string"

string

networkType
required

NSX-T edge node logical segment network type
Example : "Oneamong:X_REGION"

enum (Oneamong:X_REGION, REGION_SPECIFIC)

4.202. NsxtManagerCluster

Nsxt Manager Cluster Upgrade Resource

Name Description Schema

id
optional

Manager cluster id
Example : "string"

string

name
optional

Manager cluster name
Example : "string"

string

resourceHealth
optional

Current resource health status
Example : "string"

string

upgradeStatus
optional

Upgrade status with respect to the bundle
Example : "string"

string

version
optional

The current version of the manager cluster.If a partial upgrade is done, this will be the least version among the managers in the manager cluster
Example : "string"

string

4.203. NsxtManagerSpec

Spec contains parameters for NSX-T manager

Name Description Schema

hostname
optional

NSX-T Manager hostname
Example : "string"

string

ip
optional

NSX-T Manager IP Address
Example : "string"

string

4.204. NsxtResources

Nsxt Upgrade Resources for an NSXT instance

Name Description Schema

bundleId
optional

Bundle id used to compute the upgradability
Example : "string"

string

domainId
optional

Domain id associated with the NSX-T cluster
Example : "string"

string

nsxtEdgeClusters
optional

List of edge clusters that are candidates for upgrade
Example : [ "NsxtEdgeCluster" ]

< NsxtEdgeCluster > array

nsxtHostClusters
optional

List of host clusters that are candidates for upgrade
Example : [ "NsxtHostCluster" ]

< NsxtHostCluster > array

nsxtManagerCluster
optional

Manager cluster that is a candidate for upgrade
Example : NsxtManagerCluster

nsxtUpgradeCoordinator
optional

Upgrade coordinator pertaining to the NSX-T instance
Example : NsxtUpgradeCoordinator

4.205. NsxtTransportZone

Spec contains required parameters for NSX-T Transport Zone

Name Description Schema

networkName
required

Transport zone network name
Example : "string"

string

zoneName
required

Transport zone name
Example : "string"

string

4.206. NsxtUpgradeCoordinator

NSXT Upgrade coordinator Upgrade Resource

Name Description Schema

enabledOn
optional

The IP of the manager on which UC is enabled
Example : "string"

string

id
optional

Upgrade coordinator id
Example : "string"

string

resourceHealth
optional

Current resource health status
Example : "string"

string

upgradeStatus
optional

Upgrade status with respect to the bundle
Example : "string"

string

version
optional

The current version of the UC
Example : "string"

string

4.207. NsxtUpgradeOptions

NSXT Upgrade options

Name Description Schema

isEdgeClustersUpgradeParallel
optional

Flag for disabling/enabling parallel upgrade of edge transportnode clusters
Example : true

boolean

isEdgeOnlyUpgrade
optional

Flag for performing edge-only upgrade
Example : true

boolean

isHostClustersUpgradeParallel
optional

Flag for disabling/enabling parallel upgrade of host transportnode clusters
Example : true

boolean

4.208. NsxtUpgradeUserInputSpec

Nsxt Upgrade User Input Specification

Name Description Schema

nsxtEdgeClusterUpgradeSpecs
optional

List of edge clusters information if explicit selection is to be made
Example : [ "NsxtEdgeClusterUpgradeSpec" ]

nsxtHostClusterUpgradeSpecs
optional

List of host clusters information if explicit selection is to be made
Example : [ "NsxtHostClusterUpgradeSpec" ]

nsxtId
optional

Identifier of the NSXT instance
Example : "string"

string

nsxtUpgradeOptions
optional

List of host clusters information if explicit selection is to be made
Example : NsxtUpgradeOptions

4.209. NtpConfiguration

NTP Configuration

Name Description Schema

ntpServers
required

List of NTP servers
Example : [ "NtpServer" ]

< NtpServer > array

4.210. NtpServer

NTP server details

Name Description Schema

ipAddress
required

IP address/FQDN of NTP server
Example : "10.0.0.250"

string

4.211. OpenSSLCertificateAuthoritySpec

This specification contains OpenSSL CA configuration details

Name Description Schema

commonName
required

OpenSSL CA domain name
Example : "string"

string

country
required

ISO 3166 country code where company is legally registered
Example : "string"

string

locality
required

The city or locality where company is legally registered
Example : "string"

string

organization
required

The name under which company is legally registered
Example : "string"

string

organizationUnit
required

Organization with which the certificate is associated
Example : "string"

string

state
required

The full name of the state where company is legally registered
Example : "string"

string

4.212. OptionalOfstring

Name Description Schema

present
optional

Example : true

boolean

4.213. Package

Hardware Support Package Specification

Name Description Schema

name
required

Package name
Example : "string"

string

version
required

Package version
Example : "string"

string

4.214. PackageSpec

Hardware Support Package Specification

Name Description Schema

name
required

Package name
Example : "string"

string

version
required

Package version
Example : "string"

string

4.215. Page

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "object" ]

< object > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.216. PageMetadata

Represents pageable elements pagination metadata

Name Description Schema

pageNumber
optional

Returns the current page number
Example : 0

integer (int32)

pageSize
optional

Returns the number of elements in the current page
Example : 0

integer (int32)

totalElements
optional

Returns the total number of elements
Example : 0

integer (int32)

totalPages
optional

Returns the total number of pages
Example : 0

integer (int32)

4.217. PageOfBundle

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "Bundle" ]

< Bundle > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.218. PageOfCertificate

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "Certificate" ]

< Certificate > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.219. PageOfCertificateAuthority

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "CertificateAuthority" ]

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.220. PageOfCluster

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "Cluster" ]

< Cluster > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.221. PageOfClusterCriterion

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "ClusterCriterion" ]

< ClusterCriterion > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.222. PageOfCredential

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "Credential" ]

< Credential > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.223. PageOfCredentialsTask

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "CredentialsTask" ]

< CredentialsTask > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.224. PageOfCsr

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "Csr" ]

< Csr > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.225. PageOfDomain

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "Domain" ]

< Domain > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.226. PageOfDomainIntegration

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "DomainIntegration" ]

< DomainIntegration > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.227. PageOfEdgeCluster

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "EdgeCluster" ]

< EdgeCluster > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.228. PageOfEdgeClusterNsxtEntityCriterion

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "EdgeClusterNsxtEntityCriterion" ]

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.229. PageOfEndpoint

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "Endpoint" ]

< Endpoint > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.230. PageOfHealthSummary

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "HealthSummary" ]

< HealthSummary > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.231. PageOfHost

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "Host" ]

< Host > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.232. PageOfHostCriterion

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "HostCriterion" ]

< HostCriterion > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.233. PageOfLicenseKey

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "LicenseKey" ]

< LicenseKey > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.234. PageOfNetwork

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "Network" ]

< Network > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.235. PageOfNetworkPool

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "NetworkPool" ]

< NetworkPool > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.236. PageOfNsxTCluster

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "NsxTCluster" ]

< NsxTCluster > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.237. PageOfNsxTCriterion

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "NsxTCriterion" ]

< NsxTCriterion > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.238. PageOfNsxtIpAddressPool

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "NsxtIpAddressPool" ]

< NsxtIpAddressPool > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.239. PageOfPsc

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "Psc" ]

< Psc > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.240. PageOfRelease

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "Release" ]

< Release > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.241. PageOfRole

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "Role" ]

< Role > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.242. PageOfSddcManager

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "SddcManager" ]

< SddcManager > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.243. PageOfSddcTask

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "SddcTask" ]

< SddcTask > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.244. PageOfSsoDomainEntity

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "SsoDomainEntity" ]

< SsoDomainEntity > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.245. PageOfSupportBundle

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "SupportBundle" ]

< SupportBundle > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.246. PageOfTask

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "Task" ]

< Task > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.247. PageOfUpgradable

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "Upgradable" ]

< Upgradable > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.248. PageOfUpgradablesClusterResource

Represents a page of elements of a Upgradables Cluster Resource

Name Description Schema

elements
optional

The list of Upgradables Cluster Resource elements included in this page
Example : [ "UpgradablesClusterResource" ]

4.249. PageOfUpgrade

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "Upgrade" ]

< Upgrade > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.250. PageOfUser

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "User" ]

< User > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.251. PageOfValidation

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "Validation" ]

< Validation > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.252. PageOfVasaProvider

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "VasaProvider" ]

< VasaProvider > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.253. PageOfVcenter

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "Vcenter" ]

< Vcenter > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.254. PageOfVcfService

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "VcfService" ]

< VcfService > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.255. PageOfVersionAliasesForBundleComponentType

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "VersionAliasesForBundleComponentType" ]

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.256. PageOfVra

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "Vra" ]

< Vra > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.257. PageOfVrli

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "Vrli" ]

< Vrli > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.258. PageOfVrops

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "Vrops" ]

< Vrops > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.259. PageOfVrslcm

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "Vrslcm" ]

< Vrslcm > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.260. PageOfWsa

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "Wsa" ]

< Wsa > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.261. PageOfobject

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "object" ]

< object > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.262. PageOfstring

Represents a page of elements of a single type

Name Description Schema

elements
optional

The list of elements included in this page
Example : [ "string" ]

< string > array

pageMetadata
optional

Pageable elements pagination metadata information
Example : PageMetadata

4.263. PartnerExtensionSpec

Specification for partner extensions. This specification is used in the Bundle Upload API

Name Description Schema

partnerBundleMetadataFilePath
optional

Path to the bundle metadata file. The metadata file can have details of multiple bundles
Example : "string"

string

partnerBundleVersion
optional

Version of partner bundle to be uploaded. Should match one of the bundle versions available in the partner bundle metadata file
Example : "string"

string

4.264. PatchBundle

Model for patch bundle in a release

Name Description Schema

bundleElements
required

Bundle elements of the patch bundle
Example : [ "string" ]

< string > array

bundleId
required

Bundle ID of the patch bundle
Example : "string"

string

bundleType
required

Bundle type of the patch bundle
Example : "string"

string

cumulativeFromVcfVersion
required

Minimum VCF version that this patch bundle can be directly applied on
Example : "string"

string

4.265. Personality

Personality contains bits to install/update the appropriate Cloud Foundation software components in your management domain or workload domain.

Name Description Schema

createdBy
optional

Personality created by
Example : "string"

string

description
required

Personality description
Example : "ESXi 7.0 Dell Personality"

string

displayName
required

Personality displayName
Example : "ESXi 7.0 Dell Personality"

string

imageChecksum
required

Personality image checksum
Example : "string"

string

imageSize
required

Personality image size
Example : "string"

string

kbArticles
optional

Personality kb articles
Example : URL

URL

personalityId
required

Personality id
Example : "string"

string

personalityName
required

Personality name
Example : "string"

string

releaseDate
optional

Personality Release date
Example : 0

integer (int64)

softwareInfo
required

Personality software spec
Example : SoftwareInfo

tags
optional

Personality tags
Example : [ "string" ]

< string > array

version
required

Personality Version
Example : "string"

string

vsphereExportedIsoPath
required

Personality depot path
Example : "string"

string

vsphereExportedJsonPath
required

Personality depot path
Example : "string"

string

vsphereExportedZipPath
required

Personality depot path
Example : "string"

string

4.266. PersonalitySpec

Personality Specification for vLCM based upgrade

Name Description Schema

hardwareSupportSpecs
optional

Hardware Support Specifications for Firmware upgrade
Example : [ "HardwareSupportSpec" ]

personalityId
required

Personality ID for vLCM based Upgrade
Example : "string"

string

4.267. PersonalityUploadSpec

Personality upload specification. This spec is used in personality upload API.

Name Description Schema

name
optional

Personality name
Example : "string"

string

uploadMode
required

Personality upload mode
Example : "RAW, RAW_WITH_FILE_UPLOAD_ID, REFERRED"

string

uploadSpecRawMode
optional

Personality upload spec for upload from RAW files
Example : PersonalityUploadSpecRaw

uploadSpecRawWithFileUploadIdMode
optional

Personality upload spec for upload using file upload id
Example : PersonalityUploadSpecRawWithFileUploadId

uploadSpecReferredMode
optional

Personality upload spec for upload from REFERRED vcenter cluster
Example : PersonalityUploadSpecReferred

4.268. PersonalityUploadSpecRaw

Personality upload specification for uploading the personality from raw files exported from avCenter cluster. This mode of uplaoding personality is useful when the source vCenter cluster isoutside the target VCF deployment.

Name Description Schema

personalityISOFilePath
optional

Personality ISO File Path
Example : "string"

string

personalityInfoJSONFilePath
required

Personality Info JSON File Path
Example : "string"

string

personalityJSONFilePath
required

Personality JSON File Path
Example : "string"

string

personalityZIPFilePath
required

Personality Zip File Path
Example : "string"

string

4.269. PersonalityUploadSpecRawWithFileUploadId

Personality upload specification for uploading the personality from raw files exported from a vCenter cluster. This mode of uploading personality is useful when the source vCenter cluster is outside the target VCF deployment. User can upload files from a source location to SDDC Manager using v1/personalities/files API, which returns a file upload id. The id is then passed in this spec with Personality Upload Mode RAW_WITH_FILE_UPLOAD_ID.

Name Description Schema

fileUploadId
optional

Personality file upload id. This id is obtained by calling v1/personalities/files and uploading files into SDDC Manager
Example : "string"

string

4.270. PersonalityUploadSpecReferred

Personality upload specification for uploading the personality from a referred vCentercluster. This mode of uplaoding personality is useful when the source vCenter cluster isinternal to the target VCF deployment.

Name Description Schema

clusterId
required

Source cluster UUID from VCF inventory
Example : "string"

string

vCenterId
required

Example : "string"

string

vcenterId
optional

Example : "string"

string

4.271. PhysicalNic

Represents a physical NIC

Name Description Schema

deviceName
optional

Device name of the physical NIC
Example : "string"

string

macAddress
optional

Mac address of the physical NIC
Example : "string"

string

speed
optional

Speed in bytes of the physical NIC
Example : 0

integer (int64)

4.272. Portgroup

Portgroup associated with the vSphere Distributed Switch

Name Description Schema

activeUplinks
optional

List of active uplinks
Example : [ "string" ]

< string > array

name
required

Port group name
Example : "string"

string

portBindingType
optional

Port binding type
Example : "One among: STATIC, DYNAMIC, EPHEMERAL"

string

standbyUplinks
optional

List of standby uplinks
Example : [ "string" ]

< string > array

transportType
required

Port group transport type
Example : "One among: VSAN, VMOTION, MANAGEMENT, PUBLIC, NFS, VREALIZE, ISCSI, EDGE_INFRA_OVERLAY_UPLINK"

string

vlanId
optional

VLAN ID
Example : 0

integer (int32)

4.273. PortgroupSpec

This specification contains vCenter port group configurations

Name Description Schema

activeUplinks
optional

List of active uplinks associated with portgroup
Example : [ "string" ]

< string > array

name
required

Port group name
Example : "string"

string

transportType
required

Port group transport type
Example : "One among: VSAN, VMOTION, MANAGEMENT, PUBLIC, NFS, VREALIZE, ISCSI, EDGE_INFRA_OVERLAY_UPLINK"

string

4.274. PositionCoordinate

Name Description Schema

latitude
optional

Example : 0.0

number (double)

longitude
optional

Example : 0.0

number (double)

4.275. PrecheckSpec

Precheck Specification. This specification gets used in the Precheck API

Name Description Schema

bundleId
optional

If specified, indicate the bundle applicability in the result
Example : "string"

string

mode
optional

If specified, indicates the mode of the execution. Supported modes are UPGRADE and RECOVERY. UPGRADE is default mode. Specify RECOVERY for the Inventory Consistency Checks
Example : "string"

string

resources
required

List of resources for Precheck supported type DOMAIN, CLUSTER
Example : [ "Resource" ]

< Resource > array

4.276. ProductNode

Spec contains information for a vRealize product node

Name Description Schema

fqdn
required

The Fully Qualified Domain Name for the vRealize node (virtual appliance)
Example : "vrops.vrack.vsphere.local"

string

password
required

The password for a root user of vRealize appliance
Example : "string"

string

type
required

The type of the vRealize product node
Example : "MASTER, REPLICA, DATA, REMOTECOLLECTOR, WORKER"

enum (Oneamong:MASTER, REPLICA, DATA, REMOTECOLLECTOR, WORKER, PRIMARY, SECONDARY)

username
required

The username for a root user of vRealize appliance
Example : "string"

string

4.277. ProductVersion

Details of the product/component for the release.

Name Description Schema

additionalMetadata
optional

any additional metadata
Example : "string"

string

name
required

Name of the product. e.g ESX
Example : "string"

string

publicName
required

Public name of the product, e.g VMware ESXi
Example : "string"

string

releaseURL
optional

URL for the release.
Example : URL

URL

version
required

Version for the product, e.g 6.7.0-11675023
Example : "string"

string

4.278. Psc

Psc representation

Name Description Schema

domain
optional

Information about the domain this PSC is part of
Example : DomainReference

fqdn
optional

FQDN of the Psc
Example : "string"

string

id
optional

ID of the Psc
Example : "string"

string

ipAddress
optional

IP Address of the Psc
Example : "string"

string

isReplica
optional

Indicates if the Psc is a replica
Example : true

boolean

ssoDomainName
optional

SSO Domain name of the Psc
Example : "string"

string

ssoSubDomainName
optional

SSO sub domain name of the Psc
Example : "string"

string

4.279. PscSpec

Spec contains parameters for deployment/configuration of Platform Services Controller

Name Description Schema

adminUserSsoPassword
required

Admin user sso passwordPassword needs to be a strong password with at least one Uppercase alphabet, one lowercase alphabet, one digit and one special character specified in braces [!$%^] and 8-20 characters in length,and 3 maximum identical adjacent characters!
Length : 8 - 20
Example : "string"

string

pscId
optional

PSC Name
Example : "string"

string

pscSsoSpec
optional

PSC SSO Domain
Example : PscSsoSpec

4.280. PscSsoSpec

Spec contains parameters for Platform Services Controller SSO

Name Description Schema

ssoDomain
optional

PSC SSO Domain,its mandatory for secondary region and if deploying 2 PSC’s
Example : "string"

string

4.281. QueryInfo

Represents the query info.

Name Description Schema

completed
optional

Example : true

boolean

errorResponse
optional

Error response if the query has failed
Example : Error

failure
optional

Example : true

boolean

processing
optional

Example : true

boolean

status
optional

Status of the query
Example : "string"

string

4.282. QueryResponseOfobject

Represents the concrete query response.

Name Description Schema

queryInfo
optional

Query info
Example : QueryInfo

result
optional

Query result
Example : PageOfobject

4.283. RefreshToken

This contains refresh token id for the user API access.

Name Description Schema

id
optional

Refresh token id that can be used to request new access token
Example : "string"

string

4.284. Release

Model for releases with their description and product version

Name Description Schema

bom
required

Release bill of materials
Example : [ "ProductVersion" ]

< ProductVersion > array

description
required

Release description with all major features.
Example : "string"

string

eol
optional

Release eol information e.g. 2020-06-08T02:20:15.844Z in yyyy-MM-dd’T’HH:mm:ss[.SSS]XXX ISO 8601 format
Example : "string"

string

minCompatibleVcfVersion
required

Minimum compatible VCF version, used to represent compatibility of SDDC Manager and VMware BOM components
Example : "string"

string

patchBundles
optional

List of patch bundles in this release
Example : [ "PatchBundle" ]

< PatchBundle > array

product
required

Name of the product e.g. "VCF"
Example : "string"

string

releaseDate
required

Release date e.g. 2020-06-08T02:20:15.844Z in yyyy-MM-dd’T’HH:mm:ss[.SSS]XXX ISO 8601 format
Example : "string"

string

updates
optional

Collection of release updates
Example : [ "ReleaseUpdate" ]

< ReleaseUpdate > array

version
required

Version of the release
Example : "string"

string

4.285. ReleaseUpdate

Update to a given release

Name Description Schema

baseProductVersion
required

Base product version for the release
Example : "string"

string

description
required

Description of the release update
Example : "string"

string

id
required

Release version
Example : "string"

string

productName
required

Product name for which the release update is provided
Example : "string"

string

releaseDate
required

Release date e.g. 2020-06-08T02:20:15.844Z in yyyy-MM-dd’T’HH:mm:ss[.SSS]XXX ISO 8601 format
Example : "string"

string

releaseUpdateURL
optional

URL to the release update
Example : URL

URL

4.286. RemoteResponsePayload

Name Description Schema

assignedBrokerId
optional

Example : 0

integer (int32)

assignedZkId
optional

Example : 0

integer (int32)

mbServers
optional

srServers
optional

zkServers
optional

4.287. RemoteSiteSpec

Spec contains parameters for Remote site products

Name Description Schema

pscAddress
optional

Remote region vCenter address
Example : "string"

string

sslThumbprint
optional

Remote region vCenter SSL thumbprint (SHA256)
Example : "string"

string

vcCredentials
optional

Remote region vCenter credentials
Example : SddcCredentials

4.288. Resource

Represents the resource in the system

Name Description Schema

fqdn
optional

Resource FQDN
Example : "string"

string

name
optional

Name of the resource
Example : "string"

string

resourceId
required

Resource ID
Example : "string"

string

sans
optional

Subject alternative name(s)
Example : [ "string" ]

< string > array

type
required

Resource type
Example : "string"

string

4.289. ResourceCapacity

Name Description Schema

cpu
optional

Example : CPU

CPU

datastores
optional

Example : [ "Datastore" ]

< Datastore > array

hostCount
optional

Example : HostCount

memory
optional

Example : Memory

4.290. ResourceCredentials

Represents a resource along with its list of credentials to be changed.

Name Description Schema

credentials
required

Credentials of the resource
Example : [ "BaseCredential" ]

< BaseCredential > array

resourceId
optional

Resource ID
Example : "string"

string

resourceName
optional

Resource name
Example : "string"

string

resourceType
required

Authenticated Resource Type
Example : "One among: ESXI, VCENTER, PSC, NSX_MANAGER, NSX_CONTROLLER, NSX_EDGE, NSXT_MANAGER, NSXT_EDGE, VRLI, VROPS, VRA, WSA, VRSLCM, VXRAIL_MANAGER, BACKUP"

string

4.291. ResourcePoolSpec

Spec contains parameters for Resource Pool

Name Description Schema

cpuLimit
optional

CPU limit, default -1 (unlimited)
Example : 0

integer (int64)

cpuReservationExpandable
optional

Is CPU reservation expandable, default true
Example : true

boolean

cpuReservationMhz
optional

CPU reservation in Mhz
Example : 0

integer (int64)

cpuReservationPercentage
optional

CPU reservation percentage, from 0 to 100, default 0
Minimum value : 0
Maximum value : 100
Example : 0

integer (int32)

cpuSharesLevel
optional

CPU shares level, default 'normal'
Example : "custom"

enum (custom, high, low, normal)

cpuSharesValue
optional

CPU shares value, only required when shares level is 'normal'
Example : 0

integer (int32)

memoryLimit
optional

Memory limit, default -1 (unlimited)
Example : 0

integer (int64)

memoryReservationExpandable
required

Is Memory reservation expandable, default true
Example : true

boolean

memoryReservationMb
optional

Memory reservation in MB
Example : 0

integer (int64)

memoryReservationPercentage
optional

Memory reservation percentage, from 0 to 100, default 0
Minimum value : 0
Maximum value : 100
Example : 0

integer (int32)

memorySharesLevel
optional

Memory shares level. default 'normal'
Example : "custom"

enum (custom, high, low, normal)

memorySharesValue
optional

Memory shares value, only required when shares level is '0'
Example : 0

integer (int32)

name
required

Resource Pool name
Example : "string"

string

type
optional

Type of resource pool
Example : "management"

enum (management, compute, network)

4.292. ResourceUpgradeSpec

Resource Upgrade Specification

Name Description Schema

enableQuickboot
optional

Flag for requesting Quick Boot for ESXi upgrade
Example : true

boolean

personalitySpec
optional

Personality Specifications for vLCM based upgrade
Example : PersonalitySpec

resourceId
required

Resource ID for Upgrade
Example : "string"

string

scheduledTimestamp
optional

Upgrade Scheduled Time
Example : "string"

string

shutdownVms
optional

If Resource Type is UNASSIGNED_HOST, set flag for enabling shutting down VM’s before Upgrade
Example : true

boolean

toVersion
optional

If Resource Type is UNASSIGNED_HOST, set the target version for Upgrade
Example : "string"

string

upgradeNow
optional

Flag for enabling Upgrade Now. If true, scheduledTimestamp is ignored
Example : true

boolean

4.293. RestoreSpec

Restore Specification

Name Description Schema

backupFile
required

Backup file name
Example : "string"

string

elements
required

List of elements to be restored
Example : [ "BackupResource" ]

< BackupResource > array

encryption
required

Encryption
Example : Encryption

4.294. Role

Represents role and its attributes

Name Description Schema

description
required

The description of the role
Example : "string"

string

id
required

The ID of the role
Example : "string"

string

name
required

The name of the role
Example : "string"

string

4.295. RoleReference

Represents a role reference

Name Description Schema

id
required

ID of the role
Example : "string"

string

4.296. RootCaCerts

Spec contains Root Certificate Authority parameters

Name Description Schema

alias
optional

Certificate alias
Example : "string"

string

certChain
optional

List of Base64 encoded certificates
Example : [ "string" ]

< string > array

4.297. SchemaRegistryServerInfo

Name Description Schema

hostAddress
optional

Example : "string"

string

port
optional

Example : 0

integer (int32)

protocol
optional

Example : "string"

string

4.298. SchemaRegistryServerInfoList

Name Description Schema

schemaRegistryServersInfo
optional

Example : [ "SchemaRegistryServerInfo" ]

4.299. SddcClusterSpec

Spec contains parameters for vCenter Cluster

Name Description Schema

clusterEvcMode
optional

vCenter cluster EVC mode
Example : "string"

string

clusterName
required

vCenter Cluster Name
Example : "string"

string

hostFailuresToTolerate
optional

Host failures to tolerate
Minimum value : 0
Maximum value : 3
Example : 0

integer (int32)

hostProfileComplianceCheckHour
optional

Hour at which the scheduled compliance check runs
Minimum value : 0
Maximum value : 23
Example : 0

integer (int32)

hostProfileComplianceCheckMinute
optional

Minute at which the scheduled compliance check runs
Minimum value : 0
Maximum value : 59
Example : 0

integer (int32)

hosts
optional

vCenter Cluster Host IDs
Example : [ "string" ]

< string > array

personalityName
optional

Cluster Personality Name
Example : "string"

string

resourcePoolSpecs
optional

Resource Pool Specs
Example : [ "ResourcePoolSpec" ]

< ResourcePoolSpec > array

vmFolders
optional

Virtual Machine folders map
Example : "One among:MANAGEMENT, NETWORKING, EDGENODES"

< string, string > map

4.300. SddcCredentials

Credentials contains the username and password

Name Description Schema

password
required

Password
Example : "Admin!23"

string

username
required

Username
Example : "root"

string

4.301. SddcHostSpec

Spec contains parameters for Host

Name Description Schema

association
required

Host Association: Location/Datacenter
Example : "string"

string

credentials
required

Host Credentials
Example : SddcCredentials

hostname
required

Host Hostname
Length : 3 - 63
Example : "esx-1"

string

ipAddressPrivate
required

Host Private Management IP
Example : IpAllocation

key
optional

Host key
Example : "string"

string

serverId
optional

Host server ID
Example : "string"

string

sshThumbprint
optional

Host SSH thumbprint (RSA SHA256)
Example : "string"

string

sslThumbprint
optional

Host SSL thumbprint (SHA256)
Example : "string"

string

vSwitch
required

Example : "string"

string

vmknicSpecs
optional

List of Host Vmknic Spec
Example : [ "HostVmknicSpec" ]

< HostVmknicSpec > array

vswitch
optional

Example : "string"

string

4.302. SddcManager

SDDC Manager representation

Name Description Schema

basicAuthDetails
optional

Basic auth details
Example : BasicAuthDetails

domain
optional

Information about the domain this SDDC Manager is part of
Example : DomainReference

fqdn
optional

FQDN of the SDDC Manager
Example : "string"

string

id
optional

ID of the SDDC Manager
Example : "string"

string

ipAddress
optional

IP Address of the SDDC Manager
Example : "string"

string

version
optional

Version of the SDDC Manager
Example : "string"

string

4.303. SddcManagerInfo

SDDC Manager Information

Name Description Schema

fqdn
optional

FQDN of the SDDC Manager
Example : "string"

string

id
optional

ID of the SDDC Manager
Example : "string"

string

ipAddress
optional

IP Address of the SDDC Manager
Example : "string"

string

version
optional

Version of the SDDC Manager
Example : "string"

string

4.304. SddcManagerSpec

Client input parameters for SDDC Manager Virtual Machine

Name Description Schema

hostname
required

SDDC Manager Hostname
Length : 3 - 63
Example : "string"

string

ipAddress
required

SDDC Manager ip address
Length : 7 - 15
Example : "string"

string

licenseKey
required

SDDC Manager license key
Example : "string"

string

localUserPassword
optional

The local account is a built-in admin account in VCF that can be used in emergency scenarios. The password of this account must be at least 12 characters long. It also must contain at-least 1 uppercase, 1 lowercase, 1 special character specified in braces [!%@$^#?] and 1 digit. In addition, a character cannot be repeated more than 3 times consecutively.
Example : "string"

string

netmask
required

SDDC Manager netmask
Example : "string"

string

rootUserCredentials
required

Root user credentials for the SDDC Manager VM, UserName must be root. Password needs to be a strong password with at least one alphabet and one special character and at least 8 characters in length.
Example : SddcCredentials

secondUserCredentials
required

Second user credentials for the SDDC Manager VM, UserName must be vcf. Password needs to be a strong password with at least one alphabet and one special character and at least 8 characters in length.
Example : SddcCredentials

4.305. SddcNetworkSpec

Defines a network spec

Name Description Schema

activeUplinks
optional

Active Uplinks for teaming policy, specify uplink1 for failover_explicit VSAN Teaming Policy
Example : [ "string" ]

< string > array

excludeIpAddressRanges
optional

IP Addresse ranges to be excluded
Example : [ "string" ]

< string > array

excludeIpaddresses
optional

IP Addresses to be excluded
Example : [ "string" ]

< string > array

gateway
optional

Gateway
Length : 7 - 15
Example : "string"

string

includeIpAddress
optional

IP Addresses to be included
Example : [ "string" ]

< string > array

includeIpAddressRanges
optional

IP Addresse ranges to be included
Example : [ "IpRange" ]

< IpRange > array

mtu
required

MTU size
Length : 4
Example : "string"

string

networkType
required

Network Type
Example : "One among: VSAN, VMOTION, MANAGEMENT, UPLINK01, UPLINK02, X_REGION, REGION_SPECIFIC, NSXT_EDGE_TEP or any custom network type"

string

portGroupKey
optional

Portgroup key name
Example : "string"

string

standbyUplinks
optional

Standby Uplinks for teaming policy, specify uplink2 for failover_explicit VSAN Teaming Policy
Example : [ "string" ]

< string > array

subnet
optional

Subnet
Length : 7 - 15
Example : "string"

string

subnetMask
optional

Subnet Mask
Length : 7 - 15
Example : "string"

string

teamingPolicy
optional

Teaming Policy for VSAN and VMOTION network types, Default is loadbalance_loadbased
Example : "One among:loadbalance_ip, loadbalance_srcmac, loadbalance_srcid, failover_explicit, loadbalance_loadbased"

string

vlanId
required

VLAN Id
Length : 1 - 4
Example : "string"

string

4.306. SddcNsxtEdgeNodeSpec

NSX-T edge node specification. Deprecated as of 4.3, Bringup AVN has been deprecated. Instead use DAY-N AVN workflow.

Name Description Schema

edgeNodeHostname
required

NSX-T edge node fqdn
Example : "string"

string

edgeNodeName
required

NSX-T edge node name
Example : "string"

string

edgeVtep1Cidr
required

NSX-T edge node vtep 1 cidr
Example : "string"

string

edgeVtep2Cidr
required

NSX-T edge node vtep 2 cidr
Example : "string"

string

interfaces
required

NSX-T edge node interfaces
Example : [ "NsxtInterface" ]

< NsxtInterface > array

managementCidr
required

NSX-T edge node management cidr
Example : "string"

string

4.307. SddcNsxtEdgeServicesSpec

NSX-T Edge Services Specification. Deprecated as of 4.3, Bringup AVN has been deprecated. Instead use DAY-N AVN workflow.

Name Description Schema

tier0GatewayName
optional

NSX-T Edge Tier-0 Gateway Name
Example : "string"

string

tier1GatewayName
optional

NSX-T Edge Tier-1 Gateway Name
Example : "string"

string

4.308. SddcNsxtSpec

Spec contains parameters for NSX-T deployment and configurations

Name Description Schema

ipAddressPoolSpec
optional

NSX-T IP address pool specification
Example : IpAddressPoolSpec

logicalSegments
optional

NSX-T logical segment. Deprecated as of 4.3, Bringup AVN has been deprecated. Instead use DAY-N AVN workflow.
Example : [ "NsxtLogicalSegment" ]

< NsxtLogicalSegment > array

nsxtAdminPassword
optional

NSX-T admin password. The password must be at least 12 characters long. Must contain at-least 1 uppercase, 1 lowercase, 1 special character and 1 digit. In addition, a character cannot be repeated 3 or more times consectively.
Example : "string"

string

nsxtAuditPassword
optional

NSX-T audit password. The password must be at least 12 characters long. Must contain at-least 1 uppercase, 1 lowercase, 1 special character and 1 digit. In addition, a character cannot be repeated 3 or more times consectively.
Example : "string"

string

nsxtEdgeSpec
optional

NSX-T edge specification. Deprecated as of 4.3, Bringup AVN has been deprecated. Instead use DAY-N AVN workflow.
Example : NsxtEdgeSpec

nsxtLicense
required

NSX-T Manager license
Example : "string"

string

nsxtManagerSize
required

NSX-T Manager size
Example : "One among:medium, large"

string

nsxtManagers
required

NSX-T Managers
Example : [ "NsxtManagerSpec" ]

< NsxtManagerSpec > array

overLayTransportZone
optional

NSX-T OverLay Transport zone
Example : NsxtTransportZone

rootLoginEnabledForNsxtManager
optional

If true, allow root login for NSX-T Manager and deny if false
Example : true

boolean

rootNsxtManagerPassword
required

NSX-T Manager root password. Password should have 1) At least eight characters, 2) At least one lower-case letter, 3) At least one upper-case letter 4) At least one digit 5) At least one special character, 6) At least five different characters , 7) No dictionary words, 6) No palindromes
Example : "string"

string

sshEnabledForNsxtManager
optional

If true, enable SSH for NSX-T Manager and disable if false
Example : true

boolean

transportVlanId
optional

Transport VLAN ID
Example : 0

integer (int32)

vip
required

Virtual IP address which would act as proxy/alias for NSX-T Managers
Example : "string"

string

vipFqdn
required

FQDN for VIP so that common SSL certificates can be installed across all managers
Example : "string"

string

vlanTransportZone
optional

NSX-T VLAN transport zone
Example : NsxtTransportZone

4.309. SddcSpec

Spec contains parameters for creating/bringing up an SDDC

Name Description Schema

ceipEnabled
optional

Enable VCF Customer Experience Improvement Program
Example : true

boolean

certificatesPassphrase
optional

Passphrase for the vCenter / NSX certificates
Example : "string"

string

clusterSpec
required

Cluster Spec
Example : SddcClusterSpec

dnsSpec
required

DNS Spec
Example : DnsSpec

dvSwitchVersion
optional

The version of the distributed virtual switches to be used
Example : "One among:6.0.0, 6.5.0, 7.0.0"

string

dvsSpecs
required

List of Dvs Specs
Example : [ "DvsSpec" ]

< DvsSpec > array

esxLicense
optional

License for the ESXi hosts
Example : "string"

string

excludedComponents
optional

Components to be excluded
Example : "One among:Foundation, VsphereHostProfiles, LogInsight, NSX, VrealizeNetwork, VSAN, VSANCleanup, VROPS, VRA, DRDeployment, DRConfiguration, ConfigurationBackup, VRB, VRSLCM, Inventory, UMDS, EsxThumbprintValidation, AVN, CEIP, Backup, EBGP"

< string > array

fipsEnabled
optional

Enable Federal Information Processing Standards
Example : true

boolean

hostSpecs
required

List of Host Specs
Example : [ "SddcHostSpec" ]

< SddcHostSpec > array

managementPoolName
optional

A String identifying the network pool associated with the management domain
Example : "string"

string

networkSpecs
required

List of Network Specs
Example : [ "SddcNetworkSpec" ]

< SddcNetworkSpec > array

nsxtSpec
optional

NSX-T Spec
Example : SddcNsxtSpec

ntpServers
required

List of NTP servers
Example : [ "string" ]

< string > array

pscSpecs
optional

PSC VM spec
Example : [ "PscSpec" ]

< PscSpec > array

remoteSiteSpec
optional

Remote site spec
Example : RemoteSiteSpec

sddcId
required

Client string that identifies an SDDC by name or instance name. Used for management domain name. Can contain only letters, numbers and the following symbols: '-'.
Length : 3 - 20
Example : "sfo01-m01"

string

sddcManagerSpec
optional

SDDC Manager Virtual Machine spec
Example : SddcManagerSpec

securitySpec
optional

Security spec
Example : SecuritySpec

shouldCleanupVsan
optional

Flag indicating whether cleanup vSAN should be ran
Example : false

boolean

skipEsxThumbprintValidation
optional

Skip ESXi thumbprint validation
Example : true

boolean

skipGatewayPingValidation
optional

Skip VSAN / VMOTION networks gateway connectivity validation
Example : true

boolean

taskName
required

Name of the task to execute
Example : "workflowconfig/workflowspec-ems.json"

string

vcenterSpec
required

vCenter Spec
Example : SddcVcenterSpec

vsanSpec
optional

VSAN Spec
Example : VsanSpec

vxManagerSpec
optional

VxManager Spec
Example : VxManagerSpec

4.310. SddcSubTask

Represents a SDDC sub-task

Name Description Schema

creationTimestamp
optional

Sub-Task Creation Time
Example : "string"

string

description
optional

Sub-Task Description
Example : "string"

string

errors
optional

List of errors in case of a failure
Example : [ "Error" ]

< Error > array

localizableDescriptionPack
optional

Localizable SDDC Task description
Example : MessagePack

localizableNamePack
optional

Localizable SDDC Task name
Example : MessagePack

name
optional

Sub-Task Name
Example : "string"

string

processingStateDescription
optional

Processing category description, e.g., VC Deployment, VSAN configuration etc
Example : "string"

string

processingStateName
optional

Processing category name, e.g., VC Deployment, VSAN configuration etc
Example : "string"

string

sddcId
optional

SDDC ID
Example : "123e4567-e89b-42d3-a456-556642440000"

string

status
optional

Task Status
Example : "INITIALIZED, COMPLETED_WITH_SUCCESS, COMPLETED_WITH_FAILURE, PREVALIDATION_COMPLETED_WITH_SUCCESS, PREVALIDATION_COMPLETED_WITH_FAILURE, POSTVALIDATION_COMPLETED_WITH_SUCCESS, POSTVALIDATION_COMPLETED_WITH_FAILURE,IN_PROGRESS, PREVALIDATION_IN_PROGRESS, POSTVALIDATION_IN_PROGRESS, INTERNAL_ERROR"

string

updateTimestamp
optional

Last Update Time of Sub-Task
Example : "string"

string

4.311. SddcTask

Represents a SDDC task

Name Description Schema

creationTimestamp
optional

SDDC Task creation timestamp
Example : "string"

string

id
optional

SDDC ID
Length : 3 - 256
Example : "string"

string

localizableNamePack
optional

Localizable SDDC Task name
Example : MessagePack

name
optional

Task name
Example : "string"

string

sddcSubTasks
optional

All SDDC Sub-Tasks
Example : [ "SddcSubTask" ]

< SddcSubTask > array

status
optional

SDDC Task status
Example : "One among: IN_PROGRESS, COMPLETED_WITH_SUCCESS, ROLLBACK_SUCCESS, COMPLETED_WITH_FAILURE"

string

4.312. SddcVcenterSpec

Spec contains parameters for vCenter

Name Description Schema

licenseFile
optional

License File
Example : "string"

string

rootVcenterPassword
required

vCenter root password. The password must be between 8 characters and 20 characters long. It must also contain at least one uppercase and lowercase letter, one number, and one character from '! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { Ι } ~' and all characters must be ASCII. Space is not allowed in password.
Length : 8 - 20
Example : "string"

string

sshThumbprint
optional

vCenter Server SSH thumbprint (RSA SHA256)
Example : "string"

string

sslThumbprint
optional

vCenter Server SSL thumbprint (SHA256)
Example : "string"

string

storageSize
optional

vCenter VM storage size
Example : "One among:lstorage, xlstorage"

string

vcenterHostname
required

vCenter hostname address
Example : "string"

string

vcenterIp
optional

vCenter IP address
Length : 7 - 15
Example : "string"

string

vcenterNetmask
optional

vCenter Netmask
Length : 7 - 15
Example : "string"

string

vmSize
optional

vCenter VM size
Example : "One among:xlarge, large, medium, small, tiny"

string

4.313. SecuritySpec

Spec contains security settings

Name Description Schema

esxiCertsMode
optional

ESXi certificates mode
Example : "One among:Custom, VMCA"

string

rootCaCerts
optional

Root Certificate Authority certificate list
Example : [ "RootCaCerts" ]

< RootCaCerts > array

4.314. SharesInfo

Specify relative allocation between resource consumers

Name Description Schema

level
optional

The allocation level
Example : "One among: low, normal, high, custom"

string

shares
optional

The number of shares allocated
Example : 0

integer (int32)

4.315. SoftwareComponent

Name Description Schema

id
optional

ID of Resource/Software Component
Example : "string"

string

type
optional

Type of Resource/Software Component
Example : "string"

string

4.316. SoftwareInfo

SoftwareSpec contains base os, components, hardware support, addOn metadata to install/update the appropriate Cloud Foundation software components in your management domain or workload domain.

Name Description Schema

addOn
optional

Personality addOn
Example : AddOnInfo

baseImage
required

Personality base image
Example : BaseImageInfo

components
optional

Personality components
Example : {
"string" : "ComponentInfo"
}

< string, ComponentInfo > map

hardwareSupport
optional

Personality hardware support
Example : HardwareSupportInfo

4.317. SsoDomainEntity

Represents SSO domain entity

Name Description Schema

id
optional

The ID of the SSO domain entity
Example : "string"

string

name
optional

The name of the SSO domain entity
Example : "string"

string

type
required

The type of the SSO domain entity
Example : "One among: USER, GROUP"

string

4.318. StackTraceElement

Name Description Schema

className
optional

Example : "string"

string

fileName
optional

Example : "string"

string

lineNumber
optional

Example : 0

integer (int32)

methodName
optional

Example : "string"

string

nativeMethod
optional

Example : true

boolean

4.319. Stage

Represents a Stage

Name Description Schema

completionTimestamp
optional

Example : "string"

string

creationTimestamp
optional

Example : "string"

string

description
optional

Stage description
Example : "string"

string

errors
optional

List of errors in case of a failure
Example : [ "Error" ]

< Error > array

name
optional

Stage name
Example : "string"

string

status
optional

Stage status
Example : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED"

string

type
optional

Stage type
Example : "string"

string

4.320. Storage

Represents information about storage on a host

Name Description Schema

disks
optional

Information about disks
Example : [ "Disk" ]

< Disk > array

totalCapacityMB
optional

Total storage capacity in MB
Example : 0.0

number (double)

usedCapacityMB
optional

Used storage capacity in MB
Example : 0.0

number (double)

4.321. StorageContainer

Storage container representation

Name Description Schema

clusterId
optional

ID of the cluster which is using the storage container
Example : "string"

string

id
optional

ID of the storage container
Example : "string"

string

name
required

Name of the storage container
Example : "string"

string

protocolType
required

Storage protocol type
Example : "One among: ISCSI, FC, NFS"

string

4.322. StorageContainerUpdateSpec

Represents a storage container update specification

Name Description Schema

name
required

Name of the storage container
Example : "string"

string

4.323. StorageInfo

Represents a storage metric with used and total for a resource

Name Description Schema

total
optional

Total value
Example : DataMetric

used
optional

Used value
Example : DataMetric

4.324. SubTask

Represents a sub-task

Name Description Schema

completionTimestamp
optional

Sub-task completion timestamp
Example : "string"

string

creationTimestamp
optional

Sub-task creation timestamp
Example : "string"

string

description
optional

Sub-task description
Example : "string"

string

errors
optional

List of errors in case of a failure
Example : [ "Error" ]

< Error > array

name
optional

Sub-task name
Example : "string"

string

resources
optional

List of resources associated with sub-task
Example : [ "Resource" ]

< Resource > array

stages
optional

List of stages of the sub-task
Example : [ "Stage" ]

< Stage > array

status
optional

Sub-task status
Example : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED"

string

subTasks
optional

List of child subtasks associated with this subtask
Example : [ "SubTask" ]

< SubTask > array

type
optional

Sub-task type
Example : "string"

string

4.325. SupportBundle

Name Description Schema

bundleAvailable
optional

Indicate if bundle is available in file system.
Example : "string"

string

bundleName
optional

Name of the Support Bundle.
Example : "string"

string

completionTimestamp
optional

CompletionTimestamp.
Example : "string"

string

creationTimestamp
optional

CreationTimestamp.
Example : "string"

string

description
optional

Name of the Operation.
Example : "string"

string

id
optional

Id of the Support Bundle task.
Example : "string"

string

status
optional

Support Bundle Status.
Example : "string"

string

4.326. SupportBundleConfig

Name Description Schema

force
optional

Run SOS operations, even if there is a Workflow running.
Example : true

boolean

skipKnownHostCheck
optional

Skip known_hosts file for SupportBundle collection.
Example : true

boolean

4.327. SupportBundleIncludeItems

Name Description Schema

healthCheck
optional

Perform SOS Health checks.
Example : true

boolean

summaryReport
optional

Collect Vcf Summary Reports.
Example : true

boolean

4.328. SupportBundleOption

Name Description Schema

config
optional

SupportBundle config.
Example : SupportBundleConfig

include
optional

Sos Additional Reports for Support Bundle.
Example : SupportBundleIncludeItems

4.329. SupportBundleScope

Name Description Schema

domains
optional

Domains and Clusters for SOS operation.
Example : [ "Domains" ]

< Domains > array

includeFreeHosts
optional

Include free hosts.
Example : true

boolean

4.330. SupportBundleSpec

Name Description Schema

logs
optional

Logs of different components.
Example : Logs

options
optional

Sos options for support bundle collection.
Example : SupportBundleOption

scope
optional

Domain and cluster under which logs should be collected.
Example : SupportBundleScope

4.331. Task

Represents a task

Name Description Schema

completionTimestamp
optional

Task completion timestamp
Example : "string"

string

creationTimestamp
optional

Task creation timestamp
Example : "string"

string

errors
optional

List of errors in case of a failure
Example : [ "Error" ]

< Error > array

id
optional

Task ID
Example : "string"

string

isCancellable
optional

Represents task can be cancellable or not.
Example : true

boolean

name
optional

Task name
Example : "string"

string

resolutionStatus
optional

Resolution state
Example : "Can have only one of the two values: RESOLVED or UNRESOLVED"

string

resources
optional

List of resources associated with task
Example : [ "Resource" ]

< Resource > array

status
optional

Task status
Example : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED"

string

subTasks
optional

List of sub-tasks of the task
Example : [ "SubTask" ]

< SubTask > array

type
optional

Operation that is represented by the Task in machine readable format. The value is controlled by the owners/producers of the Task. The convention is <resource>_<operation>
Example : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"

string

4.332. Throwable

Name Description Schema

localizedMessage
optional

Example : "string"

string

message
optional

Example : "string"

string

stackTrace
optional

Example : [ "StackTraceElement" ]

< StackTraceElement > array

suppressed
optional

Example : [ "Throwable" ]

< Throwable > array

4.333. TimeZone

Name Description Schema

displayName
optional

Example : "string"

string

dstsavings
optional

Example : 0

integer (int32)

id
optional

Example : "string"

string

rawOffset
optional

Example : 0

integer (int32)

4.334. TokenCreationSpec

This specification contains user details to create authentication token.

Name Description Schema

apiKey
optional

API Key
Example : "string"

string

password
optional

User Password
Example : "string"

string

username
optional

Username
Example : "string"

string

4.335. TokenPair

This contains the access token and the refresh token for the user API access.

Name Description Schema

accessToken
optional

Bearer token that can be used to make public API calls
Example : "string"

string

refreshToken
optional

Refresh token that can be used to request new access token
Example : RefreshToken

4.336. TrustedCertificateSpec

This specification contains certificate & certificate usage

Name Description Schema

certificate
required

Certificate in one-line PEM format
Example : "string"

string

certificateUsageType
required

Certificate usage
Example : "One among: TRUSTED_FOR_OUTBOUND, TRUSTED_FOR_INBOUND"

string

4.337. URL

Name Description Schema

authority
optional

Example : "string"

string

content
optional

Example : "object"

object

defaultPort
optional

Example : 0

integer (int32)

file
optional

Example : "string"

string

host
optional

Example : "string"

string

path
optional

Example : "string"

string

port
optional

Example : 0

integer (int32)

protocol
optional

Example : "string"

string

query
optional

Example : "string"

string

ref
optional

Example : "string"

string

userInfo
optional

Example : "string"

string

4.339. UnmanagedResourceCredential

Represents credentials of am unmanaged resource (i.e a resource that is not managed by VCF)

Name Description Schema

credentialType
required

Credential type
Example : "One among: SSH"

string

password
optional

Password
Example : "string"

string

username
required

Username
Example : "string"

string

4.340. Upgradable

Upgradable represents the upgrade capability of resources. It contains the bundle(using what), resource(on which) and its associated resources/software components that can be upgraded.

Name Description Schema

bundleId
optional

Bundle ID
Example : "string"

string

bundleType
optional

Bundle Type
Example : "string"

string

resource
optional

Resource which is upgradable
Example : Resource

softwareComponents
optional

Software Components which are Upgradable
Example : [ "SoftwareComponent" ]

< SoftwareComponent > array

status
optional

Upgradable Status
Example : "string"

string

4.341. UpgradablesClusterResource

Upgradables clusters details with hardware support managers

Name Description Schema

availableHardwareSupportManagers
optional

Available Hardware Support Managers for Firmware upgrade
Example : [ "HardwareSupportPackages" ]

configuredHardwareSupportManagers
optional

Configured Hardware Support Managers for Firmware upgrade
Example : [ "HardwareSupportPackage" ]

primaryCluster
optional

Flag for primary cluster
Example : true

boolean

resourceId
required

Resource Id
Example : "string"

string

resourceType
required

Resource Type
Example : "CLUSTER"

string

softwareInfo
optional

Software Spec contains base image, addOn, and components details
Example : SoftwareInfo

vlcmEnabled
optional

Flag to determine if vLCM enabled on the cluster
Example : true

boolean

4.342. Upgrade

Upgrade object which contain details regarding the upgrade

Name Description Schema

bundleId
required

Bundle ID for Upgrade
Example : "string"

string

id
required

ID for Upgrade
Example : "string"

string

nsxtUpgradeUserInputSpec
optional

NSX-T upgrade specifications
Example : NsxtUpgradeUserInputSpec

parallelUpgrade
optional

Boolean to represent components will be upgraded in parallel on not
Example : true

boolean

resourceType
required

Resource Type for Upgrade
Example : "One among: DOMAIN, CLUSTER, UNASSIGNED_HOST"

string

resourceUpgradeSpecs
required

Resource Upgrade Specifications
Example : [ "ResourceUpgradeSpec" ]

status
required

Overall upgrade status
Example : "string"

string

taskId
required

Task ID associated with upgrade
Example : "string"

string

4.343. UpgradeCommitSpec

Upgrade Commit Specification

Name Description Schema

scheduledTimestamp
optional

Upgrade Scheduled Time
Example : "string"

string

upgradeNow
optional

Flag for enabling Upgrade Now. If true, scheduledTimestamp is ignored
Example : true

boolean

4.344. UpgradeSpec

Upgrade Specification

Name Description Schema

bundleId
required

Bundle ID for Upgrade
Example : "string"

string

draftMode
optional

Boolean to represent upgrade will be created in DRAFT mode. This allows to run prechecks before user confirm/commit the upgrade.
Example : true

boolean

nsxtUpgradeUserInputSpecs
optional

Resource Upgrade Specifications for NSXT upgrade
Example : [ "NsxtUpgradeUserInputSpec" ]

parallelUpgrade
optional

Boolean to represent components will be upgraded in parallel on not
Example : true

boolean

resourceType
required

Resource Type for Upgrade
Example : "One among: DOMAIN, CLUSTER, UNASSIGNED_HOST"

string

resourceUpgradeSpecs
required

Resource Upgrade Specifications
Example : [ "ResourceUpgradeSpec" ]

4.345. User

Represents user and its attributes

Name Description Schema

apiKey
optional

The API key of the user
Example : "string"

string

creationTimestamp
optional

The timestamp at which the user was created
Example : "string"

string

domain
optional

The domain of the user
Example : "string"

string

id
optional

The ID of the user
Example : "string"

string

name
required

The name of the user
Example : "string"

string

role
required

The role of the user
Example : RoleReference

type
required

The type of the user
Example : "One among: USER, GROUP, SERVICE"

string

4.346. VMNicInfo

VMNics attached to an ESXi host reference

Name Description Schema

isActive
optional

Status of VMNic if active or inactive
Example : true

boolean

isAutoNegotiateSupported
optional

Status of VMNic if auto negotiate is supported or not
Example : true

boolean

isInUse
optional

Status of VMNic if in use or available
Example : true

boolean

linkSpeedMB
optional

VMNic link speed in MB
Example : 0

integer (int32)

name
optional

Name of the VMNic
Example : "string"

string

4.347. VSANNetworkSpec

Contains the vSAN Network details

Name Description Schema

vsanCidr
optional

vSAN subnet cidr of the ESXi host
Example : "string"

string

vsanGatewayIP
optional

vSAN Gateway IP of the ESXi host
Example : "string"

string

4.348. Validation

Represents a validation with a list of one or more validation checks that are performed as part of the validation

Name Description Schema

additionalProperties
optional

Example : {
"string" : "string"
}

< string, string > map

description
optional

Description of the validation
Example : "string"

string

executionStatus
optional

Execution status of the validation
Example : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS"

string

id
optional

ID of the validation
Example : "string"

string

resultStatus
optional

Result status of the validation after it has completed its execution
Example : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS, CANCELLATION_IN_PROGRESS"

string

validationChecks
optional

List of one or more validation checks that are performed as part of the validation
Example : [ "ValidationCheck" ]

< ValidationCheck > array

4.349. ValidationCheck

Represents a validation check

Name Description Schema

description
optional

Description of the validation check
Example : "string"

string

errorResponse
optional

Error response associated with the validation check
Example : Error

nestedValidationChecks
optional

List of one or more validation checks that are performed as part of the validation
Example : [ "ValidationCheck" ]

< ValidationCheck > array

resultStatus
optional

Result status of the validation check after it has completed its execution
Example : "One among: IN_PROGRESS, SUCCEEDED, FAILED, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS"

string

severity
optional

Severity of the validation check
Example : "One among: WARNING, ERROR, INFO"

string

4.350. VasaProvider

VASA Provider representation

Name Description Schema

id
optional

ID of the VASA Provider
Example : "string"

string

name
required

Name of the VASA Provider
Example : "string"

string

storageContainers
required

List of storage containers associated with the VASA Provider
Example : [ "StorageContainer" ]

< StorageContainer > array

url
required

URL of the VASA Provider
Example : "string"

string

users
required

List of users associated with the VASA Provider
Example : [ "VasaUser" ]

< VasaUser > array

4.351. VasaProviderSpec

This specification contains cluster storage configuration for vVol

Name Description Schema

storageContainerId
required

UUID of the VASA storage container
Example : "string"

string

storageProtocolType
required

Type of the VASA storage protocol
Example : "One among: ISCSI, NFS, FC"

string

userId
required

UUID of the VASA storage user
Example : "string"

string

vasaProviderId
required

UUID of the VASA storage provider
Example : "string"

string

4.352. VasaProviderUpdateSpec

Represents a VASA Provider update specification

Name Description Schema

name
optional

Name of the VASA Provider
Example : "string"

string

url
optional

URL of the VASA Provider
Example : "string"

string

4.353. VasaUser

VASA User representation

Name Description Schema

id
optional

ID of the VASA User
Example : "string"

string

password
required

Password
Example : "string"

string

username
required

VASA User name
Example : "string"

string

4.354. VasaUserUpdateSpec

Represents a VASA User update specification

Name Description Schema

password
optional

Password
Example : "string"

string

username
optional

VASA User name
Example : "string"

string

4.355. Vcenter

vCenter representation

Name Description Schema

domain
optional

Information about the domain this vCenter is part of
Example : DomainReference

fqdn
optional

FQDN of the vCenter
Example : "string"

string

id
optional

ID of the vCenter
Example : "string"

string

ipAddress
optional

IP address of the vCenter
Example : "string"

string

version
optional

Version of the vCenter
Example : "string"

string

4.356. VcenterReference

Represents a vCenter reference

Name Description Schema

fqdn
optional

FQDN of the vCenter
Example : "string"

string

id
required

ID of the vCenter
Example : "string"

string

4.357. VcenterSpec

This specification contains the installation and configuration of vCenter in a workload domain

Name Description Schema

datacenterName
required

vCenter datacenter name
Example : "string"

string

name
required

Name of the vCenter virtual machine
Example : "string"

string

networkDetailsSpec
required

Network spec details of the vCenter virtual machine
Example : NetworkDetailsSpec

rootPassword
required

vCenter root shell password
Example : "string"

string

storageSize
optional

VCenter storage size
Example : "One among:lstorage, xlstorage"

string

vmSize
optional

VCenter VM size
Example : "One among:xlarge, large, medium, small, tiny"

string

4.358. VcfService

VCF service representation

Name Description Schema

id
optional

ID of the service
Example : "string"

string

name
optional

Name of the service
Example : "string"

string

status
optional

Status of the service
Example : "string"

string

version
optional

Version of the service
Example : "string"

string

4.359. Vds

vSphere distributed switch

Name Description Schema

id
optional

vSphere Distributed Switch id
Example : "string"

string

isUsedByNsxt
optional

Boolean to identify if the vSphere distributed switch is used by NSX-T
Example : true

boolean

mtu
optional

Maximum Transmission Unit
Example : 0

integer (int32)

name
required

vSphere Distributed Switch name
Example : "string"

string

niocBandwidthAllocations
optional

List of Network I/O Control Bandwidth Allocations for System Traffic
Example : [ "NiocBandwidthAllocation" ]

portGroups
optional

List of portgroups associated with the vSphere Distributed Switch
Example : [ "Portgroup" ]

< Portgroup > array

4.360. VdsSpec

This specification contains vSphere distributed switch configurations

Name Description Schema

isUsedByNsxt
optional

Boolean to identify if the vSphere distributed switch is used by NSX-T
Example : true

boolean

name
required

vSphere Distributed Switch name
Example : "string"

string

niocBandwidthAllocationSpecs
optional

List of Network I/O Control Bandwidth Allocations for System Traffic
Example : [ "NiocBandwidthAllocationSpec" ]

portGroupSpecs
optional

List of portgroups to be associated with the vSphere Distributed Switch
Example : [ "PortgroupSpec" ]

< PortgroupSpec > array

4.361. VersionAliasesForBundleComponentType

Version Alias representation

Name Description Schema

bundleComponentType
required

Bundle Component Type
Example : "One among: VCENTER, PSC, NSX_T_MANAGER, NSX_MANAGER, ESX_HOST, VCF_VRA_UPGRADE, VCF_VRLI_UPGRADE, VCF_VROPS_UPGRADE, VCF_VRSLCM_UPGRADE, SDDC_MANAGER_VCF, LCM, SDDC_MANAGER, SDDC_MANAGER_UI, OPERATIONS_MANAGER, COMMON_SERVICES, SOLUTIONS_MANAGER, MULTI_SITE_SERVICE, "

string

versionAliases
required

Version Aliases
Example : [ "BaseAlias" ]

< BaseAlias > array

4.362. VersionAliasesForBundleComponentTypeSpec

Version Alias update Specification. This specification gets used in the Version Alias Update API.

Name Description Schema

forceUpdate
optional

Flag for force update version alias configuration.
Example : true

boolean

targetVcfVersion
optional

If this field is set, LCM will calculate and update version aliases based on current deployment VCF version and the provided target VCF version
Example : "string"

string

versionAliasesForBundleComponentTypes
optional

List of version aliases for bundle component types.
Example : [ "VersionAliasesForBundleComponentType" ]

4.363. VmNic

This specification contains vmnic configurations for vSphere host

Name Description Schema

id
optional

VmNic ID of vSphere host to be associated with VDS, once added to cluster
Example : "string"

string

moveToNvds
optional

This flag determines if the vmnic must be on N-VDS
Example : true

boolean

uplink
optional

Uplink to be associated with vmnic
Example : "string"

string

vdsName
optional

VDS name to associate with vSphere host
Example : "string"

string

4.364. VmfsDatastoreSpec

Cluster storage configuration for VMFS

Name Description Schema

fcSpec
optional

Cluster storage configuration for VMFS on FC
Example : [ "FcSpec" ]

< FcSpec > array

4.365. Vra

Spec contains parameters of a vRealize Automation instance

Name Description Schema

id
optional

The ID of the vRealize Automation instance
Example : "string"

string

loadBalancerFqdn
optional

The Fully Qualified Domain Name of the vRealize Automation load balancer
Example : "vra-lb.vrack.vsphere.local"

string

loadBalancerIpAddress
optional

The IP address of the vRealize Automation load balancer
Example : "10.0.0.15"

string

nodes
optional

The nodes of the vRealize Automation instance
Example : [ "VrealizeProductNode" ]

status
optional

The status of the vRealize Automation instance
Example : "ACTIVE, ERROR"

string

version
optional

The version of the vRealize Automation instance
Example : "8.1.0-13036238"

string

4.366. VrealizeProductNode

Spec contains information for a vRealize product node

Name Description Schema

fqdn
required

The Fully Qualified Domain Name for the vRealize node (virtual appliance)
Example : "vrealize.node.vrack.vsphere.local"

string

id
optional

The ID of the node
Example : "string"

string

ipAddress
required

IP Address of vRealize product appliance
Example : "10.0.0.17"

string

type
required

The type of the vRealize product node
Example : "MASTER, REPLICA, DATA, REMOTE_COLLECTOR, WORKER"

enum (MASTER, REPLICA, DATA, REMOTE_COLLECTOR, WORKER)

4.367. Vrli

Spec contains parameters of a vRealize Log Insight instance

Name Description Schema

id
optional

The ID of the vRealize Log Insight instance
Example : "string"

string

loadBalancerFqdn
optional

The Fully Qualified Domain Name of the vRealize Log Insight load balancer
Example : "load-balancer.vrack.vsphere.local"

string

loadBalancerIpAddress
optional

The IP address of the vRealize Log Insight load balancer
Example : "10.0.0.15"

string

nodes
optional

The nodes of the vRealize Log Insight instance
Example : [ "VrealizeProductNode" ]

status
optional

The status of the vRealize Log Insight instance
Example : "ACTIVE, ERROR"

string

version
optional

The version of the vRealize Log Insight instance
Example : "4.8.0-13036238"

string

4.368. Vrops

This specification contains information related to the existing vRealize Operations instance deployment

Name Description Schema

id
required

The ID of the vRealize Operations instance
Example : "string"

string

loadBalancerFqdn
required

Fully Qualified Domain Name for the vRealize Operations load balancer
Example : "string"

string

loadBalancerIp
required

IP for the vRealize Operations load balancer
Example : "string"

string

nodes
required

The nodes of the vRealize Operations instance
Example : [ "VropsNode" ]

< VropsNode > array

status
required

The state of the current product instance
Example : "string"

string

version
required

The version of the vRealize Operations instance
Example : "string"

string

4.369. VropsNode

Spec contains information for a vRealize product node

Name Description Schema

fqdn
required

The Fully Qualified Domain Name for the vRealize node (virtual appliance)
Example : "vrealize.node.vrack.vsphere.local"

string

id
optional

The ID of the node
Example : "string"

string

ipAddress
required

IP Address of vRealize product appliance
Example : "10.0.0.17"

string

password
optional

The password for a root user of vRealize appliance
Example : "string"

string

status
required

The status of the vRealize product node
Example : "ACTIVE"

string

type
required

The type of the vRealize product node
Example : "MASTER, REPLICA, DATA, REMOTE_COLLECTOR, WORKER"

enum (MASTER, REPLICA, DATA, REMOTE_COLLECTOR, WORKER)

username
optional

The username for a root user of vRealize appliance
Example : "user"

string

4.370. Vrslcm

This specification contains information related to the existing vRealize Suite Lifecycle Manager instance deployment

Name Description Schema

fqdn
required

Fully Qualified Domain Name
Example : "string"

string

id
required

The ID of the vRealize Suite Lifecycle Manager instance
Example : "string"

string

ipAddress
required

IP Address of vRealize Suite Lifecycle Manager appliance
Example : "string"

string

status
required

The state of the current product instance
Example : "string"

string

version
required

Version of the product that is currently running on the environment
Example : "string"

string

4.371. VrslcmDeploymentSpec

Spec contains parameters for creating a new vRealize Suite Lifecycle Manager instance

Name Description Schema

apiPassword
required

The password for an admin API/UI user of vRealize Suite Lifecycle Manager
Example : "string"

string

fqdn
required

Fully Qualified Domain Name
Example : "vrslcm.vrack.vsphere.local"

string

nsxtStandaloneTier1Ip
required

The IP to use for deploying a new standalone Tier-1 router in NSX-T. This router will be used subsequently for vrealize load balancers.
Example : "string"

string

sshPassword
required

The password for a root user of vRealize Suite Lifecycle Manager appliance
Example : "string"

string

4.372. VsanDatastoreSpec

This specification contains cluster storage configuration for vSAN

Name Description Schema

datastoreName
required

Datastore name used for cluster creation
Example : "string"

string

dedupAndCompressionEnabled
optional

Enable vSAN deduplication and compression
Example : true

boolean

failuresToTolerate
required

Number of vSphere host failures to tolerate in the vSAN cluster
Example : 0

integer (int32)

licenseKey
required

License key for the vSAN data store to be applied in vCenter
Example : "string"

string

4.373. VsanSpec

Spec contains parameters of Virtual SAN

Name Description Schema

datastoreName
required

Datastore Name
Example : "string"

string

hclFile
optional

HCL File
Example : "string"

string

licenseFile
optional

License File
Example : "string"

string

vsanDedup
optional

VSAN feature Deduplication and Compression flag, one flag for both features
Example : true

boolean

vsanName
required

Virtual SAN config name
Example : "string"

string

4.374. VvolDatastoreSpec

This specification contains cluster storage configuration for vVol

Name Description Schema

name
required

Name of the datastore
Example : "string"

string

vasaProviderSpec
required

Vasa Provider spec
Example : VasaProviderSpec

4.375. VxManagerSpec

Spec contains parameters for VxManager

Name Description Schema

defaultAdminUserCredentials
required

Default admin credentials VxManager
Example : SddcCredentials

defaultRootUserCredentials
required

Default root credentials VxManager
Example : SddcCredentials

sshThumbprint
optional

VxRail Manager SSH thumbprint (RSA SHA256)
Example : "string"

string

sslThumbprint
optional

VxRail Manager SSL thumbprint (SHA256)
Example : "string"

string

vxManagerHostName
required

VxManager host name
Example : "string"

string

4.376. VxRailDetails

Contains the VxRail Manager details

Name Description Schema

adminCredentials
optional

VxRail Manager admin credentials
Example : UnmanagedResourceCredential

dnsName
optional

DNS Name/Hostname of the VxRail Manager
Example : "string"

string

ipAddress
optional

IP Address of the VxRail Manager
Example : "string"

string

networks
optional

Network details of the VxRail Manager
Example : [ "Network" ]

< Network > array

nicProfile
optional

Nic Profile Type
Example : "string"

string

rootCredentials
optional

VxRail Manager root credentials
Example : UnmanagedResourceCredential

sshThumbprint
optional

SSH thumbprint of the VxRail Manager
Example : "string"

string

sslThumbprint
optional

SSL thumbprint of the VxRail Manager
Example : "string"

string

4.377. WitnessSpec

Spec contains the Witness host parameters that are part of each stretched cluster

Name Description Schema

fqdn
required

Management ip of the witness host
Example : "string"

string

vsanCidr
required

vSAN subnet cidr of the witness host
Example : "string"

string

vsanIp
required

vSAN IP of the witness host
Example : "string"

string

4.378. Wsa

Spec contains parameters of a vRealize Automation instance

Name Description Schema

id
optional

The ID of the Workspace ONE Access instance
Example : "string"

string

loadBalancerFqdn
optional

The Fully Qualified Domain Name of the Workspace ONE Access load balancer
Example : "wsa-lb.vrack.vsphere.local"

string

loadBalancerIpAddress
optional

The IP address of the Workspace ONE Access load balancer
Example : "10.0.0.15"

string

nodes
optional

The nodes of the Workspace ONE Access instance
Example : [ "VrealizeProductNode" ]

status
optional

The status of the Workspace ONE Access instance
Example : "ACTIVE, ERROR"

string

version
optional

The version of the Workspace ONE Access instance
Example : "8.1.0-13036238"

string

4.379. WsaProductSpec

Spec contains information for a vRealize product

Name Description Schema

adminCredentials
required

The credentials of the vRealize product Admin
Example : CredentialsSpec

certificateChain
optional

The certificate chain of the vRealize product.
Example : "string"

string

defaultAdminCredentials
required

Default admin credentials for Workspace ONE Access
Example : CredentialsSpec

id
optional

The ID of the product
Example : "string"

string

loadBalancerFqdn
required

Fully Qualified Domain Name for the vRealize product load balancer
Example : "string"

string

nodes
required

The nodes of the vRealize product instance
Example : [ "ProductNode" ]

< ProductNode > array

type
required

The type of the Workspace ONE Access instance
Example : "string"

string

version
required

The version of the vRealize product instance
Example : "string"

string

4.380. ZookeeperServerInfo

Name Description Schema

clientPort
optional

Example : 0

integer (int32)

electionPort
optional

Example : 0

integer (int32)

fqdn
optional

Example : "string"

string

hostAddress
optional

Example : "string"

string

peerPort
optional

Example : 0

integer (int32)

securePort
optional

Example : 0

integer (int32)

zkId
optional

Example : 0

integer (int32)

zkRole
optional

Example : "string"

string

4.381. ZookeeperServerInfoList

Name Description Schema

zookeeperServersInfo
optional

Example : [ "ZookeeperServerInfo" ]

5. Troubleshooting Guide

5.1. Error codes and messages

Messages having {} indicate dynamic values being set.

5.1.1. Hosts

Error code Description

POST_INTERNAL_SERVER_ERROR

Internal server error

HOST_TASK_REGISTRATION_FAILED

Failed to register task to task aggregator

HOST_TASK_REGISTRATION_FAILED.remedy

Please make sure that commonsvcs service is up and running.

FAIL_DECOMMISSION_HOST

Failed to decommission host.

HOST_VALIDATION_FOR_DECOMMISSION_FAILED

Failed to validate the host for decommission.

HOST_VALIDATION_FOR_DECOMMISSION_FAILED.remedy

Make sure that the host is not part of any cluster.

HOST_NFS_MOUNT_CLEAN_FAILED

Failed to remove NFS configuration of the host.

HOST_NFS_MOUNT_CLEAN_FAILED.remedy

Retry decommission once this issue gets resolved.

KNOWN_HOST_ENTRY_CLEANUP_FAILED

Failed to remove known hosts configuration entry of the host.

KNOWN_HOST_ENTRY_CLEANUP_FAILED.remedy

Retry decommission once this issue gets resolved.

HOST_CREDENTIAL_DELETION_FAILED

Failed to delete credentials of the host {0}.

HOST_SERVICE_CREDENTIAL_DELETION_FAILED

Failed to delete service account credentials of host {0}.

HOST_SERVICE_CREDENTIAL_DELETION_INPUT_GENERATION_FAILED

Failed to generate delete ESXi Service Account Input Data for host {0}.

HOST_SERVICE_CREDENTIAL_DELETION_POSTVALIDATION_FAILED

Validation of the ESXi service accounts credentials deletion failed for host {0}.

HOST_CREDENTIAL_DELETION_FAILED.remedy

Retry decommission once this issue gets resolved.

HOST_STORAGE_SAVE_ERROR

Failed to save input data to persistent storage

REMOVE_HOST_NOT_INITIALIZED

Removal for host {0} is not initialized.

REMOVE_HOST_GET_DATA_ERROR

Failed to get data for remove host. Reason: {0}

REMOVE_HOST_UPDATE_DATA_ERROR

Failed to update data for remove host. Reason: {0}

DECOMMISSION_HOST_GET_DATA_ERROR

Failed to get data for decommission host. Reason: {0}

DECOMMISSION_HOST_UPDATE_DATA_ERROR

Failed to update data for decommission host. Reason: {0}

PMM_UPDATE_ALERT_FILTER_ERROR

Failed to update alert-suppression filter for {0} to {1}

SERIALIZATION_ERROR

Failed to serialize the add host uber spec

DM_HOST_NOT_REACHABLE

Cannot connect to host with address {0}

DM_HOST_NOT_REACHABLE.remedy

Please check the connectivity to host with address {0}.

DM_HOST_DNS_CONFIGURATION_FAILED

Cannot configure DNS {0} on host {1}

DM_HOST_DNS_CONFIGURATION_FAILED.remedy

Please check the DNS {0} configuration on the host.

DM_HOST_NTP_CONFIGURATION_FAILED

Cannot configure NTP servers {0} for host {1}

DM_HOST_NTP_CONFIGURATION_FAILED.remedy

Please check the connectivity to host with address {0}.

NTP_SERVERS_NOT_REACHABLE

NTP Servers {0} are not reachable from host {1}

NTP_SERVERS_NOT_REACHABLE.remedy

Please check the connectivity of NTP servers {0} from host {1}

BLANK_PRIMARY_DNS_IP

Cannot find primary DNS IP in the inventory.

BLANK_PRIMARY_DNS_IP.remedy

Please make sure that primary DNS IP is available in the inventory (DB).

BLANK_NTP_IP

Cannot find any NTP IP in the inventory.

BLANK_NTP_IP.remedy

Please make sure that at least one NTP IP is available in the inventory (DB).

FAILED_TO_GET_DNS_NTP_IP

Failed to fetch DNS and NTP IPs from inventory.

FAILED_TO_GET_DNS_NTP_IP.remedy

Please make sure that commonsvcs service is up and running.

FAILED_TO_UPDATE_ESXIs

Failed to update given hosts : {0} into DB.

FAILED_TO_UPDATE_ESXIs.remedy

Please make sure that commonsvcs service is up and running.

FAILED_TO_UPDATE_ESXI

Failed to update given host into DB.

FAILED_TO_UPDATE_ESXI.remedy

Please make sure that commonsvcs service is up and running.

NOT_FREE_HOSTS

Hosts : {0} are still part of a cluster.

HOST_STATUS_UPDATE_FAILED

Failed to update the status of the host

HOST_STATUS_UPDATE_FAILED.remedy

Please make sure that commonsvcs service is up and running.

HOSTS_DELETE_FAILED

Failed to delete host(s) : {0}

HOST_DELETE_FAILED.remedy

Retry decommission

HOSTS_IN_DIFFERENT_CLUSTERS_ERROR

Hosts are in different clusters

NOT_ALL_HOSTS_IN_INVENTORY_ERROR

Some ESXi hosts are not known to VCF

VDSS_SIZE_ERROR

Expected maximum {0}, but found {1} Virtual Distributed Switches.

COMMISSION_HOST_INVALID_SPEC_DUPLICATE_HOSTS

Invalid commission spec duplicate hosts - {0}:{1}.

COMMISSION_HOST_INVALID_SPEC_DUPLICATE_HOSTS.remedy

Please remove duplicate hosts - {0}:{1} from the commission spec.

COMMISSION_HOST_INVENTORY_VALIDATION_FAILED

Host {0} already present in inventory, validation failed.

COMMISSION_HOST_INVENTORY_VALIDATION_FAILED.remedy

Please make sure that you have gone through the validation check-list.

COMMISSION_HOST_INVALID_SPEC

Commission Hosts invalid spec

COMMISSION_HOST_INVALID_SPEC.remedy

Please pass a valid Commission Hosts spec.

ROTATE_HOST_SSH_KEYS_FAILED

Error rotating SSH key for the Host - [{0}].

ROTATE_HOST_SSH_KEYS_FAILED.remedy

Please make sure that commonsvcs service is up and running.

FAILED_TO_GET_SDDCMANAGER_KNOWNHOSTS

Failed to get SDDC Manager known hosts.

FAILED_TO_GET_SDDCMANAGER_KNOWNHOSTS.remedy

Please make sure that commonsvcs service is up and running.

FAILED_TO_UPDATE_SDDCMANAGER_KNOWNHOSTS

Error updating SDDC Manager known hosts.

FAILED_TO_UPDATE_SDDCMANAGER_KNOWNHOSTS.remedy

Please make sure that commonsvcs service is up and running.

HOSTS_NOT_FOUND_IN_SDDCMANAGER_KNOWNHOSTS

Post validation failed as Host(s) - {0} not found in SDDC Manager known hosts.

HOSTS_NOT_FOUND_IN_SDDCMANAGER_KNOWNHOSTS.remedy

Please initiate a fresh decommisioning workflow for these host(s) - {0}.

FAILED_TO_POST_KNOWNHOSTS_TO_APPLIANCEMANAGER

Error posting known hosts to SDDC Manager. Status: {0}

FAILED_TO_POST_KNOWNHOSTS_TO_APPLIANCEMANAGER.remedy

Please make sure that commonsvcs service is up and running.

CLUSTER_FTT_UNKNOWN_ERROR

Null value for FTT for cluster {0}.

FAILED_TO_MOUNT_NFS_DATASTORE_ON_HOST

Failed to mount NFS datastore - {0}:{1} on Host - {2}.

NFS_DATASTORE_NOT_MOUNTED_ON_HOSTS

NFS datastore - {0}:{1}:{2} not mounted on Host(s) - {3}.

VCF_HOST_CONNECTIVITY_TO_HOST_FAILED

Could not connect to Host - [{0}].

FAILED_TO_UPDATE_NFS_CONFIGURATION_ON_SDDC_MANAGER

Failed to update NFS configuration for Hosts - {0}

FAILED_TO_REFRESH_NFS_CONFIGURATION_ON_SDDC_MANAGER

Refreshing NFS configuration on SDDC Manager failed.

FAILED_TO_DETERMINE_SDDC_MANAGER_IPADDRESS

Failed to determine SDDC Manager IP address.

FAILED_TO_FETCH_HOST_ATTRIBUTES

Failed to fetch attributes from Host - {0}.

FAILED_TO_FETCH_HOST_ATTRIBUTES.remedy

Please make sure that commonsvcs service is up and running.

REMOVE_HOSTS_FROM_NOT_ACTIVE_DOMAIN_ERROR

Removal for hosts {0} from not active domain is not allowed.

REMOVE_HOSTS_FROM_NOT_ACTIVE_CLUSTER_ERROR

Removal for hosts {0} from not active cluster is not allowed.

HOSTS_ALREADY_BEING_REMOVED

Host(s) {0} already being removed.

REMOVE_HOSTS_NOT_ACTIVE_VCENTER_ERROR

Removal for hosts {0} from domain with not active vCenter is not allowed.

REMOVE_HOSTS_NOT_ACTIVE_NSX_MANAGER_ERROR

Not attempting to remove hosts {0} from cluster {1} when the NSX Manager is in a bad state. Retry after confirming NSX Manager is not reporting any errors.

REMOVE_HOSTS_NOT_ACTIVE_NSX_T_MANAGER_ERROR

Not attempting to remove hosts {0} from cluster {1} when the NSX-T Manager is in a bad state. Retry after confirming NSX-T Manager is not reporting any errors.

REMOVE_HOSTS_NOT_ACTIVE_NSX_MANAGER_ERROR.remedy

Retry after confirming NSX Manager is not reporting any errors.

REMOVE_HOST_FAILED_CRITICAL_ALARMS

Failed to remove host because of uncleared critical alarms on cluster {0}.

REMOVE_HOST_FAILED_CRITICAL_ALARMS.remedy

Address critical issues and retry the task.

COMM_FAILED_DUE_TO_MISSING_HOSTS

Failed because hosts {0} are no more in the inventory.

COMM_FAILED_DUE_TO_MISSING_HOSTS.remedy

Please initiate a new workflow with the hosts {0}.

DECOMM_FAILED_DUE_TO_MISSING_HOSTS

Failed because host(s) : {0} are no more in the inventory.

DECOMM_FAILED_DUE_TO_MISSING_HOSTS.remedy

Please verify if correct set of hosts are being decommissioned.

HOSTS_NOT_IN_EXPECTED_CLUSTERS_ERROR

Hosts {0} are not in expected cluster {1} anymore.

DECOMMISSIONING_FAILED

Decommissioning failed. Reason : {0}

SSH_LOGIN_FAILED

SSH login failed for the host: {0}

FAILED_TO_EXECUTE_COMMAND

Command {0} execution failed on the host: {1}.

DM_NTP_SYNC_FAILED

Time synchronization of the NTP servers {0} failed on the host {1}.

DM_NTP_SYNC_FAILED.remedy

Please check the connectivity of NTP servers {0} from host {1}.

HOSTS_COMMISSION_SPEC_VALIDATION_FAILED

Hosts commission spec validation failed. errors: {0}.

HOSTS_VALIDATION_FOR_COMMISSION_FAILED

Hosts validation for commission failed. errors: {0}.

FAILED_TO_RAISE_EVENT

Failed to raise event.

FQDN_NULL_OR_EMPTY

FQDN cannot be null, empty or blank

HOST_USERNAME_NULL_OR_EMPTY

Host username cannot be null, empty or blank

HOST_PASSWORD_NULL_OR_EMPTY

Host password cannot be null, empty or blank

STORAGE_TYPE_NULL

Storage type cannot be null or blank

NETWORKPOOL_ID_NULL_OR_EMPTY

Network pool ID cannot be null, empty or blank

NETWORKPOOL_ID_INVALID

Invalid Network pool ID

STORAGE_TYPE_INVALID

Storage type is invalid. Allowable values: {0}

HOST_SPEC_EMPTY

Input specification must not be empty

WCP_LICENSE_VALIDATION_FAILED

Workload Management is not inactive for the cluster and provided host license {0} has no Workload Management feature

VVOL_STORAGE_PROTOCOL_NULL_OR_EMPTY

vVol storage protocol cannot be null, empty or blank when storage type is vVol

VVOL_STORAGE_PROTOCOL_INVALID

vVol storage protocol is invalid. Allowable values: {0}

VCENTER_PASSWORD_EXPIRED

Password for VCenter with hostname {0} has expired.

VCENTER_PASSWORD_EXPIRED.remedy

Please check https://kb.vmware.com/s/article/2147144 for more details.

VCENTER_PASSWORD_VALIDATION_FAILED

Validation of password for VCenter with id {0} failed.

ESXI_CONFIGURATION_INPUT_GENERATION_FAILED

Failed to generate ESXi configuration input

FAILED_TO_GET_HOST_DNS_CONFIG

Failed to get the DNS configuration from the host {0}

HOST_INSTALL_TEMPORARY_CERTIFICATE_FAILED

Failed to install temporary VMCA commissioning certificate for host {0}

ESX_THUMBPRINT_VALIDATION_FAILED

ESX {0} thumbprint validation fails

ESX_THUMBPRINTS_NULL_OR_EMPTY

ESX {0} thumbprints cannot be null or empty

FAILED_TO_CONFIGURE_NFS_FOR_HOSTS

Failed to mount NFS datastore on Host - {0}

FAILED_TO_RETRIEVE_ESXI_VERSION

Failed to retrieve ESXi version for Host {0}

SDDC_MANGER_NTP_SERVER_NOT_IN_SYNC

SDDC Manager is not in sync with NTP server(s).

5.1.2. Common

Error code Description

PUBLIC_CLUSTERSPEC_VALIDATION_FAILED

Failed to validate cluster spec for {0} with errors {1}

PUBLIC_CLUSTERSPEC_VALIDATIONS_FAILED

Cluster spec validation errors

PUBLIC_CLUSTEREXPANSION_SPEC_VALIDATION_FAILED

Failed to validate cluster expansion spec

PUBLIC_CLUSTERSTRETCH_SPEC_VALIDATION_FAILED

Failed to validate stretch cluster spec

PUBLIC_INTERNAL_SERVER_ERROR

InternalServerError

PUBLIC_UNSUPPORTED_OPERATION

This operation is not supported for this SKU type

PUBLIC_BAD_REQUEST

Bad Request

PUBLIC_DOMAINSPEC_VALIDATION_FAILED

Failed to validate domain spec

PUBLIC_HOST_IN_SPEC_VALIDATION_FAILED

Failed to validate hosts in given spec with errors {0}

PUBLIC_VXRAIL_MANAGER_CONNECTION_FAILED

Failed to connect VxRail Manager with errors {0}

PUBLIC_SKUTYPE_NOT_SUPPORTED

Given SKU type is not supported

PUBLIC_OPERATION_NOT_SUPPORTED

Operation not supported for current environment

PUBLIC_EDGESPEC_VALIDATION_FAILED

Failed to validate edge cluster creation spec. {0}

PUBLIC_EDGE_UPDATESPEC_VALIDATION_FAILED

Failed to validate edge cluster update spec. {0}

PUBLIC_CRITERIA_NOT_FOUND

Criteria with name {0} does not exist

PUBLIC_VALIDATION_IN_PROGRESS

Validation is still in progess for the task {0}

PUBLIC_NULL_CRITERIA

Criteria cannot be an empty or null value

PUBLIC_INVALID_INPUT_FOR_CRITERIA

Invalid input for critera with name {0}, please correct and retry the operation

PUBLIC_UNSTRETCH_NOT_SUPPORTED

Unstretch operation not supported

PUBLIC_HOST_SSH_VALIDATION_FAILURE

SSH validation failed for hosts {0} with account {1}.

PUBLIC_HOST_SSH_VALIDATION_FAILURE.remedy

Please ensure that the correct credentials are provided and the provided host account is not locked.

PUBLIC_BAD_REQUEST_MULTIPLE_DOMAIN_UPDATE_OPERATIONS

Only one domain update operation is allowed at a time

PUBLIC_BAD_REQUEST_MULTIPLE_DOMAIN_UPDATE_OPERATIONS.remedy

Ensure the domain update spec has only one field

PUBLIC_NON_VXRAIL_HOSTS_FOUND

Hosts not managed by VxRail are not compliant with current operation, remove hosts with host names {0} to proceed

PUBLIC_IP_ADDRESS_RANGES_OVERLAP_WITH_EXISTING_IP_POOL

The IP address range {0} overlaps with the existing IP address ranges {1} of the IP address pool {2} in the NSX-T cluster {3}

PUBLIC_IP_ADDRESS_RANGES_OVERLAP_IN_SPEC

The IP address ranges {0} passed in the input spec overlaps.

PUBLIC_IP_ADDRESSES_NOT_PART_OF_CIDR

The IP addresses {0} in the spec are not part of their CIDR {1}

PUBLIC_INVALID_IP_ADDRESS_RANGE

The IP address ranges {0} are not valid

PUBLIC_NOT_ENOUGH_IP_ADDRESSES_AVAILABLE

Not enough IP addresses available in the IP address pool {0}, needed {1} IP addresses but found {2}

PUBLIC_IP_ADDRESS_POOL_DOESNOT_EXIST

IP address pool {0} does not exist in the NSX-T cluster {1} for reuse

PUBLIC_FAILED_TO_VALIDATE_IP_ADDRESS_POOL

Failed to validate the IP address pool

PUBLIC_IP_ADDRESS_POOL_NAME_NOT_UNIQUE

An IP address pool with the name {0} already exists in the NSX-T cluster {1}

PUBLIC_INVALID_GATEWAY_IP_ADDRESS

The gateway IP address in the spec {0} is not part of the subnet {1}

PUBLIC_INVALID_CIDR_NOTATION

The CIDR notation {0} in the spec is invalid

PUBLIC_IP_ADDRESS_POOL_SPEC_VALIDATION_FAILED

IP address pool spec validation failed with errors {0}

PUBLIC_IP_ADDRESS_POOL_CONTAINS_SUBNETS_WITHOUT_GATEWAY

The IP address pool {0} cannot be used as it contains subnets without gateway

PUBLIC_IP_ADDRESS_POOL_CONTAINS_BLOCK_SUBNETS

The IP address pool {0} cannot be used as it contains block subnet(s)

PUBLIC_INVALID_IP_ADDRESS_POOL_GATEWAY_RANGE

The gateway IP address {0} must not be within IP address pool range {1} and {2}

CLUSTER_CONFIGURATION_FOR_VC_NOT_FOUND

Failed to fetch configurations of cluster {0} from vCenter

SDDC_MANAGER_VCENTER_NOT_FOUND_FOR_DOMAIN_NAME

Failed to get vCenter for domainName {0}

PUBLIC_REMOVE_DOMAIN_NOT_SUPPORTED_WHEN_STRETCHED_CLUSTERS_ARE_PRESENT

Cannot remove Domain as Clusters {0} in the Domain are stretched

PUBLIC_REMOVE_DOMAIN_NOT_SUPPORTED_WHEN_STRETCHED_CLUSTERS_ARE_PRESENT.remedy

Unstretch Clusters before removing the Domain

PUBLIC_VXRAIL_CLUSTER_CREATION_CANNOT_SKIP_FAILED_HOSTS

Failed ESXi Hosts cannot be skipped during VxRail Cluster creation

PUBLIC_VXRAIL_CLUSTER_CREATION_CANNOT_SKIP_FAILED_HOSTS.remedy

Remove the optional field "skipFailedHosts" from the "computeSpec" in the Cluster creation spec

FAILED_TO_FETCH_NSXT_VERSION

Failed to fetch the NSX-T version of the domain {0} which is being expanded

VCENTERS_WITH_EXTERNAL_PSC_FOUND_ON_ENVIRONMENT

vCenters With External PSC found on environment: {0}

FETCH_HOST_DETAILS_FAILED

Failed to fetch ESXi Host(s) details

FAILED_TO_TRUST_VXRAIL_MANAGER_CERTFICATE

Failed to trust VxRail Manager {0} certificate

FAILED_TO_GET_VXRAIL_MANAGER_CERTFICATE

Failed to get VxRail Manager {0} certificate

VALIDATE_HOST_CERTIFICATE_ON_VC_FAILED

Failed to validate ESXi host certificate on vCenter

VALIDATE_HOST_CERTIFICATE_ON_SDDC_MANAGER_FAILED

Failed to validate ESXi host certificate on SDDC manager

SDDC_MANAGER_VCENTER_NOT_FOUND_FOR_CLUSTER

Failed to get vCenter for cluster {0}

CLUSTER_INVENTORY_VALIDATION_FAILED

The cluster inventory validation workflow failed with status {0}

CLUSTER_INVENTORY_VALIDATION_FAILED.remedy

Please make sure your system is in stable state with the domainmanager app running and retry workflow

5.1.3. Domains

Error code Description

VI_MANAGER_PUBLIC_REMOVE_VI_NOT_INITIALIZED

Vi removal for domain {0} is not initialized

VI_MANAGER_PUBLIC_HOST_CRITERION_DOES_NOT_EXIST

Host criteria with name {0} does not exist

VI_MANAGER_PUBLIC_CLUSTER_CRITERION_DOES_NOT_EXIST

Cluster criteria with name {0} does not exist

VI_MANAGER_PUBLIC_DOMAIN_NOT_FOUND_FOR_ID

Domain not found for id {0}

VI_MANAGER_PUBLIC_VALIDATION_TASK_NOT_FOUND

Task not found for the validation id {0}

VI_MANAGER_PUBLIC_HOST_CREDENTIAL_NOT_FOUND

Credential for host with ID {0} not found

5.1.4. Clusters

Error code Description

CLUSTER_NOT_FOUND_FOR_ID

Cluster with ID {0} not found.

VALIDATION_TASK_NOT_FOUND

No validation task found.

REMOVE_CLUSTER_WCP_ENABLED_ERROR

Can’t remove WCP enabled cluster {0}, Please disable WCP on the cluster from vSphere, prior to removing the cluster.

5.1.5. Credentials

Error code Description

PASSWORD_MANAGER_ENTITY_TYPE_NOT_FOUND

Entity type {0} not found.

PASSWORD_MANAGER_ENTITY_TYPE_NOT_FOUND.remedy

Use a valid entity type, {0} is not a valid entity type.

PASSWORD_MANAGER_DOMAIN_NAME_NOT_FOUND

Domain {0} doesn’t exist.

PASSWORD_MANAGER_DOMAIN_NAME_NOT_FOUND.remedy

Use a valid domain name.

PASSWORD_MANAGER_CREDENTIAL_TYPE_NOT_FOUND

Credential type {0} not found.

PASSWORD_MANAGER_CREDENTIAL_TYPE_NOT_FOUND.remedy

Use a valid credential type, {0} is not a valid credential type.

PASSWORD_MANAGER_ENTITY_ID_NOT_FOUND

Entity ID {0} not found.

PASSWORD_MANAGER_ENTITY_ID_NOT_FOUND.remedy

Use a valid entity Id.

PASSWORD_MANAGER_ENTITY_IP_ADDRESS_NOT_FOUND

Entity IP address not found.

PASSWORD_MANAGER_ENTITY_IP_ADDRESS_NOT_FOUND.remedy

Use a valid entity IP address.

PASSWORD_MANAGER_ENTITY_NAME_NOT_FOUND

Entity name {0} not found.

PASSWORD_MANAGER_ENTITY_NAME_NOT_FOUND.remedy

Use a valid entity name.

PASSWORD_MANAGER_ENTITY_USER_NAME_NOT_FOUND

Entity username not found.

PASSWORD_MANAGER_ENTITY_USER_NAME_NOT_FOUND.remedy

Use a valid user name for the entity.

PASSWORD_MANAGER_ENTITY_PASSWORD_NOT_FOUND

Entity password not found.

PASSWORD_MANAGER_INVALID_USER_FOR_CREDENTIAL

Entity user name {0} is invalid for {1}.

PASSWORD_MANAGER_INVALID_USER_FOR_CREDENTIAL.remedy

Use a valid user name for the entity.

PASSWORD_MANAGER_CHANGER_NOT_FOUND

Invalid entity type {0} for credential {1}.

PASSWORD_MANAGER_CHANGER_NOT_FOUND.remedy

Use a valid combination of entity type and associated credential.

PASSWORD_MANAGER_TRANSACTION_WORKFLOWID_NOT_FOUND

Could not find workflow ID {0}.

PASSWORD_MANAGER_TRANSACTION_WORKFLOWID_NOT_FOUND.remedy

Use a valid workflow Id.

PASSWORD_MANAGER_TASK_REGISTRATION_FAILED

Failed to register with Task aggregator for {0}.

PASSWORD_MANAGER_TASK_REGISTRATION_FAILED.remedy

Check if task aggregator is up and responding.

PASSWORD_MANAGER_TASK_CANCELLATION_FAILED

Failed to cancel task from Task aggregator for {0}.

PASSWORD_MANAGER_TASK_CANCELLATION_FAILED.remedy

Check if task aggregator is up and responding.

PASSWORD_MANAGER_TRANSACTION_ID_NOT_FOUND

Task ID {0} not found.

PASSWORD_MANAGER_TRANSACTION_ID_NOT_FOUND.remedy

Use a valid task Id.

PASSWORD_MANAGER_CANNOT_PATCH

Task ID {0} cannot be patched as it is already successful/cancelled.

PASSWORD_MANAGER_CANNOT_PATCH.remedy

Use a valid task Id in running state, if applicable.

PASSWORD_MANAGER_CANNOT_BE_RESTARTED

Transaction ID {0} cannot be restarted as the supplied password became void due to another update.

PASSWORD_MANAGER_CANNOT_BE_RESTARTED.remedy

You might need to try a new transaction to use a desired password.

PASSWORD_MANAGER_UPDATE_IN_PROGRESS

Password update task {0} is in progress/failed state, retry after sometime.

PASSWORD_MANAGER_UPDATE_IN_PROGRESS.remedy

Wait for currently in-progress transaction to complete as succeeded/cancelled.

PASSWORD_MANAGER_NEW_PASSWORD_NOT_ALLOWED

Password update transaction {0} cannot have a modified password at this time.

PASSWORD_MANAGER_NEW_PASSWORD_NOT_ALLOWED.remedy

Use the same password previously used in this transaction.

PASSWORD_MANAGER_TRANSACTION_ID_MISSING

Required parameter transactionId missing in PATCH request body.

PASSWORD_MANAGER_TRANSACTION_ID_MISSING.remedy

Supply the transactionId in request.

PASSWORD_MANAGER_MISC_ERROR

Unknown error occurred, check log further. Error : {0}.

PASSWORD_MANAGER_MISC_ERROR.remedy

Error occurred is not a common expected exception. Fix the exception cause.

PASSWORD_MANAGER_CANNOT_BE_CANCELLED

Task ID {0} should be in the failure state to initiate cancel operation.

PASSWORD_MANAGER_CANNOT_BE_CANCELLED.remedy

Cancel option is only available for a failed transaction.

PASSWORD_MANAGER_ENTITY_TYPE_NOT_SUPPORTED

Entity type {0} is not supported.

PASSWORD_MANAGER_ENTITY_TYPE_NOT_SUPPORTED.remedy

Use a supported entity type.

PASSWORD_MANAGER_PASSWORD_NOT_FOUND

Unable to find password for EntityType {0}.

PASSWORD_MANAGER_PASSWORD_NOT_FOUND.remedy

Check if password of this entity type is recorded by CSS.

PASSWORD_MANAGER_UPDATE_ACTION_MISSING

Password update action is missing.

PASSWORD_MANAGER_UPDATE_ACTION_MISSING.remedy

Supply an update action type.

PASSWORD_MANAGER_ENTITY_MISSING

Password update payload should have valid entity details.

PASSWORD_MANAGER_ENTITY_MISSING.remedy

Fix errors in entity details in payload.

PASSWORD_MANAGER_TRANSACTIONID_MISSING

Password update operation should have valid transaction ID.

PASSWORD_MANAGER_TRANSACTIONID_MISSING.remedy

Use a valid transaction Id for update operation.

PASSWORD_MANAGER_ENTITY_NOT_FOUND

Entity not found with provided information.

PASSWORD_MANAGER_ENTITY_NOT_FOUND.remedy

Check if provided information about entity is correct.

PASSWORD_MANAGER_INVALID_IPADDRESS

Invalid entity IP address {0}.

PASSWORD_MANAGER_INVALID_IPADDRESS.remedy

Use a valid entity IP address.

PASSWORD_MANAGER_INVALID_FQDN

Invalid entity name/FQDN {0}.

PASSWORD_MANAGER_INVALID_FQDN.remedy

Use a valid entity name/FQDN.

PASSWORD_MANAGER_INVALID_PAGE

Invalid page number specified.

PASSWORD_MANAGER_INVALID_PAGE.remedy

Use a valid page number.

PASSWORD_MANAGER_INVALID_PAGE_ARGUMENTS

Invalid page arguments specified.

PASSWORD_MANAGER_INVALID_PAGE_ARGUMENTS.remedy

Use valid page arguments.

PASSWORD_MANAGER_RESOURCE_STATE_CANNOT_BE_SET

Unable to set the status {0} for {1}.

PASSWORD_MANAGER_RESOURCE_STATE_CANNOT_BE_SET.remedy

Check if inventory APIs are responsive.

PASSWORD_MANAGER_RESOURCE_UNAVAILABLE

Resource {0} is not available/ready.

PASSWORD_MANAGER_DEPENDENT_RESOURCE_UNAVAILABLE

Dependent resource {0} is not available/active.

PASSWORD_MANAGER_DEPENDENT_RESOURCE_UNAVAILABLE.remedy

Wait for dependant resource to become active, you might need to fix the workflow marking resource in error state.

PASSWORD_MANAGER_RESOURCES_UNAVAILABLE

Resources {0} are not available/ready.

PASSWORD_MANAGER_RESOURCE_UNAVAILABLE.remedy

Wait for resources to become active, you might need to fix the workflow(s) marking resources in error state.

PASSWORD_MANAGER_CSS_SYNC_ERROR

Retry this task {0} as it cannot be canceled at this stage due to storage error.

PASSWORD_MANAGER_CSS_SYNC_ERROR.remedy

Current stage doesn’t allow cancel as sync of passwords will fail, retry the failed task.

PASSWORD_MANAGER_ENTITY_MISMATCH

The task {0} doesn’t match with the supplied entity.

PASSWORD_MANAGER_ENTITY_MISMATCH.remedy

Please use the same entity as the task initially operated on.

PASSWORD_MANAGER_ENTITY_LIST_NOT_FOUND

List of entities must be supplied for rotate operation.

PASSWORD_MANAGER_ENTITY_LIST_NOT_FOUND.remedy

Supply the list of entities in the rotate operation request.

PASSWORD_MANAGER_ROTATE_CANNOT_BE_STARTED

The password rotate operation cannot be started.

PASSWORD_MANAGER_ROTATE_CANNOT_BE_STARTED.remedy

Check logs and fix the cause of failure in transaction initiation.

PASSWORD_MANAGER_TRANSACTION_TYPE_MISMATCH

Task ID {0} cannot be patched as it’s type {1} is incorrect.

PASSWORD_MANAGER_TRANSACTION_TYPE_MISMATCH.remedy

Use the same operation type in retry request as in the failed transaction.

PASSWORD_MANAGER_OPERATION_TYPE_MISSING

Password operation type is missing.

PASSWORD_MANAGER_OPERATION_TYPE_MISSING.remedy

Supply the operation type in the request.

PASSWORD_MANAGER_INVALID_OPERATION_TYPE

Operation type is invalid. Allowable values: {0}

PASSWORD_MANAGER_INVALID_OPERATION_TYPE.remedy

Use a valid operation type.

PASSWORD_MANAGER_UNKNOWN_ACTION

Password manager bulk update/rotate feature is disabled.

PASSWORD_MANAGER_DATA_IMPORT_FAILED_NO_DATA

Missing data to import, check data export function.

PASSWORD_MANAGER_DATA_IMPORT_FAILED

Failed to import provided data into password management data store.

PASSWORD_MANAGER_UNKNOWN_DATA_VERSION

Unknown version or version not supported by current import function.

PASSWORD_MANAGER_CREDENTIAL_ID_NOT_FOUND

Credential ID {0} not found.

PASSWORD_MANAGER_CREDENTIAL_ID_NOT_FOUND.remedy

Use a valid credential Id in request.

PASSWORD_MANAGER_VALIDATION_ID_NOT_FOUND

Validation ID {0} not found.

PASSWORD_MANAGER_RETRY_REQUEST_PAYLOAD_MISMATCH

Task ID {0} cannot be patched as there is mismatch in request body.

PASSWORD_MANAGER_RETRY_REQUEST_PAYLOAD_MISMATCH.remedy

Use the same details of resources in patch request as in the original failed task.

PASSWORD_MANAGER_INVALID_BASIC_AUTH_CREDENTIAL

Invalid basic-auth credential in request body.

PASSWORD_MANAGER_INVALID_BASIC_AUTH_CREDENTIAL.remedy

Supply correct credentials in the request.

PASSWORD_MANAGER_INVALID_RESOURCE_TYPE

Resource type is invalid. Allowable values: {0}.

PASSWORD_MANAGER_INVALID_RESOURCE_TYPE.remedy

Use a valid resource type.

PASSWORD_MANAGER_INVALID_CREDENTIAL_TYPE

Credential type is invalid. Allowable values: {0}.

PASSWORD_MANAGER_INVALID_CREDENTIAL_TYPE.remedy

Use a valid credential type.

PASSWORD_MANAGER_INVALID_PAGESIZE_LIMIT

Limit must not be less than one.

PASSWORD_MANAGER_INVALID_PAGESIZE_LIMIT.remedy

Use a valid page size limit.

PASSWORD_MANAGER_LOOKUP_FAILED

Failed to look up passwords due to an internal problem. Try again later.

PASSWORD_MANAGER_LOOKUP_FAILED.remedy

Check logs and fix the cause of error.

PASSWORD_MANAGER_CHECK_DEPLOYMENT_LOCK_FAILED

Unable to check status of deployment lock.

PASSWORD_MANAGER_ACQUIRE_DEPLOYMENT_LOCK_FAILED

Unable to acquire lock for password update.

PASSWORD_MANAGER_ACQUIRE_DEPLOYMENT_LOCK_FAILED.remedy

Wait for lock to be available, you might need to check if locking APIs are responsive.

PASSWORD_MANAGER_RELEASE_DEPLOYMENT_LOCK_FAILED

Unable to release lock for password update.

PASSWORD_MANAGER_RELEASE_DEPLOYMENT_LOCK_FAILED.remedy

Check if locking APIs are up and responding.

PASSWORD_MANAGER_DEPLOYMENT_LOCK_UNAVAILABLE

Deployment lock is currently held by an in-progress workflow.

PASSWORD_MANAGER_DEPLOYMENT_LOCK_UNAVAILABLE.remedy

Wait for in-progress workflow to finish and release the lock.

PASSWORD_MANAGER_INVALID_UUID

Invalid UUID.

PASSWORD_MANAGER_INVALID_UUID.remedy

Use a valid UUID.

PASSWORD_MANAGER_RESOURCE_FETCHER_TASK_FOR_ENTITY_NOT_FOUND

Unable to find resource fetcher task for given EntityType : {0}.

PASSWORD_MANAGER_RESOURCE_FETCHER_TASK_FOR_ENTITY_NOT_FOUND.remedy

Use a valid & supported entity type for lookup operation.

PASSWORD_MANAGER_REGISTER_TASK_WITH_TASK_AGGREGATOR_FAILED

Failed to register password management operation task with Task Aggregator, WorkflowId {0}.

PASSWORD_MANAGER_REGISTER_TASK_WITH_TASK_AGGREGATOR_FAILED.remedy

Check if task aggregator APIs are up and responding.

PASSWORD_MANAGER_CANCEL_TASK_WITH_TASK_AGGREGATOR_FAILED

Failed to cancel password management operation task with Task Aggregator, , WorkflowId {0}.

PASSWORD_MANAGER_CANCEL_TASK_WITH_TASK_AGGREGATOR_FAILED.remedy

Check if task aggregator APIs are up and responding.

PASSWORD_MANAGER_FETCH_VRA_ASSOCIATED_TO_AD_FAILED

Unable to get VRA associated to AD account from inventory.

PASSWORD_MANAGER_FETCH_VRA_ASSOCIATED_TO_AD_FAILED.remedy

Check if inventory APIs are up and responding.

PASSWORD_MANAGER_FETCH_SDDC_MANAGER_ASSOCIATED_TO_BACKUP_ACCOUNT_FAILED

Unable to get sddc manager associated to backup account from inventory.

PASSWORD_MANAGER_FETCH_SDDC_MANAGER_ASSOCIATED_TO_BACKUP_ACCOUNT_FAILED.remedy

Check if inventory APIs are up and responding.

PASSWORD_MANAGER_FETCH_ESXI_LIST_FAILED

Unable to get ESXI’s from the inventory.

PASSWORD_MANAGER_FETCH_ESXI_LIST_FAILED.remedy

Check if inventory APIs are up and responding.

PASSWORD_MANAGER_FETCH_VRLI_LIST_FAILED

Unable to get vRLI’s from inventory.

PASSWORD_MANAGER_FETCH_VRLI_LIST_FAILED.remedy

Check if inventory APIs are up and responding.

PASSWORD_MANAGER_FETCH_NSXT_EDGE_CLUSTERS_LIST_FAILED

Unable to get NSX-T Edge Clusters from NSX-T Cluster {0}.

PASSWORD_MANAGER_FETCH_NSXT_EDGE_CLUSTERS_LIST_FAILED.remedy

Check if NSX-T APIs are up and responding.

PASSWORD_MANAGER_FETCH_NSXT_TRANSPORT_NODES_LIST_FAILED

Unable to get NSX-T Transport Nodes from NSX-T Cluster {0}.

PASSWORD_MANAGER_FETCH_NSXT_TRANSPORT_NODES_LIST_FAILED.remedy

Check if NSX-T APIs are up and responding.

PASSWORD_MANAGER_RESOLVE_LOAD_BALANCER_IP_FAILED

Unable to resolve vRLI load balancer IP address.

PASSWORD_MANAGER_ERRORCAUSE_JSON_PARSING_FAILED

Unable to parse diagnostic details JSON to find error cause. Check the transaction details for exact error message.

PASSWORD_MANAGER_ERRORCAUSE_JSON_PARSING_FAILED.remedy

You might need to get the diagnostic details JSON from password management DB to know the error cause.

PASSWORD_MANAGER_CRASH_RECOVERY_TRANSACTION_INCONSISTENCY

Credential update for user : {0} on resource : {1} marked inconsistent during crash recovery. Generally this happens when the application/VM is restarted while an operation is in progress.

PASSWORD_MANAGER_CRASH_RECOVERY_TRANSACTION_INCONSISTENCY.remedy

Manually check the transaction in inconsistent state and fix the inconsistency, use retry/cancel operation to proceed further.

PASSWORD_MANAGER_CRASH_RECOVERY_TRANSACTION_PREVALIDATION_FAILED

Credential {0} operation failed. Generally this happens when the application/VM is restarted while an operation is in progress.

PASSWORD_MANAGER_CRASH_RECOVERY_TRANSACTION_PREVALIDATION_FAILED.remedy

Crash recovery marked this transaction in pre-validation stage as inconsistent. Please try a new transaction to change passwords.

PASSWORD_MANAGER_RESOURCE_CREDENTIALS_NOT_FOUND

Unable to find requested resource credentials for {0}.

PASSWORD_MANAGER_RETRIEVE_PASSWORD_EXPIRY_FAILED

Password expiry retrieval failed for {0}.

PASSWORD_UPDATE_LOGIN_FAILED_POST_PASSWORD_CHANGE

Unable to login using new password for entity {0}, after password change.

PASSWORD_UPDATE_LOGIN_FAILED_POST_PASSWORD_CHANGE.remedy

Check if the old password is working and then use cancel operation to release lock. Otherwise, check for errors in logs.

PASSWORD_UPDATE_UNKNOWN_ERROR_OCCURED

Unknown error occurred, check log further.

PASSWORD_UPDATE_UNKNOWN_ERROR_OCCURED.remedy

Try to fix error cause.

PASSWORD_UPDATE_CSS_CREDENTIAL_UPDATE_FAILED

Unable to update credentials for the host in css {0}.

PASSWORD_UPDATE_CSS_CREDENTIAL_UPDATE_FAILED.remedy

Check if CSS APIs are up and responding.

PASSWORD_MANAGER_ENTITY_CONNECTION_FAILED

Unable to connect to entity : {0}.

PASSWORD_MANAGER_ENTITY_CONNECTION_FAILED.remedy

Validate if resource is reachable, user is not in locked state and credentials used are correct.

PASSWORD_UPDATE_FETCH_ENTITY_FROM_INVENTORY_FAILED

Unable to retrieve entity type {0} from inventory.

PASSWORD_UPDATE_FETCH_ENTITY_FROM_INVENTORY_FAILED.remedy

Check if inventory APIs are up and responding.

PASSWORD_UPDATE_SET_ENTITY_STATUS_IN_INVENTORY_FAILED

Unable to set the status for {0} to inventory.

PASSWORD_UPDATE_SET_ENTITY_STATUS_IN_INVENTORY_FAILED.remedy

Check if inventory APIs are up and responding.

PASSWORD_UPDATE_UNKNOWN_DOMAIN_NAME

Unknown domain name to fetch VCF Solutions, domain name:{0}.

PASSWORD_UPDATE_UNKNOWN_DOMAIN_NAME.remedy

Check if inventory APIs are up and responding.

PASSWORD_MANAGER_FETCH_ENTITY_CREDENTIALS_FAILED

Unable to find credential for {0} and credential type {1}.

PASSWORD_MANAGER_FETCH_ENTITY_CREDENTIALS_FAILED.remedy

Check if CSS APIs are up and running, validate if requested credential type is valid.

PASSWORD_MANAGER_FETCH_ENTITYTYPE_CREDENTIALS_FAILED

Unable to find credential for {0}.

PASSWORD_UPDATE_FETCH_SERVICE_ACCOUNTS_CREDENTIALS_FAILED

Unable to find credential for service accounts.

PASSWORD_MANAGER_FETCH_ALL_CREDENTIALS_FAILED

Unable to get all credentials from CSS.

PASSWORD_UPDATE_ENTITYTYPE_NULL_FOR_CREDENTIAL_FETCH

Unable to filter credential list as entity type is null.

PASSWORD_UPDATE_ENTITYTYPE_OR_CREDENTIALTYPE_NULL_FOR_CREDENTIAL_FETCH

EntityType or CredentialType to filter credential list is null.

PASSWORD_UPDATE_FETCH_SERVICE_ACCOUNT_CREDENTIALS_FAILED

Unable to find service account credentials.

PASSWORD_UPDATE_RESPONSE_DATA_PARSING_FAILED

Unable to parse response data.

PASSWORD_GET_NSX_BACKUP_SETTINGS_FAILED

Unable to get backup settings for NSX {0} with backup user credentials.

PASSWORD_UPDATE_NSX_BACKUP_SETTINGS_FAILED

Unable to update NSX with backup user credentials.

PASSWORD_UPDATE_INTERACTIVE_SHELL_SESSION_ERROR

Error occurred in interactive shell session.

PASSWORD_UPDATE_WEAK_PASSWORD_PROVIDED

Password must include at least 1 uppercase and lowercase character, must also have 1 numeric and 1 special character from [!,@,#,$,^,*]. It should have length between 8-127 characters with no three adjacent characters repeating.

PASSWORD_UPDATE_WEAK_PASSWORD_PROVIDED.remedy

Use a password which satisfies password complexity requirements.

PASSWORD_UPDATE_WEAK_WSA_API_PASSWORD_PROVIDED

vIDM API user password must include at least 1 uppercase and lowercase character, must also have 1 numeric and 1 special character from [!,@,#,^,*]. It should have length between 8-127 characters with no three adjacent characters repeating. Note that '$' is not an allowed character in password from vIDM product.

PASSWORD_UPDATE_WEAK_WSA_API_PASSWORD_PROVIDED.remedy

Use a password which satisfies password complexity requirements. Note that '$' is not an allowed character in password from vIDM product.

PASSWORD_UPDATE_WEAK_NSXT_PASSWORD_PROVIDED

NSXT API user password must include at least 1 uppercase and lowercase character, must also have 1 numeric and 1 special character from [!,@,#,^,*]. It should have length between 8-127 characters with no three adjacent characters repeating. Must NOT include more than four monotonic character sequences. Must NOT be a palindrome.

PASSWORD_UPDATE_WEAK_NSXT_PASSWORD_PROVIDED.remedy

Use a password which satisfies password complexity requirements.

PASSWORD_UPDATE_USER_NOT_VALIDATED

Username {0} could not be validated.

PASSWORD_MANAGER_ENABLE_SSH_FAILED

Enable SSH on Edge Node {0} {1} failed for user {3}

PASSWORD_UPDATE_DISABLE_SSH_FAILED

Disable SSH on Edge Node {0} {1} failed for user {3}

PASSWORD_UPDATE_FETCH_VROPS_ADAPTER_CREDENTIAL_IN_VRLI_FAILED

Could not get vROPS adapter credential in vRLI.

PASSWORD_UPDATE_FETCH_VCENTER_ADAPTER_CREDENTIAL_IN_VRLI_FAILED

Could not get vCENTER adapter credential in vRLI.

PASSWORD_UPDATE_UPDATE_VCENTER_ADAPTER_CREDENTIAL_IN_VRLI_FAILED

could not update vCENTER adapter credential in vRLI.

PASSWORD_UPDATE_UPDATE_VROPS_ADAPTER_CREDENTIAL_IN_VRLI_FAILED

could not update vROPS adapter credential in vRLI.

PASSWORD_UPDATE_LOGINSIGHT_SESSIONID_FAILED

Could not get sessionId from vRLI.

PASSWORD_UPDATE_LOGINSIGHT_VIP_NOT_FOUND

vRLI VIP was not found.

PASSWORD_UPDATE_NSX_CONTROLLERS_NOT_RUNNING

one or more NSX controllers are not running.

PASSWORD_UPDATE_NSX_CONTROLLERS_FAILED

Unable to change password of NSX controllers in NSX manager: {0}.

PASSWORD_UPDATE_NSX_EDGES_FAILED

Unable to change password of NSX edge in NSX manager: {0}.

PASSWORD_MANAGER_SSH_CONNECTION_FAILED

Unable to obtain SSH connection to entity: {0}.

PASSWORD_MANAGER_SSH_CONNECTION_FAILED.remedy

Please verify that the account is active and is not locked. If the password of the account has expired, manually reset the password in the product and then perform a REMEDIATE operation in the SDDC Manager, to update its stored copy of the password.

PASSWORD_UPDATE_INVALID_SECONDARY_PSC_PASSWORD

Invalid password sent in request, Password used must be same as primary PSC instance password.

PASSWORD_MANAGER_PSC_ADMIN_CLIENT_CONNECTION_FAILED

Unable to establish connection with resource.

PASSWORD_MANAGER_PSC_ADMIN_CLIENT_CONNECTION_FAILED.remedy

Please verify that the account is active and is not locked. If the password of the account has expired, manually reset the password in the product and then perform a REMEDIATE operation in the SDDC Manager, to update its stored copy of the password.

PASSWORD_UPDATE_PASSWORD_POLICY_VOILATED

Invalid password for the specified password policy for entity : {0}.

PASSWORD_UPDATE_FETCH_NSXT_USER_DETAILS_FAILED

Failed to get NSXT user details.

PASSWORD_UPDATE_FETCH_NSXT_USER_DETAILS_FAILED.remedy

Please verify that the account is active and is not locked. If the password of the account has expired, manually reset the password in the product and then perform a REMEDIATE operation in the SDDC Manager, to update its stored copy of the password.

PASSWORD_MANAGER_NSXT_USER_API_FAILED

Failed to get NSXT user details.

PASSWORD_MANAGER_NSXT_USER_API_FAILED.remedy

Please verify that the account is active and is not locked. If the password of the account has expired, manually reset the password in the product and then perform a REMEDIATE operation in the SDDC Manager, to update its stored copy of the password.

PASSWORD_UPDATE_FETCH_NSXT_COMPUTE_MANAGER_DETAILS_FAILED

Failed to get NSXT Compute Managers details.

PASSWORD_UPDATE_NSXT_COMPUTE_MANAGER_API_FAILED

Update API for NSXT Compute Manager failed.

PASSWORD_GET_NSXT_BACKUP_SETTINGS_API_FAILED

The attempt to confirm the current configuration of a NSX-T cluster {0} failed. Check that it is accessible and then retry the operation..

PASSWORD_UPDATE_NSXT_BACKUP_SETTINGS_API_FAILED

Update API for for BACKUP settings failed.

PASSWORD_UPDATE_PKS_API_FAILED

VCF solutions API failed.

PASSWORD_UPDATE_BASIC_AUTH_CREDENTIAL_API_FAILED

Update basic auth password API failed.

PASSWORD_MANAGER_MANAGEMENT_VCENTER_FOR_HOST_NOT_FOUND

Invalid inventory, no management vCenter for host found.

PASSWORD_MANAGER_COMMAND_EXECUTION_IN_VM_FAILED

Failed executing command in VM.

PASSWORD_MANAGER_FILE_READ_IN_VM_FAILED

Failed reading file in VM.

PASSWORD_UPDATE_VRA_CREDENTIAL_FAILED

could not update vRA credential.

PASSWORD_UPDATE_MISSING_PRODUCT_IN_VRSLCM

Failed to update {0} environment because of missing configuration of {0} in VRSLCM, configure {0} in VRSLCM.

PASSWORD_UPDATE_MISSING_REQUEST_ID_IN_VRSLCM

Failed to update admin password in VRSLCM because of missing request id.

PASSWORD_UPDATE_VRSLCM_API_FAILED

Failed to update Environment in vRSLCM because of error response.

PASSWORD_UPDATE_FETCH_VRA_NODES_FAILED

Failed to get node details of the vRA product.

PASSWORD_UPDATE_SSO_CREDENTIALS_FOR_NSX_MANAGER_FAILED

Unable to update SSO credentials for NSX manager : {0}.

PASSWORD_UPDATE_SSO_CREDENTIALS_FOR_CAFE_NODES_FAILED

Unable to update SSO credentials with cafe nodes : {0}.

PASSWORD_UPDATE_SSO_CREDENTIALS_FOR_VROPS_FAILED

Unable to update SSO with vrops primary nodes : {0}.

PASSWORD_UPDATE_SSO_CREDENTIALS_FOR_VXRAIL_MANAGER_FAILED

Unable to update SSO credentials for VxRail manager : {0}.

PASSWORD_UPDATE_VCENTER_CREDENTIALS_FOR_VRSLCM_FAILED

Unable to update vCenter password in vRSLCM: {0}.

PASSWORD_UPDATE_VRA_API_CREDENTIALS_TO_VROPS_FAILED

Unable to update vra api credentials to vrops.

PASSWORD_UPDATE_FETCH_VRSLCM_TOKEN_FAILED

Failed to get token from vRSLCM.

PASSWORD_UPDATE_VRLI_FAILED_IN_VRSLCM

VRLI product failed to update in vRSLCM environment. Manually update the vRLI environment in VRSLCM.

PASSWORD_MANAGER_CSS_PASSWORD_TEST_FAILED

Testing existing ssh credential for the entity: {0} has failed.

PASSWORD_MANAGER_CSS_PASSWORD_TEST_FAILED.remedy

Please verify that the account is active and is not locked. If the password of the account has expired, manually reset the password in the product and then perform a REMEDIATE operation in the SDDC Manager, to update its stored copy of the password.

PASSWORD_UPDATE_ENTITY_FAILED

Failed to change password for entity : {0}.

PASSWORD_MANAGER_BASH_SHELL_ACTIVATION_FAILED

Unable to activate bash shell on {0}.

PASSWORD_MANAGER_BASH_SHELL_ACTIVATION_FAILED.remedy

Please verify that the account is active and is not locked. If the password of the account has expired, manually reset the password in the product and then perform a REMEDIATE operation in the SDDC Manager, to update its stored copy of the password.

PASSWORD_MANAGER_BASH_SHELL_DEACTIVATION_FAILED

Unable to deactivate bash shell on {0}.

PASSWORD_MANAGER_BASH_SHELL_DEACTIVATION_FAILED.remedy

Please verify that the account is active and is not locked. If the password of the account has expired, manually reset the password in the product and then perform a REMEDIATE operation in the SDDC Manager, to update its stored copy of the password.

PASSWORD_MANAGER_FETCH_VRA_TOKEN_FAILED

Unable to get token from vra: {0}.

PASSWORD_UPDATE_FETCH_CASSANDRA_CREDENTIALS_FROM_VRLI_FAILED

Could not retrieve cassandra credentials from VRLI : {0}.

PASSWORD_UPDATE_CUSTOM_JUNIT_EXCEPTION

Custom exception errorcode for Junits.

PASSWORD_MANAGER_NO_VCENTER_FOR_DOMAIN_FOUND

Invalid inventory, no domain vCenter for the domain : {0}.

PASSWORD_MANAGER_FETCH_SSO_CREDENTIALS_FAILED

Unable to get SSO credentials.

PASSWORD_MANAGER_GET_VRSLCM_VERSION_FAILED

Unable to get vRealize LifeCycle Operations Manager version.

PASSWORD_UPDATE_NO_DOMAIN_FOR_DOMAIN_NAME_FOUND

Invalid inventory, no domain found for the domain name : {0}.

PRIVILEGED_USER_AUTHORIZATION_FAILED

Privileged user not authorized for this operation.

PRIVILEGED_USER_AUTHENTICATION_FAILED

Invalid privileged username and/or password.

PRIVILEGED_USER_USERNAME_MISSING_DOMAIN

Privileged username must be in the format user@domain.

PRIVILEGED_USER_GENERIC_ERROR

Internal error occurred during validation of privileged user credentials.

PASSWORD_START_SSH_NSXT_API_FAILED

Failed to start SSH service on NSXT.

PASSWORD_STOP_SSH_NSXT_API_FAILED

Failed to stop SSH service on NSXT.

PASSWORD_MANAGER_NSXT_USER_SSH_FAILED

NSXT user SSH failed.

PASSWORD_MANAGER_PATCH_TRANSACTION_INITIATION_FAILED

Cannot patch transaction : {0}, as it’s initiation failed during pre-validation. Try as a new transaction.

PASSWORD_MANAGER_PATCH_TRANSACTION_INITIATION_FAILED.remedy

Try as a new transaction after resolving the pre-validation failures.

PASSWORD_MANAGER_RESOURCES_NOT_FOUND

Cannot initiate password {0} because some resources in request couldn’t be found.

PASSWORD_MANAGER_USER_GENERIC_ERROR

Internal error occurred during validation of user credentials.

PASSWORD_MANAGER_USER_AUTHORIZATION_FAILED

User not authorized for this operation.

PASSWORD_MANAGER_USER_NOT_ALLOWED_PSC

User is not allowed to update or rotate PSC credentials. Please login using an alternate 'ADMIN' account to perform this operation.

PASSWORD_MANAGER_INPUT_SPEC_EMPTY

Input specification is empty.

PASSWORD_UPDATE_VRA_ENDPOINT_FAILED

Failed to update VRA endpoints with new password.

PASSWORD_UPDATE_FETCH_VRA_ENDPOINTS_FAILED

Failed to fetch list of VRA endpoints.

PASSWORD_UPDATE_VRA_ENDPOINT_VALIDATION_FAILED

Failed to validate endpoint {0} with new credentials.

PASSWORD_UPDATE_VRA_ENDPOINT_POST_VALIDATE_FAILED

Failed to update endpoint {0} post validation.

PASSWORD_UPDATE_DEPENDANT_UPDATE_FAILED

Failed to finish dependant update.

PASSWORD_MANAGER_SUBTRANSACTION_WORKFLOWID_NOT_FOUND

Could not find subtask Id {0} for task Id {1}.

PASSWORD_UPDATE_CREATE_VRSLCM_CLIENT_FAILED

Unable to create vRSLCM client for : {0}.

PASSWORD_UPDATE_ENTITY_VIA_VRSLCM_NOT_SUPPORTED

Entity type : {0} is not currently supported for password update via vRSLCM.

PASSWORD_UPDATE_VIA_VRSLCM_FOR_CREDENTIALTYPE_NOT_SUPPORTED

Credential type : {0} for entity : {1} - {2} is not currently supported for password update via vRSLCM.

PASSWORD_UPDATE_REQUEST_PAYLOAD_CREATION_FAILED

Unable to create request payload for {0}/{1} - {2}.

PASSWORD_UPDATE_FETCH_VREALIZE_NODE_DETAILS_FAILED

Unable to fetch vREALIZE node details for {0} : {1}.

PASSWORD_MANAGER_VALIDATE_WSA_API_CREDENTIALS_FAILED

Failed to validate vIDM : {0} API user : {1} credentials.

PASSWORD_UPDATE_SDDCMANAGER_SERVICE_ACCOUNT_NOT_FOUND

Could not find SDDC Manager service account to connect to {0}

PASSWORD_VALIDATE_RESOURCE_NOT_SUPPORTED

Password validation is not supported for resource: {0}

PASSWORD_VALIDATE_SERVICE_ACCOUNT_NOT_SUPPORTED

Password validation is not supported for resource: {0}. Only user accounts, system accounts and SDDC Manager service accounts are supported.

PASSWORD_VALIDATE_RESOURCE_UNAVAILABLE

Resource: {0} is not in active state.

PASSWORD_MANAGER_ENABLE_LOCKDOWN_MODE_FAILED

Enabling of lockdown mode on ESXi host : {0} has failed.

PASSWORD_MANAGER_ENABLE_LOCKDOWN_MODE_FAILED.remedy

Please immediately enable lockdown mode manually.

PASSWORD_MANAGER_FETCH_LOCKDOWN_MODE_STATUS_FAILED

Failed to fetch lockdown mode status on the host : {0}.

PASSWORD_MANAGER_FETCH_LOCKDOWN_MODE_STATUS_FAILED.remedy

Login to VC / ESXi host & validate if lockdown status is available. Fix any issue with host.

PASSWORD_MANAGER_DISABLE_LOCKDOWN_MODE_FAILED

Disabling of lockdown mode on ESXi host : {0} has failed.

PASSWORD_MANAGER_DISABLE_LOCKDOWN_MODE_FAILED.remedy

Login to VC/ESXi host & check the state of ESXi host to know the cause of failure.

PASSWORD_MANAGER_VALIDATE_ESXI_CREDENTIALS_FAILED

Validation of password of ESXi host : {0} has failed.

PASSWORD_MANAGER_VALIDATE_ESXI_CREDENTIALS_FAILED.remedy

Check if the password used to connect to ESXi host is valid.

PASSWORD_MANAGER_ESXI_API_FAILED

Update of password on ESXi host : {0} has failed.

PASSWORD_MANAGER_ESXI_API_FAILED.remedy

Check the state of the host to ensure that its reachable & performing optimally.

PASSWORD_MANAGER_ESXI_API_POST_CHANGE_FAILED

Validation of new password of ESXi host : {0} after password change has failed.

PASSWORD_MANAGER_ESXI_API_POST_CHANGE_FAILED.remedy

Use remediate option to fix this failure.

PASSWORD_MANAGER_SERVICE_ACCOUNT_NOT_FOUND

Service account to connect to the resource : {0} couldn’t be found.

PASSWORD_MANAGER_SERVICE_ACCOUNT_NOT_FOUND.remedy

Please ensure that a service account exists to be able to be used to connect to the ESXi host.

PASSWORD_VALIDATE_RESOURCE_IN_LOCKDOWN_MODE_NOT_SUPPORTED

Password validation cannot be performed when host {0} is in lockdown mode.

PASSWORD_MANAGER_FETCH_NSXT_PRIMARY_NODE_FQDN_FAILED

Failed to fetch primary node fqdn for NSXT cluster : {0}.

PASSWORD_MANAGER_NSXT_CLUSTER_TEST_FAILED

Failed to test: {0} credentials throughout the NSXT cluster: {1}.

PASSWORD_MANAGER_NSXT_CLUSTER_TEST_FAILED.remedy

Please check if password used to connect is valid and there is at least one active node in the NSXT cluster.

PASSWORD_MANAGER_AUTO_ROTATE_FAILED

Failed to trigger scheduled password rotation for the configured accounts. Next trigger will only happen on next configured frequency.

PASSWORD_MANAGER_AUTO_ROTATE_FAILED.remedy

Please manually trigger password rotation for the failed accounts.

PASSWORD_MANAGER_AUTO_ROTATE_FREQUENCY_VALUE_INVALID

Auto Rotate schedule frequency value is invalid.

PASSWORD_MANAGER_AUTO_ROTATE_INPUT_SPEC_EMPTY

Auto Rotate input spec is empty.

PASSWORD_MANAGER_AUTO_ROTATE_INPUT_SPEC_INVALID

Auto Rotate input spec is not valid.

PASSWORD_MANAGER_AUTO_ROTATE_INPUT_SPEC_RESOURCE_TYPE_NOT_SUPPORTED

Resource type: {0} not supported for auto rotate.

PASSWORD_MANAGER_AUTO_ROTATE_INSERT_SCHEDULE_CONFIGURATION_FAILED

Failed to create schedule for selected resources.

PASSWORD_MANAGER_AUTO_ROTATE_FEATURE_DISBALED

Auto Rotate feature disabled.

PASSWORD_MANAGER_SSH_ENTITY_NOT_FOUND_FOR_EXPIRY_RETRIEVAL

Unable to find corresponding ssh entity to retrieve expiry for {0}.

5.1.6. License keys

Error code Description

LICENSE_KEY_ALREADY_EXISTS

Unable to add license key since license key {0} already exists.

LICENSE_KEY_ALREADY_EXISTS.remedy

Add a different license key since identical license key already exists.

LICENSE_MANAGER_LICENSE_KEY_NOT_FOUND

License key with UUID {0} does not exist.

LICENSE_MANAGER_LICENSE_KEY_NOT_FOUND.remedy

Try again with proper license key

LICENSE_KEY_NOT_FOUND_FOR_RESOURCE

Failed to fetch license key for resource with UUID {0} for version {1}.

LICENSE_KEY_NOT_FOUND_FOR_RESOURCE.remedy

Try again with product version compatible with the existing licenses.

LICENSE_KEY_DOES_NOT_EXIST

License key {0} does not exist.

LICENSE_KEY_DOES_NOT_EXIST.remedy

Try again with existing license key

ADD_DLF_FAILED

Error while adding DLF

ADD_DLF_FAILED.remedy

Make sure you are passing required details, (1) Error while writing a file, may be permission issues.

LICENSE_KEY_INCORRECT_FORMAT_ERROR

License key is not in correct format.

LICENSE_KEY_INCORRECT_FORMAT_ERROR.remedy

Make sure you are adhering to License key format (1) Key should be 29 character in length. (2) Key should be hyphenated at each 5 letter word.

DLF_INVALID_PATH

Invalid DLF path

DLF_INVALID_PATH.remedy

1.Make sure you have correct DLF path.

LICENSE_KEY_CORRUPTED

License key is corrupted.

LICENSE_KEY_CORRUPTED.remedy

1. Make sure you use correct license key.

NO_VALID_DLFS_FOUND

No valid DLF found in system.

NO_VALID_DLFS_FOUND.remedy

1.Make sure you have correct licensekey 2. Use add DLF rest api to add one valid DLF in system.

LICENSE_KEY_EXPIRED

License key has expired.

LICENSE_KEY_EXPIRED.remedy

1. Make sure you use correct license key.

NO_ACTIVE_LICENSE_KEY_FOUND

Active license key not found.

NO_ACTIVE_LICENSE_KEY_FOUND.remedy

1. Make sure you add an active license key.

EXCESS_ACTIVE_LICENSE_KEYS_FOUND

More number of active license keys found.

EXCESS_ACTIVE_LICENSE_KEYS_FOUND.remedy

1. Make sure you specify the license key which needs to be used.

LICENSE_KEY_NOT_COMPATIBLE

The license key is not compatible with the current licensing mode and cannot be used.

LICENSE_KEY_NOT_COMPATIBLE.remedy

Make sure you use compatible license key for the action.

DLF_UNREADABLE_PROPERTIES

DLFs Unable to read properties.

DLF_UNREADABLE_PROPERTIES.remedy

1. Make sure you use correct license key.

DLFSERVICE_READ_FILE_AS_STRING_FAILED

Error while reading DLF file {0}

DLFSERVICE_READ_FILE_AS_STRING_FAILED.remedy

Make sure you have correct dlf stored prior attempt to read.

INVALID_LICENSE_KEY

Invalid licensekey

INVALID_LICENSE_KEY.remedy

1. Make sure you use correct license key.

NULL_LICENSE_KEY

The license key is null

NULL_LICENSE_KEY.remedy

Make sure the input is correct and the license exists.

LICENSE_KEY_NOT_SUPPORTED

Licensekey is not supported, contact administrator.

LICENSE_KEY_NOT_SUPPORTED.remedy

1.Make sure you have valid DLF in system.

LICENSE_MODE_NOT_SET

Licensing mode is not set.

LICENSE_MODE_NOT_SET.remedy

Make sure the licensing mode is set.

PSC_OR_CREDS_NOT_AVAILABLE

PSC or credential service not accessible.

PSC_OR_CREDS_NOT_AVAILABLE.remedy

1. Make sure the PSC/credential service are accessible.

INVALID_UUID

Invalid UUID given

INVALID_UUID.remedy

1.Make sure a valid UUID is given

RESOURCE_MISMATCH

Resource provided in url and payload are not matching.

RESOURCE_MISMATCH.remedy

Make sure you are passing correct and same resource details in URL and payload.

LICENSE_MANAGER_RESOURCE_NOT_FOUND

Resource with UUID {0} does not exist.

LICENSE_MANAGER_RESOURCE_NOT_FOUND.remedy

Try again with proper resource UUID.

LICENSE_MANAGER_OPERATION_NOT_SUPPORTED

Operation is not supported.

LICENSE_MANAGER_OPERATION_NOT_SUPPORTED.remedy

None.

OPERATION_NOT_SUPPORTED_WITH_CURRENT_LICENSING_MODE

Operation is not supported in current licensing mode.

OPERATION_NOT_SUPPORTED_WITH_CURRENT_LICENSING_MODE.remedy

Make sure the system is in subscription licensing mode.

LICENSE_KEY_CANNOT_BE_DELETED

The license key is in use and cannot be deleted.

LICENSE_KEY_CANNOT_BE_DELETED.remedy

Make sure that the license key is not used for licensing any resource.

LICENSE_KEY_NOT_SPECIFIED

Atleast one license key must be specified in the input.

LICENSE_KEY_NOT_SPECIFIED.remedy

Specify one or more license keys in the input.

LICENSING_MODE_SWITCH_FAILED

Failed to switch the licensing mode.

LICENSING_MODE_SWITCH_FAILED.remedy

None.

LM_TASK_REGISTRATION_FAILED

Registering task with Task aggregator failed.

LM_TASK_REGISTRATION_FAILED.remedy

None.

LICENSE_MANAGER_LOCK_NOT_AVAILABLE

Lock not available.

LICENSE_MANAGER_LOCK_NOT_AVAILABLE.remedy

None.

LICENSE_MANAGER_FAILED_TO_ACQUIRE_LOCK

Failed to acquire lock.

LICENSE_MANAGER_FAILED_TO_ACQUIRE_LOCK.remedy

None.

LICENSE_MANAGER_FAILED_TO_RELEASE_LOCK

Failed to release lock.

LICENSE_MANAGER_FAILED_TO_RELEASE_LOCK.remedy

None.

DOMAIN_IN_USE

Domain {0} is being used in system.

DOMAIN_IN_USE.remedy

Make sure that the domain is deleted from the system.

DOMAIN_NOT_LICENSED

Domain {0} is not licensed.

DOMAIN_NOT_LICENSED.remedy

Make sure to use a domain that has been licensed.

DOMAIN_NOT_SPECIFIED

Atleast one domain must be specified in the input.

DOMAIN_NOT_SPECIFIED.remedy

Specify one or more domains in the input.

RELICENSING_DOMAINS_FAILED

Relicensing of the domains {0} failed.

RELICENSING_DOMAINS_FAILED.remedy

Retry the operation.

EXCESS_LICENSE_KEYS_FOUND

More than one license key found for {0} in the input.

EXCESS_LICENSE_KEYS_FOUND.remedy

Retry with a single or no license key.

LICENSING_DOMAIN_NOT_ACTIVE

Domain(s) {0} not in active state.

LICENSING_DOMAIN_NOT_ACTIVE.remedy

Retry the operation after the domain(s) are in active state.

PRODUCT_TYPE_NOT_SUPPORTED

Product type {0} is not supported.

PRODUCT_TYPE_NOT_SUPPORTED.remedy

1.Make sure you add the license key for only supported product types.

LICENSING_DATA_UNKNOWN_VERSION

Licensing data version {0} not supported.

LICENSING_DATA_UNKNOWN_VERSION.remedy

Please pass the correct version of data.

LICENSING_DATA_HANDLER_NOT_FOUND

Licensing data handler not found for version {0}.

LICENSING_DATA_HANDLER_NOT_FOUND.remedy

Please pass the supported version to get data handler.

FAILED_TO_CONNECT_TO_HOST

Failed to connect to resource {0}

FAILED_TO_CONNECT_TO_HOST.remedy

Please check connection to host {0} with accurate credentials

INVALID_PRODUCT_TYPE

Product type is invalid. Allowable values: {0}

INVALID_PRODUCT_TYPE.remedy

Make sure that the product type is one among {0}

LICENSE_KEY_USAGE_NOT_FOUND_PSC_DOES_NOT_EXIST

Unable to get license usage as PSC does not exist.

LICENSE_KEY_USAGE_NOT_FOUND_PSC_CREDENTIALS_NOT_FOUND

Unable to get license usage as credentials for PSC is not found.

LICENSE_IS_MISSING_FEATURES

License key on host {0} is missing the following features: {1}

5.1.7. Network pools

Error code Description

NETWORKPOOL_OPERATION_SUCCESS

Success

NETWORKPOOL_NOT_FOUND

The network pool with ID {0} does not exist

NETWORKPOOL_NETWORK_NOT_FOUND

The network with ID {1} does not exist

NETWORKPOOL_IPADDRESSES_IN_USE

Deletion of network pool {0} prevented. IP Addresses in use

NETWORK_NOT_FOUND_IN_NETWORKPOOL

Specified network {0} not part of networkpool {1}

NETWORKPOOL_SPEC_VALIDATION_FAILED

Error while validating network pool parameters

NETWORKPOOL_CREATE_FAILED

Failed to create the network pool

NETWORKPOOL_GET_FAILED

Failed to get the network pool {0} with id {1}

IPPOOL_ADD_VALIDATION_FAILED

Invalid IP Pool parameters specified or overlapping IP Pool found

IPPOOL_REMOVE_VALIDATION_FAILED

No IP Pool found or IP Pool in use

IPPOOL_ADD_FAILED

Error when adding IP Pool to network

IPPOOL_REMOVE_FAILED

Error removing IP Pool from network

COMMONSVCS_NETWORKPOOL_NETWORK_NOT_ENOUGH_IP_ADDRESSES_AVAILABLE

Not enough free IP addresses {2} available in chosen network {0}

IP_ADDRESS_RESERVATION_FAILED

Request to reserve {2} IP addresses not successful

UNUSED_IP_ADDRESSES_LISTED_FOR_RELEASE

Not all IP addresses are in the used IP list for this network

IP_ADDRESS_RELEASE_FAILED

The IP addresses cannot be released

INVALID_IP_COUNT_SPECIFIED

Invalid count: {2} IP addresses requested from chosen network {0}

UNKNOWN_NETWORK_SPECIFIED

Unknown Network Type specified to release IP address

INVALID_NETWORK_SPECIFIED

Invalid Network ID specified

INVENTORY_ERROR

Failed to fetch ESXi hosts associated with network pool {0} from inventory

HOSTS_ASSOCIATED_WITH_NETWORKPOOL

Deletion of network pool {0} prevented. Hosts associated with Network Pool

DUPLICATE_NETWORKPOOL_FOUND

Another networkpool {0} with the same name found

NETWORKPOOL_WITH_OVERLAPPING_NETWORK_FOUND

A network in the pool overlaps with one of the existing networks already present

NETWORKPOOL_INTERNAL_SERVER_ERROR

NetworkPoool Internal Server Error

NETWORKPOOL_MISSING_NETWORK

The networks of type VMOTION is mandatory but was not provided.

MISSING_NETWORKPOOL_NAME

A valid network pool name must be specified

MINIMUM_NETWORKS_MISSING

At least one network should be present in the network pool

MALFORMED_NETWORK_SPEC

Malformed subnet data received

NETWORK_PARAMS_INVALID

One of VLAN ID, Subnet IP address, MTU or IP pools is invalid

DUPLICATE_NETWORKS_IN_NETWORKPOOL

The networkpool {0} has multiple networks of the same type

SUBNET_OVERLAP_IN_NETWORK

Subnet Range Overlap within same VLAN

DELETE_NETWORK_WITH_SINGLE_IPPOOL_FAILED

Ip Pool cannot be removed from a network with a single Ip Pool

DELETE_MISSING_IPPOOL_FAILED

No IP Pool {0} found in the network

DELETE_IPPOOL_IN_USE_FAILED

Ip Addresses are allocated from the IpPool {0}

NETWORKPOOL_WITH_OVERLAPPING_IPPOOLS_FOUND

Overlapping IP Pools found across networkpools

DUPLICATE_NETWORKPOOL_NAME_FOUND

Failed to update the networkpool name {0}. Networkpool with same name exists.

5.1.8. Tasks

Error code Description

TA_TASK_CAN_NOT_BE_RETRIED

Task with ID {0} cannot be retried.

TA_TASK_CAN_NOT_BE_RETRIED.remedy

Make sure the task is in failed state to retry.

TA_TASK_NOT_FOUND

Task with ID {0} not found

TA_TASK_CAN_NOT_BE_CANCELLED

Task cannot be cancelled

5.1.9. Inventory

Error code Description

RESOURCE_VALIDATION_ERRORS

{0} validation failed with errors {1}

RESOURCE_VALIDATION_FAILED

{0} validation failed

INVENTORY_RESOURCE_NULL

Null value found in {0}

RESOURCE_ID_NULL

{0} ID is null/empty

RESOURCE_NULL_FIELDS

{0} contains null fields

INVENTORY_RESOURCE_NOT_FOUND

{0} not found

RESOURCE_NOT_FOUND_WITH_ID

Resource ID: {1} not found in {0}

RESOURCE_NOT_FOUND_FOR_RESOURCE

{0} not found for {1} {2}

RESOURCE_PROPERTY_NOT_FOUND

{0} {1} property not found

RESOURCE_ALREADY_EXISTS

{0} {1} already exists

RESOURCE_ASSOCIATION_ALREADY_EXISTS

{0} {1} association already exists with {2} {3}

RESOURCE_ASSOCIATION_DOES_NOT_EXIST

{0} {1} association does not exist with {2} {3}

NETWORK_TYPE_NOT_SUPPORTED

Network Type {0} is not supported

ESXI_ATTACHED_TO_CLUSTER

Esxi {1} is attached to Cluster {1}

INVENTORY_INVALID_DATA

VCF service ID in request payload not equal to URL parameter

INVENTORY_INTERNAL_SERVER_ERROR

Inventory Internal Server Error

5.1.10. Certificates

Error code Description

CERTIFICATE_RESOURCE_DATA_NOT_FOUND

Resource data not found.

CERTIFICATE_CSR_GENERATION_FAILED

Generate CSR failed.

CERTIFICATE_GET_CSR_FAILED

Unable to get CSR.

CERTIFICATE_CSR_VALIDATION_FAILED

Validation of CSR failed.

CERTIFICATE_GENERATE_CERTIFICATE_FAILED

Generate certificate operation failed.

CERTIFICATE_GET_FAILED

Unable to get certificate.

CERTIFICATE_CSR_DOWNLOAD_FAILED

CSR download operation failed.

CERTIFICATE_GET_CA_CONFIGURATION_FAILED

Failed to get CA configuration.

CERTIFICATE_CA_CREATION_FAILED

Unable to create CA.

CERTIFICATE_CA_DELETION_FAILED

Unable to delete {0} CA configuration.

CERTIFICATE_VALIDATION_FAILED

Certificate validation failed for {0} with error {1}

CERTIFICATE_CA_IS_INVALID

Invalid CA type {0}

CERTIFICATE_CA_NOT_CONFIGURED

Unable to configure CA settings.

CERTIFICATE_REPLACE_CERT_FAILED

Replace certificate operation failed.

CERTIFICATE_REPLACE_CERT_FAILED_WITH_ERROR

Replace certificate operation failed with error {0}

CERTIFICATE_GENERAL_EXCEPTION

{0}

CERTIFICATE_PLUGIN_NOT_FOUND

No plugin found for {0}.

CERTIFICATE_SERVICE_RESTART_FAILED

Service restart failed for {0}

CERTIFICATE_INVALID_RESPONSE

Received invalid response {1} for {0}

CERTIFICATE_CSR_INVALID_SAN

Generate CSR failed due to passing of invalid SAN

CERTIFICATE_SAN_NOT_SUPPORTED

Generate CSR failed because resource {0} with version {1} does not support SAN

5.1.11. Backup and Restore

Error code Description

RETRIEVE_BACKUP_CONFIGURATION_FAILED

Failed to retrieve backup configuration.

RETRIEVE_BACKUP_CONFIGURATION_FAILED.remedy

Retry after a few minutes.

INVALID_BACKUP_CONFIGURATION

Provided backup configuration is invalid.

FAILED_TO_FETCH_FINGERPRINT

Failed to fetch fingerprint for the given backup server {0} and port {1}.

BACKUP_FAILED

Backup failed : {0}

RESTORE_FAILED

Restore failed : {0}

INVALID_ENCRYPTION_PASSPHRASE

Provided encryption passphrase {0} is invalid.

INVALID_ENCRYPTION_PASSPHRASE.remedy

Provide a valid encryption passphrase. Criteria for passphrase: min length: 12; max length: 32; min special characters: 1, special characters allowed: [~, !, @, ^, -, _, +]; min numbers: 2; min capital letters: 2; max consecutive characters: 2.

BACKUP_LOCATION_INVALID_PROTOCOL

Backup location protocol is not supported.

BACKUP_LOCATION_INVALID_PROTOCOL.remedy

Provide Backup Location protocol as SFTP.

BACKUP_LOCATION_PORT_NULL

Backup location port cannot be null.

BACKUP_LOCATION_USERNAME_BLANK

Backup location username cannot be null or blank.

BACKUP_LOCATION_PASSWORD_BLANK

Backup location password cannot be null or blank.

BACKUP_LOCATION_DIRECTORY_PATH_BLANK

Backup location directory path cannot be null or blank.

BACKUP_LOCATION_SERVER_BLANK

Backup location server cannot be null or blank.

BACKUP_RESOURCE_TYPES_EMPTY

Backup schedule resource types cannot be empty.

BACKUP_SSH_FINGERPRINT_PATH_BLANK

Backup location SSH fingerprint cannot be null or blank.

INVALID_BACKUP_RESOURCE_INPUT

Backup input specification must contain at least one backup resource.

INVALID_BACKUP_RESOURCE

The backup specification contains an invalid backup resource {0}.

INVALID_NUMBER_OF_BACKUP_RESOURCE

Backup input specification cannot have more than one backup resource.

INVALID_ENCRYPTION_PASSPHRASE_INPUT

Backup input specification must contain encryption passphrase.

INVALID_BACKUP_SCHEDULE

Backup schedule input {0} is invalid.

INVALID_BACKUP_SCHEDULE_FOR_HOURLY_SCHEDULE

Backup schedule for HOURLY schedule requires minutes field.

INVALID_BACKUP_SCHEDULE_FOR_WEEKLY_SCHEDULE

Backup schedule for WEEKLY schedule requires daysOfTheWeek, hourOfTheDay and minutes fields.

INVALID_BACKUP_SCHEDULE_FREQUENCY

Provided backup schedule frequency type {0} is invalid.Supported schedule frequencies are {1}.

INVALID_BACKUP_SCHEDULE_FOR_INVALID_DAYS_OF_WEEK

Backup schedule for WEEKLY schedule requires valid Days of the week, {0} are invalid. Supported Days of the week are {1}.

BACKUP_SCHEDULE_NOT_ALLOWED

Backups can not be scheduled when an in-built SFTP server is used.

SDDC_MANAGER_BACKUP_FAILED

SDDC Manager backup operation failed in task {0}

SDDC_MANAGER_BACKUP_FAILED.remedy

If the error condition is not a transient condition, resolve it. If you manually initiated the backup, try again. If not, the failed backup will be automatically retried

BACKUP_OPERATION_FAILED

Unexpected error encountered when processing SDDC Manager Backup

BACKUP_OPERATION_FAILED.remedy

Retry triggering backup again

QUIESCE_SYSTEM_FAILED

Quiescing operation failed, please try again later

QUIESCE_SYSTEM_FAILED.remedy

Retry triggering backup again

UNQUIESCE_SYSTEM_FAILED

Unquiescing operation failed

UNQUIESCE_SYSTEM_FAILED.remedy

Retry triggering backup again

BACKUP_SDDC_MGR_CONFIG_FAILED

Backup operation failed for SDDC Configuration

BACKUP_SDDC_MGR_CONFIG_FAILED.remedy

Retry triggering backup again

BACKUP_SDDC_MGR_DB_FAILED

Backup operation failed for vPostgres

BACKUP_SDDC_MGR_DB_FAILED.remedy

Retry triggering backup again

BACKUP_SDDC_MGR_SYSTEM_CONFIG_FAILED

Backup operation failed for SDDC Manager System Configuration

BACKUP_SDDC_MGR_SYSTEM_CONFIG_FAILED.remedy

Retry triggering backup again

PACKAGE_SDDC_MGR_BACKUP_FAILED

Package SDDC Manager backup operation failed

PACKAGE_SDDC_MGR_BACKUP_FAILED.remedy

Retry triggering backup again

SAVE_SDDC_MGR_BACKUP_FAILED

Saving SDDC Manager Backup file failed

SAVE_SDDC_MGR_BACKUP_FAILED.remedy

Retry triggering backup again

DELETE_SDDC_MGR_OLD_BACKUPS_FAILED

Deleting SDDC Manager old Backups failed

DELETE_SDDC_MGR_OLD_BACKUPS_FAILED.remedy

Retry triggering backup again

5.1.12. Appliance

Error code Description

CERTIFICATE_CHAIN_EXISTS_IN_TRUST_STORE

Certificate already exists in SDDC Manager trust store

CERT_VALIDATION_ERROR

Error while validating certificate

INVALID_CERTIFICATE

Could not parse certificate from input string

INVALID_CERTIFICATE_USAGE_TYPE

Invalid certificate usage type {0}

SDDC_TRUST_STORE_UPDATE_FAILED

Failed to update SDDC Manager trust store(s)

NGNIX_TRUST_STORE_UPDATE_FAILED

Failed to update NGNIX trust store

TRUST_STORE_CERTIFICATE_READ_FAILURE

Failed to read SDDC Manager trust store entries

TRUST_STORE_CREATION_FAILURE

Not able to create trust store