System Administration > Configuration > Fabric

Associated URIs:

API Description API Path

List Cluster Profiles


Returns paginated list of cluster profiles
Cluster profiles define policies for edge cluster and bridge cluster.
GET /api/v1/cluster-profiles

Create a Cluster Profile


Create a cluster profile. The resource_type is required.
POST /api/v1/cluster-profiles

Delete a cluster profile


Delete a specified cluster profile.
DELETE /api/v1/cluster-profiles/<cluster-profile-id>

Get cluster profile by Id


Returns information about a specified cluster profile.
GET /api/v1/cluster-profiles/<cluster-profile-id>

Update a cluster profile


Modifie a specified cluster profile. The body of the PUT request must
include the resource_type.
PUT /api/v1/cluster-profiles/<cluster-profile-id>

Return inventory configuration


Supports retrieving following configuration of inventory module
1. Soft limit on number of compute managers that can be registered.
GET /api/v1/configs/inventory

List Edge Clusters


Returns information about the configured edge clusters, which enable you to
group together transport nodes of the type EdgeNode and apply fabric
profiles to all members of the edge cluster. Each edge node can participate
in only one edge cluster.
GET /api/v1/edge-clusters

Create Edge Cluster


Creates a new edge cluster.
It only supports homogeneous members.
The TransportNodes backed by EdgeNode are only allowed in cluster members.
DeploymentType (VIRTUAL_MACHINE|PHYSICAL_MACHINE) of these EdgeNodes is
recommended to be the same. EdgeCluster supports members of different
deployment types.
POST /api/v1/edge-clusters

Delete Edge Cluster


Deletes the specified edge cluster.
DELETE /api/v1/edge-clusters/<edge-cluster-id>

Read Edge Cluster


Returns information about the specified edge cluster.
GET /api/v1/edge-clusters/<edge-cluster-id>

Replace the transport node in the specified member of the edge-cluster


Replace the transport node in the specified member of the edge-cluster.
This is a disruptive action. This will move all the LogicalRouterPorts(uplink and routerLink)
host on the old transport_node to the new transport_node. The transportNode cannot be
present in another member of any edgeClusters.
POST /api/v1/edge-clusters/<edge-cluster-id>?action=replace_transport_node

Update Edge Cluster


Modifies the specified edge cluster. Modifiable parameters include the
description, display_name, transport-node-id. If the optional
fabric_profile_binding is included, resource_type and profile_id are required.
User should do a GET on the edge-cluster and obtain the payload and retain the
member_index of the existing members as returning in the GET output. For new member
additions, the member_index cannot be defined by the user, user can read the system
allocated index to the new member in the output of this API call or by doing a GET call.
User cannot use this PUT api to replace the transport_node of an existing member because
this is a disruption action, we have exposed a explicit API for doing so, refer to
"ReplaceEdgeClusterMemberTransportNode"
EdgeCluster only supports homogeneous members. The TransportNodes backed by EdgeNode are
only allowed in cluster members. DeploymentType (VIRTUAL_MACHINE|PHYSICAL_MACHINE) of these
EdgeNodes is recommended to be the same. EdgeCluster supports members of different
deployment types.
PUT /api/v1/edge-clusters/<edge-cluster-id>

Get the Allocation details of an edge cluster


Returns the allocation details of cluster and its members. Lists the edge
node members, active and standby services of each node, utilization details
of configured sub-pools. These allocation details can be monitored by
customers to trigger migration of certain service contexts to different
edge nodes, to balance the utilization of edge node resources.
GET /api/v1/edge-clusters/<edge-cluster-id>/allocation-status

Get inter-site status of the edge cluster


Returns the aggregated status for the Edge cluster along with status of
all edge nodes in the cluster. It always returns cached response.
GET /api/v1/edge-clusters/<edge-cluster-id>/inter-site/status

Get the Realized State of a Edge Cluster


Return realized state information of a edge cluster.
Any configuration update that affects the edge cluster can use this API
to get its realized state by passing a request_id returned by the
configuration change operation. e.g. Update configuration of edge cluster.
GET /api/v1/edge-clusters/<edge-cluster-id>/state

Get the status for the Edge cluster of the given id


Returns the aggregated status for the Edge cluster along with status of
all edge nodes in the cluster. Query parameter "source=realtime" is the
only supported source.
GET /api/v1/edge-clusters/<edge-cluster-id>/status

Returns the List of cloud native service instances


Returns information about all cloud native service instances.
GET /api/v1/fabric/cloud-native-service-instances

Returns information about a particular cloud native service instance by external-id.


Returns information about a particular cloud native service instance
by external-id.
GET /api/v1/fabric/cloud-native-service-instances/<external-id>

Get compute collection fabric templates


Returns compute collection fabric templates. This functionality is deprecated. Use Transport Node Profiles instead of this template.
GET /api/v1/fabric/compute-collection-fabric-templates (Deprecated)

Create a compute collection fabric template


Fabric templates are fabric configurations applied at the compute collection level. This configurations is used to decide what automated operations should be a run when a host membership changes. This functionality is deprecated. Use Transport Node Profiles instead of this template.
POST /api/v1/fabric/compute-collection-fabric-templates (Deprecated)

Deletes compute collection fabric template


Deletes compute collection fabric template for the given id. This functionality is deprecated. Use Transport Node Profiles instead of this template.
DELETE /api/v1/fabric/compute-collection-fabric-templates/<fabric-template-id> (Deprecated)

Get compute collection fabric template by id


Get compute collection fabric template for the given id. This functionality is deprecated. Use Transport Node Profiles instead of this template.
GET /api/v1/fabric/compute-collection-fabric-templates/<fabric-template-id> (Deprecated)

Updates compute collection fabric template


Updates compute collection fabric template for the given id. This functionality is deprecated. Use Transport Node Profiles instead of this template.
PUT /api/v1/fabric/compute-collection-fabric-templates/<fabric-template-id> (Deprecated)

Return the List of Compute Collections


Returns information about all compute collections.
GET /api/v1/fabric/compute-collections

Return Compute Collection Information


