1. Overview

VMware Cloud Foundation API Reference Guide

1.1. Version information

Version : 3.8.1-RELEASE

1.3. License information

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

1.4. URI scheme

Host : sddc-manager.sfo01.rainpole.local
BasePath : /
Schemes : HTTPS

1.5. Tags

  • Clusters : APIs for managing Clusters

  • Credentials : APIs for managing Credentials

  • Domains : APIs for managing Domains

  • Hosts : APIs for managing Hosts

  • License Keys : APIs for managing License Keys

  • Network Pools : APIs for managing Network Pools

  • Tasks : APIs for managing Tasks

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

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

Tip
Reference APIs using the full path (/v1/hosts) so that any future changes can be localized to a small footprint. When the version is incremented, update the old APIs with new APIs and the corresponding changes.
Note
  • An illustration of versioning is shown in the table below, assuming the product version is incremented from N to N+1, N+2 and so on. The illustration shows how the API version is incremented.

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

  • The APIs are deprecated when the version is incremented from N to N+1.

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

  • All APIs are secured and need a username and password for invocation

  • The username and password are sent using Basic Authentication scheme

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

Tip
For security reasons, you should periodically update the password for this account.
  • To use more secured APIs like Get the Credentials, Update or rotate passwords for a list of resources, Retry a failed credentials task for a given ID, dual authentication is required. A privileged user has to be created in management domain vCenter and associated to group "Sddc_Secured_Access". Along with "admin" account, Privileged user credentials has to be passed in request headers("privileged-username" and "privileged-password") of secured APIs in plain text. Please refer VMware Cloud Foundation Operations and Administration Guide for setting up privileged user.

  • If you write a script that invokes the APIs, the script should either prompt the user to enter the password for the "admin" account or should accept the password as a command line option. TAs a best practice, you should not encode the password for the account in the script code itself.

  • Script should also accept privileged user credentials if the script is invoking any secured APIs defined above.

1.7.1. Changing the "admin" account password

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

2.1. Hosts

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

  16. Validate the input specification.

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/v1/hosts/validations/commissions' -i -u 'admin:VMwareInfra@1' -X POST \
    -H 'Content-Type: application/json' \
    -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/commissions HTTP/1.1
Content-Type: application/json
Host: sddc-manager.sfo01.rainpole.local
Content-Length: 486
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

[ {
  "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/a33a2977-ca55-40b1-acb3-22878eff9a47
Content-Type: application/json;charset=UTF-8
Content-Length: 542

{
  "id" : "a33a2977-ca55-40b1-acb3-22878eff9a47",
  "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/a33a2977-ca55-40b1-acb3-22878eff9a47' -i -u 'admin:VMwareInfra@1' \
    -H 'Content-Type: application/json'

HTTP Request

GET /v1/hosts/validations/a33a2977-ca55-40b1-acb3-22878eff9a47 HTTP/1.1
Content-Type: application/json
Host: sddc-manager.sfo01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 452

{
  "id" : "a33a2977-ca55-40b1-acb3-22878eff9a47",
  "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/a33a2977-ca55-40b1-acb3-22878eff9a47' -i -u 'admin:VMwareInfra@1' \
    -H 'Content-Type: application/json'

HTTP Request

GET /v1/hosts/validations/a33a2977-ca55-40b1-acb3-22878eff9a47 HTTP/1.1
Content-Type: application/json
Host: sddc-manager.sfo01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 484

{
  "id" : "a33a2977-ca55-40b1-acb3-22878eff9a47",
  "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 -u 'admin:VMwareInfra@1' -X POST \
    -H 'Content-Type: application/json' \
    -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
Host: sddc-manager.sfo01.rainpole.local
Content-Length: 486
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

[ {
  "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/d9c95c72-5866-41c7-be3a-edf05bbbe76b
Content-Type: application/json;charset=UTF-8
Content-Length: 79

{
  "id" : "d9c95c72-5866-41c7-be3a-edf05bbbe76b",
  "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.1.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 -u 'admin:VMwareInfra@1' \
    -H 'Accept: application/json'

HTTP Request

GET /v1/hosts HTTP/1.1
Accept: application/json
Host: sddc-manager.sfo01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 3793

{
  "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,
      "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
    },
    "storage" : {
      "totalCapacityMB" : 781250.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"
    },
    "cluster" : {
      "id" : "4205afdd-94f5-403e-a051-1a9bba09ef40"
    },
    "status" : "ASSIGNED"
  }, {
    "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,
      "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
    },
    "storage" : {
      "totalCapacityMB" : 781250.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"
    } ],
    "status" : "UNASSIGNED_USEABLE"
  }, {
    "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,
      "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
    },
    "storage" : {
      "totalCapacityMB" : 781250.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"
    } ],
    "status" : "UNASSIGNED_UNUSEABLE"
  } ]
}

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 -u 'admin:VMwareInfra@1' \
    -H 'Accept: application/json'

HTTP Request

GET /v1/hosts?status=ASSIGNED HTTP/1.1
Accept: application/json
Host: sddc-manager.sfo01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 1373

{
  "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,
      "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
    },
    "storage" : {
      "totalCapacityMB" : 781250.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"
    },
    "cluster" : {
      "id" : "4205afdd-94f5-403e-a051-1a9bba09ef40"
    },
    "status" : "ASSIGNED"
  } ]
}

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 -u 'admin:VMwareInfra@1' \
    -H 'Accept: application/json'

HTTP Request

GET /v1/hosts?status=UNASSIGNED_USEABLE HTTP/1.1
Accept: application/json
Host: sddc-manager.sfo01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 1230

{
  "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,
      "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
    },
    "storage" : {
      "totalCapacityMB" : 781250.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"
    } ],
    "status" : "UNASSIGNED_USEABLE"
  } ]
}

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 -u 'admin:VMwareInfra@1' \
    -H 'Accept: application/json'

HTTP Request

GET /v1/hosts?status=UNASSIGNED_UNUSEABLE HTTP/1.1
Accept: application/json
Host: sddc-manager.sfo01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 1232

{
  "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,
      "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
    },
    "storage" : {
      "totalCapacityMB" : 781250.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"
    } ],
    "status" : "UNASSIGNED_UNUSEABLE"
  } ]
}

2.1.3. Get a Host

Prerequisites
  1. The following data is required

    • ID of the host

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/v1/hosts/c0703437-6746-470b-9e1c-f9d3bbc9b1c1' -i -u 'admin:VMwareInfra@1' \
    -H 'Accept: application/json'

HTTP Request

GET /v1/hosts/c0703437-6746-470b-9e1c-f9d3bbc9b1c1 HTTP/1.1
Accept: application/json
Host: sddc-manager.sfo01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 1250

{
  "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,
    "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
  },
  "storage" : {
    "totalCapacityMB" : 781250.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"
  },
  "cluster" : {
    "id" : "4205afdd-94f5-403e-a051-1a9bba09ef40"
  },
  "status" : "ASSIGNED"
}

2.1.4. 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 -u 'admin:VMwareInfra@1' -X DELETE \
    -H 'Content-Type: application/json' \
    -d '[ {
  "fqdn" : "esfo01m01esx01.sfo01.rainpole.local"
}, {
  "fqdn" : "esfo01m01esx02.sfo01.rainpole.local"
} ]'

HTTP Request

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

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

HTTP Response

HTTP/1.1 202 Accepted
Location: /v1/tasks/f01d62dc-1783-4e9f-bd80-9a878727be74
Content-Type: application/json;charset=UTF-8
Content-Length: 79

{
  "id" : "f01d62dc-1783-4e9f-bd80-9a878727be74",
  "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.2. 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.2.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 provided, they are configured on the ESXi hosts. If VMFS on FC storage provided, it’s consumed.

  • For each NSX for vSphere Domain, the workflow deploys an NSX Manager in the management domain and three NSX controllers on the ESXi datastore. The workflow also configures an anti-affinity rule between the controller VMs to prevent them from being on the same host for High Availability.

  • For the first NSX-T VI Domain in your environment, the workflow deploys an NSX Manager and three NSX controllers in the management domain. The workflow also configures an anti-affinity rule between the controller VMs to prevent them from being on the same host for High Availability. All subsequent NSX-T Domains share this NSX-T Manager and Controllers.

  • For an NSX-T Domain, NSX Edges are needed to enable overlay VI networks and public networks for north-south traffic. NSX Edges are not deployed automatically for an NSX-T VI Domain. You can deploy them manually after the VI domain is created. Subsequent NSX-T VI Domains share the NSX-T Edges deployed for the first domain.

  • Licenses and integrates the deployed components with the appropriate pieces in the Cloud Foundation software stack.

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 "fibreChannelDatastoreSpec" (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

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

            {"fibreChannelDatastoreSpec":[{"datastoreName":"sample-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

            Note
            Only one of "nsxVClusterSpec" (For NSX-V) or "nsxTClusterSpec" (For NSX-T) must be specified.
            • For NSX-V

              • VLAN ID of the VXLAN

              • License key for NSX

              • VDS to be used for VXLAN traffic/port group. This should belong to one of the VDS being created for the cluster

            {"nsxVClusterSpec":{"vlanId":3,"vdsNameForVxlanConfig":"SDDC-Dswitch-Private1"}}
            • For NSX-T

              • VLAN ID of Geneve

        {"nsxTClusterSpec":{"geneveVlanId":2}}
    • NSX details

      Note
      Only one of "nsxVSpec" (For NSX-V) or "nsxTSpec" (For NSX-T) must be specified.
      • For NSX-V

        • 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

        • NSX-V Controller Details

          • Controller IP addresses (three IPs) without duplicates

          • Controller password

          • Controller gateway

          • Controller subnet mask

        • License key for NSX

        • NSX Manager admin password (basic authorization and SSH)

        • NSX Manager enable password

        {"nsxManagerSpec":{"name":"nsx-manager-2","networkDetailsSpec":{"ipAddress":"10.0.0.44","dnsName":"nsx-manager-2.sfo01.rainpole.local","gateway":"10.0.0.250","subnetMask":"255.255.255.0"}},"nsxVControllerSpec":{"nsxControllerIps":["10.0.0.45","10.0.0.46","10.0.0.47"],"nsxControllerPassword":"Test123456$%","nsxControllerGateway":"10.0.0.250","nsxControllerSubnetMask":"255.255.255.0"},"licenseKey":"XXXXX-XXXXX-XXXXX-XXXXX-XXXXX","nsxManagerAdminPassword":"Random0$","nsxManagerEnablePassword":"Random0$"}
      • 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

        • NSX manager admin Password (basic authorization and SSH)

    {"nsxManagerSpecs":[{"name":"nsx-manager-2","networkDetailsSpec":{"ipAddress":"10.0.0.44","dnsName":"nsx-manager-2.sfo01.rainpole.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.sfo01.rainpole.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.sfo01.rainpole.local","gateway":"10.0.0.250","subnetMask":"255.255.255.0"}}],"vip":"10.0.0.166","vipFqdn":"vip-nsxmanager.sfo01.rainpole.local","licenseKey":"XXXXX-XXXXX-XXXXX-XXXXX-XXXXX","nsxManagerAdminPassword":"Random0$"}
Warning
NSX details (i.e "nsxVSpec" or "nsxTSpec") must match NSX cluster details (i.e "nsxVClusterSpec" or "nsxTClusterSpec") in the input specification.
  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 VXLAN VLAN of the management domain. When NSX creates VXLAN VTEPs for the domain, they are assigned IP addresses from the DHCP server.

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

Steps
  1. Validate the input specification.

Note
The below example is for creating a domain using vSAN storage (i.e "vsanDatastoreSpec") and NSX-V (i.e "nsxVSpec" and "nsxVClusterSpec")

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/v1/domains/validations/creations' -i -u 'admin:VMwareInfra@1' -X POST \
    -H 'Content-Type: application/json' \
    -d '{
  "domainName" : "Domain1",
  "vcenterSpec" : {
    "name" : "vCenter1",
    "networkDetailsSpec" : {
      "ipAddress" : "10.0.0.43",
      "dnsName" : "vcenter-2.sfo01.rainpole.local",
      "gateway" : "10.0.0.250",
      "subnetMask" : "255.255.255.0"
    },
    "rootPassword" : "Random0$",
    "datacenterName" : "new-vi-1"
  },
  "computeSpec" : {
    "clusterSpecs" : [ {
      "name" : "Cluster1",
      "hostSpecs" : [ {
        "id" : "03ba4e05-4dfb-49b4-a866-6a2afb7902e8",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmNicId1",
            "vdsName" : "SDDC-Dswitch-Private1"
          } ]
        }
      }, {
        "id" : "3303e5a9-7b4f-4294-aac1-cb23f0a5f270",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmNicId1",
            "vdsName" : "SDDC-Dswitch-Private1"
          } ]
        }
      }, {
        "id" : "5a243490-59b4-4045-b2e5-625a41fb9bd5",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmNicId1",
            "vdsName" : "SDDC-Dswitch-Private1"
          } ]
        }
      } ],
      "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"
          } ]
        } ],
        "nsxClusterSpec" : {
          "nsxVClusterSpec" : {
            "vlanId" : 3,
            "vdsNameForVxlanConfig" : "SDDC-Dswitch-Private1"
          }
        }
      }
    } ]
  },
  "nsxVSpec" : {
    "nsxManagerSpec" : {
      "name" : "nsx-manager-2",
      "networkDetailsSpec" : {
        "ipAddress" : "10.0.0.44",
        "dnsName" : "nsx-manager-2.sfo01.rainpole.local",
        "gateway" : "10.0.0.250",
        "subnetMask" : "255.255.255.0"
      }
    },
    "nsxVControllerSpec" : {
      "nsxControllerIps" : [ "10.0.0.45", "10.0.0.46", "10.0.0.47" ],
      "nsxControllerPassword" : "Test123456$%",
      "nsxControllerGateway" : "10.0.0.250",
      "nsxControllerSubnetMask" : "255.255.255.0"
    },
    "licenseKey" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "nsxManagerAdminPassword" : "Random0$",
    "nsxManagerEnablePassword" : "Random0$"
  }
}'

HTTP Request

POST /v1/domains/validations/creations HTTP/1.1
Content-Type: application/json
Host: sddc-manager.sfo01.rainpole.local
Content-Length: 2633
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

{
  "domainName" : "Domain1",
  "vcenterSpec" : {
    "name" : "vCenter1",
    "networkDetailsSpec" : {
      "ipAddress" : "10.0.0.43",
      "dnsName" : "vcenter-2.sfo01.rainpole.local",
      "gateway" : "10.0.0.250",
      "subnetMask" : "255.255.255.0"
    },
    "rootPassword" : "Random0$",
    "datacenterName" : "new-vi-1"
  },
  "computeSpec" : {
    "clusterSpecs" : [ {
      "name" : "Cluster1",
      "hostSpecs" : [ {
        "id" : "03ba4e05-4dfb-49b4-a866-6a2afb7902e8",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmNicId1",
            "vdsName" : "SDDC-Dswitch-Private1"
          } ]
        }
      }, {
        "id" : "3303e5a9-7b4f-4294-aac1-cb23f0a5f270",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmNicId1",
            "vdsName" : "SDDC-Dswitch-Private1"
          } ]
        }
      }, {
        "id" : "5a243490-59b4-4045-b2e5-625a41fb9bd5",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmNicId1",
            "vdsName" : "SDDC-Dswitch-Private1"
          } ]
        }
      } ],
      "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"
          } ]
        } ],
        "nsxClusterSpec" : {
          "nsxVClusterSpec" : {
            "vlanId" : 3,
            "vdsNameForVxlanConfig" : "SDDC-Dswitch-Private1"
          }
        }
      }
    } ]
  },
  "nsxVSpec" : {
    "nsxManagerSpec" : {
      "name" : "nsx-manager-2",
      "networkDetailsSpec" : {
        "ipAddress" : "10.0.0.44",
        "dnsName" : "nsx-manager-2.sfo01.rainpole.local",
        "gateway" : "10.0.0.250",
        "subnetMask" : "255.255.255.0"
      }
    },
    "nsxVControllerSpec" : {
      "nsxControllerIps" : [ "10.0.0.45", "10.0.0.46", "10.0.0.47" ],
      "nsxControllerPassword" : "Test123456$%",
      "nsxControllerGateway" : "10.0.0.250",
      "nsxControllerSubnetMask" : "255.255.255.0"
    },
    "licenseKey" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "nsxManagerAdminPassword" : "Random0$",
    "nsxManagerEnablePassword" : "Random0$"
  }
}

HTTP Response

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

