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 : sddc-manager.sfo01.rainpole.local
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

  • Federation : APIs for managing Federation

  • Hosts : APIs for managing Hosts

  • License Keys : APIs for managing License Keys

  • 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

  • SDDC : APIs for managing SDDC

  • 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

  • Upgradables : APIs for managing Upgradables

  • Upgrades : APIs for managing Upgrades

  • Users : APIs for managing Users

  • VcfServices : APIs for managing VCF Services

  • VersionAliasesForBundleComponentType : APIs for managing Version Alias Configuration

  • system : APIs for managing DNS & NTP configuration

  • vCenters : APIs for managing vCenters

  • 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.

  • To invoke the Restore APIs, SDDC Manager "admin" and its password is required.

    • The username and password are sent using Basic 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.

SDDC Manager APIs

You can follow the below steps to change the password for the "admin" account of the SDDC Manager.

  • SSH in to the SDDC Manager VM, login as "vcf" user.

  • Enter su to switch to the "root" user.

  • Enter the following command:

/opt/vmware/vcf/commonsvcs/scripts/auth/set-basicauth-password.sh admin <password>
  • For <password>, enter the new password to associate with the admin account.

Password requirements:

  • Length: 8-12 characters

  • Must include: mix of upper-case and lower-case letters a number a special character such as @ ! # $ % ^ or ?

  • Cannot include: * { } [ ] ( ) / \ ' " ` ~ , ; : . < >

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 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://sddc-manager.sfo01.rainpole.local/v1/tokens' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
  "username" : "administrator@vsphere.local",
  "password" : "VMware123!"
}'

HTTP Request

POST /v1/tokens HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 77
Host: sddc-manager.sfo01.rainpole.local

{
  "username" : "administrator@vsphere.local",
  "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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local

"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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local

"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://sddc-manager.sfo01.rainpole.local/v1/users' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '[ {
  "name" : "USER_1@vsphere.local",
  "domain" : "vsphere.local",
  "type" : "USER",
  "role" : {
    "id" : "ca968735-40d3-4853-affd-548b442947c0"
  }
}, {
  "name" : "USER_2@vsphere.local",
  "domain" : "vsphere.local",
  "type" : "USER",
  "role" : {
    "id" : "ca968735-40d3-4853-affd-548b442947c0"
  }
}, {
  "name" : "SERVICE_USER_1",
  "type" : "SERVICE",
  "role" : {
    "id" : "ca968735-40d3-4853-affd-548b442947c0"
  }
} ]'

HTTP Request

POST /v1/users HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 437
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

[ {
  "name" : "USER_1@vsphere.local",
  "domain" : "vsphere.local",
  "type" : "USER",
  "role" : {
    "id" : "ca968735-40d3-4853-affd-548b442947c0"
  }
}, {
  "name" : "USER_2@vsphere.local",
  "domain" : "vsphere.local",
  "type" : "USER",
  "role" : {
    "id" : "ca968735-40d3-4853-affd-548b442947c0"
  }
}, {
  "name" : "SERVICE_USER_1",
  "type" : "SERVICE",
  "role" : {
    "id" : "ca968735-40d3-4853-affd-548b442947c0"
  }
} ]

HTTP Response

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

{
  "elements" : [ {
    "id" : "2f015af3-7cc4-4969-b4ce-0c1f47fa7147",
    "name" : "USER_1@vsphere.local",
    "domain" : "vsphere.local",
    "type" : "USER",
    "role" : {
      "id" : "ca968735-40d3-4853-affd-548b442947c0"
    },
    "creationTimestamp" : "2020-03-26T01:06:37.008Z"
  }, {
    "id" : "9a9916e9-b76c-4027-8dd7-cd4135d53bed",
    "name" : "USER_2@vsphere.local",
    "domain" : "vsphere.local",
    "type" : "USER",
    "role" : {
      "id" : "ca968735-40d3-4853-affd-548b442947c0"
    },
    "creationTimestamp" : "2020-03-26T01:06:37.008Z"
  }, {
    "id" : "97ee9d88-1c8c-4d7a-8e2c-e8700bf0f238",
    "name" : "SERVICE_USER_1",
    "domain" : "Nil",
    "type" : "SERVICE",
    "apiKey" : "18KCYp4Jr1NFJpyTssZ68YBp5vM30Wwp",
    "role" : {
      "id" : "ca968735-40d3-4853-affd-548b442947c0"
    },
    "creationTimestamp" : "2020-03-26T01:06:37.008Z"
  } ]
}

2.2.2. Add a 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://sddc-manager.sfo01.rainpole.local/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" : "3cf33a99-af3a-4069-81eb-c3f59e878b31"
  }
} ]'

HTTP Request

POST /v1/users HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 128
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

[ {
  "name" : "service_account_1",
  "type" : "SERVICE",
  "role" : {
    "id" : "3cf33a99-af3a-4069-81eb-c3f59e878b31"
  }
} ]

HTTP Response

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

{
  "elements" : [ {
    "id" : "3973ae09-aace-43e9-ab95-47ba48fc1c12",
    "name" : "service_account_1",
    "domain" : "Nil",
    "type" : "SERVICE",
    "apiKey" : "OinmaemCXdt8gzsGWGACi9cXJeXB4C5o",
    "role" : {
      "id" : "3cf33a99-af3a-4069-81eb-c3f59e878b31"
    },
    "creationTimestamp" : "2020-03-26T01:06:35.136Z"
  } ]
}
  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://sddc-manager.sfo01.rainpole.local/v1/tokens' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
  "apiKey" : "6598S0SIQC04sGjEr0nIeDlZx18GYRoT"
}'

HTTP Request

POST /v1/tokens HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 51
Host: sddc-manager.sfo01.rainpole.local

{
  "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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "id" : "2f015af3-7cc4-4969-b4ce-0c1f47fa7147",
    "name" : "USER_1@vsphere.local",
    "domain" : "vsphere.local",
    "type" : "USER",
    "role" : {
      "id" : "ca968735-40d3-4853-affd-548b442947c0"
    },
    "creationTimestamp" : "2020-03-26T01:06:37.008Z"
  }, {
    "id" : "9a9916e9-b76c-4027-8dd7-cd4135d53bed",
    "name" : "USER_2@vsphere.local",
    "domain" : "vsphere.local",
    "type" : "USER",
    "role" : {
      "id" : "ca968735-40d3-4853-affd-548b442947c0"
    },
    "creationTimestamp" : "2020-03-26T01:06:37.008Z"
  }, {
    "id" : "97ee9d88-1c8c-4d7a-8e2c-e8700bf0f238",
    "name" : "SERVICE_USER_1",
    "domain" : "Nil",
    "type" : "SERVICE",
    "apiKey" : "18KCYp4Jr1NFJpyTssZ68YBp5vM30Wwp",
    "role" : {
      "id" : "ca968735-40d3-4853-affd-548b442947c0"
    },
    "creationTimestamp" : "2020-03-26T01:06:37.008Z"
  } ]
}

2.2.4. Delete an User

  • This API is used to delete an 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://sddc-manager.sfo01.rainpole.local/v1/users/2f015af3-7cc4-4969-b4ce-0c1f47fa7147' -i -X DELETE \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

DELETE /v1/users/2f015af3-7cc4-4969-b4ce-0c1f47fa7147 HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: sddc-manager.sfo01.rainpole.local
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 two roles that are supported - ADMIN and OPERATOR.

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

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "id" : "46e2795b-18f5-4ff0-9356-5c09d91e92e9",
    "name" : "ADMIN",
    "description" : "Administrator"
  }, {
    "id" : "a04b2c65-e4d7-4a5c-a32d-46e73d67ca4f",
    "name" : "OPERATOR",
    "description" : "Operator"
  } ]
}

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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "id" : "USER_1@vsphere.local",
    "name" : "USER_1",
    "type" : "USER"
  }, {
    "id" : "USER_2@vsphere.local",
    "name" : "USER_2",
    "type" : "USER"
  }, {
    "id" : "USER_3@vsphere.local",
    "name" : "USER_3",
    "type" : "USER"
  }, {
    "id" : "USER_4@vsphere.local",
    "name" : "USER_4",
    "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.3. SDDCs (Management Domain)

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.
  • 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 if Customer Experience Improvement Program is to be enabled

  • Remote Site details

Tip
Refer to: RemoteSiteSpec.
  • Passphrase for the certificates to be used for vCenter, NSX, vRealize Automation and vRealize Operation Manager

  • License for the ESXi hosts

  • VxRail environment details

Tip
Refer to: VxRailSpec.
  • Boolean to identify if ESXi thumbprint validation is to be skipped

  • 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://sfo01cb01.sfo.rainpole.local/v1/sddcs/validations' -i -u 'admin:VMwareInfra@1' -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
  "excludedComponents" : [ "NSX-V", "LogInsight" ],
  "dvSwitchVersion" : "7.0.0",
  "skipEsxThumbprintValidation" : true,
  "managementPoolName" : "bringup-networkpool",
  "sddcManagerSpec" : {
    "secondUserCredentials" : {
      "username" : "vcf",
      "password" : "xxxxxxx"
    },
    "ipAddress" : "10.0.0.4",
    "netmask" : "255.255.255.0",
    "hostname" : "sddc-manager",
    "rootUserCredentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "restApiCredentials" : {
      "username" : "admin",
      "password" : "xxxxxxx"
    }
  },
  "sddcId" : "sddcId-public-api-1001",
  "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" : "nsx-mgmt-1",
      "ip" : "10.0.0.31"
    } ],
    "rootNsxtManagerPassword" : "xxxxxxx",
    "nsxtAdminPassword" : "xxxxxxx",
    "nsxtAuditPassword" : "xxxxxxx",
    "rootLoginEnabledForNsxtManager" : "true",
    "sshEnabledForNsxtManager" : "true",
    "overLayTransportZone" : {
      "zoneName" : "overlay-tz",
      "switchName" : "mgmt-nvds",
      "networkName" : "net-overlay"
    },
    "vlanTransportZone" : {
      "zoneName" : "vlan-tz",
      "switchName" : "mgmt-nvds",
      "networkName" : "net-vlan"
    },
    "vip" : "10.0.0.30",
    "vipFqdn" : "vip-nsx-mgmt",
    "nsxtLicense" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "transportVlanId" : 0
  },
  "vsanSpec" : {
    "vsanName" : "vsan-1",
    "licenseFile" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "datastoreName" : "sfo01-m01-vsan"
  },
  "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" : "SDDC-Dswitch-Private",
    "vmnics" : [ "vmnic0", "vmnic1" ],
    "networks" : [ "MANAGEMENT", "VSAN", "VMOTION" ]
  } ],
  "clusterSpec" : {
    "clusterName" : "SDDC-Cluster1",
    "clusterEvcMode" : "",
    "resourcePoolSpecs" : [ {
      "cpuSharesLevel" : "high",
      "cpuSharesValue" : 0,
      "name" : "Mgmt-ResourcePool",
      "memorySharesValue" : 0,
      "cpuReservationPercentage" : 0,
      "memoryLimit" : -1,
      "memoryReservationPercentage" : 0,
      "cpuReservationExpandable" : true,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "cpuLimit" : -1,
      "type" : "management"
    }, {
      "cpuSharesLevel" : "high",
      "cpuSharesValue" : 0,
      "name" : "Network-ResourcePool",
      "memorySharesValue" : 0,
      "cpuReservationPercentage" : 0,
      "memoryLimit" : -1,
      "memoryReservationPercentage" : 0,
      "cpuReservationExpandable" : true,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "cpuLimit" : -1,
      "type" : "network"
    }, {
      "cpuSharesLevel" : "normal",
      "cpuSharesValue" : 0,
      "name" : "Compute-ResourcePool",
      "memorySharesValue" : 0,
      "cpuReservationPercentage" : 0,
      "memoryLimit" : -1,
      "memoryReservationPercentage" : 0,
      "cpuReservationExpandable" : true,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "cpuLimit" : -1,
      "type" : "compute"
    }, {
      "name" : "User-RP",
      "type" : "compute",
      "cpuReservationMhz" : 2100,
      "cpuLimit" : -1,
      "cpuReservationExpandable" : true,
      "cpuSharesLevel" : "normal",
      "memoryReservationMb" : 3128,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "memorySharesValue" : 0
    } ]
  },
  "pscSpecs" : [ {
    "pscId" : "psc-1",
    "vcenterId" : "vcenter-1",
    "pscSsoSpec" : {
      "ssoDomain" : "vsphere.local"
    },
    "adminUserSsoPassword" : "xxxxxxx"
  } ],
  "vcenterSpec" : {
    "vcenterIp" : "10.0.0.6",
    "vcenterHostname" : "vcenter-1",
    "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" : "esxi-1",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-0",
    "association" : "SDDC-Datacenter"
  }, {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.252.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.101",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "esxi-2",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-1",
    "association" : "SDDC-Datacenter"
  }, {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.255.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.102",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "esxi-3",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-2",
    "association" : "SDDC-Datacenter"
  }, {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.255.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.103",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "esxi-4",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-3",
    "association" : "SDDC-Datacenter"
  } ]
}'

HTTP Request

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

{
  "excludedComponents" : [ "NSX-V", "LogInsight" ],
  "dvSwitchVersion" : "7.0.0",
  "skipEsxThumbprintValidation" : true,
  "managementPoolName" : "bringup-networkpool",
  "sddcManagerSpec" : {
    "secondUserCredentials" : {
      "username" : "vcf",
      "password" : "xxxxxxx"
    },
    "ipAddress" : "10.0.0.4",
    "netmask" : "255.255.255.0",
    "hostname" : "sddc-manager",
    "rootUserCredentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "restApiCredentials" : {
      "username" : "admin",
      "password" : "xxxxxxx"
    }
  },
  "sddcId" : "sddcId-public-api-1001",
  "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" : "nsx-mgmt-1",
      "ip" : "10.0.0.31"
    } ],
    "rootNsxtManagerPassword" : "xxxxxxx",
    "nsxtAdminPassword" : "xxxxxxx",
    "nsxtAuditPassword" : "xxxxxxx",
    "rootLoginEnabledForNsxtManager" : "true",
    "sshEnabledForNsxtManager" : "true",
    "overLayTransportZone" : {
      "zoneName" : "overlay-tz",
      "switchName" : "mgmt-nvds",
      "networkName" : "net-overlay"
    },
    "vlanTransportZone" : {
      "zoneName" : "vlan-tz",
      "switchName" : "mgmt-nvds",
      "networkName" : "net-vlan"
    },
    "vip" : "10.0.0.30",
    "vipFqdn" : "vip-nsx-mgmt",
    "nsxtLicense" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "transportVlanId" : 0
  },
  "vsanSpec" : {
    "vsanName" : "vsan-1",
    "licenseFile" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "datastoreName" : "sfo01-m01-vsan"
  },
  "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" : "SDDC-Dswitch-Private",
    "vmnics" : [ "vmnic0", "vmnic1" ],
    "networks" : [ "MANAGEMENT", "VSAN", "VMOTION" ]
  } ],
  "clusterSpec" : {
    "clusterName" : "SDDC-Cluster1",
    "clusterEvcMode" : "",
    "resourcePoolSpecs" : [ {
      "cpuSharesLevel" : "high",
      "cpuSharesValue" : 0,
      "name" : "Mgmt-ResourcePool",
      "memorySharesValue" : 0,
      "cpuReservationPercentage" : 0,
      "memoryLimit" : -1,
      "memoryReservationPercentage" : 0,
      "cpuReservationExpandable" : true,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "cpuLimit" : -1,
      "type" : "management"
    }, {
      "cpuSharesLevel" : "high",
      "cpuSharesValue" : 0,
      "name" : "Network-ResourcePool",
      "memorySharesValue" : 0,
      "cpuReservationPercentage" : 0,
      "memoryLimit" : -1,
      "memoryReservationPercentage" : 0,
      "cpuReservationExpandable" : true,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "cpuLimit" : -1,
      "type" : "network"
    }, {
      "cpuSharesLevel" : "normal",
      "cpuSharesValue" : 0,
      "name" : "Compute-ResourcePool",
      "memorySharesValue" : 0,
      "cpuReservationPercentage" : 0,
      "memoryLimit" : -1,
      "memoryReservationPercentage" : 0,
      "cpuReservationExpandable" : true,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "cpuLimit" : -1,
      "type" : "compute"
    }, {
      "name" : "User-RP",
      "type" : "compute",
      "cpuReservationMhz" : 2100,
      "cpuLimit" : -1,
      "cpuReservationExpandable" : true,
      "cpuSharesLevel" : "normal",
      "memoryReservationMb" : 3128,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "memorySharesValue" : 0
    } ]
  },
  "pscSpecs" : [ {
    "pscId" : "psc-1",
    "vcenterId" : "vcenter-1",
    "pscSsoSpec" : {
      "ssoDomain" : "vsphere.local"
    },
    "adminUserSsoPassword" : "xxxxxxx"
  } ],
  "vcenterSpec" : {
    "vcenterIp" : "10.0.0.6",
    "vcenterHostname" : "vcenter-1",
    "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" : "esxi-1",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-0",
    "association" : "SDDC-Datacenter"
  }, {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.252.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.101",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "esxi-2",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-1",
    "association" : "SDDC-Datacenter"
  }, {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.255.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.102",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "esxi-3",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-2",
    "association" : "SDDC-Datacenter"
  }, {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.255.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.103",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "esxi-4",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-3",
    "association" : "SDDC-Datacenter"
  } ]
}

HTTP Response

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

{
  "id" : "26c27804-f837-4e4f-b50f-1625af792f0f",
  "executionStatus" : "COMPLETED",
  "validationChecks" : [ {
    "description" : "JSON Spec Validations",
    "resultStatus" : "SUCCEEDED",
    "errorResponse" : {
      "message" : ""
    }
  }, {
    "description" : "Password Validation",
    "resultStatus" : "SUCCEEDED",
    "errorResponse" : {
      "message" : ""
    }
  }, {
    "description" : "Network Connectivity",
    "resultStatus" : "SUCCEEDED",
    "errorResponse" : {
      "message" : ""
    }
  } ]
}
  1. Poll the task until "status" 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".

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

cURL Request

$ curl 'https://sfo01cb01.sfo.rainpole.local/v1/sddcs' -i -u 'admin:VMwareInfra@1' -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
  "excludedComponents" : [ "NSX-V", "LogInsight" ],
  "dvSwitchVersion" : "7.0.0",
  "skipEsxThumbprintValidation" : true,
  "managementPoolName" : "bringup-networkpool",
  "sddcManagerSpec" : {
    "secondUserCredentials" : {
      "username" : "vcf",
      "password" : "xxxxxxx"
    },
    "ipAddress" : "10.0.0.4",
    "netmask" : "255.255.255.0",
    "hostname" : "sddc-manager",
    "rootUserCredentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "restApiCredentials" : {
      "username" : "admin",
      "password" : "xxxxxxx"
    }
  },
  "sddcId" : "sddcId-public-api-1001",
  "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" : "nsx-mgmt-1",
      "ip" : "10.0.0.31"
    } ],
    "rootNsxtManagerPassword" : "xxxxxxx",
    "nsxtAdminPassword" : "xxxxxxx",
    "nsxtAuditPassword" : "xxxxxxx",
    "rootLoginEnabledForNsxtManager" : "true",
    "sshEnabledForNsxtManager" : "true",
    "overLayTransportZone" : {
      "zoneName" : "overlay-tz",
      "switchName" : "mgmt-nvds",
      "networkName" : "net-overlay"
    },
    "vlanTransportZone" : {
      "zoneName" : "vlan-tz",
      "switchName" : "mgmt-nvds",
      "networkName" : "net-vlan"
    },
    "vip" : "10.0.0.30",
    "vipFqdn" : "vip-nsx-mgmt",
    "nsxtLicense" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "transportVlanId" : 0
  },
  "vsanSpec" : {
    "vsanName" : "vsan-1",
    "licenseFile" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "datastoreName" : "sfo01-m01-vsan"
  },
  "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" : "SDDC-Dswitch-Private",
    "vmnics" : [ "vmnic0", "vmnic1" ],
    "networks" : [ "MANAGEMENT", "VSAN", "VMOTION" ]
  } ],
  "clusterSpec" : {
    "clusterName" : "SDDC-Cluster1",
    "clusterEvcMode" : "",
    "resourcePoolSpecs" : [ {
      "cpuSharesLevel" : "high",
      "cpuSharesValue" : 0,
      "name" : "Mgmt-ResourcePool",
      "memorySharesValue" : 0,
      "cpuReservationPercentage" : 0,
      "memoryLimit" : -1,
      "memoryReservationPercentage" : 0,
      "cpuReservationExpandable" : true,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "cpuLimit" : -1,
      "type" : "management"
    }, {
      "cpuSharesLevel" : "high",
      "cpuSharesValue" : 0,
      "name" : "Network-ResourcePool",
      "memorySharesValue" : 0,
      "cpuReservationPercentage" : 0,
      "memoryLimit" : -1,
      "memoryReservationPercentage" : 0,
      "cpuReservationExpandable" : true,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "cpuLimit" : -1,
      "type" : "network"
    }, {
      "cpuSharesLevel" : "normal",
      "cpuSharesValue" : 0,
      "name" : "Compute-ResourcePool",
      "memorySharesValue" : 0,
      "cpuReservationPercentage" : 0,
      "memoryLimit" : -1,
      "memoryReservationPercentage" : 0,
      "cpuReservationExpandable" : true,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "cpuLimit" : -1,
      "type" : "compute"
    }, {
      "name" : "User-RP",
      "type" : "compute",
      "cpuReservationMhz" : 2100,
      "cpuLimit" : -1,
      "cpuReservationExpandable" : true,
      "cpuSharesLevel" : "normal",
      "memoryReservationMb" : 3128,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "memorySharesValue" : 0
    } ]
  },
  "pscSpecs" : [ {
    "pscId" : "psc-1",
    "vcenterId" : "vcenter-1",
    "pscSsoSpec" : {
      "ssoDomain" : "vsphere.local"
    },
    "adminUserSsoPassword" : "xxxxxxx"
  } ],
  "vcenterSpec" : {
    "vcenterIp" : "10.0.0.6",
    "vcenterHostname" : "vcenter-1",
    "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" : "esxi-1",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-0",
    "association" : "SDDC-Datacenter"
  }, {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.252.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.101",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "esxi-2",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-1",
    "association" : "SDDC-Datacenter"
  }, {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.255.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.102",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "esxi-3",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-2",
    "association" : "SDDC-Datacenter"
  }, {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.255.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.103",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "esxi-4",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-3",
    "association" : "SDDC-Datacenter"
  } ]
}'

HTTP Request

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

{
  "excludedComponents" : [ "NSX-V", "LogInsight" ],
  "dvSwitchVersion" : "7.0.0",
  "skipEsxThumbprintValidation" : true,
  "managementPoolName" : "bringup-networkpool",
  "sddcManagerSpec" : {
    "secondUserCredentials" : {
      "username" : "vcf",
      "password" : "xxxxxxx"
    },
    "ipAddress" : "10.0.0.4",
    "netmask" : "255.255.255.0",
    "hostname" : "sddc-manager",
    "rootUserCredentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "restApiCredentials" : {
      "username" : "admin",
      "password" : "xxxxxxx"
    }
  },
  "sddcId" : "sddcId-public-api-1001",
  "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" : "nsx-mgmt-1",
      "ip" : "10.0.0.31"
    } ],
    "rootNsxtManagerPassword" : "xxxxxxx",
    "nsxtAdminPassword" : "xxxxxxx",
    "nsxtAuditPassword" : "xxxxxxx",
    "rootLoginEnabledForNsxtManager" : "true",
    "sshEnabledForNsxtManager" : "true",
    "overLayTransportZone" : {
      "zoneName" : "overlay-tz",
      "switchName" : "mgmt-nvds",
      "networkName" : "net-overlay"
    },
    "vlanTransportZone" : {
      "zoneName" : "vlan-tz",
      "switchName" : "mgmt-nvds",
      "networkName" : "net-vlan"
    },
    "vip" : "10.0.0.30",
    "vipFqdn" : "vip-nsx-mgmt",
    "nsxtLicense" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "transportVlanId" : 0
  },
  "vsanSpec" : {
    "vsanName" : "vsan-1",
    "licenseFile" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "datastoreName" : "sfo01-m01-vsan"
  },
  "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" : "SDDC-Dswitch-Private",
    "vmnics" : [ "vmnic0", "vmnic1" ],
    "networks" : [ "MANAGEMENT", "VSAN", "VMOTION" ]
  } ],
  "clusterSpec" : {
    "clusterName" : "SDDC-Cluster1",
    "clusterEvcMode" : "",
    "resourcePoolSpecs" : [ {
      "cpuSharesLevel" : "high",
      "cpuSharesValue" : 0,
      "name" : "Mgmt-ResourcePool",
      "memorySharesValue" : 0,
      "cpuReservationPercentage" : 0,
      "memoryLimit" : -1,
      "memoryReservationPercentage" : 0,
      "cpuReservationExpandable" : true,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "cpuLimit" : -1,
      "type" : "management"
    }, {
      "cpuSharesLevel" : "high",
      "cpuSharesValue" : 0,
      "name" : "Network-ResourcePool",
      "memorySharesValue" : 0,
      "cpuReservationPercentage" : 0,
      "memoryLimit" : -1,
      "memoryReservationPercentage" : 0,
      "cpuReservationExpandable" : true,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "cpuLimit" : -1,
      "type" : "network"
    }, {
      "cpuSharesLevel" : "normal",
      "cpuSharesValue" : 0,
      "name" : "Compute-ResourcePool",
      "memorySharesValue" : 0,
      "cpuReservationPercentage" : 0,
      "memoryLimit" : -1,
      "memoryReservationPercentage" : 0,
      "cpuReservationExpandable" : true,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "cpuLimit" : -1,
      "type" : "compute"
    }, {
      "name" : "User-RP",
      "type" : "compute",
      "cpuReservationMhz" : 2100,
      "cpuLimit" : -1,
      "cpuReservationExpandable" : true,
      "cpuSharesLevel" : "normal",
      "memoryReservationMb" : 3128,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "memorySharesValue" : 0
    } ]
  },
  "pscSpecs" : [ {
    "pscId" : "psc-1",
    "vcenterId" : "vcenter-1",
    "pscSsoSpec" : {
      "ssoDomain" : "vsphere.local"
    },
    "adminUserSsoPassword" : "xxxxxxx"
  } ],
  "vcenterSpec" : {
    "vcenterIp" : "10.0.0.6",
    "vcenterHostname" : "vcenter-1",
    "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" : "esxi-1",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-0",
    "association" : "SDDC-Datacenter"
  }, {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.252.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.101",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "esxi-2",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-1",
    "association" : "SDDC-Datacenter"
  }, {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.255.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.102",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "esxi-3",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-2",
    "association" : "SDDC-Datacenter"
  }, {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.255.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.103",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "esxi-4",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-3",
    "association" : "SDDC-Datacenter"
  } ]
}

HTTP Response

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

{
  "id" : "97f5c5fe-187f-46d3-b446-73e310187428",
  "name" : "Bringup-Ems",
  "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" : "NSXvConfiguration",
    "processingStateDescription" : "Deploy and Configure NSX for vSphere",
    "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 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.3.2. Get the SDDCS

Steps
  1. Invoke the API.

cURL Request

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

HTTP Request

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

HTTP Response

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

{
  "elements" : [ {
    "id" : "97f5c5fe-187f-46d3-b446-73e310187428",
    "name" : "Bringup-Ems",
    "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" : "NSXvConfiguration",
      "processingStateDescription" : "Deploy and Configure NSX for vSphere",
      "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://sfo01cb01.sfo.rainpole.local/v1/sddcs/b285bfc6-8ef2-48d3-a8e2-4ccf921b1f1a' -i -u 'admin:VMwareInfra@1' -X GET \
    -H 'Accept: application/json'

HTTP Request

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

HTTP Response

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

{
  "id" : "97f5c5fe-187f-46d3-b446-73e310187428",
  "name" : "Bringup-Ems",
  "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" : "NSXvConfiguration",
    "processingStateDescription" : "Deploy and Configure NSX for vSphere",
    "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://sfo01cb01.sfo.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: sfo01cb01.sfo.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

HTTP Response

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

{
  "id" : "97f5c5fe-187f-46d3-b446-73e310187428",
  "name" : "Bringup-Ems",
  "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" : "NSXvConfiguration",
    "processingStateDescription" : "Deploy and Configure NSX for vSphere",
    "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 without providing SDDC creation details

cURL Request

$ curl 'https://sfo01cb01.sfo.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 '{
  "excludedComponents" : [ "NSX-V", "LogInsight" ],
  "dvSwitchVersion" : "7.0.0",
  "skipEsxThumbprintValidation" : true,
  "managementPoolName" : "bringup-networkpool",
  "sddcManagerSpec" : {
    "secondUserCredentials" : {
      "username" : "vcf",
      "password" : "xxxxxxx"
    },
    "ipAddress" : "10.0.0.4",
    "netmask" : "255.255.255.0",
    "hostname" : "sddc-manager",
    "rootUserCredentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "restApiCredentials" : {
      "username" : "admin",
      "password" : "xxxxxxx"
    }
  },
  "sddcId" : "sddcId-public-api-1001",
  "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" : "nsx-mgmt-1",
      "ip" : "10.0.0.31"
    } ],
    "rootNsxtManagerPassword" : "xxxxxxx",
    "nsxtAdminPassword" : "xxxxxxx",
    "nsxtAuditPassword" : "xxxxxxx",
    "rootLoginEnabledForNsxtManager" : "true",
    "sshEnabledForNsxtManager" : "true",
    "overLayTransportZone" : {
      "zoneName" : "overlay-tz",
      "switchName" : "mgmt-nvds",
      "networkName" : "net-overlay"
    },
    "vlanTransportZone" : {
      "zoneName" : "vlan-tz",
      "switchName" : "mgmt-nvds",
      "networkName" : "net-vlan"
    },
    "vip" : "10.0.0.30",
    "vipFqdn" : "vip-nsx-mgmt",
    "nsxtLicense" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "transportVlanId" : 0
  },
  "vsanSpec" : {
    "vsanName" : "vsan-1",
    "licenseFile" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "datastoreName" : "sfo01-m01-vsan"
  },
  "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" : "SDDC-Dswitch-Private",
    "vmnics" : [ "vmnic0", "vmnic1" ],
    "networks" : [ "MANAGEMENT", "VSAN", "VMOTION" ]
  } ],
  "clusterSpec" : {
    "clusterName" : "SDDC-Cluster1",
    "clusterEvcMode" : "",
    "resourcePoolSpecs" : [ {
      "cpuSharesLevel" : "high",
      "cpuSharesValue" : 0,
      "name" : "Mgmt-ResourcePool",
      "memorySharesValue" : 0,
      "cpuReservationPercentage" : 0,
      "memoryLimit" : -1,
      "memoryReservationPercentage" : 0,
      "cpuReservationExpandable" : true,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "cpuLimit" : -1,
      "type" : "management"
    }, {
      "cpuSharesLevel" : "high",
      "cpuSharesValue" : 0,
      "name" : "Network-ResourcePool",
      "memorySharesValue" : 0,
      "cpuReservationPercentage" : 0,
      "memoryLimit" : -1,
      "memoryReservationPercentage" : 0,
      "cpuReservationExpandable" : true,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "cpuLimit" : -1,
      "type" : "network"
    }, {
      "cpuSharesLevel" : "normal",
      "cpuSharesValue" : 0,
      "name" : "Compute-ResourcePool",
      "memorySharesValue" : 0,
      "cpuReservationPercentage" : 0,
      "memoryLimit" : -1,
      "memoryReservationPercentage" : 0,
      "cpuReservationExpandable" : true,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "cpuLimit" : -1,
      "type" : "compute"
    }, {
      "name" : "User-RP",
      "type" : "compute",
      "cpuReservationMhz" : 2100,
      "cpuLimit" : -1,
      "cpuReservationExpandable" : true,
      "cpuSharesLevel" : "normal",
      "memoryReservationMb" : 3128,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "memorySharesValue" : 0
    } ]
  },
  "pscSpecs" : [ {
    "pscId" : "psc-1",
    "vcenterId" : "vcenter-1",
    "pscSsoSpec" : {
      "ssoDomain" : "vsphere.local"
    },
    "adminUserSsoPassword" : "xxxxxxx"
  } ],
  "vcenterSpec" : {
    "vcenterIp" : "10.0.0.6",
    "vcenterHostname" : "vcenter-1",
    "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" : "esxi-1",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-0",
    "association" : "SDDC-Datacenter"
  }, {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.252.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.101",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "esxi-2",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-1",
    "association" : "SDDC-Datacenter"
  }, {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.255.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.102",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "esxi-3",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-2",
    "association" : "SDDC-Datacenter"
  }, {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.255.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.103",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "esxi-4",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-3",
    "association" : "SDDC-Datacenter"
  } ]
}'

HTTP Request

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

{
  "excludedComponents" : [ "NSX-V", "LogInsight" ],
  "dvSwitchVersion" : "7.0.0",
  "skipEsxThumbprintValidation" : true,
  "managementPoolName" : "bringup-networkpool",
  "sddcManagerSpec" : {
    "secondUserCredentials" : {
      "username" : "vcf",
      "password" : "xxxxxxx"
    },
    "ipAddress" : "10.0.0.4",
    "netmask" : "255.255.255.0",
    "hostname" : "sddc-manager",
    "rootUserCredentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "restApiCredentials" : {
      "username" : "admin",
      "password" : "xxxxxxx"
    }
  },
  "sddcId" : "sddcId-public-api-1001",
  "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" : "nsx-mgmt-1",
      "ip" : "10.0.0.31"
    } ],
    "rootNsxtManagerPassword" : "xxxxxxx",
    "nsxtAdminPassword" : "xxxxxxx",
    "nsxtAuditPassword" : "xxxxxxx",
    "rootLoginEnabledForNsxtManager" : "true",
    "sshEnabledForNsxtManager" : "true",
    "overLayTransportZone" : {
      "zoneName" : "overlay-tz",
      "switchName" : "mgmt-nvds",
      "networkName" : "net-overlay"
    },
    "vlanTransportZone" : {
      "zoneName" : "vlan-tz",
      "switchName" : "mgmt-nvds",
      "networkName" : "net-vlan"
    },
    "vip" : "10.0.0.30",
    "vipFqdn" : "vip-nsx-mgmt",
    "nsxtLicense" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "transportVlanId" : 0
  },
  "vsanSpec" : {
    "vsanName" : "vsan-1",
    "licenseFile" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "datastoreName" : "sfo01-m01-vsan"
  },
  "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" : "SDDC-Dswitch-Private",
    "vmnics" : [ "vmnic0", "vmnic1" ],
    "networks" : [ "MANAGEMENT", "VSAN", "VMOTION" ]
  } ],
  "clusterSpec" : {
    "clusterName" : "SDDC-Cluster1",
    "clusterEvcMode" : "",
    "resourcePoolSpecs" : [ {
      "cpuSharesLevel" : "high",
      "cpuSharesValue" : 0,
      "name" : "Mgmt-ResourcePool",
      "memorySharesValue" : 0,
      "cpuReservationPercentage" : 0,
      "memoryLimit" : -1,
      "memoryReservationPercentage" : 0,
      "cpuReservationExpandable" : true,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "cpuLimit" : -1,
      "type" : "management"
    }, {
      "cpuSharesLevel" : "high",
      "cpuSharesValue" : 0,
      "name" : "Network-ResourcePool",
      "memorySharesValue" : 0,
      "cpuReservationPercentage" : 0,
      "memoryLimit" : -1,
      "memoryReservationPercentage" : 0,
      "cpuReservationExpandable" : true,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "cpuLimit" : -1,
      "type" : "network"
    }, {
      "cpuSharesLevel" : "normal",
      "cpuSharesValue" : 0,
      "name" : "Compute-ResourcePool",
      "memorySharesValue" : 0,
      "cpuReservationPercentage" : 0,
      "memoryLimit" : -1,
      "memoryReservationPercentage" : 0,
      "cpuReservationExpandable" : true,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "cpuLimit" : -1,
      "type" : "compute"
    }, {
      "name" : "User-RP",
      "type" : "compute",
      "cpuReservationMhz" : 2100,
      "cpuLimit" : -1,
      "cpuReservationExpandable" : true,
      "cpuSharesLevel" : "normal",
      "memoryReservationMb" : 3128,
      "memoryReservationExpandable" : true,
      "memorySharesLevel" : "normal",
      "memorySharesValue" : 0
    } ]
  },
  "pscSpecs" : [ {
    "pscId" : "psc-1",
    "vcenterId" : "vcenter-1",
    "pscSsoSpec" : {
      "ssoDomain" : "vsphere.local"
    },
    "adminUserSsoPassword" : "xxxxxxx"
  } ],
  "vcenterSpec" : {
    "vcenterIp" : "10.0.0.6",
    "vcenterHostname" : "vcenter-1",
    "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" : "esxi-1",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-0",
    "association" : "SDDC-Datacenter"
  }, {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.252.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.101",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "esxi-2",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-1",
    "association" : "SDDC-Datacenter"
  }, {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.255.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.102",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "esxi-3",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-2",
    "association" : "SDDC-Datacenter"
  }, {
    "credentials" : {
      "username" : "root",
      "password" : "xxxxxxx"
    },
    "ipAddressPrivate" : {
      "subnet" : "255.255.255.0",
      "cidr" : "",
      "ipAddress" : "10.0.0.103",
      "gateway" : "10.0.0.250"
    },
    "hostname" : "esxi-4",
    "vSwitch" : "vSwitch0",
    "serverId" : "host-3",
    "association" : "SDDC-Datacenter"
  } ]
}

HTTP Response

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

{
  "id" : "97f5c5fe-187f-46d3-b446-73e310187428",
  "name" : "Bringup-Ems",
  "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" : "NSXvConfiguration",
    "processingStateDescription" : "Deploy and Configure NSX for vSphere",
    "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://sddc-manager.sfo01.rainpole.local/v1/system/ceip' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/system/ceip HTTP/1.1
Host: sddc-manager.sfo01.rainpole.local
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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
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/88073b02-2083-4e0d-84ce-1dbe872b8126

2.5.2. Get the Network Pools

Steps
  1. Invoke the API

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "id" : "d3241a29-8b15-44ff-ad00-8a0944ddb549",
    "name" : "engineering-networkpool",
    "networks" : [ {
      "id" : "44c9dac4-6625-40b4-9508-ce5fc238d8d2"
    } ]
  }, {
    "id" : "8f166b74-5b5b-405b-b228-6691d48f7d8e",
    "name" : "finance-networkpool",
    "networks" : [ {
      "id" : "a183f2a8-b497-4cd6-baba-d4bf26b2b9e7"
    } ]
  } ]
}

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://sddc-manager.sfo01.rainpole.local/v1/network-pools/cf5666e8-6122-4ed6-b776-64469297cee7' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/network-pools/cf5666e8-6122-4ed6-b776-64469297cee7 HTTP/1.1
Content-Type: application/json
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "id" : "cf5666e8-6122-4ed6-b776-64469297cee7",
  "name" : "engineering-networkpool",
  "networks" : [ {
    "id" : "9bfe74ba-ae14-4050-80ab-ed52e454ecdc"
  } ]
}

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://sddc-manager.sfo01.rainpole.local/v1/network-pools/b0c62cb5-44e1-4ab7-af37-f971892e9dc4/networks/d36826e0-9293-4153-a6cd-3679e8155d18' -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" : "d36826e0-9293-4153-a6cd-3679e8155d18",
  "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. 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://sddc-manager.sfo01.rainpole.local/v1/network-pools/3ac9c365-3e2b-4063-9b97-0f23035fe8bc' -i -X DELETE \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

DELETE /v1/network-pools/3ac9c365-3e2b-4063-9b97-0f23035fe8bc HTTP/1.1
Content-Type: application/json
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 204 No Content

2.5.6. 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://sddc-manager.sfo01.rainpole.local/v1/network-pools/e88ddc1e-5efb-4648-969c-b010a425fbe8/networks/b31efd2c-43c7-42b9-8efe-296e461c812b/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/e88ddc1e-5efb-4648-969c-b010a425fbe8/networks/b31efd2c-43c7-42b9-8efe-296e461c812b/ip-pools HTTP/1.1
Content-Type: application/json
Content-Length: 54
Host: sddc-manager.sfo01.rainpole.local
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" : "e17072db-9902-4821-8c19-0108f680b0b7",
  "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.7. 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://sddc-manager.sfo01.rainpole.local/v1/network-pools/ec91626f-7703-4a4d-8c1c-0c1b0fe77ffa/networks/82391d6c-bc0f-4202-b453-5d9768170f4b/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/ec91626f-7703-4a4d-8c1c-0c1b0fe77ffa/networks/82391d6c-bc0f-4202-b453-5d9768170f4b/ip-pools HTTP/1.1
Content-Type: application/json
Content-Length: 54
Host: sddc-manager.sfo01.rainpole.local
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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "id" : "6e4ae58d-ba62-437e-b331-c1de92945969",
    "name" : "Commissioning host(s) esxi-5.vrack.vsphere.local 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) esxi-5.vrack.vsphere.local to VMware Cloud Foundation"
    } ],
    "resources" : [ {
      "resourceId" : "5f9e0fbe-f933-483e-b51e-43557a383f89",
      "type" : "HOST"
    } ],
    "resolutionStatus" : "UNRESOLVED",
    "isCancellable" : false
  }, {
    "id" : "e47d04b6-b699-4cdd-9360-c269a4a6ddad",
    "name" : "Credentials rotate operation",
    "status" : "Successful",
    "creationTimestamp" : "2019-06-20T12:03:18.890Z",
    "subTasks" : [ {
      "name" : "sddc-manager.vrack.vsphere.local:FTP",
      "description" : "Password rotate for sddc-manager.vrack.vsphere.local and credential type FTP",
      "status" : "SUCCESSFUL",
      "creationTimestamp" : "2019-06-20T12:03:18.890Z"
    } ],
    "resources" : [ {
      "resourceId" : "ddad972e-efaa-4415-b43e-0c53adcf6588",
      "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://sddc-manager.sfo01.rainpole.local/v1/tasks/ea221fbb-525d-46d4-be40-558230155307' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/tasks/ea221fbb-525d-46d4-be40-558230155307 HTTP/1.1
Content-Type: application/json
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "id" : "ea221fbb-525d-46d4-be40-558230155307",
  "name" : "Vi workload Domain Creation",
  "status" : "FAILED",
  "creationTimestamp" : "1970-01-19T08:19:44.721Z",
  "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" : "344a0551-80bc-45a9-9e9d-22b32af7b0ce",
    "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://sddc-manager.sfo01.rainpole.local/v1/tasks/3c731cd4-125f-485e-a591-f3f9adfa7d98' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

PATCH /v1/tasks/3c731cd4-125f-485e-a591-f3f9adfa7d98 HTTP/1.1
Content-Type: application/json
Host: sddc-manager.sfo01.rainpole.local
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.

Steps
  1. Validate the input specification.

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/v1/hosts/validations' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '[ {
  "fqdn" : "esfo01m01esx01.sfo01.rainpole.local",
  "username" : "root",
  "password" : "VMwareInfra@1",
  "storageType" : "VSAN",
  "networkPoolId" : "58d74167-ee80-4eb8-90d9-cdfb3c1cd9f3",
  "networkPoolName" : "engineering-networkpool"
}, {
  "fqdn" : "esfo01m01esx02.sfo01.rainpole.local",
  "username" : "root",
  "password" : "VMwareInfra@1",
  "storageType" : "VSAN",
  "networkPoolId" : "1ff2838a-1983-4747-a94d-d30b2d13a973",
  "networkPoolName" : "finance-networkpool"
} ]'

HTTP Request

POST /v1/hosts/validations HTTP/1.1
Content-Type: application/json
Content-Length: 486
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

[ {
  "fqdn" : "esfo01m01esx01.sfo01.rainpole.local",
  "username" : "root",
  "password" : "VMwareInfra@1",
  "storageType" : "VSAN",
  "networkPoolId" : "58d74167-ee80-4eb8-90d9-cdfb3c1cd9f3",
  "networkPoolName" : "engineering-networkpool"
}, {
  "fqdn" : "esfo01m01esx02.sfo01.rainpole.local",
  "username" : "root",
  "password" : "VMwareInfra@1",
  "storageType" : "VSAN",
  "networkPoolId" : "1ff2838a-1983-4747-a94d-d30b2d13a973",
  "networkPoolName" : "finance-networkpool"
} ]

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/hosts/validations/b6276551-bb01-4847-a8cb-578b880a4069
Content-Type: application/json
Content-Length: 542

{
  "id" : "b6276551-bb01-4847-a8cb-578b880a4069",
  "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 esfo01m01esx01.sfo01.rainpole.local",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "Validating host esfo01m01esx02.sfo01.rainpole.local",
    "resultStatus" : "UNKNOWN"
  } ]
}
  1. Poll until "executionStatus" is not "IN_PROGRESS" using the "id" from the previous response.

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/v1/hosts/validations/b6276551-bb01-4847-a8cb-578b880a4069' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/hosts/validations/b6276551-bb01-4847-a8cb-578b880a4069 HTTP/1.1
Content-Type: application/json
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "id" : "b6276551-bb01-4847-a8cb-578b880a4069",
  "description" : "Validate input specification to commission one or more hosts to VMware Cloud Foundation",
  "executionStatus" : "IN_PROGRESS",
  "validationChecks" : [ {
    "description" : "Validating host esfo01m01esx01.sfo01.rainpole.local",
    "resultStatus" : "SUCCEEDED"
  }, {
    "description" : "Validating host esfo01m01esx02.sfo01.rainpole.local",
    "resultStatus" : "UNKNOWN"
  } ]
}
  1. In case of no errors in the input specification, the "executionStatus" is "COMPLETED" and "resultStatus" is "SUCCEEDED".

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/v1/hosts/validations/b6276551-bb01-4847-a8cb-578b880a4069' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/hosts/validations/b6276551-bb01-4847-a8cb-578b880a4069 HTTP/1.1
Content-Type: application/json
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "id" : "b6276551-bb01-4847-a8cb-578b880a4069",
  "description" : "Validate input specification to commission one or more hosts to VMware Cloud Foundation",
  "executionStatus" : "COMPLETED",
  "resultStatus" : "SUCCEEDED",
  "validationChecks" : [ {
    "description" : "Validating host esfo01m01esx01.sfo01.rainpole.local",
    "resultStatus" : "SUCCEEDED"
  }, {
    "description" : "Validating host esfo01m01esx02.sfo01.rainpole.local",
    "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.

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/v1/hosts' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '[ {
  "fqdn" : "esfo01m01esx01.sfo01.rainpole.local",
  "username" : "root",
  "password" : "VMwareInfra@1",
  "storageType" : "VSAN",
  "networkPoolId" : "58d74167-ee80-4eb8-90d9-cdfb3c1cd9f3",
  "networkPoolName" : "engineering-networkpool"
}, {
  "fqdn" : "esfo01m01esx02.sfo01.rainpole.local",
  "username" : "root",
  "password" : "VMwareInfra@1",
  "storageType" : "VSAN",
  "networkPoolId" : "1ff2838a-1983-4747-a94d-d30b2d13a973",
  "networkPoolName" : "finance-networkpool"
} ]'

HTTP Request

POST /v1/hosts HTTP/1.1
Content-Type: application/json
Content-Length: 486
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

[ {
  "fqdn" : "esfo01m01esx01.sfo01.rainpole.local",
  "username" : "root",
  "password" : "VMwareInfra@1",
  "storageType" : "VSAN",
  "networkPoolId" : "58d74167-ee80-4eb8-90d9-cdfb3c1cd9f3",
  "networkPoolName" : "engineering-networkpool"
}, {
  "fqdn" : "esfo01m01esx02.sfo01.rainpole.local",
  "username" : "root",
  "password" : "VMwareInfra@1",
  "storageType" : "VSAN",
  "networkPoolId" : "1ff2838a-1983-4747-a94d-d30b2d13a973",
  "networkPoolName" : "finance-networkpool"
} ]

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/tasks/0702ac00-8eb2-4caf-b1c2-c8add843cf04
Content-Type: application/json
Content-Length: 79

{
  "id" : "0702ac00-8eb2-4caf-b1c2-c8add843cf04",
  "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.

2.7.2. Get the Hosts

Prerequisites

None

Get All Hosts

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c1",
    "esxiVersion" : "6.7.0-13006603",
    "fqdn" : "esfo01m01esx01.sfo01.rainpole.local",
    "hardwareVendor" : "VMware, Inc.",
    "hardwareModel" : "VMware Virtual Platform",
    "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"
    }, {
      "deviceName" : "vmnic1",
      "macAddress" : "02:00:1b:31:93:d3"
    } ],
    "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" : "esfo01m01esx02.sfo01.rainpole.local",
    "hardwareVendor" : "VMware, Inc.",
    "hardwareModel" : "VMware Virtual Platform",
    "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"
    }, {
      "deviceName" : "vmnic1",
      "macAddress" : "02:00:1b:31:93:d3"
    } ],
    "networkpool" : {
      "id" : "1205afdd-84f5-403e-a052-1a9bba09ef41"
    },
    "status" : "UNASSIGNED_USEABLE",
    "hybrid" : true
  }, {
    "id" : "8045e44e-974e-4f43-9862-7f0326782638",
    "esxiVersion" : "6.5.0-13006603",
    "fqdn" : "esfo01m01esx03.sfo01.rainpole.local",
    "hardwareVendor" : "VMware, Inc.",
    "hardwareModel" : "VMware Virtual Platform",
    "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"
    }, {
      "deviceName" : "vmnic1",
      "macAddress" : "02:00:1b:31:93:d3"
    } ],
    "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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c1",
    "esxiVersion" : "6.7.0-13006603",
    "fqdn" : "esfo01m01esx01.sfo01.rainpole.local",
    "hardwareVendor" : "VMware, Inc.",
    "hardwareModel" : "VMware Virtual Platform",
    "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"
    }, {
      "deviceName" : "vmnic1",
      "macAddress" : "02:00:1b:31:93:d3"
    } ],
    "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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "id" : "8045e44e-974e-4f43-9862-7f0326782638",
    "esxiVersion" : "6.5.0-13006603",
    "fqdn" : "esfo01m01esx02.sfo01.rainpole.local",
    "hardwareVendor" : "VMware, Inc.",
    "hardwareModel" : "VMware Virtual Platform",
    "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"
    }, {
      "deviceName" : "vmnic1",
      "macAddress" : "02:00:1b:31:93:d3"
    } ],
    "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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "id" : "8045e44e-974e-4f43-9862-7f0326782638",
    "esxiVersion" : "6.5.0-13006603",
    "fqdn" : "esfo01m01esx03.sfo01.rainpole.local",
    "hardwareVendor" : "VMware, Inc.",
    "hardwareModel" : "VMware Virtual Platform",
    "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"
    }, {
      "deviceName" : "vmnic1",
      "macAddress" : "02:00:1b:31:93:d3"
    } ],
    "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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c1",
    "esxiVersion" : "6.7.0-13006603",
    "fqdn" : "esfo01m01esx01.sfo01.rainpole.local",
    "hardwareVendor" : "VMware, Inc.",
    "hardwareModel" : "VMware Virtual Platform",
    "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"
    }, {
      "deviceName" : "vmnic1",
      "macAddress" : "02:00:1b:31:93:d3"
    } ],
    "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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c1",
    "esxiVersion" : "6.7.0-13006603",
    "fqdn" : "esfo01m01esx01.sfo01.rainpole.local",
    "hardwareVendor" : "VMware, Inc.",
    "hardwareModel" : "VMware Virtual Platform",
    "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"
    }, {
      "deviceName" : "vmnic1",
      "macAddress" : "02:00:1b:31:93:d3"
    } ],
    "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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c1",
    "esxiVersion" : "6.7.0-13006603",
    "fqdn" : "esfo01m01esx01.sfo01.rainpole.local",
    "hardwareVendor" : "VMware, Inc.",
    "hardwareModel" : "VMware Virtual Platform",
    "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"
    }, {
      "deviceName" : "vmnic1",
      "macAddress" : "02:00:1b:31:93:d3"
    } ],
    "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".
Steps
  1. Invoke the API by specifying the "storageType".

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c1",
    "esxiVersion" : "6.7.0-13006603",
    "fqdn" : "esfo01m01esx01.sfo01.rainpole.local",
    "hardwareVendor" : "VMware, Inc.",
    "hardwareModel" : "VMware Virtual Platform",
    "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"
    }, {
      "deviceName" : "vmnic1",
      "macAddress" : "02:00:1b:31:93:d3"
    } ],
    "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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c1",
    "esxiVersion" : "6.7.0-13006603",
    "fqdn" : "esfo01m01esx01.sfo01.rainpole.local",
    "hardwareVendor" : "VMware, Inc.",
    "hardwareModel" : "VMware Virtual Platform",
    "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"
    }, {
      "deviceName" : "vmnic1",
      "macAddress" : "02:00:1b:31:93:d3"
    } ],
    "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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c1",
  "esxiVersion" : "6.7.0-13006603",
  "fqdn" : "esfo01m01esx01.sfo01.rainpole.local",
  "hardwareVendor" : "VMware, Inc.",
  "hardwareModel" : "VMware Virtual Platform",
  "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"
  }, {
    "deviceName" : "vmnic1",
    "macAddress" : "02:00:1b:31:93:d3"
  } ],
  "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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "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"
  } ]
}
  1. Pick one of the criterion and post a query

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
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/89c8472f-4387-43fd-b215-a367334fa6c4
Content-Type: application/json
Content-Length: 127

{
  "queryInfo" : {
    "status" : "IN_PROGRESS",
    "processing" : true,
    "completed" : false,
    "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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "queryInfo" : {
    "status" : "COMPLETED",
    "processing" : false,
    "completed" : true,
    "failure" : false
  },
  "result" : {
    "elements" : [ {
      "id" : "44806db8-4401-4d74-be0a-f9067d048314",
      "esxiVersion" : "6.7.0-14320388",
      "fqdn" : "esxi-1.vrack.vsphere.local",
      "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://sddc-manager.sfo01.rainpole.local/v1/hosts' -i -X DELETE \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '[ {
  "fqdn" : "esfo01m01esx01.sfo01.rainpole.local"
}, {
  "fqdn" : "esfo01m01esx02.sfo01.rainpole.local"
} ]'

HTTP Request

DELETE /v1/hosts HTTP/1.1
Content-Type: application/json
Content-Length: 110
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

[ {
  "fqdn" : "esfo01m01esx01.sfo01.rainpole.local"
}, {
  "fqdn" : "esfo01m01esx02.sfo01.rainpole.local"
} ]

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/tasks/25876d71-04ef-47f0-a4b5-77e8eb0d4865
Content-Type: application/json
Content-Length: 79

{
  "id" : "25876d71-04ef-47f0-a4b5-77e8eb0d4865",
  "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.

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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "id" : "e370f734-2452-4758-8d5d-a1b6c948964e",
    "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" : "7c9c4292-e5fa-4147-9d39-6990800672f8",
    "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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "id" : "72a4041e-6194-4e69-8ad9-04a4b6e78a2f",
    "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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "id" : "12c62d1d-19bc-47fc-8ec3-367a1b797a67",
    "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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "id" : "39b1e10b-f4d4-443e-bea7-be8fe995ac47",
  "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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
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) 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.

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

      • License key for the vCenter

      • 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) or "vmfsDatastoreSpec" (For VMFS on FC) 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" : "vSanDatastore"
                }
              }
          • 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" : "NFSShare"
              } ]
            }
        • For VMFS on FC

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

            {
              "vmfsDatastoreSpec" : {
                "fcSpec" : [ {
                  "datastoreName" : "sample-vmfs-on-fc-datastore-name"
                } ]
              }
            }
        • Network Details

          • List of VDS details

            • For each VDS
              Port group names and the corresponding transport type
              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
              License key for NSX-T

        {
          "nsxTClusterSpec" : {
            "geneveVlanId" : 2
          }
        }
    • 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

        • 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" : "nsx-manager-2",
        "networkDetailsSpec" : {
          "ipAddress" : "10.0.0.44",
          "dnsName" : "nsx-manager-2.vrack.vsphere.local",
          "gateway" : "10.0.0.250",
          "subnetMask" : "255.255.255.0"
        }
      }, {
        "name" : "nsx-manager-3",
        "networkDetailsSpec" : {
          "ipAddress" : "10.0.0.44",
          "dnsName" : "nsx-manager-2.vrack.vsphere.local",
          "gateway" : "10.0.0.250",
          "subnetMask" : "255.255.255.0"
        }
      }, {
        "name" : "nsx-manager-4",
        "networkDetailsSpec" : {
          "ipAddress" : "10.0.0.44",
          "dnsName" : "nsx-manager-2.vrack.vsphere.local",
          "gateway" : "10.0.0.250",
          "subnetMask" : "255.255.255.0"
        }
      } ],
      "vip" : "10.0.0.166",
      "vipFqdn" : "vip-nsxmanager.vrack.vsphere.local",
      "licenseKey" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
      "nsxManagerAdminPassword" : "VMware123!"
    }
  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" : "SDDC-Dswitch-Private1"
      }, {
        "id" : "vmnic1",
        "vdsName" : "SDDC-Dswitch-Private1"
      }, {
        "id" : "vmnic2",
        "vdsName" : "SDDC-Dswitch-Private2-Converged"
      }, {
        "id" : "vmnic3",
        "vdsName" : "SDDC-Dswitch-Private2-Converged"
      } ]
    }
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://sddc-manager.sfo01.rainpole.local/v1/domains/validations/creations' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "domainName" : "Domain1",
  "vcenterSpec" : {
    "name" : "vcenter-1",
    "networkDetailsSpec" : {
      "ipAddress" : "10.0.0.43",
      "dnsName" : "vcenter-2.vrack.vsphere.local",
      "gateway" : "10.0.0.250",
      "subnetMask" : "255.255.255.0"
    },
    "rootPassword" : "VMware123!",
    "datacenterName" : "new-vi-1"
  },
  "computeSpec" : {
    "clusterSpecs" : [ {
      "name" : "Cluster1",
      "hostSpecs" : [ {
        "id" : "ee8076b2-df8c-45dc-9cda-467d7b98dae3",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic1",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic2",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          }, {
            "id" : "vmnic3",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          } ]
        }
      }, {
        "id" : "93246e69-af8b-4ed3-b798-3662e271364a",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic1",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic2",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          }, {
            "id" : "vmnic3",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          } ]
        }
      }, {
        "id" : "4e2dc034-dfd0-4982-9862-654d2738e442",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic1",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic2",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          }, {
            "id" : "vmnic3",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          } ]
        }
      } ],
      "datastoreSpec" : {
        "vsanDatastoreSpec" : {
          "failuresToTolerate" : 1,
          "licenseKey" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
          "datastoreName" : "vSanDatastore"
        }
      },
      "networkSpec" : {
        "vdsSpecs" : [ {
          "name" : "SDDC-Dswitch-Private1",
          "portGroupSpecs" : [ {
            "name" : "SDDC-DPortGroup-Mgmt",
            "transportType" : "MANAGEMENT"
          }, {
            "name" : "SDDC-DPortGroup-VSAN",
            "transportType" : "VSAN"
          }, {
            "name" : "SDDC-DPortGroup-vMotion",
            "transportType" : "VMOTION"
          } ]
        }, {
          "name" : "SDDC-Dswitch-Private2-Converged",
          "isUsedByNsxt" : true
        } ],
        "nsxClusterSpec" : {
          "nsxTClusterSpec" : {
            "geneveVlanId" : 2
          }
        }
      }
    } ]
  },
  "nsxTSpec" : {
    "nsxManagerSpecs" : [ {
      "name" : "nsx-manager-2",
      "networkDetailsSpec" : {
        "ipAddress" : "10.0.0.44",
        "dnsName" : "nsx-manager-2.vrack.vsphere.local",
        "gateway" : "10.0.0.250",
        "subnetMask" : "255.255.255.0"
      }
    }, {
      "name" : "nsx-manager-3",
      "networkDetailsSpec" : {
        "ipAddress" : "10.0.0.44",
        "dnsName" : "nsx-manager-2.vrack.vsphere.local",
        "gateway" : "10.0.0.250",
        "subnetMask" : "255.255.255.0"
      }
    }, {
      "name" : "nsx-manager-4",
      "networkDetailsSpec" : {
        "ipAddress" : "10.0.0.44",
        "dnsName" : "nsx-manager-2.vrack.vsphere.local",
        "gateway" : "10.0.0.250",
        "subnetMask" : "255.255.255.0"
      }
    } ],
    "vip" : "10.0.0.166",
    "vipFqdn" : "vip-nsxmanager.vrack.vsphere.local",
    "licenseKey" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "nsxManagerAdminPassword" : "VMware123!"
  }
}'

HTTP Request

POST /v1/domains/validations/creations HTTP/1.1
Content-Type: application/json
Content-Length: 3928
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

{
  "domainName" : "Domain1",
  "vcenterSpec" : {
    "name" : "vcenter-1",
    "networkDetailsSpec" : {
      "ipAddress" : "10.0.0.43",
      "dnsName" : "vcenter-2.vrack.vsphere.local",
      "gateway" : "10.0.0.250",
      "subnetMask" : "255.255.255.0"
    },
    "rootPassword" : "VMware123!",
    "datacenterName" : "new-vi-1"
  },
  "computeSpec" : {
    "clusterSpecs" : [ {
      "name" : "Cluster1",
      "hostSpecs" : [ {
        "id" : "ee8076b2-df8c-45dc-9cda-467d7b98dae3",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic1",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic2",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          }, {
            "id" : "vmnic3",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          } ]
        }
      }, {
        "id" : "93246e69-af8b-4ed3-b798-3662e271364a",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic1",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic2",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          }, {
            "id" : "vmnic3",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          } ]
        }
      }, {
        "id" : "4e2dc034-dfd0-4982-9862-654d2738e442",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic1",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic2",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          }, {
            "id" : "vmnic3",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          } ]
        }
      } ],
      "datastoreSpec" : {
        "vsanDatastoreSpec" : {
          "failuresToTolerate" : 1,
          "licenseKey" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
          "datastoreName" : "vSanDatastore"
        }
      },
      "networkSpec" : {
        "vdsSpecs" : [ {
          "name" : "SDDC-Dswitch-Private1",
          "portGroupSpecs" : [ {
            "name" : "SDDC-DPortGroup-Mgmt",
            "transportType" : "MANAGEMENT"
          }, {
            "name" : "SDDC-DPortGroup-VSAN",
            "transportType" : "VSAN"
          }, {
            "name" : "SDDC-DPortGroup-vMotion",
            "transportType" : "VMOTION"
          } ]
        }, {
          "name" : "SDDC-Dswitch-Private2-Converged",
          "isUsedByNsxt" : true
        } ],
        "nsxClusterSpec" : {
          "nsxTClusterSpec" : {
            "geneveVlanId" : 2
          }
        }
      }
    } ]
  },
  "nsxTSpec" : {
    "nsxManagerSpecs" : [ {
      "name" : "nsx-manager-2",
      "networkDetailsSpec" : {
        "ipAddress" : "10.0.0.44",
        "dnsName" : "nsx-manager-2.vrack.vsphere.local",
        "gateway" : "10.0.0.250",
        "subnetMask" : "255.255.255.0"
      }
    }, {
      "name" : "nsx-manager-3",
      "networkDetailsSpec" : {
        "ipAddress" : "10.0.0.44",
        "dnsName" : "nsx-manager-2.vrack.vsphere.local",
        "gateway" : "10.0.0.250",
        "subnetMask" : "255.255.255.0"
      }
    }, {
      "name" : "nsx-manager-4",
      "networkDetailsSpec" : {
        "ipAddress" : "10.0.0.44",
        "dnsName" : "nsx-manager-2.vrack.vsphere.local",
        "gateway" : "10.0.0.250",
        "subnetMask" : "255.255.255.0"
      }
    } ],
    "vip" : "10.0.0.166",
    "vipFqdn" : "vip-nsxmanager.vrack.vsphere.local",
    "licenseKey" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "nsxManagerAdminPassword" : "VMware123!"
  }
}

HTTP Response

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

{
  "id" : "b23f1bbe-a895-46ef-b4c6-bb30b520f6f9",
  "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://sddc-manager.sfo01.rainpole.local/v1/domains' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "domainName" : "Domain1",
  "vcenterSpec" : {
    "name" : "vcenter-1",
    "networkDetailsSpec" : {
      "ipAddress" : "10.0.0.43",
      "dnsName" : "vcenter-2.vrack.vsphere.local",
      "gateway" : "10.0.0.250",
      "subnetMask" : "255.255.255.0"
    },
    "rootPassword" : "VMware123!",
    "datacenterName" : "new-vi-1"
  },
  "computeSpec" : {
    "clusterSpecs" : [ {
      "name" : "Cluster1",
      "hostSpecs" : [ {
        "id" : "d5d06532-b178-4035-90ba-ded5401d0740",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic1",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic2",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          }, {
            "id" : "vmnic3",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          } ]
        }
      }, {
        "id" : "2eab1f43-3df2-4359-bef9-99d7cbac9df6",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic1",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic2",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          }, {
            "id" : "vmnic3",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          } ]
        }
      }, {
        "id" : "e6b05ddc-6223-411e-84ec-a14932373838",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic1",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic2",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          }, {
            "id" : "vmnic3",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          } ]
        }
      } ],
      "datastoreSpec" : {
        "vsanDatastoreSpec" : {
          "failuresToTolerate" : 1,
          "licenseKey" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
          "datastoreName" : "vSanDatastore"
        }
      },
      "networkSpec" : {
        "vdsSpecs" : [ {
          "name" : "SDDC-Dswitch-Private1",
          "portGroupSpecs" : [ {
            "name" : "SDDC-DPortGroup-Mgmt",
            "transportType" : "MANAGEMENT"
          }, {
            "name" : "SDDC-DPortGroup-VSAN",
            "transportType" : "VSAN"
          }, {
            "name" : "SDDC-DPortGroup-vMotion",
            "transportType" : "VMOTION"
          } ]
        }, {
          "name" : "SDDC-Dswitch-Private2-Converged",
          "isUsedByNsxt" : true
        } ],
        "nsxClusterSpec" : {
          "nsxTClusterSpec" : {
            "geneveVlanId" : 2
          }
        }
      }
    } ]
  },
  "nsxTSpec" : {
    "nsxManagerSpecs" : [ {
      "name" : "nsx-manager-2",
      "networkDetailsSpec" : {
        "ipAddress" : "10.0.0.44",
        "dnsName" : "nsx-manager-2.vrack.vsphere.local",
        "gateway" : "10.0.0.250",
        "subnetMask" : "255.255.255.0"
      }
    }, {
      "name" : "nsx-manager-3",
      "networkDetailsSpec" : {
        "ipAddress" : "10.0.0.44",
        "dnsName" : "nsx-manager-2.vrack.vsphere.local",
        "gateway" : "10.0.0.250",
        "subnetMask" : "255.255.255.0"
      }
    }, {
      "name" : "nsx-manager-4",
      "networkDetailsSpec" : {
        "ipAddress" : "10.0.0.44",
        "dnsName" : "nsx-manager-2.vrack.vsphere.local",
        "gateway" : "10.0.0.250",
        "subnetMask" : "255.255.255.0"
      }
    } ],
    "vip" : "10.0.0.166",
    "vipFqdn" : "vip-nsxmanager.vrack.vsphere.local",
    "licenseKey" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "nsxManagerAdminPassword" : "VMware123!"
  }
}'

HTTP Request

POST /v1/domains HTTP/1.1
Content-Type: application/json
Content-Length: 3928
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

{
  "domainName" : "Domain1",
  "vcenterSpec" : {
    "name" : "vcenter-1",
    "networkDetailsSpec" : {
      "ipAddress" : "10.0.0.43",
      "dnsName" : "vcenter-2.vrack.vsphere.local",
      "gateway" : "10.0.0.250",
      "subnetMask" : "255.255.255.0"
    },
    "rootPassword" : "VMware123!",
    "datacenterName" : "new-vi-1"
  },
  "computeSpec" : {
    "clusterSpecs" : [ {
      "name" : "Cluster1",
      "hostSpecs" : [ {
        "id" : "d5d06532-b178-4035-90ba-ded5401d0740",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic1",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic2",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          }, {
            "id" : "vmnic3",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          } ]
        }
      }, {
        "id" : "2eab1f43-3df2-4359-bef9-99d7cbac9df6",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic1",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic2",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          }, {
            "id" : "vmnic3",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          } ]
        }
      }, {
        "id" : "e6b05ddc-6223-411e-84ec-a14932373838",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic1",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic2",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          }, {
            "id" : "vmnic3",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          } ]
        }
      } ],
      "datastoreSpec" : {
        "vsanDatastoreSpec" : {
          "failuresToTolerate" : 1,
          "licenseKey" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
          "datastoreName" : "vSanDatastore"
        }
      },
      "networkSpec" : {
        "vdsSpecs" : [ {
          "name" : "SDDC-Dswitch-Private1",
          "portGroupSpecs" : [ {
            "name" : "SDDC-DPortGroup-Mgmt",
            "transportType" : "MANAGEMENT"
          }, {
            "name" : "SDDC-DPortGroup-VSAN",
            "transportType" : "VSAN"
          }, {
            "name" : "SDDC-DPortGroup-vMotion",
            "transportType" : "VMOTION"
          } ]
        }, {
          "name" : "SDDC-Dswitch-Private2-Converged",
          "isUsedByNsxt" : true
        } ],
        "nsxClusterSpec" : {
          "nsxTClusterSpec" : {
            "geneveVlanId" : 2
          }
        }
      }
    } ]
  },
  "nsxTSpec" : {
    "nsxManagerSpecs" : [ {
      "name" : "nsx-manager-2",
      "networkDetailsSpec" : {
        "ipAddress" : "10.0.0.44",
        "dnsName" : "nsx-manager-2.vrack.vsphere.local",
        "gateway" : "10.0.0.250",
        "subnetMask" : "255.255.255.0"
      }
    }, {
      "name" : "nsx-manager-3",
      "networkDetailsSpec" : {
        "ipAddress" : "10.0.0.44",
        "dnsName" : "nsx-manager-2.vrack.vsphere.local",
        "gateway" : "10.0.0.250",
        "subnetMask" : "255.255.255.0"
      }
    }, {
      "name" : "nsx-manager-4",
      "networkDetailsSpec" : {
        "ipAddress" : "10.0.0.44",
        "dnsName" : "nsx-manager-2.vrack.vsphere.local",
        "gateway" : "10.0.0.250",
        "subnetMask" : "255.255.255.0"
      }
    } ],
    "vip" : "10.0.0.166",
    "vipFqdn" : "vip-nsxmanager.vrack.vsphere.local",
    "licenseKey" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "nsxManagerAdminPassword" : "VMware123!"
  }
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/a2a566a1-1d06-493b-96c4-f17407393a56
Content-Length: 142

{
  "id" : "a2a566a1-1d06-493b-96c4-f17407393a56",
  "name" : "",
  "status" : "UNKNOWN",
  "creationTimestamp" : "2020-04-10T06:24:39.551Z"
}
  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://sddc-manager.sfo01.rainpole.local/v1/domains' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/domains HTTP/1.1
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c5",
    "name" : "VI-1",
    "vcenters" : [ {
      "id" : "c0703437-6756-470b-9e1c-f9d3bbc9b1c6"
    } ],
    "clusters" : [ {
      "id" : "8045e44e-974e-4f43-9862-7f0326782655"
    } ]
  }, {
    "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c1",
    "name" : "VDI-1",
    "vcenters" : [ {
      "id" : "c0703437-6846-470b-9e1c-f9d3bbc9b1c9"
    } ],
    "clusters" : [ {
      "id" : "8045e44e-974e-4f43-9862-7f0326782677"
    }, {
      "id" : "8045e44e-974e-4f43-9861-7f0326782633"
    } ]
  } ]
}

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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c5",
  "name" : "VI-1",
  "vcenters" : [ {
    "id" : "c0703437-6756-470b-9e1c-f9d3bbc9b1c6"
  } ],
  "clusters" : [ {
    "id" : "8045e44e-974e-4f43-9862-7f0326782655"
  } ]
}

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://sddc-manager.sfo01.rainpole.local/v1/domains/86ec4d1b-6049-4a4b-99aa-740e2ac9a8a4/endpoints' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/domains/86ec4d1b-6049-4a4b-99aa-740e2ac9a8a4/endpoints HTTP/1.1
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "type" : "VCENTER",
    "url" : "https://vcenter-1.vrack.vsphere.local"
  }, {
    "type" : "NSX_MANAGER",
    "url" : "https://nsxManager.vrack.vsphere.local"
  } ]
}

2.9.5. Delete a Domain

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

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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

{
  "markForDeletion" : true
}

HTTP Response

HTTP/1.1 200 OK
  1. Trigger the deletion.

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/1ef40ff0-3ffc-4a59-998d-9f94cb34c33e
Content-Length: 142

{
  "id" : "1ef40ff0-3ffc-4a59-998d-9f94cb34c33e",
  "name" : "",
  "status" : "UNKNOWN",
  "creationTimestamp" : "2020-04-10T06:24:36.496Z"
}
  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) 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" : "vSanDatastore"
              }
            }
        • 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" : "NFSShare"
            } ]
          }
        • For VMFS on FC

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

      {
        "vmfsDatastoreSpec" : {
          "fcSpec" : [ {
            "datastoreName" : "sample-vmfs-on-fc-datastore-name"
          } ]
        }
      }
      • Network Details

        • List of VDS details

          • For each VDS
            Port group names and the corresponding transport type
            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
            License key for NSX-T

    {
      "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 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" : "SDDC-Dswitch-Private1"
      }, {
        "id" : "vmnic1",
        "vdsName" : "SDDC-Dswitch-Private1"
      }, {
        "id" : "vmnic2",
        "vdsName" : "SDDC-Dswitch-Private2-Converged"
      }, {
        "id" : "vmnic3",
        "vdsName" : "SDDC-Dswitch-Private2-Converged"
      } ]
    }
Steps
  1. Validate the input specification.

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/v1/clusters/validations' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "domainId" : "37618a2a-6ee2-486a-9f80-0e6dd2c10990",
  "computeSpec" : {
    "clusterSpecs" : [ {
      "name" : "Cluster1",
      "hostSpecs" : [ {
        "id" : "b3afd8c5-ac7d-48cb-9c00-c573a07e9cb5",
        "licenseKey" : "XXXX-XXXX",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic1",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic2",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          }, {
            "id" : "vmnic3",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          } ]
        }
      }, {
        "id" : "f9c20ea9-bd51-4973-b519-cb8593ab9961",
        "licenseKey" : "XXXX-XXXX",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic1",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic2",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          }, {
            "id" : "vmnic3",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          } ]
        }
      }, {
        "id" : "d875d9cc-4067-43e7-b4bc-8a98e744edd5",
        "licenseKey" : "XXXX-XXXX",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic1",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic2",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          }, {
            "id" : "vmnic3",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          } ]
        }
      } ],
      "datastoreSpec" : {
        "vsanDatastoreSpec" : {
          "failuresToTolerate" : 1,
          "licenseKey" : "XXXX-XXXX",
          "datastoreName" : "vSanDatastore"
        }
      },
      "networkSpec" : {
        "vdsSpecs" : [ {
          "name" : "SDDC-Dswitch-Private1",
          "isUsedByNsxt" : false,
          "portGroupSpecs" : [ {
            "name" : "SDDC-DPortGroup-MANAGEMENT",
            "transportType" : "MANAGEMENT"
          }, {
            "name" : "SDDC-DPortGroup-VMOTION",
            "transportType" : "VMOTION"
          }, {
            "name" : "SDDC-DPortGroup-VMOTION",
            "transportType" : "VMOTION"
          } ]
        }, {
          "name" : "SDDC-Dswitch-Private2-Converged",
          "isUsedByNsxt" : true
        } ],
        "nsxClusterSpec" : {
          "nsxTClusterSpec" : {
            "geneveVlanId" : 0
          }
        }
      },
      "advancedOptions" : {
        "evcMode" : "",
        "highAvailability" : {
          "enabled" : false
        }
      }
    } ]
  }
}'

HTTP Request

POST /v1/clusters/validations HTTP/1.1
Content-Type: application/json
Content-Length: 2948
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

{
  "domainId" : "37618a2a-6ee2-486a-9f80-0e6dd2c10990",
  "computeSpec" : {
    "clusterSpecs" : [ {
      "name" : "Cluster1",
      "hostSpecs" : [ {
        "id" : "b3afd8c5-ac7d-48cb-9c00-c573a07e9cb5",
        "licenseKey" : "XXXX-XXXX",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic1",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic2",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          }, {
            "id" : "vmnic3",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          } ]
        }
      }, {
        "id" : "f9c20ea9-bd51-4973-b519-cb8593ab9961",
        "licenseKey" : "XXXX-XXXX",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic1",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic2",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          }, {
            "id" : "vmnic3",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          } ]
        }
      }, {
        "id" : "d875d9cc-4067-43e7-b4bc-8a98e744edd5",
        "licenseKey" : "XXXX-XXXX",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic1",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic2",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          }, {
            "id" : "vmnic3",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          } ]
        }
      } ],
      "datastoreSpec" : {
        "vsanDatastoreSpec" : {
          "failuresToTolerate" : 1,
          "licenseKey" : "XXXX-XXXX",
          "datastoreName" : "vSanDatastore"
        }
      },
      "networkSpec" : {
        "vdsSpecs" : [ {
          "name" : "SDDC-Dswitch-Private1",
          "isUsedByNsxt" : false,
          "portGroupSpecs" : [ {
            "name" : "SDDC-DPortGroup-MANAGEMENT",
            "transportType" : "MANAGEMENT"
          }, {
            "name" : "SDDC-DPortGroup-VMOTION",
            "transportType" : "VMOTION"
          }, {
            "name" : "SDDC-DPortGroup-VMOTION",
            "transportType" : "VMOTION"
          } ]
        }, {
          "name" : "SDDC-Dswitch-Private2-Converged",
          "isUsedByNsxt" : true
        } ],
        "nsxClusterSpec" : {
          "nsxTClusterSpec" : {
            "geneveVlanId" : 0
          }
        }
      },
      "advancedOptions" : {
        "evcMode" : "",
        "highAvailability" : {
          "enabled" : false
        }
      }
    } ]
  }
}

HTTP Response

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

{
  "id" : "fb65348a-05da-46a6-a731-070676cf7612",
  "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://sddc-manager.sfo01.rainpole.local/v1/clusters' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "domainId" : "7716eef9-e453-4dcc-8dd2-bf19f053d3a7",
  "computeSpec" : {
    "clusterSpecs" : [ {
      "name" : "Cluster1",
      "hostSpecs" : [ {
        "id" : "67219ef5-1704-4f9c-b22d-24c3d05db602",
        "licenseKey" : "XXXX-XXXX",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic1",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic2",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          }, {
            "id" : "vmnic3",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          } ]
        }
      }, {
        "id" : "6c285caa-6146-4eb9-8de7-795d6c7f03c1",
        "licenseKey" : "XXXX-XXXX",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic1",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic2",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          }, {
            "id" : "vmnic3",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          } ]
        }
      }, {
        "id" : "b0dbe412-00db-428d-af8d-bc6ec0bf043c",
        "licenseKey" : "XXXX-XXXX",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic1",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic2",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          }, {
            "id" : "vmnic3",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          } ]
        }
      } ],
      "datastoreSpec" : {
        "vsanDatastoreSpec" : {
          "failuresToTolerate" : 1,
          "licenseKey" : "XXXX-XXXX",
          "datastoreName" : "vSanDatastore"
        }
      },
      "networkSpec" : {
        "vdsSpecs" : [ {
          "name" : "SDDC-Dswitch-Private1",
          "isUsedByNsxt" : false,
          "portGroupSpecs" : [ {
            "name" : "SDDC-DPortGroup-MANAGEMENT",
            "transportType" : "MANAGEMENT"
          }, {
            "name" : "SDDC-DPortGroup-VMOTION",
            "transportType" : "VMOTION"
          }, {
            "name" : "SDDC-DPortGroup-VMOTION",
            "transportType" : "VMOTION"
          } ]
        }, {
          "name" : "SDDC-Dswitch-Private2-Converged",
          "isUsedByNsxt" : true
        } ],
        "nsxClusterSpec" : {
          "nsxTClusterSpec" : {
            "geneveVlanId" : 0
          }
        }
      },
      "advancedOptions" : {
        "evcMode" : "",
        "highAvailability" : {
          "enabled" : false
        }
      }
    } ]
  }
}'

HTTP Request

POST /v1/clusters HTTP/1.1
Content-Type: application/json
Content-Length: 2948
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

{
  "domainId" : "7716eef9-e453-4dcc-8dd2-bf19f053d3a7",
  "computeSpec" : {
    "clusterSpecs" : [ {
      "name" : "Cluster1",
      "hostSpecs" : [ {
        "id" : "67219ef5-1704-4f9c-b22d-24c3d05db602",
        "licenseKey" : "XXXX-XXXX",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic1",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic2",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          }, {
            "id" : "vmnic3",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          } ]
        }
      }, {
        "id" : "6c285caa-6146-4eb9-8de7-795d6c7f03c1",
        "licenseKey" : "XXXX-XXXX",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic1",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic2",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          }, {
            "id" : "vmnic3",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          } ]
        }
      }, {
        "id" : "b0dbe412-00db-428d-af8d-bc6ec0bf043c",
        "licenseKey" : "XXXX-XXXX",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic1",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic2",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          }, {
            "id" : "vmnic3",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          } ]
        }
      } ],
      "datastoreSpec" : {
        "vsanDatastoreSpec" : {
          "failuresToTolerate" : 1,
          "licenseKey" : "XXXX-XXXX",
          "datastoreName" : "vSanDatastore"
        }
      },
      "networkSpec" : {
        "vdsSpecs" : [ {
          "name" : "SDDC-Dswitch-Private1",
          "isUsedByNsxt" : false,
          "portGroupSpecs" : [ {
            "name" : "SDDC-DPortGroup-MANAGEMENT",
            "transportType" : "MANAGEMENT"
          }, {
            "name" : "SDDC-DPortGroup-VMOTION",
            "transportType" : "VMOTION"
          }, {
            "name" : "SDDC-DPortGroup-VMOTION",
            "transportType" : "VMOTION"
          } ]
        }, {
          "name" : "SDDC-Dswitch-Private2-Converged",
          "isUsedByNsxt" : true
        } ],
        "nsxClusterSpec" : {
          "nsxTClusterSpec" : {
            "geneveVlanId" : 0
          }
        }
      },
      "advancedOptions" : {
        "evcMode" : "",
        "highAvailability" : {
          "enabled" : false
        }
      }
    } ]
  }
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/2914d7e7-657e-4c56-aab4-7091e058c1a8
Content-Length: 166

{
  "id" : "2914d7e7-657e-4c56-aab4-7091e058c1a8",
  "name" : "Add Cluster Workflow",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2020-04-10T06:23:52.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.10.2. Get the Clusters

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/v1/clusters' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/clusters HTTP/1.1
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "id" : "8045e44e-974e-4f43-9862-7f0326782655",
    "name" : "sfo01-m01-mgmt01",
    "primaryDatastoreName" : "sfo01-m01-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" : "sfo01-m01-wld01",
    "primaryDatastoreName" : "sfo01-m01-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" : "sfo01-m01-wld02",
    "primaryDatastoreName" : "sfo01-m01-nfs02",
    "primaryDatastoreType" : "NFS",
    "hosts" : [ {
      "id" : "c0703437-6746-470e-9e1c-f9d3bbc9b1c3"
    }, {
      "id" : "c0703431-6742-470r-9e1d-f9d3bbc9b1c4"
    } ],
    "isStretched" : false
  }, {
    "id" : "8045e44e-974e-4f43-9861-7f0326782677",
    "name" : "sfo01-m01-wld03",
    "primaryDatastoreName" : "sfo01-m01-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" : "SDDC-Cluster1",
    "primaryDatastoreName" : "sfo01-m01-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://sddc-manager.sfo01.rainpole.local/v1/clusters?isStretched=true' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/clusters?isStretched=true HTTP/1.1
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "id" : "2345e44e-974e-4f43-9862-7f0326782898",
    "name" : "sfo01-m01-mgmt01",
    "primaryDatastoreName" : "sfo01-m01-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://sddc-manager.sfo01.rainpole.local/v1/clusters?isStretched=false' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/clusters?isStretched=false HTTP/1.1
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "id" : "8045e44e-974e-4f43-9862-7f0326782655",
    "name" : "sfo01-m01-mgmt01",
    "primaryDatastoreName" : "sfo01-m01-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" : "sfo01-m01-wld01",
    "primaryDatastoreName" : "sfo01-m01-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" : "sfo01-m01-wld02",
    "primaryDatastoreName" : "sfo01-m01-nfs02",
    "primaryDatastoreType" : "NFS",
    "hosts" : [ {
      "id" : "c0703437-6746-470e-9e1c-f9d3bbc9b1c3"
    }, {
      "id" : "c0703431-6742-470r-9e1d-f9d3bbc9b1c4"
    } ],
    "isStretched" : false
  }, {
    "id" : "8045e44e-974e-4f43-9861-7f0326782677",
    "name" : "sfo01-m01-wld03",
    "primaryDatastoreName" : "sfo01-m01-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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "id" : "8045e44e-974e-4f43-9862-7f0326782655",
  "name" : "sfo01-m01-mgmt01",
  "primaryDatastoreName" : "sfo01-m01-vsan01",
  "primaryDatastoreType" : "VSAN",
  "hosts" : [ {
    "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c5"
  }, {
    "id" : "c0703431-6742-470b-9e1d-f9d3bbc9b1c9"
  } ],
  "isStretched" : false
}

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

    • 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://sddc-manager.sfo01.rainpole.local/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" : "91fd4540-b105-414c-8f96-4b89635d8c5f",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic1",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic2",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          }, {
            "id" : "vmnic3",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          } ]
        }
      } ]
    }
  }
}'

HTTP Request

POST /v1/clusters/2d54bb6c-637a-49a4-a94c-622671d0ab32/validations HTTP/1.1
Content-Type: application/json
Content-Length: 640
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

{
  "clusterUpdateSpec" : {
    "clusterExpansionSpec" : {
      "hostSpecs" : [ {
        "id" : "91fd4540-b105-414c-8f96-4b89635d8c5f",
        "username" : "root",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmnic0",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic1",
            "vdsName" : "SDDC-Dswitch-Private1"
          }, {
            "id" : "vmnic2",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          }, {
            "id" : "vmnic3",
            "vdsName" : "SDDC-Dswitch-Private2-Converged"
          } ]
        }
      } ]
    }
  }
}

HTTP Response

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

{
  "id" : "9694b84c-47d4-4229-b992-ce4aa7d961d2",
  "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://sddc-manager.sfo01.rainpole.local/v1/clusters/2d54bb6c-637a-49a4-a94c-622671d0ab32' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "clusterExpansionSpec" : {
    "hostSpecs" : [ {
      "id" : "ff7e0c56-1dcf-4bf4-840e-e6470cfa922b",
      "username" : "root",
      "hostNetworkSpec" : {
        "vmNics" : [ {
          "id" : "vmnic0",
          "vdsName" : "SDDC-Dswitch-Private1"
        }, {
          "id" : "vmnic1",
          "vdsName" : "SDDC-Dswitch-Private1"
        }, {
          "id" : "vmnic2",
          "vdsName" : "SDDC-Dswitch-Private2-Converged"
        }, {
          "id" : "vmnic3",
          "vdsName" : "SDDC-Dswitch-Private2-Converged"
        } ]
      }
    } ]
  }
}'

HTTP Request

PATCH /v1/clusters/2d54bb6c-637a-49a4-a94c-622671d0ab32 HTTP/1.1
Content-Type: application/json
Content-Length: 568
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

{
  "clusterExpansionSpec" : {
    "hostSpecs" : [ {
      "id" : "ff7e0c56-1dcf-4bf4-840e-e6470cfa922b",
      "username" : "root",
      "hostNetworkSpec" : {
        "vmNics" : [ {
          "id" : "vmnic0",
          "vdsName" : "SDDC-Dswitch-Private1"
        }, {
          "id" : "vmnic1",
          "vdsName" : "SDDC-Dswitch-Private1"
        }, {
          "id" : "vmnic2",
          "vdsName" : "SDDC-Dswitch-Private2-Converged"
        }, {
          "id" : "vmnic3",
          "vdsName" : "SDDC-Dswitch-Private2-Converged"
        } ]
      }
    } ]
  }
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/877078db-2a0d-43fb-a7b4-56d66d5d7323
Content-Length: 166

{
  "id" : "877078db-2a0d-43fb-a7b4-56d66d5d7323",
  "name" : "Add Cluster Workflow",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2020-04-10T06:23:48.420Z"
}
  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.
Note: Post removing the host from the cluster in SDDC, user would need to remove the host from the VxRail Cluster through the VxRail vCenter plugin.

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://sddc-manager.sfo01.rainpole.local/v1/clusters/2d54bb6c-637a-49a4-a94c-622671d0ab32/validations' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "clusterCompactionSpec" : {
    "hosts" : [ {
      "id" : "b8d4d3f1-4f45-487c-8ae6-144291eef475"
    } ]
  }
}'

HTTP Request

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

{
  "clusterCompactionSpec" : {
    "hosts" : [ {
      "id" : "b8d4d3f1-4f45-487c-8ae6-144291eef475"
    } ]
  }
}

HTTP Response

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

{
  "id" : "b8c66680-a2ef-4a70-8c6d-e2bc19f6631e",
  "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://sddc-manager.sfo01.rainpole.local/v1/clusters/2d54bb6c-637a-49a4-a94c-622671d0ab32' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "clusterCompactionSpec" : {
    "hosts" : [ {
      "id" : "708a6307-8e28-4270-b0a2-bbd1a10bf029"
    } ]
  }
}'

HTTP Request

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

{
  "clusterCompactionSpec" : {
    "hosts" : [ {
      "id" : "708a6307-8e28-4270-b0a2-bbd1a10bf029"
    } ]
  }
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/d64aaeb9-d6b9-4350-a143-fff4776a52a5
Content-Length: 166

{
  "id" : "d64aaeb9-d6b9-4350-a143-fff4776a52a5",
  "name" : "Add Cluster Workflow",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2020-04-10T06:23:53.752Z"
}
  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

    • 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 cluster 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. You must have a valid ESXi license specified with adequate sockets available for the host to be added.

  7. 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.

  8. vSAN witness should be configured.

  9. 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://sddc-manager.sfo01.rainpole.local/v1/clusters/2d54bb6c-637a-49a4-a94c-622671d0ab32/validations' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "clusterStretchSpec" : {
    "hostSpecs" : [ {
      "id" : "c2d2df0e-05bf-4990-93a8-e67b2ee1c6c0",
      "licenseKey" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
      "username" : "root",
      "hostNetworkSpec" : {
        "vmNics" : [ {
          "id" : "vmnic0",
          "vdsName" : "switch0",
          "moveToNvds" : false
        }, {
          "id" : "vmnic1",
          "vdsName" : "switch1",
          "moveToNvds" : true
        } ]
      }
    } ],
    "witnessSpec" : {
      "vsanIp" : "10.0.4.88",
      "fqdn" : "witness-vsan.vrack.vsphere.local",
      "vsanCidr" : "10.0.4.0/24"
    },
    "secondaryAzOverlayVlanId" : 0
  }
}'

HTTP Request

POST /v1/clusters/2d54bb6c-637a-49a4-a94c-622671d0ab32/validations HTTP/1.1
Content-Type: application/json
Content-Length: 642
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

{
  "clusterStretchSpec" : {
    "hostSpecs" : [ {
      "id" : "c2d2df0e-05bf-4990-93a8-e67b2ee1c6c0",
      "licenseKey" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
      "username" : "root",
      "hostNetworkSpec" : {
        "vmNics" : [ {
          "id" : "vmnic0",
          "vdsName" : "switch0",
          "moveToNvds" : false
        }, {
          "id" : "vmnic1",
          "vdsName" : "switch1",
          "moveToNvds" : true
        } ]
      }
    } ],
    "witnessSpec" : {
      "vsanIp" : "10.0.4.88",
      "fqdn" : "witness-vsan.vrack.vsphere.local",
      "vsanCidr" : "10.0.4.0/24"
    },
    "secondaryAzOverlayVlanId" : 0
  }
}

HTTP Response

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

{
  "id" : "410206b1-3809-4c23-bbf3-4f4415e11659",
  "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://sddc-manager.sfo01.rainpole.local/v1/clusters/2d54bb6c-637a-49a4-a94c-622671d0ab32' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "clusterStretchSpec" : {
    "hostSpecs" : [ {
      "id" : "2eba9974-d3ff-460c-84ad-5b394df5d9ce",
      "licenseKey" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
      "username" : "root",
      "hostNetworkSpec" : {
        "vmNics" : [ {
          "id" : "vmnic0",
          "vdsName" : "switch0",
          "moveToNvds" : false
        }, {
          "id" : "vmnic1",
          "vdsName" : "switch1",
          "moveToNvds" : true
        } ]
      }
    } ],
    "witnessSpec" : {
      "vsanIp" : "10.0.4.88",
      "fqdn" : "witness-vsan.vrack.vsphere.local",
      "vsanCidr" : "10.0.4.0/24"
    },
    "secondaryAzOverlayVlanId" : 0
  }
}'

HTTP Request

PATCH /v1/clusters/2d54bb6c-637a-49a4-a94c-622671d0ab32 HTTP/1.1
Content-Type: application/json
Content-Length: 642
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

{
  "clusterStretchSpec" : {
    "hostSpecs" : [ {
      "id" : "2eba9974-d3ff-460c-84ad-5b394df5d9ce",
      "licenseKey" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
      "username" : "root",
      "hostNetworkSpec" : {
        "vmNics" : [ {
          "id" : "vmnic0",
          "vdsName" : "switch0",
          "moveToNvds" : false
        }, {
          "id" : "vmnic1",
          "vdsName" : "switch1",
          "moveToNvds" : true
        } ]
      }
    } ],
    "witnessSpec" : {
      "vsanIp" : "10.0.4.88",
      "fqdn" : "witness-vsan.vrack.vsphere.local",
      "vsanCidr" : "10.0.4.0/24"
    },
    "secondaryAzOverlayVlanId" : 0
  }
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/12214f48-b844-4c1f-ab8f-24ebb826aef6
Content-Length: 166

{
  "id" : "12214f48-b844-4c1f-ab8f-24ebb826aef6",
  "name" : "Add Cluster Workflow",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2020-04-10T06:23:52.707Z"
}
  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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

{
  "clusterUnstretchSpec" : { }
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/86db2dcd-e39e-47e4-b945-13b6c50d5b82
Content-Length: 166

{
  "id" : "86db2dcd-e39e-47e4-b945-13b6c50d5b82",
  "name" : "Add Cluster Workflow",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2020-04-10T06:23:51.593Z"
}
  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.
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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

{
  "markForDeletion" : true
}

HTTP Response

HTTP/1.1 200 OK
  1. Trigger the deletion.

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/8f445c1b-606b-4297-92a5-43f4322eec7f
Content-Length: 166

{
  "id" : "8f445c1b-606b-4297-92a5-43f4322eec7f",
  "name" : "Add Cluster Workflow",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2020-04-10T06:23:50.720Z"
}
  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://sddc-manager.sfo01.rainpole.local/v1/sddc-federation' -i -X PUT \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWR....' \
    -d '{
  "federationName" : "New Federation",
  "memberJoinDetail" : {
    "role" : "CONTROLLER",
    "fqdn" : "sddc-manager-1.vrack.vsphere.local",
    "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: 382
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWR....

{
  "federationName" : "New Federation",
  "memberJoinDetail" : {
    "role" : "CONTROLLER",
    "fqdn" : "sddc-manager-1.vrack.vsphere.local",
    "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" : "a62460cb-38ae-4668-9877-c86078798383",
  "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://sddc-manager.sfo01.rainpole.local/v1/sddc-federation/membership-tokens' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWR....' \
    -d '{
  "inviteeRole" : "MEMBER",
  "inviteeFqdn" : "sddc-manager-1.vrack.vsphere.local",
  "tokenExpiryHours" : 0.0
}'

HTTP Request

POST /v1/sddc-federation/membership-tokens HTTP/1.1
Content-Type: application/json
Content-Length: 114
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWR....

{
  "inviteeRole" : "MEMBER",
  "inviteeFqdn" : "sddc-manager-1.vrack.vsphere.local",
  "tokenExpiryHours" : 0.0
}

HTTP Response

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

{
  "controllerFqdn" : [ "sddc-manager-1.vrack.vsphere.local" ],
  "inviteeRole" : "MEMBER",
  "inviteeFqdn" : "sddc-manager-1.vrack.vsphere.local",
  "invitationToken" : "817e0e5f-066f-4c82-8a70-ac324906e7b4",
  "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://sddc-manager.sfo01.rainpole.local/v1/sddc-federation/members' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWR....' \
    -d '{
  "controllerFqdn" : "sddc-manager-1.vrack.vsphere.local",
  "joinToken" : "test",
  "commonName" : "sddcmgr-newyork.msm.local",
  "memberJoinDetail" : {
    "role" : "MEMBER",
    "fqdn" : "sddcmgr-newyork.msm.local",
    "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: 454
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWR....

{
  "controllerFqdn" : "sddc-manager-1.vrack.vsphere.local",
  "joinToken" : "test",
  "commonName" : "sddcmgr-newyork.msm.local",
  "memberJoinDetail" : {
    "role" : "MEMBER",
    "fqdn" : "sddcmgr-newyork.msm.local",
    "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" : "ef960ed5-12c5-4512-a020-5b53fb177ff6",
  "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://sddc-manager.sfo01.rainpole.local/v1/sddc-federation/tasks/4421185a-469b-421c-868a-b3a3ce7d3de5' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWR....'

HTTP Request

GET /v1/sddc-federation/tasks/4421185a-469b-421c-868a-b3a3ce7d3de5 HTTP/1.1
Content-Type: application/json
Host: sddc-manager.sfo01.rainpole.local
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://sddc-manager.sfo01.rainpole.local/v1/sddc-federation' -i -X GET \
    -H 'Authorization: Bearer etYWR....'

HTTP Request

GET /v1/sddc-federation HTTP/1.1
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWR....

HTTP Response

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

[ {
  "memberDetails" : {
    "role" : "CONTROLLER",
    "fqdn" : "sddc-manager-1.vrack.vsphere.local",
    "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" : "vsanDatastore1",
            "datastoreType" : "VSAN",
            "freeSpace" : 5.839,
            "capacity" : 6.705,
            "unallocated" : 2.694,
            "unit" : "TB"
          }, {
            "used" : 0.866,
            "datastoreName" : "vsanDatastore2",
            "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" : "vsanDatastore1",
              "datastoreType" : "VSAN",
              "freeSpace" : 5.839,
              "capacity" : 6.705,
              "unallocated" : 2.694,
              "unit" : "TB"
            }, {
              "used" : 0.866,
              "datastoreName" : "vsanDatastore2",
              "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
  },
  "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://sddc-manager.sfo01.rainpole.local/v1/sddc-federation/members' -i -X GET \
    -H 'Authorization: Bearer etYWR....'

HTTP Request

GET /v1/sddc-federation/members HTTP/1.1
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWR....

HTTP Response

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

{
  "memberDetail" : {
    "role" : "CONTROLLER",
    "fqdn" : "sddc-manager-1.vrack.vsphere.local",
    "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://sddc-manager.sfo01.rainpole.local/v1/sddc-federation/members/sddcmgr-newyork.msm.local' -i -X DELETE \
    -H 'Authorization: Bearer etYWR....'

HTTP Request

DELETE /v1/sddc-federation/members/sddcmgr-newyork.msm.local HTTP/1.1
Host: sddc-manager.sfo01.rainpole.local
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" : "592d8232-a852-4af5-8dbd-ce17e1787fac",
  "remoteOperationTask" : null,
  "progressDetails" : null,
  "created" : null,
  "lastUpdated" : null,
  "errors" : null,
  "payload" : null
}

To Force remove the member use following:

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/v1/sddc-federation/members/sddcmgr-newyork.msm.local?force=true' -i -X DELETE \
    -H 'Authorization: Bearer etYWR....'

HTTP Request

DELETE /v1/sddc-federation/members/sddcmgr-newyork.msm.local?force=true HTTP/1.1
Host: sddc-manager.sfo01.rainpole.local
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" : "d4abc487-e49f-4e06-aa3e-500d90459aef",
  "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://sddc-manager.sfo01.rainpole.local/v1/sddc-federation' -i -X DELETE \
    -H 'Authorization: Bearer etYWR....'

HTTP Request

DELETE /v1/sddc-federation HTTP/1.1
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWR....

HTTP Response

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

{
  "status" : "SUCCEEDED",
  "operation" : null,
  "taskId" : "39f2d3a4-db3a-4d2a-8515-f62ccad34726",
  "remoteOperationTask" : null,
  "progressDetails" : null,
  "created" : null,
  "lastUpdated" : null,
  "errors" : null,
  "payload" : null
}

2.12. AVNs

2.12.1. Get the AVNs

This API is used to fetch all configured AVNs

Steps
  1. Invoke the API

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

[ {
  "id" : "vcf-avn-regiona",
  "name" : "vcf-avn-regiona",
  "regionType" : "REGION_A",
  "subnet" : "192.168.20.0",
  "subnetMask" : "255.255.255.0",
  "gateway" : "192.168.20.1",
  "mtu" : 9000,
  "portGroupName" : "vcf-avn-regiona-portGroup",
  "domainName" : "vmware.vcf.corp",
  "routerName" : "vcf-avn-regiona-udlr01"
} ]

2.12.2. 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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

[ {
  "id" : "vcf-avn-regionx",
  "name" : "vcf-avn-regionx",
  "regionType" : "X_REGION",
  "subnet" : "192.168.30.0",
  "subnetMask" : "255.255.255.0",
  "gateway" : "192.168.30.1",
  "mtu" : 9000,
  "portGroupName" : "vcf-avn-regionx-portGroup",
  "domainName" : "vmware.vcf.corp",
  "routerName" : "vcf-avn-regionx-udlr01"
} ]

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

  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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
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://sddc-manager.sfo01.rainpole.local/v1/vrslcms' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "networkSpec" : {
    "vlanId" : "45",
    "subnetMask" : "255.255.252.0",
    "gateway" : "10.0.1.250"
  },
  "fqdn" : "vrslcm.vrack.vsphere.local",
  "sshPassword" : "VMware123!",
  "apiPassword" : "VMware123!"
}'

HTTP Request

POST /v1/vrslcms HTTP/1.1
Content-Type: application/json
Content-Length: 218
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

{
  "networkSpec" : {
    "vlanId" : "45",
    "subnetMask" : "255.255.252.0",
    "gateway" : "10.0.1.250"
  },
  "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://sddc-manager.sfo01.rainpole.local/v1/vrslcm' -i -X DELETE \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

DELETE /v1/vrslcm HTTP/1.1
Host: sddc-manager.sfo01.rainpole.local
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.13.3. vRealize Suite Lifecycle Manager Redeployment

If vRealize Suite Lifecycle Manager becomes corrupted or if you wish to get a fresh vRealize Suite Lifecycle Manager without losing the environment information stored, you can redeploy it.

Prerequisites
  1. vRealize Suite Lifecycle Manager in active state in VMware Cloud Foundation inventory

Note
As part of the redeployment, all of the vRealize Suite Lifecycle Manager environments created by SDDC Manager will be imported into the new vRealize Suite Lifecycle Manager VM. However, all of the configurations/environments created manually through the vRealize Suite Lifecycle Manager User interface will be lost.
Steps
  1. Trigger the vRealize Suite Lifecycle Manager redeploy.

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/v1/vrslcm' -i -X PATCH \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

PATCH /v1/vrslcm HTTP/1.1
Host: sddc-manager.sfo01.rainpole.local
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.
  1. Once the vRealize Suite Lifecycle Manager redeployment succeeds, you can use it to deploy and manage the vRealize Suite products.

2.14. Backup and Restore

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

2.14.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.

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 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 fields hoursOfTheDay and minuteOfTheHour .
Tip
Refer to Security section to set the role as ADMIN for the user.

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/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" : [ {
    "frequency" : "WEEKLY",
    "daysOfWeek" : [ "SUNDAY", "THURSDAY" ],
    "hourOfDay" : 12,
    "minuteOfHour" : 34
  } ]
}'
Request Body
PUT /v1/system/backup-configuration HTTP/1.1
Content-Type: application/json
Content-Length: 467
Host: sddc-manager.sfo01.rainpole.local
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" : [ {
    "frequency" : "WEEKLY",
    "daysOfWeek" : [ "SUNDAY", "THURSDAY" ],
    "hourOfDay" : 12,
    "minuteOfHour" : 34
  } ]
}
Response Body
HTTP/1.1 202 Accepted
Location: /v1/tasks/604b691b-cc05-450c-8373-5610d91a7a73
Content-Type: application/json
Content-Length: 210

{
  "id" : "604b691b-cc05-450c-8373-5610d91a7a73",
  "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.14.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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
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/2c78d42b-1cd9-4ed1-93a6-fc156c25232c
Content-Type: application/json
Content-Length: 210

{
  "id" : "2c78d42b-1cd9-4ed1-93a6-fc156c25232c",
  "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://sddc-manager.sfo01.rainpole.local/v1/system/backup-configuration' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "backupSchedules" : [ {
    "resourceType" : "SDDC_MANAGER",
    "frequency" : "WEEKLY",
    "daysOfWeek" : [ "MONDAY" ],
    "hourOfDay" : 12,
    "minuteOfHour" : 23
  } ]
}'
Request Body
PATCH /v1/system/backup-configuration HTTP/1.1
Content-Type: application/json
Content-Length: 179
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

{
  "backupSchedules" : [ {
    "resourceType" : "SDDC_MANAGER",
    "frequency" : "WEEKLY",
    "daysOfWeek" : [ "MONDAY" ],
    "hourOfDay" : 12,
    "minuteOfHour" : 23
  } ]
}
Response Body
HTTP/1.1 202 Accepted
Location: /v1/tasks/f5b69afd-b416-46bb-92eb-80f116611c25
Content-Type: application/json
Content-Length: 209

{
  "id" : "f5b69afd-b416-46bb-92eb-80f116611c25",
  "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.14.3. Get the Backup Configuration

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/v1/system/backup-configuration' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/system/backup-configuration HTTP/1.1
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "backupLocations" : [ {
    "server" : "10.92.33.24",
    "port" : 22,
    "protocol" : "SFTP",
    "username" : "backup",
    "directoryPath" : "/vmware/backup"
  } ],
  "backupSchedules" : [ ],
  "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.14.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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
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.14.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 enc -d -aes256 -in filename-of-selected-file | tar -xz
  1. At the prompt, enter the passphrase that you configured before backing up SDDC Manager.

  2. In order to restore SDDC Manager, you need to deploy the SDDC Manager OVA.

  3. The link to download the OVA is found in the metadata.json file in the backup file.

  4. Download the SDDC Manager OVA from the link provided.

  5. Deploy SDDC Manager VM from vCenter Server or with the OVF Tool.

    • 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 other root, vcf, and admin user accounts, you can re-use the passwords for the original
          ***SDDC Manager or assign new ones. For password considerations, refer to the About the

        • Deployment Parameter Sheet section in the VMware Cloud Foundation Architecture and

        • Deployment Guide.

        • Leave the DNS and NTP fields empty

        • Ignore the Brownfield 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 rRoot 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.

        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:BASIC_AUTH_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 --X:logFile=./ovftool.log --X:logLevel=verbose OVA_filename vi://
        root:password_for_selected_host>@host_DNS_name_or_ IP
      OUTPUT:
      
      Opening OVA source: VCF-SDDC-Manager-Appliance-3.7.2.0-13774914_OVF10.ova
      The manifest does not validate
      Opening VI target: vi://root@10.0.0.100:443/
      Deploying to VI: vi://root@10.0.0.100:443/
      Transfer Completed
      Powering on VM: sddc-manager
      Task Completed
      Received IP address: 10.0.0.4
      Completed successfully
      • 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.

  6. Take a snapshot of the SDDC Manager VM.

  7. Copy the encrypted backup file to the /tmp directory on the SDDC Manager VM.

  8. Trigger the task using the valid input specification.

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/v1/restores/tasks' -i -u 'admin:VMwareInfra@1' -X POST \
    -H 'Content-Type: application/json' \
    -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: sddc-manager.sfo01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

{
  "elements" : [ {
    "resourceType" : "SDDC_MANAGER"
  } ],
  "backupFile" : "/tmp/backup.tar.gz",
  "encryption" : {
    "passphrase" : "VMwareBackup@1"
  }
}

HTTP Response

HTTP/1.1 202 Accepted
Location: 4b5d3731-899c-4ef5-987a-859e5abe6a60
Content-Type: application/json
Content-Length: 79

{
  "id" : "4b5d3731-899c-4ef5-987a-859e5abe6a60",
  "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.
  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.15. Depot Settings

2.15.1. Get Depot Settings

Online:

Offline:

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
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.15.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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
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.16. Prechecks

2.16.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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
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/a595ed23-ec8f-42d3-88fb-1dcfe830337e
Content-Length: 667

{
  "id" : "a595ed23-ec8f-42d3-88fb-1dcfe830337e",
  "name" : "Precheck Task",
  "type" : "PRECHECK",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2020-04-10T06:25:18.684Z",
  "completionTimestamp" : "2020-04-10T06:25:18.684Z",
  "subTasks" : [ {
    "name" : "Upgrade - DOMAIN ",
    "description" : "Upgrade - DOMAIN ",
    "status" : "PENDING",
    "creationTimestamp" : "2020-04-10T06:25:18.684Z",
    "resources" : [ {
      "resourceId" : "a282507a-7e2c-4335-98b8-1cc66687d5b5",
      "type" : "DOMAIN"
    } ]
  } ],
  "resources" : [ {
    "resourceId" : "a282507a-7e2c-4335-98b8-1cc66687d5b5",
    "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.16.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://sddc-manager.sfo01.rainpole.local/v1/system/prechecks/tasks/a595ed23-ec8f-42d3-88fb-1dcfe830337e' -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" : "a595ed23-ec8f-42d3-88fb-1dcfe830337e",
  "name" : "Precheck Task",
  "type" : "PRECHECK",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2020-04-10T06:25:19.144Z",
  "completionTimestamp" : "2020-04-10T06:25:19.144Z",
  "subTasks" : [ {
    "name" : "Upgrade - DOMAIN ",
    "description" : "Upgrade - DOMAIN ",
    "status" : "PENDING",
    "creationTimestamp" : "2020-04-10T06:25:19.145Z",
    "resources" : [ {
      "resourceId" : "a282507a-7e2c-4335-98b8-1cc66687d5b5",
      "type" : "DOMAIN"
    } ]
  } ],
  "resources" : [ {
    "resourceId" : "a282507a-7e2c-4335-98b8-1cc66687d5b5",
    "type" : "DOMAIN"
  } ],
  "isCancellable" : false
}

HTTP Response

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

{
  "id" : "a595ed23-ec8f-42d3-88fb-1dcfe830337e",
  "name" : "Precheck Task",
  "type" : "PRECHECK",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2020-04-10T06:25:19.144Z",
  "completionTimestamp" : "2020-04-10T06:25:19.144Z",
  "subTasks" : [ {
    "name" : "Upgrade - DOMAIN ",
    "description" : "Upgrade - DOMAIN ",
    "status" : "PENDING",
    "creationTimestamp" : "2020-04-10T06:25:19.145Z",
    "resources" : [ {
      "resourceId" : "a282507a-7e2c-4335-98b8-1cc66687d5b5",
      "type" : "DOMAIN"
    } ]
  } ],
  "resources" : [ {
    "resourceId" : "a282507a-7e2c-4335-98b8-1cc66687d5b5",
    "type" : "DOMAIN"
  } ],
  "isCancellable" : false
}

2.17. Bundles

2.17.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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
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/fdd90582-cc96-4752-b670-b36110802d5b
Content-Length: 366

{
  "id" : "fdd90582-cc96-4752-b670-b36110802d5b",
  "name" : "Upload BUNDLE - PSC:6.7.0-13010631 VCENTER:6.7.0-13010631",
  "type" : "BUNDLE_UPLOAD",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2020-04-10T06:25:20.055Z",
  "resources" : [ {
    "resourceId" : "fd655436-ec3c-4f10-baed-3a3dde5a6bc6",
    "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.17.2. Get the Bundles

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "id" : "fd655436-ec3c-4f10-baed-3a3dde5a6bc6",
    "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" : "fc733693-6ec1-4959-8ed4-615f1ec93dd1",
    "type" : "VMWARE_SOFTWARE",
    "description" : "PSC-VC -67U2-Update bundle ( 11726888 ==> 13010631)",
    "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" : "PSC Update Bundle",
      "vendor" : "VMware",
      "releasedDate" : "2019-05-10T10:29:10.645Z",
      "toVersion" : "6.7.0-13010631",
      "fromVersion" : "6.7.0-11726888",
      "imageType" : "PATCH",
      "id" : "690cbe9e-241b-4086-bbf3-719b40499d6f",
      "type" : "PSC"
    }, {
      "description" : "VCENTER Update Bundle",
      "vendor" : "VMware",
      "releasedDate" : "2019-05-10T10:29:10.645Z",
      "toVersion" : "6.7.0-13010631",
      "fromVersion" : "6.7.0-11726888",
      "imageType" : "PATCH",
      "id" : "690cbe9e-241b-4086-bbf3-719b40499d6f",
      "type" : "VCENTER"
    } ]
  } ]
}

2.17.3. Get a Bundle

Prerequisites
  1. The following data is required:

    • ID of the Bundle

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/v1/bundles/fd655436-ec3c-4f10-baed-3a3dde5a6bc6' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/bundles/fd655436-ec3c-4f10-baed-3a3dde5a6bc6 HTTP/1.1
Accept: application/json
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "id" : "fc733693-6ec1-4959-8ed4-615f1ec93dd1",
  "type" : "VMWARE_SOFTWARE",
  "description" : "PSC-VC -67U2-Update bundle ( 11726888 ==> 13010631)",
  "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" : "PSC Update Bundle",
    "vendor" : "VMware",
    "releasedDate" : "2019-05-10T10:29:10.645Z",
    "toVersion" : "6.7.0-13010631",
    "fromVersion" : "6.7.0-11726888",
    "imageType" : "PATCH",
    "id" : "690cbe9e-241b-4086-bbf3-719b40499d6f",
    "type" : "PSC"
  }, {
    "description" : "VCENTER Update Bundle",
    "vendor" : "VMware",
    "releasedDate" : "2019-05-10T10:29:10.645Z",
    "toVersion" : "6.7.0-13010631",
    "fromVersion" : "6.7.0-11726888",
    "imageType" : "PATCH",
    "id" : "690cbe9e-241b-4086-bbf3-719b40499d6f",
    "type" : "VCENTER"
  } ]
}

2.17.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://sddc-manager.sfo01.rainpole.local/v1/bundles/fd655436-ec3c-4f10-baed-3a3dde5a6bc6' -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/fd655436-ec3c-4f10-baed-3a3dde5a6bc6 HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 59
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

{
  "bundleDownloadSpec" : {
    "downloadNow" : true
  }
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/a4c15be0-448a-446c-9a83-8df70c5ef035
Content-Length: 370

{
  "id" : "a4c15be0-448a-446c-9a83-8df70c5ef035",
  "name" : "Download BUNDLE - PSC:6.7.0-13010631 VCENTER:6.7.0-13010631",
  "type" : "BUNDLE_DOWNLOAD",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2020-04-10T06:25:18.916Z",
  "resources" : [ {
    "resourceId" : "fd655436-ec3c-4f10-baed-3a3dde5a6bc6",
    "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.18. Upgradables

2.18.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.

Note
The Get the Upgradables DOES NOT provide the unassigned hosts which can be upgraded. Refer to: Unassigned Host Upgrade.
Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "bundleId" : "fd655436-ec3c-4f10-baed-3a3dde5a6bc6",
    "bundleType" : "SDDC_MANAGER",
    "resource" : {
      "resourceId" : "a282507a-7e2c-4335-98b8-1cc66687d5b5",
      "type" : "DOMAIN"
    },
    "softwareComponents" : [ {
      "id" : "5d089d1c-71e9-48c7-a3d1-c9e572cd4bd4",
      "type" : "SDDC_MANAGER"
    } ],
    "status" : "AVAILABLE"
  } ]
}

2.19. Version Aliases

2.19.1. Get Version Aliases

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
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.19.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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
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.19.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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 204 No Content

2.20. Upgrades

2.20.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 are supported on VMware Cloud Foundation 3.5 BOM resources and above.
Domain Upgrade

Use the Get the Upgradables to query for the list of upgradables(bundle and resource details) which can be used for performing Domain upgrades.

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.

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://sddc-manager.sfo01.rainpole.local/v1/upgrades' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "bundleId" : "fd655436-ec3c-4f10-baed-3a3dde5a6bc6",
  "resourceType" : "DOMAIN",
  "resourceUpgradeSpecs" : [ {
    "resourceId" : "a282507a-7e2c-4335-98b8-1cc66687d5b5",
    "scheduledTimestamp" : "2020-04-10T06:25:17.471Z",
    "upgradeNow" : false
  } ]
}'

HTTP Request

POST /v1/upgrades HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 263
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

{
  "bundleId" : "fd655436-ec3c-4f10-baed-3a3dde5a6bc6",
  "resourceType" : "DOMAIN",
  "resourceUpgradeSpecs" : [ {
    "resourceId" : "a282507a-7e2c-4335-98b8-1cc66687d5b5",
    "scheduledTimestamp" : "2020-04-10T06:25:17.471Z",
    "upgradeNow" : false
  } ]
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/fbf94ee3-dddd-49d4-b4b4-04a51fdf4fbb
Content-Length: 478

{
  "id" : "fbf94ee3-dddd-49d4-b4b4-04a51fdf4fbb",
  "name" : "Upgrade DOMAIN - [acme-domain] using BUNDLE - PSC:6.7.0-13010631 VCENTER:6.7.0-13010631",
  "type" : "UPGRADE",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2020-04-10T06:25:17.470Z",
  "resources" : [ {
    "resourceId" : "a282507a-7e2c-4335-98b8-1cc66687d5b5",
    "type" : "DOMAIN"
  }, {
    "resourceId" : "fd655436-ec3c-4f10-baed-3a3dde5a6bc6",
    "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.
Cluster Upgrade

Use the Get the Upgradables to query for the list of upgradables(bundle and resource details) which can be used for performing Cluster level upgrades.

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.

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://sddc-manager.sfo01.rainpole.local/v1/upgrades' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "bundleId" : "fd655436-ec3c-4f10-baed-3a3dde5a6bc6",
  "resourceType" : "CLUSTER",
  "resourceUpgradeSpecs" : [ {
    "resourceId" : "fada8a63-4b07-4369-8c74-779cf993f41c",
    "scheduledTimestamp" : "2020-04-10T06:25:19.716Z",
    "upgradeNow" : false
  } ]
}'

HTTP Request

POST /v1/upgrades HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 264
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

{
  "bundleId" : "fd655436-ec3c-4f10-baed-3a3dde5a6bc6",
  "resourceType" : "CLUSTER",
  "resourceUpgradeSpecs" : [ {
    "resourceId" : "fada8a63-4b07-4369-8c74-779cf993f41c",
    "scheduledTimestamp" : "2020-04-10T06:25:19.716Z",
    "upgradeNow" : false
  } ]
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/fbf94ee3-dddd-49d4-b4b4-04a51fdf4fbb
Content-Length: 456

{
  "id" : "fbf94ee3-dddd-49d4-b4b4-04a51fdf4fbb",
  "name" : "Upgrade DOMAIN - [acme-domain] using BUNDLE - HOST:6.7.0-13006603",
  "type" : "UPGRADE",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2020-04-10T06:25:19.716Z",
  "resources" : [ {
    "resourceId" : "a282507a-7e2c-4335-98b8-1cc66687d5b5",
    "type" : "DOMAIN"
  }, {
    "resourceId" : "fd655436-ec3c-4f10-baed-3a3dde5a6bc6",
    "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.
Unassigned Host Upgrade

The Get the Upgradables DOES NOT provide the unassigned hosts which can be upgraded. These unassigned host details(current version, host ID) needs to be queried using Get the Hosts and Get the Clusters API’s.

Prerequisites

The following data is required:

  • Resource Type. Ex: UNASSIGNED_HOST.

  • One or more Resource upgrade specifications.

  • Each Resource upgrade specification should contain.

    • Resource ID. Ex: UnAssigned Host ID.

    • Upgrade scheduled time or Upgrade now option.

    • Flag denoting whether the VM’s should be shutdown.

    • The version to which the Host should be upgraded to.

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://sddc-manager.sfo01.rainpole.local/v1/upgrades' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "bundleId" : "fd655436-ec3c-4f10-baed-3a3dde5a6bc6",
  "resourceType" : "UNASSIGNED_HOST",
  "resourceUpgradeSpecs" : [ {
    "resourceId" : "ecbfdb93-d3c1-41a9-9336-1ae22cfbaf70",
    "shutdownVms" : true,
    "toVersion" : "6.7.0-13006603",
    "upgradeNow" : true
  } ]
}'

HTTP Request

POST /v1/upgrades HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 278
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

{
  "bundleId" : "fd655436-ec3c-4f10-baed-3a3dde5a6bc6",
  "resourceType" : "UNASSIGNED_HOST",
  "resourceUpgradeSpecs" : [ {
    "resourceId" : "ecbfdb93-d3c1-41a9-9336-1ae22cfbaf70",
    "shutdownVms" : true,
    "toVersion" : "6.7.0-13006603",
    "upgradeNow" : true
  } ]
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/d103dc85-c223-461b-a974-c6401615b705
Content-Length: 451

{
  "id" : "d103dc85-c223-461b-a974-c6401615b705",
  "name" : "Upgrade HOST - [10.0.0.100] using BUNDLE - HOST:6.7.0-13006603",
  "type" : "UPGRADE",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2020-04-10T06:25:18.524Z",
  "resources" : [ {
    "resourceId" : "ecbfdb93-d3c1-41a9-9336-1ae22cfbaf70",
    "type" : "HOST"
  }, {
    "resourceId" : "fd655436-ec3c-4f10-baed-3a3dde5a6bc6",
    "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. Credentials

2.21.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 or the domain name associated with the resource is required to filter the results. For allowable resource type values

Tip
Refer to: Get the Credentials

Get All Credentials

Steps
  1. Invoke the API.

Tip
For a scaled environment, it is always recommended to provide "resourceType" filter for avoiding timeouts.

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "id" : "87af835c-3640-4e21-afa7-1cb241de1480",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2020-04-10T06:20:58.678Z",
    "modificationTimestamp" : "2020-04-10T06:20:58.678Z",
    "resource" : {
      "resourceId" : "3cf68f54-72b8-4e1b-aaf7-a0abb5434504",
      "resourceName" : "sfo01m01esx01.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.100",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "00d942ce-8243-41ae-b8cb-8b9709a0ff69",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2020-04-10T06:20:58.678Z",
    "modificationTimestamp" : "2020-04-10T06:20:58.678Z",
    "resource" : {
      "resourceId" : "68248506-5b46-4efe-9863-26cda95145c4",
      "resourceName" : "sfo01m01esx02.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.101",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "90fb5d8c-fc9d-4c73-887c-19685d315bf9",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2020-04-10T06:20:58.678Z",
    "modificationTimestamp" : "2020-04-10T06:20:58.678Z",
    "resource" : {
      "resourceId" : "b8f8cac3-532b-4b0c-9d78-cd118ec14ac5",
      "resourceName" : "sfo01m01esx03.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.102",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "a1ccaf54-7a4e-45e0-964c-d0c2c5bc19df",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2020-04-10T06:20:58.678Z",
    "modificationTimestamp" : "2020-04-10T06:20:58.678Z",
    "resource" : {
      "resourceId" : "29372d8f-b204-4acb-bd0f-65f49ff05ce4",
      "resourceName" : "sfo01m01esx04.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.103",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  } ]
}

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://sddc-manager.sfo01.rainpole.local/v1/credentials?resourceName=sfo01m01esx02.sfo01.rainpole.local' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/credentials?resourceName=sfo01m01esx02.sfo01.rainpole.local HTTP/1.1
Accept: application/json
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "id" : "00d942ce-8243-41ae-b8cb-8b9709a0ff69",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2020-04-10T06:21:00.147Z",
    "modificationTimestamp" : "2020-04-10T06:21:00.147Z",
    "resource" : {
      "resourceId" : "68248506-5b46-4efe-9863-26cda95145c4",
      "resourceName" : "sfo01m01esx02.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.101",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  } ]
}

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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "id" : "00d942ce-8243-41ae-b8cb-8b9709a0ff69",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2020-04-10T06:20:59.025Z",
    "modificationTimestamp" : "2020-04-10T06:20:59.025Z",
    "resource" : {
      "resourceId" : "68248506-5b46-4efe-9863-26cda95145c4",
      "resourceName" : "sfo01m01esx02.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.101",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  } ]
}

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".

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "id" : "82e1260d-d021-45ef-b288-ed188998338a",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2020-04-10T06:20:58.556Z",
    "modificationTimestamp" : "2020-04-10T06:20:58.556Z",
    "resource" : {
      "resourceId" : "114ab7cc-872d-46ea-b6d3-844beb9e7972",
      "resourceName" : "sfo01m01esx01.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.100",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "00d942ce-8243-41ae-b8cb-8b9709a0ff69",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2020-04-10T06:20:58.556Z",
    "modificationTimestamp" : "2020-04-10T06:20:58.556Z",
    "resource" : {
      "resourceId" : "68248506-5b46-4efe-9863-26cda95145c4",
      "resourceName" : "sfo01m01esx02.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.101",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "c991c32d-a391-46db-899f-c9635846fb30",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2020-04-10T06:20:58.556Z",
    "modificationTimestamp" : "2020-04-10T06:20:58.556Z",
    "resource" : {
      "resourceId" : "b158c318-31d9-4876-afe6-247f0ff6da72",
      "resourceName" : "sfo01m01esx03.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.102",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "41f2f950-ece2-431b-8ce8-e3d2acf5e8f7",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2020-04-10T06:20:58.556Z",
    "modificationTimestamp" : "2020-04-10T06:20:58.556Z",
    "resource" : {
      "resourceId" : "d4db94ad-15f2-43eb-8e3f-5add22b16c2e",
      "resourceName" : "sfo01m01esx04.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.103",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  } ]
}

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".

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "id" : "79f8ff01-8ba9-42a7-bf81-c032f65a5e0b",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2020-04-10T06:21:00.020Z",
    "modificationTimestamp" : "2020-04-10T06:21:00.020Z",
    "resource" : {
      "resourceId" : "1c975d36-2b80-4bcd-806d-894c5dfe15cb",
      "resourceName" : "sfo01m01esx01.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.100",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "00d942ce-8243-41ae-b8cb-8b9709a0ff69",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2020-04-10T06:21:00.020Z",
    "modificationTimestamp" : "2020-04-10T06:21:00.020Z",
    "resource" : {
      "resourceId" : "68248506-5b46-4efe-9863-26cda95145c4",
      "resourceName" : "sfo01m01esx02.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.101",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "b8a1b31b-0970-4632-b81b-b9426d6ee8bc",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2020-04-10T06:21:00.020Z",
    "modificationTimestamp" : "2020-04-10T06:21:00.020Z",
    "resource" : {
      "resourceId" : "42f312db-f72a-4a0a-b71a-26dd4fc163ca",
      "resourceName" : "sfo01m01esx03.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.102",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "e20d6467-5205-45f6-a922-7148dbb1d105",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2020-04-10T06:21:00.020Z",
    "modificationTimestamp" : "2020-04-10T06:21:00.020Z",
    "resource" : {
      "resourceId" : "c479eeed-6c88-4193-8e47-9e0658a23d34",
      "resourceName" : "sfo01m01esx04.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.103",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "d948f165-4cd7-47b6-add0-6423615a9d3a",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2020-04-10T06:21:00.020Z",
    "modificationTimestamp" : "2020-04-10T06:21:00.020Z",
    "resource" : {
      "resourceId" : "84a3a69c-8b38-4fb5-9cad-1e952a6e2d62",
      "resourceName" : "sfo01m01vcenter01.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.6",
      "resourceType" : "VCENTER",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "af8c67e9-cbc1-46de-bf76-a1d53c6f2e68",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2020-04-10T06:21:00.020Z",
    "modificationTimestamp" : "2020-04-10T06:21:00.020Z",
    "resource" : {
      "resourceId" : "7f0f8c53-4165-4b03-92d6-e3cf47514a27",
      "resourceName" : "sfo01m01psc01.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.5",
      "resourceType" : "PSC",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "338ef3e8-746e-4c6e-8ea7-5120adc75224",
    "credentialType" : "SSO",
    "username" : "administrator@vsphere.local",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2020-04-10T06:21:00.020Z",
    "modificationTimestamp" : "2020-04-10T06:21:00.020Z",
    "resource" : {
      "resourceId" : "5bdce09a-62e8-4bf7-99ea-a8eca3d043d3",
      "resourceName" : "sfo01m01psc01.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.5",
      "resourceType" : "PSC",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "41ce5437-4efd-4d32-b060-df1325979b1c",
    "credentialType" : "API",
    "username" : "admin",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2020-04-10T06:21:00.020Z",
    "modificationTimestamp" : "2020-04-10T06:21:00.020Z",
    "resource" : {
      "resourceId" : "13321bea-f3b1-416a-811d-d743dfd62be4",
      "resourceName" : "sfo01m01nsx01.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.9",
      "resourceType" : "NSX_MANAGER",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "80caf97e-92b1-4f2a-a2d2-2979bb029613",
    "credentialType" : "API",
    "username" : "admin",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2020-04-10T06:21:00.020Z",
    "modificationTimestamp" : "2020-04-10T06:21:00.020Z",
    "resource" : {
      "resourceId" : "113a26e1-d48c-41d1-8485-b6f5d69691d3",
      "resourceName" : "sfo01m01nsxc01",
      "resourceIp" : "10.0.0.42",
      "resourceType" : "NSX_CONTROLLER",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "04d20abf-9498-404c-88fd-dbddcfa691c3",
    "credentialType" : "API",
    "username" : "admin",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2020-04-10T06:21:00.020Z",
    "modificationTimestamp" : "2020-04-10T06:21:00.020Z",
    "resource" : {
      "resourceId" : "1a815d79-c57d-4891-8faf-12b63149b659",
      "resourceName" : "sfo01vrli01.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.15",
      "resourceType" : "VRLI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "da03a82c-bcfc-4267-ba36-1db69886df84",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2020-04-10T06:21:00.020Z",
    "modificationTimestamp" : "2020-04-10T06:21:00.020Z",
    "resource" : {
      "resourceId" : "8eb1dbaa-b746-4849-9075-25d80f989b18",
      "resourceName" : "sfo01vrli01b.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.16",
      "resourceType" : "VRLI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "d21b3ca4-43df-40a6-b6d4-1313de968890",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2020-04-10T06:21:00.020Z",
    "modificationTimestamp" : "2020-04-10T06:21:00.020Z",
    "resource" : {
      "resourceId" : "29857146-c99a-4edb-9ff0-6becd8d3734b",
      "resourceName" : "vrops01svr01a.rainpole.local",
      "resourceIp" : "10.0.1.33",
      "resourceType" : "VROPS",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "a8aca43c-d3ad-4be6-9ffb-20909f9a37a4",
    "credentialType" : "API",
    "username" : "admin",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2020-04-10T06:21:00.020Z",
    "modificationTimestamp" : "2020-04-10T06:21:00.020Z",
    "resource" : {
      "resourceId" : "3c0154ac-eb0d-4db5-932d-a00f75ea6ef0",
      "resourceName" : "vrops01svr01.rainpole.local",
      "resourceIp" : "10.0.0.31",
      "resourceType" : "VROPS",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "06680d3e-80f4-45da-aa60-266d13a63374",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2020-04-10T06:21:00.020Z",
    "modificationTimestamp" : "2020-04-10T06:21:00.020Z",
    "resource" : {
      "resourceId" : "5a3ed4af-81bc-4e74-95ae-453e5e175625",
      "resourceName" : "vrslcm01svr01a.rainpole.local",
      "resourceIp" : "10.0.0.32",
      "resourceType" : "VRSLCM",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "5cf65e32-6258-4c36-9031-bb0ad5510d12",
    "credentialType" : "API",
    "username" : "admin@localhost",
    "password" : "VMwareInfra@1",
    "creationTimestamp" : "2020-04-10T06:21:00.020Z",
    "modificationTimestamp" : "2020-04-10T06:21:00.020Z",
    "resource" : {
      "resourceId" : "6dd4a730-b057-4440-840e-3bb43974c893",
      "resourceName" : "vrslcm01svr01a.rainpole.local",
      "resourceIp" : "10.0.0.32",
      "resourceType" : "VRSLCM",
      "domainName" : "MGMT"
    }
  } ]
}

2.21.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://sddc-manager.sfo01.rainpole.local/v1/credentials/00d942ce-8243-41ae-b8cb-8b9709a0ff69' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/credentials/00d942ce-8243-41ae-b8cb-8b9709a0ff69 HTTP/1.1
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "id" : "00d942ce-8243-41ae-b8cb-8b9709a0ff69",
  "credentialType" : "SSH",
  "username" : "root",
  "password" : "VMwareInfra@1",
  "creationTimestamp" : "2020-04-10T06:20:59.913Z",
  "modificationTimestamp" : "2020-04-10T06:20:59.913Z",
  "resource" : {
    "resourceId" : "68248506-5b46-4efe-9863-26cda95145c4",
    "resourceName" : "sfo01m01esx02.sfo01.rainpole.local",
    "resourceIp" : "10.0.0.101",
    "resourceType" : "ESXI",
    "domainName" : "MGMT"
  }
}

2.21.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://sddc-manager.sfo01.rainpole.local/v1/credentials' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "operationType" : "UPDATE",
  "elements" : [ {
    "resourceName" : "sfo01m01esx02.sfo01.rainpole.local",
    "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: 272
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

{
  "operationType" : "UPDATE",
  "elements" : [ {
    "resourceName" : "sfo01m01esx02.sfo01.rainpole.local",
    "resourceType" : "ESXI",
    "credentials" : [ {
      "credentialType" : "SSH",
      "username" : "root",
      "password" : "VMwareInfra@1"
    } ]
  } ]
}

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/tasks/dbc53b1b-4ee7-4d61-b5a1-b6f5f1fb7bca
Content-Type: application/json
Content-Length: 100

{
  "id" : "dbc53b1b-4ee7-4d61-b5a1-b6f5f1fb7bca",
  "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.21.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://sddc-manager.sfo01.rainpole.local/v1/credentials' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "operationType" : "ROTATE",
  "elements" : [ {
    "resourceName" : "sfo01m01esx02.sfo01.rainpole.local",
    "resourceType" : "ESXI",
    "credentials" : [ {
      "credentialType" : "SSH",
      "username" : "root"
    } ]
  } ]
}'

HTTP Request

PATCH /v1/credentials HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 236
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

{
  "operationType" : "ROTATE",
  "elements" : [ {
    "resourceName" : "sfo01m01esx02.sfo01.rainpole.local",
    "resourceType" : "ESXI",
    "credentials" : [ {
      "credentialType" : "SSH",
      "username" : "root"
    } ]
  } ]
}

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/tasks/b3fba3e1-9dbe-4a6d-a3c9-56700b9edc2f
Content-Type: application/json
Content-Length: 100

{
  "id" : "b3fba3e1-9dbe-4a6d-a3c9-56700b9edc2f",
  "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.21.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://sddc-manager.sfo01.rainpole.local/v1/credentials/tasks/43017ca9-54d5-489f-9569-bac96f435191' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "operationType" : "UPDATE",
  "elements" : [ {
    "resourceName" : "sfo01m01esx02.sfo01.rainpole.local",
    "resourceType" : "ESXI",
    "credentials" : [ {
      "credentialType" : "SSH",
      "username" : "root",
      "password" : "VMwareInfra@1"
    } ]
  } ]
}'

HTTP Request

PATCH /v1/credentials/tasks/43017ca9-54d5-489f-9569-bac96f435191 HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 272
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

{
  "operationType" : "UPDATE",
  "elements" : [ {
    "resourceName" : "sfo01m01esx02.sfo01.rainpole.local",
    "resourceType" : "ESXI",
    "credentials" : [ {
      "credentialType" : "SSH",
      "username" : "root",
      "password" : "VMwareInfra@1"
    } ]
  } ]
}

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/tasks/43017ca9-54d5-489f-9569-bac96f435191
Content-Type: application/json
Content-Length: 100

{
  "id" : "43017ca9-54d5-489f-9569-bac96f435191",
  "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.21.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://sddc-manager.sfo01.rainpole.local/v1/credentials/tasks/a22346ef-8e64-493b-8b22-a69bd0cb5a44' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "operationType" : "ROTATE",
  "elements" : [ {
    "resourceName" : "sfo01m01esx02.sfo01.rainpole.local",
    "resourceType" : "ESXI",
    "credentials" : [ {
      "credentialType" : "SSH",
      "username" : "root"
    } ]
  } ]
}'

HTTP Request

PATCH /v1/credentials/tasks/a22346ef-8e64-493b-8b22-a69bd0cb5a44 HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 236
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

{
  "operationType" : "ROTATE",
  "elements" : [ {
    "resourceName" : "sfo01m01esx02.sfo01.rainpole.local",
    "resourceType" : "ESXI",
    "credentials" : [ {
      "credentialType" : "SSH",
      "username" : "root"
    } ]
  } ]
}

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/tasks/a22346ef-8e64-493b-8b22-a69bd0cb5a44
Content-Type: application/json
Content-Length: 100

{
  "id" : "a22346ef-8e64-493b-8b22-a69bd0cb5a44",
  "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.21.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://sddc-manager.sfo01.rainpole.local/v1/credentials/tasks/234f7a60-924b-4ddf-8a4e-881abd4b1377' -i -X DELETE \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

DELETE /v1/credentials/tasks/234f7a60-924b-4ddf-8a4e-881abd4b1377 HTTP/1.1
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

HTTP/1.1 204 No Content
Content-Type: application/json
Content-Length: 103

{
  "id" : "234f7a60-924b-4ddf-8a4e-881abd4b1377",
  "name" : "USER CANCELLED",
  "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.21.8. Get the Credentials Tasks

This API is used to fetch all credentials tasks in reverse chronological order.

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "id" : "186d891f-aac3-4501-ae52-afb89eb7e32f",
    "name" : "Credentials rotate operation",
    "type" : "ROTATE",
    "creationTimestamp" : "2018-11-05T05:15:32.864Z",
    "status" : "SUCCESSFUL",
    "subTasks" : [ {
      "name" : "vracafe3.rainpole.local:SSH",
      "creationTimestamp" : "2018-11-05T05:15:32.864Z",
      "status" : "SUCCESSFUL",
      "oldPassword" : "EvoSDDC2019!",
      "newPassword" : "EvoSDDC2020!",
      "entityType" : "VRA",
      "username" : "root",
      "credentialType" : "SSH"
    }, {
      "name" : "vracafe2.rainpole.local:SSH",
      "creationTimestamp" : "2018-11-05T05:15:32.864Z",
      "status" : "SUCCESSFUL",
      "oldPassword" : "EvoSDDC2017!",
      "newPassword" : "EvoSDDC2018!",
      "entityType" : "VRA",
      "username" : "root",
      "credentialType" : "SSH"
    }, {
      "name" : "vracafe1.rainpole.local:SSH",
      "creationTimestamp" : "2018-11-05T05:15:32.864Z",
      "status" : "SUCCESSFUL",
      "oldPassword" : "EvoSDDC2016!",
      "newPassword" : "EvoSDDC2017!",
      "entityType" : "VRA",
      "username" : "root",
      "credentialType" : "SSH"
    } ]
  } ]
}

2.21.9. Get a Credentials Task

This API is used to fetch a credentials task for an ID.

Prerequisites
  1. The following data is required

    • ID of the credentials task

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "id" : "186d891f-aac3-4501-ae52-afb89eb7e32f",
  "name" : "Credentials rotate operation",
  "type" : "ROTATE",
  "creationTimestamp" : "2018-11-05T05:15:32.864Z",
  "status" : "SUCCESSFUL",
  "subTasks" : [ {
    "name" : "vracafe3.rainpole.local:SSH",
    "creationTimestamp" : "2018-11-05T05:15:32.864Z",
    "status" : "SUCCESSFUL",
    "oldPassword" : "EvoSDDC2019!",
    "newPassword" : "EvoSDDC2020!",
    "entityType" : "VRA",
    "username" : "root",
    "credentialType" : "SSH"
  }, {
    "name" : "vracafe2.rainpole.local:SSH",
    "creationTimestamp" : "2018-11-05T05:15:32.864Z",
    "status" : "SUCCESSFUL",
    "oldPassword" : "EvoSDDC2017!",
    "newPassword" : "EvoSDDC2018!",
    "entityType" : "VRA",
    "username" : "root",
    "credentialType" : "SSH"
  }, {
    "name" : "vracafe1.rainpole.local:SSH",
    "creationTimestamp" : "2018-11-05T05:15:32.864Z",
    "status" : "SUCCESSFUL",
    "oldPassword" : "EvoSDDC2016!",
    "newPassword" : "EvoSDDC2017!",
    "entityType" : "VRA",
    "username" : "root",
    "credentialType" : "SSH"
  } ]
}

2.21.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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

[ {
  "resourceName" : "vracafe3.rainpole.local",
  "resourceType" : "VRA",
  "credentials" : [ {
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "EvoSDDC2020!"
  } ]
}, {
  "resourceName" : "vracafe2.rainpole.local",
  "resourceType" : "VRA",
  "credentials" : [ {
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "EvoSDDC2018!"
  } ]
}, {
  "resourceName" : "vracafe1.rainpole.local",
  "resourceType" : "VRA",
  "credentials" : [ {
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "EvoSDDC2017!"
  } ]
} ]

2.22. Certificates

2.22.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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "id" : "OpenSSL",
    "commonName" : "test.openssl.eng.vmware.com",
    "country" : "India",
    "state" : "Karnataka",
    "locality" : "Bengaluru",
    "organization" : "VMware",
    "organizationUnit" : "ISBU"
  }, {
    "id" : "Microsoft",
    "username" : "Admin",
    "serverUrl" : "https://192.168.110.200/certsrv",
    "templateName" : "Vcms"
  } ]
}
  1. Configure certificate authority if it is not configured by invoking the API

Configure "Microsoft" certificate authority

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/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://192.168.110.200/certsrv",
    "templateName" : "Vcms"
  }
}'

HTTP Request

PUT /v1/certificate-authorities HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 188
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

{
  "microsoftCertificateAuthoritySpec" : {
    "username" : "Admin",
    "secret" : "VMwareInfra@1",
    "serverUrl" : "https://192.168.110.200/certsrv",
    "templateName" : "Vcms"
  }
}

HTTP Response

HTTP/1.1 200 OK

Configure "OpenSSL" certificate authority

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/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" : "India",
    "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: 242
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

{
  "openSSLCertificateAuthoritySpec" : {
    "commonName" : "test.openssl.eng.vmware.com",
    "country" : "India",
    "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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

{
  "microsoftCertificateAuthoritySpec" : {
    "templateName" : "Vcms1"
  }
}

HTTP Response

HTTP/1.1 200 OK

Reconfigure "OpenSSL" certificate authority

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "id" : "Microsoft",
  "username" : "Admin",
  "serverUrl" : "https://192.168.110.200/certsrv",
  "templateName" : "Vcms"
}

Verify configuration for "OpenSSL" certificate authority

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "id" : "OpenSSL",
  "commonName" : "test.openssl.eng.vmware.com",
  "country" : "India",
  "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://sddc-manager.sfo01.rainpole.local/v1/domains/MGMT/csrs' -i -X PUT \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "csrGenerationSpec" : {
    "country" : "India",
    "state" : "Karnataka",
    "locality" : "Bengaluru",
    "organization" : "VMware",
    "organizationUnit" : "ISBU",
    "email" : "admin@vmware.com",
    "keySize" : "2048",
    "keyAlgorithm" : "RSA"
  },
  "resources" : [ {
    "fqdn" : "sfo01m01nsx01.sfo01.rainpole.local",
    "type" : "NSX_MANAGER"
  } ]
}'

HTTP Request

PUT /v1/domains/MGMT/csrs HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 369
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

{
  "csrGenerationSpec" : {
    "country" : "India",
    "state" : "Karnataka",
    "locality" : "Bengaluru",
    "organization" : "VMware",
    "organizationUnit" : "ISBU",
    "email" : "admin@vmware.com",
    "keySize" : "2048",
    "keyAlgorithm" : "RSA"
  },
  "resources" : [ {
    "fqdn" : "sfo01m01nsx01.sfo01.rainpole.local",
    "type" : "NSX_MANAGER"
  } ]
}

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/tasks/7ed5ff10-9e8c-42fa-8d38-ad11e70d3ff2
Content-Type: application/json
Content-Length: 79

{
  "id" : "7ed5ff10-9e8c-42fa-8d38-ad11e70d3ff2",
  "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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "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" : "sfo01m01nsx01.sfo01.rainpole.local"
    }
  } ]
}
  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://sddc-manager.sfo01.rainpole.local/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" : "sfo01m01nsx01.sfo01.rainpole.local",
    "type" : "NSX_MANAGER"
  } ]
}'

HTTP Request

PUT /v1/domains/MGMT/certificates HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 133
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

{
  "caType" : "Microsoft",
  "resources" : [ {
    "fqdn" : "sfo01m01nsx01.sfo01.rainpole.local",
    "type" : "NSX_MANAGER"
  } ]
}

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/tasks/5b51e5f4-730c-412d-8fd1-8cee0fbdf610
Content-Type: application/json
Content-Length: 79

{
  "id" : "5b51e5f4-730c-412d-8fd1-8cee0fbdf610",
  "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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "isInstalled" : true,
    "version" : "V3",
    "serialNumber" : "ca:0b:5d:6d:07:4e:db:41",
    "issuedTo" : "sfo01m01vcenter01.sfo01.rainpole.local",
    "issuedBy" : "OU=VMware Engineering, O=sfo01m01psc01.sfo01.rainpole.local, 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=sfo01m01vcenter01.sfo01.rainpole.local",
    "subjectAlternativeName" : [ "sfo01m01vcenter01.sfo01.rainpole.local" ],
    "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" : "sfo01m01nsx01.sfo01.rainpole.local",
    "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=sfo01m01nsx01.sfo01.rainpole.local",
    "subjectAlternativeName" : [ "sfo01m01nsx01.sfo01.rainpole.local" ],
    "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://sddc-manager.sfo01.rainpole.local/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" : "sfo01m01nsx01.sfo01.rainpole.local",
    "type" : "NSX_MANAGER"
  } ]
}'

HTTP Request

PATCH /v1/domains/MGMT/certificates HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 138
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

{
  "operationType" : "INSTALL",
  "resources" : [ {
    "fqdn" : "sfo01m01nsx01.sfo01.rainpole.local",
    "type" : "NSX_MANAGER"
  } ]
}

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/tasks/7a621085-4114-4c27-b983-eac64500094c
Content-Type: application/json
Content-Length: 79

{
  "id" : "7a621085-4114-4c27-b983-eac64500094c",
  "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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "version" : "V3",
    "serialNumber" : "ca:0b:5d:6d:07:4e:db:41",
    "issuedTo" : "sfo01m01vcenter01.sfo01.rainpole.local",
    "issuedBy" : "OU=VMware Engineering, O=sfo01m01psc01.sfo01.rainpole.local, 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=sfo01m01vcenter01.sfo01.rainpole.local",
    "subjectAlternativeName" : [ "sfo01m01vcenter01.sfo01.rainpole.local" ],
    "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" : "sfo01m01nsx01.sfo01.rainpole.local",
    "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=sfo01m01nsx01.sfo01.rainpole.local",
    "subjectAlternativeName" : [ "sfo01m01nsx01.sfo01.rainpole.local" ],
    "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.22.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://sddc-manager.sfo01.rainpole.local/v1/domains/MGMT/csrs' -i -X PUT \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "csrGenerationSpec" : {
    "country" : "India",
    "state" : "Karnataka",
    "locality" : "Bengaluru",
    "organization" : "VMware",
    "organizationUnit" : "ISBU",
    "email" : "admin@vmware.com",
    "keySize" : "2048",
    "keyAlgorithm" : "RSA"
  },
  "resources" : [ {
    "fqdn" : "sfo01m01nsx01.sfo01.rainpole.local",
    "type" : "NSX_MANAGER"
  } ]
}'

HTTP Request

PUT /v1/domains/MGMT/csrs HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 369
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

{
  "csrGenerationSpec" : {
    "country" : "India",
    "state" : "Karnataka",
    "locality" : "Bengaluru",
    "organization" : "VMware",
    "organizationUnit" : "ISBU",
    "email" : "admin@vmware.com",
    "keySize" : "2048",
    "keyAlgorithm" : "RSA"
  },
  "resources" : [ {
    "fqdn" : "sfo01m01nsx01.sfo01.rainpole.local",
    "type" : "NSX_MANAGER"
  } ]
}

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/tasks/7ed5ff10-9e8c-42fa-8d38-ad11e70d3ff2
Content-Type: application/json
Content-Length: 79

{
  "id" : "7ed5ff10-9e8c-42fa-8d38-ad11e70d3ff2",
  "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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "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" : "sfo01m01nsx01.sfo01.rainpole.local"
    }
  } ]
}
  1. After successful CSR generation, download CSR in ".tar.gz" format by invoking the API

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
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://sddc-manager.sfo01.rainpole.local/v1/domains/MGMT/certificates/uploads' -i -X PUT \
    -H 'Content-Type: multipart/form-data' \
    -H 'Authorization: Bearer etYWRta....' \
    -F 'file=@MGMT.tar.gz;type=multipart/form-data'

HTTP Request

PUT /v1/domains/MGMT/certificates/uploads HTTP/1.1
Content-Type: multipart/form-data; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Host: sddc-manager.sfo01.rainpole.local
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://sddc-manager.sfo01.rainpole.local/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" : "sfo01m01nsx01.sfo01.rainpole.local",
    "type" : "NSX_MANAGER"
  } ]
}'

HTTP Request

PATCH /v1/domains/MGMT/certificates HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 138
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

{
  "operationType" : "INSTALL",
  "resources" : [ {
    "fqdn" : "sfo01m01nsx01.sfo01.rainpole.local",
    "type" : "NSX_MANAGER"
  } ]
}

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/tasks/7a621085-4114-4c27-b983-eac64500094c
Content-Type: application/json
Content-Length: 79

{
  "id" : "7a621085-4114-4c27-b983-eac64500094c",
  "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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "version" : "V3",
    "serialNumber" : "ca:0b:5d:6d:07:4e:db:41",
    "issuedTo" : "sfo01m01vcenter01.sfo01.rainpole.local",
    "issuedBy" : "OU=VMware Engineering, O=sfo01m01psc01.sfo01.rainpole.local, 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=sfo01m01vcenter01.sfo01.rainpole.local",
    "subjectAlternativeName" : [ "sfo01m01vcenter01.sfo01.rainpole.local" ],
    "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" : "sfo01m01nsx01.sfo01.rainpole.local",
    "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=sfo01m01nsx01.sfo01.rainpole.local",
    "subjectAlternativeName" : [ "sfo01m01nsx01.sfo01.rainpole.local" ],
    "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.23. vCenters

2.23.1. Get a vCenter

Prerequisites
  1. The following data is required

    • ID of the vCenter

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "id" : "c0703437-6756-470b-9e1c-f9d3bbc9b1c6",
  "fqdn" : "vi-1-vcenter.vrack.vsphere.local",
  "ipAddress" : "10.0.0.6",
  "domain" : {
    "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c5"
  }
}

2.23.2. Get the vCenters

Prerequisites

None

Get All vCenters

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/v1/vcenters' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/vcenters HTTP/1.1
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "id" : "c0703437-6756-470b-9e1c-f9d3bbc9b1c6",
    "fqdn" : "vi-1-vcenter.vrack.vsphere.local",
    "ipAddress" : "10.0.0.6",
    "domain" : {
      "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c5"
    }
  }, {
    "id" : "c0703437-6846-470b-9e1c-f9d3bbc9b1c9",
    "fqdn" : "vdi-1-vcenter.vrack.vsphere.local",
    "ipAddress" : "10.0.0.20",
    "domain" : {
      "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c1"
    }
  } ]
}

2.23.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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "id" : "c0703437-6756-470b-9e1c-f9d3bbc9b1c6",
    "fqdn" : "vi-1-vcenter.vrack.vsphere.local",
    "ipAddress" : "10.0.0.6",
    "domain" : {
      "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c5"
    }
  } ]
}

2.24. NSX-T Clusters

2.24.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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "id" : "d77231ad-bf61-4331-88f3-b52534d564ba",
  "vipFqdn" : "vip-nsxt-vi-01.sfo01.rainpole.local",
  "vip" : "172.19.10.81",
  "domains" : [ {
    "id" : "5c6e4716-b069-4481-aa6e-4eca8bf5596a",
    "name" : "nsxt-vi-01"
  } ],
  "nodes" : [ {
    "fqdn" : "nsx-mgr1-nsxt-vi-01.sfo01.rainpole.local",
    "ipAddress" : "172.19.10.84",
    "name" : "nsx-mgr1-nsxt-vi-01"
  }, {
    "fqdn" : "nsx-mgr2-nsxt-vi-01.sfo01.rainpole.local",
    "ipAddress" : "172.19.10.83",
    "name" : "nsx-mgr2-nsxt-vi-01"
  }, {
    "fqdn" : "nsx-mgr3-nsxt-vi-01.sfo01.rainpole.local",
    "ipAddress" : "172.19.10.82",
    "name" : "nsx-mgr3-nsxt-vi-01"
  } ],
  "isShared" : true,
  "isVlcmCompatible" : false
}

2.24.2. Get the NSX-T Clusters

Prerequisites

None

Get All NSX-T Clusters

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/v1/nsxt-clusters' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/nsxt-clusters HTTP/1.1
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ [ {
    "id" : "d77231ad-bf61-4331-88f3-b52534d564ba",
    "vipFqdn" : "vip-nsxt-vi-01.sfo01.rainpole.local",
    "vip" : "172.19.10.81",
    "domains" : [ {
      "id" : "5c6e4716-b069-4481-aa6e-4eca8bf5596a",
      "name" : "nsxt-vi-01"
    } ],
    "nodes" : [ {
      "fqdn" : "nsx-mgr1-nsxt-vi-01.sfo01.rainpole.local",
      "ipAddress" : "172.19.10.84",
      "name" : "nsx-mgr1-nsxt-vi-01"
    }, {
      "fqdn" : "nsx-mgr2-nsxt-vi-01.sfo01.rainpole.local",
      "ipAddress" : "172.19.10.83",
      "name" : "nsx-mgr2-nsxt-vi-01"
    }, {
      "fqdn" : "nsx-mgr3-nsxt-vi-01.sfo01.rainpole.local",
      "ipAddress" : "172.19.10.82",
      "name" : "nsx-mgr3-nsxt-vi-01"
    } ],
    "isShared" : true,
    "isVlcmCompatible" : false
  } ] ]
}

2.25. Platform Service Controllers

2.25.1. Get a PSC

Prerequisites
  1. The following data is required

    • ID of the PSC

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/v1/pscs/5aa499d2-4e9f-4221-8b57-abcd5cc3b142' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/pscs/5aa499d2-4e9f-4221-8b57-abcd5cc3b142 HTTP/1.1
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "id" : "5aa499d2-4e9f-4221-8b57-abcd5cc3b142",
  "fqdn" : "psc-1.vrack.vsphere.local",
  "ipAddress" : "10.0.0.5",
  "ssoDomainName" : "vsphere.local",
  "ssoSubDomainName" : "vrack.vsphere.local",
  "isReplica" : false,
  "domain" : {
    "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c5"
  }
}

2.25.2. Get the PSCs

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/v1/pscs' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/pscs HTTP/1.1
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "id" : "5aa499d2-4e9f-4221-8b57-abcd5cc3b142",
    "fqdn" : "psc-1.vrack.vsphere.local",
    "ipAddress" : "10.0.0.5",
    "ssoDomainName" : "vsphere.local",
    "ssoSubDomainName" : "vrack.vsphere.local",
    "isReplica" : false,
    "domain" : {
      "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c5"
    }
  } ]
}

2.26. SDDC Managers

2.26.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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "id" : "ebb0944f-3b86-4872-9afa-2e80ce814c8f",
  "fqdn" : "sddc-manager.vrack.vsphere.local",
  "version" : "3.9.0.0-14713675",
  "ipAddress" : "10.0.0.4",
  "domain" : {
    "id" : "d1f91ef5-dfa2-48e7-adde-cd37b0aa7911"
  }
}

2.26.2. Get the SDDC Managers

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/v1/sddc-managers' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/sddc-managers HTTP/1.1
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "id" : "ebb0944f-3b86-4872-9afa-2e80ce814c8f",
    "fqdn" : "sddc-manager.vrack.vsphere.local",
    "version" : "3.9.0.0-14713675",
    "ipAddress" : "10.0.0.4",
    "domain" : {
      "id" : "d1f91ef5-dfa2-48e7-adde-cd37b0aa7911"
    }
  } ]
}

2.27. VCF Services

2.27.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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "id" : "bc0debfe-bd38-453a-822d-fdd012fbd0b2",
  "name" : "COMMON_SERVICES",
  "version" : "3.8.2-RELEASE"
}

2.27.2. Get the VCF Services

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/v1/vcf-services' -i -X GET \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/vcf-services HTTP/1.1
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "id" : "bc0debfe-bd38-453a-822d-fdd012fbd0b2",
    "name" : "COMMON_SERVICES",
    "version" : "3.8.2-RELEASE"
  }, {
    "id" : "174ca011-0f17-48ec-a4cb-8fc3d35149bd",
    "name" : "DOMAIN_MANAGER",
    "version" : "3.8.2-RELEASE"
  }, {
    "id" : "8c64a3f9-fa12-4d00-ba19-9fe747e2bda",
    "name" : "OPERATIONS_MANAGER",
    "version" : "3.8.2-RELEASE"
  }, {
    "id" : "8bd696dc-958a-482a-9747-4f4e172a3005",
    "name" : "LCM",
    "version" : "3.8.2-RELEASE"
  }, {
    "id" : "9294a99d-8755-4298-9fb6-a255ab6a12f4",
    "name" : "SDDC_MANAGER_UI",
    "version" : "3.8.2-RELEASE"
  }, {
    "id" : "20f1f50f-8e50-4f19-9fd0-3472330b0fb2",
    "name" : "SOLUTIONS_MANAGER",
    "version" : "3.8.2-RELEASE"
  } ]
}

2.28. DNS Configuration

2.28.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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

{
  "dnsServers" : [ {
    "ipAddress" : "10.0.0.250",
    "isPrimary" : true
  } ]
}

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/system/dns-servers/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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
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.29. NTP Configuration

2.29.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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

{
  "ntpServers" : [ {
    "ipAddress" : "10.0.0.250"
  } ]
}

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/system/ntp-servers/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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
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://sddc-manager.sfo01.rainpole.local/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: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "ntpServers" : [ {
    "ipAddress" : "10.0.0.250"
  } ]
}

2.30. Edge Clusters

2.30.1. Validate Edge Cluster

Prerequisites

Complete the required prerequisites before invoking the API.

  • Are Separate VLANs and subnets available to be used for Host VTEP VLAN and Edge VTEP VLAN.

  • Host VTEP VLAN and Edge VTEP VLAN need to be routed.

  • If dynamic routing is desired, 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-T Edge cluster’s T0 interfaces.

  • DNS entries for NSX-T Edge components should be populated in customer managed DNS server.

  • The vSphere clusters hosting the edge clusters should be contained in a Rack.

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. Ex: DEFAULT, CUSTOM

  • Edge Cluster type. Ex: NSX-T, NSX-V

  • Edge Cluster form factor. Ex: LARGE, MEDIUM, SMALL

  • Edge Cluster profile spec. Refer to: NsxTEdgeClusterProfileSpec

  • Edge Node specs. Refer to: NsxTEdgeNodeSpec

  • Name for the T0.

  • Tier 0 Routing type. Ex: EBGP, STATIC

  • High-availability Mode for Tier-0. Ex: ACTIVE_ACTIVE, ACTIVE_STANDBY

  • Name for the T1.

Tip
Refer to: EdgeClusterCreationSpec.
Steps
  1. Validate the input specification using Validate an Edge Cluster spec.

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/v1/edge-clusters/validations' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "edgeClusterName" : "acme-edge-cluster",
  "edgeClusterType" : "NSX-T",
  "edgeRootPassword" : "Acme123!Acme123!",
  "edgeAdminPassword" : "Acme123!Acme123!",
  "edgeAuditPassword" : "Acme123!Acme123!",
  "edgeFormFactor" : "MEDIUM",
  "tier0ServicesHighAvailability" : "ACTIVE_ACTIVE",
  "mtu" : 9000,
  "asn" : 65003,
  "edgeNodeSpecs" : [ {
    "edgeNodeName" : "nsxt-edge-node-1.vrack.vsphere.local",
    "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" : "nsxt-edge-node-2.vrack.vsphere.local",
    "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: 2005
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

{
  "edgeClusterName" : "acme-edge-cluster",
  "edgeClusterType" : "NSX-T",
  "edgeRootPassword" : "Acme123!Acme123!",
  "edgeAdminPassword" : "Acme123!Acme123!",
  "edgeAuditPassword" : "Acme123!Acme123!",
  "edgeFormFactor" : "MEDIUM",
  "tier0ServicesHighAvailability" : "ACTIVE_ACTIVE",
  "mtu" : 9000,
  "asn" : 65003,
  "edgeNodeSpecs" : [ {
    "edgeNodeName" : "nsxt-edge-node-1.vrack.vsphere.local",
    "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" : "nsxt-edge-node-2.vrack.vsphere.local",
    "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: 1947

{
  "id" : "4e6904b4-8b64-4bb5-98e0-1d7e906f2911",
  "description" : "Validating NSX-T Edge Cluster Creation Spec",
  "executionStatus" : "IN_PROGRESS",
  "resultStatus" : "UNKNOWN",
  "validationChecks" : [ {
    "description" : "Distinct edge TEP IPs for edge nodes.",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "Validate that IPs are in same subnet.",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "Check for edge management IP to edge node FQDN resolution.",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "Check for duplicates : duplicate edge cluster name.",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "Capacity check for hosting vsphere cluster/s.",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "Check for L2 non-uniform and L3 cluster.",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "Two distinct uplink interfaces per edge node.",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "Check that Edge cluster with the same name does not exist in NSX-T manager.",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "The vSphere cluster/s hosting the edge cluster belong to the same workload domain.",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "Edge cluster password/s is not meeting Nsxt paswword policy standard.",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "Compliance of edge cluster size with tier0 HA mode.",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "Check for IP conflict for edge management IP, edge TEP IPs, Tier0 uplink interface IPs.",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "Check that Uplink VLANs are valid.",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "Check that T0 with the same name does not exist.",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "Check that T1 with the same name does not exist.",
    "resultStatus" : "UNKNOWN"
  } ]
}
  1. Poll the status of the validation using the validation API with the ID from the response of the previous API.

Tip
Refer to: Validate Edge Cluster.

2.30.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://sddc-manager.sfo01.rainpole.local/v1/edge-clusters/validations/3b57b387-9e60-4377-8a08-4c5fbfd62307' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/edge-clusters/validations/3b57b387-9e60-4377-8a08-4c5fbfd62307 HTTP/1.1
Accept: application/json
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "id" : "3b57b387-9e60-4377-8a08-4c5fbfd62307",
  "description" : "Validating NSX-T Edge Cluster Creation Spec",
  "executionStatus" : "IN_PROGRESS",
  "resultStatus" : "UNKNOWN",
  "validationChecks" : [ {
    "description" : "Distinct edge TEP IPs for edge nodes.",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "Validate that IPs are in same subnet.",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "Check for edge management IP to edge node FQDN resolution.",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "Check for duplicates : duplicate edge cluster name.",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "Capacity check for hosting vsphere cluster/s.",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "Check for L2 non-uniform and L3 cluster.",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "Two distinct uplink interfaces per edge node.",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "Check that Edge cluster with the same name does not exist in NSX-T manager.",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "The vSphere cluster/s hosting the edge cluster belong to the same workload domain.",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "Edge cluster password/s is not meeting Nsxt paswword policy standard.",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "Compliance of edge cluster size with tier0 HA mode.",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "Check for IP conflict for edge management IP, edge TEP IPs, Tier0 uplink interface IPs.",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "Check that Uplink VLANs are valid.",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "Check that T0 with the same name does not exist.",
    "resultStatus" : "UNKNOWN"
  }, {
    "description" : "Check that T1 with the same name does not exist.",
    "resultStatus" : "UNKNOWN"
  } ]
}

2.30.3. Create Edge Cluster

Prerequisites

Complete the required prerequisites before invoking the API.

  • Are Separate VLANs and subnets available to be used for Host VTEP VLAN and Edge VTEP VLAN.

  • Host VTEP VLAN and Edge VTEP VLAN need to be routed.

  • If dynamic routing is desired, 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-T Edge cluster’s T0 interfaces.

  • DNS entries for NSX-T Edge components should be populated in customer managed DNS server.

  • The vSphere clusters hosting the edge clusters should be contained in a Rack.

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. Ex: DEFAULT, CUSTOM

  • Edge Cluster type. Ex: NSX-T, NSX-V

  • Edge Cluster form factor. Ex: LARGE, MEDIUM, SMALL

  • Edge Cluster profile spec. Refer to: NsxTEdgeClusterProfileSpec

  • Edge Node specs. Refer to: NsxTEdgeNodeSpec

  • Name for the T0.

  • Tier 0 Routing type. Ex: EBGP, STATIC

  • High-availability Mode for Tier-0. Ex: ACTIVE_ACTIVE, ACTIVE_STANDBY

  • Name for the T1.

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://sddc-manager.sfo01.rainpole.local/v1/edge-clusters' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....' \
    -d '{
  "edgeClusterName" : "acme-edge-cluster",
  "edgeClusterType" : "NSX-T",
  "edgeRootPassword" : "Acme123!Acme123!",
  "edgeAdminPassword" : "Acme123!Acme123!",
  "edgeAuditPassword" : "Acme123!Acme123!",
  "edgeFormFactor" : "MEDIUM",
  "tier0ServicesHighAvailability" : "ACTIVE_ACTIVE",
  "mtu" : 9000,
  "asn" : 65003,
  "edgeNodeSpecs" : [ {
    "edgeNodeName" : "nsxt-edge-node-1.vrack.vsphere.local",
    "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" : "nsxt-edge-node-2.vrack.vsphere.local",
    "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: 2005
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

{
  "edgeClusterName" : "acme-edge-cluster",
  "edgeClusterType" : "NSX-T",
  "edgeRootPassword" : "Acme123!Acme123!",
  "edgeAdminPassword" : "Acme123!Acme123!",
  "edgeAuditPassword" : "Acme123!Acme123!",
  "edgeFormFactor" : "MEDIUM",
  "tier0ServicesHighAvailability" : "ACTIVE_ACTIVE",
  "mtu" : 9000,
  "asn" : 65003,
  "edgeNodeSpecs" : [ {
    "edgeNodeName" : "nsxt-edge-node-1.vrack.vsphere.local",
    "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" : "nsxt-edge-node-2.vrack.vsphere.local",
    "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/93405dfc-59ea-425f-99fe-0af2c796a626
Content-Length: 170

{
  "id" : "93405dfc-59ea-425f-99fe-0af2c796a626",
  "name" : "Add a NSX-T edge cluster",
  "status" : "IN_PROGRESS",
  "creationTimestamp" : "2020-04-10T06:33:47.721Z"
}
  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.30.4. Get the Edge Clusters

Steps
  1. Invoke the Get the Edge Clusters.

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/v1/edge-clusters' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/edge-clusters HTTP/1.1
Accept: application/json
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "elements" : [ {
    "id" : "618eb382-f84f-4f56-b92f-66a1c262d389",
    "name" : "acme-edge-cluster",
    "clusters" : [ {
      "id" : "d1052c9c-6973-4e32-8034-06e7fa71e83c"
    } ],
    "nsxtCluster" : {
      "id" : "84f3c671-bbbe-4b3c-89d8-4600409cb5f9",
      "vipFqdn" : "vip-nsxt-mgmt.acme.com",
      "vip" : "10.0.0.30"
    }
  } ]
}

2.30.5. Get 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://sddc-manager.sfo01.rainpole.local/v1/edge-clusters/16872ff8-186a-4b0c-a639-5d50c96738e4' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer etYWRta....'

HTTP Request

GET /v1/edge-clusters/16872ff8-186a-4b0c-a639-5d50c96738e4 HTTP/1.1
Accept: application/json
Host: sddc-manager.sfo01.rainpole.local
Authorization: Bearer etYWRta....

HTTP Response

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

{
  "id" : "8f4f3457-24b7-429c-b233-1974f4d25fb3",
  "name" : "acme-edge-cluster",
  "clusters" : [ {
    "id" : "d1052c9c-6973-4e32-8034-06e7fa71e83c"
  } ],
  "nsxtCluster" : {
    "id" : "099162b2-1dfb-420b-a6bb-1c51d953bc40",
    "vipFqdn" : "vip-nsxt-mgmt.acme.com",
    "vip" : "10.0.0.30"
  }
}

2.31. Workload Management

vSphere with Kubernetes transforms vSphere to a platform for running Kubernetes workloads natively on the hypervisor layer.

2.31.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.

3. Paths

3.1. Fetches all AVNs

GET /v1/avns

3.1.1. Description

Returns all matching AVNs

3.1.2. Parameters

Type Name Description Schema

Query

regionType
optional

Pass an optional AVN region type matching either Region-A or X-Region

string

3.1.3. Responses

HTTP Code Description Schema

200

Returns the list of all matching AVNs

< Avn > array

500

Unexpected error

3.1.4. Consumes

  • application/json

3.1.5. Produces

  • application/json

3.1.8. Example HTTP response

Response 200
[ {
  "domainName" : "sfo01.rainpole.local",
  "gateway" : "192.168.31.1",
  "id" : "3f39d4a1-78d2-11e8-af85-f1cf26258cdc",
  "mtu" : 1500,
  "name" : "vRealize-AVN",
  "portGroupName" : "Mgmt-RegionA-PortGroup",
  "regionType" : "REGION_A",
  "routerName" : "sfo01m01udlr-01",
  "subnet" : "192.168.31.0",
  "subnetMask" : "255.255.255.0"
} ]
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.2. Trigger backup

POST /v1/backups/tasks

3.2.1. Parameters

Type Name Description Schema

Body

backupsSpec
required

backupsSpec

3.2.2. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

Internal server error

3.2.3. Consumes

  • application/json

3.2.4. Produces

  • application/json

3.2.5. Tags

  • BackupRestore

3.2.6. Example HTTP request

Request path
/v1/backups/tasks
Request body
{
  "elements" : [ {
    "resourceType" : "SDDC_MANAGER"
  } ]
}

3.2.7. Example HTTP response

Response 200
{
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "name" : "string",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "type" : "string"
  } ],
  "status" : "One among: IN_PROGRESS"
}
Response 202
{
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "name" : "string",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "type" : "string"
  } ],
  "status" : "One among: IN_PROGRESS"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.3. Upload a Bundle

POST /v1/bundles

3.3.1. 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

3.3.2. Parameters

Type Name Description Schema

Body

bundleUploadSpec
required

Bundle Upload Specification

3.3.3. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

Internal Server Error

3.3.4. Consumes

  • application/json

3.3.5. Produces

  • application/json

3.3.6. Tags

  • Bundles

3.3.7. Example HTTP request

Request path
/v1/bundles
Request body
{
  "bundleFilePath" : "string",
  "compatibilitySetsFilePath" : "string",
  "manifestFilePath" : "string",
  "partnerExtensionSpec" : {
    "partnerBundleMetadataFilePath" : "string",
    "partnerBundleVersion" : "string"
  },
  "signatureFilePath" : "string"
}

3.3.8. Example HTTP response

Response 200
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.4. Get the Bundles

GET /v1/bundles

3.4.1. Description

Get all Bundles i.e uploaded bundles and also bundles available via depot access.

3.4.2. Parameters

Type Name Description Schema

Query

isCompliant
optional

Is compliant with the current VCF version

boolean

Query

productType
optional

The type of the product

string

3.4.3. Responses

HTTP Code Description Schema

200

Ok

500

Internal Server Error

3.4.4. Consumes

  • application/json

3.4.5. Produces

  • application/json

3.4.6. Tags

  • Bundles

3.4.8. Example HTTP response

Response 200
{
  "elements" : [ {
    "components" : [ {
      "description" : "string",
      "fromVersion" : "string",
      "id" : "string",
      "imageType" : "One among: PATCH, INSTALL",
      "releasedDate" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "toVersion" : "string",
      "type" : "string",
      "vendor" : "string"
    } ],
    "description" : "string",
    "downloadStatus" : "One among: PENDING, SCHEDULED, IN_PROGRESS, SUCCESSFUL, FAILED",
    "id" : "string",
    "isCompliant" : true,
    "isCumulative" : true,
    "releasedDate" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "severity" : "One among: CRITICAL, IMPORTANT, MODERATE, LOW",
    "sizeMB" : 0.0,
    "type" : "One among: SDDC_MANAGER, VMWARE_SOFTWARE, VXRAIL",
    "vendor" : "string",
    "version" : "string"
  } ]
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.5. Update software compatibility sets for Bundles

PATCH /v1/bundles/

3.5.1. Description

Update software compatibility sets for Bundles

3.5.2. Parameters

Type Name Description Schema

Body

bundleUpdateSpec
required

Bundle Update Specification

3.5.3. Responses

HTTP Code Description Schema

200

OK

No Content

202

Accepted

No Content

400

Bad Request

409

Conflict

500

Internal Server Error

3.5.4. Consumes

  • application/json

3.5.6. Tags

  • Bundles

3.5.7. Example HTTP request

Request path
/v1/bundles/
Request body
{
  "bundleDownloadSpec" : {
    "downloadNow" : true,
    "scheduledTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    }
  },
  "compatibilitySetsFilePath" : "string"
}

3.5.8. Example HTTP response

Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.6. Get a Bundle

GET /v1/bundles/{id}

3.6.1. Description

Get a Bundle

3.6.2. Parameters

Type Name Description Schema

Path

id
required

Bundle ID

string

3.6.3. Responses

HTTP Code Description Schema

200

Ok

404

Bundle Not Found

500

Internal Server Error

3.6.4. Consumes

  • application/json

3.6.5. Produces

  • application/json

3.6.6. Tags

  • Bundles

3.6.8. Example HTTP response

Response 200
{
  "components" : [ {
    "description" : "string",
    "fromVersion" : "string",
    "id" : "string",
    "imageType" : "One among: PATCH, INSTALL",
    "releasedDate" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "toVersion" : "string",
    "type" : "string",
    "vendor" : "string"
  } ],
  "description" : "string",
  "downloadStatus" : "One among: PENDING, SCHEDULED, IN_PROGRESS, SUCCESSFUL, FAILED",
  "id" : "string",
  "isCompliant" : true,
  "isCumulative" : true,
  "releasedDate" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.7. Update a Bundle for downloading from depot

PATCH /v1/bundles/{id}

3.7.1. Description

Update a Bundle for scheduling/triggering download. Only one download can triggered for a Bundle.

3.7.2. Parameters

Type Name Description Schema

Path

id
required

Bundle ID

string

Body

bundleUpdateSpec
required

Bundle Update Specification

3.7.3. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

409

Conflict

500

Internal Server Error

3.7.4. Consumes

  • application/json

3.7.5. Produces

  • application/json

3.7.6. Tags

  • Bundles

3.7.7. Example HTTP request

Request path
/v1/bundles/string
Request body
{
  "bundleDownloadSpec" : {
    "downloadNow" : true,
    "scheduledTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    }
  },
  "compatibilitySetsFilePath" : "string"
}

3.7.8. Example HTTP response

Response 200
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.8. Get certificate authorities information

GET /v1/certificate-authorities

3.8.1. Description

Get certificate authorities information

3.8.2. Responses

HTTP Code Description Schema

200

OK

400

Bad request

500

Internal Server Error

3.8.3. Consumes

  • application/json

3.8.4. Produces

  • application/json

3.8.5. Tags

  • Certificates

3.8.6. Example HTTP request

Request path
/v1/certificate-authorities

3.8.7. 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"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.9. Create a certificate authority

PUT /v1/certificate-authorities

3.9.1. Description

Creates a certificate authority. This is required to generate signed certificates by supporting CAs.

3.9.2. Parameters

Type Name Description Schema

Body

certificateAuthorityCreationSpec
required

certificateAuthorityCreationSpec

3.9.3. Responses

HTTP Code Description Schema

200

OK

object

400

Bad request

500

Internal server error

3.9.4. Consumes

  • application/json

3.9.6. Tags

  • Certificates

3.9.7. 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"
  }
}

3.9.8. Example HTTP response

Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.10. Configure existing certificate authority

PATCH /v1/certificate-authorities

3.10.1. Description

Configure existing certificate authority

3.10.2. Parameters

Type Name Description Schema

Body

certificateAuthoritySpec
required

certificateAuthoritySpec

3.10.3. Responses

HTTP Code Description Schema

200

OK

object

400

Bad request

404

Not Found

500

Internal server error

3.10.4. Consumes

  • application/json

3.10.6. Tags

  • Certificates

3.10.7. 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"
  }
}

3.10.8. Example HTTP response

Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.11. Deletes CA configuration file

DELETE /v1/certificate-authorities/{caType}

3.11.1. Description

Deletes CA configuration file

3.11.2. Parameters

Type Name Description Schema

Path

caType
required

The CA type

string

3.11.3. Responses

HTTP Code Description Schema

200

OK

object

204

No contet

object

404

Not Found

500

Internal server error

3.11.4. Consumes

  • application/json

3.11.6. Tags

  • Certificates

3.11.7. Example HTTP request

Request path
/v1/certificate-authorities/string

3.11.8. Example HTTP response

Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.12. Get certificate authority information

GET /v1/certificate-authorities/{id}

3.12.1. Description

Get certificate authority information

3.12.2. Parameters

Type Name Description Schema

Path

id
required

CA type

string

3.12.3. Responses

HTTP Code Description Schema

200

OK

404

Not Found

500

Internal Server Error

3.12.4. Consumes

  • application/json

3.12.5. Produces

  • application/json

3.12.6. Tags

  • Certificates

3.12.7. Example HTTP request

Request path
/v1/certificate-authorities/string

3.12.8. 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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.13. Create a Cluster and add to an existing Domain

POST /v1/clusters

3.13.1. Parameters

Type Name Description Schema

Body

clusterCreationSpec
required

Cluster Creation Spec

3.13.2. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

InternalServerError

3.13.3. Consumes

  • application/json

3.13.4. Produces

  • application/json

3.13.5. Tags

  • Clusters

3.13.6. 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, 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"
        }
      },
      "hostSpecs" : [ {
        "azName" : "string",
        "hostName" : "string",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "string",
            "moveToNvds" : true,
            "vdsName" : "string"
          } ]
        },
        "id" : "string",
        "ipAddress" : "string",
        "licenseKey" : "string",
        "password" : "string",
        "username" : "string"
      } ],
      "name" : "string",
      "networkSpec" : {
        "nsxClusterSpec" : {
          "nsxTClusterSpec" : {
            "geneveVlanId" : 0
          }
        },
        "vdsSpecs" : [ {
          "isUsedByNsxt" : true,
          "name" : "string",
          "niocBandwidthAllocationSpecs" : [ {
            "niocTrafficResourceAllocation" : {
              "limit" : 0,
              "reservation" : 0
            },
            "type" : "string"
          } ],
          "portGroupSpecs" : [ {
            "name" : "string",
            "transportType" : "One among: VSAN, VMOTION, MANAGEMENT, PUBLIC, NFS"
          } ]
        } ]
      },
      "vxRailDetails" : {
        "adminCredentials" : {
          "credentialType" : "One among: SSH",
          "password" : "string",
          "username" : "string"
        },
        "rootCredentials" : {
          "credentialType" : "One among: SSH",
          "password" : "string",
          "username" : "string"
        }
      }
    } ]
  },
  "domainId" : "string"
}

3.13.7. Example HTTP response

Response 200
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.14. Get the Clusters

GET /v1/clusters

3.14.1. Parameters

Type Name Description Schema

Query

isStretched
optional

isStretched

boolean

3.14.2. Responses

HTTP Code Description Schema

200

Ok

400

Bad Request

500

InternalServerError

3.14.3. Consumes

  • application/json

3.14.4. Produces

  • application/json

3.14.5. Tags

  • Clusters

3.14.7. Example HTTP response

Response 200
{
  "elements" : [ {
    "hosts" : [ {
      "fqdn" : "string",
      "id" : "string",
      "ipAddress" : "string"
    } ],
    "id" : "string",
    "isDefault" : true,
    "isStretched" : true,
    "name" : "string",
    "primaryDatastoreName" : "string",
    "primaryDatastoreType" : "One among: VSAN, NFS, FC",
    "vdsSpecs" : [ {
      "isUsedByNsxt" : true,
      "name" : "string",
      "niocBandwidthAllocationSpecs" : [ {
        "niocTrafficResourceAllocation" : {
          "limit" : 0,
          "reservation" : 0
        },
        "type" : "string"
      } ],
      "portGroupSpecs" : [ {
        "name" : "string",
        "transportType" : "One among: VSAN, VMOTION, MANAGEMENT, PUBLIC, NFS"
      } ]
    } ]
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.15. Validate the input spec for clusters operations

POST /v1/clusters/validations

3.15.1. Parameters

Type Name Description Schema

Body

clusterCreationSpec
required

Clusters Operation Spec Validation

3.15.2. Responses

HTTP Code Description Schema

200

Ok

400

Bad Request

500

InternalServerError

3.15.3. Consumes

  • application/json

3.15.4. Produces

  • application/json

3.15.5. Tags

  • Clusters

3.15.6. 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, 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"
        }
      },
      "hostSpecs" : [ {
        "azName" : "string",
        "hostName" : "string",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "string",
            "moveToNvds" : true,
            "vdsName" : "string"
          } ]
        },
        "id" : "string",
        "ipAddress" : "string",
        "licenseKey" : "string",
        "password" : "string",
        "username" : "string"
      } ],
      "name" : "string",
      "networkSpec" : {
        "nsxClusterSpec" : {
          "nsxTClusterSpec" : {
            "geneveVlanId" : 0
          }
        },
        "vdsSpecs" : [ {
          "isUsedByNsxt" : true,
          "name" : "string",
          "niocBandwidthAllocationSpecs" : [ {
            "niocTrafficResourceAllocation" : {
              "limit" : 0,
              "reservation" : 0
            },
            "type" : "string"
          } ],
          "portGroupSpecs" : [ {
            "name" : "string",
            "transportType" : "One among: VSAN, VMOTION, MANAGEMENT, PUBLIC, NFS"
          } ]
        } ]
      },
      "vxRailDetails" : {
        "adminCredentials" : {
          "credentialType" : "One among: SSH",
          "password" : "string",
          "username" : "string"
        },
        "rootCredentials" : {
          "credentialType" : "One among: SSH",
          "password" : "string",
          "username" : "string"
        }
      }
    } ]
  },
  "domainId" : "string"
}

3.15.7. Example HTTP response

Response 200
{
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "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",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: SUCCEEDED, FAILED",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: SUCCEEDED, FAILED",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.16. Get the status of the validations for cluster deployment

GET /v1/clusters/validations/{id}

3.16.1. Description

Gets the status of given cluster validation workflow by given validation id

3.16.2. Parameters

Type Name Description Schema

Path

id
required

Cluster validation workflow id

string

3.16.3. Responses

HTTP Code Description Schema

200

OK

400

Bad Request

404

Not Found

3.16.4. Consumes

  • application/json

3.16.5. Produces

  • application/json

3.16.6. Tags

  • Clusters

3.16.7. Example HTTP request

Request path
/v1/clusters/validations/string

3.16.8. Example HTTP response

Response 200
{
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "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",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: SUCCEEDED, FAILED",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: SUCCEEDED, FAILED",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.17. Get query response

GET /v1/clusters/{clusterId}/hosts/queries/{queryId}

3.17.1. Parameters

Type Name Description Schema

Path

clusterId
required

Cluster ID

string

Path

queryId
required

Query ID

string

3.17.2. Responses

HTTP Code Description Schema

200

Ok

400

Bad Request

404

Query Not Found

500

Internal Server Error

3.17.3. Consumes

  • application/json

3.17.4. Produces

  • application/json

3.17.5. Tags

  • Clusters

3.17.6. Example HTTP request

Request path
/v1/clusters/string/hosts/queries/string

3.17.7. Example HTTP response

Response 200
{
  "queryInfo" : {
    "completed" : true,
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "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"
      } ],
      "memory" : {
        "totalCapacityMB" : 0.0,
        "usedCapacityMB" : 0.0
      },
      "networkpool" : {
        "id" : "string",
        "name" : "string"
      },
      "physicalNics" : [ {
        "deviceName" : "string",
        "macAddress" : "string"
      } ],
      "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.18. Get a Cluster

GET /v1/clusters/{id}

3.18.1. Parameters

Type Name Description Schema

Path

id
required

Cluster ID

string

3.18.2. Responses

HTTP Code Description Schema

200

Ok

404

Cluster not found

500

InternalServerError

3.18.3. Consumes

  • application/json

3.18.4. Produces

  • application/json

3.18.5. Tags

  • Clusters

3.18.7. Example HTTP response

Response 200
{
  "hosts" : [ {
    "fqdn" : "string",
    "id" : "string",
    "ipAddress" : "string"
  } ],
  "id" : "string",
  "isDefault" : true,
  "isStretched" : true,
  "name" : "string",
  "primaryDatastoreName" : "string",
  "primaryDatastoreType" : "One among: VSAN, NFS, FC",
  "vdsSpecs" : [ {
    "isUsedByNsxt" : true,
    "name" : "string",
    "niocBandwidthAllocationSpecs" : [ {
      "niocTrafficResourceAllocation" : {
        "limit" : 0,
        "reservation" : 0
      },
      "type" : "string"
    } ],
    "portGroupSpecs" : [ {
      "name" : "string",
      "transportType" : "One among: VSAN, VMOTION, MANAGEMENT, PUBLIC, NFS"
    } ]
  } ]
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.19. Delete a Cluster from a Domain if it has been previously initialized for deletion

DELETE /v1/clusters/{id}

3.19.1. Parameters

Type Name Description Schema

Path

id
required

Cluster ID

string

3.19.2. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

404

Not Found

500

InternalServerError

3.19.3. Consumes

  • application/json

3.19.4. Produces

  • application/json

3.19.5. Tags

  • Clusters

3.19.7. Example HTTP response

Response 200
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.20. 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}

3.20.1. Parameters

Type Name Description Schema

Path

id
required

Cluster ID

string

Body

clusterUpdateSpec
required

Cluster Update Data

3.20.2. Responses

HTTP Code Description Schema

200

Ok

202

Accepted

400

Bad Request

404

Not Found

500

InternalServerError

3.20.3. Consumes

  • application/json

3.20.4. Produces

  • application/json

3.20.5. Tags

  • Clusters

3.20.6. Example HTTP request

Request path
/v1/clusters/string
Request body
{
  "clusterCompactionSpec" : {
    "force" : true,
    "hosts" : [ {
      "fqdn" : "string",
      "id" : "string",
      "ipAddress" : "string"
    } ]
  },
  "clusterExpansionSpec" : {
    "hostSpecs" : [ {
      "azName" : "string",
      "hostName" : "string",
      "hostNetworkSpec" : {
        "vmNics" : [ {
          "id" : "string",
          "moveToNvds" : true,
          "vdsName" : "string"
        } ]
      },
      "id" : "string",
      "ipAddress" : "string",
      "licenseKey" : "string",
      "password" : "string",
      "username" : "string"
    } ],
    "interRackExpansion" : true,
    "vsanNetworkSpecs" : [ {
      "vsanCidr" : "string",
      "vsanGatewayIP" : "string"
    } ],
    "witnessSpec" : {
      "fqdn" : "string",
      "vsanCidr" : "string",
      "vsanIp" : "string"
    }
  },
  "clusterStretchSpec" : {
    "hostSpecs" : [ {
      "azName" : "string",
      "hostName" : "string",
      "hostNetworkSpec" : {
        "vmNics" : [ {
          "id" : "string",
          "moveToNvds" : true,
          "vdsName" : "string"
        } ]
      },
      "id" : "string",
      "ipAddress" : "string",
      "licenseKey" : "string",
      "password" : "string",
      "username" : "string"
    } ],
    "isEdgeClusterConfiguredForMultiAZ" : true,
    "secondaryAzOverlayVlanId" : 0,
    "vsanNetworkSpecs" : [ {
      "vsanCidr" : "string",
      "vsanGatewayIP" : "string"
    } ],
    "witnessSpec" : {
      "fqdn" : "string",
      "vsanCidr" : "string",
      "vsanIp" : "string"
    }
  },
  "clusterUnstretchSpec" : { },
  "markForDeletion" : true,
  "prepareForStretch" : true
}

3.20.7. Example HTTP response

Response 200
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.21. Get all host criteria

GET /v1/clusters/{id}/hosts/criteria

3.21.1. Parameters

Type Name Description Schema

Path

id
required

Cluster ID

string

3.21.2. Responses

HTTP Code Description Schema

200

Ok

3.21.3. Consumes

  • application/json

3.21.4. Produces

  • application/json

3.21.5. Tags

  • Clusters

3.21.6. Example HTTP request

Request path
/v1/clusters/string/hosts/criteria

3.21.7. Example HTTP response

Response 200
{
  "elements" : [ {
    "arguments" : {
      "string" : "string"
    },
    "description" : "string",
    "name" : "One among: HOST_COMPATIBLE_WITH_CLUSTER_USING_PNICS, UNMANAGED_HOSTS_IN_VCENTER"
  } ]
}

3.22. Get a criterion to query for host

GET /v1/clusters/{id}/hosts/criteria/{name}

3.22.1. Parameters

Type Name Description Schema

Path

id
required

Cluster ID

string

Path

name
required

Criteria Name

string

3.22.2. Responses

HTTP Code Description Schema

200

Ok

404

Criterion Not Found

3.22.3. Consumes

  • application/json

3.22.4. Produces

  • application/json

3.22.5. Tags

  • Clusters

3.22.6. Example HTTP request

Request path
/v1/clusters/string/hosts/criteria/string

3.22.7. Example HTTP response

Response 200
{
  "arguments" : {
    "string" : "string"
  },
  "description" : "string",
  "name" : "One among: HOST_COMPATIBLE_WITH_CLUSTER_USING_PNICS, UNMANAGED_HOSTS_IN_VCENTER"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.23. Post a host query

POST /v1/clusters/{id}/hosts/queries

3.23.1. Parameters

Type Name Description Schema

Path

id
required

Cluster ID

string

Body

hostCriterion
required

hostCriterion

3.23.2. Responses

HTTP Code Description Schema

200

Ok

400

Bad Request

500

Internal Server Error

3.23.3. Consumes

  • application/json

3.23.4. Produces

  • application/json

3.23.5. Tags

  • Clusters

3.23.6. 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"
}

3.23.7. Example HTTP response

Response 200
{
  "queryInfo" : {
    "completed" : true,
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "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"
      } ],
      "memory" : {
        "totalCapacityMB" : 0.0,
        "usedCapacityMB" : 0.0
      },
      "networkpool" : {
        "id" : "string",
        "name" : "string"
      },
      "physicalNics" : [ {
        "deviceName" : "string",
        "macAddress" : "string"
      } ],
      "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.24. Validate the input spec for operations on a cluster

POST /v1/clusters/{id}/validations

3.24.1. Parameters

Type Name Description Schema

Path

id
required

Cluster ID

string

Body

clusterUpdateSpec
required

clusterUpdateSpec

3.24.2. Responses

HTTP Code Description Schema

200

Ok

400

Bad Request

404

Not Found

500

InternalServerError

3.24.3. Consumes

  • application/json

3.24.4. Produces

  • application/json

3.24.5. Tags

  • Clusters

3.24.6. Example HTTP request

Request path
/v1/clusters/string/validations
Request body
{
  "clusterCompactionSpec" : {
    "force" : true,
    "hosts" : [ {
      "fqdn" : "string",
      "id" : "string",
      "ipAddress" : "string"
    } ]
  },
  "clusterExpansionSpec" : {
    "hostSpecs" : [ {
      "azName" : "string",
      "hostName" : "string",
      "hostNetworkSpec" : {
        "vmNics" : [ {
          "id" : "string",
          "moveToNvds" : true,
          "vdsName" : "string"
        } ]
      },
      "id" : "string",
      "ipAddress" : "string",
      "licenseKey" : "string",
      "password" : "string",
      "username" : "string"
    } ],
    "interRackExpansion" : true,
    "vsanNetworkSpecs" : [ {
      "vsanCidr" : "string",
      "vsanGatewayIP" : "string"
    } ],
    "witnessSpec" : {
      "fqdn" : "string",
      "vsanCidr" : "string",
      "vsanIp" : "string"
    }
  },
  "clusterStretchSpec" : {
    "hostSpecs" : [ {
      "azName" : "string",
      "hostName" : "string",
      "hostNetworkSpec" : {
        "vmNics" : [ {
          "id" : "string",
          "moveToNvds" : true,
          "vdsName" : "string"
        } ]
      },
      "id" : "string",
      "ipAddress" : "string",
      "licenseKey" : "string",
      "password" : "string",
      "username" : "string"
    } ],
    "isEdgeClusterConfiguredForMultiAZ" : true,
    "secondaryAzOverlayVlanId" : 0,
    "vsanNetworkSpecs" : [ {
      "vsanCidr" : "string",
      "vsanGatewayIP" : "string"
    } ],
    "witnessSpec" : {
      "fqdn" : "string",
      "vsanCidr" : "string",
      "vsanIp" : "string"
    }
  },
  "clusterUnstretchSpec" : { },
  "markForDeletion" : true,
  "prepareForStretch" : true
}

3.24.7. Example HTTP response

Response 200
{
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "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",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: SUCCEEDED, FAILED",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: SUCCEEDED, FAILED",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.25. Get the Credentials

GET /v1/credentials

3.25.1. Description

Get the Credentials

3.25.2. Parameters

Type Name Description Schema

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

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, LCM_REPO, VRA, VRSLCM, DEPOT_USER, VXRAIL_MANAGER, AD, BACKUP

string

3.25.3. Responses

HTTP Code Description Schema

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

500

Internal Server Error

3.25.4. Consumes

  • application/json

3.25.5. Produces

  • application/json

3.25.6. Tags

  • Credentials

3.25.8. Example HTTP response

Response 200
{
  "elements" : [ {
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "credentialType" : "One among: SSO, SSH, API, BASIC_AUTH, ADMINISTRATOR, FTP, JDBC, LDAP_DOMAIN_ADMIN, LDAP_READ_WRITE_ACCOUNT, VDI_ADMIN, SQL_SUPER_USER, SQL_DB_OWNER, AUDIT, SERVICE_ACCOUNT",
    "id" : "string",
    "modificationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "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, LCM_REPO, VRA, VRSLCM, DEPOT_USER, VXRAIL_MANAGER, AD, BACKUP",
      "serviceType" : "One among: ESXI, VCENTER, PSC, NSX_MANAGER, NSX_CONTROLLER, NSX_EDGE, NSXT_MANAGER, NSXT_EDGE, VRLI, VROPS, LCM_REPO, VRA, VRSLCM, DEPOT_USER, VXRAIL_MANAGER, AD, BACKUP",
      "targetType" : "One among: ESXI, VCENTER, PSC, NSX_MANAGER, NSX_CONTROLLER, NSX_EDGE, NSXT_MANAGER, NSXT_EDGE, VRLI, VROPS, LCM_REPO, VRA, VRSLCM, DEPOT_USER, VXRAIL_MANAGER, AD, BACKUP"
    },
    "username" : "string"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.26. Update or rotate passwords for a list of resources

PATCH /v1/credentials

3.26.1. Description

Update passwords for given list of resources by supplying new passwords or rotate the passwords using system generated passwords

3.26.2. Parameters

Type Name Description Schema

Body

credentialsUpdateSpec
required

credentialsUpdateSpec

3.26.3. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

401

Unauthorized

403

Forbidden

500

Internal Server Error

3.26.4. Consumes

  • application/json

3.26.5. Produces

  • application/json

3.26.6. Tags

  • Credentials

3.26.7. Example HTTP request

Request path
/v1/credentials
Request body
{
  "elements" : [ {
    "credentials" : [ {
      "credentialType" : "One among: SSO, SSH, API, BASIC_AUTH, ADMINISTRATOR, FTP, JDBC, LDAP_DOMAIN_ADMIN, LDAP_READ_WRITE_ACCOUNT, VDI_ADMIN, SQL_SUPER_USER, SQL_DB_OWNER, AUDIT, SERVICE_ACCOUNT",
      "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, LCM_REPO, VRA, VRSLCM, DEPOT_USER, VXRAIL_MANAGER, AD, BACKUP"
  } ],
  "operationType" : "One among: UPDATE, ROTATE"
}

3.26.8. Example HTTP response

Response 200
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.27. Fetch the credentials tasks

GET /v1/credentials/tasks

3.27.1. Description

Fetch all credentials tasks in reverse chronological order

3.27.2. Parameters

Type Name Description Schema

Query

limit
optional

The number of elements to be returned in the result

integer (int32)

3.27.3. Responses

HTTP Code Description Schema

200

OK

400

Bad Request

500

Internal Server Error

3.27.4. Consumes

  • application/json

3.27.5. Produces

  • application/json

3.27.6. Tags

  • Credentials

3.27.8. Example HTTP response

Response 200
{
  "elements" : [ {
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "id" : "string",
    "name" : "string",
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, USER_CANCELLED, INCONSISTENT",
    "subTasks" : [ {
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "credentialType" : "string",
      "dependentSubTasks" : [ {
        "creationTimestamp" : {
          "epochSecond" : 0,
          "nano" : 0
        },
        "credentialType" : "string",
        "dependentSubTasks" : [ "..." ],
        "description" : "string",
        "entityType" : "string",
        "errors" : [ {
          "arguments" : [ "string" ],
          "causes" : [ {
            "message" : "string",
            "type" : "string"
          } ],
          "context" : {
            "string" : "string"
          },
          "errorCode" : "string",
          "message" : "string",
          "nestedErrors" : [ "..." ],
          "referenceToken" : "string",
          "remediationMessage" : "string"
        } ],
        "name" : "string",
        "newPassword" : "string",
        "oldPassword" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, USER_CANCELLED, INCONSISTENT",
        "username" : "string"
      } ],
      "description" : "string",
      "entityType" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "newPassword" : "string",
      "oldPassword" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, USER_CANCELLED, INCONSISTENT",
      "username" : "string"
    } ],
    "type" : "One among: UPDATE, ROTATE"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.28. Fetch a credentials task

GET /v1/credentials/tasks/{id}

3.28.1. Description

Fetch credentials task for a given ID

3.28.2. Parameters

Type Name Description Schema

Path

id
required

The ID of the credentials task

string

3.28.3. Responses

HTTP Code Description Schema

200

OK

400

Bad Request

500

Internal Server Error

3.28.4. Consumes

  • application/json

3.28.5. Produces

  • application/json

3.28.6. Tags

  • Credentials

3.28.7. Example HTTP request

Request path
/v1/credentials/tasks/string

3.28.8. Example HTTP response

Response 200
{
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "id" : "string",
  "name" : "string",
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, USER_CANCELLED, INCONSISTENT",
  "subTasks" : [ {
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "credentialType" : "string",
    "dependentSubTasks" : [ {
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "credentialType" : "string",
      "dependentSubTasks" : [ "..." ],
      "description" : "string",
      "entityType" : "string",
      "errors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "name" : "string",
      "newPassword" : "string",
      "oldPassword" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, USER_CANCELLED, INCONSISTENT",
      "username" : "string"
    } ],
    "description" : "string",
    "entityType" : "string",
    "errors" : [ "..." ],
    "name" : "string",
    "newPassword" : "string",
    "oldPassword" : "string",
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, USER_CANCELLED, INCONSISTENT",
    "username" : "string"
  } ],
  "type" : "One among: UPDATE, ROTATE"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.29. Cancel a failed credentials task for a given ID

DELETE /v1/credentials/tasks/{id}

3.29.1. Description

Cancel a failed credentials task for a given ID

3.29.2. Parameters

Type Name Description Schema

Path

id
required

Task ID of the failed operation required to be cancelled

string

3.29.3. Responses

HTTP Code Description Schema

200

OK

204

No content

400

Bad Request

500

Internal Server Error

3.29.4. Consumes

  • application/json

3.29.5. Produces

  • application/json

3.29.6. Tags

  • Credentials

3.29.7. Example HTTP request

Request path
/v1/credentials/tasks/string

3.29.8. Example HTTP response

Response 200
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 204
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.30. Retry a failed credentials task for a given ID

PATCH /v1/credentials/tasks/{id}

3.30.1. Description

Retry a failed credentials task for a given ID

3.30.2. Parameters

Type Name Description Schema

Path

id
required

Task ID of the failed operation that is to be retried

string

Body

credentialsUpdateSpec
required

credentialsUpdateSpec

3.30.3. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

401

Unauthorized

403

Forbidden

500

Internal Server Error

3.30.4. Consumes

  • application/json

3.30.5. Produces

  • application/json

3.30.6. Tags

  • Credentials

3.30.7. Example HTTP request

Request path
/v1/credentials/tasks/string
Request body
{
  "elements" : [ {
    "credentials" : [ {
      "credentialType" : "One among: SSO, SSH, API, BASIC_AUTH, ADMINISTRATOR, FTP, JDBC, LDAP_DOMAIN_ADMIN, LDAP_READ_WRITE_ACCOUNT, VDI_ADMIN, SQL_SUPER_USER, SQL_DB_OWNER, AUDIT, SERVICE_ACCOUNT",
      "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, LCM_REPO, VRA, VRSLCM, DEPOT_USER, VXRAIL_MANAGER, AD, BACKUP"
  } ],
  "operationType" : "One among: UPDATE, ROTATE"
}

3.30.8. Example HTTP response

Response 200
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.31. Fetch resource credentials for a given credentials task ID

GET /v1/credentials/tasks/{id}/resource-credentials

3.31.1. Description

Fetch resource credentials for a given credentials task ID

3.31.2. Parameters

Type Name Description Schema

Path

id
required

The ID of the credentials task

string

3.31.3. Responses

HTTP Code Description Schema

200

OK

400

Bad Request

500

Internal Server Error

3.31.4. Consumes

  • application/json

3.31.5. Produces

  • application/json

3.31.6. Tags

  • Credentials

3.31.7. Example HTTP request

Request path
/v1/credentials/tasks/string/resource-credentials

3.31.8. Example HTTP response

Response 200
[ {
  "credentials" : [ {
    "credentialType" : "One among: SSO, SSH, API, BASIC_AUTH, ADMINISTRATOR, FTP, JDBC, LDAP_DOMAIN_ADMIN, LDAP_READ_WRITE_ACCOUNT, VDI_ADMIN, SQL_SUPER_USER, SQL_DB_OWNER, AUDIT, SERVICE_ACCOUNT",
    "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, LCM_REPO, VRA, VRSLCM, DEPOT_USER, VXRAIL_MANAGER, AD, BACKUP"
} ]
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.32. getCredentials

GET /v1/credentials/ui

3.32.1. Parameters

Type Name Description Schema

Query

domainName
optional

domainName

string

Query

resourceIp
optional

resourceIp

string

Query

resourceName
optional

resourceName

string

Query

resourceType
optional

resourceType

string

3.32.2. Responses

HTTP Code Description Schema

200

OK

3.32.3. Consumes

  • application/json

3.32.4. Produces

  • application/json

3.32.5. Tags

  • Credentials

3.32.7. Example HTTP response

Response 200
{
  "elements" : [ {
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "credentialType" : "One among: SSO, SSH, API, BASIC_AUTH, ADMINISTRATOR, FTP, JDBC, LDAP_DOMAIN_ADMIN, LDAP_READ_WRITE_ACCOUNT, VDI_ADMIN, SQL_SUPER_USER, SQL_DB_OWNER, AUDIT, SERVICE_ACCOUNT",
    "id" : "string",
    "modificationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "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, LCM_REPO, VRA, VRSLCM, DEPOT_USER, VXRAIL_MANAGER, AD, BACKUP",
      "serviceType" : "One among: ESXI, VCENTER, PSC, NSX_MANAGER, NSX_CONTROLLER, NSX_EDGE, NSXT_MANAGER, NSXT_EDGE, VRLI, VROPS, LCM_REPO, VRA, VRSLCM, DEPOT_USER, VXRAIL_MANAGER, AD, BACKUP",
      "targetType" : "One among: ESXI, VCENTER, PSC, NSX_MANAGER, NSX_CONTROLLER, NSX_EDGE, NSXT_MANAGER, NSXT_EDGE, VRLI, VROPS, LCM_REPO, VRA, VRSLCM, DEPOT_USER, VXRAIL_MANAGER, AD, BACKUP"
    },
    "username" : "string"
  } ]
}

3.33. Get Credential for the given ID

GET /v1/credentials/{id}

3.33.1. Description

Get Credential for the given ID

3.33.2. Parameters

Type Name Description Schema

Path

id
required

The ID of the credential

string

3.33.3. Responses

HTTP Code Description Schema

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

500

Internal Server Error

3.33.4. Consumes

  • application/json

3.33.5. Produces

  • application/json

3.33.6. Tags

  • Credentials

3.33.8. Example HTTP response

Response 200
{
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "credentialType" : "One among: SSO, SSH, API, BASIC_AUTH, ADMINISTRATOR, FTP, JDBC, LDAP_DOMAIN_ADMIN, LDAP_READ_WRITE_ACCOUNT, VDI_ADMIN, SQL_SUPER_USER, SQL_DB_OWNER, AUDIT, SERVICE_ACCOUNT",
  "id" : "string",
  "modificationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "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, LCM_REPO, VRA, VRSLCM, DEPOT_USER, VXRAIL_MANAGER, AD, BACKUP",
    "serviceType" : "One among: ESXI, VCENTER, PSC, NSX_MANAGER, NSX_CONTROLLER, NSX_EDGE, NSXT_MANAGER, NSXT_EDGE, VRLI, VROPS, LCM_REPO, VRA, VRSLCM, DEPOT_USER, VXRAIL_MANAGER, AD, BACKUP",
    "targetType" : "One among: ESXI, VCENTER, PSC, NSX_MANAGER, NSX_CONTROLLER, NSX_EDGE, NSXT_MANAGER, NSXT_EDGE, VRLI, VROPS, LCM_REPO, VRA, VRSLCM, DEPOT_USER, VXRAIL_MANAGER, AD, BACKUP"
  },
  "username" : "string"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.34. Create a Domain

POST /v1/domains

3.34.1. Parameters

Type Name Description Schema

Body

domainCreationSpec
required

Domain creation data

3.34.2. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

InternalServerError

3.34.3. Consumes

  • application/json

3.34.4. Produces

  • application/json

3.34.5. Tags

  • Domains

3.34.6. 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, 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"
        }
      },
      "hostSpecs" : [ {
        "azName" : "string",
        "hostName" : "string",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "string",
            "moveToNvds" : true,
            "vdsName" : "string"
          } ]
        },
        "id" : "string",
        "ipAddress" : "string",
        "licenseKey" : "string",
        "password" : "string",
        "username" : "string"
      } ],
      "name" : "string",
      "networkSpec" : {
        "nsxClusterSpec" : {
          "nsxTClusterSpec" : {
            "geneveVlanId" : 0
          }
        },
        "vdsSpecs" : [ {
          "isUsedByNsxt" : true,
          "name" : "string",
          "niocBandwidthAllocationSpecs" : [ {
            "niocTrafficResourceAllocation" : {
              "limit" : 0,
              "reservation" : 0
            },
            "type" : "string"
          } ],
          "portGroupSpecs" : [ {
            "name" : "string",
            "transportType" : "One among: VSAN, VMOTION, MANAGEMENT, PUBLIC, NFS"
          } ]
        } ]
      },
      "vxRailDetails" : {
        "adminCredentials" : {
          "credentialType" : "One among: SSH",
          "password" : "string",
          "username" : "string"
        },
        "rootCredentials" : {
          "credentialType" : "One among: SSH",
          "password" : "string",
          "username" : "string"
        }
      }
    } ]
  },
  "domainName" : "string",
  "nsxTSpec" : {
    "licenseKey" : "string",
    "nsxManagerAdminPassword" : "string",
    "nsxManagerSpecs" : [ {
      "name" : "string",
      "networkDetailsSpec" : {
        "dnsName" : "string",
        "gateway" : "string",
        "ipAddress" : "string",
        "subnetMask" : "string"
      }
    } ],
    "vip" : "string",
    "vipFqdn" : "string"
  },
  "vcenterSpec" : {
    "datacenterName" : "string",
    "licenseKey" : "string",
    "name" : "string",
    "networkDetailsSpec" : {
      "dnsName" : "string",
      "gateway" : "string",
      "ipAddress" : "string",
      "subnetMask" : "string"
    },
    "rootPassword" : "string"
  }
}

3.34.7. Example HTTP response

Response 200
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.35. Get the Domains

GET /v1/domains

3.35.1. Parameters

Type Name Description Schema

Query

type
optional

The type of the domain

string

3.35.2. Responses

HTTP Code Description Schema

200

Ok

400

Bad Request

500

InternalServerError

3.35.3. Consumes

  • application/json

3.35.4. Produces

  • application/json

3.35.5. Tags

  • Domains

3.35.7. Example HTTP response

Response 200
{
  "clusters" : [ {
    "id" : "string"
  } ],
  "id" : "string",
  "name" : "string",
  "type" : "string",
  "vcenters" : [ {
    "fqdn" : "string",
    "id" : "string"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.36. Validate the input spec for domains operations

POST /v1/domains/validations

3.36.1. Parameters

Type Name Description Schema

Body

domainCreationSpec
required

Domain Creation Spec

3.36.2. Responses

HTTP Code Description Schema

200

Ok

400

Bad Request

500

InternalServerError

3.36.3. Consumes

  • application/json

3.36.4. Produces

  • application/json

3.36.5. Tags

  • Domains

3.36.6. 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, 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"
        }
      },
      "hostSpecs" : [ {
        "azName" : "string",
        "hostName" : "string",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "string",
            "moveToNvds" : true,
            "vdsName" : "string"
          } ]
        },
        "id" : "string",
        "ipAddress" : "string",
        "licenseKey" : "string",
        "password" : "string",
        "username" : "string"
      } ],
      "name" : "string",
      "networkSpec" : {
        "nsxClusterSpec" : {
          "nsxTClusterSpec" : {
            "geneveVlanId" : 0
          }
        },
        "vdsSpecs" : [ {
          "isUsedByNsxt" : true,
          "name" : "string",
          "niocBandwidthAllocationSpecs" : [ {
            "niocTrafficResourceAllocation" : {
              "limit" : 0,
              "reservation" : 0
            },
            "type" : "string"
          } ],
          "portGroupSpecs" : [ {
            "name" : "string",
            "transportType" : "One among: VSAN, VMOTION, MANAGEMENT, PUBLIC, NFS"
          } ]
        } ]
      },
      "vxRailDetails" : {
        "adminCredentials" : {
          "credentialType" : "One among: SSH",
          "password" : "string",
          "username" : "string"
        },
        "rootCredentials" : {
          "credentialType" : "One among: SSH",
          "password" : "string",
          "username" : "string"
        }
      }
    } ]
  },
  "domainName" : "string",
  "nsxTSpec" : {
    "licenseKey" : "string",
    "nsxManagerAdminPassword" : "string",
    "nsxManagerSpecs" : [ {
      "name" : "string",
      "networkDetailsSpec" : {
        "dnsName" : "string",
        "gateway" : "string",
        "ipAddress" : "string",
        "subnetMask" : "string"
      }
    } ],
    "vip" : "string",
    "vipFqdn" : "string"
  },
  "vcenterSpec" : {
    "datacenterName" : "string",
    "licenseKey" : "string",
    "name" : "string",
    "networkDetailsSpec" : {
      "dnsName" : "string",
      "gateway" : "string",
      "ipAddress" : "string",
      "subnetMask" : "string"
    },
    "rootPassword" : "string"
  }
}

3.36.7. Example HTTP response

Response 200
{
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "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",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: SUCCEEDED, FAILED",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: SUCCEEDED, FAILED",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.37. Get the status of the validations for domain related operations

GET /v1/domains/validations/{id}

3.37.1. Description

Gets the status of given domain operations validation workflow by given validation id

3.37.2. Parameters

Type Name Description Schema

Path

id
required

VxRail Domain validation id

string

3.37.3. Responses

HTTP Code Description Schema

200

OK

400

Bad Request

404

Not Found

3.37.4. Consumes

  • application/json

3.37.5. Produces

  • application/json

3.37.6. Tags

  • Domains

3.37.7. Example HTTP request

Request path
/v1/domains/validations/string

3.37.8. Example HTTP response

Response 200
{
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "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",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: SUCCEEDED, FAILED",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: SUCCEEDED, FAILED",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.38. Get all cluster criteria

GET /v1/domains/{domainId}/clusters/criteria

3.38.1. Parameters

Type Name Description Schema

Path

domainId
required

Domain ID

string

3.38.2. Responses

HTTP Code Description Schema

200

Ok

3.38.3. Consumes

  • application/json

3.38.4. Produces

  • application/json

3.38.5. Tags

  • Domains

3.38.6. Example HTTP request

Request path
/v1/domains/string/clusters/criteria

3.38.7. Example HTTP response

Response 200
{
  "elements" : [ {
    "arguments" : {
      "string" : "string"
    },
    "description" : "string",
    "name" : "One among: UNMANAGED_CLUSTERS_IN_VCENTER, UNMANAGED_CLUSTER_IN_VCENTER"
  } ]
}

3.39. Get a criterion to query for cluster

GET /v1/domains/{domainId}/clusters/criteria/{name}

3.39.1. Parameters

Type Name Description Schema

Path

domainId
required

Domain ID

string

Path

name
required

Criteria Name

string

3.39.2. Responses

HTTP Code Description Schema

200

Ok

404

Criterion Not Found

3.39.3. Consumes

  • application/json

3.39.4. Produces

  • application/json

3.39.5. Tags

  • Domains

3.39.6. Example HTTP request

Request path
/v1/domains/string/clusters/criteria/string

3.39.7. 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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.40. Post clusters query

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

3.40.1. Parameters

Type Name Description Schema

Path

domainId
required

Domain ID

string

Body

clusterCriterion
required

clusterCriterion

3.40.2. Responses

HTTP Code Description Schema

200

Ok

400

Bad Request

500

Internal Server Error

3.40.3. Consumes

  • application/json

3.40.4. Produces

  • application/json

3.40.5. Tags

  • Domains

3.40.6. 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"
}

3.40.7. Example HTTP response

Response 200
{
  "queryInfo" : {
    "completed" : true,
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "failure" : true,
    "processing" : true,
    "status" : "string"
  },
  "result" : {
    "elements" : [ {
      "hosts" : [ {
        "fqdn" : "string",
        "id" : "string",
        "ipAddress" : "string"
      } ],
      "id" : "string",
      "isDefault" : true,
      "isStretched" : true,
      "name" : "string",
      "primaryDatastoreName" : "string",
      "primaryDatastoreType" : "One among: VSAN, NFS, FC",
      "vdsSpecs" : [ {
        "isUsedByNsxt" : true,
        "name" : "string",
        "niocBandwidthAllocationSpecs" : [ {
          "niocTrafficResourceAllocation" : {
            "limit" : 0,
            "reservation" : 0
          },
          "type" : "string"
        } ],
        "portGroupSpecs" : [ {
          "name" : "string",
          "transportType" : "One among: VSAN, VMOTION, MANAGEMENT, PUBLIC, NFS"
        } ]
      } ]
    } ]
  }
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.41. Get clusters query response

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

3.41.1. Parameters

Type Name Description Schema

Path

domainId
required

Domain ID

string

Path

queryId
required

Query ID

string

3.41.2. Responses

HTTP Code Description Schema

200

Ok

400

Bad Request

404

Query Not Found

500

Internal Server Error

3.41.3. Consumes

  • application/json

3.41.4. Produces

  • application/json

3.41.5. Tags

  • Domains

3.41.6. Example HTTP request

Request path
/v1/domains/string/clusters/queries/string

3.41.7. Example HTTP response

Response 200
{
  "queryInfo" : {
    "completed" : true,
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "failure" : true,
    "processing" : true,
    "status" : "string"
  },
  "result" : {
    "elements" : [ {
      "hosts" : [ {
        "fqdn" : "string",
        "id" : "string",
        "ipAddress" : "string"
      } ],
      "id" : "string",
      "isDefault" : true,
      "isStretched" : true,
      "name" : "string",
      "primaryDatastoreName" : "string",
      "primaryDatastoreType" : "One among: VSAN, NFS, FC",
      "vdsSpecs" : [ {
        "isUsedByNsxt" : true,
        "name" : "string",
        "niocBandwidthAllocationSpecs" : [ {
          "niocTrafficResourceAllocation" : {
            "limit" : 0,
            "reservation" : 0
          },
          "type" : "string"
        } ],
        "portGroupSpecs" : [ {
          "name" : "string",
          "transportType" : "One among: VSAN, VMOTION, MANAGEMENT, PUBLIC, NFS"
        } ]
      } ]
    } ]
  }
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.42. Post a cluster query

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

3.42.1. Parameters

Type Name Description Schema

Path

clusterName
required

Cluster Name

string

Path

domainId
required

Domain ID

string

Body

clusterCriterion
required

clusterCriterion

3.42.2. Responses

HTTP Code Description Schema

200

Ok

400

Bad Request

500

Internal Server Error

3.42.3. Consumes

  • application/json

3.42.4. Produces

  • application/json

3.42.5. Tags

  • Domains

3.42.6. 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"
}

3.42.7. Example HTTP response

Response 200
{
  "queryInfo" : {
    "completed" : true,
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "failure" : true,
    "processing" : true,
    "status" : "string"
  },
  "result" : {
    "elements" : [ {
      "hosts" : [ {
        "fqdn" : "string",
        "id" : "string",
        "ipAddress" : "string"
      } ],
      "id" : "string",
      "isDefault" : true,
      "isStretched" : true,
      "name" : "string",
      "primaryDatastoreName" : "string",
      "primaryDatastoreType" : "One among: VSAN, NFS, FC",
      "vdsSpecs" : [ {
        "isUsedByNsxt" : true,
        "name" : "string",
        "niocBandwidthAllocationSpecs" : [ {
          "niocTrafficResourceAllocation" : {
            "limit" : 0,
            "reservation" : 0
          },
          "type" : "string"
        } ],
        "portGroupSpecs" : [ {
          "name" : "string",
          "transportType" : "One among: VSAN, VMOTION, MANAGEMENT, PUBLIC, NFS"
        } ]
      } ]
    } ]
  }
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.43. Get cluster query response

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

3.43.1. Parameters

Type Name Description Schema

Path

clusterName
required

Cluster Name

string

Path

domainId
required

Domain ID

string

Path

queryId
required

Query ID

string

3.43.2. Responses

HTTP Code Description Schema

200

Ok

400

Bad Request

404

Query Not Found

500

Internal Server Error

3.43.3. Consumes

  • application/json

3.43.4. Produces

  • application/json

3.43.5. Tags

  • Domains

3.43.6. Example HTTP request

Request path
/v1/domains/string/clusters/string/queries/string

3.43.7. Example HTTP response

Response 200
{
  "queryInfo" : {
    "completed" : true,
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    },
    "failure" : true,
    "processing" : true,
    "status" : "string"
  },
  "result" : {
    "elements" : [ {
      "hosts" : [ {
        "fqdn" : "string",
        "id" : "string",
        "ipAddress" : "string"
      } ],
      "id" : "string",
      "isDefault" : true,
      "isStretched" : true,
      "name" : "string",
      "primaryDatastoreName" : "string",
      "primaryDatastoreType" : "One among: VSAN, NFS, FC",
      "vdsSpecs" : [ {
        "isUsedByNsxt" : true,
        "name" : "string",
        "niocBandwidthAllocationSpecs" : [ {
          "niocTrafficResourceAllocation" : {
            "limit" : 0,
            "reservation" : 0
          },
          "type" : "string"
        } ],
        "portGroupSpecs" : [ {
          "name" : "string",
          "transportType" : "One among: VSAN, VMOTION, MANAGEMENT, PUBLIC, NFS"
        } ]
      } ]
    } ]
  }
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.44. Get latest generated certificate(s) in a domain.

GET /v1/domains/{domainName}/certificates

3.44.1. Description

Get latest generated certificate(s) in a domain.

3.44.2. Parameters

Type Name Description Schema

Path

domainName
required

The domain name

string

3.44.3. Responses

HTTP Code Description Schema

200

OK

404

Not Found

500

Internal server error

3.44.4. Consumes

  • application/json

3.44.5. Produces

  • application/json

3.44.6. Tags

  • Certificates

3.44.7. Example HTTP request

Request path
/v1/domains/string/certificates

3.44.8. 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" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "notBefore" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "numberOfDaysToExpire" : 0,
    "pemEncoded" : "string",
    "publicKey" : "string",
    "publicKeyAlgorithm" : "One among: RSA",
    "serialNumber" : "string",
    "signatureAlgorithm" : "string",
    "subject" : "string",
    "subjectAlternativeName" : [ "string" ],
    "thumbprint" : "string",
    "thumbprintAlgorithm" : "string",
    "version" : "string"
  } ]
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.45. Generate certificate(s) for the selected resource(s) in a domain

PUT /v1/domains/{domainName}/certificates

3.45.1. Description

Generate certificate(s) for the selected resource(s) in a domain. CA must be configured and CSR must be generated beforehand.

3.45.2. Parameters

Type Name Description Schema

Path

domainName
required

The domain name

string

Body

certificateGenerationSpec
required

certificateGenerationSpec

3.45.3. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad request

404

Not Found

409

Conflict

500

Internal server error

3.45.4. Consumes

  • application/json

3.45.5. Produces

  • application/json

3.45.6. Tags

  • Certificates

3.45.7. Example HTTP request

Request path
/v1/domains/string/certificates
Request body
{
  "caType" : "One among: OpenSSL, Microsoft",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "type" : "string"
  } ]
}

3.45.8. Example HTTP response

Response 200
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.46. Replace certificate(s) for the selected resource(s) in a domain

PATCH /v1/domains/{domainName}/certificates

3.46.1. Description

Replace certificate(s) for the selected resource(s) in a domain

3.46.2. Parameters

Type Name Description Schema

Path

domainName
required

The domain name

string

Body

certificateOperationSpec
required

certificateOperationSpec

3.46.3. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad request

403

Forbidden

404

Not Found

409

Conflict

500

Internal server error

3.46.4. Consumes

  • application/json

3.46.5. Produces

  • application/json

3.46.6. Tags

  • Certificates

3.46.7. Example HTTP request

Request path
/v1/domains/string/certificates
Request body
{
  "operationType" : "One among: INSTALL",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "type" : "string"
  } ]
}

3.46.8. Example HTTP response

Response 200
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.47. Upload certificates to the certificate store

PUT /v1/domains/{domainName}/certificates/uploads

3.47.1. Description

Upload certificates to the certificate store

3.47.2. Parameters

Type Name Description Schema

Path

domainName
required

The domain name

string

FormData

file
required

file

file

3.47.3. Responses

HTTP Code Description Schema

200

OK

object

400

Bad request.

404

Not Found

500

Internal server error

3.47.4. Consumes

  • multipart/form-data

3.47.5. Produces

  • application/json

3.47.6. Tags

  • Certificates

3.47.7. Example HTTP request

Request path
/v1/domains/string/certificates/uploads

3.47.8. Example HTTP response

Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.48. Get available CSR(s) in json format

GET /v1/domains/{domainName}/csrs

3.48.1. Description

Get available CSR(s) in json format

3.48.2. Parameters

Type Name Description Schema

Path

domainName
required

The domain name

string

3.48.3. Responses

HTTP Code Description Schema

200

OK

404

Not Found

500

Internal server error

3.48.4. Consumes

  • application/json

3.48.5. Produces

  • application/json

3.48.6. Tags

  • Certificates

3.48.7. Example HTTP request

Request path
/v1/domains/string/csrs

3.48.8. Example HTTP response

Response 200
{
  "elements" : [ {
    "csrEncodedContent" : "string",
    "resource" : {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    }
  } ]
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.49. Generate CSR(s)

PUT /v1/domains/{domainName}/csrs

3.49.1. Description

Generate CSR(s) for the selected resource(s) in the domain

3.49.2. Parameters

Type Name Description Schema

Path

domainName
required

The domain name

string

Body

csrsGenerationSpec
required

csrsGenerationSpec

3.49.3. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad request

404

Not Found

409

Conflict

500

Internal server error

3.49.4. Consumes

  • application/json

3.49.5. Produces

  • application/json

3.49.6. Tags

  • Certificates

3.49.7. 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",
    "type" : "string"
  } ]
}

3.49.8. Example HTTP response

Response 200
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.50. Download available CSR(s) in tar.gz format

GET /v1/domains/{domainName}/csrs/downloads

3.50.1. Description

Download available CSR(s) in tar.gz format

3.50.2. Parameters

Type Name Description Schema

Path

domainName
required

The domain name

string

3.50.3. Responses

HTTP Code Description Schema

200

OK

string (byte)

404

Not Found

500

Internal server error

3.50.4. Consumes

  • application/json

3.50.5. Produces

  • application/octet-stream

3.50.6. Tags

  • Certificates

3.50.7. Example HTTP request

Request path
/v1/domains/string/csrs/downloads

3.50.8. Example HTTP response

Response 200
"Ynl0ZQ=="
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.51. View certificate of all the resources in a domain

GET /v1/domains/{domainName}/resource-certificates

3.51.1. Description

View detailed metadata about the certificate(s) of all the resources in a domain

3.51.2. Parameters

Type Name Description Schema

Path

domainName
required

The domain name

string

3.51.3. Responses

HTTP Code Description Schema

200

OK

404

Not Found

500

Internal server error

3.51.4. Consumes

  • application/json

3.51.5. Produces

  • application/json

3.51.6. Tags

  • Certificates

3.51.7. Example HTTP request

Request path
/v1/domains/string/resource-certificates

3.51.8. 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" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "notBefore" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "numberOfDaysToExpire" : 0,
    "pemEncoded" : "string",
    "publicKey" : "string",
    "publicKeyAlgorithm" : "One among: RSA",
    "serialNumber" : "string",
    "signatureAlgorithm" : "string",
    "subject" : "string",
    "subjectAlternativeName" : [ "string" ],
    "thumbprint" : "string",
    "thumbprintAlgorithm" : "string",
    "version" : "string"
  } ]
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.52. Get a Domain

GET /v1/domains/{id}

3.52.1. Parameters

Type Name Description Schema

Path

id
required

Domain ID

string

3.52.2. Responses

HTTP Code Description Schema

200

Ok

404

Domain not found

500

InternalServerError

3.52.3. Consumes

  • application/json

3.52.4. Produces

  • application/json

3.52.5. Tags

  • Domains

3.52.7. Example HTTP response

Response 200
{
  "clusters" : [ {
    "id" : "string"
  } ],
  "id" : "string",
  "name" : "string",
  "type" : "string",
  "vcenters" : [ {
    "fqdn" : "string",
    "id" : "string"
  } ]
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.53. Delete a Domain if it has been previously initialized for deletion

DELETE /v1/domains/{id}

3.53.1. Parameters

Type Name Description Schema

Path

id
required

Domain ID

string

3.53.2. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

404

Not Found

500

InternalServerError

3.53.3. Consumes

  • application/json

3.53.4. Produces

  • application/json

3.53.5. Tags

  • Domains

3.53.7. Example HTTP response

Response 200
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.54. Update a Domain by marking for deletion

PATCH /v1/domains/{id}

3.54.1. Parameters

Type Name Description Schema

Path

id
required

Domain ID

string

Body

domainUpdateSpec
required

Domain Update Data

3.54.2. Responses

HTTP Code Description Schema

200

Ok

400

Bad Request

404

Not Found

500

InternalServerError

3.54.3. Consumes

  • application/json

3.54.4. Produces

  • application/json

3.54.5. Tags

  • Domains

3.54.6. 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, 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"
      }
    },
    "hostSpecs" : [ {
      "azName" : "string",
      "hostName" : "string",
      "hostNetworkSpec" : {
        "vmNics" : [ {
          "id" : "string",
          "moveToNvds" : true,
          "vdsName" : "string"
        } ]
      },
      "id" : "string",
      "ipAddress" : "string",
      "licenseKey" : "string",
      "password" : "string",
      "username" : "string"
    } ],
    "name" : "string",
    "networkSpec" : {
      "nsxClusterSpec" : {
        "nsxTClusterSpec" : {
          "geneveVlanId" : 0
        }
      },
      "vdsSpecs" : [ {
        "isUsedByNsxt" : true,
        "name" : "string",
        "niocBandwidthAllocationSpecs" : [ {
          "niocTrafficResourceAllocation" : {
            "limit" : 0,
            "reservation" : 0
          },
          "type" : "string"
        } ],
        "portGroupSpecs" : [ {
          "name" : "string",
          "transportType" : "One among: VSAN, VMOTION, MANAGEMENT, PUBLIC, NFS"
        } ]
      } ]
    },
    "vxRailDetails" : {
      "adminCredentials" : {
        "credentialType" : "One among: SSH",
        "password" : "string",
        "username" : "string"
      },
      "rootCredentials" : {
        "credentialType" : "One among: SSH",
        "password" : "string",
        "username" : "string"
      }
    }
  },
  "markForDeletion" : true,
  "nsxTSpec" : {
    "licenseKey" : "string",
    "nsxManagerAdminPassword" : "string",
    "nsxManagerSpecs" : [ {
      "name" : "string",
      "networkDetailsSpec" : {
        "dnsName" : "string",
        "gateway" : "string",
        "ipAddress" : "string",
        "subnetMask" : "string"
      }
    } ],
    "vip" : "string",
    "vipFqdn" : "string"
  }
}

3.54.7. Example HTTP response

Response 200
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.55. Get Endpoints of a Domain

GET /v1/domains/{id}/endpoints

3.55.1. Parameters

Type Name Description Schema

Path

id
required

Domain ID

string

3.55.2. Responses

HTTP Code Description Schema

200

Ok

404

Domain not found

500

InternalServerError

3.55.3. Consumes

  • application/json

3.55.4. Produces

  • application/json

3.55.5. Tags

  • Domains

3.55.6. Example HTTP request

Request path
/v1/domains/string/endpoints

3.55.7. Example HTTP response

Response 200
{
  "type" : "One among: PSC, VCENTER, NSX_MANAGER, NSX_T_MANAGER, VRLI, VRA, VROPS, WSA, VRSLCM",
  "url" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.56. Validate the input spec for domain update operations

POST /v1/domains/{id}/validations

3.56.1. Parameters

Type Name Description Schema

Path

id
required

Cluster ID

string

Body

domainUpdateSpec
required

Domain Update Operation Spec Validation

3.56.2. Responses

HTTP Code Description Schema

200

Ok

400

Bad Request

500

InternalServerError

3.56.3. Consumes

  • application/json

3.56.4. Produces

  • application/json

3.56.5. Tags

  • Domains

3.56.6. Example HTTP request

Request path
/v1/domains/string/validations
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, 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"
      }
    },
    "hostSpecs" : [ {
      "azName" : "string",
      "hostName" : "string",
      "hostNetworkSpec" : {
        "vmNics" : [ {
          "id" : "string",
          "moveToNvds" : true,
          "vdsName" : "string"
        } ]
      },
      "id" : "string",
      "ipAddress" : "string",
      "licenseKey" : "string",
      "password" : "string",
      "username" : "string"
    } ],
    "name" : "string",
    "networkSpec" : {
      "nsxClusterSpec" : {
        "nsxTClusterSpec" : {
          "geneveVlanId" : 0
        }
      },
      "vdsSpecs" : [ {
        "isUsedByNsxt" : true,
        "name" : "string",
        "niocBandwidthAllocationSpecs" : [ {
          "niocTrafficResourceAllocation" : {
            "limit" : 0,
            "reservation" : 0
          },
          "type" : "string"
        } ],
        "portGroupSpecs" : [ {
          "name" : "string",
          "transportType" : "One among: VSAN, VMOTION, MANAGEMENT, PUBLIC, NFS"
        } ]
      } ]
    },
    "vxRailDetails" : {
      "adminCredentials" : {
        "credentialType" : "One among: SSH",
        "password" : "string",
        "username" : "string"
      },
      "rootCredentials" : {
        "credentialType" : "One among: SSH",
        "password" : "string",
        "username" : "string"
      }
    }
  },
  "markForDeletion" : true,
  "nsxTSpec" : {
    "licenseKey" : "string",
    "nsxManagerAdminPassword" : "string",
    "nsxManagerSpecs" : [ {
      "name" : "string",
      "networkDetailsSpec" : {
        "dnsName" : "string",
        "gateway" : "string",
        "ipAddress" : "string",
        "subnetMask" : "string"
      }
    } ],
    "vip" : "string",
    "vipFqdn" : "string"
  }
}

3.56.7. Example HTTP response

Response 200
{
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "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",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: SUCCEEDED, FAILED",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: SUCCEEDED, FAILED",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.57. Create an Edge Cluster

POST /v1/edge-clusters

3.57.1. Parameters

Type Name Description Schema

Body

edgeCreationSpec
required

NSX-T Edge cluster creation data

3.57.2. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

InternalServerError

3.57.3. Consumes

  • application/json

3.57.4. Produces

  • application/json

3.57.5. Tags

  • NsxTEdgeClusters

3.57.6. 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: LARGE, MEDIUM, SMALL",
  "edgeNodeSpecs" : [ {
    "clusterId" : "string",
    "edgeNodeName" : "string",
    "edgeTep1IP" : "string",
    "edgeTep2IP" : "string",
    "edgeTepGateway" : "string",
    "edgeTepVlan" : 0,
    "interRackCluster" : true,
    "managementGateway" : "string",
    "managementIP" : "string",
    "uplinkNetwork" : [ {
      "asnPeer" : 0,
      "bgpPeerPassword" : "string",
      "peerIP" : "string",
      "uplinkInterfaceIP" : "string",
      "uplinkVlan" : 0
    } ]
  } ],
  "edgeRootPassword" : "string",
  "mtu" : 0,
  "tier0Name" : "string",
  "tier0RoutingType" : "One among: EBGP, STATIC",
  "tier0ServicesHighAvailability" : "One among: ACTIVE_ACTIVE, ACTIVE_STANDBY",
  "tier1Name" : "string"
}

3.57.7. Example HTTP response

Response 200
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.58. Get the Edge Clusters

GET /v1/edge-clusters

3.58.1. Responses

HTTP Code Description Schema

200

Ok

400

Bad Request

500

InternalServerError

3.58.2. Consumes

  • application/json

3.58.3. Produces

  • application/json

3.58.4. Tags

  • NsxTEdgeClusters

3.58.6. Example HTTP response

Response 200
{
  "elements" : [ {
    "clusters" : [ {
      "id" : "string"
    } ],
    "id" : "string",
    "name" : "string",
    "nsxtCluster" : {
      "id" : "string",
      "vip" : "string",
      "vipFqdn" : "string"
    }
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.59. Validate an Edge Cluster spec

POST /v1/edge-clusters/validations

3.59.1. Parameters

Type Name Description Schema

Body

edgeCreationSpec
required

NSX-T Edge cluster creation data to be validated

3.59.2. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

InternalServerError

3.59.3. Consumes

  • application/json

3.59.4. Produces

  • application/json

3.59.5. Tags

  • NsxTEdgeClusters

3.59.6. 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: LARGE, MEDIUM, SMALL",
  "edgeNodeSpecs" : [ {
    "clusterId" : "string",
    "edgeNodeName" : "string",
    "edgeTep1IP" : "string",
    "edgeTep2IP" : "string",
    "edgeTepGateway" : "string",
    "edgeTepVlan" : 0,
    "interRackCluster" : true,
    "managementGateway" : "string",
    "managementIP" : "string",
    "uplinkNetwork" : [ {
      "asnPeer" : 0,
      "bgpPeerPassword" : "string",
      "peerIP" : "string",
      "uplinkInterfaceIP" : "string",
      "uplinkVlan" : 0
    } ]
  } ],
  "edgeRootPassword" : "string",
  "mtu" : 0,
  "tier0Name" : "string",
  "tier0RoutingType" : "One among: EBGP, STATIC",
  "tier0ServicesHighAvailability" : "One among: ACTIVE_ACTIVE, ACTIVE_STANDBY",
  "tier1Name" : "string"
}

3.59.7. Example HTTP response

Response 200
{
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "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",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: SUCCEEDED, FAILED",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: SUCCEEDED, FAILED",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 202
{
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "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",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: SUCCEEDED, FAILED",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: SUCCEEDED, FAILED",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.60. Get the Edge Cluster spec validation

GET /v1/edge-clusters/validations/{id}

3.60.1. Parameters

Type Name Description Schema

Path

id
required

The validation ID

string

3.60.2. Responses

HTTP Code Description Schema

200

OK

400

Bad Request

500

Internal server error

No Content

3.60.3. Consumes

  • application/json

3.60.4. Produces

  • application/json

3.60.5. Tags

  • NsxTEdgeClusters

3.60.6. Example HTTP request

Request path
/v1/edge-clusters/validations/string

3.60.7. Example HTTP response

Response 200
{
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "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",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: SUCCEEDED, FAILED",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: SUCCEEDED, FAILED",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.61. Get an Edge Cluster

GET /v1/edge-clusters/{id}

3.61.1. Parameters

Type Name Description Schema

Path

id
required

Edge Cluster ID

string

3.61.2. Responses

HTTP Code Description Schema

200

Ok

404

Edge Cluster not found

500

InternalServerError

3.61.3. Consumes

  • application/json

3.61.4. Produces

  • application/json

3.61.5. Tags

  • NsxTEdgeClusters

3.61.6. Example HTTP request

Request path
/v1/edge-clusters/string

3.61.7. Example HTTP response

Response 200
{
  "clusters" : [ {
    "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.62. Commission the Hosts

POST /v1/hosts

3.62.1. Parameters

Type Name Description Schema

Body

hostCommissionSpecs
required

hostCommissionSpecs

< HostCommissionSpec > array

3.62.2. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

Internal server error

3.62.3. Consumes

  • application/json

3.62.4. Produces

  • application/json

3.62.5. Tags

  • Hosts

3.62.6. Example HTTP request

Request path
/v1/hosts
Request body
[ {
  "fqdn" : "string",
  "networkPoolId" : "string",
  "networkPoolName" : "string",
  "password" : "string",
  "storageType" : "One among: VSAN, NFS, VMFS_FC",
  "username" : "string"
} ]

3.62.7. Example HTTP response

Response 200
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.63. Get the Hosts

GET /v1/hosts

3.63.1. 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

3.63.2. Responses

HTTP Code Description Schema

200

Ok

400

Bad Request

500

Internal Server Error

3.63.3. Consumes

  • application/json

3.63.4. Produces

  • application/json

3.63.5. Tags

  • Hosts

3.63.7. 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"
    } ],
    "memory" : {
      "totalCapacityMB" : 0.0,
      "usedCapacityMB" : 0.0
    },
    "networkpool" : {
      "id" : "string",
      "name" : "string"
    },
    "physicalNics" : [ {
      "deviceName" : "string",
      "macAddress" : "string"
    } ],
    "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.64. Decommission the Hosts

DELETE /v1/hosts

3.64.1. Parameters

Type Name Description Schema

Body

hostDecommissionSpecs
required

hostDecommissionSpecs

3.64.2. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

Internal server error

No Content

3.64.3. Consumes

  • application/json

3.64.4. Produces

  • application/json

3.64.5. Tags

  • Hosts

3.64.6. Example HTTP request

Request path
/v1/hosts
Request body
[ {
  "fqdn" : "string"
} ]

3.64.7. Example HTTP response

Response 200
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.65. Get all criteria

GET /v1/hosts/criteria

3.65.1. Responses

HTTP Code Description Schema

200

Ok

3.65.2. Consumes

  • application/json

3.65.3. Produces

  • application/json

3.65.4. Tags

  • Hosts

3.65.6. Example HTTP response

Response 200
{
  "elements" : [ {
    "arguments" : {
      "string" : "string"
    },
    "description" : "string",
    "name" : "One among: HOST_COMPATIBLE_WITH_CLUSTER_USING_PNICS, UNMANAGED_HOSTS_IN_VCENTER"
  } ]
}

3.66. Get a criterion

GET /v1/hosts/criteria/{name}

3.66.1. Parameters

Type Name Description Schema

Path

name
required

name

string

3.66.2. Responses

HTTP Code Description Schema

200

Ok

404

Criterion Not Found

3.66.3. Consumes

  • application/json

3.66.4. Produces

  • application/json

3.66.5. Tags

  • Hosts

3.66.6. Example HTTP request

Request path
/v1/hosts/criteria/string

3.66.7. Example HTTP response

Response 200
{
  "arguments" : {
    "string" : "string"
  },
  "description" : "string",
  "name" : "One among: HOST_COMPATIBLE_WITH_CLUSTER_USING_PNICS, UNMANAGED_HOSTS_IN_VCENTER"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.67. Post a query

POST /v1/hosts/queries

3.67.1. Parameters

Type Name Description Schema

Body

hostCriterion
required

hostCriterion

3.67.2. Responses

HTTP Code Description Schema

200

Ok

400

Bad Request

500

Internal Server Error

3.67.3. Consumes

  • application/json

3.67.4. Produces

  • application/json

3.67.5. Tags

  • Hosts

3.67.6. 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"
}

3.67.7. Example HTTP response

Response 200
{
  "queryInfo" : {
    "completed" : true,
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "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"
      } ],
      "memory" : {
        "totalCapacityMB" : 0.0,
        "usedCapacityMB" : 0.0
      },
      "networkpool" : {
        "id" : "string",
        "name" : "string"
      },
      "physicalNics" : [ {
        "deviceName" : "string",
        "macAddress" : "string"
      } ],
      "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.68. Get query response

GET /v1/hosts/queries/{id}

3.68.1. Parameters

Type Name Description Schema

Path

id
required

id

string

3.68.2. Responses

HTTP Code Description Schema

200

Ok

400

Bad Request

404

Query Not Found

500

Internal Server Error

3.68.3. Consumes

  • application/json

3.68.4. Produces

  • application/json

3.68.5. Tags

  • Hosts

3.68.6. Example HTTP request

Request path
/v1/hosts/queries/string

3.68.7. Example HTTP response

Response 200
{
  "queryInfo" : {
    "completed" : true,
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "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"
      } ],
      "memory" : {
        "totalCapacityMB" : 0.0,
        "usedCapacityMB" : 0.0
      },
      "networkpool" : {
        "id" : "string",
        "name" : "string"
      },
      "physicalNics" : [ {
        "deviceName" : "string",
        "macAddress" : "string"
      } ],
      "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.69. Validate the input spec for hosts operations

POST /v1/hosts/validations

3.69.1. Parameters

Type Name Description Schema

Body

hostCommissionSpecs
required

hostCommissionSpecs

< HostCommissionSpec > array

3.69.2. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

Internal server error

No Content

3.69.3. Consumes

  • application/json

3.69.4. Produces

  • application/json

3.69.5. Tags

  • Hosts

3.69.6. Example HTTP request

Request path
/v1/hosts/validations
Request body
[ {
  "fqdn" : "string",
  "networkPoolId" : "string",
  "networkPoolName" : "string",
  "password" : "string",
  "storageType" : "One among: VSAN, NFS, VMFS_FC",
  "username" : "string"
} ]

3.69.7. Example HTTP response

Response 200
{
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "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",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: SUCCEEDED, FAILED",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: SUCCEEDED, FAILED",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 202
{
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "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",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: SUCCEEDED, FAILED",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: SUCCEEDED, FAILED",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.70. Get the status of the validation of the input specification to commission the Hosts

GET /v1/hosts/validations/{id}

3.70.1. Parameters

Type Name Description Schema

Path

id
required

The validation ID

string

3.70.2. Responses

HTTP Code Description Schema

200

OK

400

Bad Request

500

Internal server error

No Content

3.70.3. Consumes

  • application/json

3.70.4. Produces

  • application/json

3.70.5. Tags

  • Hosts

3.70.6. Example HTTP request

Request path
/v1/hosts/validations/string

3.70.7. Example HTTP response

Response 200
{
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "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",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: SUCCEEDED, FAILED",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: SUCCEEDED, FAILED",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.71. Get a Host

GET /v1/hosts/{id}

3.71.1. Parameters

Type Name Description Schema

Path

id
required

id

string

3.71.2. Responses

HTTP Code Description Schema

200

Ok

400

Bad Request

404

Host Not Found

500

Internal Server Error

3.71.3. Consumes

  • application/json

3.71.4. Produces

  • application/json

3.71.5. Tags

  • Hosts

3.71.7. 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"
  } ],
  "memory" : {
    "totalCapacityMB" : 0.0,
    "usedCapacityMB" : 0.0
  },
  "networkpool" : {
    "id" : "string",
    "name" : "string"
  },
  "physicalNics" : [ {
    "deviceName" : "string",
    "macAddress" : "string"
  } ],
  "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.72. Add a License Key

POST /v1/license-keys

3.72.1. Parameters

Type Name Description Schema

Body

licenseKey
required

License key with other attributes

3.72.2. Responses

HTTP Code Description Schema

200

OK

201

Created

500

Internal server error

3.72.3. Consumes

  • application/json

3.72.5. Tags

  • License Keys

3.72.6. 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" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "licenseKeyStatus" : "One among: EXPIRED, ACTIVE, NEVER_EXPIRES"
  }
}

3.72.7. 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" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "licenseKeyStatus" : "One among: EXPIRED, ACTIVE, NEVER_EXPIRES"
  }
}
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" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "licenseKeyStatus" : "One among: EXPIRED, ACTIVE, NEVER_EXPIRES"
  }
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.73. Get the License Keys

GET /v1/license-keys

3.73.1. 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)

3.73.2. Responses

HTTP Code Description Schema

200

Successful

500

Internal server error

3.73.3. Consumes

  • application/json

3.73.5. Tags

  • License Keys

3.73.7. 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" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "licenseKeyStatus" : "One among: EXPIRED, ACTIVE, NEVER_EXPIRES"
    }
  } ]
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.74. Get a License Key by key

GET /v1/license-keys/{key}

3.74.1. Parameters

Type Name Description Schema

Path

key
required

The 29 alpha numeric character license key with hyphens

string

3.74.2. Responses

HTTP Code Description Schema

200

Successful

404

License key not found

500

Internal server error

3.74.3. Consumes

  • application/json

3.74.5. Tags

  • License Keys

3.74.6. Example HTTP request

Request path
/v1/license-keys/string

3.74.7. 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" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "licenseKeyStatus" : "One among: EXPIRED, ACTIVE, NEVER_EXPIRES"
  }
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.75. Delete a License Key

DELETE /v1/license-keys/{key}

3.75.1. Parameters

Type Name Description Schema

Path

key
required

The 29 alpha numeric character license key with hyphens

string

3.75.2. 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

3.75.3. Consumes

  • application/json

3.75.5. Tags

  • License Keys

3.75.6. Example HTTP request

Request path
/v1/license-keys/string

3.75.7. Example HTTP response

Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.76. Create a Network Pool

POST /v1/network-pools

3.76.1. Description

Create a Network Pool

3.76.2. Parameters

Type Name Description Schema

Body

networkPool
required

Specification of the Network pool to create

3.76.3. Responses

HTTP Code Description Schema

200

OK

201

The newly created network pool

400

Errors due to network pool validations failures

500

Unexpected error

3.76.4. Consumes

  • application/json

3.76.5. Produces

  • application/json

3.76.6. Tags

  • Network Pools

3.76.7. 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
  } ]
}

3.76.8. 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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.77. Get the Network Pools

GET /v1/network-pools

3.77.1. Description

Get the Network Pools

3.77.2. Responses

HTTP Code Description Schema

200

Referenced network pool

404

Referenced network pool not found

500

Unexpected error

3.77.3. Consumes

  • application/json

3.77.4. Produces

  • application/json

3.77.5. Tags

  • Network Pools

3.77.7. 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
    } ]
  } ]
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.78. Get a Network Pool

GET /v1/network-pools/{id}

3.78.1. Description

Get a Network Pool by ID, if it exists

3.78.2. Parameters

Type Name Description Schema

Path

id
required

ID of the network pool to fetch

string

3.78.3. Responses

HTTP Code Description Schema

200

Referenced network pool

404

Referenced network pool not found

500

Unexpected error

3.78.4. Consumes

  • application/json

3.78.5. Produces

  • application/json

3.78.6. Tags

  • Network Pools

3.78.7. Example HTTP request

Request path
/v1/network-pools/string

3.78.8. 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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.79. Delete a Network Pool

DELETE /v1/network-pools/{id}

3.79.1. Description

Delete the Network Pool by the ID, if it exists and is unused

3.79.2. Parameters

Type Name Description Schema

Path

id
required

ID of the network pool

string

3.79.3. 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

3.79.4. Consumes

  • application/json

3.79.6. Tags

  • Network Pools

3.79.7. Example HTTP request

Request path
/v1/network-pools/string

3.79.8. Example HTTP response

Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.80. Get the Networks of a Network Pool

GET /v1/network-pools/{id}/networks

3.80.1. Description

Get the Networks that are part of a Network Pool

3.80.2. Parameters

Type Name Description Schema

Path

id
required

ID for Networkpool to get the networks from

string

3.80.3. Responses

HTTP Code Description Schema

200

Networks for referenced network pool

404

Network pool not found

500

Unexpected error

3.80.4. Consumes

  • application/json

3.80.5. Produces

  • application/json

3.80.6. Tags

  • Network Pools

3.80.7. Example HTTP request

Request path
/v1/network-pools/string/networks

3.80.8. 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
  } ]
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.81. Get a Network of a Network Pool

GET /v1/network-pools/{id}/networks/{networkId}

3.81.1. Description

Get a Network that is part of a Network Pool

3.81.2. Parameters

Type Name Description Schema

Path

id
required

Id of the Network pool

string

Path

networkId
required

Id of the Network

string

3.81.3. Responses

HTTP Code Description Schema

200

Network for referenced network pool

404

Networkpool not found

500

Unexpected error

3.81.4. Consumes

  • application/json

3.81.5. Produces

  • application/json

3.81.6. Tags

  • Network Pools

3.81.7. Example HTTP request

Request path
/v1/network-pools/string/networks/string

3.81.8. 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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

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

POST /v1/network-pools/{id}/networks/{networkId}/ip-pools

3.82.1. Description

Add an IP Pool to a Network of a Network Pool

3.82.2. 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

3.82.3. 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

3.82.4. Consumes

  • application/json

3.82.5. Produces

  • application/json

3.82.6. Tags

  • Network Pools

3.82.7. Example HTTP request

Request path
/v1/network-pools/string/networks/string/ip-pools
Request body
{
  "end" : "string",
  "start" : "string"
}

3.82.8. 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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

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

DELETE /v1/network-pools/{id}/networks/{networkId}/ip-pools

3.83.1. Description

Delete an IP Pool from a Network of a Network Pool

3.83.2. 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

3.83.3. 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

3.83.4. Consumes

  • application/json

3.83.5. Produces

  • application/json

3.83.6. Tags

  • Network Pools

3.83.7. Example HTTP request

Request path
/v1/network-pools/string/networks/string/ip-pools
Request body
{
  "end" : "string",
  "start" : "string"
}

3.83.8. Example HTTP response

Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.84. Get the NSX-T clusters

GET /v1/nsxt-clusters

3.84.1. Responses

HTTP Code Description Schema

200

Ok

400

Bad Request

500

InternalServerError

3.84.2. Consumes

  • application/json

3.84.3. Produces

  • application/json

3.84.4. Tags

  • NSX-T Clusters

3.84.6. Example HTTP response

Response 200
{
  "domains" : [ {
    "id" : "string",
    "name" : "string"
  } ],
  "id" : "string",
  "isShared" : true,
  "isVlcmCompatible" : true,
  "nodes" : [ {
    "fqdn" : "string",
    "ipAddress" : "string",
    "name" : "string"
  } ],
  "vip" : "string",
  "vipFqdn" : "string"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.85. Get a NSX-T cluster

GET /v1/nsxt-clusters/{id}

3.85.1. Parameters

Type Name Description Schema

Path

id
required

NSX-T cluster ID

string

3.85.2. Responses

HTTP Code Description Schema

200

Ok

404

NSX-T cluster not found

500

InternalServerError

3.85.3. Consumes

  • application/json

3.85.4. Produces

  • application/json

3.85.5. Tags

  • NSX-T Clusters

3.85.6. Example HTTP request

Request path
/v1/nsxt-clusters/string

3.85.7. Example HTTP response

Response 200
{
  "domains" : [ {
    "id" : "string",
    "name" : "string"
  } ],
  "id" : "string",
  "isShared" : true,
  "isVlcmCompatible" : true,
  "nodes" : [ {
    "fqdn" : "string",
    "ipAddress" : "string",
    "name" : "string"
  } ],
  "vip" : "string",
  "vipFqdn" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.86. Upload a Personality

POST /v1/personalities

3.86.1. Description

Upload Personality to SDDC Manager.

3.86.2. Parameters

Type Name Description Schema

Body

personalityUploadSpec
required

Personality Upload Specification

3.86.3. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

Internal Server Error

3.86.4. Consumes

  • application/json

3.86.5. Produces

  • application/json

3.86.6. Tags

  • Personalities

3.86.7. 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"
  }
}

3.86.8. Example HTTP response

Response 200
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.87. Get the Personalities

GET /v1/personalities

3.87.1. Description

Get the Personalities which are available via depot access.

3.87.2. 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

3.87.3. Responses

HTTP Code Description Schema

200

Ok

500

Internal Server Error

3.87.4. Consumes

  • application/json

3.87.5. Produces

  • application/json

3.87.6. Tags

  • Personalities

3.87.8. 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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.88. Upload personality files to SDDC Manager

PUT /v1/personalities/files

3.88.1. Description

Upload personality files to SDDC Manager

3.88.2. Parameters

Type Name Description Schema

Query

files
required

files

< file > array(multi)

3.88.3. Responses

HTTP Code Description Schema

200

OK

string

400

Bad request.

404

Not Found

500

Internal server error

3.88.4. Consumes

  • multipart/form-data

3.88.5. Produces

  • application/json

3.88.6. Tags

  • Personalities

3.88.7. Example HTTP request

Request path
/v1/personalities/files?files=file

3.88.8. Example HTTP response

Response 200
"string"
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.89. Get Personalities By Id

GET /v1/personalities/{personalityId}

3.89.1. Description

Get the Personality for id

3.89.2. Parameters

Type Name Description Schema

Path

personalityId
required

Personality ID

string

3.89.3. Responses

HTTP Code Description Schema

200

OK

404

Personality not found

500

Internal Server Error

3.89.4. Consumes

  • application/json

3.89.5. Produces

  • application/json

3.89.6. Tags

  • Personalities

3.89.7. Example HTTP request

Request path
/v1/personalities/string

3.89.8. 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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.90. Get the PSCs

GET /v1/pscs

3.90.1. Responses

HTTP Code Description Schema

200

Ok

Psc

400

Bad Request

500

InternalServerError

3.90.2. Consumes

  • application/json

3.90.3. Produces

  • application/json

3.90.6. Example HTTP response

Response 200
{
  "domain" : {
    "id" : "string",
    "name" : "string"
  },
  "fqdn" : "string",
  "id" : "string",
  "ipAddress" : "string",
  "isReplica" : true,
  "ssoDomainName" : "string",
  "ssoSubDomainName" : "string"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.91. Get a PSC

GET /v1/pscs/{id}

3.91.1. Parameters

Type Name Description Schema

Path

id
required

PSC ID

string

3.91.2. Responses

HTTP Code Description Schema

200

Ok

Psc

404

Psc not found

500

InternalServerError

3.91.3. Consumes

  • application/json

3.91.4. Produces

  • application/json

3.91.7. 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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.92. Trigger Restore

POST /v1/restores/tasks

3.92.1. Parameters

Type Name Description Schema

Body

restoreSpec
required

restoreSpec

3.92.2. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

Internal server error

3.92.3. Consumes

  • application/json

3.92.4. Produces

  • application/json

3.92.5. Tags

  • BackupRestore

3.92.6. Example HTTP request

Request path
/v1/restores/tasks
Request body
{
  "backupFile" : "string",
  "elements" : [ {
    "resourceType" : "SDDC_MANAGER"
  } ],
  "encryption" : {
    "passphrase" : "string"
  }
}

3.92.7. Example HTTP response

Response 200
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.93. Fetch the restores task

GET /v1/restores/tasks/{id}

3.93.1. Parameters

Type Name Description Schema

Path

id
required

The restore task ID

string

3.93.2. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

Internal server error

3.93.3. Consumes

  • application/json

3.93.4. Produces

  • application/json

3.93.5. Tags

  • BackupRestore

3.93.6. Example HTTP request

Request path
/v1/restores/tasks/string

3.93.7. Example HTTP response

Response 200
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.94. Get all roles

GET /v1/roles

3.94.1. Description

Get a list of all roles

3.94.2. Responses

HTTP Code Description Schema

200

OK

400

Bad request

401

Unauthorized Request

500

Internal Server Error

3.94.3. Consumes

  • application/json

3.94.4. Produces

  • application/json

3.94.5. Tags

  • Users

3.94.7. Example HTTP response

Response 200
{
  "elements" : [ {
    "description" : "string",
    "id" : "string",
    "name" : "string"
  } ]
}
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.95. Get details of a federation

GET /v1/sddc-federation

3.95.1. Responses

HTTP Code Description Schema

200

OK

< MemberInfo > array

3.95.2. Consumes

  • application/json

3.95.3. Produces

  • application/json

3.95.4. Tags

  • Federation

3.95.6. 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"
        } ]
      }
    },
    "creationTime" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "inventoryInfo" : {
      "hostCount" : {
        "total" : 0,
        "unallocated" : 0,
        "used" : 0
      }
    },
    "softwareInfo" : {
      "pendingUpdates" : 0
    }
  },
  "memberLiveness" : {
    "livelinessCode" : "GREEN",
    "livelinessDetails" : [ "string" ]
  }
} ]

3.96. Bootstrap a VMware Cloud Foundation to form a federation

PUT /v1/sddc-federation

3.96.1. Parameters

Type Name Description Schema

Body

bootstrapSpec
required

Bootstrap Spec

3.96.2. Responses

HTTP Code Description Schema

202

Accepted

3.96.3. Consumes

  • application/json

3.96.4. Produces

  • application/json

3.96.5. Tags

  • Federation

3.96.6. 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"
  }
}

3.96.7. 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.97. Teardown a federation

DELETE /v1/sddc-federation

3.97.1. Responses

HTTP Code Description Schema

202

ACCEPTED

3.97.2. Consumes

  • application/json

3.97.3. Produces

  • application/json

3.97.4. Tags

  • Federation

3.97.6. 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.98. Join a VMware Cloud Foundation to a federation

POST /v1/sddc-federation/members

3.98.1. Parameters

Type Name Description Schema

Body

joinSpec
required

Member Join Spec

3.98.2. Responses

HTTP Code Description Schema

202

ACCEPTED

3.98.3. Consumes

  • application/json

3.98.4. Produces

  • application/json

3.98.5. Tags

  • Members

3.98.6. 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"
  }
}

3.98.7. 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.99. Get fact about a VMware Cloud Foundation

GET /v1/sddc-federation/members

3.99.1. Parameters

Type Name Description Schema

Query

local
optional

Provide current member fact

boolean

3.99.2. Responses

HTTP Code Description Schema

200

OK

3.99.3. Consumes

  • application/json

3.99.4. Produces

  • application/json

3.99.5. Tags

  • Members

3.99.6. Example HTTP request

Request path
/v1/sddc-federation/members

3.99.7. 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.100. Leave a VMware Cloud Foundation from a federation

DELETE /v1/sddc-federation/members/{memberId}

3.100.1. Parameters

Type Name Description Schema

Path

memberId
required

Member FQDN

string

Query

force
optional

force

boolean

3.100.2. Responses

HTTP Code Description Schema

202

ACCEPTED

3.100.3. Consumes

  • application/json

3.100.4. Produces

  • application/json

3.100.5. Tags

  • Members

3.100.6. Example HTTP request

Request path
/v1/sddc-federation/members/string

3.100.7. 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.101. Invite a VMware Cloud Foundation to be member of a federation

POST /v1/sddc-federation/membership-tokens

3.101.1. Parameters

Type Name Description Schema

Body

inviteSpec
required

Invitation Spec

3.101.2. Responses

HTTP Code Description Schema

200

OK

3.101.3. Consumes

  • application/json

3.101.4. Produces

  • application/json

3.101.5. Tags

  • Membership Token

3.101.6. Example HTTP request

Request path
/v1/sddc-federation/membership-tokens
Request body
{
  "inviteeFqdn" : "string",
  "inviteeRole" : "CONTROLLER",
  "tokenExpiryHours" : 0.0
}

3.101.7. 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.102. Get progress of an invoked operation

GET /v1/sddc-federation/tasks/{taskId}

3.102.1. Parameters

Type Name Description Schema

Path

taskId
required

Task ID

string

3.102.2. Responses

HTTP Code Description Schema

200

OK

3.102.3. Consumes

  • application/json

3.102.4. Produces

  • application/json

3.102.5. Tags

  • Progress

3.102.6. Example HTTP request

Request path
/v1/sddc-federation/tasks/string

3.102.7. 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.103. Get the Sddc Managers

GET /v1/sddc-managers

3.103.1. Responses

HTTP Code Description Schema

200

Ok

400

Bad Request

500

InternalServerError

3.103.2. Consumes

  • application/json

3.103.3. Produces

  • application/json

3.103.4. Tags

  • SddcManagers

3.103.6. Example HTTP response

Response 200
{
  "domain" : {
    "id" : "string",
    "name" : "string"
  },
  "fqdn" : "string",
  "id" : "string",
  "ipAddress" : "string",
  "version" : "string"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.104. Get a Sddc Manager

GET /v1/sddc-managers/{id}

3.104.1. Parameters

Type Name Description Schema

Path

id
required

Sddc Manager ID

string

3.104.2. Responses

HTTP Code Description Schema

200

Ok

404

Sddc Manager not found

500

InternalServerError

3.104.3. Consumes

  • application/json

3.104.4. Produces

  • application/json

3.104.5. Tags

  • SddcManagers

3.104.6. Example HTTP request

Request path
/v1/sddc-managers/string

3.104.7. 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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.105. Create SDDC

POST /v1/sddcs

3.105.1. Parameters

Type Name Description Schema

Body

sddcSpec
required

SDDC specification

3.105.2. Responses

HTTP Code Description Schema

200

OK

202

Success

400

SDDC already exists, Bad Request

500

Internal Server Error

3.105.3. Consumes

  • application/json

3.105.4. Produces

  • application/json

3.105.6. 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" : {
      "string" : "string"
    }
  },
  "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, PUBLIC, MANAGEMENT, NSX_VTEP, HOSTMANAGEMENT, CLOUD_VENDOR_API, REPLICATION, DATACENTER_NETWORK, NSX_VXLAN, NON_ROUTABLE, CLOUD_VENDOR_API, OOB, CROSS_VPC, UPLINK01, UPLINK02, STORAGE, UDLR, DLR, X_REGION, REGION_SPECIFIC, REMOTE_REGION_SPECIFIC, COMPUTE, MANAGEMENT_VM, NSXT_EDGE_TEP, NSXT_HOST_OVERLAY",
    "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",
  "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, PUBLIC, MANAGEMENT, NSX_VTEP, HOSTMANAGEMENT, CLOUD_VENDOR_API, REPLICATION"
    } ],
    "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, PUBLIC, MANAGEMENT, NSX_VTEP, HOSTMANAGEMENT, CLOUD_VENDOR_API, REPLICATION, DATACENTER_NETWORK, NSX_VXLAN, NON_ROUTABLE, CLOUD_VENDOR_API, OOB, CROSS_VPC, UPLINK01, UPLINK02, STORAGE, UDLR, DLR, X_REGION, REGION_SPECIFIC, REMOTE_REGION_SPECIFIC, COMPUTE, MANAGEMENT_VM, NSXT_EDGE_TEP, NSXT_HOST_OVERLAY",
    "portGroupKey" : "string",
    "standbyUplinks" : [ "string" ],
    "subnet" : "string",
    "subnetMask" : "string",
    "teamingPolicy" : "One among:loadbalance_ip, loadbalance_srcmac, loadbalance_srcid, failover_explicit, loadbalance_loadbased",
    "vlanId" : "string"
  } ],
  "nsxtSpec" : {
    "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:compact",
      "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:extra_small, small, 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" : {
      "replicationPartner" : "string",
      "ssoDomain" : "string"
    }
  } ],
  "remoteSiteSpec" : {
    "clusterName" : "string",
    "datacenterName" : "string",
    "logicalSwitchNames" : [ "string" ],
    "nsxCredentials" : {
      "password" : "Admin!23",
      "username" : "root"
    },
    "nsxIp" : "string",
    "placeholderDatastore" : "string",
    "pscAddress" : "string",
    "remoteRegionVmFolders" : {
      "string" : "string"
    },
    "vcCredentials" : {
      "password" : "Admin!23",
      "username" : "root"
    },
    "vcMgmtIp" : "string"
  },
  "sddcId" : "sfo01-m01",
  "sddcManagerSpec" : {
    "hostname" : "string",
    "ipAddress" : "string",
    "licenseKey" : "string",
    "netmask" : "string",
    "restApiCredentials" : {
      "password" : "Admin!23",
      "username" : "root"
    },
    "rootUserCredentials" : {
      "password" : "Admin!23",
      "username" : "root"
    },
    "secondUserCredentials" : {
      "password" : "Admin!23",
      "username" : "root"
    }
  },
  "shouldCleanupVsan" : false,
  "skipEsxThumbprintValidation" : true,
  "taskName" : "workflowconfig/workflowspec-ems.json",
  "vcenterSpec" : {
    "licenseFile" : "string",
    "rootVcenterPassword" : "string",
    "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"
    },
    "vxManagerHostName" : "string"
  },
  "vxRailSpec" : {
    "vxRailObjectNames" : {
      "string" : "string"
    }
  }
}

3.105.7. Example HTTP response

Response 200
{
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "id" : "string",
  "localizableNamePack" : {
    "arguments" : [ "string" ],
    "component" : "string",
    "message" : "string",
    "messageKey" : "string"
  },
  "name" : "string",
  "sddcSubTasks" : [ {
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "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" : {
      "epochSecond" : 0,
      "nano" : 0
    }
  } ],
  "status" : "One among: IN_PROGRESS, COMPLETED_WITH_SUCCESS, ROLLBACK_SUCCESS, COMPLETED_WITH_FAILURE"
}
Response 202
{
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "id" : "string",
  "localizableNamePack" : {
    "arguments" : [ "string" ],
    "component" : "string",
    "message" : "string",
    "messageKey" : "string"
  },
  "name" : "string",
  "sddcSubTasks" : [ {
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "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" : {
      "epochSecond" : 0,
      "nano" : 0
    }
  } ],
  "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.106. Retrieve all SDDCs

GET /v1/sddcs

3.106.1. Responses

HTTP Code Description Schema

200

Accepted

500

Internal Server Error

3.106.2. Consumes

  • application/json

3.106.3. Produces

  • application/json

3.106.6. Example HTTP response

Response 200
{
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "id" : "string",
  "localizableNamePack" : {
    "arguments" : [ "string" ],
    "component" : "string",
    "message" : "string",
    "messageKey" : "string"
  },
  "name" : "string",
  "sddcSubTasks" : [ {
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "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" : {
      "epochSecond" : 0,
      "nano" : 0
    }
  } ],
  "status" : "One among: IN_PROGRESS, COMPLETED_WITH_SUCCESS, ROLLBACK_SUCCESS, COMPLETED_WITH_FAILURE"
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.107. Validate SDDC specification before creation

POST /v1/sddcs/validations

3.107.1. 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.

3.107.2. Parameters

Type Name Description Schema

Query

redo
optional

redo

boolean

Body

sddcSpec
required

SDDC specification

3.107.3. Responses

HTTP Code Description Schema

200

Accepted

202

Success

403

Forbidden

No Content

404

Not Found

500

Internal Server Error

3.107.4. Consumes

  • application/json

3.107.5. Produces

  • application/json

3.107.7. 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" : {
      "string" : "string"
    }
  },
  "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, PUBLIC, MANAGEMENT, NSX_VTEP, HOSTMANAGEMENT, CLOUD_VENDOR_API, REPLICATION, DATACENTER_NETWORK, NSX_VXLAN, NON_ROUTABLE, CLOUD_VENDOR_API, OOB, CROSS_VPC, UPLINK01, UPLINK02, STORAGE, UDLR, DLR, X_REGION, REGION_SPECIFIC, REMOTE_REGION_SPECIFIC, COMPUTE, MANAGEMENT_VM, NSXT_EDGE_TEP, NSXT_HOST_OVERLAY",
    "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",
  "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, PUBLIC, MANAGEMENT, NSX_VTEP, HOSTMANAGEMENT, CLOUD_VENDOR_API, REPLICATION"
    } ],
    "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, PUBLIC, MANAGEMENT, NSX_VTEP, HOSTMANAGEMENT, CLOUD_VENDOR_API, REPLICATION, DATACENTER_NETWORK, NSX_VXLAN, NON_ROUTABLE, CLOUD_VENDOR_API, OOB, CROSS_VPC, UPLINK01, UPLINK02, STORAGE, UDLR, DLR, X_REGION, REGION_SPECIFIC, REMOTE_REGION_SPECIFIC, COMPUTE, MANAGEMENT_VM, NSXT_EDGE_TEP, NSXT_HOST_OVERLAY",
    "portGroupKey" : "string",
    "standbyUplinks" : [ "string" ],
    "subnet" : "string",
    "subnetMask" : "string",
    "teamingPolicy" : "One among:loadbalance_ip, loadbalance_srcmac, loadbalance_srcid, failover_explicit, loadbalance_loadbased",
    "vlanId" : "string"
  } ],
  "nsxtSpec" : {
    "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:compact",
      "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:extra_small, small, 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" : {
      "replicationPartner" : "string",
      "ssoDomain" : "string"
    }
  } ],
  "remoteSiteSpec" : {
    "clusterName" : "string",
    "datacenterName" : "string",
    "logicalSwitchNames" : [ "string" ],
    "nsxCredentials" : {
      "password" : "Admin!23",
      "username" : "root"
    },
    "nsxIp" : "string",
    "placeholderDatastore" : "string",
    "pscAddress" : "string",
    "remoteRegionVmFolders" : {
      "string" : "string"
    },
    "vcCredentials" : {
      "password" : "Admin!23",
      "username" : "root"
    },
    "vcMgmtIp" : "string"
  },
  "sddcId" : "sfo01-m01",
  "sddcManagerSpec" : {
    "hostname" : "string",
    "ipAddress" : "string",
    "licenseKey" : "string",
    "netmask" : "string",
    "restApiCredentials" : {
      "password" : "Admin!23",
      "username" : "root"
    },
    "rootUserCredentials" : {
      "password" : "Admin!23",
      "username" : "root"
    },
    "secondUserCredentials" : {
      "password" : "Admin!23",
      "username" : "root"
    }
  },
  "shouldCleanupVsan" : false,
  "skipEsxThumbprintValidation" : true,
  "taskName" : "workflowconfig/workflowspec-ems.json",
  "vcenterSpec" : {
    "licenseFile" : "string",
    "rootVcenterPassword" : "string",
    "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"
    },
    "vxManagerHostName" : "string"
  },
  "vxRailSpec" : {
    "vxRailObjectNames" : {
      "string" : "string"
    }
  }
}

3.107.8. Example HTTP response

Response 200
{
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "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",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: SUCCEEDED, FAILED",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: SUCCEEDED, FAILED",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 202
{
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "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",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: SUCCEEDED, FAILED",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: SUCCEEDED, FAILED",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.108. Get all SDDC specification validations

GET /v1/sddcs/validations

3.108.1. Responses

HTTP Code Description Schema

200

Accepted

< Validation > array

404

Not Found

500

Internal Server Error

501

Not Implemented

3.108.2. Consumes

  • application/json

3.108.3. Produces

  • application/json

3.108.6. Example HTTP response

Response 200
[ {
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "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",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: SUCCEEDED, FAILED",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: SUCCEEDED, FAILED",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
} ]
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.109. Get SDDC specification validation status by ID

GET /v1/sddcs/validations/{id}

3.109.1. Parameters

Type Name Description Schema

Path

id
required

SDDC validation ID

string

3.109.2. Responses

HTTP Code Description Schema

200

Accepted

400

Bad Request

404

Not Found

500

Internal Server Error

501

Not Implemented

3.109.3. Consumes

  • application/json

3.109.4. Produces

  • application/json

3.109.6. Example HTTP request

Request path
/v1/sddcs/validations/string

3.109.7. Example HTTP response

Response 200
{
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "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",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: SUCCEEDED, FAILED",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: SUCCEEDED, FAILED",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 400
{
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "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",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: SUCCEEDED, FAILED",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: SUCCEEDED, FAILED",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.110. Cancel SDDC specification validation

DELETE /v1/sddcs/validations/{id}

3.110.1. Description

Cancel the currently running SDDC specification validation

3.110.2. Parameters

Type Name Description Schema

Path

id
required

SDDC validation ID

string

3.110.3. Responses

HTTP Code Description Schema

200

Accepted

boolean

404

Not Found

500

Internal Server Error

3.110.4. Consumes

  • application/json

3.110.7. Example HTTP request

Request path
/v1/sddcs/validations/string

3.110.8. Example HTTP response

Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.111. Retry SDDC validation

PATCH /v1/sddcs/validations/{id}

3.111.1. Description

Retry a completed SDDC validation

3.111.2. Parameters

Type Name Description Schema

Path

id
required

SDDC validation ID

string

Body

tests
optional

A list of tests to be retried

< string > array

3.111.3. Responses

HTTP Code Description Schema

200

Completed

400

Bad Request

No Content

405

Method Not Allowed

No Content

500

Internal Server Error

No Content

3.111.4. Consumes

  • application/json

3.111.7. Example HTTP request

Request path
/v1/sddcs/validations/string
Request body
[ "string" ]

3.111.8. Example HTTP response

Response 200
{
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "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",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: SUCCEEDED, FAILED",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: SUCCEEDED, FAILED",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}

3.112. Retrieve a SDDC

GET /v1/sddcs/{id}

3.112.1. Parameters

Type Name Description Schema

Path

id
required

SDDC ID

string

3.112.2. Responses

HTTP Code Description Schema

200

OK

400

Bad Request

404

Not Found

500

Internal Server Error

3.112.3. Consumes

  • application/json

3.112.4. Produces

  • application/json

3.112.7. Example HTTP response

Response 200
{
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "id" : "string",
  "localizableNamePack" : {
    "arguments" : [ "string" ],
    "component" : "string",
    "message" : "string",
    "messageKey" : "string"
  },
  "name" : "string",
  "sddcSubTasks" : [ {
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "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" : {
      "epochSecond" : 0,
      "nano" : 0
    }
  } ],
  "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.113. Retry failed SDDC creation

PATCH /v1/sddcs/{id}

3.113.1. Parameters

Type Name Description Schema

Path

id
required

SDDC ID

string

Body

sddcSpec
optional

sddcSpec

3.113.2. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

404

Not Found

405

Not allowed

500

Internal Server Error

3.113.3. Consumes

  • application/json

3.113.4. Produces

  • application/json

3.113.6. 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" : {
      "string" : "string"
    }
  },
  "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, PUBLIC, MANAGEMENT, NSX_VTEP, HOSTMANAGEMENT, CLOUD_VENDOR_API, REPLICATION, DATACENTER_NETWORK, NSX_VXLAN, NON_ROUTABLE, CLOUD_VENDOR_API, OOB, CROSS_VPC, UPLINK01, UPLINK02, STORAGE, UDLR, DLR, X_REGION, REGION_SPECIFIC, REMOTE_REGION_SPECIFIC, COMPUTE, MANAGEMENT_VM, NSXT_EDGE_TEP, NSXT_HOST_OVERLAY",
    "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",
  "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, PUBLIC, MANAGEMENT, NSX_VTEP, HOSTMANAGEMENT, CLOUD_VENDOR_API, REPLICATION"
    } ],
    "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, PUBLIC, MANAGEMENT, NSX_VTEP, HOSTMANAGEMENT, CLOUD_VENDOR_API, REPLICATION, DATACENTER_NETWORK, NSX_VXLAN, NON_ROUTABLE, CLOUD_VENDOR_API, OOB, CROSS_VPC, UPLINK01, UPLINK02, STORAGE, UDLR, DLR, X_REGION, REGION_SPECIFIC, REMOTE_REGION_SPECIFIC, COMPUTE, MANAGEMENT_VM, NSXT_EDGE_TEP, NSXT_HOST_OVERLAY",
    "portGroupKey" : "string",
    "standbyUplinks" : [ "string" ],
    "subnet" : "string",
    "subnetMask" : "string",
    "teamingPolicy" : "One among:loadbalance_ip, loadbalance_srcmac, loadbalance_srcid, failover_explicit, loadbalance_loadbased",
    "vlanId" : "string"
  } ],
  "nsxtSpec" : {
    "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:compact",
      "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:extra_small, small, 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" : {
      "replicationPartner" : "string",
      "ssoDomain" : "string"
    }
  } ],
  "remoteSiteSpec" : {
    "clusterName" : "string",
    "datacenterName" : "string",
    "logicalSwitchNames" : [ "string" ],
    "nsxCredentials" : {
      "password" : "Admin!23",
      "username" : "root"
    },
    "nsxIp" : "string",
    "placeholderDatastore" : "string",
    "pscAddress" : "string",
    "remoteRegionVmFolders" : {
      "string" : "string"
    },
    "vcCredentials" : {
      "password" : "Admin!23",
      "username" : "root"
    },
    "vcMgmtIp" : "string"
  },
  "sddcId" : "sfo01-m01",
  "sddcManagerSpec" : {
    "hostname" : "string",
    "ipAddress" : "string",
    "licenseKey" : "string",
    "netmask" : "string",
    "restApiCredentials" : {
      "password" : "Admin!23",
      "username" : "root"
    },
    "rootUserCredentials" : {
      "password" : "Admin!23",
      "username" : "root"
    },
    "secondUserCredentials" : {
      "password" : "Admin!23",
      "username" : "root"
    }
  },
  "shouldCleanupVsan" : false,
  "skipEsxThumbprintValidation" : true,
  "taskName" : "workflowconfig/workflowspec-ems.json",
  "vcenterSpec" : {
    "licenseFile" : "string",
    "rootVcenterPassword" : "string",
    "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"
    },
    "vxManagerHostName" : "string"
  },
  "vxRailSpec" : {
    "vxRailObjectNames" : {
      "string" : "string"
    }
  }
}

3.113.7. Example HTTP response

Response 200
{
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "id" : "string",
  "localizableNamePack" : {
    "arguments" : [ "string" ],
    "component" : "string",
    "message" : "string",
    "messageKey" : "string"
  },
  "name" : "string",
  "sddcSubTasks" : [ {
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "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" : {
      "epochSecond" : 0,
      "nano" : 0
    }
  } ],
  "status" : "One among: IN_PROGRESS, COMPLETED_WITH_SUCCESS, ROLLBACK_SUCCESS, COMPLETED_WITH_FAILURE"
}
Response 202
{
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "id" : "string",
  "localizableNamePack" : {
    "arguments" : [ "string" ],
    "component" : "string",
    "message" : "string",
    "messageKey" : "string"
  },
  "name" : "string",
  "sddcSubTasks" : [ {
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "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" : {
      "epochSecond" : 0,
      "nano" : 0
    }
  } ],
  "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.114. Get all SSO domains

GET /v1/sso-domains

3.114.1. Description

Get a list of all SSO domains

3.114.2. Responses

HTTP Code Description Schema

200

OK

401

Unauthorized Request

403

Forbidden request

500

Internal Server Error

3.114.3. Consumes

  • application/json

3.114.4. Produces

  • application/json

3.114.7. Example HTTP response

Response 200
{
  "elements" : [ "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 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.115. Get all entities of SSO domain

GET /v1/sso-domains/{sso-domain}/entities

3.115.1. Description

Get a list of all entities in the SSO domain

3.115.2. Parameters

Type Name Description Schema

Path

sso-domain
required

SSO Domain Name

string

3.115.3. Responses

HTTP Code Description Schema

200

OK

401

Unauthorized Request

403

Forbidden request

500

Internal Server Error

3.115.4. Consumes

  • application/json

3.115.5. Produces

  • application/json

3.115.7. Example HTTP request

Request path
/v1/sso-domains/string/entities

3.115.8. Example HTTP response

Response 200
{
  "elements" : [ {
    "id" : "string",
    "name" : "string",
    "type" : "One among: USER, GROUP"
  } ]
}
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.116. Get backup configuration used to backup NSX and SDDC manager

GET /v1/system/backup-configuration

3.116.1. Responses

HTTP Code Description Schema

200

Ok

400

Bad Request

500

Internal server error

3.116.2. Consumes

  • application/json

3.116.3. Produces

  • application/json

3.116.4. Tags

  • BackupRestore

3.116.5. Example HTTP request

Request path
/v1/system/backup-configuration

3.116.6. 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"
  } ],
  "encryption" : {
    "passphrase" : "string"
  },
  "isConfigured" : true
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.117. Configure backup settings to backup NSX and SDDC manager

PUT /v1/system/backup-configuration

3.117.1. Parameters

Type Name Description Schema

Body

backupConfigurationSpec
required

backupConfigurationSpec

3.117.2. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

Internal server error

3.117.3. Consumes

  • application/json

3.117.4. Produces

  • application/json

3.117.5. Tags

  • BackupRestore

3.117.6. 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"
  } ],
  "encryption" : {
    "passphrase" : "string"
  }
}

3.117.7. Example HTTP response

Response 200
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.118. Edit backup configuration to backup NSX and SDDC manager

PATCH /v1/system/backup-configuration

3.118.1. Parameters

Type Name Description Schema

Body

backupConfigurationSpec
required

backupConfigurationSpec

3.118.2. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

Internal server error

3.118.3. Consumes

  • application/json

3.118.4. Produces

  • application/json

3.118.5. Tags

  • BackupRestore

3.118.6. 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"
  } ],
  "encryption" : {
    "passphrase" : "string"
  }
}

3.118.7. Example HTTP response

Response 200
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.119. Get CEIP status

GET /v1/system/ceip

3.119.1. Description

Get CEIP status and instance id

3.119.2. Responses

HTTP Code Description Schema

200

Ok

500

InternalServerError

3.119.3. Consumes

  • application/json

3.119.4. Produces

  • application/json

3.119.7. 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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.120. Opt-in or Opt-out of CEIP

PATCH /v1/system/ceip

3.120.1. Description

Opt-in or Opt-out of CEIP

3.120.2. Parameters

Type Name Description Schema

Body

ceipUpdateSpec
required

Required action for CEIP.

3.120.3. 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

3.120.4. Consumes

  • application/json

3.120.5. Produces

  • application/json

3.120.7. Example HTTP request

Request path
/v1/system/ceip
Request body
{
  "status" : "One among: ENABLE, DISABLE"
}

3.120.8. Example HTTP response

Response 200
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.121. Get the current DnsConfiguration

GET /v1/system/dns-configuration

3.121.1. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

Internal server error

3.121.2. Consumes

  • application/json

3.121.3. Produces

  • application/json

3.121.4. Tags

  • system

3.121.5. Example HTTP request

Request path
/v1/system/dns-configuration

3.121.6. Example HTTP response

Response 200
{
  "dnsServers" : [ {
    "ipAddress" : "10.0.0.250",
    "isPrimary" : true
  } ]
}
Response 202
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.122. Configure the Dns Server

PUT /v1/system/dns-configuration

3.122.1. Parameters

Type Name Description Schema

Body

dnsConfiguration
required

dnsConfiguration

3.122.2. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

Internal server error

3.122.3. Consumes

  • application/json

3.122.4. Produces

  • application/json

3.122.5. Tags

  • system

3.122.6. Example HTTP request

Request path
/v1/system/dns-configuration
Request body
{
  "dnsServers" : [ {
    "ipAddress" : "10.0.0.250",
    "isPrimary" : true
  } ]
}

3.122.7. Example HTTP response

Response 200
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.123. Validate DnsConfiguration input spec and system health before DNS configuration

POST /v1/system/dns-configuration/validations

3.123.1. Parameters

Type Name Description Schema

Body

dnsConfiguration
required

dnsConfiguration

3.123.2. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

Internal Server Error

No Content

3.123.3. Consumes

  • application/json

3.123.4. Produces

  • application/json

3.123.5. Tags

  • system

3.123.6. Example HTTP request

Request path
/v1/system/dns-configuration/validations
Request body
{
  "dnsServers" : [ {
    "ipAddress" : "10.0.0.250",
    "isPrimary" : true
  } ]
}

3.123.7. Example HTTP response

Response 200
{
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "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",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: SUCCEEDED, FAILED",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: SUCCEEDED, FAILED",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 202
{
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "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",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: SUCCEEDED, FAILED",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: SUCCEEDED, FAILED",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.124. Get the status of the validation of the input DnsConfiguration

GET /v1/system/dns-configuration/validations/{id}

3.124.1. Parameters

Type Name Description Schema

Path

id
required

The validation ID

string

3.124.2. Responses

HTTP Code Description Schema

200

OK

400

Bad Request

500

Internal server error

No Content

3.124.3. Consumes

  • application/json

3.124.4. Produces

  • application/json

3.124.5. Tags

  • system

3.124.6. Example HTTP request

Request path
/v1/system/dns-configuration/validations/string

3.124.7. Example HTTP response

Response 200
{
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "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",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: SUCCEEDED, FAILED",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: SUCCEEDED, FAILED",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.125. Get the current NtpConfiguration

GET /v1/system/ntp-configuration

3.125.1. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

Internal server error

3.125.2. Consumes

  • application/json

3.125.3. Produces

  • application/json

3.125.4. Tags

  • system

3.125.5. Example HTTP request

Request path
/v1/system/ntp-configuration

3.125.6. Example HTTP response

Response 200
{
  "ntpServers" : [ {
    "ipAddress" : "10.0.0.250"
  } ]
}
Response 202
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.126. Configure the Ntp Server

PUT /v1/system/ntp-configuration

3.126.1. Parameters

Type Name Description Schema

Body

ntpConfiguration
required

ntpConfiguration

3.126.2. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

Internal server error

3.126.3. Consumes

  • application/json

3.126.4. Produces

  • application/json

3.126.5. Tags

  • system

3.126.6. Example HTTP request

Request path
/v1/system/ntp-configuration
Request body
{
  "ntpServers" : [ {
    "ipAddress" : "10.0.0.250"
  } ]
}

3.126.7. Example HTTP response

Response 200
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.127. Validate NtpConfiguration input spec and system health before Ntp configuration

POST /v1/system/ntp-configuration/validations

3.127.1. Parameters

Type Name Description Schema

Body

ntpConfiguration
required

ntpConfiguration

3.127.2. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

Internal Server Error

No Content

3.127.3. Consumes

  • application/json

3.127.4. Produces

  • application/json

3.127.5. Tags

  • system

3.127.6. Example HTTP request

Request path
/v1/system/ntp-configuration/validations
Request body
{
  "ntpServers" : [ {
    "ipAddress" : "10.0.0.250"
  } ]
}

3.127.7. Example HTTP response

Response 200
{
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "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",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: SUCCEEDED, FAILED",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: SUCCEEDED, FAILED",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 202
{
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "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",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: SUCCEEDED, FAILED",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: SUCCEEDED, FAILED",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.128. Get the status of the validation of the input ntpServers to configure new Ntp server

GET /v1/system/ntp-configuration/validations/{id}

3.128.1. Parameters

Type Name Description Schema

Path

id
required

The validation ID

string

3.128.2. Responses

HTTP Code Description Schema

200

OK

400

Bad Request

500

Internal server error

No Content

3.128.3. Consumes

  • application/json

3.128.4. Produces

  • application/json

3.128.5. Tags

  • system

3.128.6. Example HTTP request

Request path
/v1/system/ntp-configuration/validations/string

3.128.7. Example HTTP response

Response 200
{
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "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",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: SUCCEEDED, FAILED",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: SUCCEEDED, FAILED",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.129. Precheck System

POST /v1/system/prechecks

3.129.1. 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

3.129.2. Parameters

Type Name Description Schema

Body

precheckSpec
required

Precheck System Spec

3.129.3. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

Internal Server Error

3.129.4. Consumes

  • application/json

3.129.5. Produces

  • application/json

3.129.6. Tags

  • SystemPrechecks

3.129.7. Example HTTP request

Request path
/v1/system/prechecks
Request body
{
  "bundleId" : "string",
  "resources" : [ {
    "fqdn" : "string",
    "name" : "string",
    "resourceId" : "string",
    "type" : "string"
  } ]
}

3.129.8. Example HTTP response

Response 200
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.130. Get Precheck Task by ID

GET /v1/system/prechecks/tasks/{id}

3.130.1. Description

Monitor the progress of precheck task by the precheck task ID

3.130.2. Parameters

Type Name Description Schema

Path

id
required

Precheck Task ID

string

3.130.3. Responses

HTTP Code Description Schema

200

Ok

404

Precheck Task Not Found

500

Internal Server Error

3.130.4. Consumes

  • application/json

3.130.5. Produces

  • application/json

3.130.6. Tags

  • SystemPrechecks

3.130.7. Example HTTP request

Request path
/v1/system/prechecks/tasks/string

3.130.8. Example HTTP response

Response 200
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.131. Get Depot Settings

GET /v1/system/settings/depot

3.131.1. Description

Get the Depot Settings, In a fresh setup, this would be empty

3.131.2. Responses

HTTP Code Description Schema

200

Ok

500

Internal Server Error

3.131.3. Consumes

  • application/json

3.131.4. Produces

  • application/json

3.131.5. Tags

  • DepotSettings

3.131.6. Example HTTP request

Request path
/v1/system/settings/depot

3.131.7. 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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.132. Update Depot Settings

PUT /v1/system/settings/depot

3.132.1. Description

Update Depot Settings. Depot Settings can be updated with VMware Depot Account

3.132.2. Parameters

Type Name Description Schema

Body

depotSettings
required

Depot Settings

3.132.3. Responses

HTTP Code Description Schema

200

OK

202

Ok

400

Bad Request

500

Internal Server Error

3.132.4. Consumes

  • application/json

3.132.5. Produces

  • application/json

3.132.6. Tags

  • DepotSettings

3.132.7. 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"
  }
}

3.132.8. 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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.133. Get Version Alias Configuration

GET /v1/system/settings/version-aliases

3.133.1. Description

Get the Version Alias Configuration.

3.133.2. Responses

HTTP Code Description Schema

200

Ok

500

Internal Server Error

3.133.3. Consumes

  • application/json

3.133.4. Produces

  • application/json

3.133.5. Tags

  • VersionAliasesForBundleComponentType

3.133.6. Example HTTP request

Request path
/v1/system/settings/version-aliases

3.133.7. 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"
    } ]
  } ]
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.134. Update Version Alias Configurations

PUT /v1/system/settings/version-aliases

3.134.1. Description

Update Version Alias Configurations.

3.134.2. Parameters

Type Name Description Schema

Body

versionAliasesForBundleComponentTypeSpec
required

Version Alias Configuration Specification

3.134.3. Responses

HTTP Code Description Schema

200

Ok

400

Bad Request

500

Internal Server Error

3.134.4. Consumes

  • application/json

3.134.5. Produces

  • application/json

3.134.6. Tags

  • VersionAliasesForBundleComponentType

3.134.7. Example HTTP request

Request path
/v1/system/settings/version-aliases
Request body
{
  "forceUpdate" : true,
  "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"
    } ]
  } ]
}

3.134.8. 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"
    } ]
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.135. Delete Version Alias for a bundle component type

DELETE /v1/system/settings/version-aliases/{bundleComponentType}

3.135.1. Description

Delete Version Alias for a bundle component type.

3.135.2. 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)

3.135.3. Responses

HTTP Code Description Schema

200

OK

No Content

204

No Content

No Content

400

Bad Request

500

Internal Server Error

3.135.4. Consumes

  • application/json

3.135.5. Produces

  • application/json

3.135.6. Tags

  • VersionAliasesForBundleComponentType

3.135.7. Example HTTP request

Request path
/v1/system/settings/version-aliases/VCENTER

3.135.8. Example HTTP response

Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.136. Update Version Alias Configuration

PUT /v1/system/settings/version-aliases/{bundleComponentType}/{version}

3.136.1. Description

Update Version Alias Configuration.

3.136.2. 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

3.136.3. Responses

HTTP Code Description Schema

200

Ok

400

Bad Request

500

Internal Server Error

3.136.4. Consumes

  • application/json

3.136.5. Produces

  • application/json

3.136.6. Tags

  • VersionAliasesForBundleComponentType

3.136.7. Example HTTP request

Request path
/v1/system/settings/version-aliases/VCENTER/string
Request body
{
  "aliases" : [ "string" ],
  "forceUpdate" : true
}

3.136.8. 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"
    } ]
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.137. Delete Version Alias Configuration

DELETE /v1/system/settings/version-aliases/{bundleComponentType}/{version}

3.137.1. Description

Delete Version Alias Configuration by bundle component type, version, and aliases.

3.137.2. 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

3.137.3. Responses

HTTP Code Description Schema

200

OK

No Content

204

No Content

No Content

400

Bad Request

500

Internal Server Error

3.137.4. Consumes

  • application/json

3.137.6. Tags

  • VersionAliasesForBundleComponentType

3.137.7. Example HTTP request

Request path
/v1/system/settings/version-aliases/VCENTER/string
Request body
[ "string" ]

3.137.8. Example HTTP response

Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.138. Get the Upgradables

GET /v1/system/upgradables

3.138.1. 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.

3.138.2. Responses

HTTP Code Description Schema

200

Ok

500

Internal Server Error

3.138.3. Consumes

  • application/json

3.138.4. Produces

  • application/json

3.138.5. Tags

  • Upgradables

3.138.7. Example HTTP response

Response 200
{
  "elements" : [ {
    "bundleId" : "string",
    "bundleType" : "string",
    "resource" : {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    },
    "softwareComponents" : [ {
      "id" : "string",
      "type" : "string"
    } ],
    "status" : "string"
  } ]
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.139. Get the Tasks

GET /v1/tasks

3.139.1. Description

Get the Tasks

3.139.2. Parameters

Type Name Description Schema

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

3.139.3. Responses

HTTP Code Description Schema

200

Returns the list of tasks.

500

Unexpected error

3.139.4. Consumes

  • application/json

3.139.5. Produces

  • application/json

3.139.8. Example HTTP response

Response 200
{
  "elements" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "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",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
    "subTasks" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "errors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "name" : "string",
      "resources" : [ {
        "fqdn" : "string",
        "name" : "string",
        "resourceId" : "string",
        "type" : "string"
      } ],
      "stages" : [ {
        "completionTimestamp" : {
          "epochSecond" : 0,
          "nano" : 0
        },
        "creationTimestamp" : {
          "epochSecond" : 0,
          "nano" : 0
        },
        "description" : "string",
        "name" : "string",
        "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
        "type" : "string"
      } ],
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
  } ]
}
Response 500
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.140. Get a Task

GET /v1/tasks/{id}

3.140.1. Description

Get a Task by ID, if it exists

3.140.2. Parameters

Type Name Description Schema

Path

id
required

Task id to retrieve

string

3.140.3. Responses

HTTP Code Description Schema

200

A task object.

404

Task not found

500

Unexpected error

3.140.4. Consumes

  • application/json

3.140.5. Produces

  • application/json

3.140.8. Example HTTP response

Response 200
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.141. Cancel a Task

DELETE /v1/tasks/{id}

3.141.1. Description

Cancel a Task by ID, if it exists

3.141.2. Parameters

Type Name Description Schema

Path

id
required

Task id for cancelling

string

3.141.3. 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

3.141.4. Consumes

  • application/json

3.141.8. Example HTTP response

Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.142. Retry a Task

PATCH /v1/tasks/{id}

3.142.1. Description

Retry a failed Task by ID, if it exists

3.142.2. Parameters

Type Name Description Schema

Path

id
required

Task id retry

string

3.142.3. 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

3.142.4. Consumes

  • application/json

3.142.8. Example HTTP response

Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.143. Create Token Pair

POST /v1/tokens

3.143.1. Description

Creates access token and refresh token for user access

3.143.2. Parameters

Type Name Description Schema

Body

tokenCreationSpec
required

tokenCreationSpec

3.143.3. Responses

HTTP Code Description Schema

200

OK

201

Created

400

Bad Request

500

Internal Server Error

3.143.4. Consumes

  • application/json

3.143.5. Produces

  • application/json

3.143.6. Tags

  • Tokens

3.143.7. Example HTTP request

Request path
/v1/tokens
Request body
{
  "apiKey" : "string",
  "password" : "string",
  "username" : "string"
}

3.143.8. 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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.144. Refresh Access Token

PATCH /v1/tokens/access-token/refresh

3.144.1. Description

Refresh the access token associated with the given refresh token

3.144.2. Parameters

Type Name Description Schema

Body

refreshToken
required

refreshToken

string

3.144.3. Responses

HTTP Code Description Schema

200

OK

string

400

Bad Request

404

Not Found

500

Internal Server Error

3.144.4. Consumes

  • application/json

3.144.5. Produces

  • application/json

3.144.6. Tags

  • Tokens

3.144.7. Example HTTP request

Request path
/v1/tokens/access-token/refresh

3.144.8. Example HTTP response

Response 200
"string"
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.145. Invalidate Refresh Token

DELETE /v1/tokens/refresh-token

3.145.1. Description

Invalidate the provided refresh token

3.145.2. Parameters

Type Name Description Schema

Body

refreshToken
required

refreshToken

string

3.145.3. Responses

HTTP Code Description Schema

204

No content

No Content

3.145.4. Consumes

  • application/json

3.145.6. Tags

  • Tokens

3.146. refreshToken

PATCH /v1/tokens/refresh-tokens/{id}

3.146.1. Parameters

Type Name Description Schema

Path

id
required

id

string

3.146.2. Responses

HTTP Code Description Schema

200

OK

string

3.146.3. Consumes

  • application/json

3.146.4. Produces

  • application/json

3.146.5. Tags

  • Tokens

3.146.6. Example HTTP request

Request path
/v1/tokens/refresh-tokens/string

3.147. Get registered and available HSM details along with Software details

GET /v1/upgradables/domains/{domainId}/clusters

3.147.1. 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.

3.147.2. Parameters

Type Name Description Schema

Path

domainId
required

Domain ID

string

3.147.3. Responses

HTTP Code Description Schema

200

Ok

404

Domain Not Found

500

Internal Server Error

3.147.4. Consumes

  • application/json

3.147.5. Produces

  • application/json

3.147.6. Tags

  • Upgradables

3.147.7. Example HTTP request

Request path
/v1/upgradables/domains/string/clusters

3.147.8. Example HTTP response

Response 200
{
  "elements" : [ {
    "availableHardwareSupportManagers" : [ {
      "name" : "string",
      "packages" : [ {
        "name" : "string",
        "version" : "string"
      } ]
    } ],
    "configuredHardwareSupportManagers" : [ {
      "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.148. Get NSXT upgradable resources

GET /v1/upgradables/domains/{domainId}/nsxt

3.148.1. Description

Get the list NSXT upgradable reosurce with resource metadata info

3.148.2. 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

3.148.3. Responses

HTTP Code Description Schema

200

Ok

404

Bundle not found

500

Internal Server Error

3.148.4. Consumes

  • application/json

3.148.5. Produces

  • application/json

3.148.6. Tags

  • Upgradables

3.148.7. Example HTTP request

Request path
/v1/upgradables/domains/string/nsxt

3.148.8. Example HTTP response

Response 200
{
  "bundleId" : "string",
  "domainId" : "string",
  "nsxtEdgeClusters" : [ {
    "id" : "string",
    "name" : "string",
    "resourceHealth" : "string",
    "upgradeStatus" : "string",
    "version" : "string"
  } ],
  "nsxtHostClusters" : [ {
    "availableHardwareSupportManagers" : [ {
      "name" : "string",
      "packages" : [ {
        "name" : "string",
        "version" : "string"
      } ]
    } ],
    "configuredHardwareSupportManagers" : [ {
      "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.149. Perform Upgrade

POST /v1/upgrades

3.149.1. 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.

3.149.2. Parameters

Type Name Description Schema

Body

upgradeSpec
required

Upgrade Specification

3.149.3. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

403

Operation not allowed

500

Internal Server Error

3.149.4. Consumes

  • application/json

3.149.5. Produces

  • application/json

3.149.6. Tags

  • Upgrades

3.149.7. Example HTTP request

Request path
/v1/upgrades
Request body
{
  "bundleId" : "string",
  "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" : [ {
    "personalitySpec" : {
      "hardwareSupportSpecs" : [ {
        "name" : "string",
        "packageSpec" : {
          "name" : "string",
          "version" : "string"
        }
      } ],
      "personalityId" : "string"
    },
    "resourceId" : "string",
    "scheduledTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "shutdownVms" : true,
    "toVersion" : "string",
    "upgradeNow" : true
  } ]
}

3.149.8. Example HTTP response

Response 200
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 202
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.150. Get Upgrades

GET /v1/upgrades

3.150.1. Description

Get Upgrades

3.150.2. Parameters

Type Name Description Schema

Query

bundleId
optional

Bundle Id for the upgrade

string

Query

upgradeStatus
optional

Status of the upgrades you want to retrieve

string

3.150.3. Responses

HTTP Code Description Schema

200

OK

< Upgrade > array

404

Upgrade not found

500

Internal Server Error

3.150.4. Consumes

  • application/json

3.150.5. Produces

  • application/json

3.150.6. Tags

  • Upgrades

3.150.8. Example HTTP response

Response 200
[ {
  "bundleId" : "string",
  "id" : "string",
  "parallelUpgrade" : true,
  "resourceType" : "One among: DOMAIN, CLUSTER, UNASSIGNED_HOST",
  "resourceUpgradeSpecs" : [ {
    "personalitySpec" : {
      "hardwareSupportSpecs" : [ {
        "name" : "string",
        "packageSpec" : {
          "name" : "string",
          "version" : "string"
        }
      } ],
      "personalityId" : "string"
    },
    "resourceId" : "string",
    "scheduledTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "shutdownVms" : true,
    "toVersion" : "string",
    "upgradeNow" : true
  } ],
  "status" : "string",
  "taskId" : "string"
} ]
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.151. Get Upgrade By Id

GET /v1/upgrades/{upgradeId}

3.151.1. Description

Get Upgrade By Id

3.151.2. Parameters

Type Name Description Schema

Path

upgradeId
required

upgradeId

string

3.151.3. Responses

HTTP Code Description Schema

200

OK

404

Upgrade not found

500

Internal Server Error

3.151.4. Consumes

  • application/json

3.151.5. Produces

  • application/json

3.151.6. Tags

  • Upgrades

3.151.8. Example HTTP response

Response 200
{
  "bundleId" : "string",
  "id" : "string",
  "parallelUpgrade" : true,
  "resourceType" : "One among: DOMAIN, CLUSTER, UNASSIGNED_HOST",
  "resourceUpgradeSpecs" : [ {
    "personalitySpec" : {
      "hardwareSupportSpecs" : [ {
        "name" : "string",
        "packageSpec" : {
          "name" : "string",
          "version" : "string"
        }
      } ],
      "personalityId" : "string"
    },
    "resourceId" : "string",
    "scheduledTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "shutdownVms" : true,
    "toVersion" : "string",
    "upgradeNow" : true
  } ],
  "status" : "string",
  "taskId" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.152. Add users

POST /v1/users

3.152.1. Description

Add list of users

3.152.2. Parameters

Type Name Description Schema

Body

users
required

User data collection

< User > array

3.152.3. Responses

HTTP Code Description Schema

200

OK

201

Created

400

Bad request

401

Unauthorized Request

500

Internal Server Error

3.152.4. Consumes

  • application/json

3.152.5. Produces

  • application/json

3.152.7. 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"
} ]

3.152.8. 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"
  } ]
}
Response 201
{
  "elements" : [ {
    "apiKey" : "string",
    "creationTimestamp" : "string",
    "domain" : "string",
    "id" : "string",
    "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.153. Get all Users

GET /v1/users

3.153.1. Description

Get a list of all users

3.153.2. Responses

HTTP Code Description Schema

200

OK

400

Bad request

401

Unauthorized Request

500

Internal Server Error

3.153.3. Consumes

  • application/json

3.153.4. Produces

  • application/json

3.153.7. 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"
  } ]
}
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.154. Delete a user

DELETE /v1/users/{id}

3.154.1. Description

Delete the user by the ID, if it exists

3.154.2. Parameters

Type Name Description Schema

Path

id
required

ID of the user

string

3.154.3. Responses

HTTP Code Description Schema

204

No content

No Content

404

User not found

500

Internal server error

3.154.4. Consumes

  • application/json

3.154.8. Example HTTP response

Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.155. Get vCenters

GET /v1/vcenters

3.155.1. Parameters

Type Name Description Schema

Query

domainId
optional

ID of the domain

string

3.155.2. Responses

HTTP Code Description Schema

200

Ok

400

Bad Request

500

InternalServerError

3.155.3. Consumes

  • application/json

3.155.4. Produces

  • application/json

3.155.5. Tags

  • vCenters

3.155.7. Example HTTP response

Response 200
{
  "domain" : {
    "id" : "string",
    "name" : "string"
  },
  "fqdn" : "string",
  "id" : "string",
  "ipAddress" : "string"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.156. Get a vCenter

GET /v1/vcenters/{id}

3.156.1. Parameters

Type Name Description Schema

Path

id
required

vCenter ID

string

3.156.2. Responses

HTTP Code Description Schema

200

Ok

404

vCenter not found

500

InternalServerError

3.156.3. Consumes

  • application/json

3.156.4. Produces

  • application/json

3.156.5. Tags

  • vCenters

3.156.7. Example HTTP response

Response 200
{
  "domain" : {
    "id" : "string",
    "name" : "string"
  },
  "fqdn" : "string",
  "id" : "string",
  "ipAddress" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.157. Get the VcfServices

GET /v1/vcf-services

3.157.1. Responses

HTTP Code Description Schema

200

Ok

400

Bad Request

500

InternalServerError

3.157.2. Consumes

  • application/json

3.157.3. Produces

  • application/json

3.157.4. Tags

  • VcfServices

3.157.6. Example HTTP response

Response 200
{
  "id" : "string",
  "name" : "string",
  "version" : "string"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.158. Get a VcfService

GET /v1/vcf-services/{id}

3.158.1. Parameters

Type Name Description Schema

Path

id
required

VcfService ID

string

3.158.2. Responses

HTTP Code Description Schema

200

Ok

404

VcfService not found

500

InternalServerError

3.158.3. Consumes

  • application/json

3.158.4. Produces

  • application/json

3.158.5. Tags

  • VcfServices

3.158.7. Example HTTP response

Response 200
{
  "id" : "string",
  "name" : "string",
  "version" : "string"
}
Response 404
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.159. Get the existing vRealize Suite Lifecycle Manager

GET /v1/vrslcm

3.159.1. Description

Gets the complete information about the existing vRealize Suite Lifecycle Manager instance.

3.159.2. Responses

HTTP Code Description Schema

200

OK

404

Not Found

No Content

3.159.3. Consumes

  • application/json

3.159.4. Produces

  • application/json

3.159.5. Tags

  • vRSLCM

3.159.7. Example HTTP response

Response 200
{
  "fqdn" : "string",
  "id" : "string",
  "ipAddress" : "string",
  "status" : "string",
  "version" : "string"
}

3.160. Rollback vRealize Suite Lifecycle Manager after unsuccessful deployment

DELETE /v1/vrslcm

3.160.1. Description

Triggers the vRealize Suite Lifecycle Manager rollback operation and returns an URL in the headers to track the operation status.

3.160.2. Responses

HTTP Code Description Schema

202

Accepted

405

Method Not Allowed

3.160.3. Consumes

  • application/json

3.160.4. Produces

  • application/json

3.160.5. Tags

  • vRSLCM

3.160.7. Example HTTP response

Response 202
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 405
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.161. Redeploy vRealize Suite Lifecycle Manager

PATCH /v1/vrslcm

3.161.1. Description

Triggers the vRealize Suite Lifecycle Manager redeployment operation and returns an URL in the headers to track the operation status.

3.161.2. Responses

HTTP Code Description Schema

202

Accepted

400

Bad Request

405

Method Not Allowed

3.161.3. Consumes

  • application/json

3.161.4. Produces

  • application/json

3.161.5. Tags

  • vRSLCM

3.161.7. Example HTTP response

Response 202
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.162. Deploy vRealize Suite Lifecycle Manager

POST /v1/vrslcms

3.162.1. Description

Triggers the vRealize Suite Lifecycle Manager deployment operation and returns an URL in the headers to track the operation status.

3.162.2. Parameters

Type Name Description Schema

Body

vrslcmPublicDeploymentSpec
required

vRealize Suite Lifecycle Manager Deployment Specification

3.162.3. Responses

HTTP Code Description Schema

202

Accepted

400

Bad Request

405

Method Not Allowed

500

Internal Server Error

3.162.4. Consumes

  • application/json

3.162.5. Produces

  • application/json

3.162.6. Tags

  • vRSLCM

3.162.7. Example HTTP request

Request path
/v1/vrslcms
Request body
{
  "apiPassword" : "string",
  "fqdn" : "vrslcm.vrack.vsphere.local",
  "networkSpec" : {
    "gateway" : "10.0.1.250",
    "subnetMask" : "255.255.252.0",
    "vlanId" : "2042"
  },
  "sshPassword" : "string"
}

3.162.8. Example HTTP response

Response 202
{
  "completionTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "creationTimestamp" : {
    "epochSecond" : 0,
    "nano" : 0
  },
  "errors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "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",
    "type" : "string"
  } ],
  "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED, CANCELLED",
  "subTasks" : [ {
    "completionTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "description" : "string",
    "errors" : [ {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ "..." ],
      "referenceToken" : "string",
      "remediationMessage" : "string"
    } ],
    "name" : "string",
    "resources" : [ {
      "fqdn" : "string",
      "name" : "string",
      "resourceId" : "string",
      "type" : "string"
    } ],
    "stages" : [ {
      "completionTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "description" : "string",
      "name" : "string",
      "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
      "type" : "string"
    } ],
    "status" : "One among: PENDING, IN_PROGRESS, SUCCESSFUL, FAILED",
    "type" : "string"
  } ],
  "type" : "Sample values: HOST_COMMISSION, HOST_DECOMMISSION"
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.163. Get all existing vRealize Suite Lifecycle Manager instances

GET /v1/vrslcms

3.163.1. Responses

HTTP Code Description Schema

200

OK

3.163.2. Consumes

  • application/json

3.163.3. Produces

  • application/json

3.163.4. Tags

  • vRSLCM

3.163.6. Example HTTP response

Response 200
{
  "fqdn" : "string",
  "id" : "string",
  "ipAddress" : "string",
  "status" : "string",
  "version" : "string"
}

3.164. Validate the input specification for vRealize Suite Lifecycle Manager deployment

POST /v1/vrslcms/validations

3.164.1. Description

Triggers vRealize Suite Lifecycle Manager deployment specification validation workflow

3.164.2. Parameters

Type Name Description Schema

Body

vrslcmPublicDeploymentSpec
required

vRealize Suite Lifecycle Manager Deployment Specification

3.164.3. Responses

HTTP Code Description Schema

202

Accepted

400

Bad Request

3.164.4. Consumes

  • application/json

3.164.5. Produces

  • application/json

3.164.6. Tags

  • vRSLCM

3.164.7. Example HTTP request

Request path
/v1/vrslcms/validations
Request body
{
  "apiPassword" : "string",
  "fqdn" : "vrslcm.vrack.vsphere.local",
  "networkSpec" : {
    "gateway" : "10.0.1.250",
    "subnetMask" : "255.255.252.0",
    "vlanId" : "2042"
  },
  "sshPassword" : "string"
}

3.164.8. Example HTTP response

Response 202
{
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "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",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: SUCCEEDED, FAILED",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: SUCCEEDED, FAILED",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "string",
    "message" : "string",
    "nestedErrors" : [ "..." ],
    "referenceToken" : "string",
    "remediationMessage" : "string"
  } ],
  "referenceToken" : "string",
  "remediationMessage" : "string"
}

3.165. Get the status of the validations for vRealize Lifecycle Manager deployment

GET /v1/vrslcms/validations/{id}

3.165.1. Description

Gets the status of given vRealize Suite Lifecycle Manager validation workflow by given validation id

3.165.2. Parameters

Type Name Description Schema

Path

id
required

vRealize validation id

string

3.165.3. Responses

HTTP Code Description Schema

200

OK

400

Bad Request

404

Not Found

3.165.4. Consumes

  • application/json

3.165.5. Produces

  • application/json

3.165.6. Tags

  • vRSLCM

3.165.7. Example HTTP request

Request path
/v1/vrslcms/validations/string

3.165.8. Example HTTP response

Response 200
{
  "description" : "string",
  "executionStatus" : "One among: IN_PROGRESS, FAILED, COMPLETED, SKIPPED, CANCELLED",
  "id" : "string",
  "resultStatus" : "One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS",
  "validationChecks" : [ {
    "description" : "string",
    "errorResponse" : {
      "arguments" : [ "string" ],
      "causes" : [ {
        "message" : "string",
        "type" : "string"
      } ],
      "context" : {
        "string" : "string"
      },
      "errorCode" : "string",
      "message" : "string",
      "nestedErrors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "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",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      },
      "nestedValidationChecks" : [ "..." ],
      "resultStatus" : "One among: SUCCEEDED, FAILED",
      "severity" : "One among: WARNING, ERROR, INFO"
    } ],
    "resultStatus" : "One among: SUCCEEDED, FAILED",
    "severity" : "One among: WARNING, ERROR, INFO"
  } ]
}
Response 400
{
  "arguments" : [ "string" ],
  "causes" : [ {
    "message" : "string",
    "type" : "string"
  } ],
  "context" : {
    "string" : "string"
  },
  "errorCode" : "string",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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",
  "message" : "string",
  "nestedErrors" : [ {
    "arguments" : [ "string" ],
    "causes" : [ {
      "message" : "string",
      "type" : "string"
    } ],
    "context" : {
      "string" : "string"
    },
    "errorCode" : "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, 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, LCM_REPO, VRA, VRSLCM, DEPOT_USER, VXRAIL_MANAGER, AD, BACKUP"

string

serviceType
required

Service type
Example : "One among: ESXI, VCENTER, PSC, NSX_MANAGER, NSX_CONTROLLER, NSX_EDGE, NSXT_MANAGER, NSXT_EDGE, VRLI, VROPS, LCM_REPO, VRA, VRSLCM, DEPOT_USER, VXRAIL_MANAGER, AD, BACKUP"

string

targetType
required

Target type
Example : "One among: ESXI, VCENTER, PSC, NSX_MANAGER, NSX_CONTROLLER, NSX_EDGE, NSXT_MANAGER, NSXT_EDGE, VRLI, VROPS, LCM_REPO, VRA, VRSLCM, DEPOT_USER, VXRAIL_MANAGER, AD, BACKUP"

string

4.5. Avn

Defines an Application virtual Network (AVN) and its attributes

Name Description Schema

domainName
required

AVN search domain
Example : "sfo01.rainpole.local"

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 : 1500

integer (int32)

name
required

User provided name of the AVN
Example : "vRealize-AVN"

string

portGroupName
required

Port group name identifying the AVN on the distributed switch
Example : "Mgmt-RegionA-PortGroup"

string

regionType
required

The region type of AVN; X_REGION or REGION_A
Example : "REGION_A"

string

routerName
required

Name of routing NSX edge AVN is connected to
Example : "sfo01m01udlr-01"

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

4.6. 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.7. 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.8. 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 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.9. BackupResource

Element specification to trigger backup

Name Description Schema

resourceType
required

Resource type
Example : "SDDC_MANAGER"

string

4.10. 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

4.11. BackupSpec

Backup Specification

Name Description Schema

elements
required

List of elements to be backed up
Example : [ "BackupResource" ]

< BackupResource > array

4.12. 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.13. 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.14. BaseCredential

Represents credentials of a resource in the system

Name Description Schema

credentialType
required

Credential type
Example : "One among: SSO, SSH, API, BASIC_AUTH, ADMINISTRATOR, FTP, JDBC, LDAP_DOMAIN_ADMIN, LDAP_READ_WRITE_ACCOUNT, VDI_ADMIN, SQL_SUPER_USER, SQL_DB_OWNER, AUDIT, SERVICE_ACCOUNT"

string

password
optional

Password
Example : "string"

string

username
required

Username
Example : "string"

string

4.15. 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.16. 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.17. BgpNeighbour

NSX Edge BGP Neighbour Specification

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.18. BootstrapSpec

Name Description Schema

federationName
optional

Example : "string"

string

memberJoinDetail
optional

Example : MemberDetail

4.19. 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"

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 : Instant

severity
required

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.20. 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 : Instant

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.21. 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 : Instant

4.22. 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.23. 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.24. 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.25. 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.26. 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.27. 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.28. CeipUpdateSpec

Specification for CEIP state change

Name Description Schema

status
required

User provided CEIP operation
Example : "One among: ENABLE, DISABLE"

string

4.29. 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 : Instant

notBefore
required

The timestamp before which certificate is not valid
Example : Instant

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.30. 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.31. 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.32. 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.33. 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.34. 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"

string

vdsSpecs
optional

Distributed switches to added to the cluster
Example : [ "VdsSpec" ]

< VdsSpec > array

4.35. 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

hosts
optional

List of vSphere hosts to be removed
Example : [ "HostReference" ]

< HostReference > array

4.36. ClusterCreationSpec

This specification contains 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.37. 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.38. 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

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

vsanNetworkSpecs
optional

vSAN Network Pool Spec
Example : [ "VSANNetworkSpec" ]

< VSANNetworkSpec > array

witnessSpec
optional

Witness host Info
Example : WitnessSpec

4.39. ClusterQueryResponse

Represents a cluster query response.

Name Description Schema

queryInfo
optional

Query info
Example : QueryInfo

result
optional

Query result
Example : PageOfCluster

4.40. ClusterReference

Represents a reference to the cluster

Name Description Schema

id
required

ID of the cluster
Example : "string"

string

4.41. 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
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

vxRailDetails
optional

Contains the VxRail Manager details
Example : VxRailDetails

4.42. 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

4.43. ClusterUnstretchSpec

This spec contains the parameters required to convert a Stretched cluster to a Standard vSAN cluster

4.44. 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.45. 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.46. 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.47. 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

4.48. 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.49. 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.50. Credential

Represents a credential and the resource to which it is associated with

Name Description Schema

creationTimestamp
required

The timestamp at which credential was created
Example : Instant

credentialType
required

Credential type
Example : "One among: SSO, SSH, API, BASIC_AUTH, ADMINISTRATOR, FTP, JDBC, LDAP_DOMAIN_ADMIN, LDAP_READ_WRITE_ACCOUNT, VDI_ADMIN, SQL_SUPER_USER, SQL_DB_OWNER, AUDIT, SERVICE_ACCOUNT"

string

id
required

Credential ID
Example : "string"

string

modificationTimestamp
required

The timestamp at which credential was last modified
Example : Instant

password
optional

Password
Example : "string"

string

resource
required

The resource which owns the credential
Example : AuthenticatedResource

username
required

Username
Example : "string"

string

4.51. CredentialsSubTask

Represents the credentials sub-task in the system

Name Description Schema

creationTimestamp
optional

Credential sub-task creation timestamp
Example : Instant

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

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

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.52. CredentialsTask

Represents the credentials task in the system

Name Description Schema

creationTimestamp
optional

Credential task creation timestamp
Example : Instant

errors
optional

List of errors in case of a failure
Example : [ "Error" ]

< Error > array

id
optional

Credential task ID
Example : "string"

string

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"

string

4.53. CredentialsUpdateSpec

This specification contains password operation request details

Name Description Schema

elements
required

List of resource credentials to be changed
Example : [ "ResourceCredentials" ]

operationType
required

Operation type
Example : "One among: UPDATE, ROTATE"

string

4.54. 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.55. 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.56. 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.57. 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.58. 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

4.59. DateTimeDetail

Name Description Schema

dateTime
optional

Example : "string"

string

timestamp
optional

Example : 0

integer (int64)

4.60. 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.61. 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.62. 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.63. DnsConfiguration

DNS Configuration

Name Description Schema

dnsServers
required

List of DNS servers
Example : [ "DnsServer" ]

< DnsServer > array

4.64. 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.65. 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.66. Domain

Represents a domain

Name Description Schema

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

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.67. 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.68. 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.69. 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.70. DomainSummary

Name Description Schema

aggregatedCapacity
optional

Example : ResourceCapacity

domainCount
optional

Example : 0

integer (int32)

type
optional

Example : "string"

string

4.71. 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

nsxTSpec
optional

NSX-T Specification for the domain
Example : NsxTSpec

4.72. 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, PUBLIC, MANAGEMENT, NSX_VTEP, HOSTMANAGEMENT, CLOUD_VENDOR_API, REPLICATION, DATACENTER_NETWORK, NSX_VXLAN, NON_ROUTABLE, CLOUD_VENDOR_API, OOB, CROSS_VPC, UPLINK01, UPLINK02, STORAGE, UDLR, DLR, X_REGION, REGION_SPECIFIC, REMOTE_REGION_SPECIFIC, COMPUTE, MANAGEMENT_VM, NSXT_EDGE_TEP, NSXT_HOST_OVERLAY"

< 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.73. EdgeCluster

EdgeCluster representation

Name Description Schema

clusters
optional

List of clusters associated with the edge cluster
Example : [ "ClusterReference" ]

< ClusterReference > 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.74. 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: LARGE, MEDIUM, SMALL"

string

edgeNodeSpecs
required

Specifications for Edge Node
Example : [ "NsxTEdgeNodeSpec" ]

< NsxTEdgeNodeSpec > array

edgeRootPassword
required

Edge Password for root user.
Example : "string"

string

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

4.75. Encryption

Restore Specification

Name Description Schema

passphrase
required

Passphrase
Example : "string"

string

4.76. 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.77. 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

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.78. 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.79. 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.80. FcSpec

Cluster storage configuration for VMFS on FC

Name Description Schema

datastoreName
required

Datastore name used for cluster creation
Example : "string"

string

4.81. FederationOperationError

Name Description Schema

error
optional

Example : "string"

string

errorPack
optional

suggestedRemedy
optional

Example : "string"

string

suggestedRemedyPack
optional

4.82. 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.83. 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.84. HardwareSupportPackage

Configured Hardware Support Manager details

Name Description Schema

name
required

Hardware Support Manager Name
Example : "string"

string

pkg
required

Hardware Support Package
Example : PackageSpec

4.85. 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.86. HardwareSupportPackages

Available Hardware Support Manager details

Name Description Schema

name
required

Hardware Support Manager Name
Example : "string"

string

packages
required

Hardware Support Packages
Example : [ "PackageSpec" ]

< PackageSpec > array

4.87. 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.88. HighAvailability

This specification contains high availability settings

Name Description Schema

enabled
required

Example : true

boolean

4.89. 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

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

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.90. 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

storageType
required

Storage Type
Example : "One among: VSAN, NFS, VMFS_FC"

string

username
required

Username of the host
Example : "string"

string

4.91. HostCount

Name Description Schema

total
optional

Example : 0

integer (int32)

unallocated
optional

Example : 0

integer (int32)

used
optional

Example : 0

integer (int32)

4.92. 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"

string

4.93. 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.94. 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.95. HostQueryResponse

Represents a host query response.

Name Description Schema

queryInfo
optional

Query info
Example : QueryInfo

result
optional

Query result
Example : PageOfHost

4.96. HostReference

Represents an ESXi host reference

Name Description Schema

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

4.97. 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

username
optional

Username of the vSphere host
Example : "string"

string

4.98. 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, PUBLIC, MANAGEMENT, NSX_VTEP, HOSTMANAGEMENT, CLOUD_VENDOR_API, REPLICATION"

string

4.99. Instant

Name Description Schema

epochSecond
optional

Example : 0

integer (int64)

nano
optional

Example : 0

integer (int32)

4.100. InventoryInfo

Name Description Schema

hostCount
optional

Example : HostCount

4.101. 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.102. 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.103. 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
required

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.104. 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.105. 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.106. 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

4.107. 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.108. LicenseKeyValidity

Defines license key validity details

Name Description Schema

expiryDate
optional

The license key expiry date
Example : Instant

licenseKeyStatus
optional

The validity status of the license key
Example : "One among: EXPIRED, ACTIVE, NEVER_EXPIRES"

string

4.109. 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.112. MapOfstringAndstring

Type : < string, string > map

4.113. MemberCapacityInfo

Name Description Schema

summary
optional

Example : CapacitySummary

4.114. 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.115. 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.116. MemberHealth

Name Description Schema

healthCode
optional

Example : "GREEN"

enum (GREEN, YELLOW, RED)

healthDetails
optional

Example : [ "string" ]

< string > array

4.117. MemberInfo

Name Description Schema

memberDetails
optional

Example : MemberDetail

memberHealth
optional

Example : MemberHealth

memberInventory
optional

Example : MemberInventory

memberLiveness
optional

Example : MemberLiveliness

4.118. MemberInventory

Name Description Schema

capacity
optional

Example : MemberCapacityInfo

creationTime
optional

Example : Instant

inventoryInfo
optional

Example : InventoryInfo

softwareInfo
optional

Example : MemberSoftwareInfo

4.119. MemberJoinSpec

Name Description Schema

commonName
optional

Example : "string"

string

controllerFqdn
optional

Example : "string"

string

joinToken
optional

Example : "string"

string

memberJoinDetail
optional

Example : MemberDetail

4.120. MemberLiveliness

Name Description Schema

livelinessCode
optional

Example : "GREEN"

enum (GREEN, YELLOW, RED)

livelinessDetails
optional

Example : [ "string" ]

< string > array

4.121. MemberSoftwareInfo

Name Description Schema

pendingUpdates
optional

Example : 0

integer (int32)

4.122. 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.123. 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.124. 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.125. MessageBusServerInfoList

Name Description Schema

messageBusServersInfo
optional

Example : [ "MessageBusServerInfo" ]

4.126. 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.127. 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.128. 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.129. 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.130. 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.131. 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.132. 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.133. 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.134. 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.135. 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.136. 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.137. NiocTrafficResourceAllocation

Specify network traffic for a resource

Name Description Schema

limit
required

Example : 0

integer (int64)

reservation
required

Example : 0

integer (int64)

4.138. 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.139. 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.140. 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

isShared
optional

Boolean to identify if the NSX-T cluster can be 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

vip
optional

VIP (Virtual IP Address) of the cluster
Example : "string"

string

vipFqdn
optional

FQDN for VIP of the cluster
Example : "string"

string

4.141. 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.142. NsxTClusterSpec

This specification contains NSX-T configuration for a new cluster.

Name Description Schema

geneveVlanId
optional

Vlan id of Geneve
Example : 0

integer (int32)

4.143. 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.144. 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)

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

uplinkNetwork
required

Specifications of uplinks for the Edge Node
Example : [ "NsxTEdgeUplinkNetwork" ]

4.145. NsxTEdgeUplinkNetwork

This specification contains input parameters required to configure uplink network for NSX-T edge node VM

Name Description Schema

asnPeer
required

ASN of Peer
Example : 0

integer (int64)

bgpPeerPassword
required

BGP Peer Password
Example : "string"

string

peerIP
required

BGP Peer IP
Example : "string"

string

uplinkInterfaceIP
required

Uplink IP
Example : "string"

string

uplinkVlan
required

Uplink Vlan
Example : 0

integer (int32)

4.146. NsxTManager

NSX-T Manager representation

Name Description Schema

fqdn
optional

FQDN 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.147. NsxTSpec

This specification contains the parameters required to install and configure NSX-T in a workload domain

Name Description Schema

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.148. 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.149. 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.150. NsxtEdgeSpec

NSX-T edge specification

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:compact"

enum (Oneamong:compact, large, quadlarge, 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.151. 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.152. 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.153. NsxtInterface

NSX-T edge node interface specification

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.154. NsxtLogicalSegment

NSX-T edge node logical segment specification

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.155. 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.156. 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.157. 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.158. 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.159. 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.160. 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.161. 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.162. NtpConfiguration

NTP Configuration

Name Description Schema

ntpServers
required

List of NTP servers
Example : [ "NtpServer" ]

< NtpServer > array

4.163. NtpServer

NTP server details

Name Description Schema

ipAddress
required

IP address/FQDN of NTP server
Example : "10.0.0.250"

string

4.164. 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.165. Package

Hardware Support Package Specification

Name Description Schema

name
required

Package name
Example : "string"

string

version
required

Package version
Example : "string"

string

4.166. PackageSpec

Hardware Support Package Specification

Name Description Schema

name
required

Package name
Example : "string"

string

version
required

Package version
Example : "string"

string

4.167. 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

4.168. 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

4.169. 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

4.170. 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" ]

4.171. 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

4.172. 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

4.173. 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

4.174. 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

4.175. 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

4.176. 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

4.177. 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

4.178. 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

4.179. 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

4.180. 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

4.181. 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

4.182. 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

4.183. 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

4.184. 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

4.185. 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

4.186. 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

4.187. 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

4.188. 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

4.189. 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

4.190. 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

4.191. 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

4.192. 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.193. 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

4.194. 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

4.195. 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

4.196. 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

4.197. 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" ]

4.198. 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

4.199. 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

4.200. 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.201. 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.202. 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.203. 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.204. 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.205. 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.206. 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.207. 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

4.208. PortgroupSpec

This specification contains vCenter port group configurations

Name Description Schema

name
required

Port group name
Example : "string"

string

transportType
required

Port group transport type
Example : "One among: VSAN, VMOTION, MANAGEMENT, PUBLIC, NFS"

string

4.209. PositionCoordinate

Name Description Schema

latitude
optional

Example : 0.0

number (double)

longitude
optional

Example : 0.0

number (double)

4.210. 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

resources
required

List of resources for Precheck supported type DOMAIN, CLUSTER
Example : [ "Resource" ]

< Resource > array

4.211. 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.212. 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.213. PscSsoSpec

Spec contains parameters for Platform Services Controller SSO

Name Description Schema

replicationPartner
optional

PSC Replication Partner, Its mandatory for secondary regionIf deploying 2 PSC’s, For 2nd PSC in Primary Region/Secondary Region - Its hostname of first PSCFor Secondary Region 1st PSC - User specified
Example : "string"

string

ssoDomain
optional

PSC SSO Domain,its mandatory for secondary region and if deploying 2 PSC’s
Example : "string"

string

4.214. 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.215. 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.216. RemoteResponsePayload

Name Description Schema

assignedBrokerId
optional

Example : 0

integer (int32)

assignedZkId
optional

Example : 0

integer (int32)

mbServers
optional

srServers
optional

zkServers
optional

4.217. RemoteSiteSpec

Spec contains parameters for Remote site products

Name Description Schema

clusterName
optional

Remote region cluster name for mapping
Example : "string"

string

datacenterName
optional

Remote region datacenter name for mapping
Example : "string"

string

logicalSwitchNames
optional

Logical switch names for network mapping
Example : [ "string" ]

< string > array

nsxCredentials
optional

Remote region NSX credentials
Example : SddcCredentials

nsxIp
optional

Remote region NSX IP address
Length : 7 - 15
Example : "string"

string

placeholderDatastore
optional

Remote region placeholder datastore
Example : "string"

string

pscAddress
optional

Remote region PSC address
Example : "string"

string

remoteRegionVmFolders
optional

Remote region VM folders for explicit mapping
Example : {
"string" : "string"
}

< string, string > map

vcCredentials
optional

Remote region VC/PSC credentials
Example : SddcCredentials

vcMgmtIp
optional

Remote region vC IP address
Length : 7 - 15
Example : "string"

string

4.218. Resource

Represents the resource in the system

Name Description Schema

fqdn
optional

Resource FQDN
Example : "string"

string

name
required

Name of the resource
Example : "string"

string

resourceId
required

Resource ID
Example : "string"

string

type
required

Resource type
Example : "string"

string

4.219. ResourceCapacity

Name Description Schema

cpu
optional

Example : CPU

CPU

datastores
optional

Example : [ "Datastore" ]

< Datastore > array

hostCount
optional

Example : HostCount

memory
optional

Example : Memory

4.220. 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, LCM_REPO, VRA, VRSLCM, DEPOT_USER, VXRAIL_MANAGER, AD, BACKUP"

string

4.221. 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.222. ResourceUpgradeSpec

Resource Upgrade Specification

Name Description Schema

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 : Instant

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.223. 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.224. 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.225. RoleReference

Represents a role reference

Name Description Schema

id
required

ID of the role
Example : "string"

string

4.226. SchemaRegistryServerInfo

Name Description Schema

hostAddress
optional

Example : "string"

string

port
optional

Example : 0

integer (int32)

protocol
optional

Example : "string"

string

4.227. SchemaRegistryServerInfoList

Name Description Schema

schemaRegistryServersInfo
optional

Example : [ "SchemaRegistryServerInfo" ]

4.228. 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 : {
"string" : "string"
}

< string, string > map

4.229. SddcCredentials

Credentials contains the username and password

Name Description Schema

password
required

Password
Example : "Admin!23"

string

username
required

Username
Example : "root"

string

4.230. 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
Example : "string"

string

sslThumbprint
optional

Host SSL thumbprint
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.231. SddcManager

Sddc Manager representation

Name Description Schema

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.232. SddcManagerSpec

Client input parameters for SDDC Manager Virtual Machine

Name Description Schema

hostname
required

SddcManager 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

netmask
required

Sddc manager netmask
Example : "string"

string

restApiCredentials
required

Basic Auth Credentials for authenticating into SDDC Manager API, UserName must be adminPassword needs to be a strong password with at least one alphabet and one special character and at least 8 characters in length.
Example : SddcCredentials

rootUserCredentials
required

Root user credentials for the SddcManager VM, UserName must be rootPassword 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 SddcManager VM, UserName must be vrackPassword 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.233. 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, PUBLIC, MANAGEMENT, NSX_VTEP, HOSTMANAGEMENT, CLOUD_VENDOR_API, REPLICATION, DATACENTER_NETWORK, NSX_VXLAN, NON_ROUTABLE, CLOUD_VENDOR_API, OOB, CROSS_VPC, UPLINK01, UPLINK02, STORAGE, UDLR, DLR, X_REGION, REGION_SPECIFIC, REMOTE_REGION_SPECIFIC, COMPUTE, MANAGEMENT_VM, NSXT_EDGE_TEP, NSXT_HOST_OVERLAY"

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.234. SddcNsxtEdgeNodeSpec

NSX-T edge node specification

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.235. SddcNsxtEdgeServicesSpec

NSX-T Edge Services Specification

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.236. SddcNsxtSpec

Spec contains parameters for NSX-T deployment and configurations

Name Description Schema

logicalSegments
optional

NSX-T logical segment
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
Example : NsxtEdgeSpec

nsxtLicense
required

NSX-T Manager license
Example : "string"

string

nsxtManagerSize
required

NSX-T Manager size
Example : "One among:extra_small, small, 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.237. 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

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.
Example : "sfo01-m01"

string

sddcManagerSpec
optional

Sddc Manager Virtual Machine spec
Example : SddcManagerSpec

shouldCleanupVsan
optional

Flag indicating whether cleanup vSAN should be ran
Example : false

boolean

skipEsxThumbprintValidation
optional

Skip ESXi thumbprint 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

vxRailSpec
optional

VxRail environment details
Example : VxRailSpec

4.238. SddcSubTask

Represents a SDDC sub-task

Name Description Schema

creationTimestamp
optional

Sub-Task Creation Time
Example : Instant

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 : Instant

4.239. SddcTask

Represents a SDDC task

Name Description Schema

creationTimestamp
optional

SDDC Task creation timestamp
Example : Instant

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.240. 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

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.241. 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.242. 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.243. 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.244. 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.245. Stage

Represents a Stage

Name Description Schema

completionTimestamp
optional

Example : Instant

creationTimestamp
optional

Example : Instant

description
optional

Stage description
Example : "string"

string

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.246. 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.247. SubTask

Represents a sub-task

Name Description Schema

completionTimestamp
optional

Sub-task completion timestamp
Example : Instant

creationTimestamp
optional

Sub-task creation timestamp
Example : Instant

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

type
optional

Sub-task type
Example : "string"

string

4.248. Task

Represents a task

Name Description Schema

completionTimestamp
optional

Task completion timestamp
Example : Instant

creationTimestamp
optional

Task creation timestamp
Example : Instant

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.249. 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.250. 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.251. 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.252. 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.253. 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.254. 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.255. 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.256. 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.257. 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

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.258. UpgradeSpec

Upgrade Specification

Name Description Schema

bundleId
required

Bundle ID for Upgrade
Example : "string"

string

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.259. 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.260. 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.261. Validation

Represents a validation with a list of one or more validation checks that are performed as part of the validation

Name Description Schema

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"

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"

string

validationChecks
optional

List of one or more validation checks that are performed as part of the validation
Example : [ "ValidationCheck" ]

< ValidationCheck > array

4.262. 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: SUCCEEDED, FAILED"

string

severity
optional

Severity of the validation check
Example : "One among: WARNING, ERROR, INFO"

string

4.263. 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

4.264. 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.265. 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

licenseKey
optional

vCenter license key
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

4.266. 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

version
optional

Version of the service
Example : "string"

string

4.267. 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.268. 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.269. 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

versionAliasesForBundleComponentTypes
required

List of version aliases for bundle component types.
Example : [ "VersionAliasesForBundleComponentType" ]

4.270. 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

vdsName
optional

VDS name to associate with vSphere host
Example : "string"

string

4.271. VmfsDatastoreSpec

Cluster storage configuration for VMFS

Name Description Schema

fcSpec
optional

Cluster storage configuration for VMFS on FC
Example : [ "FcSpec" ]

< FcSpec > array

4.272. VrealizeNetworkSpec

This specification contains input parameters for a vRealize network.

Name Description Schema

gateway
required

The gateway address for a vRealize network
Example : "10.0.1.250"

string

subnetMask
required

The subnet mask for a vRealize network
Example : "255.255.252.0"

string

vlanId
required

The VLAN ID for a vRealize network
Example : "2042"

string

4.273. 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.274. 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

networkSpec
optional

Deprecated: Specification for the vRealize Network that will be used for the deployment.
Example : VrealizeNetworkSpec

sshPassword
required

The password for a root user of vRealize Suite Lifecycle Manager appliance
Example : "string"

string

4.275. 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.276. 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.277. 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

vxManagerHostName
required

VxManager host name
Example : "string"

string

4.278. VxRailDetails

Contains the VxRail Manager details

Name Description Schema

adminCredentials
optional

VxRail Manager admin credentials
Example : UnmanagedResourceCredential

rootCredentials
optional

VxRail Manager root credentials
Example : UnmanagedResourceCredential

4.279. VxRailSpec

Spec contains parameters for VxRail

Name Description Schema

vxRailObjectNames
optional

Map of VxRail object types and names
Example : {
"string" : "string"
}

< string, string > map

4.280. 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.281. 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.282. 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_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 IP address {0}

DM_HOST_NOT_REACHABLE.remedy

Please check the connectivity to host with IP 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 IP 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_INVENTIORY_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.

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 cluster {0} and provided host license {1} has no Workload Management feature

5.1.2. Common

Error code Description

CLUSTERSPEC_VALIDATION_FAILED

Failed to validate cluster spec

CLUSTEREXPANSION_SPEC_VALIDATION_FAILED

Failed to validate cluster expansion spec

CLUSTERSTRETCH_SPEC_VALIDATION_FAILED

Failed to validate stretch cluster spec

INTERNAL_SERVER_ERROR

InternalServerError

UNSUPPORTED_OPERATION

This operation is not supported for this SKU type

BAD_REQUEST

Bad Request

DOMAINSPEC_VALIDATION_FAILED

Failed to validate domain spec

HOST_IN_SPEC_VALIDATION_FAILED

Failed to validate hosts in given spec with errors {0}

SKUTYPE_NOT_SUPPORTED

Given SKU type is not supported

OPERATION_NOT_SUPPORTED

Operation not supported for current environment

EDGESPEC_VALIDATION_FAILED

Failed to validate edge cluster creation spec. {0}

CRITERIA_NOT_FOUND

Criteria with name {0} does not exist

VALIDATION_IN_PROGRESS

Validation is still in progess for the task {0}

NULL_CRITERIA

Criteria cannot be an empty or null value

INVALID_INPUT_FOR_CRITERIA

Invalid input for critera with name {0}, please correct and retry the operation

UNSTRETCH_NOT_SUPPORTED

Unstretch operation not supported

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

REMOVE_VI_NOT_INITIALIZED

Vi removal for domain {0} is not initialized

HOST_CRITERION_DOES_NOT_EXIST

Host criteria with name {0} does not exist

CLUSTER_CRITERION_DOES_NOT_EXIST

Cluster criteria with name {0} does not exist

DOMAIN_NOT_FOUND_FOR_ID

Domain not found for id {0}

VALIDATION_TASK_NOT_FOUND

Task not found for the validation id {0}

5.1.4. Clusters

Error code Description

CLUSTER_NOT_FOUND_FOR_ID

Cluster with ID {0} not found.

HOST_CRITERION_DOES_NOT_EXIST

Host criterion {0} does not exist.

CRITERIA_NOT_FOUND

No host criteria found.

VALIDATION_TASK_NOT_FOUND

No validation task found.

REMOVE_CLUSTER_WCP_ENABLED_ERROR

Can’t remove WCP enabled cluster {0}.

5.1.5. Credentials

Error code Description

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_KEY_NOT_FOUND

License key with UUID {0} does not exist.

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.

RESOURCE_NOT_FOUND

Resource with UUID {0} does not exist.

RESOURCE_NOT_FOUND.remedy

Try again with proper resource UUID.

OPERATION_NOT_SUPPORTED

Operation is not supported.

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.

LOCK_NOT_AVAILABLE

Lock not available.

LOCK_NOT_AVAILABLE.remedy

None.

FAILED_TO_ACQUIRE_LOCK

Failed to acquire lock.

FAILED_TO_ACQUIRE_LOCK.remedy

None.

FAILED_TO_RELEASE_LOCK

Failed to release lock.

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.

DOMAIN_NOT_ACTIVE

Domain(s) {0} not in active state.

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

SUCCESS

Success

NETWORKPOOL_NOT_FOUND

The network pool with ID {0} does not exist

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

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

INTERNAL_SERVER_ERROR

Internal Server Error

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

5.1.8. Tasks

Error code Description

5.1.9. Inventory

Error code Description

RESOURCE_VALIDATION_ERRORS

{0} validation failed with errors {1}

RESOURCE_VALIDATION_FAILED

{0} validation failed

RESOURCE_NULL

Null value found in {0}

RESOURCE_ID_NULL

{0} ID is null/empty

RESOURCE_NULL_FIELDS

{0} contains null fields

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}

INVALID_DATA

VCF service ID in request payload not equal to URL parameter

SERVER_ERROR

Server error, contact administrator or check logs

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_GENERATE_CERTIFICATE_FAILED

Generate certificate operation failed.

CERTIFICATE_GET_CERT_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_CA_IS_INVALID

Invalid CA type {0}

CERTIFICATE_CA_NOT_CONFIGURED

Unable to configure CA settings.

CERTIFICATE_REPLACE_CERT_FAILED

Replace certificate operation failed.

CERTIFICTE_PRIVATE_KEY_NOT_FOUND

Failed to fetch Private key.

CERTIFICATE_GENERAL_EXCEPTION

{0}

CERTIFICATE_PLUGIN_NOT_FOUND

No plugin found for {0}.

CERTIFICATE_SERVICE_RESTART_FAILED

Service restart failed for {0}

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.

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}.