Returns information about a specific compute collection.
GET /api/v1/fabric/compute-collections/<cc-ext-id>

Perform action specific to NSX on the compute-collection. cc-ext-id should be of type VC_Cluster.


POST /api/v1/fabric/compute-collections/<cc-ext-id>

Get status of member host nodes of the compute-collection. Only nsx prepared host nodes in the specified compute-collection are included in the response. cc-ext-id should be of type VC_Cluster.


GET /api/v1/fabric/compute-collections/<cc-ext-id>/member-status

List the Physical Network Interface for all discovered nodes


Returns list of physical network interfaces for all discovered nodes in
compute collection. Interface information includes PNIC name, hostswitch
name it's attached to(if any) and MAC address.
GET /api/v1/fabric/compute-collections/<cc-ext-id>/network/physical-interfaces

Return the List of Compute managers


Returns information about all compute managers.
GET /api/v1/fabric/compute-managers

Register compute manager with NSX


Registers compute manager with NSX. Inventory service will collect
data from the registered compute manager
POST /api/v1/fabric/compute-managers

Unregister a compute manager


Unregisters a specified compute manager
DELETE /api/v1/fabric/compute-managers/<compute-manager-id>

Return compute manager Information


Returns information about a specific compute manager
GET /api/v1/fabric/compute-managers/<compute-manager-id>

Update compute manager


Updates a specified compute manager
PUT /api/v1/fabric/compute-managers/<compute-manager-id>

Get the realized state of a compute manager


GET /api/v1/fabric/compute-managers/<compute-manager-id>/state

Return runtime status information for a compute manager


Returns connection and version information about a compute manager
GET /api/v1/fabric/compute-managers/<compute-manager-id>/status

Return the list of container application instance


Returns information about all container application instance.
GET /api/v1/fabric/container-application-instances

Return a container application instance


Returns information about a specific container application instance.
GET /api/v1/fabric/container-application-instances/<container-application-instance-id>

Return the List of Container Applications


Returns information about all Container Applications.
GET /api/v1/fabric/container-applications

Return a Container Application within a container project


Returns information about a specific Container Application within a project.
GET /api/v1/fabric/container-applications/<container-application-id>

Return the list of container cluster nodes


Returns information about all container cluster nodes.
GET /api/v1/fabric/container-cluster-nodes

Return a container cluster node


Returns information about a specific container cluster node.
GET /api/v1/fabric/container-cluster-nodes/<container-cluster-node-id>

Return the List of Container Clusters


Returns information about all Container Clusters.
GET /api/v1/fabric/container-clusters

Return a container cluster


Returns information about a specific container cluster
GET /api/v1/fabric/container-clusters/<container-cluster-id>

Return the List of Container Ingress Policies


Returns information about all ingress policies.
GET /api/v1/fabric/container-ingress-policies

Returns an ingress policy spec


Returns information about a specific ingress policy.
GET /api/v1/fabric/container-ingress-policies/<ingress-policy-id>

Return the List of Container Network Policies


Returns information about all network policies.
GET /api/v1/fabric/container-network-policies

Return a network policy spec


Returns information about a specific network policy.
GET /api/v1/fabric/container-network-policies/<network-policy-id>

Return the list of container projects


Returns information about all container projects
GET /api/v1/fabric/container-projects

Return a container project


Returns information about a specific project
GET /api/v1/fabric/container-projects/<container-project-id>

Return the List of Discovered Nodes


Returns information about all discovered nodes.
GET /api/v1/fabric/discovered-nodes

Return Discovered Node Information


Returns information about a specific discovered node.
GET /api/v1/fabric/discovered-nodes/<node-ext-id>

Apply cluster level config on Discovered Node


When transport node profile (TNP) is applied to a cluster, if any validation fails (e.g. VMs running on host) then transport node (TN) is not created. In that case after the required action is taken (e.g. VMs powered off), you can call this API to try to create TN for that discovered node.
Do not call this API if Transport Node already exists for the discovered node. In that case use API on transport node. /transport-nodes/?action=restore_cluster_config
POST /api/v1/fabric/discovered-nodes/<node-ext-id>?action=reapply_cluster_config

(Deprecated) Prepares discovered Node for NSX


Prepares(hostprep) discovered node for NSX. NSX LCP bundles are installed on this discovered node. This API is deprecated. Use /fabric/discovered-nodes/?action=create_transport_node
POST /api/v1/fabric/discovered-nodes/<node-ext-id>?action=hostprep (Deprecated)

Created Transport Node for Discovered Node


NSX components are installaed on host and transport node is created with given configurations.
POST /api/v1/fabric/discovered-nodes/<node-ext-id>?action=create_transport_node

Return the List of Nodes


Returns information about all fabric nodes (hosts and edges).
This api is deprecated as part of FN+TN unification. Please use Transport Node API
GET /transport-nodes to list all fabric nodes.
GET /api/v1/fabric/nodes (Deprecated)

Register and Install NSX Components on a Node


Creates a host node (hypervisor) or edge node (router) in the transport
network.

When you run this command for a host, NSX Manager attempts to install the
NSX kernel modules, which are packaged as VIB, RPM, or DEB files. For the
installation to succeed, you must provide the host login credentials and the
host thumbprint.

To get the ESXi host thumbprint, SSH to the host and run the
openssl x509 -in /etc/vmware/ssl/rui.crt -fingerprint -sha256 -noout
command.

To generate host key thumbprint using SHA-256 algorithm please follow the
steps below.

Log into the host, making sure that the connection is not vulnerable to a
man in the middle attack. Check whether a public key already exists.
Host public key is generally located at '/etc/ssh/ssh_host_rsa_key.pub'.
If the key is not present then generate a new key by running the following
command and follow the instructions.

ssh-keygen -t rsa

Now generate a SHA256 hash of the key using the following command. Please
make sure to pass the appropriate file name if the public key is stored with
a different file name other than the default 'id_rsa.pub'.

awk '{print $2}' id_rsa.pub | base64 -d | sha256sum -b | sed 's/ .*$//' | xxd -r -p | base64
This api is deprecated as part of FN+TN unification. Please use Transport Node API
POST /transport-nodes to install NSX components on a node.
POST /api/v1/fabric/nodes (Deprecated)

