Validate Bringup Spec

Validate Bringup Spec

SDDC specification incorporates all the client inputs regarding VMW component parameters constituting the SDDC: NTP, DNS spec, ESXi, VC, VSAN, NSX spec et al.

Request
URI
POST
https://{api_host}/v1/sddcs/validations
COPY
Query Parameters
boolean
redo
Optional
Constraints: default: true

redo

string
name
Optional

Validation name Deprecated: ESXI_VERSION_VALIDATION

Possible values are : JSON_SPEC_VALIDATION, SECURE_PLATFORM_AUDIT, LICENSE_KEY_VALIDATION, TIME_SYNC_VALIDATION, NETWORK_IP_POOLS_VALIDATION, NETWORK_CONFIG_VALIDATION, NETWORK_CONNECTIVITY_VALIDATION, ESXI_HOST_READINESS_VALIDATION, PASSWORDS_VALIDATION, HOST_IP_DNS_VALIDATION, CLOUDBUILDER_READY_VALIDATION, VSAN_AVAILABILITY_VALIDATION, VALIDATE_PROXY_DETAIL, NSXT_NETWORKS_VALIDATION, MANAGEMENT_NETWORKS_VALIDATION,

Request Body
SddcSpec of type(s) application/json
Required

Show optional properties

{
    "sddcId": "sfo01-m01",
    "hostSpecs": [
        {
            "hostname": "esx-1"
        }
    ],
    "vcenterSpec": {
        "vcenterHostname": "vcenter.rainpole.io",
        "rootVcenterPassword": "Sample_Password123"
    },
    "networkSpecs": [
        {
            "networkType": "MANAGEMENT",
            "vlanId": "1000"
        }
    ],
    "dnsSpec": {
        "subdomain": "vcf.vmware.com"
    },
    "ntpServers": [
        {}
    ]
}
{
    "sddcId": "sfo01-m01",
    "taskName": "workflowconfig/workflowspec-ems.json",
    "workflowType": "One among: VCF, VCF_VXRAIL",
    "hostSpecs": [
        {
            "association": "string",
            "ipAddressPrivate": {
                "ipAddress": "192.168.0.123",
                "gateway": "192.168.0.1",
                "subnet": "255.255.255.252",
                "cidr": "172.0.0.0/24"
            },
            "hostname": "esx-1",
            "credentials": {
                "username": "root",
                "password": "string"
            },
            "vSwitch": "vSwitch0",
            "sshThumbprint": "SHA256:rVPNWOKE2tZjvmYvKPhtc3ghJ41Vc0G3MwASf4+8+yc",
            "sslThumbprint": "3D:D0:EE:B5:A0:CC:45:08:5C:4F:84:51:CD:00:B6:41:BB:4A:A2:9A:77:1C:A6:4C:6D:84:5A:D0:4F:68:7A:B8"
        }
    ],
    "vcenterSpec": {
        "licenseFile": "string",
        "vcenterIp": "10.0.0.6",
        "vcenterHostname": "vcenter.rainpole.io",
        "rootVcenterPassword": "Sample_Password123",
        "vmSize": "medium",
        "storageSize": "lstorage",
        "sshThumbprint": "SHA256:rVPNWOKE2tZjvmYvKPhtc3ghJ41Vc0G3MwASf4+8+yc",
        "sslThumbprint": "3D:D0:EE:B5:A0:CC:45:08:5C:4F:84:51:CD:00:B6:41:BB:4A:A2:9A:77:1C:A6:4C:6D:84:5A:D0:4F:68:7A:B8"
    },
    "clusterSpec": {
        "clusterName": "ClusterName",
        "clusterEvcMode": "string",
        "personalityName": "string",
        "clusterImageEnabled": true,
        "resourcePoolSpecs": [
            {
                "name": "string",
                "type": "string",
                "cpuReservationPercentage": 0,
                "cpuReservationMhz": 0,
                "cpuLimit": 0,
                "cpuReservationExpandable": false,
                "cpuSharesLevel": "string",
                "cpuSharesValue": 0,
                "memoryReservationPercentage": 0,
                "memoryReservationMb": 0,
                "memoryLimit": 0,
                "memoryReservationExpandable": false,
                "memorySharesLevel": "string",
                "memorySharesValue": 0
            }
        ],
        "hostFailuresToTolerate": 3,
        "vmFolders": {
            "vmFolders": "string"
        }
    },
    "dvsSpecs": [
        {
            "dvsName": "VdsName",
            "vmnics": [
                "string"
            ],
            "networks": [
                "MANAGEMENT"
            ],
            "niocSpecs": [
                {
                    "trafficType": "MANAGEMENT",
                    "value": "string"
                }
            ],
            "mtu": 9000,
            "isUsedByNsxt": true,
            "nsxtSwitchConfig": {
                "transportZones": [
                    {
                        "name": "string",
                        "transportType": "One among: VLAN, OVERLAY"
                    }
                ],
                "hostSwitchOperationalMode": "One among: STANDARD, ENS, ENS_INTERRUPT"
            },
            "vmnicsToUplinks": [
                {
                    "id": "vmnic0",
                    "uplink": "uplink1"
                }
            ],
            "nsxTeamings": [
                {
                    "policy": "One among: FAILOVER_ORDER, LOADBALANCE_SRCID, LOADBALANCE_SRC_MAC",
                    "activeUplinks": [
                        "string"
                    ],
                    "standByUplinks": [
                        "string"
                    ]
                }
            ]
        }
    ],
    "vsanSpec": {
        "licenseFile": "string",
        "hclFile": "string",
        "datastoreName": "string",
        "vsanDedup": false,
        "esaConfig": {
            "enabled": false
        }
    },
    "nsxtSpec": {
        "nsxtManagers": [
            {
                "hostname": "string",
                "ip": "string"
            }
        ],
        "nsxtManagerSize": "medium",
        "nsxtLicense": "string",
        "vip": "string",
        "vipFqdn": "string",
        "rootNsxtManagerPassword": "string",
        "nsxtAdminPassword": "string",
        "nsxtAuditPassword": "string",
        "overLayTransportZone": {
            "zoneName": "string",
            "networkName": "string"
        },
        "transportVlanId": 1000,
        "ipAddressPoolSpec": {
            "name": "string",
            "description": "string",
            "ignoreUnavailableNsxtCluster": false,
            "subnets": [
                {
                    "ipAddressPoolRanges": [
                        {
                            "start": "string",
                            "end": "string"
                        }
                    ],
                    "cidr": "string",
                    "gateway": "string"
                }
            ]
        }
    },
    "networkSpecs": [
        {
            "networkType": "MANAGEMENT",
            "subnet": "10.0.0.250/24",
            "gateway": "10.0.0.250",
            "subnetMask": "255.255.255.0",
            "excludeIpaddresses": [
                "[10.0.0.10,10.0.0.11]"
            ],
            "excludeIpAddressRanges": [
                "string"
            ],
            "includeIpAddress": [
                "[10.0.0.100]"
            ],
            "includeIpAddressRanges": [
                {
                    "startIpAddress": "192.168.0.123",
                    "endIpAddress": "192.168.0.128"
                }
            ],
            "vlanId": "1000",
            "mtu": "string",
            "teamingPolicy": "loadbalance_ip",
            "activeUplinks": [
                "string"
            ],
            "standbyUplinks": [
                "string"
            ],
            "portGroupKey": "string"
        }
    ],
    "dnsSpec": {
        "subdomain": "vcf.vmware.com",
        "domain": "vmware.com",
        "nameserver": "172.0.0.4",
        "secondaryNameserver": "172.0.0.5",
        "nameservers": [
            "[172.0.0.4, 172.0.0.5]"
        ]
    },
    "ntpServers": [
        "[10.0.0.100, 10.0.0.101]"
    ],
    "sddcManagerSpec": {
        "rootUserCredentials": {
            "username": "root",
            "password": "string"
        },
        "hostname": "string",
        "secondUserCredentials": {
            "username": "root",
            "password": "string"
        },
        "localUserPassword": "string",
        "ipAddress": "string"
    },
    "pscSpecs": [
        {
            "pscSsoSpec": {
                "ssoDomain": "string"
            },
            "adminUserSsoPassword": "string"
        }
    ],
    "vxManagerSpec": {
        "vxManagerHostName": "string",
        "defaultRootUserCredentials": {
            "username": "root",
            "password": "string"
        },
        "defaultAdminUserCredentials": {
            "username": "root",
            "password": "string"
        },
        "sshThumbprint": "SHA256:rVPNWOKE2tZjvmYvKPhtc3ghJ41Vc0G3MwASf4+8+yc",
        "sslThumbprint": "3D:D0:EE:B5:A0:CC:45:08:5C:4F:84:51:CD:00:B6:41:BB:4A:A2:9A:77:1C:A6:4C:6D:84:5A:D0:4F:68:7A:B8"
    },
    "managementPoolName": "string",
    "excludedComponents": [
        "string"
    ],
    "dvSwitchVersion": "8.0.0",
    "ceipEnabled": true,
    "fipsEnabled": true,
    "esxLicense": "XXXX-XXXX-XXXX-XXXX",
    "skipEsxThumbprintValidation": false,
    "skipGatewayPingValidation": false,
    "securitySpec": {
        "esxiCertsMode": "VMCA",
        "rootCaCerts": [
            {
                "alias": "string",
                "certChain": [
                    "string"
                ]
            }
        ]
    },
    "proxySpec": {
        "host": "10.0.0.250",
        "port": 3128,
        "username": "string",
        "password": "string",
        "transferProtocol": "HTTPS"
    },
    "deployWithoutLicenseKeys": false
}
string As ^[a-zA-Z0-9-]+$
sddcId
Required
Constraints: minLength: 3 maxLength: 20

