You can add or modify the SDDC specification through a PUT request.

Procedure

  • Send the following PUT request to the server:
    https://{{server_ip}}:9443/api/v1/sddc
    curl --location --request PUT "https://{{server_ip}}:9443/api/v1/sddc/" \
      --header "Content-Type: application/json" \
      --header "JSESSIONID: {{JSESSIONID}}" \
      --data "{...}"
    

Results

No response is expected.

Example: SDDC Specification

{
		"dataCenter": {
			"name": "MGMT_DC",
			"managementFolder": "MGMT_VMs",
			"clusters": {
				"management": {
					"name": "MGMT_CLU",
					"hosts": []
				}
			}
		},
		"vcSpec": {
			"credentialSpec": {
				"ssoPassword": "VMware123!",
				"ssoDomain": "vsphere.local",
				"rootVcenterPassword": "VMware123!"
			},
			"managementNetwork": {
				"vcenterIP": "172.17.11.50",
				"vcFqdn": "vcmb.lab.vmw",
				"prefix": "24",
				"gateway": "172.17.11.1"
			},
			"esx1Datastore": "vsanDatastore",
			"licenseSpec": {
				"vcLicense": "",
				"hostLicense": ""
			},
			"dep_network": "VM Network",
			"thin_disk_mode": "false",
			"deployment_option": "small"
		},
		"dnsSpec": {
			"dns_1": [
				"172.17.11.5"
			],
			"domains": [
				"lab.vmw",
				"vmware.com"
			]
		},
		"ntpSpec": {
			"ntp_server": [
				"time.vmware.com"
			]
		},
		"dvsSpec": {
			"dvsName": "MGMT_DVS"
		},
		"resourcePools": {
    			"managementResourcePool": "MGMT-ResourcePool",
    			"workloadResourcePool": "Compute-ResourcePool"
  		},
		"nsxSpec": {
			"nsxManagerCredentialSpec": {
					"rootPassword" : "NSRRocks123!",
            				"cliPassword" : "NSRRocks123!",
            				"auditPassword" : "NSRRocks123!"
				},
			"nsxManager1": {
				"managementNetwork":{
					"ip": "192.168.105.51",
							"subnet": "255.255.255.0",
					"fqdn": "192.168.105.51",
					"gateway": "192.168.105.1"
				}
			},
			"nsxManager2": {
                                "managementNetwork":{
					"ip": "192.168.105.52",
					"subnet": "255.255.255.0",
					"fqdn": "192.168.105.51",
					"gateway": "192.168.105.1"
				}
			},
			"nsxManager3": {
                                "managementNetwork":{
					"ip": "192.168.105.53",
					"subnet": "255.255.255.0",
					"fqdn": "192.168.105.53",
					"gateway": "192.168.105.1"
				}
			},
			"virtualIP": "192.168.105.55",
			"nsxEdgeSpec": {
				"edgeCluster": "NSX_EDGE_CLUSTER",
				"edgeNode1": {
					"credentialSpec": {
						"rootPassword": "NSRRocks123!",
						"cliPassword": "NSRRocks123!"
					},
					"managementNetwork": {
						"ip": "192.168.105.61",
						"fqdn": "edge1.cloud.vmw",
						"prefix": "24",
						"gateway": "192.168.105.1",
						"subnet": "255.255.255.0"
					},
					"datastore": "vsanDatastore",
					"deploymentNetwork": {
						"network0": "VM_MGMT",
						"network1": "EDGE_OVERLAY",
						"network2": "EDGE_UPLINK1",
						"network3": "EDGE_UPLINK2"
					},
					"thinDiskMode": "false",
					"deploymentOption": "medium",
					"nodeSwitch": {
						"nvds1": {
							"switchName": "NVDS-1",
							"uplinkProfile": "nsx-edge-overlay-uplink-profile",
							"ipPool": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",
							"virtualNic": {
								"uplinkName": "uplink-1",
								"deviceName": "fp-eth0"
							}
						},
						"nvds2": {
							"switchName": "NVDS-2",
							"uplinkProfile": "nsx-edge-uplink-profile",
							"ipPool": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",
							"virtualNic": {
								"uplinkName": "uplink-1",
								"deviceName": "fp-eth1"
							}
						},
						"nvds3": {
							"switchName": "NVDS-3",
							"uplinkProfile": "nsx-edge-uplink-profile",
							"ipPool": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",
							"virtualNic": {
								"uplinkName": "uplink-1",
								"deviceName": "fp-eth2"
							}
						}
					}
				},
				"edgeNode2": {
					"credentialSpec": {
						"rootPassword": "NSRRocks123!",
						"cliPassword": "NSRRocks123!"
					},
					"managementNetwork": {
						"ip": "192.168.105.62",
						"fqdn": "edge2.cloud.vmw",
						"prefix": "24",
						"gateway": "192.168.105.1",
						"subnet": "255.255.255.0"
					},
					"datastore": "vsanDatastore",
					"deploymentNetwork": {
						"network0": "VM_MGMT",
						"network1": "EDGE_OVERLAY",
						"network2": "EDGE_UPLINK1",
						"network3": "EDGE_UPLINK2"
					},
					"thinDiskMode": "false",
					"deploymentOption": "medium",
					"nodeSwitch": {
						"nvds1": {
							"switchName": "NVDS-1",
							"uplinkProfile": "nsx-edge-overlay-uplink-profile",
							"ipPool": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",
							"virtualNic": {
								"uplinkName": "uplink-1",
								"deviceName": "fp-eth0"
							}
						},
						"nvds2": {
							"switchName": "NVDS-2",
							"uplinkProfile": "nsx-edge-uplink-profile",
							"ipPool": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",
							"virtualNic": {
								"uplinkName": "uplink-1",
								"deviceName": "fp-eth1"
							}
						},
						"nvds3": {
							"switchName": "NVDS-3",
							"uplinkProfile": "nsx-edge-uplink-profile",
							"ipPool": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",
							"virtualNic": {
								"uplinkName": "uplink-1",
								"deviceName": "fp-eth2"
							}
						}
					}
				}
			},
			"uplinkProfileSpec": {
				"nsxEdgeOverlayUplinkProfile": {
					"displayName": "nsx-edge-overlay-uplink-profile",
					"description": "Used to define how the Edge Node VMs connect to the network to provide participate in the Overlay network.",
					"mtu": "9000",
					"transportVlan": "0",
					"teaming": {
						"standbyList": [
						],
						"activeList": [
							{
								"uplinkName": "uplink-1",
								"uplinkType": "PNIC"
							}
						],
						"policy": "FAILOVER_ORDER"
					}
				},
				"nsxEdgeUplinkProfile": {
					"displayName": "nsx-edge-uplink-profile",
					"description": "Used to define how the Edge Node VMs connect to the physical network.",
					"mtu": "1500",
					"transportVlan": "0",
					"teaming": {
						"standbyList": [
						],
						"activeList": [
							{
								"uplinkName": "uplink-1",
								"uplinkType": "PNIC"
							}
						],
						"policy": "FAILOVER_ORDER"
					}
				},
				"hostUplinkProfile": {
					"displayName": "host-uplink-profile",
					"mtu": "9000",
					"teaming": {
						"policy": "LOADBALANCE_SRCID",
						"standbyList": [
						],
						"activeList": [
							{
								"uplinkName": "uplink-1",
								"uplinkType": "PNIC",
								"deviceName": "vmnic2"
							},
							{
								"uplinkName": "uplink-2",
								"uplinkType": "PNIC",
								"deviceName": "vmnic3"
							}
						]
					},
					"transportVlan": "1200",
					"namedTeamings": [
						{
							"name": "Edge_Transport",
							"policy": "FAILOVER_ORDER",
							"standbyList": [
							],
							"activeList": [
								{
									"uplinkName": "uplink-1",
									"uplinkType": "PNIC"
								}
							]
						},
						{
							"name": "Uplink1_Only",
							"policy": "FAILOVER_ORDER",
							"standbyList": [
							],
							"activeList": [
								{
									"uplinkName": "uplink-1",
									"uplinkType": "PNIC"
								}
							]
						},
						{
							"name": "Uplink2_Only",
							"policy": "FAILOVER_ORDER",
							"standbyList": [
							],
							"activeList": [
								{
									"uplinkName": "uplink-2",
									"uplinkType": "PNIC"
								}
							]
						}
					]
				}
			},
			"ipPoolSpec": {
				"sddcIpPool": {
					"displayName": "SDDC_ESX_TEP_IP_POOL_GENEVE2",
					"start": "192.168.106.10",
					"end": "192.168.106.30",
					"cidr": "192.168.106.0/24",
					"tepGatewayIp": "192.168.106.1"
				},
				"sddcEdgeIpPool": {
					"displayName": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",
					"start": "192.168.107.10",
					"end": "192.168.107.20",
					"cidr": "192.168.107.0/24",
					"tepGatewayIp": "192.168.107.1"
				}
			},
			"nsxTransportZones": {
				"sddcNvdsName": "NVDS-1",
				"edgeUplink1TransportZone": {
					"displayName": "SDDC_EDGE_UPLINK1_TZONE",
					"hostSwitchName": "NVDS-2",
					"description": "Used for connecting one of the Edge Node VMs interfaces to the physical network",
					"transportType": "VLAN"
				},
				"edgeUplink2TransportZone": {
					"displayName": "SDDC_EDGE_UPLINK2_TZONE",
					"hostSwitchName": "NVDS-3",
					"description": "Used for connecting one of the Edge Node VMs interfaces to the physical network",
					"transportType": "VLAN"
				},
				"vlanTransportZone": {
					"displayName": "SDDC_VLAN_TZONE",
					"hostSwitchName": "NVDS-1",
					"description": "SDDC_VLAN_TZONE",
					"transportType": "VLAN",
					"uplinkTeamingPolicyNames": [
						"Edge_Transport",
						"Uplink1_Only",
						"Uplink2_Only"
					]
				},
				"overlayTransportZone": {
					"displayName": "SDDC_OVERLAY_TZONE",
					"hostSwitchName": "NVDS-1",
					"description": "SDDC_OVERLAY_TZONE",
					"transportType": "OVERLAY"
				}
			},
			"logicalSwitchSpec": {
				"edgeOverlay": {
					"displayName": "EDGE_OVERLAY",
					"transportZone": "SDDC_VLAN_TZONE",
					"uplinkTeamingPolicyNames": "Edge_Transport",
					"vlan": "1100"
				},
				"edgeUplink1": {
					"displayName": "EDGE_UPLINK1",
					"transportZone": "SDDC_VLAN_TZONE",
					"uplinkTeamingPolicyNames": "Uplink1_Only",
					"vlanRanges": {
						"start": 0,
						"end": 4094
					}
				},
				"edgeUplink2": {
					"displayName": "EDGE_UPLINK2",
					"transportZone": "SDDC_VLAN_TZONE",
					"uplinkTeamingPolicyNames": "Uplink2_Only",
					"vlanRanges": {
						"start": 0,
						"end": 4094
					}
				}
			},
			"routerSpec": {
				"tierZeroGateway": {
					"name": "T0",
					"haMode": "ACTIVE_STANDBY",
					"failOverMode": "NON_PREEMPTIVE",
					"description": "T0 gateway router for outboud connections.",
					"routeRedistributionTypes": [
						"TIER0_NAT"
					],
					"routeAdvertisementTypes": [
						"TIER1_CONNECTED"
					],
					"edgeUplink1TransportZoneSegment": {
						"name": "VLAN-UPLINK-SEGMENT-1",
						"description": "VLAN-UPLINK-SEGMENT-1-2100",
						"vlan": "2100"
					},
					"edgeUplink2TransportZoneSegment": {
						"name": "VLAN-UPLINK-SEGMENT-2",
						"description": "VLAN-UPLINK-SEGMENT-2-2200",
						"vlan": "2200"
					},
					"tierZeroInterfaces": [
						{
							"name": "Uplink-I1",
							"ipAddressWithCidr": "172.16.1.1/24",
							"connectedWithSegment": "VLAN-UPLINK-SEGMENT-1",
							"placementEdgeNode": "edge1.cloud.vmw"
						},
						{
							"name": "Uplink-I2",
							"ipAddressWithCidr": "172.16.2.1/24",
							"connectedWithSegment": "VLAN-UPLINK-SEGMENT-2",
							"placementEdgeNode": "edge1.cloud.vmw"
						},
						{
							"name": "Uplink-I3",
							"ipAddressWithCidr": "172.16.1.2/24",
							"connectedWithSegment": "VLAN-UPLINK-SEGMENT-1",
							"placementEdgeNode": "edge2.cloud.vmw"
						},
						{
							"name": "Uplink-I4",
							"ipAddressWithCidr": "172.16.2.2/24",
							"connectedWithSegment": "VLAN-UPLINK-SEGMENT-2",
							"placementEdgeNode": "edge2.cloud.vmw"
						}
					]
				},
				"tierOneGateway": {
					"name": "CGW",
					"failOverMode": "NON_PREEMPTIVE",
					"routeAdvertisementTypes": [
						"TIER1_CONNECTED"
					],
					"description": "Tier 1 Router for internal East-west SDDC overlay traffic.",
					"logicalOverlaySwitches": [
						{
							"name": "WorkloadLS1",
							"description": "Segment for internal overlay Network.",
							"type": "ROUTED",
							"gatewayIpAddressWithCidr": "192.168.200.1/24",
							"internalNetwrokWithCidr": "192.168.200.0/24"
						}
					]
				}
			},
			"licenseKey": ""
		},
		"portGrpSpecs": {
			"vmMgmt": {
				"type": "VM_MGMT",
				"vlan": 0
			},
			"vsan": {
				"type": "VSAN",
				"vlan": 0
			},
			"nsxTransport": {
				"type": "TRANSPORT_PG",
				"vlan": 0
			},
			"vmotion": {
				"type": "VMOTION_PG",
				"vlan": 0
			},
			"esxMgmt": {
				"type": "ESXi_MGMT",
				"vlan": 0
			},
			"nfs": {
      			"type": "NFS",
      			"vlan": 0
    		},
			"hcxUplink": {
        		"type": "HCX_UPLINK",
        		"vlan": 0
    		}
		},
		"vsanSpec": {
			"license": ""
		}
	}