Delete a Node


Removes a specified fabric node (host or edge).
A fabric node may only be deleted when it is no longer referenced
by a Transport Node. If unprepare_host option is set to false, the
host will be deleted without uninstalling the NSX components from
the host.
This api is deprecated, use Transport Node API
DELETE /transport-nodes/<transport-node-id> to delete FN.
DELETE /transport-nodes/ to delete FN.
DELETE /api/v1/fabric/nodes/<node-id> (Deprecated)

Return Node Information


Returns information about a specific fabric node (host or edge).
This api is deprecated, use Transport Node API
GET /transport-nodes/<transport-node-id> to get fabric
node information.
GET /api/v1/fabric/nodes/<node-id> (Deprecated)

Perform an Action on Fabric Node


The supported fabric node actions are enter_maintenance_mode,
exit_maintenance_mode for EdgeNode.
This API is deprecated, please call TransportNode maintenance mode API to
update maintenance mode, refer to "Update transport node maintenance mode".
POST /api/v1/fabric/nodes/<node-id> (Deprecated)

Perform a service deployment upgrade on a host node


POST /api/v1/fabric/nodes/<node-id>?action=upgrade_infra

Restart the inventory sync for the node if it is paused currently.


Restart the inventory sync for the node if it is currently internally paused.
After this action the next inventory sync coming from the node is processed.
This api is deprecated as part of FN+TN unification. Please use Transport Node API
POST /transport-nodes/<transport-node-id>?action=restart_inventory_sync
to restart inventory sync of node.
POST /api/v1/fabric/nodes/<node-id>?action=restart_inventory_sync (Deprecated)

Update a Node


Modifies attributes of a fabric node (host or edge).
This api is deprecated as part of FN+TN unification. Please use Transport Node
API PUT /transport-nodes/<transport-node-id> to update fabric node details.
API PUT /transport-nodes/ to update fabric node details.
PUT /api/v1/fabric/nodes/<node-id> (Deprecated)

Return the List of Capabilities of a Single Node


Returns information about capabilities of a single fabric host node. Edge nodes do not have capabilities. This api is deprecated, use GET /transport-nodes/<transportnode-id>/capabilities if FN is converted to TN.
GET /api/v1/fabric/nodes/<node-id>/capabilities (Deprecated)

Get the module details of a Fabric Node This api is deprecated, use Transport Node API GET /transport-nodes/<transportnode-id>/modules to get fabric node modules.


GET /api/v1/fabric/nodes/<node-id>/modules (Deprecated)

List the specified node's Network Interfaces


Returns the number of interfaces on the node and detailed
information about each interface. Interface information includes MTU,
broadcast and host IP addresses, link and admin status, MAC address, network
mask, and the IP configuration method (static or DHCP).
This api is deprecated. Please use Transport Node API
GET /transport-nodes//network/interfaces
to list node network interfaces for the corresponding TN.
GET /api/v1/fabric/nodes/<node-id>/network/interfaces (Deprecated)

Read the node's Network Interface


Returns detailed information about the specified interface. Interface
information includes MTU, broadcast and host IP addresses, link and admin
status, MAC address, network mask, and the IP configuration method (static
or DHCP).
This api is deprecated as part of FN+TN unification. Please use Transport
Node API GET /transport-nodes//network/interfaces/
to get interface details of a node.
GET /api/v1/fabric/nodes/<node-id>/network/interfaces/<interface-id> (Deprecated)

Get the Realized State of a Fabric Node.


For edge nodes, returns the current install
state when deployment is in progress, NODE_READY
when deployment is complete and the failure state
when deployment has failed.
This api is deprecated. Please use /transport-nodes/<transportnode-id>/state
to get realized state of a Fabric Node.
GET /api/v1/fabric/nodes/<node-id>/state (Deprecated)

Return Runtime Status Information for a Node


Returns connectivity, heartbeat, and version information about a fabric node
(host or edge). Note that the LCP connectivity status remains down until
after the fabric node has been added as a transpot node and the NSX host
switch has been successfully installed. See POST /api/v1/transport-nodes.
This api is deprecated, use GET /api/v1/transport-nodes/<node-id>/status to
get status information of a node with constraint FN is converted to TN.
GET /api/v1/fabric/nodes/<node-id>/status (Deprecated)

Invoke DELETE request on target fabric node


Invoke DELETE request on target fabric node. This api is deprecated
as part of FN+TN unification. Please use Transport Node API
DELETE /transport-nodes/<transport-node-id>/<target-node-id>/<target-uri>
DELETE /api/v1/fabric/nodes/<target-node-id>/<target-uri> (Deprecated)

Invoke GET request on target fabric node


Invoke GET request on target fabric node. This api is deprecated
as part of FN+TN unification. Please use Transport Node API
GET /transport-nodes/<transport-node-id>/<target-node-id>/<target-uri>
GET /api/v1/fabric/nodes/<target-node-id>/<target-uri> (Deprecated)

Invoke POST request on target fabric node


Invoke POST request on target fabric node. This api is deprecated
as part of FN+TN unification. Please use Transport Node API
POST /transport-nodes/<transport-node-id>/<target-node-id>/<target-uri>
POST /api/v1/fabric/nodes/<target-node-id>/<target-uri> (Deprecated)

Invoke PUT request on target fabric node


Invoke PUT request on target fabric node. This api is deprecated
as part of FN+TN unification. Please use Transport Node API
PUT /transport-nodes/<transport-node-id>/<target-node-id>/<target-uri>
PUT /api/v1/fabric/nodes/<target-node-id>/<target-uri> (Deprecated)

Return Runtime Status Information for given Nodes


Returns connectivity, heartbeat, and version information about all fabric nodes
(host or edge).
This api is deprecated as part of FN+TN unification. Please use Transport Node
Status API /transport-nodes/<node-id>/status to get status information of a node
and to get all transport nodes ids use GET /transport-nodes.
GET /api/v1/fabric/nodes/status (Deprecated)