{
  "id" : "3e1238b5-01b6-4d04-bf1d-ab55a6fe520b",
  "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 -u 'admin:VMwareInfra@1' -X POST \
    -H 'Content-Type: application/json' \
    -d '{
  "domainName" : "Domain1",
  "vcenterSpec" : {
    "name" : "vCenter1",
    "networkDetailsSpec" : {
      "ipAddress" : "10.0.0.43",
      "dnsName" : "vcenter-2.sfo01.rainpole.local",
      "gateway" : "10.0.0.250",
      "subnetMask" : "255.255.255.0"
    },
    "rootPassword" : "Random0$",
    "datacenterName" : "new-vi-1"
  },
  "computeSpec" : {
    "clusterSpecs" : [ {
      "name" : "Cluster1",
      "hostSpecs" : [ {
        "id" : "676ff7f1-e51e-45a6-afa6-b3b90f40a00f",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmNicId1",
            "vdsName" : "SDDC-Dswitch-Private1"
          } ]
        }
      }, {
        "id" : "52befa9c-3e0e-4bf0-8b13-d31115e4b6a6",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmNicId1",
            "vdsName" : "SDDC-Dswitch-Private1"
          } ]
        }
      }, {
        "id" : "ac8a4f4d-4a49-4505-aae2-b6f03fe93e2e",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmNicId1",
            "vdsName" : "SDDC-Dswitch-Private1"
          } ]
        }
      } ],
      "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"
          } ]
        } ],
        "nsxClusterSpec" : {
          "nsxVClusterSpec" : {
            "vlanId" : 3,
            "vdsNameForVxlanConfig" : "SDDC-Dswitch-Private1"
          }
        }
      }
    } ]
  },
  "nsxVSpec" : {
    "nsxManagerSpec" : {
      "name" : "nsx-manager-2",
      "networkDetailsSpec" : {
        "ipAddress" : "10.0.0.44",
        "dnsName" : "nsx-manager-2.sfo01.rainpole.local",
        "gateway" : "10.0.0.250",
        "subnetMask" : "255.255.255.0"
      }
    },
    "nsxVControllerSpec" : {
      "nsxControllerIps" : [ "10.0.0.45", "10.0.0.46", "10.0.0.47" ],
      "nsxControllerPassword" : "Test123456$%",
      "nsxControllerGateway" : "10.0.0.250",
      "nsxControllerSubnetMask" : "255.255.255.0"
    },
    "licenseKey" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "nsxManagerAdminPassword" : "Random0$",
    "nsxManagerEnablePassword" : "Random0$"
  }
}'

HTTP Request

POST /v1/domains HTTP/1.1
Content-Type: application/json
Host: sddc-manager.sfo01.rainpole.local
Content-Length: 2633
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

{
  "domainName" : "Domain1",
  "vcenterSpec" : {
    "name" : "vCenter1",
    "networkDetailsSpec" : {
      "ipAddress" : "10.0.0.43",
      "dnsName" : "vcenter-2.sfo01.rainpole.local",
      "gateway" : "10.0.0.250",
      "subnetMask" : "255.255.255.0"
    },
    "rootPassword" : "Random0$",
    "datacenterName" : "new-vi-1"
  },
  "computeSpec" : {
    "clusterSpecs" : [ {
      "name" : "Cluster1",
      "hostSpecs" : [ {
        "id" : "676ff7f1-e51e-45a6-afa6-b3b90f40a00f",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmNicId1",
            "vdsName" : "SDDC-Dswitch-Private1"
          } ]
        }
      }, {
        "id" : "52befa9c-3e0e-4bf0-8b13-d31115e4b6a6",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmNicId1",
            "vdsName" : "SDDC-Dswitch-Private1"
          } ]
        }
      }, {
        "id" : "ac8a4f4d-4a49-4505-aae2-b6f03fe93e2e",
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "vmNicId1",
            "vdsName" : "SDDC-Dswitch-Private1"
          } ]
        }
      } ],
      "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"
          } ]
        } ],
        "nsxClusterSpec" : {
          "nsxVClusterSpec" : {
            "vlanId" : 3,
            "vdsNameForVxlanConfig" : "SDDC-Dswitch-Private1"
          }
        }
      }
    } ]
  },
  "nsxVSpec" : {
    "nsxManagerSpec" : {
      "name" : "nsx-manager-2",
      "networkDetailsSpec" : {
        "ipAddress" : "10.0.0.44",
        "dnsName" : "nsx-manager-2.sfo01.rainpole.local",
        "gateway" : "10.0.0.250",
        "subnetMask" : "255.255.255.0"
      }
    },
    "nsxVControllerSpec" : {
      "nsxControllerIps" : [ "10.0.0.45", "10.0.0.46", "10.0.0.47" ],
      "nsxControllerPassword" : "Test123456$%",
      "nsxControllerGateway" : "10.0.0.250",
      "nsxControllerSubnetMask" : "255.255.255.0"
    },
    "licenseKey" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "nsxManagerAdminPassword" : "Random0$",
    "nsxManagerEnablePassword" : "Random0$"
  }
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/6cbca6db-e6d5-4c3d-b2c2-4d5e2eaac63b
Content-Length: 142

{
  "id" : "6cbca6db-e6d5-4c3d-b2c2-4d5e2eaac63b",
  "name" : "",
  "status" : "UNKNOWN",
  "creationTimestamp" : "2019-09-03T09:41:29.600Z"
}
  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.2.2. Get the Domains

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/v1/domains' -i -u 'admin:VMwareInfra@1'

HTTP Request

GET /v1/domains HTTP/1.1
Host: sddc-manager.sfo01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 564

{
  "elements" : [ {
    "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c5",
    "name" : "VI-1",
    "vcenters" : [ {
      "fqdn" : "vi-1-vcenter.vrack.vsphere.local"
    } ],
    "clusters" : [ {
      "id" : "8045e44e-974e-4f43-9862-7f0326782655"
    } ]
  }, {
    "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c1",
    "name" : "VDI-1",
    "vcenters" : [ {
      "fqdn" : "vdi-1-vcenter.vrack.vsphere.local"
    } ],
    "clusters" : [ {
      "id" : "8045e44e-974e-4f43-9862-7f0326782677"
    }, {
      "id" : "8045e44e-974e-4f43-9861-7f0326782633"
    } ]
  } ]
}

2.2.3. Get 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/domains/c0703437-6746-470b-9e1c-f9d3bbc9b1c5' -i -u 'admin:VMwareInfra@1'

HTTP Request

GET /v1/domains/c0703437-6746-470b-9e1c-f9d3bbc9b1c5 HTTP/1.1
Host: sddc-manager.sfo01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 220

{
  "id" : "c0703437-6746-470b-9e1c-f9d3bbc9b1c5",
  "name" : "VI-1",
  "vcenters" : [ {
    "fqdn" : "vi-1-vcenter.vrack.vsphere.local"
  } ],
  "clusters" : [ {
    "id" : "8045e44e-974e-4f43-9862-7f0326782655"
  } ]
}

2.2.4. 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 -u 'admin:VMwareInfra@1' -X PATCH \
    -H 'Content-Type: application/json' \
    -d '{
  "markForDeletion" : true
}'

HTTP Request

PATCH /v1/domains/f74c2d97-621a-4984-9ab6-5d84effde82f HTTP/1.1
Content-Type: application/json
Host: sddc-manager.sfo01.rainpole.local
Content-Length: 30
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

{
  "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 -u 'admin:VMwareInfra@1' -X DELETE

HTTP Request

DELETE /v1/domains/f74c2d97-621a-4984-9ab6-5d84effde82f HTTP/1.1
Host: sddc-manager.sfo01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/27cf548b-4377-4042-90c9-07699088147b
Content-Length: 142

{
  "id" : "27cf548b-4377-4042-90c9-07699088147b",
  "name" : "",
  "status" : "UNKNOWN",
  "creationTimestamp" : "2019-09-03T09:41:26.860Z"
}
  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. Clusters

2.3.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, once added to cluster

      • Datastore details

        Note
        Only one of "vsanDatastoreSpec" (For VSAN), "nfsDatastoreSpec" (For NFS) or "fibreChannelDatastoreSpec" (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.

          {"fibreChannelDatastoreSpec":[{"datastoreName":"sample-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

            Note
            Only one of "nsxVClusterSpec" (For NSX-V) or "nsxTClusterSpec" (For NSX-T) must be specified.
            • For NSX-V

              • VLAN ID of the VXLAN

              • License key for NSX

              • VDS to be used for VXLAN traffic/port group. This should belong to one of the VDS being created for the cluster

        {"nsxVClusterSpec":{"vlanId":3,"vdsNameForVxlanConfig":"SDDC-Dswitch-Private1"}}
        • For NSX-T

          • VLAN ID of Geneve

    {"nsxTClusterSpec":{"geneveVlanId":2}}
  2. Network pool must be configured.

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

Note
NSX manager and controller is configured when 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 VXLAN VLAN of the management domain. When NSX creates VXLAN VTEPs for the domain, they are assigned IP addresses from the DHCP server.

Steps
  1. Validate the input specification.

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/v1/clusters/validations/creations' -i -u 'admin:VMwareInfra@1' -X POST \
    -H 'Content-Type: application/json' \
    -d '{
  "domainId" : "b3c69476-7c7e-4c60-b3e7-111a36f0b92e",
  "computeSpec" : {
    "clusterSpecs" : [ {
      "name" : "Cluster1",
      "hostSpecs" : [ {
        "id" : "9cc2afcc-c4cc-4be6-a416-7bc6ba545c46"
      } ],
      "datastoreSpec" : {
        "vsanDatastoreSpec" : {
          "failuresToTolerate" : 1,
          "licenseKey" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
          "datastoreName" : "vSanDatastore"
        }
      },
      "networkSpec" : {
        "vdsSpecs" : [ {
          "name" : "vRack-DSwitch",
          "portGroupSpecs" : [ {
            "name" : "SDDC-DPortGroup-Mgmt",
            "transportType" : "MANAGEMENT"
          }, {
            "name" : "SDDC-DPortGroup-VSAN",
            "transportType" : "VSAN"
          }, {
            "name" : "SDDC-DPortGroup-vMotion",
            "transportType" : "VMOTION"
          } ]
        } ],
        "nsxClusterSpec" : {
          "nsxVClusterSpec" : {
            "vlanId" : 0,
            "vdsNameForVxlanConfig" : "vds_name"
          }
        }
      }
    } ]
  }
}'

HTTP Request

POST /v1/clusters/validations/creations HTTP/1.1
Content-Type: application/json
Host: sddc-manager.sfo01.rainpole.local
Content-Length: 1045
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

{
  "domainId" : "b3c69476-7c7e-4c60-b3e7-111a36f0b92e",
  "computeSpec" : {
    "clusterSpecs" : [ {
      "name" : "Cluster1",
      "hostSpecs" : [ {
        "id" : "9cc2afcc-c4cc-4be6-a416-7bc6ba545c46"
      } ],
      "datastoreSpec" : {
        "vsanDatastoreSpec" : {
          "failuresToTolerate" : 1,
          "licenseKey" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
          "datastoreName" : "vSanDatastore"
        }
      },
      "networkSpec" : {
        "vdsSpecs" : [ {
          "name" : "vRack-DSwitch",
          "portGroupSpecs" : [ {
            "name" : "SDDC-DPortGroup-Mgmt",
            "transportType" : "MANAGEMENT"
          }, {
            "name" : "SDDC-DPortGroup-VSAN",
            "transportType" : "VSAN"
          }, {
            "name" : "SDDC-DPortGroup-vMotion",
            "transportType" : "VMOTION"
          } ]
        } ],
        "nsxClusterSpec" : {
          "nsxVClusterSpec" : {
            "vlanId" : 0,
            "vdsNameForVxlanConfig" : "vds_name"
          }
        }
      }
    } ]
  }
}

HTTP Response

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

{
  "id" : "09743cb9-a428-4271-8a10-309b87deda40",
  "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 -u 'admin:VMwareInfra@1' -X POST \
    -H 'Content-Type: application/json' \
    -d '{
  "domainId" : "1dfedb58-5712-48b1-bdd9-b09464c8dada",
  "computeSpec" : {
    "clusterSpecs" : [ {
      "name" : "Cluster1",
      "hostSpecs" : [ {
        "id" : "9ddb698c-2624-4845-8b29-c6e377cc0d93"
      } ],
      "datastoreSpec" : {
        "vsanDatastoreSpec" : {
          "failuresToTolerate" : 1,
          "licenseKey" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
          "datastoreName" : "vSanDatastore"
        }
      },
      "networkSpec" : {
        "vdsSpecs" : [ {
          "name" : "vRack-DSwitch",
          "portGroupSpecs" : [ {
            "name" : "SDDC-DPortGroup-Mgmt",
            "transportType" : "MANAGEMENT"
          }, {
            "name" : "SDDC-DPortGroup-VSAN",
            "transportType" : "VSAN"
          }, {
            "name" : "SDDC-DPortGroup-vMotion",
            "transportType" : "VMOTION"
          } ]
        } ],
        "nsxClusterSpec" : {
          "nsxVClusterSpec" : {
            "vlanId" : 0,
            "vdsNameForVxlanConfig" : "vds_name"
          }
        }
      }
    } ]
  }
}'

HTTP Request

POST /v1/clusters HTTP/1.1
Content-Type: application/json
Host: sddc-manager.sfo01.rainpole.local
Content-Length: 1045
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

{
  "domainId" : "1dfedb58-5712-48b1-bdd9-b09464c8dada",
  "computeSpec" : {
    "clusterSpecs" : [ {
      "name" : "Cluster1",
      "hostSpecs" : [ {
        "id" : "9ddb698c-2624-4845-8b29-c6e377cc0d93"
      } ],
      "datastoreSpec" : {
        "vsanDatastoreSpec" : {
          "failuresToTolerate" : 1,
          "licenseKey" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
          "datastoreName" : "vSanDatastore"
        }
      },
      "networkSpec" : {
        "vdsSpecs" : [ {
          "name" : "vRack-DSwitch",
          "portGroupSpecs" : [ {
            "name" : "SDDC-DPortGroup-Mgmt",
            "transportType" : "MANAGEMENT"
          }, {
            "name" : "SDDC-DPortGroup-VSAN",
            "transportType" : "VSAN"
          }, {
            "name" : "SDDC-DPortGroup-vMotion",
            "transportType" : "VMOTION"
          } ]
        } ],
        "nsxClusterSpec" : {
          "nsxVClusterSpec" : {
            "vlanId" : 0,
            "vdsNameForVxlanConfig" : "vds_name"
          }
        }
      }
    } ]
  }
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/55643b60-3a6a-441d-ab19-a6bdd747cece
Content-Length: 142

{
  "id" : "55643b60-3a6a-441d-ab19-a6bdd747cece",
  "name" : "",
  "status" : "UNKNOWN",
  "creationTimestamp" : "2019-09-03T09:42:11.850Z"
}
  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 Clusters

Steps
  1. Invoke the API.

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/v1/clusters' -i -u 'admin:VMwareInfra@1'

HTTP Request

GET /v1/clusters HTTP/1.1
Host: sddc-manager.sfo01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 1274

{
  "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"
    } ]
  }, {
    "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"
    } ]
  }, {
    "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"
    } ]
  }, {
    "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"
    } ]
  } ]
}

2.3.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 -u 'admin:VMwareInfra@1'

HTTP Request

GET /v1/clusters/8045e44e-974e-4f43-9862-7f0326782655 HTTP/1.1
Host: sddc-manager.sfo01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 294

{
  "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"
  } ]
}

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

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

Steps
  1. Validate the input specification.

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/v1/clusters/2d54bb6c-637a-49a4-a94c-622671d0ab32/validations/updates' -i -u 'admin:VMwareInfra@1' -X POST \
    -H 'Content-Type: application/json' \
    -d '{
  "clusterExpansionSpec" : {
    "hostSpecs" : [ {
      "id" : "e767c089-9625-44d8-82e0-6f8a927c95a0"
    } ]
  }
}'

HTTP Request

POST /v1/clusters/2d54bb6c-637a-49a4-a94c-622671d0ab32/validations/updates HTTP/1.1
Content-Type: application/json
Host: sddc-manager.sfo01.rainpole.local
Content-Length: 118
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

{
  "clusterExpansionSpec" : {
    "hostSpecs" : [ {
      "id" : "e767c089-9625-44d8-82e0-6f8a927c95a0"
    } ]
  }
}

HTTP Response

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

{
  "id" : "af6f8159-9578-47a7-962a-5678f96fbf81",
  "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 -u 'admin:VMwareInfra@1' -X PATCH \
    -H 'Content-Type: application/json' \
    -d '{
  "clusterExpansionSpec" : {
    "hostSpecs" : [ {
      "id" : "40938037-917a-484f-a08e-f60520cbda85"
    } ]
  }
}'

HTTP Request

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

