NSX-T Data Center REST API

Associated URIs:

API Description API Path

Get all service attachments.


Returns all Service-Attachement(s) present in the system.
GET /api/v1/serviceinsertion/service-attachments (Deprecated)

Add a Service Attachment.


Adds a new Service attachment. A service attachment represents a point
on NSX entity (Example: Logical Router) to which service instance can be
connected through an InstanceEndpoint.
POST /api/v1/serviceinsertion/service-attachments (Deprecated)

Delete an existing service attachment


Delete existing service attachment from system.
Before deletion, please make sure that, no instance endpoints are connected
to this attachment. In turn no appliance should be connected to this attachment.
DELETE /api/v1/serviceinsertion/service-attachments/{service-attachment-id} (Deprecated)

Get a particular service attachment.


Returns detailed Attachment information for a given service attachment.
GET /api/v1/serviceinsertion/service-attachments/{service-attachment-id} (Deprecated)

Update an existing service attachment.


Modifies an existing service attachment. Updates to
name, description and Logical Router list only supported.
PUT /api/v1/serviceinsertion/service-attachments/{service-attachment-id} (Deprecated)

List all ServiceChains.


List all service chains in the system.
GET /api/v1/serviceinsertion/service-chains (Deprecated)

Add Service Chain


Adds a new service chain. Service Chains is can contain profile belonging
to same or different Service(s). It represents a redirection target for a Rule.
POST /api/v1/serviceinsertion/service-chains (Deprecated)

Delete a Service Chain.


Delete a particular service chain.
DELETE /api/v1/serviceinsertion/service-chains/{service-chain-id} (Deprecated)

Get a particular service chain.


Returns detailed service chain information.
GET /api/v1/serviceinsertion/service-chains/{service-chain-id} (Deprecated)

List all service paths


List all service paths for the given service chain for the given service chain id
GET /api/v1/serviceinsertion/service-chains/{service-chain-id}/service-paths (Deprecated)

Get all Service-Instances present in system


Returns all Service-Instance(s) of all Services present in system.
When request parameter (deployed_to or service_deployment_id) is provided as a part of request,
it will filter out Service-Instances accordingly.
GET /api/v1/serviceinsertion/service-instances

List service managers


List all service managers.
GET /api/v1/serviceinsertion/service-managers

Register service manager


Register service-manager with NSX with basic details like name, username, password.
POST /api/v1/serviceinsertion/service-managers

Delete service manager


Delete service-manager which is registered with NSX with basic details like name, username, password.
DELETE /api/v1/serviceinsertion/service-managers/{service-manager-id}

Get service manager


Retrieve service-manager details like name, username, password, vendor ID, thumbprint for a given ID.
GET /api/v1/serviceinsertion/service-managers/{service-manager-id}

Update service manager


Update service-manager which is registered with NSX with basic details like name, username, password.
PUT /api/v1/serviceinsertion/service-managers/{service-manager-id}

List all Service-Insertion Services.


List all Service-Insertion Service Definitions.
GET /api/v1/serviceinsertion/services

Create a Service-Insertion Service


Creates new Service-Insertion Service in the system.
POST /api/v1/serviceinsertion/services

Delete an existing Service and the Service-Instance associated with it.


Removes Service-Insertion Service from the system. A Service with
Service-Instances can only be deleted by passing "cascade=true" parameter.
DELETE /api/v1/serviceinsertion/services/{service-id}

Get an existing Service


Returns information about Service-Insertion Service with the given identifier.
GET /api/v1/serviceinsertion/services/{service-id}

Update an existing Service


Modifies the specified Service.
PUT /api/v1/serviceinsertion/services/{service-id}

Get all service deployments for the given service id


Returns the list of deployments for the given service
GET /api/v1/serviceinsertion/services/{service-id}/service-deployments

Deploys a particular service