Return list of supported host OS types


Returns names of all supported host OS.
GET /api/v1/fabric/ostypes

Return the list of physical servers


Returns information of all physical/bare metal servers registered as TN.
GET /api/v1/fabric/physical-servers

Return a specific physical server


Returns information about physical/bare metal server based on given transport node id.
GET /api/v1/fabric/physical-servers/<physical-server-id>

Return the List of Virtual Network Interfaces (VIFs)


Returns information about all VIFs. A virtual network interface aggregates
network interfaces into a logical interface unit that is indistinuishable
from a physical network interface.
GET /api/v1/fabric/vifs

Return the List of Virtual Machines


Returns information about all virtual machines.
GET /api/v1/fabric/virtual-machines

Perform action on specified virtual machine e.g. update tags


Perform action on a specific virtual machine. External id of the virtual machine needs to be
provided in the request body. Some of the actions that can be performed are update tags, add
tags, remove tags.
To add tags to existing list of tag, use action parameter add_tags.
To remove tags from existing list of tag, use action parameter remove_tags.
To replace existing tags with new tags, use action parameter update_tags.
To clear all tags, provide an empty list and action parameter as update_tags.
The vmw-async: True HTTP header cannot be used with this API.
POST /api/v1/fabric/virtual-machines?action=add_tags

Perform action on specified virtual machine e.g. update tags


Perform action on a specific virtual machine. External id of the virtual machine needs to be
provided in the request body. Some of the actions that can be performed are update tags, add
tags, remove tags.
To add tags to existing list of tag, use action parameter add_tags.
To remove tags from existing list of tag, use action parameter remove_tags.
To replace existing tags with new tags, use action parameter update_tags.
To clear all tags, provide an empty list and action parameter as update_tags.
The vmw-async: True HTTP header cannot be used with this API.
POST /api/v1/fabric/virtual-machines?action=remove_tags

Perform action on specified virtual machine e.g. update tags


Perform action on a specific virtual machine. External id of the virtual machine needs to be
provided in the request body. Some of the actions that can be performed are update tags, add
tags, remove tags.
To add tags to existing list of tag, use action parameter add_tags.
To remove tags from existing list of tag, use action parameter remove_tags.
To replace existing tags with new tags, use action parameter update_tags.
To clear all tags, provide an empty list and action parameter as update_tags.
The vmw-async: True HTTP header cannot be used with this API.
POST /api/v1/fabric/virtual-machines?action=update_tags

Return the list of tools and agents installed in VMs.


This API returns the list of tools and agents installed in VMs.
GET /api/v1/fabric/virtual-machines/tools-info

Return the List of Virtual Switches


Returns information about all virtual switches based on the
request parameters.
GET /api/v1/fabric/virtual-switches

List Failure Domains


Returns information about configured failure domains.
GET /api/v1/failure-domains

Create Failure Domain


Creates a new failure domain.
POST /api/v1/failure-domains

Delete Failure Domain


Deletes an existing failure domain. You can not delete system generated
default failure domain.
DELETE /api/v1/failure-domains/<failure-domain-id>

Get a Failure Domain


Returns information about a single failure domain.
GET /api/v1/failure-domains/<failure-domain-id>

Update Failure Domain


Updates an existing failure domain. Modifiable parameters are
display_name, preferred_active_edge_services flag.
PUT /api/v1/failure-domains/<failure-domain-id>

List Hostswitch Profiles


Returns information about the configured hostswitch profiles. Hostswitch
profiles define networking policies for hostswitches (sometimes referred to
as bridges in OVS). Currently, only uplink teaming is supported. Uplink
teaming allows NSX to load balance traffic across different physical NICs
(PNICs) on the hypervisor hosts. Multiple teaming policies are supported,
including LACP active, LACP passive, load balancing based on source ID, and
failover order.
GET /api/v1/host-switch-profiles

Create a Hostswitch Profile


Creates a hostswitch profile. The resource_type is required. For uplink
profiles, the teaming and policy parameters are required. By default, the
mtu is 1600 and the transport_vlan is 0. The supported MTU range is 1280
through (uplink_mtu_threshold). (uplink_mtu_threshold) is 9000 by default.
Range can be extended by modifying (uplink_mtu_threshold) in
SwitchingGlobalConfig to the required upper threshold.
POST /api/v1/host-switch-profiles

Delete a Hostswitch Profile


Deletes a specified hostswitch profile.
DELETE /api/v1/host-switch-profiles/<host-switch-profile-id>

Get a Hostswitch Profile by ID


Returns information about a specified hostswitch profile.
GET /api/v1/host-switch-profiles/<host-switch-profile-id>

Update a Hostswitch Profile


Modifies a specified hostswitch profile. The body of the PUT request must
include the resource_type. For uplink profiles, the put request must also
include teaming parameters. Modifiable attributes include display_name, mtu,
and transport_vlan. For uplink teaming policies, uplink_name and policy are
also modifiable.
PUT /api/v1/host-switch-profiles/<host-switch-profile-id>

List LLDP Neighbor Properties of Fabric Node


List LLDP Neighbor Properties for all interfaces of Fabric Node
GET /api/v1/lldp/fabric-nodes/<fabric-node-id>/interfaces

Read LLDP Neighbor Properties of Fabric Node by Interface Name


Read LLDP Neighbor Properties for a specific interface of Fabric Node
GET /api/v1/lldp/fabric-nodes/<fabric-node-id>/interfaces/<interface-name>

List LLDP Neighbor Properties of Transport Node


List LLDP Neighbor Properties for all interfaces of Transport Node
GET /api/v1/lldp/transport-nodes/<node-id>/interfaces

Read LLDP Neighbor Properties of Transport Node by Interface Name


Read LLDP Neighbor Properties for a specific interface of Transport Node
GET /api/v1/lldp/transport-nodes/<node-id>/interfaces/<interface-name>

Returns list of configured IP address blocks.


Returns information about configured IP address blocks. Information includes
the id, display name, description & CIDR of IP address blocks
GET /api/v1/pools/ip-blocks

Create a new IP address block.