Client string that identifies an SDDC by name or instance name. Used for management domain name. Can contain only letters, numbers and the following symbols: '-'

string
taskName
Optional

Name of the task to execute. This is deprecated. Please use property 'workflowType'

string As (VCF|VCF_VXRAIL)
workflowType
Optional

Type of workflow to initiate creation and/or validation of SDDC

array of object
hostSpecs
Required

List of ESXi to be added to the Management Cluster

object
vcenterSpec
Required

Spec contains parameters for vCenter

object
clusterSpec
Optional

Spec contains parameters for vCenter Cluster

array of object
dvsSpecs
Optional

List of vSphere Distributed Switches to be created. For VCF only: if blank, a default single one will be created for all types of traffic connected to vmnic0 and vmnic1

object
vsanSpec
Optional

Spec contains parameters of Virtual SAN

object
nsxtSpec
Optional

Spec contains parameters for NSX deployment and configurations

array of object
networkSpecs
Required

List of Networks which be created and used for Management Cluster

object
dnsSpec
Required

Spec contains parameters of Domain Name System

array of string
ntpServers
Required

List of NTP servers to be used for configuring Management Appliances

object
sddcManagerSpec
Optional

Client input parameters for SDDC Manager Virtual Machine

array of object
pscSpecs
Optional