This will deploy a particular service on a given cluster / host. Internally multiple service instance can be
created during the deployment. If there are no issues in the parameters, the call returns immediately,
and the service VMs will be deployed asynchronously. To get the overall status of the deployment or to get
the status of individual service vm, please use the deployment status APIs.
POST /api/v1/serviceinsertion/services/{service-id}/service-deployments

Remove service deployment


Remove the service deployment. Will remove all the Service VMs that were
created as part of this deployment. User can send optional force delete
option which will force remove the deployment, but should be used
only when the regular delete is not working. Regular delete will ensure
proper cleanup of Service VMs and related objects. Directly calling this
API without trying regular undeploy will result in unexpected results,
and orphan objects.
DELETE /api/v1/serviceinsertion/services/{service-id}/service-deployments/{service-deployment-id}

Get a particular service deployment.


Returns detail of service deployment.
GET /api/v1/serviceinsertion/services/{service-id}/service-deployments/{service-deployment-id}

Upgrade all VMs part of this service deployment to new Spec OVF.


If new deployment spec is provided, the deployment will be moved to the provided spec provided
that current deployment state is either UPGRADE_FAILED or DEPLOYMENT_SUCCESSFUL
If same deployment spec is provided, upgrade will be done only if current deployment state is
UPGRADE_FAILED
If the exisiting data store is upgraded or changed, there is an optional parameter to supply the new
storage Id during upgrade which would perform the deployment upgrade on the new data store
POST /api/v1/serviceinsertion/services/{service-id}/service-deployments/{service-deployment-id}?action=upgrade

Update an existing Service Deployment


Update an existing Service Deployment.
PUT /api/v1/serviceinsertion/services/{service-id}/service-deployments/{service-deployment-id} (Deprecated)

Get Service-Deployment state for Service.


Returns configuration state of deployed partner service using service insertion framework.
GET /api/v1/serviceinsertion/services/{service-id}/service-deployments/{service-deployment-id}/state

Get a particular service deployment status.


Returns current status of the deployment of partner service. Available only for EPP Services.
By default this API would return cached status. Caching happens every 3 minutes.
For realtime status, query parameter "source=realtime" needs to be passed.
GET /api/v1/serviceinsertion/services/{service-id}/service-deployments/{service-deployment-id}/status

Get all Service-Instances for Service.


Returns all Service-Instance(s) for a given Service-Insertion Service.
GET /api/v1/serviceinsertion/services/{service-id}/service-instances

Add a Service Instance for a specified Service.


Adds a new Service-Instance under the specified Service.
POST /api/v1/serviceinsertion/services/{service-id}/service-instances

Delete an existing Service-Instance


Delete existing Service-Instance for a given Service-Insertion Service.
DELETE /api/v1/serviceinsertion/services/{service-id}/service-instances/{service-instance-id} (Deprecated)

Get Service-Instance for Service.


Returns Service-Instance information for a given Service-Insertion Service.
GET /api/v1/serviceinsertion/services/{service-id}/service-instances/{service-instance-id}

Update an existing Service-Instance.


Modifies an existing Service-Instance for a given Service-Insertion Service.
PUT /api/v1/serviceinsertion/services/{service-id}/service-instances/{service-instance-id} (Deprecated)

Get NSgroups for a given ServiceInstance.


Returns list of NSGroups used in Service Insertion North-South rules for a given
Service Instance.
GET /api/v1/serviceinsertion/services/{service-id}/service-instances/{service-instance-id}/group-associations

List all InstanceEndpoints of a Service Instance.


List all InstanceEndpoints of a service instance.
GET /api/v1/serviceinsertion/services/{service-id}/service-instances/{service-instance-id}/instance-endpoints

Add an InstanceEndpoint for a Service Instance


Adds a new instance endpoint. It belongs to one service instance and is attached
to one service attachment. It represents a redirection target for a Rule.
POST /api/v1/serviceinsertion/services/{service-id}/service-instances/{service-instance-id}/instance-endpoints (Deprecated)