Creates a new IPv4 address block using the specified cidr. cidr is a required
parameter. display_name & description are optional parameters
POST /api/v1/pools/ip-blocks

Delete an IP Address Block


Deletes the IP address block with specified id if it exists. IP
block cannot be deleted if there are allocated subnets from the block.
DELETE /api/v1/pools/ip-blocks/<block-id>

Get IP address block information.


Returns information about the IP address block with specified id.
Information includes id, display_name, description & cidr.
GET /api/v1/pools/ip-blocks/<block-id>

Update an IP Address Block


Modifies the IP address block with specifed id. display_name, description
and cidr are parameters that can be modified. If a new cidr is specified,
it should contain all existing subnets in the IP block. Returns a conflict error
if the IP address block cidr can not be modified due to the presence of
subnets that it contains. Eg: If the IP block contains a subnet 192.168.0.1/24
and we try to change the IP block cidr to 10.1.0.1/16, it results in a conflict.
PUT /api/v1/pools/ip-blocks/<block-id>

List IP Pools


Returns information about the configured IP address pools. Information
includes the display name and description of the pool and the details of
each of the subnets in the pool, including the DNS servers, allocation
ranges, gateway, and CIDR subnet address.
GET /api/v1/pools/ip-pools

Create an IP Pool


Creates a new IPv4 or IPv6 address pool. Required parameters are
allocation_ranges and cidr. Optional parameters are display_name,
description, dns_nameservers, dns_suffix, and gateway_ip.
POST /api/v1/pools/ip-pools

Delete an IP Pool


Deletes the specified IP address pool. By default, if the IpPool is used in other configurations (such as transport node template), it won't be deleted. In such situations, pass "force=true" as query param to force delete the IpPool
DELETE /api/v1/pools/ip-pools/<pool-id>

Read IP Pool


Returns information about the specified IP address pool.
GET /api/v1/pools/ip-pools/<pool-id>

Allocate or Release an IP Address from a Pool


Allocates or releases an IP address from the specified IP pool. To allocate
an address, include ?action=ALLOCATE in the request and "allocation_id":null
in the request body. When the request is successful, the response is
"allocation_id": "", where is an IP address from
the specified pool. To release an IP address (return it back to the pool),
include ?action=RELEASE in the request and "allocation_id": in
the request body, where is the address to be released. When the
request is successful, the response is NULL. Tags, display_name and description
attributes are not supported for AllocationIpAddress in this release.
POST /api/v1/pools/ip-pools/<pool-id>

Update an IP Pool


Modifies the specified IP address pool. Modifiable parameters include the
description, display_name, and all subnet information.
PUT /api/v1/pools/ip-pools/<pool-id>

List IP Pool Allocations


Returns information about which addresses have been allocated from a
specified IP address pool.
GET /api/v1/pools/ip-pools/<pool-id>/allocations

List subnets within an IP block


Returns information about all subnets present within an IP address
block. Information includes subnet's id, display_name, description, cidr and
allocation ranges.
GET /api/v1/pools/ip-subnets

Create subnet of specified size within an IP block


Carves out a subnet of requested size from the specified IP block. The "size"
parameter and the "block_id " are the requireds field while invoking this API.
If the IP block has sufficient resources/space to allocate a subnet of specified size,
the response will contain all the details of the newly created subnet including the
display_name, description, cidr & allocation_ranges. Returns a conflict error
if the IP block does not have enough resources/space to allocate a subnet of
the requested size.
POST /api/v1/pools/ip-subnets

Delete subnet within an IP block


Deletes a subnet with specified id within a given IP address block.
Deletion is allowed only when there are no allocated IP addresses
from that subnet.
DELETE /api/v1/pools/ip-subnets/<subnet-id>

Get the subnet within an IP block


Returns information about the subnet with specified id within a given
IP address block. Information includes display_name, description, cidr and
allocation_ranges.
GET /api/v1/pools/ip-subnets/<subnet-id>

Allocate or Release an IP Address from a Ip Subnet


Allocates or releases an IP address from the specified IP subnet. To allocate
an address, include ?action=ALLOCATE in the request and a "{}"
in the request body. When the request is successful, the response is
"allocation_id": "", where is an IP address from
the specified pool. To release an IP address (return it back to the pool),
include ?action=RELEASE in the request and "allocation_id": in
the request body, where is the address to be released. When the
request is successful, the response is NULL.
POST /api/v1/pools/ip-subnets/<subnet-id>

List MAC Pools


Returns a list of all the MAC pools
GET /api/v1/pools/mac-pools

Read MAC Pool


Returns information about the specified MAC pool.
GET /api/v1/pools/mac-pools/<pool-id>

List VNI Pools


Returns information about the default and configured virtual
network identifier (VNI) pools for use when building logical network
segments. Each virtual network has a unique ID called a VNI. Instead
of creating a new VNI each time you need a new logical switch, you
can instead allocate a VNI from a VNI pool. VNI pools are sometimes
called segment ID pools. Each VNI pool has a range of usable VNIs. By
default, there is one pool with two ranges [5000, 65535] and [65536,
75000]. To create multiple smaller pools, specify a smaller range for
each pool such as 75001-75100 and 75101-75200. The VNI range determines
the maximum number of logical switches that can be created in each
network segment.
GET /api/v1/pools/vni-pools

Create a new VNI Pool.


Creates a new VNI pool using the specified VNI pool range. The range
should be non-overlapping with an existing range. If the range in
payload is present or overlaps with an existing range, return code 400
with bad request and an error message is returned mentioning that the
given range overlaps with an existing range.
POST /api/v1/pools/vni-pools

Delete a VNI Pool


Deletes the given VNI pool.
DELETE /api/v1/pools/vni-pools/<pool-id>

Read VNI Pool


Returns information about the specified virtual network identifier (VNI) pool.
GET /api/v1/pools/vni-pools/<pool-id>

Update a VNI Pool


Updates the specified VNI pool. Modifiable parameters include description, display_name and ranges.
Ranges can be added, modified or deleted. Overlapping ranges are not allowed.
Only range end can be modified for any existing range.
Range shrinking or deletion is not allowed if there are any allocated VNIs.
PUT /api/v1/pools/vni-pools/<pool-id>