{
  "clusterExpansionSpec" : {
    "hostSpecs" : [ {
      "id" : "40938037-917a-484f-a08e-f60520cbda85"
    } ]
  }
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/403bb0c8-3c16-445d-8888-d426c6e0e964
Content-Length: 142

{
  "id" : "403bb0c8-3c16-445d-8888-d426c6e0e964",
  "name" : "",
  "status" : "UNKNOWN",
  "creationTimestamp" : "2019-09-03T09:42:10.919Z"
}
  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.5. Compact a Cluster

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

Prerequisites
  1. The following data is required

    • For each host to be removed

      • ID of the host

Steps
  1. Validate the input specification.

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/v1/clusters/2d54bb6c-637a-49a4-a94c-622671d0ab32/validations/updates' -i -u 'admin:VMwareInfra@1' -X POST \
    -H 'Content-Type: application/json' \
    -d '{
  "clusterCompactionSpec" : {
    "hosts" : [ {
      "id" : "ff84ada8-3ce3-4033-a632-1ef7ab8ee833"
    } ]
  }
}'

HTTP Request

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

{
  "clusterCompactionSpec" : {
    "hosts" : [ {
      "id" : "ff84ada8-3ce3-4033-a632-1ef7ab8ee833"
    } ]
  }
}

HTTP Response

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

{
  "id" : "59bbaebc-6363-48ff-a258-9acabe93374c",
  "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 -u 'admin:VMwareInfra@1' -X PATCH \
    -H 'Content-Type: application/json' \
    -d '{
  "clusterCompactionSpec" : {
    "hosts" : [ {
      "id" : "9a64aeb8-dc97-48a3-b852-5a963deafaf7"
    } ]
  }
}'

HTTP Request

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

{
  "clusterCompactionSpec" : {
    "hosts" : [ {
      "id" : "9a64aeb8-dc97-48a3-b852-5a963deafaf7"
    } ]
  }
}

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/6a971756-913a-4f5e-a57f-699cc3c4f8da
Content-Length: 142

{
  "id" : "6a971756-913a-4f5e-a57f-699cc3c4f8da",
  "name" : "",
  "status" : "UNKNOWN",
  "creationTimestamp" : "2019-09-03T09:42:13.017Z"
}
  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.6. 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 -u 'admin:VMwareInfra@1' -X PATCH \
    -H 'Content-Type: application/json' \
    -d '{
  "markForDeletion" : true
}'

HTTP Request

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