Specification for SSO Configuration in the Management vCenter Server Appliance

object
vxManagerSpec
Optional

Spec contains parameters for VxRail Manager

string
managementPoolName
Optional

Name for the network pool to be created and associated with the Management Cluster

array of string
excludedComponents
Optional

Components of the workflow to be excluded. NOTE: Leave this empty unless you are fully aware of what you are doing.

string
dvSwitchVersion
Optional

The version of the Distributed vSphere Switches to be used. One among: 7.0.0, 7.0.2, 7.0.3, 8.0.0. If blank, then the latest version will be obtain from vCenter Server

boolean
ceipEnabled
Optional

Enable VCF Customer Experience Improvement Program

boolean
fipsEnabled
Optional

Enable Federal Information Processing Standards

string
esxLicense
Optional

License for the ESXi hosts

boolean
skipEsxThumbprintValidation
Optional

Skip ESXi thumbprint validation

boolean
skipGatewayPingValidation
Optional

Skip networks gateway connectivity validation

object
securitySpec
Optional

Spec contains security settings

object
proxySpec
Optional

Spec contains parameters for proxy settings

boolean
deployWithoutLicenseKeys
Optional

Flag that indicates if the deployment should happen without license keys.

Responses
200

Accepted

Returns Validation of type(s) application/json
"Validation Object"
string
id
Required