List virtual tunnel endpoint Label Pools


Returns a list of all virtual tunnel endpoint label pools
GET /api/v1/pools/vtep-label-pools

Read a virtual tunnel endpoint label pool


Returns information about the specified virtual tunnel endpoint label pool.
GET /api/v1/pools/vtep-label-pools/<pool-id>

List Transport Node collections


Returns all Transport Node collections
GET /api/v1/transport-node-collections

Create transport node collection by attaching Transport Node Profile to cluster.


When transport node collection is created the hosts which are part
of compute collection will be prepared automatically i.e. NSX Manager
attempts to install the NSX components on hosts. Transport nodes for these
hosts are created using the configuration specified in transport node
profile.
POST /api/v1/transport-node-collections

Detach transport node profile from compute collection.


By deleting transport node collection, we are detaching the transport node
profile(TNP) from the compute collection. It has no effect on existing
transport nodes. However, new hosts added to the compute collection will no
longer be automatically converted to NSX transport node.
Detaching TNP from compute collection does not delete TNP.
DELETE /api/v1/transport-node-collections/<transport-node-collection-id>

Get Transport Node collection by id


Returns transport node collection by id
GET /api/v1/transport-node-collections/<transport-node-collection-id>

Update Transport Node collection


Attach different transport node profile to compute collection by updating
transport node collection.
PUT /api/v1/transport-node-collections/<transport-node-collection-id>

Get Transport Node collection application state


Returns the state of transport node collection based on the states of
transport nodes of the hosts which are part of compute collection.
GET /api/v1/transport-node-collections/<transport-node-collection-id>/state

List Transport Nodes


Returns information about all transport node profiles.
GET /api/v1/transport-node-profiles

Create a Transport Node Profile


Transport node profile captures the configuration needed to create
a transport node. A transport node profile can be attached to
compute collections for automatic TN creation of member hosts.
POST /api/v1/transport-node-profiles

Delete a Transport Node Profile


Deletes the specified transport node profile. A transport node profile
can be deleted only when it is not attached to any compute collection.
DELETE /api/v1/transport-node-profiles/<transport-node-profile-id>

Get a Transport Node


Returns information about a specified transport node profile.
GET /api/v1/transport-node-profiles/<transport-node-profile-id>

Update a Transport Node Profile


When configurations of a transport node profile(TNP) is updated, all the
transport nodes in all the compute collections to which this TNP is attached
are updated to reflect the updated configuration.
PUT /api/v1/transport-node-profiles/<transport-node-profile-id>

List Transport Nodes


Returns information about all transport nodes along with underlying host or
edge details. A transport node is a host or edge that contains hostswitches.
A hostswitch can have virtual machines connected to them.

Because each transport node has hostswitches, transport nodes can also have
virtual tunnel endpoints, which means that they can be part of the overlay.
GET /api/v1/transport-nodes

Create a Transport Node


Transport nodes are hypervisor hosts and NSX Edges that will participate
in an NSX-T overlay. For a hypervisor host, this means that it hosts
VMs that will communicate over NSX-T logical switches. For NSX Edges,
this means that it will have logical router uplinks and downlinks.

This API creates transport node for a host node (hypervisor) or edge node
(router) in the transport network.

When you run this command for a host, NSX Manager attempts to install the
NSX kernel modules, which are packaged as VIB, RPM, or DEB files. For the
installation to succeed, you must provide the host login credentials and the
host thumbprint.

To get the ESXi host thumbprint, SSH to the host and run the
openssl x509 -in /etc/vmware/ssl/rui.crt -fingerprint -sha256 -noout
command.

To generate host key thumbprint using SHA-256 algorithm please follow the
steps below.

Log into the host, making sure that the connection is not vulnerable to a
man in the middle attack. Check whether a public key already exists.
Host public key is generally located at '/etc/ssh/ssh_host_rsa_key.pub'.
If the key is not present then generate a new key by running the following
command and follow the instructions.

ssh-keygen -t rsa

Now generate a SHA256 hash of the key using the following command. Please
make sure to pass the appropriate file name if the public key is stored with
a different file name other than the default 'id_rsa.pub'.

awk '{print $2}' id_rsa.pub | base64 -d | sha256sum -b | sed 's/ .*$//' | xxd -r -p | base64
This api is deprecated as part of FN+TN unification. Please use Transport Node API
to install NSX components on a node.

Additional documentation on creating a transport node can be found
in the NSX-T Installation Guide.

In order for the transport node to forward packets,
the host_switch_spec property must be specified.

Host switches (called bridges in OVS on KVM hypervisors) are the
individual switches within the host virtual switch. Virtual machines
are connected to the host switches.

When creating a transport node, you need to specify if the host switches
are already manually preconfigured on the node, or if NSX should create
and manage the host switches. You specify this choice by the type
of host switches you pass in the host_switch_spec property of the
TransportNode request payload.

For a KVM host, you can preconfigure the host switch, or you can have
NSX Manager perform the configuration. For an ESXi host or NSX Edge
node, NSX Manager always configures the host switch.

To preconfigure the host switches on a KVM host, pass an array
of PreconfiguredHostSwitchSpec objects that describes those host
switches. In the current NSX-T release, only one prefonfigured host
switch can be specified. See the PreconfiguredHostSwitchSpec schema
definition for documentation on the properties that must be provided.
Preconfigured host switches are only supported on KVM hosts, not on
ESXi hosts or NSX Edge nodes.

To allow NSX to manage the host switch configuration on KVM hosts,
ESXi hosts, or NSX Edge nodes, pass an array of StandardHostSwitchSpec
objects in the host_switch_spec property, and NSX will automatically
create host switches with the properties you provide. In the current
NSX-T release, up to 16 host switches can be automatically managed.
See the StandardHostSwitchSpec schema definition for documentation on
the properties that must be provided.