{
  "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 -u 'admin:VMwareInfra@1' -X DELETE

HTTP Request

DELETE /v1/clusters/2d54bb6c-637a-49a4-a94c-622671d0ab32 HTTP/1.1
Host: sddc-manager.sfo01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

HTTP Response

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/1687bd82-563a-4c9a-a187-32f2708e6f27
Content-Length: 142

{
  "id" : "1687bd82-563a-4c9a-a187-32f2708e6f27",
  "name" : "",
  "status" : "UNKNOWN",
  "creationTimestamp" : "2019-09-03T09:42:11.466Z"
}
  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.4. Credentials

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

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/v1/credentials' -i -u 'admin:VMwareInfra@1' \
    -H 'privileged-username: [email protected]' \
    -H 'privileged-password: VMwareInfra@1' \
    -H 'Accept: application/json'

HTTP Request

GET /v1/credentials HTTP/1.1
privileged-username: [email protected]
privileged-password: VMwareInfra@1
Accept: application/json
Host: sddc-manager.sfo01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 5846

{
  "elements" : [ {
    "id" : "ca48d666-9ab0-480c-a4d4-772c35d7d4e6",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "resource" : {
      "resourceId" : "e206b06f-45f8-40bc-b212-e7eef4ee76b6",
      "resourceName" : "sfo01m01esx01.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.100",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "90f7ff16-7b56-4200-985d-9f9a73361649",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "resource" : {
      "resourceId" : "1815387f-f96f-451c-bb2b-bbd08d289f67",
      "resourceName" : "sfo01m01esx02.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.101",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "e84e178d-cfc7-49f3-bb4d-743a1cf6d503",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "resource" : {
      "resourceId" : "133ae46f-35c1-44cb-a93d-7f49b15ec530",
      "resourceName" : "sfo01m01esx03.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.102",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "c9166647-6edd-4b4a-a3fd-0c343482e270",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "resource" : {
      "resourceId" : "bda0075c-9a96-45c1-944a-3dbe84252ba9",
      "resourceName" : "sfo01m01esx04.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.103",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "30f95bb3-f485-47ac-938b-6d889959d9dd",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "resource" : {
      "resourceId" : "e1199d72-842d-4d45-b92f-7c5195b22e84",
      "resourceName" : "sfo01m01vcenter01.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.6",
      "resourceType" : "VCENTER",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "34433cb5-d30f-4633-90cc-898b0f50305c",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "resource" : {
      "resourceId" : "28823c05-c40b-41a6-bc2a-ef5be9ad7eda",
      "resourceName" : "sfo01m01psc01.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.5",
      "resourceType" : "PSC",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "034eb80f-f25c-4fd0-a015-856cb91da3c3",
    "credentialType" : "SSO",
    "username" : "[email protected]",
    "password" : "VMwareInfra@1",
    "resource" : {
      "resourceId" : "5e5ecaeb-a99b-4129-82c6-bfcca8a725d7",
      "resourceName" : "sfo01m01psc01.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.5",
      "resourceType" : "PSC",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "71ade310-9440-4fb3-b88f-f9886b712b6f",
    "credentialType" : "API",
    "username" : "admin",
    "password" : "VMwareInfra@1",
    "resource" : {
      "resourceId" : "102cba34-22d1-490a-aad5-e90e4327ed00",
      "resourceName" : "sfo01m01nsx01.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.9",
      "resourceType" : "NSX_MANAGER",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "26b6a6a2-1f17-44d4-962e-a6fc9679a60e",
    "credentialType" : "API",
    "username" : "admin",
    "password" : "VMwareInfra@1",
    "resource" : {
      "resourceId" : "b841c247-4ce4-45d9-97fa-38776152ffb2",
      "resourceName" : "sfo01m01nsxc01",
      "resourceIp" : "10.0.0.42",
      "resourceType" : "NSX_CONTROLLER",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "9c541a08-cd69-4d18-ae1d-13e89586328b",
    "credentialType" : "API",
    "username" : "admin",
    "password" : "VMwareInfra@1",
    "resource" : {
      "resourceId" : "865e921f-7f11-4134-a988-7ae8f7f89900",
      "resourceName" : "sfo01vrli01.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.15",
      "resourceType" : "VRLI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "35ad459b-8add-4ba9-ae61-4574ac199866",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "resource" : {
      "resourceId" : "2962cd3a-0942-4924-8f0c-a3cb7affa30c",
      "resourceName" : "sfo01vrli01b.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.16",
      "resourceType" : "VRLI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "8dc97f9f-3a8a-4afe-a4c8-16abdd5afb38",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "resource" : {
      "resourceId" : "2685d975-e5e8-4151-8a7f-1f4c761a592c",
      "resourceName" : "vrops01svr01a.rainpole.local",
      "resourceIp" : "10.0.1.33",
      "resourceType" : "VROPS",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "e379b7df-249c-4e6d-aa45-cd1bf41ced6d",
    "credentialType" : "API",
    "username" : "admin",
    "password" : "VMwareInfra@1",
    "resource" : {
      "resourceId" : "285a3186-d945-4c17-ad41-e7751d3ad324",
      "resourceName" : "vrops01svr01.rainpole.local",
      "resourceIp" : "10.0.0.31",
      "resourceType" : "VROPS",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "43373216-679d-4215-906d-340ce3120ae3",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "resource" : {
      "resourceId" : "01dee9ad-8030-40b0-98bd-a7e598493524",
      "resourceName" : "vrslcm01svr01a.rainpole.local",
      "resourceIp" : "10.0.0.32",
      "resourceType" : "VRSLCM",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "e96b4e96-0b74-49b2-b608-b23762a334e3",
    "credentialType" : "API",
    "username" : "admin@localhost",
    "password" : "VMwareInfra@1",
    "resource" : {
      "resourceId" : "88bd9cc7-f41c-4e89-b9e9-0204c1fb1413",
      "resourceName" : "vrslcm01svr01a.rainpole.local",
      "resourceIp" : "10.0.0.32",
      "resourceType" : "VRSLCM",
      "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 -u 'admin:VMwareInfra@1' \
    -H 'privileged-username: [email protected]' \
    -H 'privileged-password: VMwareInfra@1' \
    -H 'Accept: application/json'

HTTP Request

GET /v1/credentials?resourceName=sfo01m01esx02.sfo01.rainpole.local HTTP/1.1
privileged-username: [email protected]
privileged-password: VMwareInfra@1
Accept: application/json
Host: sddc-manager.sfo01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 409

{
  "elements" : [ {
    "id" : "90f7ff16-7b56-4200-985d-9f9a73361649",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "resource" : {
      "resourceId" : "1815387f-f96f-451c-bb2b-bbd08d289f67",
      "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 -u 'admin:VMwareInfra@1' \
    -H 'privileged-username: [email protected]' \
    -H 'privileged-password: VMwareInfra@1' \
    -H 'Accept: application/json'

HTTP Request

GET /v1/credentials?resourceIP=10.0.0.101 HTTP/1.1
privileged-username: [email protected]
privileged-password: VMwareInfra@1
Accept: application/json
Host: sddc-manager.sfo01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 409

{
  "elements" : [ {
    "id" : "90f7ff16-7b56-4200-985d-9f9a73361649",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "resource" : {
      "resourceId" : "1815387f-f96f-451c-bb2b-bbd08d289f67",
      "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 -u 'admin:VMwareInfra@1' \
    -H 'privileged-username: [email protected]' \
    -H 'privileged-password: VMwareInfra@1' \
    -H 'Accept: application/json'

HTTP Request

GET /v1/credentials?resourceType=ESXI HTTP/1.1
privileged-username: [email protected]
privileged-password: VMwareInfra@1
Accept: application/json
Host: sddc-manager.sfo01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 1573

{
  "elements" : [ {
    "id" : "aed08ca8-52df-4ddd-a08b-7af78a05e10d",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "resource" : {
      "resourceId" : "574cfe3e-4c9d-446c-bfd0-696578a391dd",
      "resourceName" : "sfo01m01esx01.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.100",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "90f7ff16-7b56-4200-985d-9f9a73361649",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "resource" : {
      "resourceId" : "1815387f-f96f-451c-bb2b-bbd08d289f67",
      "resourceName" : "sfo01m01esx02.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.101",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "0c401842-77a8-4124-80c7-c0f9e7817f50",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "resource" : {
      "resourceId" : "cf96222b-8e54-4bcb-9397-cc4692e2bafb",
      "resourceName" : "sfo01m01esx03.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.102",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "1cec1a3d-97db-4d06-9bea-67f19981b640",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "resource" : {
      "resourceId" : "8651cd7f-97cd-4756-999b-1a63342f9374",
      "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 -u 'admin:VMwareInfra@1' \
    -H 'privileged-username: [email protected]' \
    -H 'privileged-password: VMwareInfra@1' \
    -H 'Accept: application/json'

HTTP Request

GET /v1/credentials?domainName=MGMT HTTP/1.1
privileged-username: [email protected]
privileged-password: VMwareInfra@1
Accept: application/json
Host: sddc-manager.sfo01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 5846

{
  "elements" : [ {
    "id" : "b505057c-0e3d-4a2f-b0fc-df9c25007522",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "resource" : {
      "resourceId" : "0d8cb6e5-8343-41d1-81df-7fe9926a9787",
      "resourceName" : "sfo01m01esx01.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.100",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "90f7ff16-7b56-4200-985d-9f9a73361649",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "resource" : {
      "resourceId" : "1815387f-f96f-451c-bb2b-bbd08d289f67",
      "resourceName" : "sfo01m01esx02.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.101",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "c7feff27-6bf1-4124-939f-90a5a0f33427",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "resource" : {
      "resourceId" : "15fb0a79-d1a8-4d49-8406-f65b57c8417e",
      "resourceName" : "sfo01m01esx03.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.102",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "49012a6c-86ea-4108-9392-31720fe4da53",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "resource" : {
      "resourceId" : "8b6422bd-4944-42e6-81e6-c8a9fac0b194",
      "resourceName" : "sfo01m01esx04.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.103",
      "resourceType" : "ESXI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "9b877e97-5f4b-4e0e-a42b-c4b64ba0260e",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "resource" : {
      "resourceId" : "c8475647-928d-4b4a-998d-1bcdb035ed06",
      "resourceName" : "sfo01m01vcenter01.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.6",
      "resourceType" : "VCENTER",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "4cfc0c2b-5fd8-4b32-88eb-4b2cccad0bf7",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "resource" : {
      "resourceId" : "5df3d75f-789c-4021-9937-1ff1cace51ab",
      "resourceName" : "sfo01m01psc01.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.5",
      "resourceType" : "PSC",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "c0725210-d3f4-4df5-96dd-268259e39b4a",
    "credentialType" : "SSO",
    "username" : "[email protected]",
    "password" : "VMwareInfra@1",
    "resource" : {
      "resourceId" : "9383c4e0-f695-4559-a16e-64e79dc2b485",
      "resourceName" : "sfo01m01psc01.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.5",
      "resourceType" : "PSC",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "163bc674-7e44-42dd-a373-e60d3580ad7c",
    "credentialType" : "API",
    "username" : "admin",
    "password" : "VMwareInfra@1",
    "resource" : {
      "resourceId" : "599a4bf0-754e-42b5-82b7-4eaa332715bb",
      "resourceName" : "sfo01m01nsx01.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.9",
      "resourceType" : "NSX_MANAGER",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "2128d221-f6bf-4515-94ba-35b18bbb0a50",
    "credentialType" : "API",
    "username" : "admin",
    "password" : "VMwareInfra@1",
    "resource" : {
      "resourceId" : "0bc0d4f9-bee7-4dfb-897f-21a52e0bd33f",
      "resourceName" : "sfo01m01nsxc01",
      "resourceIp" : "10.0.0.42",
      "resourceType" : "NSX_CONTROLLER",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "a869d30e-6f37-4bc8-9dd5-cbeb4774d657",
    "credentialType" : "API",
    "username" : "admin",
    "password" : "VMwareInfra@1",
    "resource" : {
      "resourceId" : "84585680-d7a0-4021-ac11-b5374247d298",
      "resourceName" : "sfo01vrli01.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.15",
      "resourceType" : "VRLI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "c0a78fde-9e45-46c9-907d-2eadf69a6d65",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "resource" : {
      "resourceId" : "c64f9f61-694f-4f82-a8e7-ae6825a00369",
      "resourceName" : "sfo01vrli01b.sfo01.rainpole.local",
      "resourceIp" : "10.0.0.16",
      "resourceType" : "VRLI",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "0b7ba440-ed9d-4970-a232-05565e041489",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "resource" : {
      "resourceId" : "ba9551eb-24e3-45c6-97f2-869506e4a6c9",
      "resourceName" : "vrops01svr01a.rainpole.local",
      "resourceIp" : "10.0.1.33",
      "resourceType" : "VROPS",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "eddf8524-9502-46cb-aad3-2dfe9b2b5315",
    "credentialType" : "API",
    "username" : "admin",
    "password" : "VMwareInfra@1",
    "resource" : {
      "resourceId" : "02bf6b9c-4d5e-4d8a-9a6c-ef1d05bf8859",
      "resourceName" : "vrops01svr01.rainpole.local",
      "resourceIp" : "10.0.0.31",
      "resourceType" : "VROPS",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "0afa2399-b067-4924-8a82-09ac8860e35a",
    "credentialType" : "SSH",
    "username" : "root",
    "password" : "VMwareInfra@1",
    "resource" : {
      "resourceId" : "d4706474-33ba-4236-abb3-e7848dcde60c",
      "resourceName" : "vrslcm01svr01a.rainpole.local",
      "resourceIp" : "10.0.0.32",
      "resourceType" : "VRSLCM",
      "domainName" : "MGMT"
    }
  }, {
    "id" : "3eba1c17-9848-447c-a20c-c6775d225ea0",
    "credentialType" : "API",
    "username" : "admin@localhost",
    "password" : "VMwareInfra@1",
    "resource" : {
      "resourceId" : "698e02e3-809d-412f-a297-7a2a5e77ea93",
      "resourceName" : "vrslcm01svr01a.rainpole.local",
      "resourceIp" : "10.0.0.32",
      "resourceType" : "VRSLCM",
      "domainName" : "MGMT"
    }
  } ]
}

2.4.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/90f7ff16-7b56-4200-985d-9f9a73361649' -i -u 'admin:VMwareInfra@1' \
    -H 'privileged-username: [email protected]' \
    -H 'privileged-password: VMwareInfra@1'

HTTP Request

GET /v1/credentials/90f7ff16-7b56-4200-985d-9f9a73361649 HTTP/1.1
privileged-username: [email protected]
privileged-password: VMwareInfra@1
Host: sddc-manager.sfo01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 362

{
  "id" : "90f7ff16-7b56-4200-985d-9f9a73361649",
  "credentialType" : "SSH",
  "username" : "root",
  "password" : "VMwareInfra@1",
  "resource" : {
    "resourceId" : "1815387f-f96f-451c-bb2b-bbd08d289f67",
    "resourceName" : "sfo01m01esx02.sfo01.rainpole.local",
    "resourceIp" : "10.0.0.101",
    "resourceType" : "ESXI",
    "domainName" : "MGMT"
  }
}

2.4.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 the password policies.

Tip
Refer to: Documentation of the product for product specific password policies.
Steps
  1. Trigger the task using the valid input specification.

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/v1/credentials' -i -u 'admin:VMwareInfra@1' -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'privileged-username: [email protected]' \
    -H 'privileged-password: VMwareInfra@1' \
    -H 'Accept: application/json' \
    -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
privileged-username: [email protected]
privileged-password: VMwareInfra@1
Accept: application/json
Host: sddc-manager.sfo01.rainpole.local
Content-Length: 272
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

{
  "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/9a9e733a-e1e7-4314-9530-eb0b13955fb0
Content-Type: application/json;charset=UTF-8
Content-Length: 100

{
  "id" : "9a9e733a-e1e7-4314-9530-eb0b13955fb0",
  "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.4.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 -u 'admin:VMwareInfra@1' -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'privileged-username: [email protected]' \
    -H 'privileged-password: VMwareInfra@1' \
    -H 'Accept: application/json' \
    -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
privileged-username: [email protected]
privileged-password: VMwareInfra@1
Accept: application/json
Host: sddc-manager.sfo01.rainpole.local
Content-Length: 236
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

{
  "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/cb3e9cf3-62bc-43df-a397-59784ce479a2
Content-Type: application/json;charset=UTF-8
Content-Length: 100

{
  "id" : "cb3e9cf3-62bc-43df-a397-59784ce479a2",
  "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 passwords of the dependent resources of the requested resources will also get rotated.

2.4.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: Documentation of the product for product specific password policies.
Steps
  1. Trigger the task using the valid input specification.

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/v1/credentials/tasks/f221d17d-5273-468d-8096-62bc27255dcb' -i -u 'admin:VMwareInfra@1' -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'privileged-username: [email protected]' \
    -H 'privileged-password: VMwareInfra@1' \
    -H 'Accept: application/json' \
    -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/f221d17d-5273-468d-8096-62bc27255dcb HTTP/1.1
Content-Type: application/json
privileged-username: [email protected]
privileged-password: VMwareInfra@1
Accept: application/json
Host: sddc-manager.sfo01.rainpole.local
Content-Length: 272
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

{
  "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/f221d17d-5273-468d-8096-62bc27255dcb
Content-Type: application/json;charset=UTF-8
Content-Length: 100

{
  "id" : "f221d17d-5273-468d-8096-62bc27255dcb",
  "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.4.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/120b814b-e476-4a49-abba-088ac09d08f0' -i -u 'admin:VMwareInfra@1' -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'privileged-username: [email protected]' \
    -H 'privileged-password: VMwareInfra@1' \
    -H 'Accept: application/json' \
    -d '{
  "operationType" : "ROTATE",
  "elements" : [ {
    "resourceName" : "sfo01m01esx02.sfo01.rainpole.local",
    "resourceType" : "ESXI",
    "credentials" : [ {
      "credentialType" : "SSH",
      "username" : "root"
    } ]
  } ]
}'

HTTP Request

PATCH /v1/credentials/tasks/120b814b-e476-4a49-abba-088ac09d08f0 HTTP/1.1
Content-Type: application/json
privileged-username: [email protected]
privileged-password: VMwareInfra@1
Accept: application/json
Host: sddc-manager.sfo01.rainpole.local
Content-Length: 236
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

{
  "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/120b814b-e476-4a49-abba-088ac09d08f0
Content-Type: application/json;charset=UTF-8
Content-Length: 100

{
  "id" : "120b814b-e476-4a49-abba-088ac09d08f0",
  "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
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.4.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/12a12eb1-650a-4311-84b0-d2f9cebf9612' -i -u 'admin:VMwareInfra@1' -X DELETE

HTTP Request

DELETE /v1/credentials/tasks/12a12eb1-650a-4311-84b0-d2f9cebf9612 HTTP/1.1
Host: sddc-manager.sfo01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

HTTP Response

HTTP/1.1 204 No Content
Content-Type: application/json;charset=UTF-8
Content-Length: 103

{
  "id" : "12a12eb1-650a-4311-84b0-d2f9cebf9612",
  "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.4.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 -u 'admin:VMwareInfra@1' \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json'

HTTP Request

GET /v1/credentials/tasks HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: sddc-manager.sfo01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 650

{
  "elements" : [ {
    "id" : "186d891f-aac3-4501-ae52-afb89eb7e32f",
    "name" : "Credentials rotate operation",
    "creationTimestamp" : "2018-11-05T05:15:32.864Z",
    "status" : "SUCCESSFUL",
    "subTasks" : [ {
      "name" : "vracafe3.rainpole.local:SSH",
      "creationTimestamp" : "2018-11-05T05:15:32.864Z",
      "status" : "SUCCESSFUL"
    }, {
      "name" : "vracafe2.rainpole.local:SSH",
      "creationTimestamp" : "2018-11-05T05:15:32.864Z",
      "status" : "SUCCESSFUL"
    }, {
      "name" : "vracafe1.rainpole.local:SSH",
      "creationTimestamp" : "2018-11-05T05:15:32.864Z",
      "status" : "SUCCESSFUL"
    } ]
  } ]
}

2.4.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 -u 'admin:VMwareInfra@1' \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json'

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: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 591

{
  "id" : "186d891f-aac3-4501-ae52-afb89eb7e32f",
  "name" : "Credentials rotate operation",
  "creationTimestamp" : "2018-11-05T05:15:32.864Z",
  "status" : "SUCCESSFUL",
  "subTasks" : [ {
    "name" : "vracafe3.rainpole.local:SSH",
    "creationTimestamp" : "2018-11-05T05:15:32.864Z",
    "status" : "SUCCESSFUL"
  }, {
    "name" : "vracafe2.rainpole.local:SSH",
    "creationTimestamp" : "2018-11-05T05:15:32.864Z",
    "status" : "SUCCESSFUL"
  }, {
    "name" : "vracafe1.rainpole.local:SSH",
    "creationTimestamp" : "2018-11-05T05:15:32.864Z",
    "status" : "SUCCESSFUL"
  } ]
}

2.4.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 -u 'admin:VMwareInfra@1' \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json'

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: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 479

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

2.5. License Keys

2.5.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 -u 'admin:VMwareInfra@1' -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
  "key" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
  "productType" : "NSXV",
  "description" : "vCenter license key"
}'

HTTP Request

POST /v1/license-keys HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: sddc-manager.sfo01.rainpole.local
Content-Length: 112
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

{
  "key" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
  "productType" : "NSXV",
  "description" : "vCenter license key"
}

HTTP Response

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

2.5.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 -u 'admin:VMwareInfra@1' \
    -H 'Accept: application/json'

HTTP Request

GET /v1/license-keys HTTP/1.1
Accept: application/json
Host: sddc-manager.sfo01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 912

{
  "elements" : [ {
    "id" : "b128c86b-e99f-47dc-b839-420dc07e3de5",
    "key" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "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" : "9ae31627-5ab7-4839-a409-bca2750eab1c",
    "key" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "productType" : "NSXV",
    "description" : "NSX-V 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 -u 'admin:VMwareInfra@1' \
    -H 'Accept: application/json'

HTTP Request

GET /v1/license-keys?productType=VCENTER,ESXI HTTP/1.1
Accept: application/json
Host: sddc-manager.sfo01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 471

{
  "elements" : [ {
    "id" : "572e0ce2-cac2-4016-a4aa-664ef9d31761",
    "key" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "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 -u 'admin:VMwareInfra@1' \
    -H 'Accept: application/json'

HTTP Request

GET /v1/license-keys?licenseKeyStatus=ACTIVE,NEVER_EXPIRES HTTP/1.1
Accept: application/json
Host: sddc-manager.sfo01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 471

{
  "elements" : [ {
    "id" : "67c8e1d5-d065-48d7-866d-69464547de58",
    "key" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "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.5.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/XXXXX-XXXXX-XXXXX-XXXXX-XXXXX' -i -u 'admin:VMwareInfra@1' \
    -H 'Accept: application/json'

HTTP Request

GET /v1/license-keys/XXXXX-XXXXX-XXXXX-XXXXX-XXXXX HTTP/1.1
Accept: application/json
Host: sddc-manager.sfo01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 416

{
  "id" : "314cb393-2280-45bf-9724-a42ca4e0cc32",
  "key" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
  "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.5.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/XXXXX-XXXXX-XXXXX-XXXXX-XXXXX' -i -u 'admin:VMwareInfra@1' -X DELETE \
    -H 'Accept: application/json'

HTTP Request

DELETE /v1/license-keys/XXXXX-XXXXX-XXXXX-XXXXX-XXXXX HTTP/1.1
Accept: application/json
Host: sddc-manager.sfo01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

HTTP Response

HTTP/1.1 204 No Content

2.6. Network Pools

2.6.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 -u 'admin:VMwareInfra@1' -X POST \
    -H 'Content-Type: application/json' \
    -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
Host: sddc-manager.sfo01.rainpole.local
Content-Length: 304
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

{
  "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/697e7560-b7aa-4812-8875-75e9b8250160

2.6.2. Get the Network Pools

Steps
  1. Invoke the API

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/v1/network-pools' -i -u 'admin:VMwareInfra@1' \
    -H 'Content-Type: application/json'

HTTP Request

GET /v1/network-pools HTTP/1.1
Content-Type: application/json
Host: sddc-manager.sfo01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 375

{
  "elements" : [ {
    "id" : "a2532f77-323c-49ae-b998-539de32b0b47",
    "name" : "engineering-networkpool",
    "networks" : [ {
      "id" : "7dbc61b5-1a0e-4822-84d9-ce2d7151e76b"
    } ]
  }, {
    "id" : "31d4ea0d-6e4d-4301-b7a0-b065d9c12add",
    "name" : "finance-networkpool",
    "networks" : [ {
      "id" : "0b94b37b-9955-4d57-84cf-b25ec4bcb7bb"
    } ]
  } ]
}

2.6.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/a3ae2fd7-9d69-4f66-a3c7-12f66257af8c' -i -u 'admin:VMwareInfra@1' \
    -H 'Content-Type: application/json'

HTTP Request

GET /v1/network-pools/a3ae2fd7-9d69-4f66-a3c7-12f66257af8c HTTP/1.1
Content-Type: application/json
Host: sddc-manager.sfo01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 165

{
  "id" : "a3ae2fd7-9d69-4f66-a3c7-12f66257af8c",
  "name" : "engineering-networkpool",
  "networks" : [ {
    "id" : "15729047-0166-404e-9f5e-e2432498860e"
  } ]
}

2.6.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/a2d1c4bd-9e14-466d-a6f3-54bd1e00223a/networks/ac74f5bd-3a66-4fc0-9942-34916e926ede' -i -u 'admin:VMwareInfra@1' \
    -H 'Content-Type: application/json'

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 270

{
  "id" : "ac74f5bd-3a66-4fc0-9942-34916e926ede",
  "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.6.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/9605daaa-d6ef-43fd-b817-ba02fab3ff02' -i -u 'admin:VMwareInfra@1' -X DELETE \
    -H 'Content-Type: application/json'

HTTP Request

DELETE /v1/network-pools/9605daaa-d6ef-43fd-b817-ba02fab3ff02 HTTP/1.1
Content-Type: application/json
Host: sddc-manager.sfo01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

HTTP Response

HTTP/1.1 204 No Content

2.6.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/c59d83f5-7783-4c1d-b6ef-5f8f8055f20b/networks/2358f051-d38e-4708-b4c9-be710f7f2f12/ip-pools' -i -u 'admin:VMwareInfra@1' -X POST \
    -H 'Content-Type: application/json' \
    -d '{
  "start" : "192.168.8.5",
  "end" : "192.168.8.8"
}'
Request Body
POST /v1/network-pools/c59d83f5-7783-4c1d-b6ef-5f8f8055f20b/networks/2358f051-d38e-4708-b4c9-be710f7f2f12/ip-pools HTTP/1.1
Content-Type: application/json
Host: sddc-manager.sfo01.rainpole.local
Content-Length: 54
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

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

{
  "id" : "5e885396-5fac-4ade-80c4-2b54f022248c",
  "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.6.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/283823f3-2fd1-434d-8c24-de221b7e18ae/networks/f76ae118-c952-4b22-92ca-8845fe756d13/ip-pools' -i -u 'admin:VMwareInfra@1' -X DELETE \
    -H 'Content-Type: application/json' \
    -d '{
  "start" : "192.168.8.5",
  "end" : "192.168.8.8"
}'
Response Body
DELETE /v1/network-pools/283823f3-2fd1-434d-8c24-de221b7e18ae/networks/f76ae118-c952-4b22-92ca-8845fe756d13/ip-pools HTTP/1.1
Content-Type: application/json
Host: sddc-manager.sfo01.rainpole.local
Content-Length: 54
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

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

2.7. Tasks

2.7.1. Get the Tasks

Steps
  1. Invoke the API

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/v1/tasks' -i -u 'admin:VMwareInfra@1' \
    -H 'Content-Type: application/json'

HTTP Request

GET /v1/tasks HTTP/1.1
Content-Type: application/json
Host: sddc-manager.sfo01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 1750

{
  "elements" : [ {
    "id" : "7849572e-7226-43cf-9c4b-a840d400da0d",
    "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" : "1e2514a2-ca63-4ffb-a66c-e8fce15637bf",
      "type" : "HOST"
    } ]
  }, {
    "id" : "7d17a480-79f6-4dcd-ac12-949ed33148f6",
    "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" : "20d804fd-795d-434f-9c4a-de5e00389392",
      "type" : "HOST"
    } ]
  } ]
}

2.7.2. Get a Task

Prerequisites
  1. The following data is required

    • ID of the task

Steps
  1. Invoke the API

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/v1/tasks/26c5b70c-9a6f-4d66-bca0-bff848cb38a5' -i -u 'admin:VMwareInfra@1' \
    -H 'Content-Type: application/json'

HTTP Request

GET /v1/tasks/26c5b70c-9a6f-4d66-bca0-bff848cb38a5 HTTP/1.1
Content-Type: application/json
Host: sddc-manager.sfo01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 878

{
  "id" : "26c5b70c-9a6f-4d66-bca0-bff848cb38a5",
  "name" : "Vi workload Domain Creation",
  "status" : "FAILED",
  "creationTimestamp" : "1970-01-19T03:25:03.457Z",
  "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" : "63fafcee-6552-4959-b697-1727f597d8d5",
    "type" : "HOST"
  } ]
}

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

cURL Request

$ curl 'https://sddc-manager.sfo01.rainpole.local/v1/tasks/f42ae33f-e640-4c45-9539-1e3c50c5028c' -i -u 'admin:VMwareInfra@1' -X PATCH \
    -H 'Content-Type: application/json'

HTTP Request

PATCH /v1/tasks/f42ae33f-e640-4c45-9539-1e3c50c5028c HTTP/1.1
Content-Type: application/json
Host: sddc-manager.sfo01.rainpole.local
Authorization: Basic YWRtaW46Vk13YXJlSW5mcmFAMQ==

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.

3. Paths

3.1. Create a Cluster and add to an existing Domain

POST /v1/clusters

3.1.1. Parameters

Type Name Description Schema

Body

clusterCreationSpec
required

Cluster Creation Spec

3.1.2. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

InternalServerError

3.1.3. Consumes

  • application/json

3.1.4. Produces

  • application/json

3.1.5. Tags

  • Clusters

3.1.6. Security

Type Name

basic

3.1.7. 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
        }
      },
      "datastoreSpec" : {
        "nfsDatastoreSpecs" : [ {
          "datastoreName" : "string",
          "nasVolume" : {
            "path" : "string",
            "readOnly" : true,
            "serverName" : [ "string" ],
            "userTag" : "string"
          }
        } ],
        "vsanDatastoreSpec" : {
          "datastoreName" : "string",
          "dedupAndCompressionEnabled" : true,
          "failuresToTolerate" : 0,
          "licenseKey" : "string"
        }
      },
      "hostSpecs" : [ {
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "string",
            "vdsName" : "string"
          } ]
        },
        "id" : "string",
        "licenseKey" : "string"
      } ],
      "name" : "string",
      "networkSpec" : {
        "nsxClusterSpec" : {
          "nsxTClusterSpec" : {
            "geneveVlanId" : 0
          },
          "nsxVClusterSpec" : {
            "licenseKey" : "string",
            "vdsNameForVxlanConfig" : "string",
            "vlanId" : 0
          }
        },
        "vdsSpecs" : [ {
          "name" : "string",
          "niocBandwidthAllocationSpecs" : [ {
            "niocTrafficResourceAllocation" : {
              "limit" : 0,
              "reservation" : 0
            },
            "type" : "string"
          } ],
          "portGroupSpecs" : [ {
            "name" : "string",
            "transportType" : "One among: MANAGEMENT, NFS, PUBLIC, VMOTION, VSAN"
          } ]
        } ]
      }
    } ]
  },
  "domainId" : "string"
}

3.1.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",
  "resources" : [ {
    "resourceId" : "string",
    "type" : "string"
  } ],
  "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL",
  "subTasks" : [ {
    "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",
    "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL"
  } ]
}
Response 202
{
  "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",
  "resources" : [ {
    "resourceId" : "string",
    "type" : "string"
  } ],
  "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL",
  "subTasks" : [ {
    "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",
    "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL"
  } ]
}
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.2. Get the Clusters

GET /v1/clusters

3.2.1. Responses

HTTP Code Description Schema

200

Ok

400

Bad Request

500

InternalServerError

3.2.2. Consumes

  • application/json

3.2.3. Produces

  • application/json

3.2.4. Tags

  • Clusters

3.2.5. Security

Type Name

basic

3.2.7. Example HTTP response

Response 200
{
  "elements" : [ {
    "hosts" : [ {
      "id" : "string"
    } ],
    "id" : "string",
    "name" : "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.3. Validate the input spec for creating and adding a Cluster to an existing Domain

POST /v1/clusters/validations/creations

3.3.1. Parameters

Type Name Description Schema

Body

clusterCreationSpec
required

Cluster Creation Spec

3.3.2. Responses

HTTP Code Description Schema

200

Ok

400

Bad Request

500

InternalServerError

3.3.3. Consumes

  • application/json

3.3.4. Produces

  • application/json

3.3.5. Tags

  • Clusters

3.3.6. Security

Type Name

basic

3.3.7. Example HTTP request

Request path
/v1/clusters/validations/creations
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
        }
      },
      "datastoreSpec" : {
        "nfsDatastoreSpecs" : [ {
          "datastoreName" : "string",
          "nasVolume" : {
            "path" : "string",
            "readOnly" : true,
            "serverName" : [ "string" ],
            "userTag" : "string"
          }
        } ],
        "vsanDatastoreSpec" : {
          "datastoreName" : "string",
          "dedupAndCompressionEnabled" : true,
          "failuresToTolerate" : 0,
          "licenseKey" : "string"
        }
      },
      "hostSpecs" : [ {
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "string",
            "vdsName" : "string"
          } ]
        },
        "id" : "string",
        "licenseKey" : "string"
      } ],
      "name" : "string",
      "networkSpec" : {
        "nsxClusterSpec" : {
          "nsxTClusterSpec" : {
            "geneveVlanId" : 0
          },
          "nsxVClusterSpec" : {
            "licenseKey" : "string",
            "vdsNameForVxlanConfig" : "string",
            "vlanId" : 0
          }
        },
        "vdsSpecs" : [ {
          "name" : "string",
          "niocBandwidthAllocationSpecs" : [ {
            "niocTrafficResourceAllocation" : {
              "limit" : 0,
              "reservation" : 0
            },
            "type" : "string"
          } ],
          "portGroupSpecs" : [ {
            "name" : "string",
            "transportType" : "One among: MANAGEMENT, NFS, PUBLIC, VMOTION, VSAN"
          } ]
        } ]
      }
    } ]
  },
  "domainId" : "string"
}

3.3.8. Example HTTP response

Response 200
{
  "description" : "string",
  "executionStatus" : "One among: COMPLETED, FAILED, IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: FAILED, FAILED_WITH_WARNINGS, SUCCEEDED",
  "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"
    },
    "resultStatus" : "One among: FAILED, SUCCEEDED",
    "severity" : "One among: ERROR, WARNING"
  } ]
}
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 a Cluster

GET /v1/clusters/{id}

3.4.1. Parameters

Type Name Description Schema

Path

id
required

Cluster ID

string

3.4.2. Responses

HTTP Code Description Schema

200

Ok

404

Cluster not found

500

InternalServerError

3.4.3. Consumes

  • application/json

3.4.4. Produces

  • application/json

3.4.5. Tags

  • Clusters

3.4.6. Security

Type Name

basic

3.4.8. Example HTTP response

Response 200
{
  "hosts" : [ {
    "id" : "string"
  } ],
  "id" : "string",
  "name" : "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.5. Delete a Cluster from a Domain if it has been previously initialized for deletion

DELETE /v1/clusters/{id}

3.5.1. Parameters

Type Name Description Schema

Path

id
required

Cluster ID

string

3.5.2. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

404

Not Found

500

InternalServerError

3.5.3. Consumes

  • application/json

3.5.4. Produces

  • application/json

3.5.5. Tags

  • Clusters

3.5.6. Security

Type Name

basic

3.5.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",
  "resources" : [ {
    "resourceId" : "string",
    "type" : "string"
  } ],
  "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL",
  "subTasks" : [ {
    "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",
    "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL"
  } ]
}
Response 202
{
  "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",
  "resources" : [ {
    "resourceId" : "string",
    "type" : "string"
  } ],
  "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL",
  "subTasks" : [ {
    "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",
    "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL"
  } ]
}
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.6. Update a Cluster by adding or removing Hosts, or by marking for deletion

PATCH /v1/clusters/{id}

3.6.1. Parameters

Type Name Description Schema

Path

id
required

Cluster ID

string

Body

clusterUpdateSpec
required

Cluster Update Data

3.6.2. Responses

HTTP Code Description Schema

200

Ok

202

Accepted

400

Bad Request

404

Not Found

500

InternalServerError

3.6.3. Consumes

  • application/json

3.6.4. Produces

  • application/json

3.6.5. Tags

  • Clusters

3.6.6. Security

Type Name

basic

3.6.7. Example HTTP request

Request path
/v1/clusters/string
Request body
{
  "clusterCompactionSpec" : {
    "force" : true,
    "hosts" : [ {
      "id" : "string"
    } ]
  },
  "clusterExpansionSpec" : {
    "hostSpecs" : [ {
      "hostNetworkSpec" : {
        "vmNics" : [ {
          "id" : "string",
          "vdsName" : "string"
        } ]
      },
      "id" : "string",
      "licenseKey" : "string"
    } ]
  },
  "markForDeletion" : true
}

3.6.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",
  "resources" : [ {
    "resourceId" : "string",
    "type" : "string"
  } ],
  "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL",
  "subTasks" : [ {
    "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",
    "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL"
  } ]
}
Response 202
{
  "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",
  "resources" : [ {
    "resourceId" : "string",
    "type" : "string"
  } ],
  "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL",
  "subTasks" : [ {
    "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",
    "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL"
  } ]
}
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.7. Validate the spec to update a Cluster by adding or removing Hosts

POST /v1/clusters/{id}/validations/updates

3.7.1. Parameters

Type Name Description Schema

Path

id
required

Cluster ID

string

Body

clusterUpdateSpec
required

clusterUpdateSpec

3.7.2. Responses

HTTP Code Description Schema

200

Ok

400

Bad Request

404

Not Found

500

InternalServerError

3.7.3. Consumes

  • application/json

3.7.4. Produces

  • application/json

3.7.5. Tags

  • Clusters

3.7.6. Security

Type Name

basic

3.7.7. Example HTTP request

Request path
/v1/clusters/string/validations/updates
Request body
{
  "clusterCompactionSpec" : {
    "force" : true,
    "hosts" : [ {
      "id" : "string"
    } ]
  },
  "clusterExpansionSpec" : {
    "hostSpecs" : [ {
      "hostNetworkSpec" : {
        "vmNics" : [ {
          "id" : "string",
          "vdsName" : "string"
        } ]
      },
      "id" : "string",
      "licenseKey" : "string"
    } ]
  },
  "markForDeletion" : true
}

3.7.8. Example HTTP response

Response 200
{
  "description" : "string",
  "executionStatus" : "One among: COMPLETED, FAILED, IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: FAILED, FAILED_WITH_WARNINGS, SUCCEEDED",
  "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"
    },
    "resultStatus" : "One among: FAILED, SUCCEEDED",
    "severity" : "One among: ERROR, WARNING"
  } ]
}
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.8. Get the Credentials

GET /v1/credentials

3.8.1. Description

Get the Credentials

3.8.2. Parameters

Type Name Description Schema

Header

privileged-password
required

The privileged user password

string

Header

privileged-username
required

The privileged user name

string

Query

domainName
optional

The name of the domain to which the resource belongs to (may be null in case there is no associated domain)

string

Query

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 , SDDC_MANAGER , VCENTER , PSC , NSX_MANAGER , NSX_CONTROLLER , NSX_EDGE , NSXT_MANAGER , NSXT_CONTROLLER , NSXT_EDGE , VRLI , VROPS , LCM_REPO , VRA , VRSLCM , DEPOT_USER , VXRAIL_MANAGER , AD , BACKUP

string

3.8.3. Responses

HTTP Code Description Schema

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

500

Internal Server Error

3.8.4. Consumes

  • application/json

3.8.5. Produces

  • application/json

3.8.6. Tags

  • Credentials

3.8.7. Security

Type Name

basic

3.8.8. Example HTTP request

Request path
/v1/credentials
Request header
privileged-username:"string"

3.8.9. Example HTTP response

Response 200
{
  "elements" : [ {
    "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, SERVICE_ACCOUNT",
    "id" : "string",
    "password" : "string",
    "resource" : {
      "domainName" : "string",
      "resourceId" : "string",
      "resourceIp" : "string",
      "resourceName" : "string",
      "resourceType" : "One among: ESXI , SDDC_MANAGER , VCENTER , PSC , NSX_MANAGER , NSX_CONTROLLER , NSX_EDGE , NSXT_MANAGER , NSXT_CONTROLLER , NSXT_EDGE , VRLI , VROPS , LCM_REPO , VRA , VRSLCM , DEPOT_USER , VXRAIL_MANAGER , AD , BACKUP",
      "serviceType" : "One among: ESXI , SDDC_MANAGER , VCENTER , PSC , NSX_MANAGER , NSX_CONTROLLER , NSX_EDGE , NSXT_MANAGER , NSXT_CONTROLLER , NSXT_EDGE , VRLI , VROPS , LCM_REPO , VRA , VRSLCM , DEPOT_USER , VXRAIL_MANAGER , AD , BACKUP",
      "targetType" : "One among: ESXI , SDDC_MANAGER , VCENTER , PSC , NSX_MANAGER , NSX_CONTROLLER , NSX_EDGE , NSXT_MANAGER , NSXT_CONTROLLER , 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.9. Update or rotate passwords for a list of resources

PATCH /v1/credentials

3.9.1. Description

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

3.9.2. Parameters

Type Name Description Schema

Header

privileged-password
required

The privileged user password

string

Header

privileged-username
required

The privileged user name

string

Body

credentialsUpdateSpec
required

credentialsUpdateSpec

3.9.3. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

401

Unauthorized

403

Forbidden

500

Internal Server Error

3.9.4. Consumes

  • application/json

3.9.5. Produces

  • application/json

3.9.6. Tags

  • Credentials

3.9.7. Security

Type Name

basic

3.9.8. Example HTTP request

Request path
/v1/credentials
Request header
privileged-username:"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, SERVICE_ACCOUNT",
      "password" : "string",
      "username" : "string"
    } ],
    "resourceId" : "string",
    "resourceName" : "string",
    "resourceType" : "One among: ESXI , SDDC_MANAGER , VCENTER , PSC , NSX_MANAGER , NSX_CONTROLLER , NSX_EDGE , NSXT_MANAGER , NSXT_CONTROLLER , NSXT_EDGE , VRLI , VROPS , LCM_REPO , VRA , VRSLCM , DEPOT_USER , VXRAIL_MANAGER , AD , BACKUP"
  } ],
  "operationType" : "One among: UPDATE, ROTATE"
}

3.9.9. 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",
  "resources" : [ {
    "resourceId" : "string",
    "type" : "string"
  } ],
  "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL",
  "subTasks" : [ {
    "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",
    "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL"
  } ]
}
Response 202
{
  "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",
  "resources" : [ {
    "resourceId" : "string",
    "type" : "string"
  } ],
  "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL",
  "subTasks" : [ {
    "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",
    "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL"
  } ]
}
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.10. Fetch the credentials tasks

GET /v1/credentials/tasks

3.10.1. Description

Fetch all credentials tasks in reverse chronological order

3.10.2. Parameters

Type Name Description Schema

Query

limit
optional

The number of elements to be returned in the result

integer (int32)

3.10.3. Responses

HTTP Code Description Schema

200

OK

400

Bad Request

500

Internal Server Error

3.10.4. Consumes

  • application/json

3.10.5. Produces

  • application/json

3.10.6. Tags

  • Credentials

3.10.7. Security

Type Name

basic

3.10.9. 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, SUCCESSFUL, FAILED, USER_CANCELLED, INCONSISTENT",
    "subTasks" : [ {
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "dependentSubTasks" : [ {
        "creationTimestamp" : {
          "epochSecond" : 0,
          "nano" : 0
        },
        "dependentSubTasks" : [ "..." ],
        "description" : "string",
        "errors" : [ {
          "arguments" : [ "string" ],
          "causes" : [ {
            "message" : "string",
            "type" : "string"
          } ],
          "context" : {
            "string" : "string"
          },
          "errorCode" : "string",
          "message" : "string",
          "nestedErrors" : [ "..." ],
          "referenceToken" : "string",
          "remediationMessage" : "string"
        } ],
        "name" : "string",
        "status" : "One among: PENDING, SUCCESSFUL, FAILED, USER_CANCELLED, INCONSISTENT"
      } ],
      "description" : "string",
      "errors" : [ "..." ],
      "name" : "string",
      "status" : "One among: PENDING, SUCCESSFUL, FAILED, USER_CANCELLED, INCONSISTENT"
    } ]
  } ]
}
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.11. Fetch a credentials task

GET /v1/credentials/tasks/{id}

3.11.1. Description

Fetch credentials task for a given ID

3.11.2. Parameters

Type Name Description Schema

Path

id
required

The ID of the credentials task

string

3.11.3. Responses

HTTP Code Description Schema

200

OK

400

Bad Request

500

Internal Server Error

3.11.4. Consumes

  • application/json

3.11.5. Produces

  • application/json

3.11.6. Tags

  • Credentials

3.11.7. Security

Type Name

basic

3.11.8. Example HTTP request

Request path
/v1/credentials/tasks/string

3.11.9. 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, SUCCESSFUL, FAILED, USER_CANCELLED, INCONSISTENT",
  "subTasks" : [ {
    "creationTimestamp" : {
      "epochSecond" : 0,
      "nano" : 0
    },
    "dependentSubTasks" : [ {
      "creationTimestamp" : {
        "epochSecond" : 0,
        "nano" : 0
      },
      "dependentSubTasks" : [ "..." ],
      "description" : "string",
      "errors" : [ {
        "arguments" : [ "string" ],
        "causes" : [ {
          "message" : "string",
          "type" : "string"
        } ],
        "context" : {
          "string" : "string"
        },
        "errorCode" : "string",
        "message" : "string",
        "nestedErrors" : [ "..." ],
        "referenceToken" : "string",
        "remediationMessage" : "string"
      } ],
      "name" : "string",
      "status" : "One among: PENDING, SUCCESSFUL, FAILED, USER_CANCELLED, INCONSISTENT"
    } ],
    "description" : "string",
    "errors" : [ "..." ],
    "name" : "string",
    "status" : "One among: PENDING, SUCCESSFUL, FAILED, USER_CANCELLED, INCONSISTENT"
  } ]
}
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.12. Cancel a failed credentials task for a given ID

DELETE /v1/credentials/tasks/{id}

3.12.1. Description

Cancel a failed credentials task for a given ID

3.12.2. Parameters

Type Name Description Schema

Path

id
required

Task ID of the failed operation required to be cancelled

string

3.12.3. Responses

HTTP Code Description Schema

200

OK

204

No content

400

Bad Request

500

Internal Server Error

3.12.4. Consumes

  • application/json

3.12.5. Produces

  • application/json

3.12.6. Tags

  • Credentials

3.12.7. Security

Type Name

basic

3.12.8. Example HTTP request

Request path
/v1/credentials/tasks/string

3.12.9. 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",
  "resources" : [ {
    "resourceId" : "string",
    "type" : "string"
  } ],
  "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL",
  "subTasks" : [ {
    "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",
    "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL"
  } ]
}
Response 204
{
  "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",
  "resources" : [ {
    "resourceId" : "string",
    "type" : "string"
  } ],
  "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL",
  "subTasks" : [ {
    "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",
    "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL"
  } ]
}
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.13. Retry a failed credentials task for a given ID

PATCH /v1/credentials/tasks/{id}

3.13.1. Description

Retry a failed credentials task for a given ID

3.13.2. Parameters

Type Name Description Schema

Header

privileged-password
required

The privileged user password

string

Header

privileged-username
required

The privileged user name

string

Path

id
required

Task ID of the failed operation that is to be retried

string

Body

credentialsUpdateSpec
required

credentialsUpdateSpec

3.13.3. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

401

Unauthorized

403

Forbidden

500

Internal Server Error

3.13.4. Consumes

  • application/json

3.13.5. Produces

  • application/json

3.13.6. Tags

  • Credentials

3.13.7. Security

Type Name

basic

3.13.8. Example HTTP request

Request path
/v1/credentials/tasks/string
Request header
privileged-username:"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, SERVICE_ACCOUNT",
      "password" : "string",
      "username" : "string"
    } ],
    "resourceId" : "string",
    "resourceName" : "string",
    "resourceType" : "One among: ESXI , SDDC_MANAGER , VCENTER , PSC , NSX_MANAGER , NSX_CONTROLLER , NSX_EDGE , NSXT_MANAGER , NSXT_CONTROLLER , NSXT_EDGE , VRLI , VROPS , LCM_REPO , VRA , VRSLCM , DEPOT_USER , VXRAIL_MANAGER , AD , BACKUP"
  } ],
  "operationType" : "One among: UPDATE, ROTATE"
}

3.13.9. 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",
  "resources" : [ {
    "resourceId" : "string",
    "type" : "string"
  } ],
  "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL",
  "subTasks" : [ {
    "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",
    "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL"
  } ]
}
Response 202
{
  "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",
  "resources" : [ {
    "resourceId" : "string",
    "type" : "string"
  } ],
  "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL",
  "subTasks" : [ {
    "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",
    "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL"
  } ]
}
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.14. Fetch resource credentials for a given credentials task ID

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

3.14.1. Description

Fetch resource credentials for a given credentials task ID

3.14.2. Parameters

Type Name Description Schema

Path

id
required

The ID of the credentials task

string

3.14.3. Responses

HTTP Code Description Schema

200

OK

400

Bad Request

500

Internal Server Error

3.14.4. Consumes

  • application/json

3.14.5. Produces

  • application/json

3.14.6. Tags

  • Credentials

3.14.7. Security

Type Name

basic

3.14.8. Example HTTP request

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

3.14.9. 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, SERVICE_ACCOUNT",
    "password" : "string",
    "username" : "string"
  } ],
  "resourceId" : "string",
  "resourceName" : "string",
  "resourceType" : "One among: ESXI , SDDC_MANAGER , VCENTER , PSC , NSX_MANAGER , NSX_CONTROLLER , NSX_EDGE , NSXT_MANAGER , NSXT_CONTROLLER , 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.15. Get a Credential

GET /v1/credentials/{id}

3.15.1. Description

Get a Credential

3.15.2. Parameters

Type Name Description Schema

Header

privileged-password
required

The privileged user password

string

Header

privileged-username
required

The privileged user name

string

Path

id
required

The ID of the credential

string

3.15.3. Responses

HTTP Code Description Schema

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

500

Internal Server Error

3.15.4. Consumes

  • application/json

3.15.5. Produces

  • application/json

3.15.6. Tags

  • Credentials

3.15.7. Security

Type Name

basic

3.15.8. Example HTTP request

Request path
/v1/credentials/string
Request header
privileged-username:"string"

3.15.9. Example HTTP response

Response 200
{
  "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, SERVICE_ACCOUNT",
  "id" : "string",
  "password" : "string",
  "resource" : {
    "domainName" : "string",
    "resourceId" : "string",
    "resourceIp" : "string",
    "resourceName" : "string",
    "resourceType" : "One among: ESXI , SDDC_MANAGER , VCENTER , PSC , NSX_MANAGER , NSX_CONTROLLER , NSX_EDGE , NSXT_MANAGER , NSXT_CONTROLLER , NSXT_EDGE , VRLI , VROPS , LCM_REPO , VRA , VRSLCM , DEPOT_USER , VXRAIL_MANAGER , AD , BACKUP",
    "serviceType" : "One among: ESXI , SDDC_MANAGER , VCENTER , PSC , NSX_MANAGER , NSX_CONTROLLER , NSX_EDGE , NSXT_MANAGER , NSXT_CONTROLLER , NSXT_EDGE , VRLI , VROPS , LCM_REPO , VRA , VRSLCM , DEPOT_USER , VXRAIL_MANAGER , AD , BACKUP",
    "targetType" : "One among: ESXI , SDDC_MANAGER , VCENTER , PSC , NSX_MANAGER , NSX_CONTROLLER , NSX_EDGE , NSXT_MANAGER , NSXT_CONTROLLER , 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.16. Create a Domain

POST /v1/domains

3.16.1. Parameters

Type Name Description Schema

Body

domainCreationSpec
required

Domain creation data

3.16.2. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

InternalServerError

3.16.3. Consumes

  • application/json

3.16.4. Produces

  • application/json

3.16.5. Tags

  • Domains

3.16.6. Security

Type Name

basic

3.16.7. 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
        }
      },
      "datastoreSpec" : {
        "nfsDatastoreSpecs" : [ {
          "datastoreName" : "string",
          "nasVolume" : {
            "path" : "string",
            "readOnly" : true,
            "serverName" : [ "string" ],
            "userTag" : "string"
          }
        } ],
        "vsanDatastoreSpec" : {
          "datastoreName" : "string",
          "dedupAndCompressionEnabled" : true,
          "failuresToTolerate" : 0,
          "licenseKey" : "string"
        }
      },
      "hostSpecs" : [ {
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "string",
            "vdsName" : "string"
          } ]
        },
        "id" : "string",
        "licenseKey" : "string"
      } ],
      "name" : "string",
      "networkSpec" : {
        "nsxClusterSpec" : {
          "nsxTClusterSpec" : {
            "geneveVlanId" : 0
          },
          "nsxVClusterSpec" : {
            "licenseKey" : "string",
            "vdsNameForVxlanConfig" : "string",
            "vlanId" : 0
          }
        },
        "vdsSpecs" : [ {
          "name" : "string",
          "niocBandwidthAllocationSpecs" : [ {
            "niocTrafficResourceAllocation" : {
              "limit" : 0,
              "reservation" : 0
            },
            "type" : "string"
          } ],
          "portGroupSpecs" : [ {
            "name" : "string",
            "transportType" : "One among: MANAGEMENT, NFS, PUBLIC, VMOTION, VSAN"
          } ]
        } ]
      }
    } ]
  },
  "domainName" : "string",
  "nsxTSpec" : {
    "licenseKey" : "string",
    "nsxManagerAdminPassword" : "string",
    "nsxManagerSpecs" : [ {
      "name" : "string",
      "networkDetailsSpec" : {
        "dnsName" : "string",
        "gateway" : "string",
        "ipAddress" : "string",
        "subnetMask" : "string"
      }
    } ],
    "vip" : "string",
    "vipFqdn" : "string"
  },
  "nsxVSpec" : {
    "licenseKey" : "string",
    "nsxManagerAdminPassword" : "string",
    "nsxManagerEnablePassword" : "string",
    "nsxManagerSpec" : {
      "name" : "string",
      "networkDetailsSpec" : {
        "dnsName" : "string",
        "gateway" : "string",
        "ipAddress" : "string",
        "subnetMask" : "string"
      }
    },
    "nsxVControllerSpec" : {
      "nsxControllerGateway" : "string",
      "nsxControllerIps" : [ "string" ],
      "nsxControllerPassword" : "string",
      "nsxControllerSubnetMask" : "string"
    }
  },
  "vcenterSpec" : {
    "datacenterName" : "string",
    "licenseKey" : "string",
    "name" : "string",
    "networkDetailsSpec" : {
      "dnsName" : "string",
      "gateway" : "string",
      "ipAddress" : "string",
      "subnetMask" : "string"
    },
    "rootPassword" : "string"
  }
}

3.16.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",
  "resources" : [ {
    "resourceId" : "string",
    "type" : "string"
  } ],
  "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL",
  "subTasks" : [ {
    "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",
    "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL"
  } ]
}
Response 202
{
  "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",
  "resources" : [ {
    "resourceId" : "string",
    "type" : "string"
  } ],
  "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL",
  "subTasks" : [ {
    "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",
    "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL"
  } ]
}
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.17. Get the Domains

GET /v1/domains

3.17.1. Responses

HTTP Code Description Schema

200

Ok

400

Bad Request

500

InternalServerError

3.17.2. Consumes

  • application/json

3.17.3. Produces

  • application/json

3.17.4. Tags

  • Domains

3.17.5. Security

Type Name

basic

3.17.7. Example HTTP response

Response 200
{
  "clusters" : [ {
    "id" : "string"
  } ],
  "id" : "string",
  "name" : "string",
  "vcenters" : [ {
    "fqdn" : "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.18. Validate the input spec for creating a Domain

POST /v1/domains/validations/creations

3.18.1. Parameters

Type Name Description Schema

Body

domainCreationSpec
required

Domain creation data

3.18.2. Responses

HTTP Code Description Schema

200

Ok

400

Bad Request

500

InternalServerError

3.18.3. Consumes

  • application/json

3.18.4. Produces

  • application/json

3.18.5. Tags

  • Domains

3.18.6. Security

Type Name

basic

3.18.7. Example HTTP request

Request path
/v1/domains/validations/creations
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
        }
      },
      "datastoreSpec" : {
        "nfsDatastoreSpecs" : [ {
          "datastoreName" : "string",
          "nasVolume" : {
            "path" : "string",
            "readOnly" : true,
            "serverName" : [ "string" ],
            "userTag" : "string"
          }
        } ],
        "vsanDatastoreSpec" : {
          "datastoreName" : "string",
          "dedupAndCompressionEnabled" : true,
          "failuresToTolerate" : 0,
          "licenseKey" : "string"
        }
      },
      "hostSpecs" : [ {
        "hostNetworkSpec" : {
          "vmNics" : [ {
            "id" : "string",
            "vdsName" : "string"
          } ]
        },
        "id" : "string",
        "licenseKey" : "string"
      } ],
      "name" : "string",
      "networkSpec" : {
        "nsxClusterSpec" : {
          "nsxTClusterSpec" : {
            "geneveVlanId" : 0
          },
          "nsxVClusterSpec" : {
            "licenseKey" : "string",
            "vdsNameForVxlanConfig" : "string",
            "vlanId" : 0
          }
        },
        "vdsSpecs" : [ {
          "name" : "string",
          "niocBandwidthAllocationSpecs" : [ {
            "niocTrafficResourceAllocation" : {
              "limit" : 0,
              "reservation" : 0
            },
            "type" : "string"
          } ],
          "portGroupSpecs" : [ {
            "name" : "string",
            "transportType" : "One among: MANAGEMENT, NFS, PUBLIC, VMOTION, VSAN"
          } ]
        } ]
      }
    } ]
  },
  "domainName" : "string",
  "nsxTSpec" : {
    "licenseKey" : "string",
    "nsxManagerAdminPassword" : "string",
    "nsxManagerSpecs" : [ {
      "name" : "string",
      "networkDetailsSpec" : {
        "dnsName" : "string",
        "gateway" : "string",
        "ipAddress" : "string",
        "subnetMask" : "string"
      }
    } ],
    "vip" : "string",
    "vipFqdn" : "string"
  },
  "nsxVSpec" : {
    "licenseKey" : "string",
    "nsxManagerAdminPassword" : "string",
    "nsxManagerEnablePassword" : "string",
    "nsxManagerSpec" : {
      "name" : "string",
      "networkDetailsSpec" : {
        "dnsName" : "string",
        "gateway" : "string",
        "ipAddress" : "string",
        "subnetMask" : "string"
      }
    },
    "nsxVControllerSpec" : {
      "nsxControllerGateway" : "string",
      "nsxControllerIps" : [ "string" ],
      "nsxControllerPassword" : "string",
      "nsxControllerSubnetMask" : "string"
    }
  },
  "vcenterSpec" : {
    "datacenterName" : "string",
    "licenseKey" : "string",
    "name" : "string",
    "networkDetailsSpec" : {
      "dnsName" : "string",
      "gateway" : "string",
      "ipAddress" : "string",
      "subnetMask" : "string"
    },
    "rootPassword" : "string"
  }
}

3.18.8. Example HTTP response

Response 200
{
  "description" : "string",
  "executionStatus" : "One among: COMPLETED, FAILED, IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: FAILED, FAILED_WITH_WARNINGS, SUCCEEDED",
  "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"
    },
    "resultStatus" : "One among: FAILED, SUCCEEDED",
    "severity" : "One among: ERROR, WARNING"
  } ]
}
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.19. Get a Domain

GET /v1/domains/{id}

3.19.1. Parameters

Type Name Description Schema

Path

id
required

Domain ID

string

3.19.2. Responses

HTTP Code Description Schema

200

Ok

404

Domain not found

500

InternalServerError

3.19.3. Consumes

  • application/json

3.19.4. Produces

  • application/json

3.19.5. Tags

  • Domains

3.19.6. Security

Type Name

basic

3.19.8. Example HTTP response

Response 200
{
  "clusters" : [ {
    "id" : "string"
  } ],
  "id" : "string",
  "name" : "string",
  "vcenters" : [ {
    "fqdn" : "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. Delete a Domain if it has been previously initialized for deletion

DELETE /v1/domains/{id}

3.20.1. Parameters

Type Name Description Schema

Path

id
required

Domain ID

string

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

  • Domains

3.20.6. Security

Type Name

basic

3.20.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",
  "resources" : [ {
    "resourceId" : "string",
    "type" : "string"
  } ],
  "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL",
  "subTasks" : [ {
    "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",
    "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL"
  } ]
}
Response 202
{
  "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",
  "resources" : [ {
    "resourceId" : "string",
    "type" : "string"
  } ],
  "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL",
  "subTasks" : [ {
    "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",
    "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL"
  } ]
}
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. Update a Domain by marking for deletion

PATCH /v1/domains/{id}

3.21.1. Parameters

Type Name Description Schema

Path

id
required

Domain ID

string

Body

domainUpdateSpec
required

Domain Update Data

3.21.2. Responses

HTTP Code Description Schema

200

Ok

400

Bad Request

404

Not Found

500

InternalServerError

3.21.3. Consumes

  • application/json

3.21.4. Produces

  • application/json

3.21.5. Tags

  • Domains

3.21.6. Security

Type Name

basic

3.21.7. Example HTTP request

Request path
/v1/domains/string
Request body
{
  "markForDeletion" : true
}

3.21.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",
  "resources" : [ {
    "resourceId" : "string",
    "type" : "string"
  } ],
  "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL",
  "subTasks" : [ {
    "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",
    "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL"
  } ]
}
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.22. Commission the Hosts

POST /v1/hosts

3.22.1. Parameters

Type Name Description Schema

Body

hostCommissionSpecs
required

hostCommissionSpecs

< HostCommissionSpec > array

3.22.2. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

Internal server error

3.22.3. Consumes

  • application/json

3.22.4. Produces

  • application/json

3.22.5. Tags

  • Hosts

3.22.6. Security

Type Name

basic

3.22.7. Example HTTP request

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

3.22.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",
  "resources" : [ {
    "resourceId" : "string",
    "type" : "string"
  } ],
  "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL",
  "subTasks" : [ {
    "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",
    "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL"
  } ]
}
Response 202
{
  "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",
  "resources" : [ {
    "resourceId" : "string",
    "type" : "string"
  } ],
  "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL",
  "subTasks" : [ {
    "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",
    "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL"
  } ]
}
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.23. Get the Hosts

GET /v1/hosts

3.23.1. Parameters

Type Name Description Schema

Query

status
optional

Status of the Host

string

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

  • Hosts

3.23.6. Security

Type Name

basic

3.23.8. Example HTTP response

Response 200
{
  "elements" : [ {
    "cluster" : {
      "id" : "string"
    },
    "cpu" : {
      "cores" : 0,
      "cpuCores" : [ {
        "frequencyMHz" : 0.0,
        "manufacturer" : "string",
        "model" : "string"
      } ],
      "frequencyMHz" : 0.0
    },
    "domain" : {
      "id" : "string"
    },
    "esxiVersion" : "string",
    "fqdn" : "string",
    "hardwareModel" : "string",
    "hardwareVendor" : "string",
    "id" : "string",
    "ipAddresses" : [ {
      "ipAddress" : "string",
      "type" : "One among: MANAGEMENT, NFS, VMOTION, VSAN"
    } ],
    "memory" : {
      "totalCapacityMB" : 0.0
    },
    "physicalNics" : [ {
      "deviceName" : "string",
      "macAddress" : "string"
    } ],
    "status" : "One among: ASSIGNED, UNASSIGNED_USEABLE, UNASSIGNED_USEABLE",
    "storage" : {
      "disks" : [ {
        "capacityMB" : 0.0,
        "diskType" : "One among: FLASH, HDD",
        "manufacturer" : "string",
        "model" : "string"
      } ],
      "totalCapacityMB" : 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. Decommission the Hosts

DELETE /v1/hosts

3.24.1. Parameters

Type Name Description Schema

Body

hostDecommissionSpecs
required

hostDecommissionSpecs

3.24.2. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

Internal server error

No Content

3.24.3. Consumes

  • application/json

3.24.4. Produces

  • application/json

3.24.5. Tags

  • Hosts

3.24.6. Security

Type Name

basic

3.24.7. Example HTTP request

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

3.24.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",
  "resources" : [ {
    "resourceId" : "string",
    "type" : "string"
  } ],
  "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL",
  "subTasks" : [ {
    "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",
    "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL"
  } ]
}
Response 202
{
  "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",
  "resources" : [ {
    "resourceId" : "string",
    "type" : "string"
  } ],
  "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL",
  "subTasks" : [ {
    "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",
    "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL"
  } ]
}
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.25. Validate the input specification to commission the Hosts

POST /v1/hosts/validations/commissions

3.25.1. Parameters

Type Name Description Schema

Body

hostCommissionSpecs
required

hostCommissionSpecs

< HostCommissionSpec > array

3.25.2. Responses

HTTP Code Description Schema

200

OK

202

Accepted

400

Bad Request

500

Internal server error

No Content

3.25.3. Consumes

  • application/json

3.25.4. Produces

  • application/json

3.25.5. Tags

  • Hosts

3.25.6. Security

Type Name

basic

3.25.7. Example HTTP request

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

3.25.8. Example HTTP response

Response 200
{
  "description" : "string",
  "executionStatus" : "One among: COMPLETED, FAILED, IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: FAILED, FAILED_WITH_WARNINGS, SUCCEEDED",
  "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"
    },
    "resultStatus" : "One among: FAILED, SUCCEEDED",
    "severity" : "One among: ERROR, WARNING"
  } ]
}
Response 202
{
  "description" : "string",
  "executionStatus" : "One among: COMPLETED, FAILED, IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: FAILED, FAILED_WITH_WARNINGS, SUCCEEDED",
  "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"
    },
    "resultStatus" : "One among: FAILED, SUCCEEDED",
    "severity" : "One among: ERROR, WARNING"
  } ]
}
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.26. Get the status of the validation of the input specification to commission the Hosts

GET /v1/hosts/validations/{id}

3.26.1. Parameters

Type Name Description Schema

Path

id
required

The validation ID

string

3.26.2. Responses

HTTP Code Description Schema

200

OK

400

Bad Request

500

Internal server error

No Content

3.26.3. Consumes

  • application/json

3.26.4. Produces

  • application/json

3.26.5. Tags

  • Hosts

3.26.6. Security

Type Name

basic

3.26.7. Example HTTP request

Request path
/v1/hosts/validations/string

3.26.8. Example HTTP response

Response 200
{
  "description" : "string",
  "executionStatus" : "One among: COMPLETED, FAILED, IN_PROGRESS",
  "id" : "string",
  "resultStatus" : "One among: FAILED, FAILED_WITH_WARNINGS, SUCCEEDED",
  "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"
    },
    "resultStatus" : "One among: FAILED, SUCCEEDED",
    "severity" : "One among: ERROR, WARNING"
  } ]
}
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.27. Get a Host