ID of the validation

string
description
Required

Description of the validation

string
executionStatus
Required

Execution status of the validation. One among: IN_PROGRESS, FAILED, COMPLETED, UNKNOWN, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS

string
resultStatus
Required

Result status of the validation after it has completed its execution. One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS, UNKNOWN, CANCELLATION_IN_PROGRESS

array of object
validationChecks
Optional

List of one or more validation checks that are performed as part of the validation

object
additionalProperties
Optional

additionalProperties


202

Success

Returns Validation of type(s) application/json
"Validation Object"
string
id
Required

ID of the validation

string
description
Required

Description of the validation

string
executionStatus
Required

Execution status of the validation. One among: IN_PROGRESS, FAILED, COMPLETED, UNKNOWN, SKIPPED, CANCELLED, CANCELLATION_IN_PROGRESS

string
resultStatus
Required

Result status of the validation after it has completed its execution. One among: SUCCEEDED, FAILED, FAILED_WITH_WARNINGS, UNKNOWN, CANCELLATION_IN_PROGRESS

array of object
validationChecks
Optional

List of one or more validation checks that are performed as part of the validation

object
additionalProperties
Optional

additionalProperties


403

Forbidden

Returns Error of type(s) application/json
"Error Object"
string
errorCode
Optional

The minor error code

string
errorType
Optional

The error type

array of string
arguments
Optional

The arguments used to localize the message, Can be used by scripts to automate the error processing.

object
context
Optional

The error context (e.g. the component where it occurred).

string
message
Optional

The localized error message

string
remediationMessage
Optional

The localized remediation error message

array of object
causes
Optional

The underlying cause exceptions.

array of Error
nestedErrors
Optional

The nested errors when the error is a composite one

string
referenceToken
Optional

A reference token correlating the error with the relevant detailed error logs. Should be sent to the service provider when reporting issues.


404

Not Found

Returns Error of type(s) application/json
"Error Object"
string
errorCode
Optional

The minor error code

string
errorType
Optional

The error type

array of string
arguments
Optional

The arguments used to localize the message, Can be used by scripts to automate the error processing.

object
context
Optional

The error context (e.g. the component where it occurred).

string
message
Optional

The localized error message

string
remediationMessage
Optional

The localized remediation error message

array of object
causes
Optional

The underlying cause exceptions.

array of Error
nestedErrors
Optional

The nested errors when the error is a composite one

string
referenceToken
Optional

A reference token correlating the error with the relevant detailed error logs. Should be sent to the service provider when reporting issues.


500

Internal Server Error

Returns Error of type(s) application/json
"Error Object"
string
errorCode
Optional

The minor error code

string
errorType
Optional

The error type

array of string
arguments
Optional

The arguments used to localize the message, Can be used by scripts to automate the error processing.

object
context
Optional

The error context (e.g. the component where it occurred).

string
message
Optional

The localized error message

string
remediationMessage
Optional

The localized remediation error message

array of object
causes
Optional

The underlying cause exceptions.

array of Error
nestedErrors
Optional

The nested errors when the error is a composite one

string
referenceToken
Optional

A reference token correlating the error with the relevant detailed error logs. Should be sent to the service provider when reporting issues.


Code Samples
COPY
                    curl -X POST -H 'Authorization: <value>' -H 'Content-Type: application/json' -d '{"dnsSpec:"object","hostSpecs":["object"],"networkSpecs":["object"],"ntpServers":["string"],"sddcId:"string","vcenterSpec:"object"}' https://{api_host}/v1/sddcs/validations