Delete a particular InstanceEndpoint.


Delete instance endpoint information for a given instace endpoint.
Please make sure to delete all the Service Insertion Rules, which
refer to this Endpoint as 'redirect_tos' target.
DELETE /api/v1/serviceinsertion/services/{service-id}/service-instances/{service-instance-id}/instance-endpoints/{instance-endpoint-id} (Deprecated)

Get a particular instance endpoint for a service instance.


Returns detailed Endpoint information for a given InstanceEndpoint.
GET /api/v1/serviceinsertion/services/{service-id}/service-instances/{service-instance-id}/instance-endpoints/{instance-endpoint-id} (Deprecated)

Returns list of instance runtimes of service VM being deployed


Returns list of instance runtimes of service VMs being deployed for a given service instance id
GET /api/v1/serviceinsertion/services/{service-id}/service-instances/{service-instance-id}/instance-runtimes

Deploy and set up service VMs either as standalone or HA


Deploys one service VM as standalone, or two service VMs as HA where one VM is active and another one is standby.

During the deployment of service VMs, service will be set up based on deployment events using callbacks.
POST /api/v1/serviceinsertion/services/{service-id}/service-instances/{service-instance-id}/instance-runtimes?action=deploy (Deprecated)

Remove service VMs either as standalone or HA


Undeploy one service VM as standalone or two service VMs as HA. Associated deployment information and instance
runtime will also be deleted once service VMs have been un-deployed successfully.
POST /api/v1/serviceinsertion/services/{service-id}/service-instances/{service-instance-id}/instance-runtimes?action=delete (Deprecated)

Upgrade service VMs using newer version of OVF


Upgrade service VMs using newer version of OVF.
Upgrade is a 2 step process. Update the 'deployment_spec_name' in the
ServiceInstance to the new DeploymentSpec to which the service VMs will be
upgraded, folowed by this 'upgrade' api.
In case of HA, the stand-by service VM will be upgrade first. Once it has been upgraded,
it switches to be the Active one and then the other VM will be upgrade.
POST /api/v1/serviceinsertion/services/{service-id}/service-instances/{service-instance-id}/instance-runtimes?action=upgrade (Deprecated)

Update maintenance mode or runtime state of a service VM


Set service VM either in or out of maintenance mode for maintenance mode, or in service or out
of service for runtime state. Only one value can be set at one time.
POST /api/v1/serviceinsertion/services/{service-id}/service-instances/{service-instance-id}/instance-runtimes/{instance-runtime-id}

Get statistics for a given interface identified by the interface index


Returns statistics of a specified interface via associated logical port. If the logical port is attached to
a logical router port, query parameter "source=realtime" is not supported.
GET /api/v1/serviceinsertion/services/{service-id}/service-instances/{service-instance-id}/instance-runtimes/{instance-runtime-id}/interfaces/{interface_index}/statistics (Deprecated)

Get operational status for an interface


Returns operational status of a specified interface
GET /api/v1/serviceinsertion/services/{service-id}/service-instances/{service-instance-id}/instance-runtimes/{instance-runtime-id}/interfaces/{interface_index}/status

Get Service-Instance state for Service.


Returns configuration state of one instance of a deployed partner service using service insertion framework.
GET /api/v1/serviceinsertion/services/{service-id}/service-instances/{service-instance-id}/state

Get Service-Instance status for Service.


Returns status of one instance of a deployed partner service using service insertion framework.
By default this API would return cached status. Caching happens every 3 minutes.
For realtime status, query parameter "source=realtime" needs to be passed.
GET /api/v1/serviceinsertion/services/{service-id}/service-instances/{service-instance-id}/status

List all Service Profiles of a Service.


List all service profiles of a service.
GET /api/v1/serviceinsertion/services/{service-id}/service-profiles (Deprecated)

Add ServiceProfile for a given Service.