GET /v1/hosts/{id}

3.27.1. Parameters

Type Name Description Schema

Path

id
required

id

string

3.27.2. Responses

HTTP Code Description Schema

200

Ok

400

Bad Request

404

Host Not Found

500

Internal Server Error

3.27.3. Consumes

  • application/json

3.27.4. Produces

  • application/json

3.27.5. Tags

  • Hosts

3.27.6. Security

Type Name

basic

3.27.8. Example HTTP response

Response 200
{
  "cluster" : {
    "id" : "string"
  },
  "cpu" : {
    "cores" : 0,
    "cpuCores" : [ {
      "frequencyMHz" : 0.0,
      "manufacturer" : "string",
      "model" : "string"
    } ],
    "frequencyMHz" : 0.0
  },
  "domain" : {
    "id" : "string"
  },
  "esxiVersion" : "string",
  "fqdn" : "string",
  "hardwareModel" : "string",
  "hardwareVendor" : "string",
  "id" : "string",
  "ipAddresses" : [ {
    "ipAddress" : "string",
    "type" : "One among: MANAGEMENT, NFS, VMOTION, VSAN"
  } ],
  "memory" : {
    "totalCapacityMB" : 0.0
  },
  "physicalNics" : [ {
    "deviceName" : "string",
    "macAddress" : "string"
  } ],
  "status" : "One among: ASSIGNED, UNASSIGNED_USEABLE, UNASSIGNED_USEABLE",
  "storage" : {
    "disks" : [ {
      "capacityMB" : 0.0,
      "diskType" : "One among: FLASH, HDD",
      "manufacturer" : "string",
      "model" : "string"
    } ],
    "totalCapacityMB" : 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.28. Add a License Key

POST /v1/license-keys

3.28.1. Parameters

Type Name Description Schema

Body

licenseKey
required

License key with other attributes

3.28.2. Responses

HTTP Code Description Schema

200

OK

201

Created

500

Internal server error

3.28.3. Consumes

  • application/json

3.28.5. Tags

  • License Keys

3.28.6. Security

Type Name

basic

3.28.7. Example HTTP request

Request path
/v1/license-keys
Request body
{
  "description" : "string",
  "id" : "string",
  "isUnlimited" : true,
  "key" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
  "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"
  },
  "productType" : "One among: SDDC_MANAGER, VCENTER, NSXV, VSAN, ESXI, VRA, VROPS, NSXT"
}

3.28.8. Example HTTP response

Response 200
{
  "description" : "string",
  "id" : "string",
  "isUnlimited" : true,
  "key" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
  "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"
  },
  "productType" : "One among: SDDC_MANAGER, VCENTER, NSXV, VSAN, ESXI, VRA, VROPS, NSXT"
}
Response 201
{
  "description" : "string",
  "id" : "string",
  "isUnlimited" : true,
  "key" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
  "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"
  },
  "productType" : "One among: SDDC_MANAGER, VCENTER, NSXV, VSAN, ESXI, VRA, VROPS, NSXT"
}
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. Get the License Keys