Note: Previous versions of NSX-T also used a property named
transport_zone_endpoints at TransportNode level. This property is
deprecated which creates some combinations of new client along with
old client payloads. Examples [1] & [2] show old/existing client
request and response by populating transport_zone_endpoints property
at TransportNode level. Example [3] shows TransportNode creation
request/response by populating transport_zone_endpoints property
at StandardHostSwitch level and other new properties.

The request should either provide node_deployement_info or node_id.

If the host node (hypervisor) or edge node (router) is already added in
system then it can be converted to transport node by providing node_id in
request.

If host node (hypervisor) or edge node (router) is not already present in
system then information should be provided under node_deployment_info.
POST /api/v1/transport-nodes

Paginated list of BGP Neighbors on edge transport node


Paginated list of BGP Neighbors on edge transport node.
GET /api/v1/transport-nodes/<edge-node-id>/inter-site/bgp/neighbors

Get BGP neighbor advertised routes on edge transport node


Returns routes advertised by BGP neighbor from the given edge transport node.
It always returns realtime response.
GET /api/v1/transport-nodes/<edge-node-id>/inter-site/bgp/neighbors/<neighbor-id>/advertised-routes

Get BGP neighbor learned routes on edge transport node


Returns routes learned by BGP neighbor from the given edge transport node.
It always returns realtime response.
GET /api/v1/transport-nodes/<edge-node-id>/inter-site/bgp/neighbors/<neighbor-id>/routes

Get inter-site BGP summary of edge node


Returns BGP summary for all configured neighbors in tunnel VRF
on the given egde node. It always returns realtime response.
GET /api/v1/transport-nodes/<edge-node-id>/inter-site/bgp/summary

Get inter-site statistics of edge node


Returns RTEP to RTEP tunnel port statistics of the given edge node.
It always returns realtime response.
GET /api/v1/transport-nodes/<edge-node-id>/inter-site/statistics

Get the module details of a transport node


GET /api/v1/transport-nodes/<node-id>/modules

Get high-level summary of a transport node


GET /api/v1/transport-nodes/<node-id>/pnic-bond-status

Read status of all transport nodes with tunnel connections to transport node


GET /api/v1/transport-nodes/<node-id>/remote-transport-node-status

Read status of a transport node


GET /api/v1/transport-nodes/<node-id>/status

List of tunnels


GET /api/v1/transport-nodes/<node-id>/tunnels

Tunnel properties


GET /api/v1/transport-nodes/<node-id>/tunnels/<tunnel-name>

Invoke DELETE request on target transport node


DELETE /api/v1/transport-nodes/<target-node-id>/<target-uri>

Invoke GET request on target transport node


GET /api/v1/transport-nodes/<target-node-id>/<target-uri>

Invoke POST request on target transport node


POST /api/v1/transport-nodes/<target-node-id>/<target-uri>

Invoke PUT request on target transport node


PUT /api/v1/transport-nodes/<target-node-id>/<target-uri>

Delete a Transport Node


Deletes the specified transport node. Query param force can be used to
force delete the host nodes. Force deletion of edge and public cloud
gateway nodes is not supported.

It also removes the specified node (host or edge) from system.
If unprepare_host option is set to false, then host will be deleted
without uninstalling the NSX components from the host.
DELETE /api/v1/transport-nodes/<transport-node-id>

Get a Transport Node


Returns information about a specified transport node.
GET /api/v1/transport-nodes/<transport-node-id>

Apply cluster level Transport Node Profile on overridden host


A host can be overridden to have different configuration than Transport
Node Profile(TNP) on cluster. This action will restore such overridden host
back to cluster level TNP.

This API can be used in other case. When TNP is applied to a cluster,
if any validation fails (e.g. VMs running on host) then existing transport
node (TN) is not updated. In that case after the issue is resolved manually
(e.g. VMs powered off), you can call this API to update TN as per cluster
level TNP.
POST /api/v1/transport-nodes/<transport-node-id>?action=restore_cluster_config

Refresh the node configuration for the Edge node.


The API is applicable for Edge transport nodes. If you update the VM
configuration and find a discrepancy in VM configuration at NSX Manager,
then use this API to refresh configuration at NSX Manager.
It refreshes the VM configuration from sources external to MP. Sources
include vSphere Server and the edge node. After this action, the API
GET api/v1/transport-nodes will show refreshed data.
POST /api/v1/transport-nodes/<transport-node-id>?action=refresh_node_configuration&resource_type=EdgeNode

Restart the inventory sync for the node if it is paused currently.


Restart the inventory sync for the node if it is currently internally paused.
After this action the next inventory sync coming from the node is processed.
POST /api/v1/transport-nodes/<transport-node-id>?action=restart_inventory_sync

Enable flow cache for an edge transport node


Enable flow cache for edge transport node.
Caution: This involves restart of the edge
dataplane and hence may lead to network disruption.
POST /api/v1/transport-nodes/<transport-node-id>?action=enable_flow_cache

Disable flow cache for an edge transport node


Disable flow cache for edge transport node.
Caution: This involves restart of the edge
dataplane and hence may lead to network disruption.
POST /api/v1/transport-nodes/<transport-node-id>?action=disable_flow_cache

Update a Transport Node


Modifies the transport node information. The host_switch_name field
must match the host_switch_name value specified in the transport zone
(API: transport-zones). You must create the associated uplink profile
(API: host-switch-profiles) before you can specify an uplink_name here.
If the host is an ESX and has only one physical NIC being used by a vSphere
standard switch, TransportNodeUpdateParameters should be used to migrate
the management interface and the physical NIC into a logical switch that
is in a transport zone this transport node will join or has already joined.
If the migration is already done, TransportNodeUpdateParameters can also be
used to migrate the management interface and the physical NIC back to a
vSphere standard switch.
In other cases, the TransportNodeUpdateParameters should NOT be used.
When updating transport node you should follow pattern where you should
fetch the existing transport node and then only modify the required
properties keeping other properties as is.

It also modifies attributes of node (host or edge).