Adds a new service profile.
POST /api/v1/serviceinsertion/services/{service-id}/service-profiles (Deprecated)

Delete a particular ServiceProfile.


Delete service profile for a given service.
DELETE /api/v1/serviceinsertion/services/{service-id}/service-profiles/{service-profile-id} (Deprecated)

Get a particular ServiceProfile for a Service.


Returns detailed service profile information for a given Service.
GET /api/v1/serviceinsertion/services/{service-id}/service-profiles/{service-profile-id} (Deprecated)

Get NSgroups for a given ServiceProfile.


Returns list of NSGroups used in Service Insertion rules for a given Service Profile.
GET /api/v1/serviceinsertion/services/{service-id}/service-profiles/{service-profile-id}/nsgroups (Deprecated)

List all ServiceChainMappings.


List all service chain mappings in the system for the given service profile.
GET /api/v1/serviceinsertion/services/{service-id}/service-profiles/{service-profile-id}/service-chain-mappings (Deprecated)

Get Solution Config Information associated with a given service.


Returns Solution Config information for a given service.
GET /api/v1/serviceinsertion/services/{service-id}/solution-configs

Add Solution Config for a given Service


Adds a solution config. Solution Config are service level objects,
required for configuring the NXGI partner Service after deployment.
POST /api/v1/serviceinsertion/services/{service-id}/solution-configs

Deletes solution config information.


Deletes solution config information for a given service.
DELETE /api/v1/serviceinsertion/services/{service-id}/solution-configs/{solution-config-id}

Get Solution Config Information for a given solution config id.


Returns Solution Config information for a given solution config id.
GET /api/v1/serviceinsertion/services/{service-id}/solution-configs/{solution-config-id}

Updates Solution Config for a given Service


Updates a solution config. Solution Config are service level objects,
required for configuring the NXGI partner Service after deployment.
PUT /api/v1/serviceinsertion/services/{service-id}/solution-configs/{solution-config-id}

Deletes extended solution config information.


Deletes extended solution config information for a given solution config id.
DELETE /api/v1/serviceinsertion/services/{service-id}/solution-configs/{solution-config-id}/extended-solution-config

Get extended solution Config Information for a given solution config id.


Returns extended solution config information for a given solution config id.
GET /api/v1/serviceinsertion/services/{service-id}/solution-configs/{solution-config-id}/extended-solution-config

Add Extended solution Config for a given Service


Adds a extended solution config. Extended Solution Config are service level objects,
used by the NXGI partner Service inside the SVM.
POST /api/v1/serviceinsertion/services/{service-id}/solution-configs/{solution-config-id}/extended-solution-config

Updates extended solution Config for a given Service


Updates a extended solution config. Extended Solution Config are service level objects,
used by the NXGI partner Service inside the SVM.
PUT /api/v1/serviceinsertion/services/{service-id}/solution-configs/{solution-config-id}/extended-solution-config

List all VendorTemplates of a Service.


List all vendor templates of a service.
GET /api/v1/serviceinsertion/services/{service-id}/vendor-templates

Add Vendor Template for a given Service


Adds a new vendor template. Vendor templates are service level objects,
registered to be used in Service Profiles.
POST /api/v1/serviceinsertion/services/{service-id}/vendor-templates

Delete a particular vendor tempalte.


Delete vendor template information for a given service.
Please make sure to delete all the Service Profile(s), which
refer to this vendor tempalte before deleting the template itself.
DELETE /api/v1/serviceinsertion/services/{service-id}/vendor-templates/{vendor-template-id}

Get a particular vendor template for a given service.


Returns detailed vendor template information for a given service.
GET /api/v1/serviceinsertion/services/{service-id}/vendor-templates/{vendor-template-id}

Resolve 'source node id' value to source entities.


Service insertion data path inserts unique 'source node id' value
into each packet. This API can be used to identify the source of the packet
using this value. It can be resolved to multiple source entities.
GET /api/v1/serviceinsertion/source-entities