GET /v1/license-keys

3.29.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.29.2. Responses

HTTP Code Description Schema

200

Successful

500

Internal server error

3.29.3. Consumes

  • application/json

3.29.5. Tags

  • License Keys

3.29.6. Security

Type Name

basic

3.29.8. Example HTTP response

Response 200
{
  "elements" : [ {
    "description" : "string",
    "id" : "string",
    "isUnlimited" : true,
    "key" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
    "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"
    },
    "productType" : "One among: SDDC_MANAGER, VCENTER, NSXV, VSAN, ESXI, VRA, VROPS, NSXT"
  } ]
}
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. Get a License Key by key

GET /v1/license-keys/{key}

3.30.1. Parameters

Type Name Description Schema

Path

key
required

The 29 alpha numeric character license key with hyphens

string

3.30.2. Responses

HTTP Code Description Schema

200

Successful

404

License key not found

500

Internal server error

3.30.3. Consumes

  • application/json

3.30.5. Tags

  • License Keys

3.30.6. Security

Type Name

basic

3.30.7. Example HTTP request

Request path
/v1/license-keys/string

3.30.8. Example HTTP response

Response 200
{
  "description" : "string",
  "id" : "string",
  "isUnlimited" : true,
  "key" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
  "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"
  },
  "productType" : "One among: SDDC_MANAGER, VCENTER, NSXV, VSAN, ESXI, VRA, VROPS, NSXT"
}
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.31. Delete a License Key