Note: Previous versions of NSX-T also used a property named
transport_zone_endpoints at TransportNode level. This property is
deprecated which creates some combinations of new client along with
old client payloads. Examples [1] shows old/existing client
request and response by populating transport_zone_endpoints property
at TransportNode level. Example [2] shows TransportNode updating
TransportNode from exmaple [1] request/response by adding a
new StandardHostSwitch by populating transport_zone_endpoints at
StandardHostSwitch level. TransportNode level transport_zone_endpoints
will ONLY have TransportZoneEndpoints that were originally specified
here during create/update operation and does not include
TransportZoneEndpoints that were directly specified at
StandardHostSwitch level.
PUT /api/v1/transport-nodes/<transport-node-id>

Return the list of capabilities of transport node


Returns information about capabilities of transport host node. Edge nodes do not have capabilities.
GET /api/v1/transport-nodes/<transport-node-id>/capabilities

List the specified transport node's network interfaces


Returns the number of interfaces on the node and detailed
information about each interface. Interface information includes MTU,
broadcast and host IP addresses, link and admin status, MAC address, network
mask, and the IP configuration method (static or DHCP).
GET /api/v1/transport-nodes/<transport-node-id>/network/interfaces

Read the transport node's network interface


Returns detailed information about the specified interface. Interface
information includes MTU, broadcast and host IP addresses, link and admin
status, MAC address, network mask, and the IP configuration method (static
or DHCP).
GET /api/v1/transport-nodes/<transport-node-id>/network/interfaces/<interface-id>

Read the NSX Manager's Network Interface Statistics


On the specified interface, returns the number of received (rx), transmitted
(tx), and dropped packets; the number of bytes and errors received and
transmitted on the interface; and the number of detected collisions.
GET /api/v1/transport-nodes/<transport-node-id>/network/interfaces/<interface-id>/stats

Get a Transport Node's State


Returns information about the current state of the transport node
configuration and information about the associated hostswitch.
GET /api/v1/transport-nodes/<transport-node-id>/state

Resync a Transport Node


Resync the TransportNode configuration on a host.
It is similar to updating the TransportNode with existing configuration,
but force synce these configurations to the host (no backend optimizations).
POST /api/v1/transport-nodes/<transportnode-id>?action=resync_host_config

Update transport node maintenance mode


Put transport node into maintenance mode or exit from maintenance mode.
POST /api/v1/transport-nodes/<transportnode-id>

List transport nodes by realized state


Returns a list of transport node states that have realized state as provided
as query parameter
GET /api/v1/transport-nodes/state

Get high-level summary of all transport nodes. The service layer does not support source = realtime or cached.


GET /api/v1/transport-nodes/status

List Transport Zones


Returns information about configured transport zones. NSX requires at
least one transport zone. NSX uses transport zones to provide connectivity
based on the topology of the underlying network, trust zones, or
organizational separations. For example, you might have hypervisors that
use one network for management traffic and a different network for VM
traffic. This architecture would require two transport zones. The
combination of transport zones plus transport connectors enables NSX to
form tunnels between hypervisors. Transport zones define which interfaces
on the hypervisors can communicate with which other interfaces on other
hypervisors to establish overlay tunnels or provide connectivity to a VLAN.
A logical switch can be in one (and only one) transport zone. This means
that all of a switch's interfaces must be in the same transport zone.
However, each hypervisor virtual switch (OVS or VDS) has multiple
interfaces (connectors), and each connector can be attached to a different
logical switch. For example, on a single hypervisor with two connectors,
connector A can be attached to logical switch 1 in transport zone A, while
connector B is attached to logical switch 2 in transport zone B. In this
way, a single hypervisor can participate in multiple transport zones. The
API for creating a transport zone requires that a single host switch be
specified for each transport zone, and multiple transport zones can share
the same host switch.
GET /api/v1/transport-zones

Create a Transport Zone


Creates a new transport zone. The required parameters are host_switch_name
and transport_type (OVERLAY or VLAN). The optional parameters are
description and display_name.
POST /api/v1/transport-zones

Delete a Transport Zone


Deletes an existing transport zone.
DELETE /api/v1/transport-zones/<zone-id>

Get a Transport Zone


Returns information about a single transport zone.
GET /api/v1/transport-zones/<zone-id>

Update a Transport Zone


Updates an existing transport zone. Modifiable parameters are
is_default, description, and display_name. The
request must include the existing host_switch_name.
PUT /api/v1/transport-zones/<zone-id>

Get high-level summary of a transport zone


GET /api/v1/transport-zones/<zone-id>/status

Get a Transport Zone's Current Runtime Status Information


Returns information about a specified transport zone, including the number
of logical switches in the transport zone, number of logical spitch ports
assigned to the transport zone, and number of transport nodes in the
transport zone.
GET /api/v1/transport-zones/<zone-id>/summary

Read status of transport nodes in a transport zone


GET /api/v1/transport-zones/<zone-id>/transport-node-status

Creates a status report of transport nodes in a transport zone


You must provide the request header "Accept:application/octet-stream" when calling this API.
GET /api/v1/transport-zones/<zone-id>/transport-node-status-report

Get high-level summary of a transport zone. The service layer does not support source = realtime or cached.


GET /api/v1/transport-zones/status

Read status of all the transport nodes


GET /api/v1/transport-zones/transport-node-status

Creates a status report of transport nodes of all the transport zones


You must provide the request header "Accept:application/octet-stream" when calling this API.
GET /api/v1/transport-zones/transport-node-status-report

List transport zone profiles


Returns information about the configured transport zone profiles. Transport zone
profiles define networking policies for transport zones and transport zone endpoints.
GET /api/v1/transportzone-profiles

Create a transport zone Profile


Creates a transport zone profile. The resource_type is required.
POST /api/v1/transportzone-profiles

Delete a transport zone Profile


Deletes a specified transport zone profile.
DELETE /api/v1/transportzone-profiles/<transportzone-profile-id>

Get transport zone profile by identifier


Returns information about a specified transport zone profile.
GET /api/v1/transportzone-profiles/<transportzone-profile-id>

Update a transport zone profile


Modifies a specified transport zone profile. The body of the PUT request must include the resource_type.
PUT /api/v1/transportzone-profiles/<transportzone-profile-id>