DELETE /v1/license-keys/{key}

3.31.1. Parameters

Type Name Description Schema

Path

key
required

The 29 alpha numeric character license key with hyphens

string

3.31.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.31.3. Consumes

  • application/json

3.31.5. Tags

  • License Keys

3.31.6. Security

Type Name

basic

3.31.7. Example HTTP request

Request path
/v1/license-keys/string

3.31.8. 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.32. Create a Network Pool

POST /v1/network-pools

3.32.1. Description

Create a Network Pool

3.32.2. Parameters

Type Name Description Schema

Body

networkPool
required

Specification of the Network pool to create

3.32.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.32.4. Consumes

  • application/json

3.32.5. Produces

  • application/json

3.32.6. Tags

  • Network Pools

3.32.7. Security

Type Name

basic

3.32.8. 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.32.9. 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.33. Get the Network Pools

GET /v1/network-pools

3.33.1. Description

Get the Network Pools

3.33.2. Responses

HTTP Code Description Schema

200

Referenced network pool

404

Referenced network pool not found

500

Unexpected error

3.33.3. Consumes

  • application/json

3.33.4. Produces

  • application/json

3.33.5. Tags

  • Network Pools

3.33.6. Security

Type Name

basic

3.33.8. 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.34. Get a Network Pool

GET /v1/network-pools/{id}

3.34.1. Description

Get a Network Pool by ID, if it exists

3.34.2. Parameters

Type Name Description Schema

Path

id
required

ID of the network pool to fetch

string

3.34.3. Responses

HTTP Code Description Schema

200

Referenced network pool

404

Referenced network pool not found

500

Unexpected error

3.34.4. Consumes

  • application/json

3.34.5. Produces

  • application/json

3.34.6. Tags

  • Network Pools

3.34.7. Security

Type Name

basic

3.34.8. Example HTTP request

Request path
/v1/network-pools/string

3.34.9. 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.35. Delete a Network Pool

DELETE /v1/network-pools/{id}

3.35.1. Description

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

3.35.2. Parameters

Type Name Description Schema

Path

id
required

ID of the network pool

string

3.35.3. Responses

HTTP Code Description Schema

200

OK

No Content

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

  • application/json

3.35.6. Tags

  • Network Pools

3.35.7. Security

Type Name

basic

3.35.8. Example HTTP request

Request path
/v1/network-pools/string

3.35.9. 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.36. Get the Networks of a Network Pool

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

3.36.1. Description

Get the Networks that are part of a Network Pool

3.36.2. Parameters

Type Name Description Schema

Path

id
required

ID for Networkpool to get the networks from

string

3.36.3. Responses

HTTP Code Description Schema

200

Networks for referenced network pool

404

Network pool not found

500

Unexpected error

3.36.4. Consumes

  • application/json

3.36.5. Produces

  • application/json

3.36.6. Tags

  • Network Pools

3.36.7. Security

Type Name

basic

3.36.8. Example HTTP request

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

3.36.9. 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.37. Get a Network of a Network Pool

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

3.37.1. Description

Get a Network that is part of a Network Pool

3.37.2. Parameters

Type Name Description Schema

Path

id
required

Id of the Network pool

string

Path

networkId
required

Id of the Network

string

3.37.3. Responses

HTTP Code Description Schema

200

Network for referenced network pool

404

Networkpool not found

500

Unexpected error

3.37.4. Consumes

  • application/json

3.37.5. Produces

  • application/json

3.37.6. Tags

  • Network Pools

3.37.7. Security

Type Name

basic

3.37.8. Example HTTP request

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

3.37.9. 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.38. Add an IP Pool to a Network of a Network Pool

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

3.38.1. Description

Add an IP Pool to a Network of a Network Pool

3.38.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.38.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.38.4. Consumes

  • application/json

3.38.5. Produces

  • application/json

3.38.6. Tags

  • Network Pools

3.38.7. Security

Type Name

basic

3.38.8. Example HTTP request

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

3.38.9. 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.39. Delete an IP Pool from a Network of a Network Pool

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

3.39.1. Description

Delete an IP Pool from a Network of a Network Pool

3.39.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.39.3. Responses

HTTP Code Description Schema

200

Delete the IP Pool associated with a Network of a Network Pool

No Content

400

Errors due to network/networkpool validations failures

404

Either network or Network pool not found

500

Unexpected error

3.39.4. Consumes

  • application/json

3.39.5. Produces

  • application/json

3.39.6. Tags

  • Network Pools

3.39.7. Security

Type Name

basic

3.39.8. Example HTTP request

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

3.39.9. 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.40. Get the Tasks

GET /v1/tasks

3.40.1. Description

Get the Tasks

3.40.2. Parameters

Type Name Description Schema

Query

limit
optional

The number of elements to be returned in the result

integer (int32)

3.40.3. Responses

HTTP Code Description Schema

200

Returns the list of tasks.

500

Unexpected error

3.40.4. Consumes

  • application/json

3.40.5. Produces

  • application/json

3.40.6. Tags

  • Tasks

3.40.7. Security

Type Name

basic

3.40.9. 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",
    "resources" : [ {
      "resourceId" : "string",
      "type" : "string"
    } ],
    "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL",
    "subTasks" : [ {
      "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",
      "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL"
    } ]
  } ]
}
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 a Task

GET /v1/tasks/{id}

3.41.1. Description

Get a Task by ID, if it exists

3.41.2. Parameters

Type Name Description Schema

Path

id
required

Task id to retrieve

string

3.41.3. Responses

HTTP Code Description Schema

200

A task object.

404

Task not found

500

Unexpected error

3.41.4. Consumes

  • application/json

3.41.5. Produces

  • application/json

3.41.6. Tags

  • Tasks

3.41.7. Security

Type Name

basic

3.41.9. 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",
  "resources" : [ {
    "resourceId" : "string",
    "type" : "string"
  } ],
  "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL",
  "subTasks" : [ {
    "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",
    "status" : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL"
  } ]
}
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. Retry a Task

PATCH /v1/tasks/{id}

3.42.1. Description

Retry a failed Task by ID, if it exists

3.42.2. Parameters

Type Name Description Schema

Path

id
required

Task id retry

string

3.42.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.42.4. Consumes

  • application/json

3.42.6. Tags

  • Tasks

3.42.7. Security

Type Name

basic

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

4. Definitions

4.1. 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.2. 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 , SDDC_MANAGER , VCENTER , PSC , NSX_MANAGER , NSX_CONTROLLER , NSX_EDGE , NSXT_MANAGER , NSXT_CONTROLLER , NSXT_EDGE , VRLI , VROPS , LCM_REPO , VRA , VRSLCM , DEPOT_USER , VXRAIL_MANAGER , AD , BACKUP"

string

serviceType
required

Service type
Example : "One among: ESXI , SDDC_MANAGER , VCENTER , PSC , NSX_MANAGER , NSX_CONTROLLER , NSX_EDGE , NSXT_MANAGER , NSXT_CONTROLLER , NSXT_EDGE , VRLI , VROPS , LCM_REPO , VRA , VRSLCM , DEPOT_USER , VXRAIL_MANAGER , AD , BACKUP"

string

targetType
required

Target type
Example : "One among: ESXI , SDDC_MANAGER , VCENTER , PSC , NSX_MANAGER , NSX_CONTROLLER , NSX_EDGE , NSXT_MANAGER , NSXT_CONTROLLER , NSXT_EDGE , VRLI , VROPS , LCM_REPO , VRA , VRSLCM , DEPOT_USER , VXRAIL_MANAGER , AD , BACKUP"

string

4.3. 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, SERVICE_ACCOUNT"

string

password
optional

Password
Example : "string"

string

username
required

Username
Example : "string"

string

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

name
optional

Name of the cluster
Example : "string"

string

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

4.8. ClusterReference

Represents a reference to the cluster

Name Description Schema

id
required

ID of the cluster
Example : "string"

string

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

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

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

markForDeletion
optional

Prepare the cluster for deletion
Example : true

boolean

4.11. 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.12. 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)

4.13. 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.14. Credential

Represents a credential and the resource to which it is associated with

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, SERVICE_ACCOUNT"

string

id
required

Credential ID
Example : "string"

string

password
required

Password
Example : "string"

string

resource
required

The resource which owns the credential
Example : AuthenticatedResource

username
required

Username
Example : "string"

string

4.15. CredentialsSubTask

Name Description Schema

creationTimestamp
optional

Credential sub-task creation timestamp
Example : Instant

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

errors
optional

List of errors in case of a failure
Example : [ "Error" ]

< Error > array

name
optional

Credential sub-task name
Example : "string"

string

status
optional

Credential sub-task status
Example : "One among: PENDING, SUCCESSFUL, FAILED, USER_CANCELLED, INCONSISTENT"

string

4.16. CredentialsTask

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, SUCCESSFUL, FAILED, USER_CANCELLED, INCONSISTENT"

string

subTasks
optional

List of credential sub-tasks of the credential task
Example : [ "CredentialsSubTask" ]

< CredentialsSubTask > array

4.17. 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.18. DatastoreSpec

This specification contains cluster storage configuration

Name Description Schema

nfsDatastoreSpecs
optional

Cluster storage configuration for NFS
Example : [ "NfsDatastoreSpec" ]

< NfsDatastoreSpec > array

vsanDatastoreSpec
optional

Cluster storage configuration for vSAN
Example : VsanDatastoreSpec

4.19. 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: FLASH, HDD"

string

manufacturer
optional

Hardware manufacturer of the disk
Example : "string"

string

model
optional

Hardware model of the disk
Example : "string"

string

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

vcenters
optional

List of vCenters associated with the workload domain
Example : [ "Vcenter" ]

< Vcenter > array

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

nsxVSpec
optional

Specification details for NSX-V configuration
Example : NsxVSpec

vcenterSpec
required

Specification details for vCenter
Example : VcenterSpec

4.22. DomainReference

Represents a domain reference

Name Description Schema

id
required

ID of the domain
Example : "string"

string

4.23. DomainUpdateSpec

Contains the parameters required to perform update operation on domain

Name Description Schema

markForDeletion
optional

Enable deletion of domain
Example : true

boolean

4.24. 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.25. 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.26. HighAvailability

This specification contains high availability settings

Name Description Schema

enabled
required

Example : true

boolean

4.27. Host

Represents an Esxi host in the system

Name Description Schema

cluster
optional

Information about the cluster this host is part of
Example : ClusterReference

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

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

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

string

storage
optional

Information about storage on the host
Example : Storage

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

string

username
required

Username of the host
Example : "string"

string

4.29. 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.30. 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.31. HostReference

Represents an ESXi host reference

Name Description Schema

id
required

ID of the host
Example : "string"

string

4.32. HostSpec

This specification contains information required to add vSphere host to a cluster

Name Description Schema

hostNetworkSpec
optional

Network Details of a vSphere host in the free pool
Example : HostNetworkSpec

id
required

ID of a vSphere host in the free pool
Example : "string"

string

licenseKey
optional

License key of a vSphere host in the free pool
Example : "string"

string

4.33. Instant

Name Description Schema

epochSecond
optional

Example : 0

integer (int64)

nano
optional

Example : 0

integer (int32)

4.34. IpAddress

Represents IP address

Name Description Schema

ipAddress
optional

IP address
Example : "string"

string

type
optional

Type of IP addresss
Example : "One among: MANAGEMENT, NFS, VMOTION, VSAN"

string

4.35. 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.36. 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 : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX"

string

licenseKeyUsage
optional

License key usage details
Example : LicenseKeyUsage

licenseKeyValidity
optional

License key validity details
Example : LicenseKeyValidity

productType
required

The type of the product to which the license key is applicable
Example : "One among: SDDC_MANAGER, VCENTER, NSXV, VSAN, ESXI, VRA, VROPS, NSXT"

string

4.37. 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.38. 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.39. MapOfstringAndstring

Type : < string, string > map

4.40. Memory

Represents information about memory on a host

Name Description Schema

totalCapacityMB
optional

Total memory in MB
Example : 0.0

number (double)

4.41. 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.42. 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.43. 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.44. 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.45. 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.46. 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.47. 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.48. NiocTrafficResourceAllocation

Specify network traffic for a resource

Name Description Schema

limit
required

Example : 0

integer (int64)

reservation
required

Example : 0

integer (int64)

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

nsxVClusterSpec
optional

NSX-V spec for the new cluster, required for NSX-V based workload domains, optional otherwise
Example : NsxVClusterSpec

4.50. 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.51. 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.52. 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.53. NsxVClusterSpec

This specification contains NSX-V configuration spec for cluster

Name Description Schema

licenseKey
optional

NSX license key to be applied to the new cluster
Example : "string"

string

vdsNameForVxlanConfig
optional

VDS to be used for vxlan traffic/portgroup. This should belong to one of the VDS being created for the cluster
Example : "string"

string

vlanId
required

VLAN ID of the vxlan
Example : 0

integer (int32)

4.54. NsxVControllerSpec

This specification contains the parameters required to install and configure NSX-V controllers in a workload domain

Name Description Schema

nsxControllerGateway
required

NSX controller gateway
Example : "string"

string

nsxControllerIps
required

List of the IPs of NSX Controller IP Pool associated with the above NSX Manager
Example : [ "string" ]

< string > array

nsxControllerPassword
required

NSX controller password (all controllers)
Example : "string"

string

nsxControllerSubnetMask
required

NSX controller subnet mask
Example : "string"

string

4.55. NsxVSpec

This specification contains the parameters required to install and configure NSX-V in a workload domain

Name Description Schema

licenseKey
required

NSX license key
Example : "string"

string

nsxManagerAdminPassword
required

NSX Manager admin password (basic auth and SSH)
Example : "string"

string

nsxManagerEnablePassword
required

NSX manager 'enable' password
Example : "string"

string

nsxManagerSpec
required

Specification details of the NSX Manager virtual machine
Example : NsxManagerSpec

nsxVControllerSpec
required

NSX controller configuration
Example : NsxVControllerSpec

4.56. 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.57. 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.58. 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.59. 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.60. 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.61. 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.62. 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.63. 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.64. 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.65. 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.66. 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: MANAGEMENT, NFS, PUBLIC, VMOTION, VSAN"

string

4.67. Resource

Represents the resource in the system

Name Description Schema

resourceId
required

Resource ID
Example : "string"

string

type
required

Resource type
Example : "string"

string

4.68. 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 , SDDC_MANAGER , VCENTER , PSC , NSX_MANAGER , NSX_CONTROLLER , NSX_EDGE , NSXT_MANAGER , NSXT_CONTROLLER , NSXT_EDGE , VRLI , VROPS , LCM_REPO , VRA , VRSLCM , DEPOT_USER , VXRAIL_MANAGER , AD , BACKUP"

string

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

4.70. SubTask

Represents a sub-task

Name Description Schema

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

status
optional

Sub-task status
Example : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL"

string

4.71. Task

Represents a task

Name Description Schema

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

name
optional

Task name
Example : "string"

string

resources
optional

List of resources associated with task
Example : [ "Resource" ]

< Resource > array

status
optional

Task status
Example : "One among: FAILED, IN_PROGRESS, PENDING, SUCCESSFUL"

string

subTasks
optional

List of sub-tasks of the task
Example : [ "SubTask" ]

< SubTask > array

4.72. 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: COMPLETED, FAILED, IN_PROGRESS"

string

id
optional

ID of the validation
Example : "string"

string

resultStatus
optional

Result status of the validation after it has completed its execution
Example : "One among: FAILED, FAILED_WITH_WARNINGS, SUCCEEDED"

string

validationChecks
optional

List of one or more validation checks that are performed as part of the validation
Example : [ "ValidationCheck" ]

< ValidationCheck > array

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

resultStatus
optional

Result status of the validation check after it has completed its execution
Example : "One among: FAILED, SUCCEEDED"

string

severity
optional

Severity of the validation check
Example : "One among: ERROR, WARNING"

string

4.74. Vcenter

vCenter representation

Name Description Schema

fqdn
optional

FQDN of the vCenter
Example : "string"

string

4.75. 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.76. VdsSpec

This specification contains vSphere distributed switchc configurations

Name Description Schema

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
required

List of portgroups to be associated with the vSphere Distributed Switch
Example : [ "PortgroupSpec" ]

< PortgroupSpec > array

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

vdsName
optional

VDS name to associate with vSphere host
Example : "string"

string

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

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

TASK_REGISTRATION_FAILED

Failed to register task to task aggregator

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.

STORAGE_SAVE_ERROR

Failed to save input data to persistent storage

STORAGE_GET_ERROR

Failed to get input data from persistent storage

FAIL_TO_CLEAR_CACHE

Failed to clear input data from cache

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

HOST_NOT_REACHABLE

Cannot connect to host with IP address {0}

HOST_NOT_REACHABLE.remedy

Please check the connectivity to host with IP address {0}.

HOST_DNS_CONFIGURATION_FAILED

Cannot configure DNS {0} on host {1}

HOST_DNS_CONFIGURATION_FAILED.remedy

Please check the DNS {0} configuration on the host.

HOST_NTP_CONFIGURATION_FAILED

Cannot configure NTP servers {0} for host {1}

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

NTP_SYNC_FAILED

Time synchronization of the NTP servers {0} failed on the host {1}.

NTP_SYNC_FAILED.remedy

Please check the connectivity of NTP servers {0} from host {1}.

HOST_VIB_VALIDATION_FAILED

Please uninstall VIB(s) - {0} on the 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

APPLIED_ESXI_LICENSE_IS_INVALID

The ESXi license applied to host {0} is invalid

APPLIED_ESXI_LICENSE_IS_INVALID.remedy

Please assign a valid license directly to the ESXi host before retrying

5.1.2. Domains

Error code Description

REMOVE_VI_NOT_INITIALIZED

Vi removal for domain {0} is not initialized

STORAGE_SAVE_ERROR

Failed to save input data to persistent storage

STORAGE_GET_ERROR

Failed to get input data from persistent storage

FAIL_TO_CLEAR_CACHE

Failed to clear input data from cache

VI_MODEL_SERIALIZATION_ERROR

Failed to serialize add vi uber spec

FAILED_TO_CLEAN_KNOWN_HOSTS_FILE

Failed to clean known_hosts file

MGMT_DOMAIN_REMOVAL_ERROR

Removal of management domain is not allowed.

INTERNAL_SERVER_ERROR

Internal server error

DOMAIN_ALREADY_BEING_REMOVED

Domain {0} already being removed.

PASSWORD_POLICY_UPPERCASE_LETTER_VIOLATION

Password should contain atleast 1 upper-case letter.

PASSWORD_POLICY_LOWERCASE_LETTER_VIOLATION

Password should contain atleast 1 lower-case letter.

PASSWORD_POLICY_DIGIT_VIOLATION

Password should contain atleast 1 digit.

PASSWORD_POLICY_SPECIAL_CHARACTER_VIOLATION

Password should contain atleast 1 special character.

PASSWORD_POLICY_PALINDROME_VIOLATION

Password should not be a palindrome.

PASSWORD_POLICY_UNIQUE_CHARACTERS_VIOLATION

Password should contain atleast 5 different characters.

PASSWORD_POLICY_LENGTH_VIOLATION

Password should atleast be 12 characters long.

VROPS_NOT_IN_ACTIVE_STATE

vROps is not in ACTIVE state but in {0}

VRLI_NOT_IN_ACTIVE_STATE

vRLI is not in ACTIVE state but in {0}

INVALID_NSXT_VERSION

NSX-T version is not up to date. {0}

INVALID_NSXT_VERSION.remedy

Please upgrade NSX-T to supported version.

BACKUP_PASSWORD_IS_TOO_WEAK

Backup password is very weak. Password should meet the following criteria - {0}

DOMAIN_NOT_FOUND

Domain with ID {0} not found

INVALID_GATEWAY_ADDRESS

{0} gateway {1} is not the same as management network gateway {2} for {0} {3}

5.1.3. Clusters

Error code Description

POST_INTERNAL_SERVER_ERROR

Internal server error

REMOVE_CLUSTER_NOT_INITIALIZED

Removal for cluster {0} is not initialized

STORAGE_SAVE_ERROR

Failed to save input data to persistent storage

STORAGE_GET_ERROR

Failed to get input data from persistent storage

FAIL_TO_CLEAR_CACHE

Failed to clear input data from cache

REMOVE_CLUSTER_UPDATE_DATA_ERROR

Failed to update data for remove host. Reason: {0}

CLUSTER_MODEL_SERIALIZATION_ERROR

Failed to serialize add cluster uber spec

MISSING_DEFAULT_FLAG

Failed to verify cluster {0} is not default

DEFAULT_CLUSTER

Trying to remove default cluster {0}

REMOVE_CLUSTER_FROM_NOT_ACTIVE_DOMAIN_ERROR

Removal for cluster {0} from not active domain is not allowed.

CLUSTER_ALREADY_BEING_REMOVED

Cluster already being removed.

REMOVE_CLUSTER_NOT_ACTIVE_VCENTER_ERROR

Removing cluster from domain with not active vCenter is not allowed.

REMOVE_CLUSTER_NOT_ACTIVE_NSX_MANAGER_ERROR

Removing cluster from domain with not active NSX manager is not allowed.

DOMAIN_VCENTER_MISSING

Domain {0} vCenter does not exist.

DOMAIN_NSX_MANAGER_MISSING

Domain {0} NSX manager does not exist.

REMOVE_CLUSTER_NOT_ACTIVE_NSXT_MANAGER_ERROR

Removing cluster from domain with not active NSX-T manager is not allowed.

CLUSTER_NOT_FOUND

Cluster with ID {0} not found

5.1.4. Credentials

Error code Description

PASSWORD_MANAGER_ENTITY_TYPE_NOT_FOUND

Entity Type {0} not found

PASSWORD_MANAGER_DOMAIN_NAME_NOT_FOUND

Domain {0} doesn’t exists

PASSWORD_MANAGER_CREDENTIAL_TYPE_NOT_FOUND

Credential Type {0} not found

PASSWORD_MANAGER_ENTITY_ID_NOT_FOUND

Entity ID not found

PASSWORD_MANAGER_ENTITY_IP_ADDRESS_NOT_FOUND

Entity IP address not found

PASSWORD_MANAGER_ENTITY_NAME_NOT_FOUND

Entity name not found

PASSWORD_MANAGER_ENTITY_USER_NAME_NOT_FOUND

Entity username not found

PASSWORD_MANAGER_ENTITY_PASSWORD_NOT_FOUND

Entity password not found

PASSWORD_MANAGER_INVALID_USER_FOR_CREDENTIAL

Entity user name {0} is invalid for {1}

PASSWORD_MANAGER_CHANGER_NOT_FOUND

Invalid entity type {1} for credential {0}

PASSWORD_MANAGER_TRANSACTION_WORKFLOWID_NOT_FOUND

Could not find workflow ID {0}

PASSWORD_MANAGER_TASK_REGISTRATION_FAILED

Failed to register with Task aggregator for {0}

PASSWORD_MANAGER_TASK_CANCELLATION_FAILED

Failed to cancel task from Task aggregator for {0}

PASSWORD_MANAGER_TRANSACTION_ID_NOT_FOUND

Task ID {0} not found

PASSWORD_MANAGER_CANNOT_PATCH

Task ID {0} cannot be patched as it is already successful/cancelled

PASSWORD_MANAGER_CANNOT_BE_RESTARTED

Transaction ID {0} cannot be restarted as the supplied password became void due to another update.

PASSWORD_MANAGER_UPDATE_IN_PROGRESS

Password update task {0} is in progress/failed state, retry after sometime.

PASSWORD_MANAGER_NEW_PASSWORD_NOT_ALLOWED

Password update transaction {0} cannot have a modified password at this time

PASSWORD_MANAGER_TRANSACTION_ID_MISSING

Required parameter transactionId missing in PATCH request body

PASSWORD_MANAGER_MISC_ERROR

General error

PASSWORD_MANAGER_CANNOT_BE_CANCELLED

Task ID {0} should be in the failure state to initiate cancel operation

PASSWORD_MANAGER_ENTITY_TYPE_NOT_SUPPORTED

EntityType {0} is not supported

PASSWORD_MANAGER_PASSWORD_NOT_FOUND

Unable to find password for EntityType {0}

PASSWORD_MANAGER_UPDATE_ACTION_MISSING

Password update action is missing

PASSWORD_MANAGER_ENTITY_MISSING

Password update payload should have valid entity details

PASSWORD_MANAGER_TRANSACTIONID_MISSING

Password update operation should have valid transaction ID

PASSWORD_MANAGER_ENTITY_NOT_FOUND

Entity not found with provided information

PASSWORD_MANAGER_INVALID_IPADDRESS

Invalid entity IP address {0}

PASSWORD_MANAGER_INVALID_FQDN

Invalid entity name/FQDN {0}

PASSWORD_MANAGER_INVALID_PAGE

Invalid page number specified. It must be greater than zero.

PASSWORD_MANAGER_RESOURCE_STATE_CANNOT_BE_SET

Unable to set the status {0} for {1}

PASSWORD_MANAGER_RESOURCE_UNAVAILABLE

Resource {0} is not available/ready

PASSWORD_MANAGER_DEPENDENT_RESOURCE_UNAVAILABLE

Dependent resource {0} is not available/ready

PASSWORD_MANAGER_CSS_SYNC_ERROR

Retry this task {0} as it cannot be canceled at this stage due to storage error

PASSWORD_MANAGER_ENTITY_MISMATCH

The task {0} doesn’t match with the supplied entity

PASSWORD_MANAGER_ENTITY_LIST_NOT_FOUND

List of entities must be supplied for rotate operation

PASSWORD_MANAGER_ROTATE_CANNOT_BE_STARTED

The password rotate operation cannot be started

PASSWORD_MANAGER_TRANSACTION_TYPE_MISMATCH

Task ID {0} cannot be patched as it’s type {1} is incorrect.

PASSWORD_MANAGER_OPERATION_TYPE_MISSING

Password operation type is missing

PASSWORD_MANAGER_INVALID_OPERATION_TYPE

Operation type is invalid. Allowable values: {0}

PASSWORD_MANAGER_UNKNOWN_ACTION

Password manager bulk update/rotate feature is disabled.

PASSWORD_MANAGER_DATA_IMPORT_FAILED_NO_DATA

Missing data to import, please check data export function.

PASSWORD_MANAGER_DATA_IMPORT_FAILED

Failed to import provided data into password management data store.

PASSWORD_MANAGER_UNKNOWN_DATA_VERSION

Unknown version or version not supported by current import function.

PASSWORD_MANAGER_CREDENTIAL_ID_NOT_FOUND

Credential ID {0} not found.

PASSWORD_MANAGER_RETRY_REQUEST_PAYLOAD_MISMATCH

Task ID {0} cannot be patched as there is mismatch in request body.

PASSWORD_MANAGER_INVALID_BASIC_AUTH_CREDENTIAL

Invalid basic-auth credential in request body.

PASSWORD_MANAGER_INVALID_RESOURCE_TYPE

Resource type is invalid. Allowable values: {0}

PASSWORD_MANAGER_INVALID_CREDENTIAL_TYPE

Credential type is invalid. Allowable values: {0}

PASSWORD_MANAGER_INVALID_PAGESIZE_LIMIT

Limit must not be less than one.

PASSWORD_MANAGER_LOOKUP_FAILED

Failed to lookup passwords due to internal problem. Please try again later.

PRIVILEGED_USER_AUTHORIZATION_FAILED

Privileged user not authorized for this operation.

PRIVILEGED_USER_AUTHENTICATION_FAILED

Invalid privileged username and/or password.

PRIVILEGED_USER_USERNAME_MISSING_DOMAIN

Privileged username must be in the format user@domain.

PRIVILEGED_USER_GENERIC_ERROR

Internal error occurred during validation of privileged user credentials.

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

TASK_REGISTRATION_FAILED

Registering task with Task aggregator failed.

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}

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

Error code Description

TASK_CAN_NOT_BE_RETRIED

Task with ID {0} cannot be retried.

TASK_CAN_NOT_BE_RETRIED.remedy

Make sure the task is in failed state to retry.