NSX-T Data Center API Guide

NSX-T Data Center API Guide

NSX-T Data Center API Guide

NSX-T Data Center 3.2.1

Table of Contents

  1. Overview
  2. API Methods
    1. Cloud Service Manager
      1. AWS
        1. VPCS
          1. Security Groups
          2. Service Endpoints
      2. AWS Accounts
      3. AWS Gateway AMIS
      4. AWS Gateways
      5. AWS Key Pairs
      6. AWS Regions
      7. AWS Resources
      8. AWS VPCS
      9. Accounts Statistics
      10. Azure
        1. Security Groups
        2. Vnets
          1. Service Endpoints
      11. Azure Accounts
      12. Azure Gateways
      13. Azure IP Allocations
      14. Azure Regions
      15. Azure Resources
      16. Azure Vnets
      17. Cloud Service Manager
      18. Cloud Types
      19. Manager Configuration
      20. NSX Manager Accounts
      21. Proxy Server Profile
      22. Supported Regions
      23. System Configuration
      24. VPN
      25. Virtual Machines
        1. Firewall Rules
    2. Federation
      1. Federation Configuration
      2. Full Synchronization
      3. Global Managers
      4. Inter-Sites
      5. Observability
      6. Sites
    3. Management Plane API
      1. Associations
      2. Grouping Objects
        1. IP Sets
        2. MAC Sets
        3. NS Groups
        4. NS Profiles
        5. NS Service Groups
        6. NS Services
      3. NSX Component Administration
        1. Appliance Management
      4. Networking
        1. Logical Bridging
          1. Bridge Endpoint Profiles
          2. Bridge Endpoints
        2. Logical Routing And Services
          1. BFD Peers
          2. Logical Router Ports
          3. Logical Routers
          4. NAT
          5. Routing BFD Configuration
          6. Routing Configuration
        3. Logical Switching
          1. Logical Switch Ports
          2. Logical Switches
        4. Services
          1. DHCP
          2. DHCP Relay
          3. DHCP Relay Profiles
          4. DNS
          5. Loadbalancer
          6. Metadata Proxy
        5. VPN
          1. IPSEC
            1. DPD Profiles
            2. IKE Profiles
            3. Peer Endpoints
            4. Services
            5. Sessions
            6. Tunnel Profiles
          2. L2VPN
            1. Services
            2. Sessions
          3. Statistics
            1. IKE Service
            2. IKE Sessions Status
            3. IPSEC Reset Sessions Statistics
            4. IPSEC Sessions Statistics
            5. IPSEC Sessions Summary
            6. L2VPN Remote MACS
            7. L2VPN Session Statistics
            8. L2VPN Session Status
            9. L2VPN Sessions Summary
      5. Normalization
      6. Security
        1. Identity Firewall
          1. Configuration
          2. Monitoring
          3. Realization Data
        2. Intrusion Services
          1. Dashboard
          2. IDS Profiles
        3. Service Configuration
        4. Services
          1. Firewall
          2. Service Insertion
      7. Services
        1. DHCP
        2. DNS
        3. Metadata Proxy
      8. Troubleshooting And Monitoring
        1. Healthcheck
        2. IPFIX
        3. Livetrace
        4. Packet Capture
        5. Port Connection
        6. Port Mirroring
        7. Traceflow
    4. NSX Application Platform
      1. Deployment
        1. Bundle
          1. Status
        2. Platform
          1. Config
          2. Form Factors
          3. Status
          4. Storageclass
          5. Versions
        3. Registry
        4. Tools
          1. Bundle
            1. Upload
        5. Upgrade
          1. Coordinator
            1. Check
              1. Status
            2. Versions
      2. Kubeconfig
      3. Kubernetes
        1. Tools
      4. Platform
        1. Host Agent
        2. Tools
          1. Bundle
            1. Upload
      5. Upgrade
        1. Coordinator
          1. Config
          2. Status
    5. Policy
      1. Infra
        1. Certificates
          1. CSR
          2. Certificates
          3. Certification Revocation List
        2. Constraints
        3. Deployment Zones
        4. Domains
          1. Domain
          2. Domain Deployment Maps
        5. Enforcement Points
        6. Hierarchical API
        7. Labels
        8. Realized State
      2. Inventory
        1. Containers
          1. Container Applications
          2. Container Clusters
          3. Container Projects
        2. Groups
          1. Group Members
          2. Groups
        3. Profiles
          1. Context Profiles
          2. L7 Access Profiles
            1. Static MIME Content
        4. Services
        5. Tags
        6. Virtual Interfaces
        7. Virtual Machines
        8. Virtual Switches
        9. Vm
      3. Monitoring
        1. Capacity Dashboard
        2. Compliance
        3. Finetuning
        4. Heatmap
        5. IPFIX
          1. Firewall IPFIX Collectors
          2. Firewall IPFIX Profiles
          3. Switch IPFIX Collectors
          4. Switch IPFIX Profiles
        6. LLDP
        7. Latency
        8. Livetrace
        9. Port Mirroring
        10. System Health Agent
          1. Appliance
          2. Profile
        11. Traceflow
      4. Networking
        1. Connectivity
          1. Segments
            1. Bridge Endpoints
              1. Statistics
            2. Edge Bridge Profiles
            3. MAC Table
            4. Ports
              1. MAC Table
              2. State
            5. Segment Profiles
              1. Discovery Profile Binding
              2. IP Discovery Profiles
              3. MAC Discovery Profiles
              4. Monitoring Profile Binding
              5. QOS Profile Binding
              6. QOS Profiles
              7. Security Profile Binding
              8. Segment Security Profile Binding
              9. Segment Security Profiles
              10. Spoofguard Profiles
            6. Segments
            7. Segments (Fixed)
            8. Service Segments
            9. State
            10. Statistics
            11. Status
            12. TEP Table
          2. Tier-0 Gateways
            1. ARP Proxies
            2. EVPN Setting
              1. EVPN Configuration
              2. EVPN Tunnel Endpoints
            3. Interfaces
              1. ARP Proxies
              2. ARP Table
              3. DAD State
              4. Interfaces
              5. Statistics
            4. Multicast
            5. Routing
              1. BGP
              2. Community Lists
              3. Forwarding Table
              4. OSPF
              5. Prefix List
              6. Route Maps
              7. Routing Table
              8. State
              9. Static Routes
              10. Static Routes BFD Peers
            6. Tier-0 Deployment Maps
            7. Tier-0 Gateways
            8. Tier-0 Locale Services
          3. Tier-1 Gateways
            1. ARP Proxies
            2. Interfaces
              1. ARP Proxies
              2. ARP Table
              3. DAD State
              4. Interfaces
              5. Statistics
            3. Multicast
            4. Routing
              1. Forwarding Table
              2. State
              3. Static Routes
            5. Tier-1 Gateways
            6. Tier-1 Locale Services
          4. Transport Zones
        2. IP Management
          1. DHCP
            1. DHCP Leases
            2. DHCP Relay Configs
            3. DHCP Server Configs
            4. DHCP Static Bindings
              1. Segments Bindings
              2. Segments Bindings (Fixed)
          2. DNS
            1. DNS Forwarder
              1. DNS Zones
              2. Tier-0 Gateways
              3. Tier-1 Gateways
          3. IP Address Pools
            1. IP Blocks
            2. IP Pools
          4. Manager IP Pools
        3. Network Services
          1. Advanced Load Balancing
            1. Alb Analytics Profiles
            2. Alb Application Persistence Profiles
            3. Alb Application Profiles
            4. Alb Auth Profiles
            5. Alb Auth Token
            6. Alb Auto Scale Launch Configs
            7. Alb Controller Version
            8. Alb DNS Policies
            9. Alb Error Page Bodies
            10. Alb Error Page Profiles
            11. Alb HTTP Policy Sets
            12. Alb Hardware Security Module Groups
            13. Alb Health Monitors
            14. Alb IP Addr Groups
            15. Alb L4 Policy Sets
            16. Alb Network Profiles
            17. Alb Network Security Policies
            18. Alb Onboarding Workflow
            19. Alb Pki Profiles
            20. Alb Pool Group Deployment Policies
            21. Alb Pool Groups
            22. Alb Pools
            23. Alb Priority Labels
            24. Alb Protocol Parsers
            25. Alb SSL Key And Certificates
            26. Alb SSL Profiles
            27. Alb Security Policies
            28. Alb Server Auto Scale Policies
            29. Alb Sso Policies
            30. Alb String Groups
            31. Alb Traffic Clone Profiles
            32. Alb Virtual Services
            33. Alb Vs Data Script Sets
            34. Alb Vs Vips
            35. Alb Waf Crs
            36. Alb Waf Policies
            37. Alb Waf Policy Psm Groups
            38. Alb Waf Profiles
            39. Alb Webhooks
          2. Forwarding Policies
            1. Rules
              1. Statistics
            2. Statistics
          3. Load Balancing
            1. Load Balancer Pools
            2. Load Balancer Profiles
              1. Load Balancer Application Profiles
              2. Load Balancer Monitor Profiles
              3. Load Balancer Persistence Profiles
              4. Load Balancer SSL Profiles
                1. Load Balancer Client SSL Profiles
                2. Load Balancer SSL Ciphers And Protocols
                3. Load Balancer Server SSL Profiles
            3. Load Balancer Services
            4. Load Balancer Usage
              1. Statistics
              2. Status
              3. Usage
            5. Load Balancer Virtual Servers
          4. Metadata Proxy
            1. Status
          5. NAT
            1. Rules
              1. Tier-0 Gateways
              2. Tier-1 Gateways
            2. Statistics
          6. VPN
            1. IPSEC
              1. DPD Profiles
              2. IKE Profiles
              3. IPSEC Profiles
              4. Local Endpoints
              5. Services
              6. Sessions
                1. Summary
              7. Statistics
              8. Status
            2. L2VPN
              1. Remote-Mac
              2. Services
              3. Sessions
              4. Statistics
              5. Status
        4. Networking Profiles
          1. BFD Profiles
          2. EVPN Tenant Configuration
          3. EVPN VNI Pools
          4. Gateway QOS Profiles
          5. Global Gateway Configuration
          6. IPV6 DAD Profiles
          7. IPV6 NDRA Profiles
          8. Multicast Profiles
          9. Transport Zone Profiles
      5. Security
        1. East West Security
          1. Distributed Firewall
            1. Communication Maps
            2. Container Cluster
            3. Rules
            4. Settings
              1. Distributed Firewall Settings
              2. Drafts
              3. Exclusion List
              4. Firewall Identity Store
                1. Event-Log-Server
                2. Groups
                3. LDAP Servers
                4. Ldap-Server
              5. Firewall Scheduler
              6. Identity Firewall Settings
            5. Statistics
            6. Task
          2. Distributed IDS
            1. Dashboard
            2. Intrusion Services
            3. Profiles
            4. Rules
              1. Statistics
            5. Settings
              1. Enablement
              2. Signatures
            6. Statistics
        2. Endpoint Protection
          1. Rules
        3. North South Security
          1. Gateway Firewall
            1. Rules
            2. Settings
              1. Firewall Configuration
              2. Security Configuration
            3. Statistics
            4. Tier-0 Gateways
            5. Tier-1 Gateways
            6. Tls Inspection
              1. Tls Config
              2. Tls Profiles
              3. Tls Rules
              4. Tls State
            7. Url Categorization
          2. Gateway IDS
            1. Rules
              1. Statistics
            2. Statistics
        4. Security Profiles
          1. Cpu Memory Thresholds Profiles
          2. DNS Security Profile Bindings
          3. DNS Security Profiles
          4. Flood Protection Profile Binding
          5. Flood Protection Profiles
          6. Monitoring Profile Binding
          7. Session Timer Profile Binding
          8. Session Timer Profile Bindings
          9. Session Timer Profiles
        5. Service Insertion
          1. Partner Services
          2. Redirection Policies
          3. Service Chains
          4. Service Definitions
          5. Service Instances
            1. Tier-0 Gateways
            2. Tier-1 Gateways
          6. Service References
          7. Settings
            1. Configuration Status
            2. Exclusion List
          8. Statistics
          9. Virtual Endpoints
            1. Tier-0 Gateways
            2. Tier-1 Gateways
    6. Search
      1. Search API
    7. System Administration
      1. Configuration
        1. Directory Service
          1. Domains
          2. Event-Log-Server
          3. Groups
          4. LDAP Servers
        2. Fabric
          1. Cloud Native Service Instances
          2. Compute Collections
          3. Compute Managers
          4. Edge Clusters
            1. Edge Clusters
            2. Failure Domains
          5. Nodes
            1. Certificates
            2. Cluster Control Planes
            3. DNS
            4. Discovered Nodes
            5. Fabric Nodes
            6. File Store
            7. Hardening
              1. Mandatory Access Control
            8. LLDP
            9. Logs
            10. NSX Edge
              1. Dataplane
              2. Diagnosis
              3. Manager Configuration
              4. Nestdb
              5. Services
                1. DHCP
                2. DHCP Service
                3. Docker
                4. Ipsecvpn Service
                5. Local-Controller
                6. Maintenance Mode
                7. NSX Ops Agent Service
                8. Routing
                9. Security-Hub
                10. VPN
            11. NSX Manager
              1. Management Plane
              2. Manager Configuration
              3. Manager Network Interfaces
              4. Services
                1. Async Replicator Service
                2. Cluster Manager Service
                3. Cm Inventory Service
                4. Controller Service
                5. Dispatcher Service
                6. HTTP Service
                7. Idps Reporting Service
                8. Install Upgrade Service
                9. Local-Controller Service
                10. Manager Service
                11. Messaging Manager Service
                12. Metadata Proxy Service
                13. Migration Coordinator Service
                14. NSX Control Plane Agent Service
                15. Node Stats Service
                16. Policy Service
                17. Search Service
                18. Telemetry Service
                19. User Interface Service
            12. Network Interfaces
              1. Routing
            13. Physical Servers
            14. Services
              1. Log Insight
              2. NSX Message Service
              3. NSX Platform Client
              4. NTP
              5. Node Management
              6. SNMP
              7. SSH
              8. Syslog
              9. Tasks
              10. Upgrade Agent
            15. Settings
            16. Support-Bundle
            17. Transport Node Collections
            18. Transport Node Interfaces
            19. Transport Node Status
            20. Transport Node Tunnels
            21. Transport Nodes
            22. User Management
              1. Authentication Policy
              2. Users
          6. Pool Management
            1. IP Blocks
            2. IP Pools
            3. MAC Pools
            4. VNI Pools
            5. VTEP Label Pools
          7. Profiles
            1. Cluster Profiles
            2. Host Transport Node Profiles
            3. Hostswitch Profiles
            4. Transport Node Profiles
            5. Transport Zone Profiles
          8. Transport Zones
        3. Global Configurations
        4. NSX Advanced Load Balancer
          1. Controller
            1. Cluster
            2. Cluster Config
            3. Deployments
            4. Form Factors
        5. NSX Intelligence
          1. Deployments
          2. Form Factors
          3. Host
          4. Repository
            1. Bundles
        6. NSX Managers
          1. API Services
            1. API Request Batching
            2. Configuration
            3. Task Management
          2. Clusters
            1. Cluster Certificate
            2. Cluster Configuration
            3. Cluster Interfaces
            4. Cluster Node Deployments
            5. Cluster Status
            6. Cluster Virtual IP
          3. Manager Configuration
          4. Manager Mode
          5. Nodes
            1. Services
              1. Async Replicator Service
        7. NSX Partial Patch
        8. Nodes
          1. Manager Configuration
        9. Site Management
        10. System Properties
          1. Dataplane
          2. IPSEC Sessions
          3. Mpa Configuration
          4. Pcg Registration
          5. Realization State Barrier
      2. Lifecycle Management
        1. Backup Restore Management
          1. Backup
          2. Restore
        2. Migration
          1. Feedback
          2. Group
          3. Migration Units
          4. NVDS
          5. Nodes
          6. Plan
          7. Setup
          8. Stats
          9. Status
          10. User Inputs
          11. Vmgroup
        3. Upgrade
          1. Bundles
          2. Eula
          3. Group
          4. History
          5. Nodes
          6. Plan
          7. Status
          8. Upgrade Coordinator
          9. Upgrade Units
      3. Monitoring
        1. Alarms And Events
        2. Dashboards
          1. Capacity Dashboard
          2. UI Views
          3. Widget Configuration
        3. Error Resolver
        4. Health Checks
        5. Health Performance Monitoring
        6. Latency Profiles
        7. Logs
          1. Audit Logs
          2. Core Dumps
        8. Notifications
        9. System Health
          1. Appliance
            1. Process
          2. Container
            1. Antrea
          3. Plugins
          4. Profiles
      4. Settings
        1. Certificates
          1. CRL
          2. CSR
          3. Certificate
        2. Customer Experience Improvement
          1. Telemetry
        3. Licenses
        4. Proxy Settings
        5. Support Bundle
        6. User Management
          1. Access Token
          2. Authorization
            1. Object Permissions
          3. LDAP Identity Sources
          4. Principal Identity
          5. Roles
          6. Users
          7. VIDM Configuration
    8. Uncategorized APIs
  3. API Types
  4. API Type Schemas
  5. API Errors
  6. Deprecated Types and Methods


Overview

Introduction

NSX-T Data Center provides a programmatic API to automate management activities. The API follows a resource-oriented Representational State Transfer (REST) architecture, using JSON object encoding. Clients interact with the API using RESTful web service calls over the HTTPS protocol.

Each API method is identified by a request method and URI. Method parameters are specified as key-value pairs appended to the URI. Unless otherwise noted, request and response bodies are encoded using JSON, and must conform to the JSON schema associated with each method. The content type of each request and reply is "application/json" unless otherwise specified. Each request that can be made is documented in the API Methods section. The associated request and response body schemas are documented in the API Schemas section.

If you provide URL-encoded UTF-8 characters in the URL of your API request, you must include the header "Content-Type:charset=UTF-8" in your request.

API Policy: Changes, Deprecations and Removals

VMware NSX Data Center and associated firewall offerings may add new features in a NSX Data Center release. These new features may lead to additional APIs or backward compatible changes to existing APIs to support the new features.

Changes to the API that lead to incompatibility with previous releases will be announced at least one year prior to the change. These changes will be announced and documented in the NSX Data Center API Guide and in the NSX Data Center release notes. These changes can be implemented in either major or minor releases of NSX Data Center.

NSX Data Center APIs marked as "experimental" or that are not documented in the NSX Data Center API Guide are not subject to this policy. This indicates that the API may be changed or removed without notice in a future NSX Data Center release.

Definitions:

  • Major Release: Designated by an increment of the "x" digit of the x.y.z product version.
  • Minor Release: Designated by an increment of the "y" digit of the x.y.z product version.

API Data Types and Allowed Ranges

The NSX-T API uses JSON to represent API request and response payloads, and uses JSONSchema to describe the schema of these payloads. The data types are:

string: a sequence of UTF-8 characters. If a particular string property has a maximum length, it is represented in the documentation with a maxLength property.

integer: a signed 64-bit value. Unless a minimum or maximum value is shown in the documentation, integer values may take on values in the range -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807.

unsigned_integer: an unsigned 64-bit value. Unless a minimum or maximum value is shown in the documentation, integer values may take on values in the range 0 to 9,223,372,036,854,775,807.

int: a signed 32-bit value. Unless a minimum or maximum value is shown in the documentation, int values may take on values in the range -2,147,483,648 to 2,147,483,647.

number: a 64-bit floating point number. Unless a minimum or maximum value is shown in the documentation, number values may take on values in the range 4.9406564584124654 x 10-324 to 1.7976931348623157 x 10308.

boolean: the values true or false. Do not use quotes when sending boolean values in payloads.

object: a nested JSON object.

array: an array of one of the above types.

Formats

Some API types have a required format, and payloads that do not conform to the required format will be rejected. If a property has a required format, it is listed in the "Notes" section in this API Guide. The following formats are used in NSX-T:

ipv4: Must be a valid Internet Protocol version 4 address, in dotted-quad notation. For example, "192.168.1.232".

ipv6: Must be a valid Internet Protocol version 6 address, as described in RFC 1924. For example, "2001:0db8:85a3:0000:0000:8a2e:0370:7334". Abbreviations are supported.

ip: Either an ipv4 or ipv6 address.

hostname: An internet hostname, as described in RFC 1123. For example, "example.com"

ipv4-cidr-block: An ipv4 Classless Inter-Domain Routing (CIDR) block, expressed as a base ipv4 address, a slash, and the number of bits in the subnet mask. For example, "10.1.0.1/24".

ipv6-cidr-block: An ipv6 Classless Inter-Domain Routing (CIDR) block, expressed as a base ipv6 address, a slash, and the number of bits in the subnet mask. For example, "2001:db8::/32".

ip-cidr-block: Either an ipv4-cidr-block or an ip-v6-cidr-block.

ipv4-address-range: A range of ipv4 addresses, expressed as a lower-bound ipv4 address, a dash, and an upper-bound ipv4 address. For example, "192.168.1.0-192.168.1.255"

ipv6-address-range: A range of ipv6 addresses, expressed as a lower-bound ipv6 address, a dash, and an upper-bound ipv6 address. For example, "fe80::0202:b3ff:fe1e:8329-fe80::0202:b3ff:fe1e:832a"

address-or-block-or-range: Either an ip address, an ip-cidr-block, an ipv4-address-range, or an ipv6-address-range.

port-or-range: A port number (an integer in the range 0 to 65535) or a range of port numbers, expressed as a lower and upper port number, separated by a dash. Examples: "80" or "997-1023".

hostname-or-ip: Either a hostname or an ip address.

hostname-or-ipv4: Either a hostname or an ipv4 address.

list-of-address-or-block-or-range: A comma-separated list address-or-block-or-range.

mac-address: A Media Access Control (MAC) address. MAC addresses are six hexadecimal numbers, separated by either colons ":" or dashes "-". Case is not significant. Examples: "20:f3:75:5e:47:f0" or "20-F3-75-5E-47-F0".

Request Failures

It is possible for any request to fail. Errors are reported using standard HTTP response codes. It should be assumed the following errors could be returned by any API method: 301 Moved Permanently, 307 Temporary Redirect, 400 Bad Request, 401 Unauthorized, 403 Forbidden, 412 Precondition Failed, 429 Too Many Requests, 500 Internal Server Error, 503 Service Unavailable. Where other errors may be returned, the type of error is indicated in the API method description. All errors are documented in the API Errors section. API requests may fail due to concurrent updates, where an API request collides with another API request, and NSX cannot reconcile the two operations. In that case, the client must re-fetch the resource, apply the changes, and re-submit the operation.

Request Authentication

Most API calls require authentication. This API supports several different authentication schemes, which are documented in this section. Multiple authentication schemes may not be used concurrently.

HTTP Basic Authentication

To authenticate a request using HTTP Basic authentication, the caller's credentials are passed using the 'Authorization' header. The header content should consist of a base64-encoded string containing the username and password separated by a single colon (":") character, as specified in RFC 1945 section 11.1.

For example, to authenticate a request using the credentials of user admin with password admin, include the following header with the request:

Authorization: Basic YWRtaW46YWRtaW4=

The following cURL command will authenticate to the manager using basic authentication and will issue a GET request for logical ports:

curl -k -u USERNAME:PASSWORD https://MANAGER/api/v1/logical-ports

where:
USERNAME is the user to authenticate as,
PASSWORD is the password to provide, and
MANAGER is the IP address or host name of the NSX manager

For example:

curl -k -u admin:secretPw99 https://192.168.22.32/api/v1/logical-ports

Note: the -k argument instructs cURL to skip verifying the manager's self-signed X.509 certificate. It is more secure to verify that the server's certificate is signed by a Certificate Authority (CA) that you trust. To do that, omit the -k argument and use the --cacert <ca-file> option, where <ca-file> is a PEM-formatted file containing the CA certificate to trust.

For example:

curl --cacert /home/me/certs/rootca.crt -u admin:secretPw99 https://192.168.22.32/api/v1/logical-ports

Additional cURL examples below use the -k flag, but you can always substitute the --rootca <ca-file> argument for additional security.

In the above examples, USERNAME may be:

  1. A local user name. For example, "admin".
  2. A remote user name, of the form "user@domain", for example, "[email protected]". The domain must match a domain for a configured VIDM identity source or a configured LDAP identity source.
Note: in earlier versions of NSX, in order to authenticate to VIDM, it was required that you provide an authentication header of the form "Authorization: Remote base64-encoded-username-and-password". This is no longer required, but still functions for backward compatibility.

Session-Based Authentication

Session-based authentication is used by calling the /api/session/create authentication API to manage a session cookie. The session cookie returned in the result of a successful login must be provided in subsequent requests in order to associate those requests with the session.

Session state is local to the server responding to the API request. Idle sessions will automatically time-out, or can be terminated immediately using the POST /api/session/destroy API.

To obtain a session cookie, POST form data to the server using the application/x-ww-form-urlencoded media type, with fields "j_username" and "j_password" containing the username and password separated by an ampersand. Since an ampersand is a UNIX shell metacharacter, you may need to surround the argument with single quotes.

If the user is a remote user, append "@domain" to the username, for example, "[email protected]". The domain must match a domain for a configured VIDM identity source or a configured LDAP identity source.

The following cURL command will authenticate to the server, will deposit the session cookie in the file "cookies.txt", and will write all HTTP response headers to the file headers.txt. One of these headers is the X-XSRF-TOKEN header that you will need to provide in subsequent requests.

curl -k -c cookies.txt -D headers.txt -X POST -d 'j_username=USERNAME&j_password=PASSWORD' https://MANAGER/api/session/create

For example:

curl -k -c cookies.txt -D headers.txt -X POST -d 'j_username=admin&j_password=secretPw99' https://192.168.22.32/api/session/create

The manager will respond with the roles and permissions granted to the user, and cURL will deposit the session cookie into the file "cookies.txt".

In subsequent cURL requests, use the -b argument to specify the cookie file. You also need to pass the X-XSRF-TOKEN header that was saved to the headers.txt file, using cURL's -H option:

curl -k -b cookies.txt -H "`grep X-XSRF-TOKEN headers.txt`" https://192.168.22.32/api/v1/logical-ports

When the session expires, the manager will respond with a 403 Forbidden HTTP response, at which point you must obtain a new session cookie and X-XSRF-TOKEN.

Session cookies can be destroyed by using the /api/session/destroy API:

curl -k -b cookies.txt -H "`grep X-XSRF-TOKEN headers.txt`" -X POST https://MANAGER/api/session/destroy

Authentication using an X.509 certificate and a Principal Identity

NSX supports using an X.509 client certificate for authentication. The certificate is associated with a principal identity (a short name, similar to a username), and that principal identity can be bound to an NSX role. This is useful for automated processes or scripts that perform NSX API calls, and has the advantage that a user password does not need to be stored with the script.

For information on how to import a certificate and set up a principal identity, see the section "Add a Role Assignment or Principal Identity" in the NSX-T Administration Guide.

To use the client certificate to authenticate, your client must have access to the certificate and its associated private key. How to specify client authentication depends on the client you are using. For example, with curl, you use the --key argument to give the filename containing the private key and the --cert argument to give the filename containg the public certificate.

Authentication in VMware Cloud on AWS (VMC)

To make API calls to an NSX-T Manager in the VMware Cloud on AWS service (VMC), you need to gather a few pieces of information:

  1. Your VMC Organization ID
  2. Your Software Defined Data Center (SDDC) ID
  3. Your API token

All of this information is available in the VMC web console, https://console.cloud.vmware.com

In VMC, you always exchange your API token for a limited-duration authentication token, which you then pass in a header with your API calls. This authentication token is valid for 30 minutes. After that time, you must obtain a new authentication token using your API token. If you use an expired authentication token, the API call will be rejected.

To obtain an authentication token, you issue a POST request to the URL https://console.cloud.vmware.com/csp/gateway/am/api/auth/api-tokens/authorize, passing your API token in a form. To do this with cURL:

curl https://console.cloud.vmware.com/csp/gateway/am/api/auth/api-tokens/authorize -d refresh_token=<token>

For example, if your refresh token is aB1jtC5yk2rDL6A1KPxzM0W4D7OeHFUNuXFHZidufYS3fIwn60ZRag0Y9dvX15Qv, the command will be:

curl https://console.cloud.vmware.com/csp/gateway/am/api/auth/api-tokens/authorize -d refresh_token=aB1jtC5yk2rDL6A1KPxzM0W4D7OeHFUNuXFHZidufYS3fIwn60ZRag0Y9dvX15Qv

You will receive a JSON response with several properties. The "access_token" property contains the token you will need to provide with your API requests. An easy way to parse this token out of the response is to use the "jq" utility. For example:

curl https://console.cloud.vmware.com/csp/gateway/am/api/auth/api-tokens/authorize -d refresh_token=aB1jtC5yk2rDL6A1KPxzM0W4D7OeHFUNuXFHZidufYS3fIwn60ZRag0Y9dvX15Qv | jq --raw-output '.access_token'

produces just the access token. You can set an environment variable with the correct authentication header with:

export AUTH_HDR="csp-auth-token: `curl https://console.cloud.vmware.com/csp/gateway/am/api/auth/api-tokens/authorize -d refresh_token=aB1jtC5yk2rDL6A1KPxzM0W4D7OeHFUNuXFHZidufYS3fIwn60ZRag0Y9dvX15Qv | jq --raw-output '.access_token'`"

The AUTH_HDR environment variable now contains the authentication header. The token itself will be a long string of characters and digits.

Once you have your authentication token, you need to determine the URL for accessing the NSX-T manager in your SDDC. To do that, you issue a GET request to the endpoint https://vmc.vmware.com/vmc/api/orgs/<org-id>/sddcs/<sddc-id>, where <org-id> is your organization's ID and <sddc-id> is your SDDC's ID. The URL of the NSX-T manager will be in the resource_config.nsx_api_public_endpoint_url property. For example, if your organizations's ID is a003c3a5-3f68-4a8c-a74f-f79a0625da17 and your SDDC is 449369c7-7936-4f7f-b46e-624cdb2a0a99:

curl -H "$AUTH_HDR" https://vmc.vmware.com/vmc/api/orgs/a003c3a5-3f68-4a8c-a74f-f79a0625da17/sddcs/449369c7-7936-4f7f-b46e-624cdb2a0a99 | jq --raw-output ".resource_config.nsx_api_public_endpoint_url"

The output will look like:

https://nsx-52-41-15-143.rp.vmwarevmc.com/vmc/reverse-proxy/api/orgs/a003c3a5-3f68-4a8c-a74f-f79a0625da17/sddcs/449369c7-7936-4f7f-b46e-624cdb2a0a99/sks-nsxt-manager

This is the URL you should use to access your NSX-T manager from the internet. Append the particular API's URL to this base URL. For example, to list all domains, the API is "/policy/api/v1/infra/domains", so the full request will look like the following:

curl -q -H "$AUTH_HDR" https://nsx-52-41-15-143.rp.vmwarevmc.com/vmc/reverse-proxy/api/orgs/a003c3a5-3f68-4a8c-a74f-f79a0625da17/sddcs/449369c7-7936-4f7f-b46e-624cdb2a0a99/sks-nsxt-manager/policy/api/v1/infra/domains

Example Requests and Responses

Example requests and responses are provided for most of the API calls below. Your actual response might differ from the example in the number of fields returned because optional empty fields are not returned when you make an API call.

Restrictions on Certain Fields in a Request

When configuring layer 2 switching, the following fields can contain any character except semicolon (;), vertical bar (|), equal sign (=), comma (,), tilde (~), and the "at" sign (@). They also have a length limitation as specified below:

  • Logical switch display name. Maximum length: 80 bytes.
  • Host switch name in TransportZone. Maximum length: 80 bytes.
  • Uplink name in UplinkHostSwitchProfile. Maximum length: 47 bytes.

Optimistic Concurrency Control and the _revision property

Overview

In order to prevent one client from overwriting another client's updates, NSX-T employs a technique called optimistic concurrency control.

All REST payloads contain a property named "_revision". This is an integer that is incremented each time an existing resource is updated. Clients must provide this property in PUT requests and it must match the current _revision or the update will be rejected. This guards against the following situation:

Client 1 reads resource A.

Client 2 reads resource A.

Client 1 replaces the display_name property of resource A and does a PUT to replace the resource.

Client 2 replaces is different property of resource A and attempts to perform a PUT operation.

Without optimistic concurrency control, Client 2's update would overwrite Client 1's update to the display_name property. Instead, Client 2 receives a 409 Conflict error. To recover, Client 2 must fetch the resource again, apply the change, and perform a PUT.

Exceptions for /policy APIs

APIs whose URI begins with /policy have slightly different behavior. For those APIs, the _revision property must not be set when PUT is used to create a new resource. Once the resource is created, however, the _revision property must be provided with PUT operations.

PATCH and _revision for /policy APIs

APIs whose URI begins with /policy support the PATCH operation. Those APIs do not require that the _revision property be provided. A client can, however, request that the _revision property be checked when it is performing a PATCH in the /infra path. To do this, the client should pass the query parameter enforce_revision_check, e.g. PATCH /infra?enforce_revision_check=true.

PUT Operations

NSX-T conforms to REST and HTTP standards regarding the operation of PUT operations. A PUT is always a full replace of a resource, and if any properties are omitted from the payload, those properties will be reset to default values. It is suggested that API clients retrieve the existing resource, apply any desired changes to the copy of the resource, and PUT the entire modified resource.

Partial patching of objects is a feature supported by NSX that allows patching a subset of properties of any object. This behavior needs to be explicitly enabled. When partial patching is disabled (default behavior), the entire payload of object is expected to be provided in both PUT and PATCH operations for the /policy APIs.

In order to perform partial patching of existing objects using PATCH operation, partial patching should be enabled using either one of the following approach:

  1. System-wide partial patch configuration
    Partial patch can be enabled/disabled in the system by using the Partial Patch Config api (i.e. PATCH /policy/api/v1/system-config/nsx-partial-patch-config) with sample request payload.
    { "enable_partial_patch": "true" }
    Default is 'false'.
    Note: If the API request header has 'nsx-enable-partial-patch' parameter, then the header takes precedence over this system-wide configuration.
  2. Header parameter (request level configuration)
    Partial patch can also be enabled/disabled using API request header parameter. This will override the system-wide configuration for a particular request.
    To enable partial patch, use 'nsx-enable-partial-patch=true'
    To disable partial patch, use 'nsx-enable-partial-patch=false'
    If this parameter is not passed in header, the system level configuration will be considered for Partial Patch operation. This header parameter will be considered only for PATCH requests. For other requests (e.g. PUT, POST etc.), this header parameter will be ignored.

Some important considerations/notes on Partial Patch:

  1. Array properties will be replaced entirely in partial patch.
  2. If PATCH api is executed on a non-existing object, a new object will be created after performing all applicable validations.
  3. There are cases where properties of an object are inter-dependent on each other e.g. username and password, IP address and thumbprint etc. In such cases, the partial patch request expects all such inter-dependent fields to be provided (either all or none).
  4. Partial patch is not supported for 'Infra' object.
  5. Certain types like Labels, Security Policies (for the 'rules' attribute) and Services have special handling for certain attributes in PATCH request. This behavior will not be overridden by Partial Patch.
    For instance, specifying rules on Security policies as a part of the PATCH invocation merges the specified rules with the existing rules. For full replacement of rules, PUT operation needs to be performed on the Security Policy.
  6. Partial patch will not work for properties accepting polymorphic types if the specified value has a type that is different from that of the existing value.

API Rate Limiting

The NSX-T API service has three settings that control the rate of incoming API requests:

1) A per-client rate limit, in requests per second. If a client makes more requests than this limit in one second, the API server will refuse to service the API request and will return an HTTP 429 Too Many Requests Error. By default, this limit is 100 requests per second.

2) A per-client concurrency limit. This is the maximum number of outstanding requests that a client can have. For example, a client can open multiple connections to NSX-T and submit operations on each connection. When this limit is exceeded, the server returns a 429 Too Many Requests error to the client. By default, this limit is 40 concurrent requests.

3) An overall maximum number of concurrent requests. This is the maximum number of API requests that can be in process on the server. If the server is at this limit, additional requests will be refused and the HTTP error 503 Service Unavailable will be returned to the client. By default, this limit is 199 concurrent requests.

The first two limits exist to provide some level of fairness across multiple clients of NSX-T, and are intended to prevent one greedy client from preventing other clients from making API requests.

The last limit is the server's way of protecting itself against an unintentional (or intentional) denial of service attack.

While it is possible to configure these rate limits using the /api/v1/node/services/http API, it is not recommended. Instead, you should design your API client to gracefully deal with situations where limits are exceeded.

Designing API client code to work gracefully with rate limits

One approach is to build in throttling into the client code so that it never sends more than 100 requests in a given second and that it never has more than 40 concurrent requests in flight.

However, there isn't any way to ensure that the overall concurrency limits are never hit. That is because there may be other clients calling APIs, driving up the load on the server. API clients need to check for the HTTP error 503 Service Unavailable. In the event a 503 error is received, the simplest strategy is to insert a delay, possibly with an exponential backoff in the event that server load is high.

There are open-source libraries than can help you implement this retry/backoff behavior, such as Google's Retry helper in its Python google-api-core library. For an example of using this library with the NSX-T APIs, see https://github.com/vmware-samples/nsx-t/blob/master/python/basics/rate-limits.py

OpenAPI Specification of NSX-T APIs

You can download OpenAPI specifications for the various NSX-T APIs at the following URLs:

NSX-T Data Center Manager API:
APIs for NSX-T administration; node and cluster management APIs and fabric management APIs for on-premise customers.

  • GET https://<nsx-mgr>/api/v1/spec/openapi/nsx_api.yaml
  • GET https://<nsx-mgr>/api/v1/spec/openapi/nsx_api.json
NSX-T Data Center Manager API:
APIs for managing logical networking in NSX-T for on-premise customers.
  • GET https://<nsx-mgr>/api/v1/spec/openapi/nsx_policy_api.yaml
  • GET https://<nsx-mgr>/api/v1/spec/openapi/nsx_policy_api.json
NSX VMC Policy API:
APIs for managing logical networking in NSX-T for VMware Cloud customers.
  • GET https://<nsx-mgr>/api/v1/spec/openapi/nsx_vmc_policy_api.yaml
  • GET https://<nsx-mgr>/api/v1/spec/openapi/nsx_vmc_policy_api.json
NSX VMC AWS Integration API:
APIs for managing AWS underlay networking for VMware Cloud customers.
  • GET https://<nsx-mgr>/api/v1/spec/openapi/nsx_vmc_aws_integration_api.yaml
  • GET https://<nsx-mgr>/api/v1/spec/openapi/nsx_vmc_aws_integration_api.json


API Methods

Toggle all tables +

Cloud Service Manager

Cloud Service Manager: AWS Accounts

Associated URIs:

Add a AWS account to cloud serivce manager

Request:
Method:
POST
URI Path(s):
/api/v1/csm/aws/accounts
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
AwsAccount+

Example Request: POST https://<nsx-csm>/api/v1/csm/aws/accounts { "display_name": "Account ABC", "cloud_type": "AWS", "cloud_tags_enabled" : true, "tenant_id": "123", "auth_method": "CREDENTIALS", "credentials": { "access_key": "A1B1C1", "secret_key": "a2b2c2", "gateway_role": "test-role" } } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AwsAccount+

Example Response: { "id": "d02af61a-e212-486e-b6c8-10462ccfbad6", "display_name": "Account ABC", "tenant_id": "123", "cloud_type": "AWS", "cloud_tags_enabled" : true, "auth_method": "CREDENTIALS", "credentials": { "gateway_role": "test-role" } "instance_stats": { "managed": 0, "unmanaged": 0, "error": 0 }, "vpc_stats": { "managed": 0, "unmanged": 0 }, "regions_count": 0, "status": { "inventory_sync_status": "IN_PROGRESS", "inventory_sync_state": "SYNCING_AWS_REGIONS" } } Required Permissions: crud Feature: cloud_accounts Additional Errors:

Return a list of all AWS accounts

Request:
Method:
GET
URI Path(s):
/api/v1/csm/aws/accounts
Request Headers:
n/a
Query Parameters:
AwsAccountsListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/aws/accounts?region_id=us-west-2 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AwsAccountsListResult+

Example Response: { "all_accounts_vpc_stats": { "managed": 2, "unmanaged": 4 }, "all_accounts_instance_stats": { "managed": 12, "unmanaged": 22, "error": 1 } } Required Permissions: read Feature: cloud_accounts Additional Errors:

Delete AWS account information

Request:
Method:
DELETE
URI Path(s):
/api/v1/csm/aws/accounts/<account-id>
Request Headers:
n/a
Query Parameters:
DeleteRequestParameters+
Request Body:
n/a

Example Request: DELETE https://<nsx-csm>/api/v1/csm/aws/accounts/ DELETE https://<nsx-csm>/api/v1/csm/aws/accounts/?force=true Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: cloud_accounts Additional Errors:

Returns the details of the particular AWS account

Request:
Method:
GET
URI Path(s):
/api/v1/csm/aws/accounts/<account-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/aws/accounts/9174ffd1-41b1-42d6-a28d-05c61a0698e2 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AwsAccount+

Example Response: { "id": "d02af61a-e212-486e-b6c8-10462ccfbad6", "display_name": "Account ABC", "tenant_id": "123", "cloud_type": "AWS", "cloud_tags_enabled" : true, "auth_method": "CREDENTIALS", "credentials": { "gateway_role": "test-role" } "instance_stats": { "managed": 63, "unmanaged": 25, "error": 1 }, "vpc_stats": { "managed": 4, "unmanaged": 7 }, "regions_count": 4, "status": { "inventory_sync_status": "SYNCED", "inventory_sync_state": "NOT_APPLICABLE", "credentials_status": "VALID" } } Required Permissions: read Feature: cloud_accounts Additional Errors:

Update a AWS account information

Request:
Method:
PUT
URI Path(s):
/api/v1/csm/aws/accounts/<account-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
AwsAccount+

Example Request: PUT https://<nsx-csm>/api/v1/csm/aws/accounts/9174ffd1-41b1-42d6-a28d-05c61a0698e2 { "display_name": "New Name", "cloud_type": "AWS" } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AwsAccount+

Example Response: { "id": "d02af61a-e212-486e-b6c8-10462ccfbad6", "display_name": "New Name", "tenant_id": "123", "cloud_type": "AWS", "cloud_tags_enabled" : true, "auth_method": "CREDENTIALS", "credentials": { "gateway_role": "test-role" } "instance_stats": { "managed": 63, "unmanaged": 25, "error": 1 }, "vpc_stats": { "managed": 4, "unmanaged": 7 }, "regions_count": 4, "status": { "inventory_sync_status": "SYNCED", "inventory_sync_state": "NOT_APPLICABLE", "credentials_status": "VALID" } } Required Permissions: crud Feature: cloud_accounts Additional Errors:

Updates the list of desired regions for a particular AWS account

Request:
Method:
PUT
URI Path(s):
/api/v1/csm/aws/accounts/<account-id>/desired-regions
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
RegionListConfig+

Example Request: PUT https://<nsx-csm>/api/v1/csm/aws/accounts/9174ffd1-41b1-42d6-a28d-05c61a0698e2/desired-regions { "default_client_region": "us-east-1", "regions": [ { "id": "us-west-2", "display_name": "Oregon", "enabled": false, }, { "id": "us-east-1", "display_name": "N. Virginia", "enabled": true, } ] } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
RegionListConfig+

Example Response: { "default_client_region": "us-east-1", "regions": [ { "id": "us-west-2", "display_name": "Oregon", "enabled": false, }, { "id": "us-east-1", "display_name": "N. Virginia", "enabled": true, } ] } Required Permissions: crud Feature: cloud_accounts Additional Errors:

Returns a list of desired regions for a particular AWS account

Request:
Method:
GET
URI Path(s):
/api/v1/csm/aws/accounts/<account-id>/desired-regions
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/aws/accounts/9174ffd1-41b1-42d6-a28d-05c61a0698e2/desired-regions Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
RegionListConfig+

Example Response: { "default_client_region": "us-west-2", "regions": [ { "id": "us-west-2", "display_name": "Oregon", "enabled": true, }, { "id": "us-east-1", "display_name": "N. Virginia", "enabled": true, } ] } Required Permissions: read Feature: cloud_accounts Additional Errors:

Return status of the account like credentials validity, inventory synchronization status and inventory synchronization state

Request:
Method:
GET
URI Path(s):
/api/v1/csm/aws/accounts/<account-id>/status
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/aws/accounts/ d02af61a-e212-486e-b6c8-10462ccfbad6/status Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AwsAccountStatus+

Example Response: { "inventory_sync_status": "IN_PROGRESS", "inventory_sync_state": "SYNCING_AWS_VPCS", "credentials_status": "VALID" } Required Permissions: read Feature: cloud_accounts Additional Errors:

Synchronizes Aws account related inventory like Regions, Vpcs, Instances Status of inventory synchronization can be known from Aws account status api

Request:
Method:
POST
URI Path(s):
/api/v1/csm/aws/accounts/<account-id>?action=sync_inventory
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: POST https://<nsx-csm>/api/v1/csm/aws/accounts/ d02af61a-e212-486e-b6c8-10462ccfbad6?action=sync_inventory Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: cloud_accounts Additional Errors:

Cloud Service Manager: AWS Gateway AMIS

Associated URIs:

DEPRECATED. This API is needed only in NSX Cloud as a Service workflow, which is discontinued. Registers a AWS Gateway AMI for the region specified in the body. One can register only one gateway AMI ID per region. If a gateway AMI is already registered with a region, user is expected to use update API to overwrite the registerd AMI for a region. (Deprecated)

Request:
Method:
POST
URI Path(s):
/api/v1/csm/aws/gateway-amis
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
AwsGatewayAmiInfo+

Example Request: POST https://<nsx-csm>/api/v1/csm/aws/gateway-amis { "region_id": "us-west-2", "ami_id": "ami-123" } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AwsGatewayAmiInfo+

Example Response: { "region_id": "us-west-2", "ami_id": "ami-123", "_protection": "NOT_PROTECTED", "_revision": 0 } Required Permissions: crud Feature: ami_region_mapping Additional Errors:

DEPRECATED. This API is needed only in NSX Cloud as a Service workflow, which is discontinued. Returns a list of Aws Gateway Amis. (Deprecated)

Request:
Method:
GET
URI Path(s):
/api/v1/csm/aws/gateway-amis
Request Headers:
n/a
Query Parameters:
AwsGatewayAmisListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/aws/gateway-amis/ Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AwsGatewayAmisListResult+

Example Response: { "results": [ { "region_id": "us-west-1", "ami_id": "ami-789", "_protection": "NOT_PROTECTED", "_revision": 0 }, { "region_id": "us-west-2", "ami_id": "ami-123", "_protection": "NOT_PROTECTED", "_revision": 0 } ] } Required Permissions: read Feature: ami_region_mapping Additional Errors:

DEPRECATED. This API is needed only in NSX Cloud as a Service workflow, which is discontinued. Returns AWS Gateway AMI for a particular region. (Deprecated)

Request:
Method:
GET
URI Path(s):
/api/v1/csm/aws/gateway-amis/<region-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/aws/gateway-amis/us-west-2 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AwsGatewayAmiInfo+

Example Response: { "region_id": "us-west-2", "ami_id": "ami-123", "_protection": "NOT_PROTECTED", "_revision": 0 } Required Permissions: read Feature: ami_region_mapping Additional Errors:

DEPRECATED. This API is needed only in NSX Cloud as a Service workflow, which is discontinued. Update a AWS Gateway AMI. (Deprecated)

Request:
Method:
PUT
URI Path(s):
/api/v1/csm/aws/gateway-amis/<region-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
AwsGatewayAmiInfo+

Example Request: PUT https://<nsx-csm>/api/v1/csm/aws/gateway-amis/us-west-2 { "region_id": "us-west-2", "ami_id": "ami-456", "_revision": 0 } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AwsGatewayAmiInfo+

Example Response: { "region_id": "us-west-2", "ami_id": "ami-123", "_protection": "NOT_PROTECTED", "_revision": 0 } Required Permissions: crud Feature: ami_region_mapping Additional Errors:

DEPRECATED. This API is needed only in NSX Cloud as a Service workflow, which is discontinued. Delete a AWS Gateway AMI. (Deprecated)

Request:
Method:
DELETE
URI Path(s):
/api/v1/csm/aws/gateway-amis/<region-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: DELETE https://<nsx-csm>/api/v1/csm/aws/gateway-amis/us-west-2 Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: ami_region_mapping Additional Errors:

Cloud Service Manager: AWS Gateways

Associated URIs:

Returns configuration information for all gateways

Request:
Method:
GET
URI Path(s):
/api/v1/csm/aws/gateways
Request Headers:
n/a
Query Parameters:
AwsGatewaysListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/aws/gateways Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AwsGatewaysListResult+

Example Response: { "results": [ { "account_id": "d02af61a-e212-486e-b6c8-10462ccfbad6", "configuration": { "gateway_ha_configuration": [ { "availability_zone": "us-west-2a", "uplink_subnet": "subnet-4b1e122f", "management_subnet": "subnet-ea1e128e", "downlink_subnet": "subnet-041e1260", "gateway_ha_index": 0 } ], "default_quarantine_policy_enabled": false, "managed_without_agents": false, "proxy_server_profile": "a491bc83-5fc8-4e05-adb1-af8274422141", "dns_settings": { "dns_mode": "DHCP" }, "nsx_manager_connection": "PUBLIC_IP", "ami_id": "ami-123", "key_pair_name": "test-key", "is_ha_enabled": false, "form_factor": "LARGE" }, "vpc_id": "vpc-c35dbaa4" }, { "account_id": "d02af61a-e212-486e-b6c8-10462ccfbad6", "configuration": { "gateway_ha_configuration": [ { "availability_zone": "us-west-1b", "uplink_subnet": "subnet-5b1e124h", "management_subnet": "subnet-a1e128t", "downlink_subnet": "subnet-141e1266", "gateway_ha_index": 0 }, { "availability_zone": "us-west-1a", "uplink_subnet": "subnet-7b1e932d", "management_subnet": "subnet-w1e128h", "downlink_subnet": "subnet-a41e1264", "gateway_ha_index": 0 } ], "default_quarantine_policy_enabled": true, "managed_without_agents": false, "nsx_manager_connection": "PRIVATE_IP", "ami_id": "ami-456", "key_pair_name": "test-key", "is_ha_enabled": true, "form_factor": "LARGE" }, "vpc_id": "vpc-d76nfie6" } ] } Required Permissions: read Feature: gateway_deployment Additional Errors:

Updates configuration for primary gateway and secondary gateway for the vpc, if exists.

Request:
Method:
PUT
URI Path(s):
/api/v1/csm/aws/gateways/<vpc-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
AwsGatewayDeployConfig+

Example Request: PUT https://<nsx-csm>/api/v1/csm/aws/gateways/vpc-1234 { "configuration": { "default_quarantine_policy_enabled": true, "managed_without_agents": false, "proxy_server_profile": "a491bc83-5fc8-4e05-adb1-af8274422141", "is_ha_enabled": false }, "account_id": "d02af61a-e212-486e-b6c8-10462ccfbad6", "vpc_id": "vpc-c35dbaa4" } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AwsGatewayDeployConfig+

Example Response: { "account_id": "d02af61a-e212-486e-b6c8-10462ccfbad6", "configuration": { "gateway_ha_configuration": [ { "availability_zone": "us-west-2a", "uplink_subnet": "subnet-4b1e122f", "management_subnet": "subnet-ea1e128e", "downlink_subnet": "subnet-041e1260", "gateway_ha_index": 0 } ], "default_quarantine_policy_enabled": true, "managed_without_agents": false, "proxy_server_profile": "a491bc83-5fc8-4e05-adb1-af8274422141", "dns_settings": { "dns_mode": "DHCP" }, "nsx_manager_connection": "PUBLIC_IP", "ami_id": "ami-123", "key_pair_name": "test-key", "is_ha_enabled": false, "form_factor": "LARGE" }, "vpc_id": "vpc-c35dbaa4" } Required Permissions: crud Feature: quarantine_policy Additional Errors:

Returns configuration for primary gateway and secondary gateway for the vpc,if exists.

Request:
Method:
GET
URI Path(s):
/api/v1/csm/aws/gateways/<vpc-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/aws/gateways/vpc-1234 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AwsGatewayDeployConfig+

Example Response: { "account_id": "d02af61a-e212-486e-b6c8-10462ccfbad6", "configuration": { "gateway_ha_configuration": [ { "availability_zone": "us-west-2a", "uplink_subnet": "subnet-4b1e122f", "management_subnet": "subnet-ea1e128e", "downlink_subnet": "subnet-041e1260", "gateway_ha_index": 0 } ], "default_quarantine_policy_enabled": false, "managed_without_agents": false, "proxy_server_profile":"a491bc83-5fc8-4e05-adb1-af8274422141", "nsx_manager_connection": "PUBLIC_IP", "ami_id": "ami-123", "key_pair_name": "test-key", "is_ha_enabled": false, "form_factor": "LARGE" }, "vpc_id": "vpc-c35dbaa4" } Required Permissions: read Feature: gateway_deployment Additional Errors:

Returns status information for primary gateway and secondary gateway for the vpc, if exists.

Request:
Method:
GET
URI Path(s):
/api/v1/csm/aws/gateways/<vpc-id>/status
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/aws/gateways/vpc-1234/status Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AwsGatewayStatus+

Example Response: { "gateway_instances_status": [ { "gateway_status": "DEPLOYING", "gateway_instance_id": "i-176", "gateway_ha_index": 0, "deployment_status": 80, "deployment_state": "CONFIGURING_GATEWAY", "gateway_name": "nsxc-gw-vpc-c35dbaa4-preferred-active" } ] } Required Permissions: read Feature: gateway_deployment Additional Errors:

Deploys gateway for the specified VPC

All the required configuration to deploy AWS gateways will be absorbed
as a part of request body in this API and gateway deployment will be
triggered. Deployment progress can be known from GetAwsGatewayStatus API.
Upon successful deployment of a gateway, the deployment_step will be
DEPLOYMENT_SUCCESSFUL gateway_status will be UP and op_status of the VPC
will be NSX_MANAGED_BY_GATEWAY. If any error is encountered during
deployment, corresponding error_code and error_message will be populated
in gateway_instances_status. To manage a compute VPC using transit VPC,
user needs to undeploy gateway and onboard the compute VPC
using /csm/aws/vpcs/<vpc-id>?action=onboard API.
Request:
Method:
POST
URI Path(s):
/api/v1/csm/aws/gateways?action=deploy
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
AwsGatewayDeployConfig+

Example Request: POST https://<nsx-csm>/api/v1/csm/aws/gateways?action=deploy { "configuration": { "ami_id": "ami-123", "nsx_manager_connection": "PUBLIC_IP", "default_quarantine_policy_enabled": false, "managed_without_agents": false, "proxy_server_profile": "a491bc83-5fc8-4e05-adb1-af8274422141", "key_pair_name": "test-key", "is_ha_enabled": false, "form_factor": "LARGE", "gateway_ha_configuration": [{ "availability_zone": "us-west-2a", "uplink_subnet": "subnet-4b1e122f", "downlink_subnet": "subnet-041e1260", "management_subnet": "subnet-ea1e128e", "gateway_ha_index": 0, "public_ip_settings": { "ip_allocation_mode": "ALLOCATE_NEW" }, "uplink_public_ip_settings" : { "public_ip" : "104.210.53.56", "ip_allocation_mode" : "USE_EXISTING" } }], "dns_settings": { "dns_mode": "DHCP", "dns_list": ["10.162.204.1", "10.166.1.1"] }}, "account_id": "d02af61a-e212-486e-b6c8-10462ccfbad6", "vpc_id": "vpc-c35dbaa4" } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AwsGatewayDeployConfig+

Example Response: { "account_id": "d02af61a-e212-486e-b6c8-10462ccfbad6", "configuration": { "gateway_ha_configuration": [ { "availability_zone": "us-west-2a", "uplink_subnet": "subnet-4b1e122f", "management_subnet": "subnet-ea1e128e", "downlink_subnet": "subnet-041e1260", "gateway_ha_index": 0, "public_ip_settings": { "ip_allocation_mode": "ALLOCATE_NEW" }, "uplink_public_ip_settings" : { "public_ip" : "104.210.53.56", "ip_allocation_mode" : "USE_EXISTING" } } ], "default_quarantine_policy_enabled": false, "managed_without_agents": false, "proxy_server_profile": "a491bc83-5fc8-4e05-adb1-af8274422141", "dns_settings": { "dns_mode": "DHCP", "dns_list": ["10.162.204.1", "10.166.1.1"] }, "nsx_manager_connection": "PUBLIC_IP", "ami_id": "ami-123", "key_pair_name": "test-key", "is_ha_enabled": false, "form_factor": "LARGE" }, "vpc_id": "vpc-c35dbaa4" } Required Permissions: crud Feature: gateway_deployment Additional Errors:

Undeploys gateway for the specified VPC

All the required configuration to undeploy AWS gateway will be absorbed
as a part of request body in this API and gateway undeployment will be
triggered. Undeployment progress can be known from GetAwsGatewayStatus
API. Upon successful undeployment of a gateway, the deployment_step will be
UNDEPLOYMENT_SUCCESSFUL and gateway_status will be NOT_AVAILABLE. If any
error is encountered during undeployment, corresponding error_code and
error_message will be populated in gateway_instances_status
Request:
Method:
POST
URI Path(s):
/api/v1/csm/aws/gateways?action=undeploy
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
AwsGatewayUndeployConfig+

Example Request: POST https://<nsx-csm>/api/v1/csm/aws/gateways?action=undeploy { "account_id": "d02af61a-e212-486e-b6c8-10462ccfbad6", "instance_id": "i-0c2ab8e25221bcf7c" } Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: gateway_deployment Additional Errors:

Cloud Service Manager: AWS Key Pairs

Associated URIs:

Returns a list of Aws Key Pairs

Request:
Method:
GET
URI Path(s):
/api/v1/csm/aws/key-pairs
Request Headers:
n/a
Query Parameters:
AwsKeyPairListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/aws/key-pairs? account_id=7324800c-a41a-4cb4-b988-51fa3d093397®ion_id=ap-southeast-1 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AwsKeyPairList+

Example Response: { "results": [ { "name": "test-key-1" }, { "name": "test-key-2" }, { "name": "test-key-3" } ] } Required Permissions: read Feature: cloud_resources Additional Errors:

Returns a list of subnets

Request:
Method:
GET
URI Path(s):
/api/v1/csm/aws/subnets
Request Headers:
n/a
Query Parameters:
AwsSubnetListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/aws/subnets? account_id=7324800c-a41a-4cb4-b988-51fa3d093397& vpc_id=vpc-c35dbaa4&availability_zone_name=us-west-2a Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AwsSubnetListResult+

Example Response: { "results": [ { "display_name": "test-subnet-3", "availability_zone": "us-west-2a", "cidr": "10.0.3.0/24", "id": "subnet-ea1e128e" }, { "display_name": "test-subnet-2", "availability_zone": "us-west-2a", "cidr": "10.0.2.0/24", "id": "subnet-041e1260" }, { "display_name": "test-subnet-1", "availability_zone": "us-west-2a", "cidr": "10.0.1.0/24", "id": "subnet-4b1e122f" } ] } Required Permissions: read Feature: cloud_resources Additional Errors:

Cloud Service Manager: AWS Regions

Associated URIs:

Returns a list of Aws regions

Request:
Method:
GET
URI Path(s):
/api/v1/csm/aws/regions
Request Headers:
n/a
Query Parameters:
AwsRegionsListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/aws/regions Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AwsRegionsListResult+

Example Response: { "cursor": "000214", "sort_ascending": true, "result_count": 2, "results": [ { "id": "us-west-2", "display_name": "us-west-2", "vpc_stats": { "managed": 5, "unmanaged": 7 }, "gateway_stats": { "deploying": 1, "up": 4, "down": 1 }, "availability_zones": [ { "id": "us-west-2a", "display_name": "us-west-2a" }, { "id": "us-west-2b", "display_name": "us-west-2b" }, { "id": "us-west-2c", "display_name": "us-west-2c" } ], "instance_stats": { "managed": 21, "unmanaged": 32, "error": 1 } }, { "id": "ap-south-1", "display_name": "ap-south-1", "vpc_stats": { "managed": 0, "unmanaged": 0 }, "gateway_stats": { "deploying": 0, "up": 0, "down": 0 }, "availability_zones": [ { "id": "ap-south-1b", "display_name": "ap-south-1b" }, { "id": "ap-south-1a", "display_name": "ap-south-1a" } ], "instance_stats": { "managed": 0, "unmanaged": 0, "error": 0 } } } ] } Required Permissions: read Feature: cloud_resources Additional Errors:

Returns information about the particular Aws Region

Request:
Method:
GET
URI Path(s):
/api/v1/csm/aws/regions/<region-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/aws/regions/us-west-2 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AwsRegion+

Example Response: { "id": "us-west-2", "display_name": "us-west-2", "vpc_stats": { "managed": 5, "unmanaged": 7 }, "gateway_stats": { "deploying": 1, "up": 4, "down": 1 }, "availability_zones": [ { "id": "us-west-2a", "display_name": "us-west-2a" }, { "id": "us-west-2b", "display_name": "us-west-2b" }, { "id": "us-west-2c", "display_name": "us-west-2c" } ], "instance_stats": { "managed": 21, "unmanaged": 32, "error": 1 } } Required Permissions: read Feature: cloud_resources Additional Errors:

Cloud Service Manager: AWS Resources

Associated URIs:

Returns a list of AWS public IPs

Returns a list of AWS public IPs. These ip addresses are available
to be allocated.
Request:
Method:
GET
URI Path(s):
/api/v1/csm/aws/public-ips
Request Headers:
n/a
Query Parameters:
AwsResourcesListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/aws/public-ips? account_id=7324800c-a41a-4cb4-b988-51fa3d093397®ion_id=us-west-2 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AwsPublicIpListResult+

Example Response: { "results": [ "104.209.46.64", "104.40.87.204", "40.112.184.178", "13.91.55.98" ] } Required Permissions: read Feature: cloud_resources Additional Errors:

Returns a list of AWS security groups. Deprecated: Please use /csm/aws/vpcs/<vpc-id>/security-groups instead. (Deprecated)

Returns a list of AWS security groups. Deprecated: Please use
/csm/aws/vpcs/<vpc-id>/security-groups instead.
Request:
Method:
GET
URI Path(s):
/api/v1/csm/aws/vpcs/security-groups
Request Headers:
n/a
Query Parameters:
AwsSecurityGroupsListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/aws/vpcs/security-groups? account_id=7324800c-a41a-4cb4-b988-51fa3d093397®ion_id=us-west-2 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AwsSecurityGroupsListResult+

Example Response: { "results": [ "default-sg", "quarantine-sg" ] } Required Permissions: read Feature: cloud_resources Additional Errors:

Cloud Service Manager: AWS VPCS

Associated URIs:

Returns the list of configuration of the compute VPC. The configuration contains quarantine policy and fall back security group of compute VPC and the information related to transit VPC.

Request:
Method:
GET
URI Path(s):
/api/v1/csm/aws/compute-vpcs
Request Headers:
n/a
Query Parameters:
AwsComputeVpcListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/aws/compute-vpcs { "cursor": "00011", "sort_ascending": true, "result_count": 1, "results": [ { "resource_type": "AwsComputeVpcConfig", "id": "vpc-0aabad6533afb42b4", "display_name": "vpc-0aabad6533afb42b4", "default_quarantine_policy_enabled": false, "managed_without_agents": false, "account_id": "fa043e3d-256d-446f-9c5c-665dcfdb33c9", "configuration": { "account_id": "fa043e3d-256d-446f-9c5c-665dcfdb33c9", "vpc_id": "vpc-560a242f" }, "_create_user": "system", "_create_time": 1540475272491, "_last_modified_user": "admin", "_last_modified_time": 1540475431491, "_system_owned": false, "_revision": 2 } ] } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AwsComputeVpcListResult+

Required Permissions: read Feature: gateway_deployment Additional Errors:

Returns the configuration of the compute VPC. The configuration contains quarantine policy and fall back security group of compute VPC and the information related to transit VPC.

Request:
Method:
GET
URI Path(s):
/api/v1/csm/aws/compute-vpcs/<vpc-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AwsComputeVpcConfig+

Example Response: GET https://<nsx-csm>/api/v1/csm/aws/vpcs/ { "resource_type": "AwsComputeVpcConfig", "id": "vpc-0aabad6533afb", "display_name": "vpc-0aabad6533afb", "default_quarantine_policy_enabled": false, "managed_without_agents": false, "configuration": { "vpc_id": "vpc-560a242f" }, "_create_user": "system", "_create_time": 1540475272491, "_last_modified_user": "admin", "_last_modified_time": 1540475431491, "_system_owned": false, "_revision": 2 } Required Permissions: read Feature: gateway_deployment Additional Errors:

Offboards a compute VPC.

Offboards a compute VPC to be NSX unmanaged from a transit VPC.
All the VMs in the compute VPC need to be untagged before offboarding
the compute VPC. Offboarding status can be obtained from
/csm/aws/compute-vpcs/<vpc-id>/status API. Upon successful offboarding
compute VPC, the onboard_step will be OFFBOARD_SUCCESSFUL
and op_status will be NOT_AVAILABLE. If any error is encountered
during offboarding, corresponding error_code and error_message
will be populated.
Request:
Method:
DELETE
URI Path(s):
/api/v1/csm/aws/compute-vpcs/<vpc-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: DELETE https://<nsx-csm>/api/v1/csm/aws/compute-vpcs/ Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
n/a

Required Permissions: crud Feature: gateway_deployment Additional Errors:

Updates the NSX configuration related to managed compute VPC using a transit VPC.

Update the configurations such as default_quarantine_policy and
cloud_fallback_security_group_id for the NSX managed compute VPC.
Request:
Method:
PUT
URI Path(s):
/api/v1/csm/aws/compute-vpcs/<vpc-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
AwsComputeVpcConfig+

Example Request: PUT https://<nsx-csm>/api/v1/csm/aws/compute-vpcs/ { "resource_type": "AwsComputeVpcConfig", "id": "vpc-0aabad6533afb", "display_name": "vpc-0aabad6533afb", "default_quarantine_policy_enabled": false, "account_id": "fa043e3d-256d-446f-9c5c-665dcfdb33c9", "configuration": { "account_id": "fa043e3d-256d-446f-9c5c-665dcfdb33c9", "vpc_id": "vpc-560a242f" }, "_create_user": "system", "_create_time": 1540475272491, "_last_modified_user": "admin", "_last_modified_time": 1540475431491, "_system_owned": false, "_revision": 2 } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AwsComputeVpcConfig+

Example Response: { "resource_type": "AwsComputeVpcConfig", "id": "vpc-0aabad6533afb42b4", "display_name": "vpc-0aabad6533afb42b4", "default_quarantine_policy_enabled": true, "managed_without_agents": false, "configuration": { "vpc_id": "vpc-560a242f" }, "_create_user": "system", "_create_time": 1540475272491, "_last_modified_user": "admin", "_last_modified_time": 1540475431491, "_system_owned": false, "_revision": 3 } Required Permissions: crud Feature: quarantine_policy Additional Errors:

Onboards a compute VPC to be NSX managed by a transit VPC.

Onboard a compute VPC to be NSX managed using a transit VPC.
Hence, user can manage the workload VMs in a compute
VPC by the public cloud gateways deployed in a transit VPC.
Onboarding status can be obtained from
/csm/aws/compute-vpcs/<vpc-id>/status API. Upon successful onboarding
of the VPC, the onboard_step will be ONBOARD_SUCCESSFUL and op_status
will be NSX_MANAGED_BY_TRANSIT_VPC. If any error is encountered during
onboarding, corresponding error_code and error_message will be populated.
To manage compute VPC using NSX gateway, user needs to offboard the
compute VPC and deploy gateway using /csm/aws/gateways?action=deploy API.
Request:
Method:
POST
URI Path(s):
/api/v1/csm/aws/compute-vpcs/<vpc-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
AwsComputeVpcConfig+

Example Request: POST https://<nsx-csm>/api/v1/csm/aws/compute-vpcs/ { "default_quarantine_policy_enabled": false, "managed_without_agents": false, "account_id": "fa043e3d-256d-446f-9c5c-665dcfdb33c9", "configuration": { "account_id": "fa043e3d-256d-446f-9c5c-665dcfdb33c9", "vpc_id": "vpc-560a242f" } } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
n/a

Required Permissions: crud Feature: gateway_deployment Additional Errors:

Returns the status of the compute vpc. The status corresponds to onboard or offboard status of a compute VPC.

Request:
Method:
GET
URI Path(s):
/api/v1/csm/aws/compute-vpcs/<vpc-id>/status
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/aws/compute-vpcs//status { "onboard_step": "ONBOARD_SUCCESSFUL", "virtual_private_cloud_name": "ComputeVPC-Peering", "status": "UP", "configuration": { "default_quarantine_policy_enabled": false, "managed_without_agents": false } } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AwsComputeVpcStatus+

Required Permissions: read Feature: gateway_deployment Additional Errors:

Returns a list of Vpcs. Support optional query parameters like account_id, region_id, cidr and/or op_status

Request:
Method:
GET
URI Path(s):
/api/v1/csm/aws/vpcs
Request Headers:
n/a
Query Parameters:
AwsVpcListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/aws/vpcs Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AwsVpcListResult+

Example Response: { "cursor": "0003147", "sort_ascending": true, "result_count": 3, "results": [ { "id": "vpc-c35dbaa2", "display_name": "VPC Abc", "is_management_vpc": false, "region_id": "us-east-1", "cidr": "172.31.0.0/16", "instance_stats": { "managed": 0, "unmanaged": 21, "error": 0 }, "op_status": "NSX_UNMANAGED" }, { "id": "vpc-c35dbaa3", "display_name": "VPC Acb", "is_management_vpc": false, "region_id": "us-west-2", "cidr": "172.31.0.0/16", "associated_transit_vpc": { "virtual_private_cloud_id": "vpc-c35dbade", "associated_account_ids: ["cd1f2633-e67e-46bd-b546"] }, "instance_stats": { "managed": 0, "unmanaged": 21, "error": 0 }, "op_status": "NSX_MANAGED_BY_TRANSIT_VPC" }, { "id": "vpc-c35dbaa4", "display_name": "VPC Def", "is_management_vpc": true, "transport_zones": [ { "is_underlay_transport_zone": false, "logical_switches": [ { "is_default_logical_switch": false, "instances_count": 0, "nsx_switch_tag": "cd1f2633-e67e-46bd-b546-0dc26a07c56b#8uNQpU1EWLcVjXKHr6ga7axvYBnf2Dwc+I+Js3DEhi4=", "logical_switch_display_name": "DefaultSwitch-Overlay-CSM-vpc-c35dbaa4", "logical_switch_id": "cd1f2633-e67e-46bd-b546-0dc26a07c56b" } ], "transport_zone_id": "d4ccc56a-ab51-4059-b3fb-9af3719b6f51", "transport_zone_display_name": "CSM-vpc-c35dbaa4-Overlay" }, { "is_underlay_transport_zone": true, "logical_switches": [ { "is_default_logical_switch": true, "instances_count": 0, "nsx_switch_tag": "default", "logical_switch_display_name": "DefaultSwitch-VLAN-CSM-vpc-c35dbaa4", "logical_switch_id": "1711f8db-95b8-4df8-bba6-dcac63b08b38" } ], "transport_zone_id": "870fb686-7d42-48c4-9189-8997b4f2df21", "transport_zone_display_name": "CSM-vpc-c35dbaa4-VLAN" } ], "region_id": "us-west-2", "cidr": "10.0.0.0/16", "instance_stats": { "managed": 1, "unmanaged": 4, "error": 0 }, "managed_vpcs": [ { "virtual_private_cloud_id": "vpc-c35dbade", "associated_account_ids: ["cd1f2633-e67e-46bd-b546"] }, { "virtual_private_cloud_id": "vpc-c35dbadf", "associated_account_ids: ["cd1f2633-e67e-46bd-b543"] } ], "op_status": "NSX_MANAGED", "gateway_info": { "configuration": { "default_quarantine_policy_enabled": false, "managed_without_agents": false, "proxy_server_profile":"a491bc83-5fc8-4e05-adb1-af8274422141", "nsx_manager_connection": "PUBLIC_IP", "ami_id": "ami-649e0b04", "is_ha_enabled": false, "form_factor": "LARGE" }, "gateway_status": { "gateway_cluster_id": "b8ab1a4b-3d85-4a84-b92d-eacdc4402528", "gateway_instances_status": [ { "gateway_tn_id": "ef900bfc-1303-11e7-8cf5-021fa9379409", "gateway_node_id": "ef900bfc-1303-11e7-8cf5-021fa9379409", "gateway_status": "UP", "gateway_instance_id": "i-0b62834659a30fc21", "gateway_ha_index": 0, "deployment_state": "DEPLOYMENT_SUCCESSFUL", "gateway_name": "nsx-gw-vpc-c35dbaa4-preferred-active" } ] } } } ] } Required Permissions: read Feature: cloud_resources Additional Errors:

Returns Vpc information

Request:
Method:
GET
URI Path(s):
/api/v1/csm/aws/vpcs/<vpc-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/aws/vpcs/vpc-ccfe44ab Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AwsVpc+

Example Response: { "id": "vpc-ccfe44ab", "display_name": "VPC Abc, "is_management_vpc": false, "region_id": "us-west-2", "cidr": "50.0.0.0/16", "instance_stats": { "managed": 0, "unmanaged": 1, "error": 0 }, "op_status": "NSX_UNMANAGED" } Required Permissions: read Feature: cloud_resources Additional Errors:

Cloud Service Manager: AWS: VPCS

Cloud Service Manager: AWS: VPCS: Security Groups

Associated URIs:

Returns a list of AWS security groups corresponding to a VPC

Returns a list of AWS security groups corresponding to a VPC with
information about each security group like inbound rules, outbound rules
and cloud_tags.
Request:
Method:
GET
URI Path(s):
/api/v1/csm/aws/vpcs/<vpc-id>/security-groups
Request Headers:
n/a
Query Parameters:
SecurityGroupListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/aws/vpcs//security-groups Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AwsSecurityGroupsListResult+

Required Permissions: read Feature: cloud_resources Additional Errors:

Returns information about a particular AWS security group

Returns information about AWS security group like inbound rules,
outbound rules and cloud_tags.
Request:
Method:
GET
URI Path(s):
/api/v1/csm/aws/vpcs/<vpc-id>/security-groups/<security-group-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/aws/vpcs//security-groups/ Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AwsSecurityGroup+

Required Permissions: read Feature: cloud_resources Additional Errors:

Cloud Service Manager: AWS: VPCS: Service Endpoints

Associated URIs:

Returns list of AWS serivce endpoints corresponding to a VPC

Returns a list of AWS serivce endpoints corresponding to VPC. NSX supported
services are currently limited to Simple Storage Service (S3), Relational
Database Service (RDS), DynamoDB and Elastic Load Balancing.
Request:
Method:
GET
URI Path(s):
/api/v1/csm/aws/vpcs/<vpc-id>/service-endpoints
Request Headers:
n/a
Query Parameters:
ListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/aws/vpcs//service-endpoints Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AwsServiceEndpointsListResult+

Required Permissions: read Feature: cloud_resources Additional Errors:

Returns information about a particular AWS serivce endpoint

Returns information about an AWS serivce endpoint like
service_endpoint_type, status and corresponding cidrs. NSX supported
services are currently limited to Simple Storage Service (S3),
Relational Database Service (RDS), DynamoDB and Elastic Load Balancing.
Request:
Method:
GET
URI Path(s):
/api/v1/csm/aws/vpcs/<vpc-id>/service-endpoints/<service-endpoint-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/aws/vpcs//service-endpoints/ Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AwsServiceEndpoint+

Required Permissions: read Feature: cloud_resources Additional Errors:

Cloud Service Manager: Accounts Statistics

Associated URIs:

Returns statistics for all Accounts

Returns statistics aggregated over all accounts managed by CSM.
Request:
Method:
GET
URI Path(s):
/api/v1/csm/accounts/statistics
Request Headers:
n/a
Query Parameters:
AllAccountsStatisticsRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/accounts/statistics Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AllAccountsStatisticsListResult+

Example Response: { "results": [ { "resource_type": "AWS", "accounts_count": 3, "accounts_status": { "sync_in_progress": 1 }, "instance_stats": { "managed": 63, "unmanaged": 25, "error": 1 }, "vpc_stats": { "managed": 4, "unmanaged": 7 }, "regions_count": 4 }, { "resource_type": "AZURE", "accounts_count": 2, "accounts_status": { "sync_in_progress": 1 }, "instance_stats": { "managed": 42, "unmanaged": 25, "error": 3 }, "vnet_stats": { "managed": 2, "unmanaged": 1 }, "regions_count": 5 } ] } Required Permissions: read Feature: cloud_accounts Additional Errors:

Cloud Service Manager: Azure Accounts

Associated URIs:

Add a Azure account to cloud serivce manager

This api adds a Azure account to cloud service manager. Have to pass
one of the authorization methods in auth_method property as part of
request body followed by appropriate data.
Request:
Method:
POST
URI Path(s):
/api/v1/csm/azure/accounts
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
AzureAccount+

Example Request: POST https://<nsx-csm>/api/v1/csm/azure/accounts { "cloud_type":"AZURE", "regions_count":"", "auth_method":"CREDENTIALS", "display_name": "Account ABC", "credentials":{ "client_id":"789", "key":"012", "subscription_id":"456", "tenant_id":"123", "gateway_role": "NSX role" }, "_revision":0 } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AzureAccount+

Example Response: { "id": "9174ffd1-41b1-42d6-a28d", "display_name": "Account ABC", "tenant_id": "123", "cloud_type": "AZURE", "cloud_tags_enabled": true, "instance_stats": { "total": 92, "managed": 0, "unmanaged": 82, "error": 0, "powered_off": 10 }, "auth_method": "CREDENTIALS", "credentials": { "tenant_id": "123", "subscription_id": "456", "client_id": "789", "gateway_role": "NSX role" }, "vnet_stats": { "managed": 1, "unmanaged": 42 }, "regions_count": 2, "status": { "inventory_sync_status": "IN_PROGRESS", "credentials_status": "VALID", "inventory_sync_step": "SYNCING_VMS" }, "_protection": "NOT_PROTECTED" } Required Permissions: crud Feature: cloud_accounts Additional Errors:

Returns a list of Azure accounts

Returns a list of Azure accounts with information about each account like
status and statistics. Optional query parameters can be utilized to filter
the list.
Request:
Method:
GET
URI Path(s):
/api/v1/csm/azure/accounts
Request Headers:
n/a
Query Parameters:
AzureAccountsListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/azure/accounts Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AzureAccountsListResult+

Example Response: { "cursor" : "00011", "sort_ascending" : true, "result_count" : 1, "results" : [ { "id" : "28984eef-d296-4a40-979e", "display_name" : "Account ABC", "tenant_id" : "123", "cloud_type" : "AZURE", "cloud_tags_enabled" : true, "instance_stats" : { "total" : 92, "managed" : 0, "unmanaged" : 82, "error" : 0, "powered_off" : 10 }, "auth_method" : "CREDENTIALS", "credentials" : { "tenant_id" : "123", "subscription_id" : "456", "client_id" : "789", "gateway_role": "NSX role" }, "vnet_stats" : { "managed" : 1, "unmanaged" : 42 }, "regions_count" : 2, "status" : { "inventory_sync_status" : "SYNCED", "credentials_status" : "VALID", "inventory_sync_step" : "NOT_APPLICABLE" }, "_protection": "NOT_PROTECTED" } ] } Required Permissions: read Feature: cloud_accounts Additional Errors:

Update a Azure account information

This api updates a Azure account which is added to cloud service manager.
Have to pass one of the authorization methods in auth_method property as part of
request body followed by appropriate data.
Request:
Method:
PUT
URI Path(s):
/api/v1/csm/azure/accounts/<account-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
AzureAccount+

Example Request: PUT https://<nsx-csm>/api/v1/csm/azure/accounts/9174ffd1-41b1-42d6-a28d { "cloud_type":"AZURE", "display_name": "Account XYZ" } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AzureAccount+

Example Response: { "id": "9174ffd1-41b1-42d6-a28d", "display_name": "Account XYZ", "tenant_id": "123", "cloud_type": "AZURE", "cloud_tags_enabled": true, "instance_stats": { "total": 92, "managed": 0, "unmanaged": 82, "error": 0, "powered_off": 10 }, "auth_method": "CREDENTIALS", "credentials": { "tenant_id": "123", "subscription_id": "456", "client_id": "789", "gateway_role": "NSX role" }, "vnet_stats": { "managed": 1, "unmanaged": 42 }, "regions_count": 2, "status": { "inventory_sync_status": "IN_PROGRESS", "credentials_status": "VALID", "inventory_sync_step": "SYNCING_VMS" }, "_protection": "NOT_PROTECTED" } Required Permissions: crud Feature: cloud_accounts Additional Errors:

Delete Azure account information

Deletes Azure account information from cloud service manager Request:
Method:
DELETE
URI Path(s):
/api/v1/csm/azure/accounts/<account-id>
Request Headers:
n/a
Query Parameters:
DeleteRequestParameters+
Request Body:
n/a

Example Request: DELETE https://<nsx-csm>/api/v1/csm/azure/accounts/ DELETE https://<nsx-csm>/api/v1/csm/azure/accounts/?force=true Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: cloud_accounts Additional Errors:

Returns information about a particular Azure account

Returns information about an Azure account including status and
statistics
Request:
Method:
GET
URI Path(s):
/api/v1/csm/azure/accounts/<account-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/azure/accounts/9174ffd1-41b1-42d6-a28d Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AzureAccount+

Example Response: { "id": "9174ffd1-41b1-42d6-a28d", "display_name": "Account ABC", "tenant_id": "123", "cloud_type": "AZURE", "cloud_tags_enabled": true, "instance_stats": { "total": 92, "managed": 0, "unmanaged": 82, "error": 0, "powered_off": 10 }, "auth_method": "CREDENTIALS", "credentials": { "tenant_id": "123", "subscription_id": "456", "client_id": "789", "gateway_role": "NSX role" }, "vnet_stats": { "managed": 1, "unmanaged": 42 }, "regions_count": 2, "status": { "inventory_sync_status": "IN_PROGRESS", "credentials_status": "VALID", "inventory_sync_step": "SYNCING_VMS" }, "_protection": "NOT_PROTECTED" } Required Permissions: read Feature: cloud_accounts Additional Errors:

Updates the list of desired regions for a particular Azure account

Request:
Method:
PUT
URI Path(s):
/api/v1/csm/azure/accounts/<account-id>/desired-regions
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
RegionListConfig+

Example Request: PUT https://<nsx-csm>/api/v1/csm/azure/accounts/9174ffd1-41b1-42d6-a28d-05c61a0698e2/desired-regions { "regions": [ { "id": "westus", "display_name": "westus", "enabled": true, }, { "id": "eastus2", "display_name": "eastus2", "enabled": false, } ] } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
RegionListConfig+

Example Response: { "regions": [ { "id": "westus", "display_name": "westus", "enabled": true, }, { "id": "eastus2", "display_name": "eastus2", "enabled": false, } ] } Required Permissions: crud Feature: cloud_accounts Additional Errors:

Returns a list of desired regions for a particular Azure account

Request:
Method:
GET
URI Path(s):
/api/v1/csm/azure/accounts/<account-id>/desired-regions
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/azure/accounts/9174ffd1-41b1-42d6-a28d-05c61a0698e2/desired-regions Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
RegionListConfig+

Example Response: { "regions": [ { "id": "westus", "display_name": "westus", "enabled": true, }, { "id": "eastus2", "display_name": "eastus2", "enabled": true, } ] } Required Permissions: read Feature: cloud_accounts Additional Errors:

Returns the status of Azure account

Return status of the account like credentials validity, inventory
synchronization status and inventory synchronization state
Request:
Method:
GET
URI Path(s):
/api/v1/csm/azure/accounts/<account-id>/status
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/azure/accounts/9174ffd1-41b1-42d6-a28d/status Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AzureAccountStatus+

Example Response: { "inventory_sync_status": "SYNCED", "credentials_status": "VALID", "inventory_sync_step": "NOT_APPLICABLE" } Required Permissions: read Feature: cloud_accounts Additional Errors:

Synchronizes Azure account inventory

Synchronizes Azure account related inventory like Regions, Virtual Networks,
Instances. Status of inventory synchronization can be known from Azure
account status api
Request:
Method:
POST
URI Path(s):
/api/v1/csm/azure/accounts/<account-id>?action=sync_inventory
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: POST https://<nsx-csm>/api/v1/csm/azure/accounts/9174ffd1-41b1-42d6-a28d?action=sync_inventory Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: cloud_accounts Additional Errors:

Cloud Service Manager: Azure Gateways

Associated URIs:

Returns configuration information for all Azure gateways

Returns a list of Azure gateways with information about each gateway like
subnet configuration and corresponding virtual network. Optional query
parameters can be utilized to filter the list.
Request:
Method:
GET
URI Path(s):
/api/v1/csm/azure/gateways
Request Headers:
n/a
Query Parameters:
AzureGatewaysListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/azure/gateways Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AzureGatewaysListResult+

Example Response: { "results": [ { "configuration": { "default_quarantine_policy_enabled": false, "managed_without_agents": false, "proxy_server_profile": "a491bc83-5fc8-4e05-adb1-af8274422141", "nsx_manager_connection": "PRIVATE_IP", "is_ha_enabled": false, "form_factor": "LARGE", "gateway_ha_configuration": [], "dns_settings": { "dns_mode": "DHCP" }, "ssh_key": "ssh-rsa +SD2/sC/qQXtRj1fVShsolTrLtT5uIRWV3P+4fG2PNR6Wz0/QagHG/+jK8Acw== [email protected]", "image_id": "https://abcxyz.windows.net/public-cloud-gateway/nsx-public-gateway.vhd" }, "vnet_id": "e8e719ff-6a40-48e2-8cf7" } ] } Required Permissions: read Feature: gateway_deployment Additional Errors:

Updates Azure gateway configuration

Updates configuration for primary gateway and secondary gateway for the
virutal network, if deployed gateways exist for the specified virtual network.
Request:
Method:
PUT
URI Path(s):
/api/v1/csm/azure/gateways/<vnet-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
AzureGatewayDeployConfig+

Example Request: PUT https://<nsx-csm>/api/v1/csm/azure/gateways/e8e719ff-6a40-48e2-8cf7 { "account_id": "28984eef-d296-4a40-979e", "vnet_id": "e8e719ff-6a40-48e2-8cf7", "configuration": { "default_quarantine_policy_enabled": false, "managed_without_agents": false, "proxy_server_profile": "a491bc83-5fc8-4e05-adb1-af8274422141", "auto_agent_install_enabled": false } } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AzureGatewayDeployConfig+

Example Response: { "account_id": "28984eef-d296-4a40-979e", "configuration": { "default_quarantine_policy_enabled": false, "managed_without_agents": false, "proxy_server_profile": "a491bc83-5fc8-4e05-adb1-af8274422141", "nsx_manager_connection": "PRIVATE_IP", "is_ha_enabled": false, "form_factor": "LARGE", "gateway_ha_configuration": [], "dns_settings": { "dns_mode": "DHCP" }, "ssh_key": "ssh-rsa +SD2/sC/qQXtRj1fVShsolTrLtT5uIRWV3P+4fG2PNR6Wz0/QagHG/+jK8Acw== [email protected]", "image_id": "https://abcxyz.windows.net/public-cloud-gateway/nsx-public-gateway.vhd", "auto_agent_install_enabled": false }, "vnet_id": "e8e719ff-6a40-48e2-8cf7" } Required Permissions: crud Feature: quarantine_policy Additional Errors:

Returns configuration of the Azure gateway

Returns configuration for primary gateway and secondary gateway for the
virtual network, if deployed gateways exist for the specified virtual
network.
Request:
Method:
GET
URI Path(s):
/api/v1/csm/azure/gateways/<vnet-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/azure/gateways/e8e719ff-6a40-48e2-8cf7 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AzureGatewayDeployConfig+

Example Response: { "account_id": "28984eef-d296-4a40-979e", "configuration": { "default_quarantine_policy_enabled": false, "managed_without_agents": false, "proxy_server_profile": "a491bc83-5fc8-4e05-adb1-af8274422141", "nsx_manager_connection": "PRIVATE_IP", "is_ha_enabled": false, "form_factor": "LARGE", "gateway_ha_configuration": [], "dns_settings": { "dns_mode": "DHCP" }, "ssh_key": "ssh-rsa +SD2/sC/qQXtRj1fVShsolTrLtT5uIRWV3P+4fG2PNR6Wz0/QagHG/+jK8Acw== [email protected]", "image_id": "https://abcxyz.windows.net/public-cloud-gateway/nsx-public-gateway.vhd" }, "vnet_id": "e8e719ff-6a40-48e2-8cf7" } Required Permissions: read Feature: gateway_deployment Additional Errors:

Return the status of Azure gateway

Returns status information for primary gateway and secondary gateway
for the virtual network, if deployed gateways exist for the specified
virtual network ID.
Request:
Method:
GET
URI Path(s):
/api/v1/csm/azure/gateways/<vnet-id>/status
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/azure/gateways/e8e719ff-6a40-48e2-8cf7/status Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AzureGatewayStatus+

Example Response: { "gateway_cluster_id": "7fe9e2fd-2dce-478f-84b4", "gateway_instances_status": [ { "gateway_tn_id": "1c95f5ea-1eec-11e8-9342", "deployment_step": "DEPLOYMENT_SUCCESSFUL", "public_ip": "1.2.3.4", "gateway_node_id": "1c95f5ea-1eec-11e8-9342", "gateway_status": "UP", "gateway_instance_id": "a61b6dea-46a4-4c09-9ada", "private_ip": "4.3.2.1", "gateway_ha_index": 0, "is_gateway_active": false, "gateway_name": "nsx-gw-customer-gateway" } ] } Required Permissions: read Feature: gateway_deployment Additional Errors:

Deploys gateway for the specified virtual network

All the required configuration to deploy Azure gateways will be absorbed
as a part of request body in this API and gateway deployment will be
triggered. Deployment progress can be known from GetAzureGatewayStatus API.
Upon successful deployment of a gateway, the deployment_step will be
DEPLOYMENT_SUCCESSFUL gateway_status will be UP and op_status of the VNET
will be NSX_MANAGED_BY_GATEWAY. If any error is encountered during
deployment, corresponding error_code and error_message will be populated
in gateway_instances_status. To manage a compute VNET using transit VNET,
user needs to undeploy gateway and onboard the compute VNET
using /csm/azure/vnets/<vnet-id>?action=onboard API.
Request:
Method:
POST
URI Path(s):
/api/v1/csm/azure/gateways?action=deploy
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
AzureGatewayDeployConfig+

Example Request: POST https://<nsx-csm>/api/v1/csm/azure/gateways?action=deploy { "account_id": "04e2a29a-90f9-4ce0-ae69", "vnet_id": "e8e719ff-6a40-48e2-8cf7", "configuration": { "image_id": "https://abcxyz.windows.net/public-cloud-gateway/nsx-public-gateway.vhd", "default_quarantine_policy_enabled": true, "managed_without_agents": false, "proxy_server_profile":"a491bc83-5fc8-4e05-adb1-af8274422141", "nsx_manager_connection": "PRIVATE_IP", "is_ha_enabled": true, "form_factor": "LARGE", "ssh_key": "ssh-rsa +SD2/sC/qQXtRj1fVShsolTrLtT5uIRWV3P+4fG2PNR6Wz0/QagHG/+jK8Acw== [email protected]", "gateway_ha_configuration": [ { "uplink_subnet": "uplink1", "management_subnet": "Mgmt", "downlink_subnet": "vtep1", "gateway_ha_index": 0, "private_ip_settings": { "ip_allocation_mode": "ALLOCATE_NEW" }, "public_ip_settings": { "ip_allocation_mode": "ALLOCATE_NEW" }, "uplink_public_ip_settings" : { "public_ip" : "104.210.53.56", "ip_allocation_mode" : "USE_EXISTING" } }, { "uplink_subnet": "uplink2", "management_subnet": "Mgmt", "downlink_subnet": "vtep2", "gateway_ha_index": 1, "private_ip_settings": { "ip_allocation_mode": "ALLOCATE_NEW" }, "public_ip_settings": { "ip_allocation_mode": "ALLOCATE_NEW" }, "uplink_public_ip_settings" : { "public_ip" : "104.210.53.57", "ip_allocation_mode" : "USE_EXISTING" } } ], "dns_settings": { "dns_mode": "DHCP", "dns_list": ["10.162.204.1", "10.166.1.1"] } } } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AzureGatewayDeployConfig+

Example Response: { "account_id": "28984eef-d296-4a40-979e", "configuration": { "image_id": "https://abcxyz.windows.net/public-cloud-gateway/nsx-public-gateway.vhd", "default_quarantine_policy_enabled": true, "managed_without_agents": false, "proxy_server_profile": "a491bc83-5fc8-4e05-adb1-af8274422141", "nsx_manager_connection": "PRIVATE_IP", "is_ha_enabled": true, "form_factor": "LARGE", "ssh_key": "ssh-rsa +SD2/sC/qQXtRj1fVShsolTrLtT5uIRWV3P+4fG2PNR6Wz0/QagHG/+jK8Acw== [email protected]", "gateway_ha_configuration": [ { "uplink_subnet": "uplink1", "management_subnet": "Mgmt", "downlink_subnet": "vtep1", "gateway_ha_index": 0, "private_ip_settings": { "ip_allocation_mode": "ALLOCATE_NEW" }, "public_ip_settings": { "ip_allocation_mode": "ALLOCATE_NEW" }, "uplink_public_ip_settings" : { "public_ip" : "104.210.53.56", "ip_allocation_mode" : "USE_EXISTING" } }, { "uplink_subnet": "uplink2", "management_subnet": "Mgmt", "downlink_subnet": "vtep2", "gateway_ha_index": 1, "private_ip_settings": { "ip_allocation_mode": "ALLOCATE_NEW" }, "public_ip_settings": { "ip_allocation_mode": "ALLOCATE_NEW" }, "uplink_public_ip_settings" : { "public_ip" : "104.210.53.57", "ip_allocation_mode" : "USE_EXISTING" } } ], "dns_settings": { "dns_mode": "DHCP", "dns_list": ["10.162.204.1", "10.166.1.1"] } }, "vnet_id": "e8e719ff-6a40-48e2-8cf7" } Required Permissions: crud Feature: gateway_deployment Additional Errors:

Undeploys gateway for the specified virtual network

All the required configuration to undeploy Azure gateway will be absorbed
as a part of request body in this API and gateway undeployment will be
triggered. Undeployment progress can be known from GetAzureGatewayStatus
API. Upon successful undeployment of a gateway, the deployment_step will be
UNDEPLOYMENT_SUCCESSFUL and gateway_status will be NOT_AVAILABLE. If any
error is encountered during undeployment, corresponding error_code and
error_message will be populated in gateway_instances_status
Request:
Method:
POST
URI Path(s):
/api/v1/csm/azure/gateways?action=undeploy
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
AzureGatewayUndeployConfig+

Example Request: POST https://<nsx-csm>/api/v1/csm/azure/gateways?action=undeploy { "account_id": "28984eef-d296-4a40-979e", "instance_id": "a61b6dea-46a4-4c09-9ada" } Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: gateway_deployment Additional Errors:

Cloud Service Manager: Azure IP Allocations

Associated URIs:

Allocates IPs in the specified Azure Vnet

All the required configuration to allocate public/link local IPs for cloud
will be absorbed as a part of request body in this API and IP allocation
will be triggered. Allocation progress can be known from
GetIpAllocationStatus API. Upon successful allocation, the
ip_allocation_state will be ALLOCATION_SUCCESSFUL. This operation is only
supported for containers.
Request:
Method:
POST
URI Path(s):
/api/v1/csm/azure/gateways/ip-mappings
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
AzureIpAllocationConfig+

Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AzureIpAllocationMappings+

Required Permissions: crud Feature: cloud_resources Additional Errors:

Returns IP allocations for all Azure Vnets. This operation is only supported for containers.

Request:
Method:
GET
URI Path(s):
/api/v1/csm/azure/gateways/ip-mappings
Request Headers:
n/a
Query Parameters:
AzureIpMappingsListRequestParameters+
Request Body:
n/a

Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AzureIpMappingsListResult+

Required Permissions: read Feature: cloud_resources Additional Errors:

Releases allocated IPs in the specified Azure Vnet

All the allocations for the specified Azure Vnet and mapping_id will be
released. This operation is only supported for containers.
Request:
Method:
DELETE
URI Path(s):
/api/v1/csm/azure/gateways/ip-mappings/<mapping-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: cloud_resources Additional Errors:

Returns status information for primary gateway and secondary gateway for the vnet, if exists. This operation is only supported for containers.

Request:
Method:
GET
URI Path(s):
/api/v1/csm/azure/gateways/ip-mappings/<mapping-id>/status
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AzureIpAllocationMappings+

Required Permissions: read Feature: cloud_resources Additional Errors:

Cloud Service Manager: Azure Regions

Associated URIs:

Returns a list of Azure regions

Returns a list of Azure regions with information about each region like
gateway statistics, instance statistics and vnet statistics. Optional query
parameters can be utilized to filter the list.
Request:
Method:
GET
URI Path(s):
/api/v1/csm/azure/regions
Request Headers:
n/a
Query Parameters:
AzureRegionsListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/azure/regions Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AzureRegionsListResult+

Example Response: { "cursor": "000002", "sort_ascending": true, "result_count": 2, "results": [ { "resource_type": "AzureRegion", "id": "westus", "display_name": "westus", "associated_account_ids": [ "28984eef-d296-4a40-979e" ], "vnet_stats": { "managed": 1, "unmanaged": 10 }, "gateway_stats": { "deploying": 0, "up": 1, "down": 0 }, "instance_stats": { "total": 17, "managed": 0, "unmanaged": 8, "error": 0, "powered_off": 9 }, "has_managed_vnet": true, "_protection": "NOT_PROTECTED" }, { "resource_type": "AzureRegion", "id": "eastus2", "display_name": "eastus2", "associated_account_ids": [], "vnet_stats": { "managed": 0, "unmanaged": 0 }, "gateway_stats": { "deploying": 0, "up": 0, "down": 0 }, "instance_stats": { "total": 0, "managed": 0, "unmanaged": 0, "error": 0, "powered_off": 0 }, "_protection": "NOT_PROTECTED" } ] } Required Permissions: read Feature: cloud_resources Additional Errors:

Returns information about a particular Azure region

Returns information about Azure region like gateway statistics, instance
statistics and vnet statistics.
Request:
Method:
GET
URI Path(s):
/api/v1/csm/azure/regions/<region-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/azure/regions/westus Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AzureRegion+

Example Response: { "resource_type": "AzureRegion", "id": "westus", "display_name": "westus", "associated_account_ids": [ "28984eef-d296-4a40-979e" ], "vnet_stats": { "managed": 1, "unmanaged": 10 }, "gateway_stats": { "deploying": 0, "up": 1, "down": 0 }, "instance_stats": { "total": 17, "managed": 0, "unmanaged": 8, "error": 0, "powered_off": 9 }, "has_managed_vnet": true, "_protection": "NOT_PROTECTED" } Required Permissions: read Feature: cloud_resources Additional Errors:

Cloud Service Manager: Azure Resources

Associated URIs:

Returns a list of Azure public IPs

Returns a list of Azure public IPs. These ip addresses are available
to be allocated.
Request:
Method:
GET
URI Path(s):
/api/v1/csm/azure/public-ips
Request Headers:
n/a
Query Parameters:
AzurePublicIpListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/azure/public-ips? account_id=7324800c-a41a-4cb4-b988-51fa3d093397®ion_id=westus Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AzurePublicIpListResult+

Example Response: { "results": [ "104.209.46.64", "104.40.87.204", "40.112.184.178", "13.91.55.98" ] } Required Permissions: read Feature: cloud_resources Additional Errors:

Returns a list of Azure security groups

Returns a list of Azure security groups.
Request:
Method:
GET
URI Path(s):
/api/v1/csm/azure/resource-groups
Request Headers:
n/a
Query Parameters:
AzureResourcesListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/azure/resource-groups? account_id=7324800c-a41a-4cb4-b988-51fa3d093397 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AzureResourceGroupsListResult+

Example Response: { "results": [ "RG-1", "RG-2" ] } Required Permissions: read Feature: cloud_resources Additional Errors:

Returns a list of Azure Storage Accounts

Request:
Method:
GET
URI Path(s):
/api/v1/csm/azure/storage-accounts
Request Headers:
n/a
Query Parameters:
AzureStorageAccountsListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/azure/storage-accounts? account_id=7324800c-a41a-4cb4-b988®ion_id=westus Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AzureStorageAccountList+

Example Response: { "results": [ { "name": "storage-account-1" }, { "name": "storage-account-2" }, { "name": "storage-account-3" } ] } Required Permissions: read Feature: cloud_resources Additional Errors:

Returns a list of Azure subnets

Returns a list Azure subnets with information about each subnet like ID,
virtual network ID and address space
Request:
Method:
GET
URI Path(s):
/api/v1/csm/azure/subnets
Request Headers:
n/a
Query Parameters:
AzureSubnetListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/azure/subnets? account_id=7324800c-a41a-4cb4-b988&vnet_id=3054a504-4c09-4df7-8420 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AzureSubnetListResult+

Example Response: { "results": [ { "display_name": "vtep1", "address_space": "172.20.10.0/24", "vnet_id": "3054a504-4c09-4df7-8420", "id": "/subscriptions/1234567890/resourceGroups/NSX-Vnet-3-RG/providers/Microsoft.Network/virtualNetworks/NSX-Vnet-3/subnets/vtep1" }, { "display_name": "vtep2", "address_space": "172.20.11.0/24", "vnet_id": "3054a504-4c09-4df7-8420", "id": "/subscriptions/1234567890/resourceGroups/NSX-Vnet-3-RG/providers/Microsoft.Network/virtualNetworks/NSX-Vnet-3/subnets/vtep2" } ] } Required Permissions: read Feature: cloud_resources Additional Errors:

Cloud Service Manager: Azure Vnets

Associated URIs:

Returns the configuration of the compute VNet. The configuration contains quarantine policy and fall back security group of compute VNet and the information related to transit VNet.

Request:
Method:
GET
URI Path(s):
/api/v1/csm/azure/compute-vnets
Request Headers:
n/a
Query Parameters:
AzureComputeVNetListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/azure/compute-vnets { "cursor": "00011", "sort_ascending": true, "result_count": 1, "results": [ { "resource_type": "AzureComputeVNetConfig", "id": "41e9e760-1c60-4b35-89c2", "display_name": "41e9e760-1c60-4b35-89c2", "default_quarantine_policy_enabled": false, "managed_without_agents": false, "account_id": "fa043e3d-256d-446f-9c5c-665dcfdb33c9", "configuration": { "account_id": "fa043e3d-256d-446f-9c5c-665dcfdb33c9", "vnet_id": "41e9e760-1c60-4b35-89" }, "_create_user": "system", "_create_time": 1540475272491, "_last_modified_user": "admin", "_last_modified_time": 1540475431491, "_system_owned": false, "_revision": 2 } ] } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AzureComputeVNetListResult+

Required Permissions: read Feature: gateway_deployment Additional Errors:

Updates the NSX configuration related to managed compute VNET using a transit VNET.

Update the configurations such as default_quarantine_policy,
cloud_fallback_security_group_id and auto_agent_install_enabled
for the NSX managed compute VNET.
Request:
Method:
PUT
URI Path(s):
/api/v1/csm/azure/compute-vnets/<vnet-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
AzureComputeVNetConfig+

Example Request: PUT https://<nsx-csm>/api/v1/csm/azure/compute-vnets/ { "resource_type": "AzureComputeVNetConfig", "id": "41e9e760-1c60-4b35-89c2", "display_name": "41e9e760-1c60-4b35-89c2", "default_quarantine_policy_enabled": false, "managed_without_agents": false, "configuration": { "vnet_id": "41e9e760-1c60-4b35-89d4" }, "_create_user": "system", "_create_time": 1540475272491, "_last_modified_user": "admin", "_last_modified_time": 1540475431491, "_system_owned": false, "_revision": 2 } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AzureComputeVNetConfig+

Example Response: { "resource_type": "AzureComputeVNetConfig", "id": "41e9e760-1c60-4b35-89c2", "display_name": "41e9e760-1c60-4b35-89c2", "default_quarantine_policy_enabled": false, "managed_without_agents": false, "account_id": "fa043e3d-256d-446f-9c5c-665dcfdb33c9", "configuration": { "account_id": "fa043e3d-256d-446f-9c5c-665dcfdb33c9", "vnet_id": "41e9e760-1c60-4b35-89d4" }, "_create_user": "system", "_create_time": 1540475272491, "_last_modified_user": "admin", "_last_modified_time": 1540475431491, "_system_owned": false, "_revision": 3 } Required Permissions: crud Feature: quarantine_policy Additional Errors:

Returns the configuration of the compute VNet. The configuration contains quarantine policy and fall back security group of compute VNet and the information related to transit VNet.

Request:
Method:
GET
URI Path(s):
/api/v1/csm/azure/compute-vnets/<vnet-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AzureComputeVNetConfig+

Example Response: GET https://<nsx-csm>/api/v1/csm/azure/compute-vnets/ { "resource_type": "AzureComputeVNetConfig", "id": "41e9e760-1c60-4b35-89c2", "display_name": "41e9e760-1c60-4b35-89c2", "default_quarantine_policy_enabled": false, "managed_without_agents": false, "configuration": { "vnet_id": "41e9e760-1c60-4b35-89d4" }, "_create_user": "system", "_create_time": 1540475272491, "_last_modified_user": "admin", "_last_modified_time": 1540475431491, "_system_owned": false, "_revision": 2 } Required Permissions: read Feature: gateway_deployment Additional Errors:

Onboards a compute VNet to be NSX managed by a transit VNet.

Onboard a compute VNet to be NSX managed using a transit VNet.
Hence, the public cloud gateways deployed in a transit VNet can
manage the workload VMs in a computeVNet.
Onboarding status can be obtained from
/csm/azure/compute-vnets/<vnet-id>/status API.
Upon successful onboarding of the VNet, the onboard_step will be
ONBOARD_SUCCESSFUL and op_status will be NSX_MANAGED_BY_TRANSIT_VNet.
If any error is encountered during onboarding, corresponding error_code
and error_message will be populated. To manage compute VNet using
NSX gateway, offboard the compute VNet and deploy gateway
using /csm/azure/gateways?action=deploy API.
Request:
Method:
POST
URI Path(s):
/api/v1/csm/azure/compute-vnets/<vnet-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
AzureComputeVNetConfig+

Example Request: POST https://<nsx-csm>/api/v1/csm/azure/compute-vnets/ { "configuration": { "account_id": "d02af61a-e212-486e-b6c8-10462ccfbad6", "vnet_id": "41e9e760-1c60-4b35-89c2" }, "account_id": "d02af61a-e212-486e-b6c8-10462ccfbad6" } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
n/a

Required Permissions: crud Feature: gateway_deployment Additional Errors:

Offboards a compute VNet.

Offboards a compute VNet to be NSX unmanaged from a transit VNet.
All the VMs in the compute VNet need to be untagged before offboarding
the compute VNet. Offboarding status can be obtained from
/csm/azure/compute-vnets/<vnet-id>/status API. Upon successful offboarding
compute VNet, the onboard_step will be OFFBOARD_SUCCESSFUL
and op_status will be NOT_AVAILABLE. If any error is encountered
during offboarding, corresponding error_code and error_message
will be populated.
Request:
Method:
DELETE
URI Path(s):
/api/v1/csm/azure/compute-vnets/<vnet-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: DELETE https://<nsx-csm>/api/v1/csm/azure/compute-vnets/ Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
n/a

Required Permissions: crud Feature: gateway_deployment Additional Errors:

Returns the status of the compute VNet. The status corresponds to onboard or offboard status of a compute VNet.

Request:
Method:
GET
URI Path(s):
/api/v1/csm/azure/compute-vnets/<vnet-id>/status
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/azure/vnets//status { "onboard_step": "ONBOARD_SUCCESSFUL", "virtual_private_cloud_name": "ComputeVNet-Peering", "status": "UP", "configuration": { "default_quarantine_policy_enabled": false, "managed_without_agents": false, "auto_agent_install_enabled": false } } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AzureComputeVnetStatus+

Required Permissions: read Feature: gateway_deployment Additional Errors:

Returns a list of Azure virtual networks

Returns a list of Azure virtual networks with information about each
virtual network like IPv4 CIDR, gateway information and transport zones.
Optional query parameters can be utilized to filter the list.
Request:
Method:
GET
URI Path(s):
/api/v1/csm/azure/vnets
Request Headers:
n/a
Query Parameters:
AzureVnetListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/azure/vnets Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AzureVnetListResult+

Example Response: { "cursor": "000002", "sort_ascending": true, "result_count": 3, "results": [ { "resource_type": "AzureVnet", "id": "3054a504-4c09-4df7-8420", "display_name": "NSX-Vnet-1", "cidr_blocks": [ "10.59.1.224/28", "172.20.10.0/24", "172.20.11.0/24", "172.20.12.0/24", "172.20.13.0/24", "172.20.14.0/24" ], "resource_group": "NSX-Vnet-1-RG", "associated_account_ids": [ "28984eef-d296-4a40-979e" ], "region_id": "westus", "resource_id": "/subscriptions/1234567890/resourceGroups/NSX-Vnet-1-RG/providers/Microsoft.Network/virtualNetworks/NSX-Vnet-1", "capabilities":["HORIZON"], "instance_stats": { "total": 6, "managed": 0, "unmanaged": 5, "error": 0, "powered_off": 1 }, "vdi_stats": { "total": 4, "managed": 0, "unmanaged": 3, "error": 0, "powered_off": 1 }, "op_status": "NSX_UNMANAGED", "gateway_info": { "gateway_status": { "gateway_cluster_id": "" } }, "is_management_vnet": false, "_protection": "NOT_PROTECTED" }, { "resource_type": "AzureVnet", "id": "e8e719ff-6a40-48e2-8cf7", "display_name": "NSX-Int-Vnet-Ind-3", "cidr_blocks": [ "10.59.4.112/28", "172.18.35.0/24", "172.18.36.0/24", "172.18.37.0/24", "172.18.38.0/24", "172.18.39.0/24" ], "resource_group": "NSX-Vnet-2-RG", "associated_account_ids": [ "28984eef-d296-4a40-979e" ], "transport_zones": [ { "is_underlay_transport_zone": false, "logical_switches": [ { "is_default_logical_switch": false, "instances_count": 0, "nsx_switch_tag": "a2aad0f1-a48a-474b-8423-41767f538ee0#/E=", "logical_switch_display_name": "DefaultSwitch-Overlay-NSX-Vnet-2", "logical_switch_id": "ls54321" } ], "transport_zone_id": "tz54321", "transport_zone_display_name": "NSX-Vnet-2-Overlay" }, { "is_underlay_transport_zone": true, "logical_switches": [ { "is_default_logical_switch": true, "instances_count": 0, "nsx_switch_tag": "default", "logical_switch_display_name": "DefaultSwitch-VLAN-NSX-Vnet-2", "logical_switch_id": "ls12345" } ], "transport_zone_id": "tz12345", "transport_zone_display_name": "NSX-Vnet-2-VLAN" } ], "region_id": "westus", "resource_id": "/subscriptions/1234567890/resourceGroups/NSX-Vnet-2-RG/providers/Microsoft.Network/virtualNetworks/NSX-Vnet-2", "instance_stats": { "total": 6, "managed": 0, "unmanaged": 6, "error": 0, "powered_off": 0 }, "managed_vnets": [ { "virtual_private_cloud_id": "3034a504-4509-4df7-8429", "associated_account_ids: ["28984eef-d296-4a40-979e"], "virtual_private_cloud_name": "NSX-Vnet-4" } ], "op_status": "NSX_MANAGED", "gateway_info": { "configuration": { "default_quarantine_policy_enabled": false, "managed_without_agents": false, "proxy_server_profile":"a491bc83-5fc8-4e05-adb1-af8274422141", "nsx_manager_connection": "PRIVATE_IP", "is_ha_enabled": false, "form_factor": "LARGE", "gateway_ha_configuration": [], "dns_settings": { "dns_mode": "DHCP" }, "ssh_key": "abcxyzabcxyz", "image_id": "https://abcxyz.windows.net/public-cloud-gateway2/nsx-public-gateway.vhd" }, "gateway_status": { "gateway_cluster_id": "abc123", "gateway_instances_status": [ { "gateway_tn_id": "abcde12345", "deployment_step": "DEPLOYMENT_SUCCESSFUL", "public_ip": "1.2.3.4", "gateway_node_id": "12345abcde", "gateway_status": "UP", "gateway_instance_id": "abcde12345", "private_ip": "4.3.2.1", "gateway_ha_index": 0, "is_gateway_active": false, "gateway_name": "nsx-gw-test" } ] } }, "is_management_vnet": false, "_protection": "NOT_PROTECTED" }, { "resource_type": "AzureVnet", "id": "3034a504-4509-4df7-8429", "display_name": "NSX-Vnet-4", "cidr_blocks": [ "10.59.1.224/28", "172.20.10.0/24" ], "resource_group": "NSX-Vnet-4-RG", "associated_account_ids": [ "28984eef-d296-4a40-979e" ], "region_id": "westus", "resource_id": "/subscriptions/1234567890/resourceGroups/NSX-Vnet-4-RG/providers/Microsoft.Network/virtualNetworks/NSX-Vnet-4", "instance_stats": { "total": 6, "managed": 0, "unmanaged": 5, "error": 0, "powered_off": 1 }, "associated_transit_vnet": { "virtual_private_cloud_id": "e8e719ff-6a40-48e2-8cf7", "associated_account_ids: ["28984eef-d296-4a40-979e"], "virtual_private_cloud_name": "NSX-Int-Vnet-Ind-3" }, "op_status": "NSX_MANAGED_BY_TRANSIT_VNET", "gateway_info": { "gateway_status": { "gateway_cluster_id": "" } }, "is_management_vnet": false, "_protection": "NOT_PROTECTED" }, ] } Required Permissions: read Feature: cloud_resources Additional Errors:

Returns information about a particular Azure virtual network

Returns information about Azure region like virtual network like IPv4 CIDR,
gateway information and transport zones.
Request:
Method:
GET
URI Path(s):
/api/v1/csm/azure/vnets/<vnet-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/azure/vnets/41e9e760-1c60-4b35-89c2 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AzureVnet+

Example Response: { "resource_type": "AzureVnet", "id": "41e9e760-1c60-4b35-89c2", "display_name": "NSX-Vnet-1", "cidr_blocks": [ "10.59.4.80/28", "172.18.25.0/24", "172.18.26.0/24", "172.18.27.0/24", "172.18.28.0/24", "172.18.29.0/24" ], "resource_group": "NSX-Vnet-1-RG", "associated_account_ids": [ "28984eef-d296-4a40-979e" ], "region_id": "westus", "resource_id": "/subscriptions/1234567890/resourceGroups/NSX-Vnet-1-RG/providers/Microsoft.Network/virtualNetworks/NSX-Vnet-1", "instance_stats": { "total": 1, "managed": 0, "unmanaged": 1, "error": 0, "powered_off": 0 }, "op_status": "NSX_UNMANAGED", "gateway_info": { "gateway_status": { "gateway_cluster_id": "" } }, "is_management_vnet": false, "_protection": "NOT_PROTECTED" } Required Permissions: read Feature: cloud_resources Additional Errors:

Cloud Service Manager: Azure

Cloud Service Manager: Azure: Security Groups

Associated URIs:

Returns a list of Azure security groups corresponding to a VNet

Returns a list of Azure security groups corresponding to VNet with
information about each security group like inbound rules, outbound rules
and priority.
Request:
Method:
GET
URI Path(s):
/api/v1/csm/azure/security-groups
Request Headers:
n/a
Query Parameters:
AzureResourcesListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/azure/security-groups Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AzureSecurityGroupsListResult+

Required Permissions: read Feature: cloud_resources Additional Errors:

Returns information about a particular Azure security group

Returns information about a Azure security group like inbound rules,
outbound rules and priority.
Request:
Method:
GET
URI Path(s):
/api/v1/csm/azure/security-groups/<security-group-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/azure/security-groups/ Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AzureSecurityGroup+

Required Permissions: read Feature: cloud_resources Additional Errors:

Cloud Service Manager: Azure: Vnets

Cloud Service Manager: Azure: Vnets: Service Endpoints

Associated URIs:

Returns a list of Azure service endpoints corresponding to a VNet

Returns a list of Azure service endpoints corresponding to a VNet. NSX
supported services are currently limited to Azure Storage, Azure SQL
Database, Azure Cosmos DB and Azure Load Balancer.
Request:
Method:
GET
URI Path(s):
/api/v1/csm/azure/vnets/<vnet-id>/service-endpoints
Request Headers:
n/a
Query Parameters:
AzureServiceEndpointsListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/azure/vnets//service-endpoints Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AzureServiceEndpointsListResult+

Required Permissions: read Feature: cloud_resources Additional Errors:

Cloud Service Manager: Cloud Service Manager

Associated URIs:

Refreshes encryption keys

This API can be used to refresh the encryption keys used by Cloud Service
Manager to encrypt sensitive data. This action should generally be done
during maintenance windows.
Request:
Method:
POST
URI Path(s):
/api/v1/csm/csmconfig/encryption-keys?action=refresh
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: POST https://<nsx-csm>/api/v1/csm/csmconfig/encryption-keys?action=refresh Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: csm_node_config Additional Errors:

Return Csm status information

Returns information about cloud service manager
Request:
Method:
GET
URI Path(s):
/api/v1/csm/csmstatus
Request Headers:
n/a
Query Parameters:
ListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/csmstatus Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
CsmStatus+

Example Response: { "id": "a180989d-48fa-4624-af84-d3c7f120d383", "display_name": "CSM Instance", "ip_address": "192.168.122.1", "version": "1.0", "managed_by_vmware": true, "supported_clouds": [ { "cloud_type": "aws" } ] } Required Permissions: read Feature: csm_node_config Additional Errors:

Cloud Service Manager: Cloud Types

Associated URIs:

Update the selection of CSM cloud types

Updates the list of desired clouds on cloud service manager
Request:
Method:
PUT
URI Path(s):
/api/v1/csm/desired-clouds
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
CloudTypeConfigList+

Example Request: PUT https://<nsx-csm>/api/v1/csm/desired-clouds { "cloud_types": [ { "cloud_type": "aws" "enabled": true, } { "cloud_type": "azure", "enabled": true, } { "cloud_type": "aws-gov-us-east" "enabled": false, } { "cloud_type": "aws-gov-us-west", "enabled": false, } { "cloud_type": "azure-gov-us", "enabled": false, } ] } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
CloudTypeConfigList+

Example Response: { "cloud_types": [ { "cloud_type": "aws" "enabled": true, } { "cloud_type": "azure", "enabled": true, } { "cloud_type": "aws-gov-us-east" "enabled": false, } { "cloud_type": "aws-gov-us-west", "enabled": false, } { "cloud_type": "azure-gov-us", "enabled": false, } ] } Required Permissions: crud Feature: cloud_accounts Additional Errors:

Return information on CSM cloud types

Returns information about desired clouds on cloud service manager
Request:
Method:
GET
URI Path(s):
/api/v1/csm/desired-clouds
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/desired-clouds Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
CloudTypeConfigList+

Example Response: { "cloud_types": [ { "cloud_type": "aws" "enabled": true, } { "cloud_type": "azure", "enabled": true, } { "cloud_type": "aws-gov-us-east" "enabled": true, } { "cloud_type": "aws-gov-us-west", "enabled": true, } { "cloud_type": "azure-gov-us", "enabled": true, } ] } Required Permissions: read Feature: cloud_accounts Additional Errors:

Cloud Service Manager: Manager Configuration

Associated URIs:

Update NSX Cloud Service Manager nodes global configuration

Modifies the NSX Cloud Service Manager nodes global configuration. Request:
Method:
PUT
URI Path(s):
/api/v1/csm/configs/management
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
ManagementConfig+

Example Request: PUT https://<nsx-csm>/csmapi/api/v1/csm/configs/management { "publish_fqdns": true, "_revision": 0 } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
ManagementConfig+

Example Response: { "publish_fqdns": true, "_revision": 1 } Required Permissions: crud Feature: csm_node_config Additional Errors:

Read NSX Cloud Service Manager Nodes global configuration.

Returns the NSX Cloud Service Manager Nodes global configuration.
Request:
Method:
GET
URI Path(s):
/api/v1/csm/configs/management
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-csm>/csmapi/api/v1/csm/configs/management Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
ManagementConfig+

Example Response: { "publish_fqdns": true, "_revision": 0 } Required Permissions: read Feature: csm_node_config Additional Errors:

Cloud Service Manager: NSX Manager Accounts

Associated URIs:

Returns a list of NSX Manager accounts

Request:
Method:
GET
URI Path(s):
/api/v1/csm/nsx-manager-accounts
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/nsx-manager-accounts Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
NsxManagerAccountsListResult+

Example Response: { "results": [ { "id": "a491bc83-5fc8-4e05-adb1-af8274422141", "public_ip": "34.208.244.2", "tenant_id": "345", "thumbprint": "12a76e1ff8d7d6d95ce02dddece11134e402bc436454b7bf4fa61a28418330a1", "username": "admin" } ] } Required Permissions: read Feature: nsx_integration Additional Errors:

Create a NSX Manager account

Request:
Method:
POST
URI Path(s):
/api/v1/csm/nsx-manager-accounts
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
NsxManagerAccount+

Example Request: POST https://<nsx-csm>/api/v1/csm/nsx-manager-accounts { "tenant_id": "345", "public_ip": "34.208.244.2", "thumbprint": "12a76e1ff8d7d6d95ce02dddece11134e402bc436454b7bf4fa61a28418330a1", "username": "admin", "password": "12423dsgfe3" } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
NsxManagerAccount+

Example Response: { "id": "a491bc83-5fc8-4e05-adb1-af8274422141", "tenant_id": "345", "public_ip": "34.208.244.2", "thumbprint": "12a76e1ff8d7d6d95ce02dddece11134e402bc436454b7bf4fa61a28418330a1", "username": "admin" } Required Permissions: crud Feature: nsx_integration Additional Errors:

Update a NSX Manager account

Request:
Method:
PUT
URI Path(s):
/api/v1/csm/nsx-manager-accounts/<account-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
NsxManagerAccount+

Example Request: PUT https://<nsx-csm>/api/v1/csm/nsx-manager-accounts/a491bc83-5fc8-4e05-adb1-af8274422141 { "public_ip": "52.1.1.12", "thumbprint": "12a76e1ff8d7d6d95ce02dddece11134e402bc436454b7bf4fa61a28418330a1", "username": "admin", "password": "12423dsgfe3" } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
NsxManagerAccount+

Example Response: { "id": "a491bc83-5fc8-4e05-adb1-af8274422141", "tenant_id": "123", "public_ip": "52.1.1.12", "thumbprint": "12a76e1ff8d7d6d95ce02dddece11134e402bc436454b7bf4fa61a28418330a1", "username": "New Name" } Required Permissions: crud Feature: nsx_integration Additional Errors:

Delete a NSX Manager account

Request:
Method:
DELETE
URI Path(s):
/api/v1/csm/nsx-manager-accounts/<account-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: DELETE https://<nsx-csm>/api/v1/csm/nsx-manager-accounts/a491bc83-5fc8-4e05-adb1-af8274422141 Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: nsx_integration Additional Errors:

Returns the particular NSX Manager account information

Request:
Method:
GET
URI Path(s):
/api/v1/csm/nsx-manager-accounts/<account-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/nsx-manager-accounts/a491bc83-5fc8-4e05-adb1-af8274422141 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
NsxManagerAccount+

Example Response: { "id": "a491bc83-5fc8-4e05-adb1-af8274422141", "public_ip": "34.208.244.2", "tenant_id": "345", "thumbprint": "12a76e1ff8d7d6d95ce02dddece11134e402bc436454b7bf4fa61a28418330a1", "username": "admin" } Required Permissions: read Feature: nsx_integration Additional Errors:

Cloud Service Manager: Proxy Server Profile

Associated URIs:

Create a Proxy Server Profile

Request:
Method:
POST
URI Path(s):
/api/v1/csm/proxy-server-profiles
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
ProxyServerProfileInfo+

Example Request: POST https://<nsx-csm>/api/v1/csm/proxy-server-profiles { "profilename":"test", "username": "admin", "password": "test123", "host": "1.0.0.0", "port": "3382", "is_default":"true" } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
ProxyServerProfileInfo+

Example Response: { "id": "a491bc83-5fc8-4e05-adb1-af8274422141", "profilename": "test", "username": "admin", "host": "1.0.0.0", "port": "3382", "is_default": "true" } Required Permissions: crud Feature: cloud_accounts Additional Errors:

Returns a list of Proxy Server Profiles

Request:
Method:
GET
URI Path(s):
/api/v1/csm/proxy-server-profiles
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/proxy-server-profiles Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
ProxyServerProfilesListResult+

Example Response: { "results": [ { "id": "a491bc83-5fc8-4e05-adb1-af8274422141", "profilename": "test" "username": "admin", "host": "1.0.0.0", "port": "3382", "is_default": "true" }, { "id": "b491bc83-5fc8-4e05-tdc1-ef8274422141", "profilename": "proxy-with-certificate", "username": "admin", "host": "2.0.0.0", "port": "3382", "is_default": "true", "tls_certificate":"----BEGIN CERTIFICATE-------" } ] } Required Permissions: read Feature: cloud_accounts Additional Errors:

Update a Proxy Server Profile

Request:
Method:
PUT
URI Path(s):
/api/v1/csm/proxy-server-profiles/<profile-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
ProxyServerProfileInfo+

Example Request: PUT https://<nsx-csm>/api/v1/csm/proxy-server-profiles/a491bc83-5fc8-4e05-adb1-af8274422141 { "profilename": "test", "username": "admin", "password": "test123", "host": "1.0.0.0", "port": "3382", "is_default": "false", "_revision": 0 } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
ProxyServerProfileInfo+

Example Response: { "id": "a491bc83-5fc8-4e05-adb1-af8274422141", "profilename": "test", "username": "admin", "host": "1.0.0.0", "port": "3382", "is_default": "false", "_revision": 0 } Required Permissions: crud Feature: cloud_accounts Additional Errors:

Delete a Proxy Server Profile

Request:
Method:
DELETE
URI Path(s):
/api/v1/csm/proxy-server-profiles/<profile-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: DELETE https://<nsx-csm>/api/v1/csm/proxy-server_profiles/a491bc83-5fc8-4e05-adb1-af8274422141 Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: cloud_accounts Additional Errors:

Returns the particular Proxy Server Profile information

Request:
Method:
GET
URI Path(s):
/api/v1/csm/proxy-server-profiles/<profile-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/proxy-server-profiles/a491bc83-5fc8-4e05-adb1-af8274422141 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
ProxyServerProfileInfo+

Example Response: { "profilename": "test", "username": "admin", "host": "1.0.0.0", "port": "3382", "is_default": "true", "_revision": 0 } Required Permissions: read Feature: cloud_accounts Additional Errors:

Cloud Service Manager: Supported Regions

Associated URIs:

Returns supported regions per cloud

Returns information on supported regions for all cloud types.
Request:
Method:
GET
URI Path(s):
/api/v1/csm/supported-regions
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/supported-regions Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
CsmSupportedRegionsListResult+

Example Response: { "results": [ { "cloud_type": "aws", "supported_regions": [ "ap-south-1", "eu-west-3", "eu-west-2", .... "us-west-1", "us-west-2", ] }, { "cloud_type": "azure", "supported_regions": [ "northeurope", "francecentral", "australiaeast", .... "eastus", "westus", ] } ] } Required Permissions: read Feature: cloud_accounts Additional Errors:

Cloud Service Manager: System Configuration

Associated URIs:

Read NSX Cloud Service Manager system configuration.

Returns the system configuration of NSX Cloud Service Manager,
such as the list of management IP configurations.
Request:
Method:
GET
URI Path(s):
/api/v1/csm/configs/system-config
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-csm>/csmapi/api/v1/csm/configs/system-config Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
CsmSystemConfig+

Example Response: { "mgmt_ip_config": [ "10.1.1.1/24", "192.168.0.0/24" ] } Required Permissions: read Feature: csm_node_config Additional Errors:

Update NSX Cloud Service Manager system configuration.

Modifies the NSX Cloud Service Manager system configuration,
such as the list of management IP CIDRs as seen by the gateways
deployed in the cloud.
Request:
Method:
PUT
URI Path(s):
/api/v1/csm/configs/system-config
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
CsmSystemConfig+

Example Request: PUT https://<nsx-csm>/csmapi/api/v1/csm/configs/system-config { "mgmt_ip_config": [ "10.1.1.1/24", "192.168.0.0/24", "192.169.0.0/24" ] } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
CsmSystemConfig+

Example Response: { "mgmt_ip_config": [ "10.1.1.1/24", "192.168.0.0/24", "192.169.0.0/24" ] } Required Permissions: crud Feature: csm_node_config Additional Errors:

Cloud Service Manager: VPN

Associated URIs:

Returns all the NSX managed CSM VPN endpoints

Request:
Method:
GET
URI Path(s):
/api/v1/csm/vpn/endpoints
Request Headers:
n/a
Query Parameters:
CsmVpnEndpointsListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/vpn/endpoints Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
CsmVpnEndpointsListResult+

Example Response: { "cursor": "0000001", "sort_ascending": true, "result_count": 3, "resource_type": "CsmVpnEndpointsListResult", "results": [ { "id": "vpc-12345678", "display_name": "vpc test", "endpoint_type": "AWS" }, { "id": "d02af61a-e212-486e-b6c8-10462ccfbad6", "display_name": "vnet-01", "endpoint_type": "AZURE" }, { "id": "8154ffd1-41b1-42d6-a28d-05c61a0697g2", "display_name": "azure-vnet-02", "endpoint_type": "AZURE" } ], "_last_modified_user": "admin", "_last_modified_time": 1435284879143, "_create_time": 1435284566908, "_create_user": "admin", "_revision": 1 } Required Permissions: read Feature: csm_vpn Additional Errors:

Returns the state of the public cloud routing tables from a VPN point of view.

Request:
Method:
GET
URI Path(s):
/api/v1/csm/vpn/routing-tables/state
Request Headers:
n/a
Query Parameters:
VpnRoutingTablesStateListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/vpn/routing-tables/state Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
VpnRoutingTableStateListResult+

Example Response: { "cursor": "0008236", "sort_ascending": true, "result_count": 3, "resource_type": "VpnRoutingTableStateListResult", "results": [ { "id" : "rtb-fa00d882", "managed_for_vpn" : true }, { "id" : "rtb-9f7b06e7", "managed_for_vpn" : false, "reason_for_not_managed" : "RT_CONTAINS_UPLINK_SUBNET" }, { "id" : "rtb-ac08dcd4", "managed_for_vpn" : false, "reason_for_not_managed" : "UNSELECTED" } ], "_last_modified_user": "admin", "_last_modified_time": 1435284879143, "_create_time": 1435284566908, "_create_user": "admin", "_revision": 1 } Required Permissions: read Feature: cloud_resources Additional Errors:

Create a VPN session in cloud service manager.

Request:
Method:
POST
URI Path(s):
/api/v1/csm/vpn/sessions
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
CsmVpnSession+

Example Request: POST https://<nsx-csm>/api/v1/csm/vpn/sessions { "display_name": "aws azure session 01", "source_endpoint": { "id": "vpc-12345678", "display_name": "vpc test", "endpoint_type": "AWS" }, "destination_endpoint": { "id": "d02af61a-e212-486e-b6c8-10462ccfbad6", "display_name": "vnet-01", "endpoint_type": "AZURE" } } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
CsmVpnSession+

Example Response: { "id": "9174ffd1-41b1-42d6-a28d-05c61a0698e2", "display_name": "aws azure session 01", "source_endpoint": { "id": "vpc-12345678", "display_name": "vpc test", "endpoint_type": "AWS" }, "destination_endpoint": { "id": "d02af61a-e212-486e-b6c8-10462ccfbad6", "display_name": "vnet-01", "endpoint_type": "AZURE" } } Required Permissions: crud Feature: csm_vpn Additional Errors:

Returns the details of the particular CSM VPN session

Request:
Method:
GET
URI Path(s):
/api/v1/csm/vpn/sessions/<session-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/vpn/sessions/9174ffd1-41b1-42d6-a28d-05c61a0698e2 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
CsmVpnSession+

Example Response: { "id": "9174ffd1-41b1-42d6-a28d-05c61a0698e2", "display_name": "aws azure session 01", "source_endpoint": { "id": "vpc-12345678", "display_name": "vpc test", "endpoint_type": "AWS" }, "destination_endpoint": { "id": "d02af61a-e212-486e-b6c8-10462ccfbad6", "display_name": "vnet-01", "endpoint_type": "AZURE" } } Required Permissions: read Feature: csm_vpn Additional Errors:

Delete a CSM VPN session

Request:
Method:
DELETE
URI Path(s):
/api/v1/csm/vpn/sessions/<session-id>
Request Headers:
n/a
Query Parameters:
DeleteRequestParameters+
Request Body:
n/a

Example Request: DELETE https://<nsx-csm>/api/v1/csm/vpn/sessions/9174ffd1-41b1-42d6-a28d-05c61a0698e2 DELETE https://<nsx-csm>/api/v1/csm/vpn/sessions/9174ffd1-41b1-42d6-a28d-05c61a0698e2?force=true Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: csm_vpn Additional Errors:

Update an existing CSM VPN session information

Request:
Method:
PUT
URI Path(s):
/api/v1/csm/vpn/sessions/<session-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
CsmVpnSession+

Example Request: PUT https://<nsx-csm>/api/v1/csm/vpn/sessions/9174ffd1-41b1-42d6-a28d-05c61a0698e2 { "display_name": "New VPN session", "source_endpoint": { "id": "vpc-12345678", "display_name": "vpc test", "endpoint_type": "AWS" }, "destination_endpoint": { "id": "d02af61a-e212-486e-b6c8-10462ccfbad6", "display_name": "vnet-01", "endpoint_type": "AZURE" } } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
CsmVpnSession+

Example Response: { "id": "9174ffd1-41b1-42d6-a28d-05c61a0698e2", "display_name": "New VPN session", "source_endpoint": { "id": "vpc-12345678", "display_name": "vpc test", "endpoint_type": "AWS" }, "destination_endpoint": { "id": "d02af61a-e212-486e-b6c8-10462ccfbad6", "display_name": "vnet-01", "endpoint_type": "AZURE" } } Required Permissions: crud Feature: csm_vpn Additional Errors:

Returns the status and details of the particular CSM VPN session

Request:
Method:
GET
URI Path(s):
/api/v1/csm/vpn/sessions/<session-id>/status
Request Headers:
n/a
Query Parameters:
RefreshRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/vpn/sessions/9174ffd1-41b1-42d6-a28d-05c61a0698e2/status GET https://<nsx-csm>/api/v1/csm/vpn/sessions/7344feb2-51b4-68b5-c57e-16e72b3817f3/status Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
CsmVpnSessionStatus+

Example Response: { "details": { "id": "9174ffd1-41b1-42d6-a28d-05c61a0698e2", "display_name": "aws azure session 01", "source_endpoint": { "id": "vpc-12345678", "display_name": "vpc test", "endpoint_type": "AWS" }, "destination_endpoint": { "id": "d02af61a-e212-486e-b6c8-10462ccfbad6", "display_name": "vnet-01", "endpoint_type": "AZURE" } }, "state": "UP", "status_message": "NSX Policy VPN sessions established" } { "details": { "id": "7344feb2-51b4-68b5-c57e-16e72b3817f3", "display_name": "aws azure session 02", "source_endpoint": { "id": "vpc-12345678", "display_name": "vpc test", "endpoint_type": "AWS" }, "destination_endpoint": { "id": "d02af61a-e212-486e-b6c8-10462ccfbad6", "display_name": "vnet-01", "endpoint_type": "AZURE" } }, "state": "IN_PROGRESS", "status_message": "Configuring BGP routing on NSX Policy Tier0" } Required Permissions: read Feature: csm_vpn Additional Errors:

Re-establish an existing CSM VPN session in errored state. If the create of an CSM VPN session errored out and the state is DOWN, this call can be made. CSM will attempt to re-create any missing NSX entities and attempt to re-establish the session.

Request:
Method:
POST
URI Path(s):
/api/v1/csm/vpn/sessions/<session-id>?action=recreate
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: POST https://<nsx-csm>/api/v1/csm/vpn/sessions/9174ffd1-41b1-42d6-a28d-05c61a0698e2?action=recreate Successful Response:
Response Code:
204 No Content
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: csm_vpn Additional Errors:

Returns the statuses of the CSM VPN sessions.

Request:
Method:
GET
URI Path(s):
/api/v1/csm/vpn/sessions/status
Request Headers:
n/a
Query Parameters:
CsmVpnSessionStatusListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/vpn/sessions/status Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
CsmVpnSessionStatusListResult+

Example Response: { "cursor": "0008236", "sort_ascending": true, "result_count": 2, "resource_type": "CsmVpnSessionStatusListResult", "results": [ { "details": { "id": "9174ffd1-41b1-42d6-a28d-05c61a0698e2", "display_name": "aws azure session 01", "source_endpoint": { "id": "vpc-12345678", "display_name": "vpc-02", "endpoint_type": "AWS" }, "destination_endpoint": { "id": "d02af61a-e212-486e-b6c8-10462ccfbad6", "display_name": "vnet-01", "endpoint_type": "AZURE" } }, "state": "UP", "status_message": "NSX Policy VPN sessions established" }, { "details": { "id": "8154ffd1-41b1-42d6-a28d-05c61a0697g2", "display_name": "azure aws session 02", "source_endpoint": { "id": "42935e4d-ff7c-433a-a59c-85ab5559cda2", "display_name": "Vnet-WA-4", "endpoint_type": "AZURE" }, "destination_endpoint": { "id": "vpc-87654321", "display_name": "vpc-01", "endpoint_type": "AWS" } }, "status": "DOWN", "status_message": "Failed to create NSX Policy IPSec VPN sessions" } ], "_last_modified_user": "admin", "_last_modified_time": 1435284879143, "_create_time": 1435284566908, "_create_user": "admin", "_revision": 1 } Required Permissions: read Feature: csm_vpn Additional Errors:

Cloud Service Manager: Virtual Machines

Associated URIs:

Returns the list of all virtual machines created or imported under a particular account id. Supports optional query parameters like region id, vpc id, public_ip, is_gateway.

Request:
Method:
GET
URI Path(s):
/api/v1/csm/virtual-machines
Request Headers:
n/a
Query Parameters:
CloudVirtualMachinesListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/virtual-machines Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
CloudVirtualMachinesListResult+

Example Response: { "cursor": "0003348", "sort_ascending": true, "result_count": 348, "results": [ { "description": "t2.micro", "id": "i-027c0b32cbe631ec9", "display_name": "vm-2", "is_gateway": false, "private_ip": "13.14.41.253", "cloud_tags": [], "os_type": "AMAZON_LINUX", "agent_status": "NO_AGENT", "os_details": "", "availability_zone": "us-west-2c", "vpc": "vpc-f4ddaf93", "vm_config_status": { "whitelist": { "whitelisted": "YES" }, "usermanaged": { "usermanaged": "YES" } }, "nsx_successful_rules_count" : 1, "nsx_failed_rules_count" : 0 }, { "region": "westus", "vnet": "7f3e9fce-8e92-407f-ad82-02c26dd566f1", "vnet_name": "nsx-vpn-vnet-01", "resource_group": "UBUNTU-VM-01-RG", "power_state": "STOPPED", "resource_id": "/58bbb0ce-e26a-4bbc-a49c-284f63c25e2e/resourceGroups/UBUNTU-VM-01-RG/providers/Microsoft.Compute/virtualMachines/ubuntu-vm-01", "resource_type": "AzureVirtualMachine", "id": "5735faab-4751-4e25-8db7-78f6a35b7e42", "display_name": "ubuntu-vm-01", "os_type": "Linux", "cloud_tags": [], "public_ip": "52.160.36.45", "private_ip": "22.22.4.5", "is_gateway": false, "managed_by_nsx": true, "quarantine_state": "UNKNOWN", "threat_state": "INVALID", "nsx_security_rule_errors_count": 0, "nsx_security_rule_errors": [], "status": "POWERED_OFF", "agent_status": "UPDATE_AVAILABLE", "cloud_instance_type": "HORIZON_VDI", "associated_account_ids": [ "877b27fe-5935-4a09-8c25-f3df9afd326b" ], "vm_config_status": { "whitelist": { "whitelisted": "NO" }, "usermanaged": { "usermanaged": "NO" } }, "nsx_successful_rules_count": 0, "nsx_failed_rules_count": 0 }, { "description": "c4.xlarge", "id": "i-0b62834659a30fc21", "display_name": "nsx-gw-vpc-c35dbaa4-preferred-active", "public_ip": "52.89.33.233", "is_gateway": true, "private_ip": "10.0.1.97", "is_gateway_active": true, "cloud_tags": [], "gateway_status": "UP", "os_type": "UBUNTU", "os_details": "LTS 14.04", "availability_zone": "us-west-2a", "vpc": "vpc-c35dbaa4", "vm_config_status": { "whitelist": { "whitelisted": "NO" } "usermanaged": { "usermanaged": "NO" } }, "nsx_successful_rules_count" : 1, "nsx_failed_rules_count" : 0 } ] } Required Permissions: read Feature: cloud_resources Additional Errors:

Returns information about the particular virtual machine

Request:
Method:
GET
URI Path(s):
/api/v1/csm/virtual-machines/<virtual-machine-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/virtual-machines/i-027c0b32cbe631ec9 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AwsVirtualMachine+
AzureVirtualMachine+
CloudVirtualMachine+

Example Response: { "description": "t2.micro", "id": "i-027c0b32cbe631ec9", "display_name": "vm-2", "is_gateway": false, "private_ip": "13.14.41.253", "cloud_tags": [], "os_type": "AMAZON_LINUX", "agent_status": "NO_AGENT", "os_details": "", "availability_zone": "us-west-2c", "vpc": "vpc-f4ddaf93", "vm_config_status": { "whitelist": { "whitelisted": "NO" }, "usermanaged": { "usermanaged": "NO" } }, "nsx_configured_rules_count" : 1, "nsx_failed_rules_count" : 0 } Required Permissions: read Feature: cloud_resources Additional Errors:

Update virtual machine config

Updates user configurable nsx properties of virtual machines.
Request:
Method:
POST
URI Path(s):
/api/v1/csm/virtual-machines?action=update_config
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
VirtualMachineConfigList+

Example Request: POST https://<nsx-csm>/api/v1/csm/virtual-machines?action=update_config { "virtual_machines": [ { "vm_id": "i-027c0b32cbe631ec9" "vm_config_properties": { "whitelisted" : true, "usermanaged" : true } }, { "vm_id": "a491bc83-5fc8-4e05-adb1-af8274422141" "vm_config_properties": { "whitelisted" : true, "usermanaged" : true } } ] } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
VirtualMachineConfigList+

Required Permissions: crud Feature: cloud_resources Additional Errors:

Cloud Service Manager: Virtual Machines: Firewall Rules

Associated URIs:

Details of NSX firewall rules of cloud virtual machine

Return the NSX firewall rules of an agentless cloud virtual machine within the given cloud network
and the details/status of each rule. VMs with NSX agent do not have the NSX rules populated.
Rule errors are populated if failed to realize for the instance.In AWS, instance id is same as instance guid.
In Azure, instance guid refers to the global unique identifier of the instance.
Request:
Method:
GET
URI Path(s):
/api/v1/csm/virtual-machines/<virtual-machine-id>/firewall-rules
Request Headers:
n/a
Query Parameters:
NsxFirewallRulesListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-csm>/api/v1/csm/virtual-machines/i-027c0b32cbe631ec9/firewall-rules Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
NsxFirewallRulesListResult+

Example Response: { "results" : [ { "id" : "1026", "section_id" : "b6b1219b-g76d-456g-8012-ebbdg9c4c497", "direction" : "IN_OUT", "priority" : 100, "sources" : [ { "target_id" : "a6a1219a-f76c-456f-8012-daacf9b4b497", "target_display_name" : "web-vms" } ], "destinations" : [ { "target_id" : "d79460ce-3404-4424-a931-3f70a2e39aee", "target_display_name" : "app-vms" } ], "services" : [ { "service" : { "l4_protocol" : "TCP", "source_ports" : [], "destination_ports: ["1024"] } } ], "action" : "ALLOW", "error_details" : { "error_id" : "1234", "error_message" : "NSX stateless rules are not supported" } }, { "id" : "1027", "section_id" : "", "direction" : "IN", "priority" : 1000, "sources" : [ { "target_id" : "d79460ce-3404-4424-a931-3f70a2e39aee", "target_display_name" : "app-vms" } ], "destinations" : [ { "target_id" : "a6a1219a-f76c-456f-8012-daacf9b4b497", "target_display_name" : "web-vms" } ], "services" : [ { "service" : { "l4_protocol" : "TCP", "source_ports" : [], "destination_ports: ["464"] } } ], "action" : "DENY", "error_details" : {} } ] } Required Permissions: read Feature: cloud_resources Additional Errors:

Federation

Federation: Federation Configuration

Associated URIs:

Read federation config

Read a federation config from Global Manager. This API is only available when using VMware NSX-T. Request:
Method:
GET
URI Path(s):
/policy/api/v1/infra/federation-config
/policy/api/v1/global-infra/federation-config
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<policy-mgr>/policy/api/v1/global-infra/federation-config GET https://<global-mgr>/global-manager/api/v1/global-infra/federation-config Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
FederationConfig+

Example Response: { "site_config" : [ { "site_id": "59ee0369-3d2b-4b2a-9221-594344f6ca4c", "rtep_ips": [ "10.192.201.163", "10.192.201.164" ], "site_index": 1, "site_path": "/global-infra/sites/paris" } ] } Required Permissions: read Feature: site_admin Additional Errors:

Read Global Manager config along with sensitive data

Read a Global Manager config along with sensitive data.
For example - rtep_config.ibgp_password
Request:
Method:
GET
URI Path(s):
/policy/api/v1/global-infra/global-manager-config?action=show-sensitive-data
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<pglobal-mgr>/global-manager/api/v1/global-infra/global-manager-config?action=show-sensitive-data GET https://<policy-mgr>/policy/api/v1/global-infra/global-manager-config?action=show-sensitive-data Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
GlobalManagerConfig+

Example Response: { "resource_type": "GlobalManagerConfig", "rtep_config" : { "ibgp_password": "secureme" }, "_create_user": "admin", "_create_time": 1517262573524, "_last_modified_user": "admin", "_last_modified_time": 1517262573524, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 1 } Required Permissions: crud Feature: site_admin Additional Errors:

Federation: Full Synchronization

Associated URIs:

Performs realized object actions specified in the action.

Performs realized object actions specified in the action. Request:
Method:
POST
URI Path(s):
/policy/api/v1/infra/full-sync-action
Request Headers:
n/a
Query Parameters:
PolicyFullSyncActionParameters+
Request Body:
n/a

Example Request: POST https://<policy-mgr>/policy/api/v1/infra/full-sync-action?action=request_full_sync Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Example Response: { "fullsync_action_response": "requested full sync", } Required Permissions: crud Feature: site_admin Additional Errors:

List full sync states

List full sync state. This API is only available when using VMware NSX-T. Request:
Method:
GET
URI Path(s):
/policy/api/v1/infra/full-sync-states
/policy/api/v1/global-infra/full-sync-states
Request Headers:
n/a
Query Parameters:
PolicyListRequestParameters+
Request Body:
n/a

Example Request: GET https://<policy-mgr>/policy/api/v1/infra/full-sync-states Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
FullSyncStateListResult+

Example Response: { "result_count" : 1, "results" : [ "resource_type": "FullSyncState", "id": "1234", "full_sync_id": "1234", "last_completed_stage": "PROCESSED_DELTAS", "path": "/infra/fullsync-states/1234", "parent_path": "/infra", "relative_path": "1234", "_create_user": "SYSTEM", "_create_time": 1517262573524, "_last_modified_user": "SYSTEM", "_last_modified_time": 1517262573524, "_system_owned": true, "_revision": 2 ] } Required Permissions: read Feature: site_admin Additional Errors:

Get full sync state

Get full sync state. This API is only available when using VMware NSX-T. Request:
Method:
GET
URI Path(s):
/policy/api/v1/infra/full-sync-states/<full-sync-id>
/policy/api/v1/global-infra/full-sync-states/<full-sync-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<policy-mgr>/policy/api/v1/infra/full-sync-states/1234 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
FullSyncState+

Example Response: { "resource_type": "FullSyncState", "id": "1234", "full_sync_id": "1234", "last_completed_stage": "PROCESSED_DELTAS", "path": "/infra/fullsync-states/1234", "parent_path": "/infra", "relative_path": "1234", "_create_user": "SYSTEM", "_create_time": 1517262573524, "_last_modified_user": "SYSTEM", "_last_modified_time": 1517262573524, "_system_owned": true, "_revision": 2 } Required Permissions: read Feature: site_admin Additional Errors:

Federation: Global Managers

Associated URIs:

List Global Managers

List Global Managers under Infra.
This API is only available when using VMware NSX-T. Request:
Method:
GET
URI Path(s):
/policy/api/v1/global-infra/global-managers
Request Headers:
n/a
Query Parameters:
GlobalManagerListRequestParameters+
Request Body:
n/a

Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/global-managers Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
GlobalManagerListResult+

Example Response: { "result_count" : 2, "results" : [ { "resource_type": "GlobalManager", "id": "london", "gm_id": "aad93dd9-ea71-41d7-be0d-1b1fca616660", "display_name": "London GM", "path": "/infra/global-managers/london", "parent_path": "/infra/global-managers/london", "relative_path": "london", "mode": "ACTIVE", "_create_user": "admin", "_create_time": 1517262573524, "_last_modified_user": "admin", "_last_modified_time": 1517262573524, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 2 }, { "resource_type": "GlobalManager", "id": "Paris", "gm_id": "dfd93dd9-ea71-41d7-be0d-1b1fca616660", "display_name": "Paris GM", "path": "/infra/global-managers/Paris", "parent_path": "/infra/global-managers/Paris", "relative_path": "Paris", "mode": "STANDBY", "connection_info": [{ "fqdn": "10.190.201.163" }], "_create_user": "admin", "_create_time": 1517262573524, "_last_modified_user": "admin", "_last_modified_time": 1517262573524, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 1 } ] } Required Permissions: read Feature: standby_site_admin Additional Errors:

Read a Global Manager

Retrieve information about a particular configured global manager.
Global Manager id 'self' is reserved and can be used for referring to local
logged in Global Manager.
Example - /infra/global-managers/self
This API is only available when using VMware NSX-T. Request:
Method:
GET
URI Path(s):
/policy/api/v1/global-infra/global-managers/<global-manager-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/global-managers/london Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
GlobalManager+

Example Response: { "resource_type": "GlobalManager", "id": "london", "gm_id": "dfd93dd9-ea71-41d7-be0d-1b1fca616660", "display_name": "London GM", "path": "/infra/global-managers/london", "parent_path": "/infra/global-managers/london", "relative_path": "london", "mode": "ACTIVE", "_create_user": "admin", "_create_time": 1517262573524, "_last_modified_user": "admin", "_last_modified_time": 1517262573524, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 2 } Required Permissions: read Feature: standby_site_admin Additional Errors:

Federation: Inter-Sites

Associated URIs:

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.
Request:
Method:
GET
URI Path(s):
/api/v1/edge-clusters/<edge-cluster-id>/inter-site/status
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/edge-clusters/875381be-a4c5-4173-8aa7-ab71695a8129/inter-site/status Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
EdgeClusterInterSiteStatus+

Example Response: { "edge_cluster_id": "875381be-a4c5-4173-8aa7-ab71695a8129", "edge_cluster_name": "Federation edge cluster", "member_status": [ { "transport_node": { "target_id": "258c50b4-c960-4005-9023-f7946e302162", "target_display_name": "Edge node 1", "is_valid": true }, "total_bgp_sessions": 2, "established_bgp_sessions": 2, "neighbor_status": [ { "source_address": "192.100.20.10", "neighbor_address": "192.200.20.10", "connection_state": "ESTABLISHED", "remote_site": { "target_id": "258c50b4-c960-4005-9023-f7946e302162", "target_display_name": "India Site", "is_valid": true } }, { "source_address": "192.300.20.10", "neighbor_address": "192.400.20.10", "connection_state": "ESTABLISHED", "remote_site": { "target_id": "235c52a2-c960-4005-4512-451dc54fa542", "target_display_name": "PA Site", "is_valid": true } } ] "status": "UP" }, { "transport_node": { "target_id": "77eead22-3bb9-4586-8de3-9412941f9116", "target_display_name": "Edge node 2", "is_valid": true }, "total_bgp_sessions": 1, "established_bgp_sessions": 0, "neighbor_status": [ { "source_address": "192.100.20.10", "neighbor_address": "192.200.20.10", "connection_state": "IDLE", "remote_site": { "target_id": "258c50b4-c960-4005-9023-f7946e302162", "target_display_name": "India Site", "is_valid": true } } ] "status": "DOWN" } ], "overall_status": "DEGRADED", "last_update_timestamp": 1457117071089 } Required Permissions: read Feature: nodes_edge_clusters Additional Errors:

Get infra segment cross site forwarder placement and HA status

Get infra segment cross site forwarder placement and HA statuss.
This API is only available when using VMware NSX-T. Request:
Method:
GET
URI Path(s):
/policy/api/v1/global-infra/segments/<segment-id>/inter-site-forwarder/site-span-info
Request Headers:
n/a
Query Parameters:
L2L3RuntimeRequestParameters+
Request Body:
n/a

Example Request: GET https://<policy-mgr>/policy/api/v1/global-infra/segments/tier0-ls/inter-site-forwarder/site-span-info?enforcement_point_path=/infra/sites/default/enforcement-points/default Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
SegmentL2ForwarderSiteSpanInfo+

Example Response: { "segment_path": "/global-infra/segments/tier0-ls", "remote_macs_per_site": [ { "rtep_group_id": 2001, "remote_site": { "target_id": "258c50b4-c960-4005-9023-f7946e302162", "target_display_name": "India Site", "is_valid": true }, "remote_mac_addresses": [ "02:00:17:00:12:D3", "02:00:17:00:13:13" ], "remote_active_ips": [ "10.10.10.1" ], "remote_standby_ips": [ "20.20.20.1" ] } ], "last_update_timestamp": 1457117071089 } Required Permissions: read Feature: policy_segment Additional Errors:

Get infra segment cross site traffic statistics

Get infra segment cross site traffic statistics.
This API is only available when using VMware NSX-T. Request:
Method:
GET
URI Path(s):
/policy/api/v1/global-infra/segments/<segment-id>/inter-site-forwarder/status
Request Headers:
n/a
Query Parameters:
L2L3RuntimeRequestParameters+
Request Body:
n/a

Example Request: GET https://<policy-mgr>/policy/api/v1/global-infra/segments/tier0-ls/inter-site-forwarder/status?enforcement_point_path=/infra/sites/default/enforcement-points/default Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
SegmentCrossSiteTrafficStats+

Example Response: { "segment_path": "/global-infra/segments/tier0-ls", "rx": { "total_bytes": 56646, "total_packets": 342, "dropped_packets": 103 }, "tx": { "total_bytes": 1125548, "total_packets": 2235, "dropped_packets": 0 }, "last_update_timestamp": 1457117071089 } Required Permissions: read Feature: policy_segment Additional Errors:

Get RTEP span and mac address-table

Get RTEP span and mac address-table.
Request:
Method:
GET
URI Path(s):
/policy/api/v1/global-infra/tier-0s/<tier-0-id>/locale-services/<locale-services-id>/inter-site/bgp-summary
Request Headers:
n/a
Query Parameters:
ListByOptionalTransportNodeParameters+
Request Body:
n/a

Example Request: GET https://policy-mgr/policy/api/v1/global-infra/tier-0s/tier0/locale-services/tier0localeservices/inter-site/bgp-summary Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
PolicyEdgeClusterInterSiteBgpSummary+

Example Response: { "edge_cluster_path": "/infra/sites/default/enforcement-points/default/edge-clusters/b051d3f9-3ad8-4831-9d67-8ae1cd3f5a1e/edge-nodes/875381be-a4c5-4173-8aa7-ab71695a8129", "edge_nodes": [ { "edge_node_path": "/infra/sites/default/enforcement-points/default/edge-clusters/b051d3f9-3ad8-4831-9d67-8ae1cd3f5a1e/edge-nodes/875381be-a4c5-4173-8aa7-ab71695a8129", "neighbor_status": [ { "source_address": "10.1.1.1", "neighbor_address": "10.1.2.1", "remote_as_number": "1", "remote_port": 179, "local_port": 179, "connection_state": "ESTABLISHED", "time_since_established": 45628, "messages_received": 12, "messages_sent": 10, "connection_drop_count": 0, "established_connection_count": 1, "hold_time": 180, "keep_alive_interval": 30, "graceful_restart": true, "graceful_restart_mode": "HELPER_ONLY", "total_in_prefix_count": 2, "total_out_prefix_count": 1, "address_families": [ { "type": "IPV4_UNICAST", "in_prefix_count": 2, "out_prefix_count": 1 } ], "remote_site": { "target_id": "cfaec4c7-45c2-439b-b7c6-2c3aeabd9976", "target_display_name": "PA Site", "is_valid": true } } ], "last_update_timestamp": 1457117071089 }, { "source_address": "10.1.1.1", "neighbor_address": "10.1.2.1", "remote_as_number": "1", "remote_port": 179, "local_port": 179, "connection_state": "ESTABLISHED", "time_since_established": 45628, "messages_received": 12, "messages_sent": 10, "connection_drop_count": 0, "established_connection_count": 1, "hold_time": 180, "keep_alive_interval": 30, "graceful_restart": true, "graceful_restart_mode": "HELPER_ONLY", "total_in_prefix_count": 2, "total_out_prefix_count": 1, "address_families": [ { "type": "IPV4_UNICAST", "in_prefix_count": 2, "out_prefix_count": 1 } ], "remote_site": { "target_id": "cfaec4c7-45c2-439b-b7c6-2c3aeabd9976", "target_display_name": "PA Site", "is_valid": true } } ], "last_update_timestamp": 1457117071089 } ], } Required Permissions: read Feature: policy_connectivity Additional Errors:

Get RTEP mesh connectivity status

Get RTEP mesh connectivity status.
Request:
Method:
GET
URI Path(s):
/policy/api/v1/global-infra/tier-0s/<tier-0-id>/locale-services/<locale-services-id>/inter-site/status
Request Headers:
n/a
Query Parameters:
ListByOptionalTransportNodeParameters+
Request Body:
n/a

Example Request: GET https://policy-mgr/policy/api/v1/global-infra/tier-0s/tier0/locale-services/tier0localeservices/inter-site/status Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
PolicyEdgeClusterInterSiteStatus+

Example Response: { "gateway_path": "/global-infra/tier-0s/tier0", "edge_cluster_path": "/global-infra/sites/default/enforcement-points/default/edge-clusters/875381be-a4c5-4173-8aa7-ab71695a8129", "edge_cluster_name": "Federation edge cluster", "member_status": [ { "edge_node": { "edge_node_path": "/global-infra/sites/default/enforcement-points/default/edge-clusters/b051d3f9-3ad8-4831-9d67-8ae1cd3f5a1e/edge-nodes/258c50b4-c960-4005-9023-f7946e302162", "target_display_name": "Edge node 1", "is_valid": true }, "total_bgp_sessions": 2, "established_bgp_sessions": 2, "neighbor_status": [ { "source_address": "192.100.20.10", "neighbor_address": "192.200.20.10", "connection_state": "ESTABLISHED", "remote_site": { "target_edge_node": "258c50b4-c960-4005-9023-f7946e302162", "target_display_name": "India Site", "is_valid": true } }, { "source_address": "192.300.20.10", "neighbor_address": "192.400.20.10", "connection_state": "ESTABLISHED", "remote_site": { "target_id": "235c52a2-c960-4005-4512-451dc54fa542", "target_display_name": "PA Site", "is_valid": true } } ] "status": "UP" }, { "edge_node": { "edge_node_path": "/infra/sites/default/enforcement-points/default/edge-clusters/b051d3f9-3ad8-4831-9d67-8ae1cd3f5a1e/edge-nodes/77eead22-3bb9-4586-8de3-9412941f9116", "target_display_name": "Edge node 2", "is_valid": true }, "total_bgp_sessions": 1, "established_bgp_sessions": 0, "neighbor_status": [ { "source_address": "192.100.20.10", "neighbor_address": "192.200.20.10", "connection_state": "IDLE", "remote_site": { "target_edge_node": "258c50b4-c960-4005-9023-f7946e302162", "target_display_name": "India Site", "is_valid": true } } ] "status": "DOWN" } ], "overall_status": "DEGRADED", "last_update_timestamp": 1457117071089 } Required Permissions: read Feature: policy_connectivity Additional Errors:

Get segment cross site forwarder placement and HA status

Get segment cross site forwarder placement and HA statuss.
This API is only available when using VMware NSX-T. Request:
Method:
GET
URI Path(s):
/policy/api/v1/global-infra/tier-1s/<tier-1-id>/segments/<segment-id>/inter-site-forwarder/site-span-info
Request Headers:
n/a
Query Parameters:
L2L3RuntimeRequestParameters+
Request Body:
n/a

Example Request: GET https://<policy-mgr>/policy/api/v1/global-infra/tier-1s/tier1/segments/tier1-ls/inter-site-forwarder/site-span-info?enforcement_point_path=/infra/sites/default/enforcement-points/default Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
SegmentL2ForwarderSiteSpanInfo+

Example Response: { "segment_path": "/global-infra/tier-1s/tier1/segments/tier1-ls", "remote_macs_per_site": [ { "rtep_group_id": 2001, "remote_site": { "target_id": "258c50b4-c960-4005-9023-f7946e302162", "target_display_name": "India Site", "is_valid": true }, "remote_mac_addresses": [ "02:00:17:00:12:D3", "02:00:17:00:13:13" ], "remote_active_ips": [ "10.10.10.1" ], "remote_standby_ips": [ "20.20.20.1" ] } ], "last_update_timestamp": 1457117071089 } Required Permissions: read Feature: policy_segment Additional Errors:

Get segment cross site traffic statistics

Get segment cross site traffic statistics.
This API is only available when using VMware NSX-T. Request:
Method:
GET
URI Path(s):
/policy/api/v1/global-infra/tier-1s/<tier-1-id>/segments/<segment-id>/inter-site-forwarder/status
Request Headers:
n/a
Query Parameters:
L2L3RuntimeRequestParameters+
Request Body:
n/a

Example Request: GET https://<policy-mgr>/policy/api/v1/global-infra/tier-1s/tier1/segments/tier1-ls/inter-site-forwarder/status?enforcement_point_path=/infra/sites/default/enforcement-points/default Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
SegmentCrossSiteTrafficStats+

Example Response: { "segment_path": "/global-infra/tier-1s/tier1/segments/tier1-ls", "rx": { "total_bytes": 56646, "total_packets": 342, "dropped_packets": 103 }, "tx": { "total_bytes": 1125548, "total_packets": 2235, "dropped_packets": 0 }, "last_update_timestamp": 1457117071089 } Required Permissions: read Feature: policy_segment Additional Errors:

Get L2 forwarder remote mac addresses (Experimental)

Returns remote mac addresses of the l2 forwarder on logical switch.
It always returns realtime response.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-switches/<logical-switch-id>/inter-site-forwarder/site-span-info
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-switches/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/inter-site-forwarder/site-span-info Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
L2ForwarderRemoteMacs+

Example Response: { "logical_switch_id": "7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c", "remote_macs_per_site": [ { "rtep_group_id": 2001, "remote_site": { "target_id": "258c50b4-c960-4005-9023-f7946e302162", "target_display_name": "India Site", "is_valid": true }, "remote_mac_addresses": [ "02:00:17:00:12:D3", "02:00:17:00:13:13" ], "remote_active_ips": [ "10.10.10.1" ], "remote_standby_ips": [ "20.20.20.1" ] } ], "last_update_timestamp": 1457117071089 } Required Permissions: read Feature: aggregation_service_health_monitoring Additional Errors:

Get L2 forwarder statistics (Experimental)

Returns statistics of the l2 forwarder on logical switch.
It always returns realtime response.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-switches/<logical-switch-id>/inter-site-forwarder/statistics
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-switches/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/inter-site-forwarder/statistics Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
L2ForwarderStatistics+

Example Response: { "logical_switch_id": "7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c", "rx": { "total_bytes": 56646, "total_packets": 342, "dropped_packets": 103 }, "tx": { "total_bytes": 1125548, "total_packets": 2235, "dropped_packets": 0 }, "last_update_timestamp": 1457117071089 } Required Permissions: read Feature: aggregation_service_health_monitoring Additional Errors:

Get L2 forwarder status (Experimental) (Deprecated)

Returns status per transport node of the l2 forwarder on logical switch.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-switches/<logical-switch-id>/inter-site-forwarder/status
Request Headers:
n/a
Query Parameters:
DataSourceParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-switches/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/inter-site-forwarder/status Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
L2ForwarderStatus+

Example Response: { "logical_switch_id": "7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c", "status_per_node": [ { "transport_node": { "target_id": "258c50b4-c960-4005-9023-f7946e302162", "target_display_name": "Edge node 1", "is_valid": true }, "high_availability_status": "STANDBY" }, { "transport_node": { "target_id": "56eead22-3bb9-4586-8de3-9412941f9116", "target_display_name": "Edge node 2", "is_valid": true }, "high_availability_status": "ACTIVE" } ] "last_update_timestamp": 1457117071089 } Required Permissions: read Feature: aggregation_service_health_monitoring Additional Errors:

Paginated list of BGP Neighbors on edge transport node

Paginated list of BGP Neighbors on edge transport node.
Request:
Method:
GET
URI Path(s):
/api/v1/transport-nodes/<edge-node-id>/inter-site/bgp/neighbors
Request Headers:
n/a
Query Parameters:
ListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/transport-nodes/875381be-a4c5-4173-8aa7-ab71695a8129/inter-site/bgp/neighbors Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
BgpNeighborListResult+

Example Response: { "cursor": "0036640912b0-4820-46f0-b7c2-7a9e2cb57505neighbor2", "result_count": 2, "neighbors": [ { "id": "a9478c1d-d7ab-47c5-9e05-548920f4d88c", "display_name": "neighbor2", "resource_type": "BgpNeighbor", "hold_down_timer": 180, "neighbor_address": "1.1.1.1", "keep_alive_timer": 60, "remote_as_num": "300", "address_families": [ { "type" : "IPV4_UNICAST", "enabled" : true } ], "_last_modified_time": 1433948850593, "_create_time": 1433948850593, "_create_user": "admin", "_last_modified_user": "admin", "_revision": 0 }, { "id": "640912b0-4820-46f0-b7c2-7a9e2cb57505", "display_name": "neighbor1", "resource_type": "BgpNeighbor", "hold_down_timer": 180, "neighbor_address": "2.2.2.2", "keep_alive_timer": 60, "remote_as_num": "200", "address_families": [ { "type" : "IPV4_UNICAST", "enabled" : true, "in_filter_ipprefixlist_id" : "ad879413-dbc3-4952-b77d-28386c3a5363" } ], "_last_modified_time": 1433960878203, "_create_time": 1433949148014, "_create_user": "admin", "_last_modified_user": "admin", "_revision": 4 } ] } Required Permissions: read Feature: aggregation_service_health_monitoring Additional Errors:

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.
Request:
Method:
GET
URI Path(s):
/api/v1/transport-nodes/<edge-node-id>/inter-site/bgp/neighbors/<neighbor-id>/advertised-routes
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/transport-nodes/875381be-a4c5-4173-8aa7-ab71695a8129/inter-site/bgp/neighbors/f8431964-f400-4da5-8c18-4ce4e6bd5fa5/advertised-routes Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
BgpNeighborRouteDetails+

Example Response: { "logical_router_id": "4cca3156-bcc0-4c77-9a6a-141cb33a3844", "neighbor_address": "40.40.40.10", "per_transport_node_routes": [{ "transport_node_id": "6c9e2815-ad34-4b9c-bb95-8af87990cf5a", "source_address": "10.10.10.1", "routes": [{ "network": "2.1.4.0/24", "next_hop": "40.40.40.10", "local_pref": 0, "weight": 0, "med": 1, "as_path": 1000 }, { "network": "40.40.40.0/24", "next_hop": "40.40.40.10", "local_pref": 0, "weight": 0, "med": 1, "as_path": 1000 }] }, { "transport_node_id": "7980e91e-ba6d-11e8-9bda-020009ead346", "source_address": "50.50.50.1", "routes": [{ "network": "2.1.4.0/24", "next_hop": "40.40.40.10", "local_pref": 0, "weight": 0, "med": 1, "as_path": 1000 }, { "network": "40.40.40.0/24", "next_hop": "40.40.40.10", "local_pref": 0, "weight": 0, "med": 1, "as_path": 1000 }] }] } Required Permissions: read Feature: aggregation_service_health_monitoring Additional Errors:

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.
Request:
Method:
GET
URI Path(s):
/api/v1/transport-nodes/<edge-node-id>/inter-site/bgp/neighbors/<neighbor-id>/routes
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/transport-nodes/875381be-a4c5-4173-8aa7-ab71695a8129/inter-site/bgp/neighbors/f8431964-f400-4da5-8c18-4ce4e6bd5fa5/routes Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
BgpNeighborRouteDetails+

Example Response: { "logical_router_id": "4cca3156-bcc0-4c77-9a6a-141cb33a3844", "neighbor_address": "40.40.40.10", "per_transport_node_routes": [{ "transport_node_id": "6c9e2815-ad34-4b9c-bb95-8af87990cf5a", "source_address": "10.10.10.1", "routes": [{ "network": "2.1.4.0/24", "next_hop": "40.40.40.10", "local_pref": 0, "weight": 0, "med": 1, "as_path": 1000 }, { "network": "40.40.40.0/24", "next_hop": "40.40.40.10", "local_pref": 0, "weight": 0, "med": 1, "as_path": 1000 }] }, { "transport_node_id": "7980e91e-ba6d-11e8-9bda-020009ead346", "source_address": "50.50.50.1", "routes": [{ "network": "2.1.4.0/24", "next_hop": "40.40.40.10", "local_pref": 0, "weight": 0, "med": 1, "as_path": 1000 }, { "network": "40.40.40.0/24", "next_hop": "40.40.40.10", "local_pref": 0, "weight": 0, "med": 1, "as_path": 1000 }] }] } Required Permissions: read Feature: aggregation_service_health_monitoring Additional Errors:

Get inter-site BGP summary of edge node (Deprecated)

Returns BGP summary for all configured neighbors in tunnel VRF
on the given egde node. It always returns realtime response.
Request:
Method:
GET
URI Path(s):
/api/v1/transport-nodes/<edge-node-id>/inter-site/bgp/summary
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/transport-nodes/875381be-a4c5-4173-8aa7-ab71695a8129/inter-site/bgp/summary Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
InterSiteBgpSummary+

Example Response: { "transport_node_id": "875381be-a4c5-4173-8aa7-ab71695a8129", "neighbor_status": [ { "source_address": "10.1.1.1", "neighbor_address": "10.1.2.1", "remote_as_number": "1", "remote_port": 179, "local_port": 179, "connection_state": "ESTABLISHED", "time_since_established": 45628, "messages_received": 12, "messages_sent": 10, "connection_drop_count": 0, "established_connection_count": 1, "hold_time": 180, "keep_alive_interval": 30, "graceful_restart": true, "graceful_restart_mode": "HELPER_ONLY", "total_in_prefix_count": 2, "total_out_prefix_count": 1, "address_families": [ { "type": "IPV4_UNICAST", "in_prefix_count": 2, "out_prefix_count": 1 } ], "remote_site": { "target_id": "cfaec4c7-45c2-439b-b7c6-2c3aeabd9976", "target_display_name": "PA Site", "is_valid": true } } ], "last_update_timestamp": 1457117071089 } Required Permissions: read Feature: aggregation_service_health_monitoring Additional Errors:

Get inter-site statistics of edge node

Returns RTEP to RTEP tunnel port statistics of the given edge node.
It always returns realtime response.
Request:
Method:
GET
URI Path(s):
/api/v1/transport-nodes/<edge-node-id>/inter-site/statistics
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/transport-nodes/875381be-a4c5-4173-8aa7-ab71695a8129/inter-site/statistics Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
NodeInterSiteStatistics+

Example Response: { "transport_node_id": "875381be-a4c5-4173-8aa7-ab71695a8129", "stats_per_site": [ { "remote_site": { "target_id": "258c50b4-c960-4005-9023-f7946e302162", "target_display_name": "India Site", "is_valid": true }, "stats_per_tunnel": [ { "tunnel_source_address": "100.10.10.1", "tunnel_destination_address": "200.20.20.1", "rx": { "total_bytes": 1000, "total_packets": 100, "dropped_packets": 20 }, "tx": { "total_bytes": 2000, "total_packets": 300, "dropped_packets": 0 } }, { "tunnel_source_address": "300.30.30.1", "tunnel_destination_address": "400.40.40.1", "rx": { "total_bytes": 1500, "total_packets": 120, "dropped_packets": 50 }, "tx": { "total_bytes": 3000, "total_packets": 320, "dropped_packets": 10 } } ], "rx": { "total_bytes": 2500, "total_packets": 220, "dropped_packets": 70 }, "tx": { "total_bytes": 4500, "total_packets": 440, "dropped_packets": 60 } }, { "remote_site": { "target_id": "cfaec4c7-45c2-439b-b7c6-2c3aeabd9976", "target_display_name": "PA Site", "is_valid": true }, "stats_per_tunnel": [ { "tunnel_source_address": "100.10.10.1", "tunnel_destination_address": "200.20.20.1", "rx": { "total_bytes": 1000, "total_packets": 100, "dropped_packets": 20 }, "tx": { "total_bytes": 2000, "total_packets": 300, "dropped_packets": 0 } } ], "rx": { "total_bytes": 1000, "total_packets": 100, "dropped_packets": 20 }, "tx": { "total_bytes": 2000, "total_packets": 300, "dropped_packets": 0 } } ], "last_update_timestamp": 1457117071089 } Required Permissions: read Feature: aggregation_service_health_monitoring Additional Errors:

Federation: Observability

Associated URIs:

Get monitoring info

Provides federation monitoring information, which includes all
config flows originating from the site where API is invoked.
Request:
Method:
GET
URI Path(s):
/policy/api/v1/observability/flow-details
Request Headers:
n/a
Query Parameters:
SiteRequestParameter+
Request Body:
n/a

Example Request: GET https://<global-manager>/global-manager/api/v1/observability/flow-details GET https://<local-manager>/policy/api/v1/observability/flow-details Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
MonitoringInfo+

Example Response: On Global Manager { "monitoring_info": [{ "id": "rrrrrr-9ebc-46e0-9d7a-5a4fa8bb3802", "flow_type":"GM_TO_LM", "queue_info": [ { "max_size": 1000, "current_size": 100, "name": "gm2lm.transmitter.delta", "namespace": "ar-queues" }, { "max_size": 1000, "current_size": 200, "name": "gm2lm.receiver.delta", "namespace": "ar-queues" }, ], "cross_site_flow_info": { "status": "GOOD", "to_site_id": "36021bd5-9ebc-46e0-9d7a-5a4fa8bb3802", "to_site_path": "/global-infra/sites/Newyork", "from_site_id": "ececa019-3601-47dc-b92e-f21f52b34f6f", "from_site_path": "/global-infra/global-managers/LondonGM", "latency_millis": 123, "latency_measured_ts": 1590336614947, "last_full_sync": { "status": "COMPLETED", "id": "f6fda71a-d5f2-4000-8677-deaafd80641e", "reason_code": "10010", "reason": "Site onboarded", "stage": "COMPLETED", "data_streaming_from_source_progress": "Sending resources of type COMMUNICATION_MAP", "data_streaming_from_source_start_time": 1590335604947, "data_streaming_from_source_end_time": 1590336604947, "receiver_state": "COMPLETED", "receiver_start_time": 1590336614947, "receiver_end_time": 1590336714947, "start_time": 1590335604947, "end_time": 1590435604947, "errors": {}, "warnings": {} } } }, { "id": "asarrr-9ebc-46e0-9d7a-5a4fa8bb3802", "flow_type":"GM_TO_LM", "queue_info": [ { "max_size": 1000, "current_size": 100, "name": "gm2lm.transmitter.delta", "namespace": "ar-queues" }, { "max_size": 1000, "current_size": 200, "name": "gm2lm.receiver.delta", "namespace": "ar-queues" }, ], "cross_site_flow_info": { "status": "GOOD", "to_site_id": "aa021bd5-9ebc-46e0-9d7a-5a4fa8bb3111", "to_site_path": "/global-infra/sites/Paris", "from_site_id": "ececa019-3601-47dc-b92e-f21f52b34f6f", "from_site_path": "/global-infra/global-managers/LondonGM", "latency_millis": 123, "latency_measured_ts": 1590336614947, "last_full_sync": { "status": "COMPLETED", "id": "f6fda71a-d5f2-4000-8677-deaafd80641e", "reason_code": "10010", "reason": "Site onboarded", "stage": "COMPLETED", "data_streaming_from_source_progress": "Sending resources of type COMMUNICATION_MAP", "data_streaming_from_source_start_time": 1590335604947, "data_streaming_from_source_end_time": 1590336604947, "receiver_state": "COMPLETED", "receiver_start_time": 1590336614947, "receiver_end_time": 1590336714947, "start_time": 1590335604947, "end_time": 1590435604947, "errors": {}, "warnings": {} } } }, { "id": "rrbbr-9ebc-46e0-9d7a-5a4fa8bb3802", "flow_type":"LM_TO_GM", "queue_info": [ { "max_size": 1000, "current_size": 100, "name": "lm2gm.transmitter.delta", "namespace": "ar-queues" }, { "max_size": 1000, "current_size": 200, "name": "lm2gm.receiver.delta", "namespace": "ar-queues" }, ], "cross_site_flow_info": { "status": "GOOD", "to_site_id": "ececa019-3601-47dc-b92e-f21f52b34f6f", "to_site_path": "/global-infra/global-managers/LondonGM", "from_site_id": "aa021bd5-9ebc-46e0-9d7a-5a4fa8bb3111", "from_site_path": "/global-infra/sites/Paris", "latency_millis": 125 } }, { "id": "ca00-9ebc-46e0-9d7a-5a4fa8bb3802", "flow_type":"LM_TO_GM", "queue_info": [ { "max_size": 1000, "current_size": 100, "name": "lm2gm.transmitter.delta", "namespace": "ar-queues" }, { "max_size": 1000, "current_size": 200, "name": "lm2gm.receiver.delta", "namespace": "ar-queues" }, ], "cross_site_flow_info": { "status": "GOOD", "to_site_id": "ececa019-3601-47dc-b92e-f21f52b34f6f", "to_site_path": "/global-infra/global-managers/NewyorkGM", "from_site_id": "BB021bd5-9ebc-46e0-9d7a-5a4fa8bb3155", "from_site_path": "/global-infra/sites/Newyork", "latency_millis": 120 "latency_measured_ts": 1590336614947, } }, { "id": "cab10-9ebc-46e0-9d7a-5a4fa8bb3802", "flow_type":"GM_WORK_QUEUE", "queue_info": [ { "max_size": 1000, "current_size": 100, "name": "gm-work-queue", "namespace": "gm" } ] }, { "id": "dea0-9ebc-46e0-9d7a-5a4fa8bb3802", "flow_type":"GM_DELETE_QUEUE", "queue_info": [ { "max_size": 1000, "current_size": 100, "name": "gm-delete-queue-1", "namespace": "gm" } ] } ] } On Local Manager { "monitoring_info": [ { "id": "we11-9ebc-46e0-9d7a-5a4fa8bb3802", "flow_type":"GM_TO_LM", "queue_info": [ { "max_size": 1000, "current_size": 100, "name": "gm2lm.transmitter.delta", "namespace": "ar-queues" }, { "max_size": 1000, "current_size": 200, "name": "gm2lm.receiver.delta", "namespace": "ar-queues" }, ], "cross_site_flow_info": { "status": "GOOD", "to_site_id": "aa021bd5-9ebc-46e0-9d7a-5a4fa8bb3111", "to_site_path": "/global-infra/sites/Paris", "from_site_id": "ececa019-3601-47dc-b92e-f21f52b34f6f", "from_site_path": "/global-infra/global-managers/LondonGM", "latency_millis": 123, "latency_measured_ts": 1590336614947, "last_full_sync": { "status": "COMPLETED", "id": "f6fda71a-d5f2-4000-8677-deaafd80641e", "reason_code": "10010", "reason": "Site onboarded", "stage": "COMPLETED", "data_streaming_from_source_progress": "Sending resources of type COMMUNICATION_MAP", "data_streaming_from_source_start_time": 1590335604947, "data_streaming_from_source_end_time": 1590336604947, "receiver_state": "COMPLETED", "receiver_start_time": 1590336614947, "receiver_end_time": 1590336714947, "start_time": 1590335604947, "end_time": 1590435604947, "errors": {}, "warnings": {} } } }, { "id": "fg12-9ebc-46e0-9d7a-5a4fa8bb3802", "flow_type":"LM_TO_GM", "queue_info": [ { "max_size": 1000, "current_size": 100, "name": "lm2gm.transmitter.delta", "namespace": "ar-queues" }, { "max_size": 1000, "current_size": 200, "name": "lm2gm.receiver.delta", "namespace": "ar-queues" }, ], "cross_site_flow_info": { "status": "GOOD", "to_site_id": "ececa019-3601-47dc-b92e-f21f52b34f6f", "to_site_path": "/global-infra/global-managers/LondonGM", "from_site_id": "aa021bd5-9ebc-46e0-9d7a-5a4fa8bb3111", "from_site_path": "/global-infra/sites/Paris", "latency_millis": 125, "latency_measured_ts": 1590336614947, } }, { "id": "ff10-9ebc-46e0-9d7a-5a4fa8bb3802", "flow_type":"LM_TO_LM", "cross_site_flow_info": { "status": "GOOD", "to_site_id": "aa021bd5-9ebc-46e0-9d7a-5a4fa8bb3111", // To NewYork (LM doesn't have site paths) "from_site_id": "ececa019-3601-47dc-b92e-f21f52b34f6f", "latency_millis": 123, "latency_measured_ts": 1590336614947, } } ] } Required Permissions: read Feature: site_admin Additional Errors:

Federation: Sites

Associated URIs:

Get site offboarding status.

Get site offboarding status. This API is only available when using VMware NSX-T. Request:
Method:
GET
URI Path(s):
/policy/api/v1/infra/site/offboarding-status
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<policy>/policy/api/v1/infra/site/offboarding-status Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
SiteOffBoardingState+

Example Response: { "resource_type": "SiteOffBoardingState", "status": "INITIALIZE_INPROGRESS", "is_local": true, "_create_user": "admin", "_create_time": 1517262573524, "_last_modified_user": "admin", "_last_modified_time": 1517262573524, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 2 } Required Permissions: read Feature: site_admin Additional Errors:

List Sites

List Sites under Infra.
Request:
Method:
GET
URI Path(s):
/policy/api/v1/infra/sites
/policy/api/v1/global-infra/sites
Request Headers:
n/a
Query Parameters:
SiteListRequestParameters+
Request Body:
n/a

Example Request: GET https://<policy-mgr>/policy/api/v1/infra/sites Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
SiteListResult+

Example Response: { "result_count" : 3, "results" : [ { "resource_type": "Site", "id": "casablanca", "display_name": "Casablanca, Morocco Site", "description" : "Site managing call center workloads in North Africa", "path": "/infra/sites/casablanca", "parent_path": "/infra/sites/casablanca", "relative_path": "casablanca", "site_connection_info": [{ "fqdn": "10.192.201.163" }], "maximum_rtt": 250, "fail_if_rtt_exceeded": true, "fail_if_mismatch_rteps": true "_create_user": "admin", "_create_time": 1517262573524, "_last_modified_user": "admin", "_last_modified_time": 1517262573524, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 2 }, { "resource_type": "Site", "id": "tokyo", "display_name": "Tokyo, Japan Site", "description" : "Active Site managing production workloads in East Asia", "path": "/infra/sites/tokyo", "parent_path": "/infra/sites/tokyo", "relative_path": "tokyo", "site_connection_info": [{ "fqdn": "10.199.201.163" }], "maximum_rtt": 250, "fail_if_rtt_exceeded": true, "fail_if_mismatch_rteps": true "_create_user": "admin", "_create_time": 1517262573524, "_last_modified_user": "admin", "_last_modified_time": 1517262573524, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 2 }, { "resource_type": "Site", "id": "paris", "display_name": "Paris, France Site", "description" : "StandBy Site managing business workloads in Central Europe", "path": "/infra/sites/paris", "parent_path": "/infra/sites/paris", "relative_path": "paris", "site_connection_info": [{ "fqdn": "10.190.201.163" }], "maximum_rtt": 250, "fail_if_rtt_exceeded": true, "fail_if_mismatch_rteps": true "_create_user": "admin", "_create_time": 1517262573524, "_last_modified_user": "admin", "_last_modified_time": 1517262573524, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 2 } ] } Required Permissions: read Feature: site_admin Additional Errors:

Delete a site

Delete a site under Infra.
Request:
Method:
DELETE
URI Path(s):
/policy/api/v1/infra/sites/<site-id>
Request Headers:
n/a
Query Parameters:
SiteActionParameters+
Request Body:
n/a

Example Request: DELETE https://<policy-mgr>/policy/api/v1/infra/sites/Paris Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: site_admin Additional Errors:

Read a site

Read a site under Infra.
Request:
Method:
GET
URI Path(s):
/policy/api/v1/infra/sites/<site-id>
/policy/api/v1/global-infra/sites/<site-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<policy-mgr>/policy/api/v1/infra/sites/casablanca Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
Site+

Example Response: { "resource_type": "Site", "id": "casablanca", "display_name": "Casablanca, Morocco Site", "description" : "Site managing call center workloads in North Africa", "path": "/infra/sites/casablanca", "parent_path": "/infra/sites/casablanca", "relative_path": "casablanca", "site_connection_info": [{ "fqdn": "10.192.201.163" }], "maximum_rtt": 250, "fail_if_rtt_exceeded": true, "fail_if_mismatch_rteps": true "_create_user": "admin", "_create_time": 1517262573524, "_last_modified_user": "admin", "_last_modified_time": 1517262573524, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 2 } Required Permissions: read Feature: site_admin Additional Errors:

Create or patch Site

Create or patch Site under Infra.
Request:
Method:
PATCH
URI Path(s):
/policy/api/v1/infra/sites/<site-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
Site+

Example Request: PATCH https://<policy-mgr>/policy/api/v1/infra/sites/Paris { "site_connection_info": [{ "fqdn": "10.192.201.163", "username": "admin", "password": "Admin!23Admin", "thumbprint": "f53d7052535613b3032a41d555631228cb4d0d8b584a8225b94fbf0ba83eb9a4" }], "maximum_rtt": 250, "fail_if_rtt_exceeded": true, "fail_if_rtep_misconfigured": true "display_name": "Paris, EU Site", "description" : "Site managing call center workloads in western Europe", } Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: site_admin Additional Errors:

Create or fully replace a Site under infra

Create or fully replace a Site under Infra.
Revision is optional for creation and required for update.
Request:
Method:
PUT
URI Path(s):
/policy/api/v1/infra/sites/<site-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
Site+

Example Request: PUT https://<policy-mgr>/policy/api/v1/infra/sites/Paris { "site_connection_info": [{ "fqdn": "10.192.201.163", "username": "admin", "password": "Admin!23Admin", "thumbprint": "f53d7052535613b3032a41d555631228cb4d0d8b584a8225b94fbf0ba83eb9a4" }], "maximum_rtt": 250, "fail_if_rtt_exceeded": true, "fail_if_rtep_misconfigured": true "display_name": "Paris, EU Site", "description" : "Site managing call center workloads in western Europe", "_revision" : 1 } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
Site+

Example Response: { "resource_type": "Site", "id": "Paris", "display_name": "Paris, EU Site", "description" : "Site managing call center workloads in western Europe", "path": "/infra/sites/Paris", "parent_path": "/infra/sites/Paris", "relative_path": "Paris", "site_connection_info": [{ "fqdn": "10.192.201.163" }], "maximum_rtt": 250, "fail_if_rtt_exceeded": true, "fail_if_rtep_misconfigured": true "_create_user": "admin", "_create_time": 1517262573524, "_last_modified_user": "admin", "_last_modified_time": 1517262573524, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 2 } Required Permissions: crud Feature: site_admin Additional Errors:

Returns the certificate of the listener

Connects to the given IP and port, and, if an SSL listener is present, returns
the certificate of the listener.
Intent of this API is "Do you trust this certificate?".
Request:
Method:
GET
URI Path(s):
/policy/api/v1/infra/sites/listener_certificate
/policy/api/v1/global-infra/sites/listener_certificate
Request Headers:
n/a
Query Parameters:
TlsListenerEndpointAddressRequestParameters+
Request Body:
n/a

Example Request: POST https://<policy-mgr>/global-policy/api/v1/infra/sites/listener_certificate?address=10.22.122.7&port=443 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
TlsListenerCertificate+

Example Response: { "result": "SUCCESS", "certificate": { "issuer_cn": "vSM Test Certificate", "public_key_length": 1024, "signature": "4e cf ff 36 ac a1", "not_before": 1323772715000, "subject": "1.2.840.113549.1.9.1=#16076140622e636f6d,CN=vSM Test Certificate,OU=vShield,O=VMware,L=Pune,ST=Maharashtra,C=IN", "serial_number": "ca55f5e21a0b2dd2", "public_key_algo": "RSA", "version": "1", "issuer": "1.2.840.113549.1.9.1=#16076140622e636f6d,CN=vSM Test Certificate,OU=vShield,O=VMware,L=Pune,ST=Maharashtra,C=IN", "is_ca": false, "subject_cn": "vSM Test Certificate", "not_after": 1355308715000, "is_valid": false, "rsa_public_key_exponent": "10001", "signature_algorithm": "SHA1WITHRSA", "rsa_public_key_modulus": "00 b7 8f 79 e4" }, "thumbprint": "f53d7052535613b3032a41d555631228cb4d0d8b584a8225b94fbf0ba83eb9a4" } Required Permissions: read Feature: site_admin Additional Errors:

Get span for an entity with specified path

Get span for an entity with specified path. This API is only available when using VMware NSX-T. Request:
Method:
GET
URI Path(s):
/policy/api/v1/infra/span
/policy/api/v1/global-infra/span
Request Headers:
n/a
Query Parameters:
IntentPathRequestParameter+
Request Body:
n/a

Example Request: GET https://<global-manager>/global-manager/api/v1/global-infra/span?intent_path=/global-infra/tier-0s/t0 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
Span+

Example Response: { "resource_type": "SPAN", "span_resource_type": "PROVIDER", "span_resource": "/global-infra/tier-0s/t0", "span_leader": "/global-infra/tier-0s/t0", "site_ids": [ "51a1294a-b1d5-40a9-a382-2b1aeb62c41a", "3d497d3f-2f9a-4983-9db0-d1f5f7cbc3d0" ], "marked_for_delete": false, "overridden": false } Required Permissions: read Feature: site_admin Additional Errors:

Management Plane API

Management Plane API: Associations

Associated URIs:

Get ResourceReference objects to which the given resource belongs to

Returns information about resources that are associated with the given
resource. Id and type of the resource for which associated resources are
to be fetched are to be specified as query parameter in the URI. Resource
type of the associated resources must be specified as query
parameter.
Request:
Method:
GET
URI Path(s):
/api/v1/associations
Request Headers:
n/a
Query Parameters:
AssociationListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/associations?resource_id= bf250578-c0a5-4ca0-b237-0375966d23ce&resource_type=MACSet&associated_resource_type=NSGroup Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AssociationListResult+

Example Response: { "sort_by": "displayName", "sort_ascending": true, "result_count": 1, "results": [ { "target_type": "NSGroup", "target_display_name": "testNSGroup", "target_id": "4f3ba7e3-4876-45ef-882a-34bdcb1a1ac8" } ] } Required Permissions: read Feature: groups_groups Additional Errors:

Management Plane API: Grouping Objects

Management Plane API: Grouping Objects: IP Sets

Associated URIs:

List IPSets

Returns paginated list of IPSets
Request:
Method:
GET
URI Path(s):
/api/v1/ip-sets
Request Headers:
n/a
Query Parameters:
IPSetListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/ip-sets Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
IPSetListResult+

Example Response: { "sort_by": "displayName", "sort_ascending": true, "result_count": 1, "results": [ { "id": "96ebbc9f-6eae-4009-b709-532820dbba2a", "display_name": "testIPSet", "resource_type": "IPSet", "ip_addresses": [ "192.168.1.1-192.168.1.6", "192.168.1.8", "192.168.4.8/24" ], "_last_modified_user": "a;a", "_last_modified_time": 1439879046475, "_create_time": 1439879046475, "_system_owned": false, "_create_user": "a;a", "_revision": 0 } ] } Required Permissions: read Feature: groups_ip_sets Additional Errors:

Delete IPSet

Deletes the specified IPSet. By default, if the IPSet is added to an
NSGroup, it won't be deleted. In such situations, pass "force=true" as
query param to force delete the IPSet.
Request:
Method:
DELETE
URI Path(s):
/api/v1/ip-sets/<ip-set-id>
Request Headers:
n/a
Query Parameters:
IPSetDeleteRequestParameters+
Request Body:
n/a

Example Request: DELETE https://<nsx-mgr>/api/v1/ip-sets/22dc1d1a-adcb-4c58-874e-6e783df02790 DELETE https://<nsx-mgr>/api/v1/ip-sets/22dc1d1a-adcb-4c58-874e-6e783df02790 ?force=true Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: groups_ip_sets Additional Errors:

Read IPSet

Returns information about the specified IPSet
Request:
Method:
GET
URI Path(s):
/api/v1/ip-sets/<ip-set-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/ip-sets/2ffea46a-b537-4d71-98f5-6fedb7f3c28b Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
IPSet+

Example Response: { "id": "2ffea46a-b537-4d71-98f5-6fedb7f3c28b", "display_name": "testIPSet", "resource_type": "IPSet", "ip_addresses": [ "192.168.1.1-192.168.1.6", "192.168.1.8", "192.168.4.8/24" ], "_last_modified_user": "a;a", "_last_modified_time": 1439892910866, "_create_time": 1439892910866, "_system_owned": false, "_create_user": "a;a", "_revision": 0 } Required Permissions: read Feature: groups_ip_sets Additional Errors:

Add a IP address to a IPSet

Add/Remove an individual IP address to an IPSet
Request:
Method:
POST
URI Path(s):
/api/v1/ip-sets/<ip-set-id>
Request Headers:
n/a
Query Parameters:
IPMemberAction+
Request Body:
IPAddressElement+

Example Request: POST https://<nsx-mgr>/api/v1/ip-sets/183e372b-854c-4fcc-a24e-05721ce89a60?action=add_ip { "ip_address":"192.23.243.1" } example_response: | { "ip_address": "192.23.243.1", "_revision": 2 } POST https://<nsx-mgr>/api/v1/ip-sets/183e372b-854c-4fcc-a24e-05721ce89a60?action=remove_ip { "ip_address":"192.23.243.1" } example_response: | { "ip_address": "192.23.243.1", "_revision": 2 } Successful Response:
Response Code:
201 Created
Response Headers:
Content-type: application/json
Response Body:
IPAddressElement+

Required Permissions: crud Feature: groups_ip_sets Additional Errors:

Update IPSet

Updates the specified IPSet. Modifiable parameters include description,
display_name and ip_addresses.
Request:
Method:
PUT
URI Path(s):
/api/v1/ip-sets/<ip-set-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
IPSet+

Example Request: PUT https://<nsx-mgr>/api/v1/ip-sets/e8102843-dc86-47d4-903f-5911ea48deb7 { "resource_type": "IPSet", "display_name": "West Customers", "ip_addresses": [ "192.168.1.1-192.168.1.6", "192.168.1.0/24", "192.168.4.0/24" ], "_revision": 0 } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
IPSet+

Example Response: { "resource_type": "IPSet", "id": "e8102843-dc86-47d4-903f-5911ea48deb7", "display_name": "West Customers", "ip_addresses": [ "192.168.1.1-192.168.1.6", "192.168.1.0/24", "192.168.4.0/24" ], "_last_modified_time": 1458326830542, "_create_time": 1458326554714, "_last_modified_user": "admin", "_system_owned": false, "_create_user": "admin", "_revision": 1 } Required Permissions: crud Feature: groups_ip_sets Additional Errors:

Get all IPAddresses in a IPSet

List all IP addresses in a IPSet
Request:
Method:
GET
URI Path(s):
/api/v1/ip-sets/<ip-set-id>/members
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/ip-sets/183e372b-854c-4fcc-a24e-05721ce89a60/members Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
IPAddressElementListResult+

Example Response: { "result_count": 4, "results": [ { "ip_address": "12.234.21.231" }, { "ip_address": "10.192.23.11" }, { "ip_address": "10.11.123.21" }, { "ip_address": "23.12.32.11" } ] } Required Permissions: read Feature: groups_ip_sets Additional Errors:

Create MACSet

Creates a new MACSet that can group individual MAC addresses.
Request:
Method:
POST
URI Path(s):
/api/v1/mac-sets
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
MACSet+

Example Request: POST https://<nsx-mgr>/api/v1/mac-sets { "display_name":"testMACSet", "mac_addresses":["01:23:45:67:89:ab","00:14:22:01:23:45"] } Successful Response:
Response Code:
201 Created
Response Headers:
Content-type: application/json
Response Body:
MACSet+

Example Response: { "resource_type": "MACSet", "id": "c20eb62d-9ff1-4d64-8506-134e603e01f9", "display_name": "testMACSet", "mac_addresses": [ "01:23:45:67:89:AB", "00:14:22:01:23:45" ], "_last_modified_time": 1458327532700, "_create_time": 1458327532700, "_last_modified_user": "admin", "_system_owned": false, "_create_user": "admin", "_revision": 0 } Required Permissions: crud Feature: groups_mac_sets Additional Errors:

Management Plane API: Grouping Objects: MAC Sets

Associated URIs:

List MACSets

Returns paginated list of MACSets
Request:
Method:
GET
URI Path(s):
/api/v1/mac-sets
Request Headers:
n/a
Query Parameters:
MACSetListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/mac-sets Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
MACSetListResult+

Example Response: { "cursor": "003602cf0d81-4c1c-45fb-87b3-fb52ec89a8a4test-mac-set", "result_count": 1, "results": [ { "resource_type": "MACSet", "id": "02cf0d81-4c1c-45fb-87b3-fb52ec89a8a4", "display_name": "test-mac-set", "mac_addresses": [ "01:23:45:67:89:AB", "00:14:22:01:23:45", "01:66:48:21:97:AC", "00:57:82:44:12:99" ], "_create_time": 1454015311172, "_last_modified_user": "admin", "_system_owned": false, "_last_modified_time": 1454015311172, "_create_user": "admin", "_revision": 0 } ] } Required Permissions: read Feature: groups_mac_sets Additional Errors:

Read MACSet

Returns information about the specified MACSet
Request:
Method:
GET
URI Path(s):
/api/v1/mac-sets/<mac-set-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/mac-sets/183e372b-854c-4fcc-a24e-05721ce89a60 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
MACSet+

Example Response: { "_revision": 0, "id": "183e372b-854c-4fcc-a24e-05721ce89a60", "display_name":"testMACSet", "resource_type": "MACSet", "mac_addresses":["01:23:45:67:89:ab","00:14:22:01:23:45"], "_create_user": "system", "_last_modified_user": "system", "_last_modified_time": 1414057732203, "_create_time": 1414057732203 } Required Permissions: read Feature: groups_mac_sets Additional Errors:

Delete MACSet

Deletes the specified MACSet. By default, if the MACSet is added to an
NSGroup, it won't be deleted. In such situations, pass "force=true" as
query param to force delete the MACSet.
Request:
Method:
DELETE
URI Path(s):
/api/v1/mac-sets/<mac-set-id>
Request Headers:
n/a
Query Parameters:
MACSetDeleteRequestParameters+
Request Body:
n/a

Example Request: DELETE https://<nsx-mgr>/api/v1/mac-sets/183e372b-854c-4fcc-a24e-05721ce89a60 DELETE https://<nsx-mgr>/api/v1/mac-sets/183e372b-854c-4fcc-a24e-05721ce89a60 ?force=true Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: groups_mac_sets Additional Errors:

Update MACSet

Updates the specified MACSet. Modifiable parameters include the
description, display_name and mac_addresses.
Request:
Method:
PUT
URI Path(s):
/api/v1/mac-sets/<mac-set-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
MACSet+

Example Request: PUT https://<nsx-mgr>/api/v1/mac-sets/d95da628-8677-4d26-b593-76b51c6439c2 { "resource_type": "MACSet", "display_name": "Lab A MACs", "mac_addresses": [ "01:23:45:67:89:AB", "00:14:22:01:23:45" ], "_revision": 0 } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
MACSet+

Example Response: { "resource_type": "MACSet", "id": "d95da628-8677-4d26-b593-76b51c6439c2", "display_name": "Lab A MACs", "mac_addresses": [ "01:23:45:67:89:AB", "00:14:22:01:23:45" ], "_last_modified_time": 1458327141731, "_create_time": 1458167290173, "_last_modified_user": "admin", "_system_owned": false, "_create_user": "admin", "_revision": 1 } Required Permissions: crud Feature: groups_mac_sets Additional Errors:

Add a MAC address to a MACSet

Add an individual MAC address to a MACSet
Request:
Method:
POST
URI Path(s):
/api/v1/mac-sets/<mac-set-id>/members
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
MACAddressElement+

Example Request: POST https://<nsx-mgr>/api/v1/mac-sets/183e372b-854c-4fcc-a24e-05721ce89a60/members { "mac_address":"01:23:45:67:89:ab" } Successful Response:
Response Code:
201 Created
Response Headers:
Content-type: application/json
Response Body:
MACAddressElement+

Example Response: { "mac_address": "01:23:45:67:89:AB", "_revision": 2 } Required Permissions: crud Feature: groups_mac_sets Additional Errors:

Get all MACAddresses in a MACSet

List all MAC addresses in a MACSet
Request:
Method:
GET
URI Path(s):
/api/v1/mac-sets/<mac-set-id>/members
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/mac-sets/183e372b-854c-4fcc-a24e-05721ce89a60/members Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
MACAddressElementListResult+

Example Response: { "result_count": 4, "results": [ { "mac_address": "01:23:45:67:89:AB" }, { "mac_address": "00:14:22:01:23:45" }, { "mac_address": "01:66:48:21:97:AC" }, { "mac_address": "00:57:82:44:12:99" } ] } Required Permissions: read Feature: groups_mac_sets Additional Errors:

Remove a MAC address from given MACSet

Remove an individual MAC address from a MACSet
Request:
Method:
DELETE
URI Path(s):
/api/v1/mac-sets/<mac-set-id>/members/<mac-address>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: DELETE https://<nsx-mgr>/api/v1/mac-sets/183e372b-854c-4fcc-a24e-05721ce89a60/members/01:23:45:67:89:ab Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: groups_mac_sets Additional Errors:

Management Plane API: Grouping Objects: NS Groups

Associated URIs:

List NSGroups

List the NSGroups in a paginated format. The page size is restricted
to 50 NSGroups so that the size of the response remains small even
in the worst case.
Optionally, specify valid member types as request parameter to filter NSGroups.
Request:
Method:
GET
URI Path(s):
/api/v1/ns-groups
Request Headers:
n/a
Query Parameters:
NSGroupListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/ ns-groups/ GET https://<nsx-mgr>/api/v1/ ns-groups?member_types=LogicalPort,LogicalSwitch,VirtualMachine Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
NSGroupListResult+

Example Response: { "sort_ascending": true, "sort_by": "display_name", "result_count": 2, "results": [ { "resource_type": "NSGroup", "id": "71d33895-cebf-4ebe-bb84-5cd6f478cf44", "display_name": "NSGroup-1", "membership_criteria": [ { "resource_type": "NSGroupComplexExpression", "expressions": [ { "resource_type": "NSGroupTagExpression", "scope": "S1", "target_type": "LogicalSwitch", "tag": "T1", "scope_op": "EQUALS", "tag_op": "EQUALS" }, { "resource_type": "NSGroupTagExpression", "scope": "S2", "target_type": "LogicalSwitch", "tag": "T2", "scope_op": "EQUALS", "tag_op": "EQUALS" } ] } ], "members": [ { "resource_type": "NSGroupSimpleExpression", "op": "EQUALS", "target_resource": { "is_valid": true }, "target_type": "LogicalPort", "value": "8a042cca-ea22-4592-a816-c0365acd8a1a", "target_property": "id" } ], "member_count": 1, "_create_user": "admin", "_create_time": 1500424817903, "_last_modified_user": "admin", "_last_modified_time": 1500482503554, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 2 }, { "resource_type": "NSGroup", "id": "b350f55a-efb4-4040-a356-cc8438744e59", "display_name": "NSGroup-2", "membership_criteria": [ { "resource_type": "NSGroupTagExpression", "scope": "S1", "target_type": "LogicalSwitch", "tag": "T1", "scope_op": "EQUALS", "tag_op": "EQUALS" }, { "resource_type": "NSGroupTagExpression", "scope": "S2", "target_type": "LogicalSwitch", "tag": "T2", "scope_op": "EQUALS", "tag_op": "EQUALS" } ], "_create_user": "admin", "_create_time": 1500424859142, "_last_modified_user": "admin", "_last_modified_time": 1500424859148, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 1 } ] } { "sort_ascending": true, "sort_by": "displayName", "result_count": 1, "results": [ { "resource_type": "NSGroup", "id": "a21f8e31-52e9-4790-9574-0c5f52f24096", "display_name": "test-ns-group-4", "members": [ { "resource_type": "NSGroupSimpleExpression", "op": "EQUALS", "target_resource": { "target_display_name": "test-ipset-1", "is_valid": true, "target_type": "IPSet", "target_id": "8c0ab37c-c8db-4d69-99c9-21b6762a86f6" }, "target_type": "IPSet", "value": "8c0ab37c-c8db-4d69-99c9-21b6762a86f6", "target_property": "id" } ], "membership_criteria": [ {"resource_type": "NSGroupComplexExpression", "expressions" : [ { "resource_type" :"NSGroupTagExpression", "target_type": "LogicalPort", "scope": "S1", "tag": "T1" }, { "resource_type" : "NSGroupTagExpression", "target_type": "LogicalPort", "scope": "S2", "tag": "T2" } ] }, { "resource_type" : "NSGroupTagExpression", "target_type": "LogicalSwitch", "scope": "S3", "tag": "T3" } ] } ], "_create_user": "admin", "_create_time": 1445584267531, "_last_modified_user": "admin", "_system_owned": false, "_last_modified_time": 1445584267531, "_revision": 0 } ] } Required Permissions: read Feature: groups_groups Additional Errors:

Create NSGroup

Creates a new NSGroup that can group NSX resources - VIFs, Lports
and LSwitches as well as the grouping objects - IPSet, MACSet and other
NSGroups.
For NSGroups containing VM criteria(both static and dynamic), system VMs will
not be included as members. This filter applies at VM level only.
Exceptions are as follows:
1. LogicalPorts and VNI of System VMs will be included in NSGroup if the criteria
is based on LogicalPort, LogicalSwitch or VNI directly.
Request:
Method:
POST
URI Path(s):
/api/v1/ns-groups
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
NSGroup+

Example Request: POST https://<nsx-mgr>/api/v1/ns-groups { "display_name":"testNSGroup", "members":[ { "resource_type": "NSGroupSimpleExpression", "target_type": "IPSet", "target_property": "id", "op": "EQUALS", "value": "183e372b-854c-4fcc-a24e-05721ce89a60" } ], "membership_criteria": [ { "resource_type": "NSGroupComplexExpression", "expressions": [ { "resource_type": "NSGroupTagExpression", "target_type": "LogicalPort", "scope": "S1", "tag": "T1" }, { "resource_type": "NSGroupTagExpression", "target_type": "LogicalPort", "scope": "S2", "tag": "T2" } ] }, { "resource_type": "NSGroupTagExpression", "target_type": "LogicalSwitch", "scope": "S1", "tag": "T1" } ] } Successful Response:
Response Code:
201 Created
Response Headers:
Content-type: application/json
Response Body:
NSGroup+

Required Permissions: crud Feature: groups_groups Additional Errors:

Add NSGroup expression

Add/remove the expressions passed in the request body to/from the NSGroup
Request:
Method:
POST
URI Path(s):
/api/v1/ns-groups/<ns-group-id>
Request Headers:
n/a
Query Parameters:
MemberAction+
Request Body:
NSGroupExpressionList+

Example Request: POST https://<nsx-mgr>/api/v1/ ns-groups/183e372b-854c-4fcc-a24e-05721ce89a60?action=ADD_MEMBERS { "members": [ { "resource_type": "NSGroupSimpleExpression", "op": "EQUALS", "target_type": "IPSet", "value": "cd1b2ced-3d2c-4145-b54a-bf613c090aa", "target_property": "id" } ] } POST https://<nsx-mgr>/api/v1/ ns-groups/183e372b-854c-4fcc-a24e-05721ce89a60?action=REMOVE_MEMBERS { "members": [ { "resource_type": "NSGroupSimpleExpression", "op": "EQUALS", "target_type": "IPSet", "value": "cd1b2ced-3d2c-4145-b54a-bf613c090aa", "target_property": "id" } ] } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
NSGroup+

Required Permissions: crud Feature: groups_groups Additional Errors:

Update NSGroup

Updates the specified NSGroup. Modifiable parameters include the
description, display_name and members.
For NSGroups containing VM criteria(both static and dynamic), system VMs will
not be included as members. This filter applies at VM level only.
Exceptions are as follows.
1. LogicalPorts and VNI of system VMs will be included in NSGroup if the criteria
is based on LogicalPort, LogicalSwitch or VNI directly.
Request:
Method:
PUT
URI Path(s):
/api/v1/ns-groups/<ns-group-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
NSGroup+

Example Request: PUT https://<nsx-mgr>/api/v1/ ns-groups/183e372b-854c-4fcc-a24e-05721ce89a60 { "resource_type": "NSGroup", "id": "71d33895-cebf-4ebe-bb84-5cd6f478cf44", "display_name": "NSGroup-1", "membership_criteria": [ { "resource_type": "NSGroupComplexExpression", "expressions": [ { "resource_type": "NSGroupTagExpression", "scope": "S1", "target_type": "LogicalSwitch", "tag": "T1", "scope_op": "EQUALS", "tag_op": "EQUALS" }, { "resource_type": "NSGroupTagExpression", "scope": "S2", "target_type": "LogicalSwitch", "tag": "T2", "scope_op": "EQUALS", "tag_op": "EQUALS" } ] } ], "members": [ { "resource_type": "NSGroupSimpleExpression", "op": "EQUALS", "target_resource": { "is_valid": true }, "target_type": "LogicalPort", "value": "8a042cca-ea22-4592-a816-c0365acd8a1a", "target_property": "id" } ], "member_count": 1, "_create_user": "admin", "_create_time": 1500424817903, "_last_modified_user": "admin", "_last_modified_time": 1500482503554, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 2 } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
NSGroup+

Required Permissions: crud Feature: groups_groups Additional Errors:

Delete NSGroup

Deletes the specified NSGroup. By default, if the NSGroup is added to
another NSGroup, it won't be deleted. In such situations, pass
"force=true" as query param to force delete the NSGroup.
Request:
Method:
DELETE
URI Path(s):
/api/v1/ns-groups/<ns-group-id>
Request Headers:
n/a
Query Parameters:
NSGroupDeleteRequestParameters+
Request Body:
n/a

Example Request: DELETE https://<nsx-mgr>/api/v1/ ns-groups/183e372b-854c-4fcc-a24e-05721ce89a60 DELETE https://<nsx-mgr>/api/v1/ ns-groups/183e372b-854c-4fcc-a24e-05721ce89a60?force=true Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: groups_groups Additional Errors:

Read NSGroup

Returns information about the specified NSGroup.
Request:
Method:
GET
URI Path(s):
/api/v1/ns-groups/<ns-group-id>
Request Headers:
n/a
Query Parameters:
NSGroupRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/ ns-groups/183e372b-854c-4fcc-a24e-05721ce89a60 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
NSGroup+

Example Response: { "resource_type": "NSGroup", "id": "71d33895-cebf-4ebe-bb84-5cd6f478cf44", "display_name": "NSGroup-1", "membership_criteria": [ { "resource_type": "NSGroupComplexExpression", "expressions": [ { "resource_type": "NSGroupTagExpression", "scope": "S1", "target_type": "LogicalSwitch", "tag": "T1", "scope_op": "EQUALS", "tag_op": "EQUALS" }, { "resource_type": "NSGroupTagExpression", "scope": "S2", "target_type": "LogicalSwitch", "tag": "T2", "scope_op": "EQUALS", "tag_op": "EQUALS" } ] } ], "members": [ { "resource_type": "NSGroupSimpleExpression", "op": "EQUALS", "target_resource": { "is_valid": true }, "target_type": "LogicalPort", "value": "8a042cca-ea22-4592-a816-c0365acd8a1a", "target_property": "id" } ], "member_count": 1, "_create_user": "admin", "_create_time": 1500424817903, "_last_modified_user": "admin", "_last_modified_time": 1500482503554, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 2 } { "resource_type": "NSGroup", "id": "a21f8e31-52e9-4790-9574-0c5f52f24096", "display_name": "test-ns-group-4", "members": [ { "resource_type": "NSGroupSimpleExpression", "op": "EQUALS", "target_resource": { "target_display_name": "test-ipset-1", "is_valid": true, "target_type": "IPSet", "target_id": "8c0ab37c-c8db-4d69-99c9-21b6762a86f6" }, "target_type": "IPSet", "value": "8c0ab37c-c8db-4d69-99c9-21b6762a86f6", "target_property": "id" } ], "membership_criteria": [ {"resource_type": "NSGroupComplexExpression", "expressions" : [ { "resource_type" :"NSGroupTagExpression", "target_type": "LogicalPort", "scope": "S1", "tag": "T1" }, { "resource_type" : "NSGroupTagExpression", "target_type": "LogicalPort", "scope": "S2", "tag": "T2" } ] }, { "resource_type" : "NSGroupTagExpression", "target_type": "LogicalSwitch", "scope": "S3", "tag": "T3" } ], "_create_user": "admin", "_create_time": 1445584267531, "_last_modified_user": "admin", "_system_owned": false, "_last_modified_time": 1445584267531, "_revision": 0 } Required Permissions: read Feature: groups_groups Additional Errors:

Get consolidated Effective IPAddress translated from the NSGroup

Returns consolidated effective ip address members of the specified NSGroup.
Applicable in case of federated environment. The response contains site-wise list of
consolidated effective IP address members. In the response, for the local-site, the
list will contain static and dynamicaly translated IPs. For the remote sites,
the list will contain only the dynamically translated IPs. The static IPs will not be
seen in the response of this API. Hence, user can refer to the local-site Ip response
in the API results or the group definition to see the static IP membership of the Group.
This API is applicable only for NSGroups containing either
VirtualMachine, VIF, LogicalSwitch, LogicalPort or IPSet member type.
For NSGroups containing other member types,it returns an empty list.
Use the cursor value in the response to fetch the next page.
If there is no cursor value for a response, it implies the last page in the results
for the query.
Request:
Method:
GET
URI Path(s):
/api/v1/ns-groups/<ns-group-id>/consolidated-effective-ip-address-members
Request Headers:
n/a
Query Parameters:
ConsolidatedAPIListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/ns-groups/0c963c9d-eea8-4180-b6f3-93385fa497ca/consolidated-effective-ip-address-members Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
ConsolidatedEffectiveIPAddressMemberListResult+

Example Response: { "results": [ { "site_id": "e977e929-255e-41c0-a938-a35d12f860ee", "effective_ips": [ "10.160.8.45", "10.160.16.77" ] }, { "site_id": "210d7017-5dca-4901-bfcc-c63928215160", "effective_ips": [ "10.160.10.118", "10.160.27.172" ] }, { "site_id": "fa8be70f-b592-4cb1-add9-b89ccdfd3ee3", "effective_ips": [ "25.1.1.1", "25.1.1.2/31", "25.1.1.10", "10.160.15.134", "fd34:fe56:7891:2f3a:0:0:0:0/64", "25.1.1.8/31", "10.160.26.223", "fd01:0:101:2600:20c:29ff:fe23:eef3", "25.1.1.4/30", "20.1.1.1/28", "10.112.10.1" ] } ], "cursor": "7806177147493" } Required Permissions: read Feature: groups_groups Additional Errors:

Get Effective Cloud Native Service Instances of the specified NSGroup.

Returns effective cloud native service instances of the specified NSGroup.
This API is applicable only for NSGroups containing CloudNativeServiceInstance member type.
For NSGroups containing other member types,it returns an empty list. target_id in response
is external_id of CloudNativeServiceInstance
Request:
Method:
GET
URI Path(s):
/api/v1/ns-groups/<ns-group-id>/effective-cloud-native-service-instance-members
Request Headers:
n/a
Query Parameters:
ListRequestParameters+
Request Body:
n/a

Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
EffectiveMemberResourceListResult+

Example Response: { "cursor" : "00361f148bdc-fe7c-4320-8ef3-594e28d57c87Iws-2", "result_count" : 1, "results" : [ { "target_display_name" : "CNS-2", "target_id" : "420e72c9-55e7-a4f7-81bf-673a2af1a6cf" } ] } Required Permissions: read Feature: groups_groups Additional Errors:

Get Effective Directory Groups of the specified NSGroup.

Returns effective directory groups which are members of the specified NSGroup.
This API is applicable only for NSGroups containing DirectoryGroup member type.
For NSGroups containing other member types,it returns an empty list.
Request:
Method:
GET
URI Path(s):
/api/v1/ns-groups/<ns-group-id>/effective-directory-group-members
Request Headers:
n/a
Query Parameters:
ListRequestParameters+
Request Body:
n/a

Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
EffectiveMemberResourceListResult+

Example Response: { "cursor": "00361f148bdc-fe7c-4320-8ef3-594e28d57c87Iws-2", "sort_ascending": true, "result_count": 2, "results": [ { "target_id" : "fcb51d1d-b141-4f5b-a0b9-1063a1470a63", "target_display_name" : "ADGroup1", "target_type" : "DirectoryGroup", }, { "id" : "3eecac54-15e7-4a0d-b418-001052fcfdcd", "display_name" : "ADGroup2", "target_type" : "DirectoryGroup" } ] } Required Permissions: read Feature: groups_groups Additional Errors:

Get Effective IPAddress translated from the NSGroup

Returns effective ip address members of the specified NSGroup.
This API is applicable only for NSGroups containing either
VirtualMachine, VIF, LogicalSwitch, LogicalPort or IPSet member type.
For NSGroups containing other member types,it returns an empty list.
Request:
Method:
GET
URI Path(s):
/api/v1/ns-groups/<ns-group-id>/effective-ip-address-members
Request Headers:
n/a
Query Parameters:
ListRequestParameters+
Request Body:
n/a

Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
EffectiveIPAddressMemberListResult+

Example Response: { "cursor": "00012", "sort_ascending": true, "result_count": 2, "results": [ "10.112.1.1", "10.112.1.2/24" ] } Required Permissions: read Feature: groups_groups Additional Errors:

Get Effective IPSets of the specified NSGroup.

Returns effective IPSets which are members of the specified NSGroup.
This API is applicable only for NSGroups containing IPSet member type.
For NSGroups containing other member types,it returns an empty list.
Request:
Method:
GET
URI Path(s):
/api/v1/ns-groups/<ns-group-id>/effective-ipset-members
Request Headers:
n/a
Query Parameters:
ListRequestParameters+
Request Body:
n/a

Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
EffectiveMemberResourceListResult+

Example Response: { "cursor": "00361f148bdc-fe7c-4320-8ef3-594e28d57c87Iws-2", "sort_ascending": true, "result_count": 2, "results": [ { "target_id" : "fcb51d1d-b141-4f5b-a0b9-1063a1470a63", "target_display_name" : "IPSet1", "target_type" : "IPSet", }, { "id" : "3eecac54-15e7-4a0d-b418-001052fcfdcd", "display_name" : "IPSet2", "target_type" : "IPSet" } ] } Required Permissions: read Feature: groups_groups Additional Errors:

Get Effective Logical Ports translated from the NSgroup

Returns effective logical port members of the specified NSGroup.
This API is applicable only for NSGroups containing either VirtualMachines,
LogicalSwitch or LogicalPort member types.For NSGroups containing other
member types,it returns an empty list.
Request:
Method:
GET
URI Path(s):
/api/v1/ns-groups/<ns-group-id>/effective-logical-port-members
Request Headers:
n/a
Query Parameters:
ListRequestParameters+
Request Body:
n/a

Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
EffectiveMemberResourceListResult+

Example Response: { "cursor": "00012", "sort_ascending": true, "result_count": 2, "results": [ { "target_id" : "20c1ac1f-58b5-4241-a352-f8e82c4a8c65", "target_display_name" : "LP-HR1", "target_type" : "LogicalPort", "is_valid": true }, { "target_id" : "c07005fe-4a9a-47f1-9a1e-2db65a285124", "target_display_name" : "LP-HR2", "target_type" : "LogicalPort" "is_valid": true } ] } Required Permissions: read Feature: groups_groups Additional Errors:

Get Effective switch members translated from the NSGroup

Returns effective logical switch members of the specified NSGroup.
This API is applicable for NSGroups containing LogicalSwitch members.
For NSGroups containing other member types,it returns an empty list.
Request:
Method:
GET
URI Path(s):
/api/v1/ns-groups/<ns-group-id>/effective-logical-switch-members
Request Headers:
n/a
Query Parameters:
ListRequestParameters+
Request Body:
n/a

Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
EffectiveMemberResourceListResult+

Example Response: { "cursor": "00012", "sort_ascending": true, "result_count": 2, "results": [ { "target_id" : "20c1ac1f-58b5-4241-a352-f8e82c4a8c65", "target_display_name" : "LS-HR1", "target_type" : "LogicalSwitch" "is_valid": true }, { "target_id" : "c07005fe-4a9a-47f1-9a1e-2db65a285124", "target_display_name" : "LS-HR2", "target_type" : "LogicalSwitch" "is_valid": true } ] } Required Permissions: read Feature: groups_groups Additional Errors:

Get Effective Physical Server Memebers of the specified NSGroup.

Returns effective physical server members of the specified NSGroup.
This API is applicable only for NSGroups containing Physical Server member type.
For NSGroups containing other member types,it returns an empty list.
Request:
Method:
GET
URI Path(s):
/api/v1/ns-groups/<ns-group-id>/effective-physical-server-members
Request Headers:
n/a
Query Parameters:
ListRequestParameters+
Request Body:
n/a

Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
EffectiveMemberResourceListResult+

Example Response: { "cursor" : "00361f148bdc-fe7c-4320-8ef3-594e28d57c87Iws-2", "result_count" : 1, "results" : [ { "target_display_name" : "PhysicalServer-1", "target_id" : "420e72c9-55e7-a4f7-81bf-673a2af1a6cf", } ] } Required Permissions: read Feature: groups_groups Additional Errors:

Get effective transport node members translated from the NSGroup

Returns effective transport node members of the specified NSGroup.
This API is applicable only for NSGroups containing TransportNode member type.
For NSGroups containing other member types,it returns an empty list.
Request:
Method:
GET
URI Path(s):
/api/v1/ns-groups/<ns-group-id>/effective-transport-node-members
Request Headers:
n/a
Query Parameters:
ListRequestParameters+
Request Body:
n/a

Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
EffectiveMemberResourceListResult+

Example Response: { "sort_ascending": true, "sort_by": "target_display_name", "result_count": 1, "results": [ { "target_id": "5327b241-7fdd-4d41-9e93-76e006b8a4c2", "target_display_name" : "TransportNode-1", "target_type": "TransportNode", "is_valid": true } ] } Required Permissions: read Feature: groups_groups Additional Errors:

Get effective VIF members translated from the NSGroup

Returns effective VIF members of the specified NSGroup.
This API is applicable only for NSGroups containing either
VirtualMachines or VIF member type. For NSGroups containing other
member types,it returns an empty list.
Request:
Method:
GET
URI Path(s):
/api/v1/ns-groups/<ns-group-id>/effective-vif-members
Request Headers:
n/a
Query Parameters:
ListRequestParameters+
Request Body:
n/a

Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
VirtualNetworkInterfaceListResult+

Example Response: { "cursor": "00012", "sort_ascending": true, "result_count": 1, "results": [ { "external_id": "7df47d56-cd7c-44b0-8291-aa83555ca2e8-4001", "lport_attachment_id": "8c7d1036-0b86-47b3-b808-663d0d382618" } ] ] } Required Permissions: read Feature: groups_groups Additional Errors:

Get Effective Virtual Machine members of the specified NSGroup.

Returns effective virtual machine members of the specified NSGroup.
This API is applicable only for NSGroups containing VirtualMachine member type.
For NSGroups containing other member types,it returns an empty list.
Request:
Method:
GET
URI Path(s):
/api/v1/ns-groups/<ns-group-id>/effective-virtual-machine-members
Request Headers:
n/a
Query Parameters:
ListRequestParameters+
Request Body:
n/a

Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
VirtualMachineListResult+

Example Response: { "cursor" : "00361f148bdc-fe7c-4320-8ef3-594e28d57c87Iws-2", "result_count" : 1, "results" : [ { "display_name" : "Iws-2", "resource_type" : "VirtualMachine", "local_id_on_host": "1", "external_id" : "420e72c9-55e7-a4f7-81bf-673a2af1a6cf", "host_id" : "cf0ffd7a-818a-11e4-9ab1-cb7a79b0af39", "compute_ids" : [ "locationId:420e72c9-55e7-a4f7-81bf-673a2af1a6cf", "instanceUuid:500e0c08-2ecc-2609-d9ba-ed489e48c787", "biosUuid:420e72c9-55e7-a4f7-81bf-673a2af1a6cf", "externalId:420e72c9-55e7-a4f7-81bf-673a2af1a6cf", "hostLocalId:1", "moIdOnHost:1" ], "tags" :[ { "Scope" : "S1" "Tag" : "T1" }, ] "type" : "REGULAR", "powerState" : "VM_RUNNING", } ] } Required Permissions: read Feature: groups_groups Additional Errors:

Get member types from NSGroup

Returns member types for a specified NSGroup including child NSGroups.
This considers static members and members added via membership criteria only
Request:
Method:
GET
URI Path(s):
/api/v1/ns-groups/<ns-group-id>/member-types
Request Headers:
n/a
Query Parameters:
ListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/ ns-groups/183e372b-854c-4fcc-a24e-05721ce89a60/member-types Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
EffectiveMemberTypeListResult+

Example Response: { "result_count": 3, "results": [ "IPSet", "LogicalPort", "LogicalSwitch" ] } Required Permissions: read Feature: groups_groups Additional Errors:

Get services to which the given nsgroup belongs to

Returns information about services that are associated with the given NSGroup.
The service name is passed by service_type parameter
Request:
Method:
GET
URI Path(s):
/api/v1/ns-groups/<nsgroup-id>/service-associations
Request Headers:
n/a
Query Parameters:
NSGroupServiceAssociationListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/ns-groups/bf250578-c0a5-4ca0-b237-0375966d23ce/service-associations?service_type=firewall&fetch_parentgroup_associations=true Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
ServiceAssociationListResult+

Example Response: { "cursor": "003600000000-0000-0000-0000-0000000000022305843009213694015", "sort_by": "priority", "result_count": 2, "results": [ { "id": "111616", "display_name": "allow-icmp", "notes": "", "destinations_excluded": false, "destinations": [ { "target_display_name": "app-switch", "is_valid": true, "target_type": "NSgroup", "target_id": "1d9fb5cb-0344-4d7f-899a-afd93276899f" }, { "target_display_name": "web-switch", "is_valid": true, "target_type": "NSgroup", "target_id": "b489b427-9f14-401e-81db-d1105a1917fe" } ], "services": [ { "service": { "resource_type": "ICMPTypeNSService", "icmp_type": 8, "protocol": "ICMPv4", "icmp_code": 0 } } ], "ip_protocol": "IPV4_IPV6", "rule_tag": "", "logged": false, "action": "ALLOW", "sources_excluded": false, "disabled": false, "direction": "IN_OUT", "_revision": 3 }, { "id": "2", "display_name": "00000000-0000-0000-0000-000000000002", "notes": "", "destinations_excluded": false, "ip_protocol": "IPV4_IPV6", "rule_tag": "", "logged": false, "action": "ALLOW", "sources_excluded": false, "disabled": false, "direction": "IN_OUT", "_revision": 3 } ] } Required Permissions: read Feature: services_services Additional Errors:

Get the list of all the virtual machines that are not a part of any existing NSGroup.

Get the list of all the virtual machines that are not a part of any existing NSGroup.
Request:
Method:
GET
URI Path(s):
/api/v1/ns-groups/unassociated-virtual-machines
Request Headers:
n/a
Query Parameters:
VirtualMachineListRequestParameters+
Request Body:
n/a

Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
UnassociatedVMListResult+

Example Response: { "cursor" : "00361f148bdc-fe7c-4320-8ef3-594e28d57c87Iws-2", "result_count" : 1, "last_update_timestamp": 1488437880015 "results" : [ { "display_name" : "Iws-2", "resource_type" : "VirtualMachine", "local_id_on_host": "1", "external_id" : "420e72c9-55e7-a4f7-81bf-673a2af1a6cf", "host_id" : "cf0ffd7a-818a-11e4-9ab1-cb7a79b0af39", "compute_ids" : [ "locationId:420e72c9-55e7-a4f7-81bf-673a2af1a6cf", "instanceUuid:500e0c08-2ecc-2609-d9ba-ed489e48c787", "biosUuid:420e72c9-55e7-a4f7-81bf-673a2af1a6cf", "externalId:420e72c9-55e7-a4f7-81bf-673a2af1a6cf", "hostLocalId:1", "moIdOnHost:1" ], "tags" :[ { "Scope" : "tenant", "Tag" : "Customer1" }, ] "type" : "REGULAR", "powerState" : "VM_RUNNING", } ] } Required Permissions: read Feature: groups_groups Additional Errors:

Create NSProfile

Creates a new NSProfile which allows users to encapsulate attribute and
sub-attributes of network services.
Rules for using attributes and sub-attributes in single NSProfile
1. One type of attribute can't have multiple occurrences. ( Example -
Attribute type APP_ID can be used only once per NSProfile.)
2. Values for an attribute are mentioned as array of strings.
( Example - For type APP_ID , values can be mentioned as ["SSL","FTP"].)
3. If sub-attribtes are mentioned for an attribute, then only single
value is allowed for that attribute.
4. To get a list of supported
attributes and sub-attributes fire the following REST API
GET https://<nsx-mgr>/api/v1/ns-profiles/attributes
Request:
Method:
POST
URI Path(s):
/api/v1/ns-profiles
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
NSProfile+

Example Request: POST https://<nsx-mgr>/api/v1/ns-profiles { "resource_type":"NSProfile", "display_name":"MixedProfile", "description":"Test NS Profile", "nsprofile_attribute":[ { "attributes_data":{ "key":"APP_ID", "value":["SSL"], "datatype":"STRING" }, "sub_attributes":[ { "key":"TLS_VERSION", "value":["SSL_V3, TLS_V10"], "datatype":"STRING" }, { "key":"TLS_CIPHER_SUITE", "value":["TLS_RSA_EXPORT_WITH_RC4_40_MD5 , TLS_RSA_WITH_IDEA_CBC_SHA"], "datatype":"STRING" } ] }, { "attributes_data":{ "key":"DOMAIN_NAME", "value":["*.skype.com"], "datatype":"STRING" } } ] } Successful Response:
Response Code:
201 Created
Response Headers:
Content-type: application/json
Response Body:
NSProfile+

Required Permissions: crud Feature: groups_groups Additional Errors:

Management Plane API: Grouping Objects: NS Profiles

Associated URIs:

Create IPSet

Creates a new IPSet that can group either IPv4 or IPv6 individual ip addresses,
ranges or subnets.
Request:
Method:
POST
URI Path(s):
/api/v1/ip-sets
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
IPSet+

Example Request: POST https://<nsx-mgr>/api/v1/ip-sets { "display_name":"testIPSet", "ip_addresses":["192.168.1.1-192.168.1.6","192.168.1.8","192.168.4.8/24"] } Successful Response:
Response Code:
201 Created
Response Headers:
Content-type: application/json
Response Body:
IPSet+

Example Response: { "id": "96ebbc9f-6eae-4009-b709-532820dbba2a", "display_name": "testIPSet", "resource_type": "IPSet", "ip_addresses": [ "192.168.1.1-192.168.1.6", "192.168.1.8", "192.168.4.8/24" ], "_last_modified_user": "a;a", "_last_modified_time": 1439879046475, "_create_time": 1439879046475, "_system_owned": false, "_create_user": "a;a", "_revision": 0 } Required Permissions: crud Feature: groups_ip_sets Additional Errors:

List NSProfiles

List the NSProfiles created in a paginated format.The page size is restricted
to 50 NSProfiles, so that the size of the response remains small even
when there are high number of NSProfiles with multiple attributes and
multiple attribute values for each attribute.
Request:
Method:
GET
URI Path(s):
/api/v1/ns-profiles
Request Headers:
n/a
Query Parameters:
NSProfileListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/ns-profiles GET https://<nsx-mgr>/api/v1/ns-profiles?attribute_type=APP_ID Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
NSProfileListResult+

Example Response: { "sort_ascending": true, "sort_by": "display_name", "result_count": 1, "results": [ { "resource_type": "NSProfile", "description": "Test NS Profile", "id": "56f40812-d617-4053-a07b-c91be36f1e15", "display_name": "MixedProfile", "nsprofile_attribute": [ { "attributes_data": { "datatype": "STRING", "value": [ "SSL" ], "key": "APP_ID" }, "sub_attributes": [ { "datatype": "STRING", "value": [ "SSL_V3", " TLS_V10" ], "key": "TLS_VERSION" }, { "datatype": "STRING", "value": [ "TLS_RSA_EXPORT_WITH_RC4_40_MD5 ", " TLS_RSA_WITH_IDEA_CBC_SHA" ], "key": "TLS_CIPHER_SUITE" } ] }, { "attributes_data": { "datatype": "STRING", "value": [ "*.skype.com" ], "key": "DOMAIN_NAME" } } ], "_create_user": "admin", "_create_time": 1537532908456, "_last_modified_user": "admin", "_last_modified_time": 1537532908456, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 } ] } Required Permissions: read Feature: groups_groups Additional Errors:

Update NSProfile

Updates the specified NSProfile.
Rules for using attributes and sub-attributes in single NSProfile
1. One type of attribute can't have multiple occurrences. ( Example -
Attribute type APP_ID can be used only once per NSProfile.)
2. Values for an attribute are mentioned as array of strings.
( Example - For type APP_ID , values can be mentioned as ["SSL","FTP"].)
3. If sub-attribtes are mentioned for an attribute, then only single
value is allowed for that attribute.
4. To get a list of supported
attributes and sub-attributes fire the following REST API
GET https://<nsx-mgr>/api/v1/ns-profiles/attributes
Request:
Method:
PUT
URI Path(s):
/api/v1/ns-profiles/<ns-profile-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
NSProfile+

Example Request: PUT https://<nsx-mgr>/api/v1/ ns-profiles/183e372b-854c-4fcc-a24e-05721ce89a60 { "resource_type":"NSProfile", "display_name":"MixedProfile", "description":"Test NS Profile", "nsprofile_attribute":[ { "attributes_data":{ "key":"APP_ID", "value":["SSH"], "datatype":"STRING" } } ], "_revision": 0 } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
NSProfile+

Example Response: { "resource_type": "NSProfile", "description": "Test NS Profile", "id": "56f40812-d617-4053-a07b-c91be36f1e15", "display_name": "MixedProfile", "nsprofile_attribute": [ { "attributes_data": { "datatype": "STRING", "value": [ "SSH" ], "key": "APP_ID" } } ], "_create_user": "admin", "_create_time": 1537532908456, "_last_modified_user": "admin", "_last_modified_time": 1537534166578, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 1 } Required Permissions: crud Feature: groups_groups Additional Errors:

Read NSProfile

Returns information about the specified NSProfile.
Request:
Method:
GET
URI Path(s):
/api/v1/ns-profiles/<ns-profile-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/ ns-profiles/ed5d47fc-3d90-461d-bc78-9be38cf2d1b9 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
NSProfile+

Example Response: { "resource_type": "NSProfile", "description": "Test NS Profile", "id": "56f40812-d617-4053-a07b-c91be36f1e15", "display_name": "MixedProfile", "nsprofile_attribute": [ { "attributes_data": { "datatype": "STRING", "value": [ "SSL" ], "key": "APP_ID" }, "sub_attributes": [ { "datatype": "STRING", "value": [ "SSL_V3", " TLS_V10" ], "key": "TLS_VERSION" }, { "datatype": "STRING", "value": [ "TLS_RSA_EXPORT_WITH_RC4_40_MD5 ", " TLS_RSA_WITH_IDEA_CBC_SHA" ], "key": "TLS_CIPHER_SUITE" } ] }, { "attributes_data": { "datatype": "STRING", "value": [ "*.skype.com" ], "key": "DOMAIN_NAME" } } ], "_create_user": "admin", "_create_time": 1537532908456, "_last_modified_user": "admin", "_last_modified_time": 1537532908456, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 } Required Permissions: read Feature: groups_groups Additional Errors:

Delete NSProfile

Deletes the specified NSProfile. By default, if the NSProfile is
consumed in a Firewall rule, it won't get deleted. In such
situations, pass "force=true" as query param to force delete
the NSProfile.
Request:
Method:
DELETE
URI Path(s):
/api/v1/ns-profiles/<ns-profile-id>
Request Headers:
n/a
Query Parameters:
NSProfileDeleteRequestParameters+
Request Body:
n/a

Example Request: DELETE https://<nsx-mgr>/api/v1/ ns-profiles/183e372b-854c-4fcc-a24e-05721ce89a60 DELETE https://<nsx-mgr>/api/v1/ ns-profiles/183e372b-854c-4fcc-a24e-05721ce89a60?force=true Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: groups_groups Additional Errors:

List NSProfile supported attribute types

Returns supported attribute type strings for NSProfile.
Request:
Method:
GET
URI Path(s):
/api/v1/ns-profiles/attribute-types
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/ns-profiles/attribute-types Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
NSSupportedAttributeTypesResult+

Example Response: { "attribute_types": [ "APP_ID", "DOMAIN_NAME" ] } Required Permissions: read Feature: groups_groups Additional Errors:

List NSProfile supported attribute and sub-attributes

Returns supported attribute and sub-attributes for specified
attribute type with their supported values, if provided in query/request
parameter, else will fetch all supported attribute and sub-attributes for
all supported attribute types.
Request:
Method:
GET
URI Path(s):
/api/v1/ns-profiles/attributes
Request Headers:
n/a
Query Parameters:
NSSupportedAttributesListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/ns-profiles/attributes GET https://<nsx-mgr>/api/v1/ns-profiles /attributes?attribute_type=APP_ID Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
NSSupportedAttributesListResult+

Example Response: { "result_count": 1, "results": [ { "attributes_data": { "datatype": "STRING", "value": [ "FTP" ], "key": "APP_ID" } }, { "attributes_data": { "datatype": "STRING", "value": [ "CIFS" ], "key": "APP_ID" }, "sub_attributes": [ { "datatype": "STRING", "value": [ "CIFS_SMB_V1" ], "key": "CIFS_SMB_VERSION" }, { "datatype": "STRING", "value": [ "CIFS_SMB_V2" ], "key": "CIFS_SMB_VERSION" } ] }, { "attributes_data": { "datatype": "STRING", "value": [ "outlook.office.com" ], "key": "DOMAIN_NAME" } } ] ...[output truncated for brevity] } Required Permissions: read Feature: groups_groups Additional Errors:

Management Plane API: Grouping Objects: NS Service Groups

Associated URIs:

List all NSServiceGroups

Returns paginated list of NSServiceGroups
Request:
Method:
GET
URI Path(s):
/api/v1/ns-service-groups
Request Headers:
n/a
Query Parameters:
NSServiceGroupListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/ns-service-groups Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
NSServiceGroupListResult+

Example Response: { "sort_ascending": true, "sort_by": "displayName", "result_count": 39, "results": [ { "resource_type": "NSServiceGroup", "description": "Data Recovery Appliance", "id": "6525a2c3-32a8-4560-84fd-0fe3482b845b", "display_name": "Data Recovery Appliance", "service_type": "NON_ETHER", "default_service": true, "members": [ { "target_display_name": "VMware-DataRecovery", "is_valid": true, "target_type": "NSService", "target_id": "37d6cc1d-4ceb-4802-8e20-e41556af7b59" }, { "target_display_name": "VMware-ESXi5.x-TCP", "is_valid": true, "target_type": "NSService", "target_id": "06c173a6-4067-4c98-a4db-62969cd59298" }, { "target_display_name": "HTTPS", "is_valid": true, "target_type": "NSService", "target_id": "3705b545-81b8-4c0f-b77a-fec77f6bf134" } ], "_last_modified_time": 1457468830239, "_create_time": 1457468830239, "_last_modified_user": "system", "_system_owned": true, "_create_user": "system", "_revision": 0 } ...[output truncated for brevity] Required Permissions: read Feature: services_services Additional Errors:

Read NSServiceGroup

Returns information about the specified NSServiceGroup
Request:
Method:
GET
URI Path(s):
/api/v1/ns-service-groups/<ns-service-group-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/ns-service-groups/8525429d-1e5b-4846-9684-d57fe83f4ea8 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
NSServiceGroup+

Example Response: { "id": "8525429d-1e5b-4846-9684-d57fe83f4ea8", "display_name": "testNSServiceGroup", "resource_type": "NSServiceGroup", "service_type": "ETHER", "members": [ { "target_type": "NSService", "target_display_name": "testNSService", "is_valid": true, "target_id": "8c669da6-47a4-4508-9077-6a48d26c5a4b" } ], "_create_user": "a;a", "_last_modified_user": "a;a", "_last_modified_time": 1439966963844, "_create_time": 1439966963844, "_system_owned": false, "_revision": 0 } Required Permissions: read Feature: services_services Additional Errors:

Update NSServiceGroup

Updates the specified NSService. Modifiable parameters include the description,
display_name and members.
Request:
Method:
PUT
URI Path(s):
/api/v1/ns-service-groups/<ns-service-group-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
NSServiceGroup+

Example Request: PUT https://<nsx-mgr>/api/v1/ns-service-groups/12dd0d9d-fac3-457e-ba91-8121aa67e3dd { "resource_type": "NSServiceGroup", "id": "12dd0d9d-fac3-457e-ba91-8121aa67e3dd", "display_name": "test", "service_type": "NON_ETHER", "default_service": false, "members": [ { "target_display_name": "Active Directory Server UDP", "is_valid": true, "target_type": "NSService", "target_id": "d0f1a6c1-9a61-49ef-bcbf-ed8213058361" } ], "_revision": 0 } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
NSServiceGroup+

Example Response: { "resource_type": "NSServiceGroup", "id": "12dd0d9d-fac3-457e-ba91-8121aa67e3dd", "display_name": "test", "service_type": "NON_ETHER", "default_service": false, "members": [ { "target_display_name": "Active Directory Server UDP", "is_valid": true, "target_type": "NSService", "target_id": "d0f1a6c1-9a61-49ef-bcbf-ed8213058361" } ], "_create_time": 1457123992088, "_last_modified_user": "admin", "_system_owned": false, "_last_modified_time": 1457124154584, "_create_user": "admin", "_revision": 1 } Required Permissions: crud Feature: services_services Additional Errors:

Delete NSServiceGroup

Deletes the specified NSServiceGroup. By default, if the NSServiceGroup is
consumed in a Firewall rule, it won't get deleted. In such situations, pass
"force=true" as query param to force delete the NSServiceGroup.
Request:
Method:
DELETE
URI Path(s):
/api/v1/ns-service-groups/<ns-service-group-id>
Request Headers:
n/a
Query Parameters:
NSServiceGroupDeleteRequestParameters+
Request Body:
n/a

Example Request: DELETE https://<nsx-mgr>/api/v1/ns-service-groups/183e372b-854c-4fcc-a24e-05721ce89a60 DELETE https://<nsx-mgr>/api/v1/ns-service-groups/183e372b-854c-4fcc-a24e-05721ce89a60 ?force=true Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: services_services Additional Errors:

Management Plane API: Grouping Objects: NS Services

Associated URIs:

Create NSServiceGroup

Creates a new NSServiceGroup which can contain NSServices.
A given NSServiceGroup can contain either only ether type of NSServices
or only non-ether type of NSServices, i.e. an NSServiceGroup cannot
contain a mix of both ether and non-ether types of NSServices.
Request:
Method:
POST
URI Path(s):
/api/v1/ns-service-groups
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
NSServiceGroup+

Example Request: POST https://<nsx-mgr>/api/v1/ns-service-groups { "display_name":"testNSServiceGroup", "members":[{"target_id": "183e372b-854c-4fcc-a24e-05721ce89a61", "target_type": "NSService"}] } Successful Response:
Response Code:
201 Created
Response Headers:
Content-type: application/json
Response Body:
NSServiceGroup+

Example Response: { "id": "8525429d-1e5b-4846-9684-d57fe83f4ea8", "display_name": "testNSServiceGroup", "resource_type": "NSServiceGroup", "service_type": "ETHER", "members": [ { "target_type": "NSService", "target_display_name": "testNSService", "is_valid": true, "target_id": "8c669da6-47a4-4508-9077-6a48d26c5a4b" } ], "_create_user": "a;a", "_last_modified_user": "a;a", "_last_modified_time": 1439966963844, "_create_time": 1439966963844, "_system_owned": false, "_revision": 0 } Required Permissions: crud Feature: services_services Additional Errors:

List all NSServices

Returns paginated list of NSServices
Request:
Method:
GET
URI Path(s):
/api/v1/ns-services
Request Headers:
n/a
Query Parameters:
NSServiceListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/ns-services Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
NSServiceListResult+

Example Response: { "cursor": "0036a88532ec-5cfe-457a-9ca0-24673372d387iSQLPlus 10g (5580)", "sort_ascending": true, "sort_by": "displayName", "result_count": 364, "results": [ { "resource_type": "NSService", "description": "AD Server", "id": "ed5d47fc-3d90-461d-bc78-9be38cf2d1b9", "display_name": "AD Server", "default_service": true, "nsservice_element": { "resource_type": "L4PortSetNSService", "destination_ports": [ "1024" ], "l4_protocol": "TCP" }, "_create_time": 1455764626691, "_last_modified_user": "system", "_system_owned": true, "_last_modified_time": 1455764626691, "_create_user": "system", "_revision": 0 } ...[output truncated for brevity] Required Permissions: read Feature: services_services Additional Errors:

Create NSService

Creates a new NSService which allows users to specify characteristics to use
for matching network traffic.
Request:
Method:
POST
URI Path(s):
/api/v1/ns-services
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
NSService+

Example Request: POST https://<nsx-mgr>/api/v1/ns-services # Ether type NSService { "display_name":"testNSService", "nsservice_element":{"ether_type": 5463, "resource_type": "EtherTypeNSService"} } # IPProtocol NSService { "display_name":"testNSService", "nsservice_element":{"protocol_number": 3, "resource_type": "IPProtocolNSService"} } # IGMP type NSService { "display_name":"testNSService", "nsservice_element":{"resource_type": "IGMPTypeNSService"} } # ICMP type NSService { "display_name":"testNSService", "nsservice_element":{"protocol": "ICMPv4", "icmp_code": 3, "icmp_type": 0, "resource_type": "ICMPTypeNSService"} } # ALG type NSService { "display_name":"testNSService", "nsservice_element":{"alg": "FTP", "destination_ports": [ "21" ], "resource_type": "ALGTypeNSService"} } # L4PortSet NSService { "display_name":"testNSService", "nsservice_element":{"l4_protocol": "TCP", "source_ports": [ "31-34" ], "destination_ports": [ "81-88", "96" ], "resource_type": "L4PortSetNSService"} } Successful Response:
Response Code:
201 Created
Response Headers:
Content-type: application/json
Response Body:
NSService+

Example Response: # Ether type NSService { "id": "8c669da6-47a4-4508-9077-6a48d26c5a4b", "display_name": "testNSService", "resource_type": "NSService", "nsservice_element": { "resource_type": "EtherTypeNSService", "ether_type": 5463 }, "_last_modified_user": "a;a", "_last_modified_time": 1439882177929, "_create_time": 1439882177929, "_system_owned": false, "_create_user": "a;a", "_revision": 0 } # IPProtocol NSService { "id": "c4e164f8-914d-49ad-a7ff-8af6f5d7cbcb", "display_name": "testNSService", "resource_type": "NSService", "nsservice_element": { "resource_type": "IPProtocolNSService", "protocol_number": 3 }, "_last_modified_user": "a;a", "_last_modified_time": 1439883547301, "_create_time": 1439883547301, "_system_owned": false, "_create_user": "a;a", "_revision": 0 } # IGMP type NSService { "id": "11d98458-c901-4e28-8393-81f8d84d3271", "display_name": "testNSService", "resource_type": "NSService", "nsservice_element": { "resource_type": "IGMPTypeNSService" }, "_last_modified_user": "a;a", "_last_modified_time": 1439883753153, "_create_time": 1439883753153, "_system_owned": false, "_create_user": "a;a", "_revision": 0 } # ICMP type NSService { "id": "7cebfa0f-8021-417c-b087-f5eff9c69202", "display_name": "testNSService", "resource_type": "NSService", "nsservice_element": { "resource_type": "ICMPTypeNSService", "protocol": "ICMPv4", "icmp_code": 3, "icmp_type": 0 }, "_last_modified_user": "a;a", "_last_modified_time": 1439886066914, "_create_time": 1439886066914, "_system_owned": false, "_create_user": "a;a", "_revision": 0 } # ALG type NSService { "id": "7e69a479-7c8e-4c4e-995c-95b6c7bbd701", "display_name": "testNSService", "resource_type": "NSService", "nsservice_element": { "resource_type": "ALGTypeNSService", "alg": "FTP", "destination_ports": [ "21" ] }, "_last_modified_user": "a;a", "_last_modified_time": 1439886283296, "_create_time": 1439886283296, "_system_owned": false, "_create_user": "a;a", "_revision": 0 } # L4PortSet NSService { "id": "ea66a379-f007-4488-b9be-cbdd380e1e07", "display_name": "testNSService", "resource_type": "NSService", "nsservice_element": { "resource_type": "L4PortSetNSService", "destination_ports": [ "81-88", "96" ], "source_ports": [ "31-34" ], "l4_protocol": "TCP" }, "_last_modified_user": "a;a", "_last_modified_time": 1439886580319, "_create_time": 1439886580319, "_system_owned": false, "_create_user": "a;a", "_revision": 0 } Required Permissions: crud Feature: services_services Additional Errors:

Delete NSService

Deletes the specified NSService. By default, if the NSService is being
referred in an NSServiceGroup, it can't be deleted. In such situations,
pass "force=true" as a parameter to force delete the NSService. System
defined NSServices can't be deleted using "force" flag.
Request:
Method:
DELETE
URI Path(s):
/api/v1/ns-services/<ns-service-id>
Request Headers:
n/a
Query Parameters:
NSServiceDeleteRequestParameters+
Request Body:
n/a

Example Request: DELETE https://<nsx-mgr>/api/v1/ns-services/183e372b-854c-4fcc-a24e-05721ce89a60 Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: services_services Additional Errors:

Update NSService

Updates the specified NSService. Modifiable parameters include the description,
display_name and the NSService element. The system defined NSServices can't be
modified
Request:
Method:
PUT
URI Path(s):
/api/v1/ns-services/<ns-service-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
NSService+

Example Request: PUT https://<nsx-mgr>/api/v1/ns-services/12dd0d9d-fac3-457e-ba91-8121aa67e3dd { "resource_type": "NSService", "display_name": "test", "nsservice_element": { "resource_type": "EtherTypeNSService", "ether_type": 33011 }, "_revision": 0 } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
NSService+

Example Response: { "resource_type": "NSService", "id": "1353063b-f5e1-42fa-88c3-16fe89d55361", "display_name": "test", "default_service": false, "nsservice_element": { "resource_type": "EtherTypeNSService", "ether_type": 33011 }, "_create_user": "admin", "_create_time": 1520406838970, "_last_modified_user": "admin", "_last_modified_time": 1520406866064, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 1 } Required Permissions: crud Feature: services_services Additional Errors:

Read NSService

Returns information about the specified NSService
Request:
Method:
GET
URI Path(s):
/api/v1/ns-services/<ns-service-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/ns-services/183e372b-854c-4fcc-a24e-05721ce89a60 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
NSService+

Example Response: { "id": "8c669da6-47a4-4508-9077-6a48d26c5a4b", "display_name": "testNSService", "resource_type": "NSService", "nsservice_element": { "resource_type": "EtherTypeNSService", "ether_type": 5463 }, "_last_modified_user": "a;a", "_last_modified_time": 1439882177929, "_create_time": 1439882177929, "_system_owned": false, "_create_user": "a;a", "_revision": 0 } Required Permissions: read Feature: services_services Additional Errors:

Management Plane API: NSX Component Administration

Management Plane API: NSX Component Administration: Appliance Management

Associated URIs:

Read the Appliance Proxy service properties

Request:
Method:
GET
URI Path(s):
/api/v1/cluster/<cluster-node-id>/node/services/applianceproxy
/api/v1/node/services/applianceproxy
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
NodeServiceProperties+

Required Permissions: read Feature: system_administration Additional Errors:

Read the Appliance Proxy service status

Request:
Method:
GET
URI Path(s):
/api/v1/cluster/<cluster-node-id>/node/services/applianceproxy/status
/api/v1/node/services/applianceproxy/status
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
NodeServiceStatusProperties+

Required Permissions: read Feature: system_administration Additional Errors:

Restart, start or stop the Appliance Proxy Service

Request:
Method:
POST
URI Path(s):
/api/v1/cluster/<cluster-node-id>/node/services/applianceproxy?action=restart|start|stop
/api/v1/node/services/applianceproxy?action=restart|start|stop
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
NodeServiceStatusProperties+

Required Permissions: crud Feature: system_administration Additional Errors:

Management Plane API: Networking: Logical Bridging

Management Plane API: Networking: Logical Bridging: Bridge Endpoint Profiles

Associated URIs:

Create a Bridge Endpoint Profile

Creates a Bridge Endpoint Profile. Profile contains edge cluster id,
indexes of the member nodes, fialover mode and high availability mode
for a Bridge EndPoint
Request:
Method:
POST
URI Path(s):
/api/v1/bridge-endpoint-profiles
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
BridgeEndpointProfile+

Example Request: POST https://<nsx-mgr>/api/v1/bridge-endpoint-profiles { "display_name":"bep1", "description":"Bridge Endpoint Profile 1", "edge_cluster_id" : "07419c2e-3d0e-48af-b1d1-380ffb6f5943", "edge_cluster_member_indexes" : [0, 1], "failover_mode" : "PREEMPTIVE" } Successful Response:
Response Code:
201 Created
Response Headers:
Content-type: application/json
Response Body:
BridgeEndpointProfile+

Example Response: { "id" : "3502cf40-630b-4ff6-864e-2af8acde2efd", "display_name" : "bep1", "description" : "Bridge Endpoint Profile 1", "resource_type" : "BridgeEndpointProfile", "edge_cluster_id" : "07419c2e-3d0e-48af-b1d1-380ffb6f5943", "edge_cluster_member_indexes" : [0, 1], "failover_mode" : "PREEMPTIVE", "_last_modified_time" : 1442859704276, "_create_time" : 1442859704276, "_system_owned" : false, "_create_user" : "admin", "_last_modified_user" : "admin", "_revision" : 0 } Required Permissions: crud Feature: nodes_bridges Additional Errors:

List All Bridge Endpoint Profiles

Returns information about all configured bridge endoint profiles
Request:
Method:
GET
URI Path(s):
/api/v1/bridge-endpoint-profiles
Request Headers:
n/a
Query Parameters:
BridgeEndpointProfileRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/bridge-endpoint-profiles Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
BridgeEndpointProfileListResult+

Example Response: { "cursor" : "", "result_count" : 2, "results" : [ { "id" : "229f1617-289d-488b-8648-17caf588fe53", "display_name" : "bep2", "description" : "Bridge Endpoint Profile 2", "resource_type" : "BridgeEndpointProfile", "edge_cluster_id" : "0f473f0f-b5a3-4a97-bf0f-d855163667e1", "edge_cluster_member_indexes" : [1, 2], "failover_mode" : "PREEMPTIVE", "_last_modified_time" : 1442859910756, "_create_time" : 1442859910756, "_system_owned" : false, "_create_user" : "admin", "_last_modified_user" : "admin", "_revision" : 0 }, { "id" : "3502cf40-630b-4ff6-864e-2af8acde2efd", "display_name" : "bep1-updated", "description" : "Updated Bridge Endpoint Profile 1", "resource_type" : "BridgeEndpointProfile", "edge_cluster_id" : "07419c2e-3d0e-48af-b1d1-380ffb6f5943", "edge_cluster_member_indexes" : [0, 1], "failover_mode" : "PREEMPTIVE", "_last_modified_time" : 1442859802286, "_create_time" : 1442859704276, "_system_owned" : false, "_create_user" : "admin", "_last_modified_user" : "admin", "_revision" : 1 } ] } Required Permissions: read Feature: nodes_bridges Additional Errors:

Update a Bridge Endpoint Profile

Modifies a existing bridge endpoint profile.
Request:
Method:
PUT
URI Path(s):
/api/v1/bridge-endpoint-profiles/<bridgeendpointprofile-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
BridgeEndpointProfile+

Example Request: PUT https://<nsx-mgr>/api/v1/bridge-endpoint-profiles/3502cf40-630b-4ff6-864e-2af8acde2efd { "display_name":"bep1-updated", "description":"Updated Bridge Endpoint Profile 1", "edge_cluster_id" : "07419c2e-3d0e-48af-b1d1-380ffb6f5943", "failover_mode" : "PREEMPTIVE", "_revision" : 0 } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
BridgeEndpointProfile+

Example Response: { "id" : "3502cf40-630b-4ff6-864e-2af8acde2efd", "display_name" : "bep1-updated", "description" : "Updated Bridge Endpoint Profile 1", "resource_type" : "BridgeEndpoint", "edge_cluster_id" : "07419c2e-3d0e-48af-b1d1-380ffb6f5943", "edge_cluster_member_indexes" : [0, 1], "failover_mode" : "PREEMPTIVE", "_last_modified_time" : 1442859802286, "_create_time" : 1442859704276, "_system_owned" : false, "_create_user" : "admin", "_last_modified_user" : "admin", "_revision" : 1 } Required Permissions: crud Feature: nodes_bridges Additional Errors:

Get Information about a bridge endpoint Profile

Returns information about a specified bridge endpoint profile. Request:
Method:
GET
URI Path(s):
/api/v1/bridge-endpoint-profiles/<bridgeendpointprofile-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/bridge-endpoint-profile/3502cf40-630b-4ff6-864e-2af8acde2efd Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
BridgeEndpointProfile+

Example Response: { "id" : "3502cf40-630b-4ff6-864e-2af8acde2efd", "display_name" : "bep1-updated", "description" : "Updated Bridge Endpoint Profile 1", "resource_type" : "BridgeEndpointProfile", "edge_cluster_id" : "07419c2e-3d0e-48af-b1d1-380ffb6f5943", "edge_cluster_member_indexes" : [0, 1], "failover_mode" : "PREEMPTIVE", "_last_modified_time" : 1442859802286, "_create_time" : 1442859704276, "_system_owned" : false, "_create_user" : "admin", "_last_modified_user" : "admin", "_revision" : 1 } Required Permissions: read Feature: nodes_bridges Additional Errors:

Delete a Bridge Endpoint Profile

Deletes the specified Bridge Endpoint Profile. Request:
Method:
DELETE
URI Path(s):
/api/v1/bridge-endpoint-profiles/<bridgeendpointprofile-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: DELETE https://<nsx-mgr>/api/v1/bridge-endpoint-profiles/3502cf40-630b-4ff6-864e-2af8acde2efd Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: nodes_bridges Additional Errors:

Management Plane API: Networking: Logical Bridging: Bridge Endpoints

Associated URIs:

Create a Bridge Endpoint (Deprecated)

Creates a Bridge Endpoint. It describes the physical attributes of the
bridge like vlan. A logical port can be attached to a vif providing
bridging functionality from the logical overlay network to the physical
vlan network
Request:
Method:
POST
URI Path(s):
/api/v1/bridge-endpoints
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
BridgeEndpoint+

Example Request: POST https://<nsx-mgr>/api/v1/bridge-endpoints { "display_name":"be1", "description":"Bridge Endpoint 1", "vlan":1, "bridge_cluster_id":"07419c2e-3d0e-48af-b1d1-380ffb6f5943" } Successful Response:
Response Code:
201 Created
Response Headers:
Content-type: application/json
Response Body:
BridgeEndpoint+

Example Response: { "id" : "3502cf40-630b-4ff6-864e-2af8acde2efd", "display_name" : "be1", "description" : "Bridge Endpoint 1", "resource_type" : "BridgeEndpoint", "bridge_cluster_id" : "07419c2e-3d0e-48af-b1d1-380ffb6f5943", "ha_enable" : false, "vlan" : 1, "_last_modified_time" : 1442859704276, "_create_time" : 1442859704276, "_system_owned" : false, "_create_user" : "admin", "_last_modified_user" : "admin", "_revision" : 0 } Required Permissions: crud Feature: nodes_bridges Additional Errors:

List All Bridge Endpoints

Returns information about all configured bridge endoints
Request:
Method:
GET
URI Path(s):
/api/v1/bridge-endpoints
Request Headers:
n/a
Query Parameters:
BridgeEndpointRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/bridge-endpoints Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
BridgeEndpointListResult+

Example Response: { "result_count" : 3, "results" : [ { "id" : "229f1617-289d-488b-8648-17caf588fe53", "display_name" : "be2", "description" : "Bridge Endpoint 2", "resource_type" : "BridgeEndpoint", "bridge_cluster_id" : "0f473f0f-b5a3-4a97-bf0f-d855163667e1", "ha_enable" : false, "vlan" : 1, "_last_modified_time" : 1442859910756, "_create_time" : 1442859910756, "_system_owned" : false, "_create_user" : "admin", "_last_modified_user" : "admin", "_revision" : 0 }, { "id" : "3502cf40-630b-4ff6-864e-2af8acde2efd", "display_name" : "be1-updated", "description" : "Updated Bridge Endpoint 1", "resource_type" : "BridgeEndpoint", "bridge_cluster_id" : "07419c2e-3d0e-48af-b1d1-380ffb6f5943", "ha_enable" : false, "vlan" : 1, "_last_modified_time" : 1442859802286, "_create_time" : 1442859704276, "_system_owned" : false, "_create_user" : "admin", "_last_modified_user" : "admin", "_revision" : 1 } , { "id" : "3502cf40-630b-4ff6-864e-2af8acde2efd", "display_name" : "be3-edge cluster", "description" : "Bridge Endpoint 3", "resource_type" : "BridgeEndpoint", "vlan" : 1, "bridge_endpoint_profile_id" : "98a73f0f-b5a3-4a97-bf0f-d8551636654a", "vlan_transport_zone_id" : "7ac73f0f-b5a3-4a97-bf0f-d85598a9eb45", "_last_modified_time" : 1442859802286, "_create_time" : 1442859704276, "_system_owned" : false, "_create_user" : "admin", "_last_modified_user" : "admin", "_revision" : 1 }] } Required Permissions: read Feature: nodes_bridges Additional Errors:

Update a Bridge Endpoint (Deprecated)

Modifies a existing bridge endpoint.
Request:
Method:
PUT
URI Path(s):
/api/v1/bridge-endpoints/<bridgeendpoint-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
BridgeEndpoint+

Example Request: PUT https://<nsx-mgr>/api/v1/bridge-endpoints/3502cf40-630b-4ff6-864e-2af8acde2efd { "display_name":"be1-updated", "description":"Updated Bridge Endpoint 1", "vlan":1, "bridge_cluster_id":"07419c2e-3d0e-48af-b1d1-380ffb6f5943", "_revision" : 0 } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
BridgeEndpoint+

Example Response: { "id" : "3502cf40-630b-4ff6-864e-2af8acde2efd", "display_name" : "be1-updated", "description" : "Updated Bridge Endpoint 1", "resource_type" : "BridgeEndpoint", "bridge_cluster_id" : "07419c2e-3d0e-48af-b1d1-380ffb6f5943", "ha_enable" : false, "vlan" : 1, "_last_modified_time" : 1442859802286, "_create_time" : 1442859704276, "_system_owned" : false, "_create_user" : "admin", "_last_modified_user" : "admin", "_revision" : 1 } Required Permissions: crud Feature: nodes_bridges Additional Errors:

Delete a Bridge Endpoint (Deprecated)

Deletes the specified Bridge Endpoint. Request:
Method:
DELETE
URI Path(s):
/api/v1/bridge-endpoints/<bridgeendpoint-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: DELETE https://<nsx-mgr>/api/v1/bridge-endpoints/3502cf40-630b-4ff6-864e-2af8acde2efd Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: nodes_bridges Additional Errors:

Get Information about a bridge endpoint

Returns information about a specified bridge endpoint. Request:
Method:
GET
URI Path(s):
/api/v1/bridge-endpoints/<bridgeendpoint-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/bridge-endpoints/3502cf40-630b-4ff6-864e-2af8acde2efd Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
BridgeEndpoint+

Example Response: { "id" : "3502cf40-630b-4ff6-864e-2af8acde2efd", "display_name" : "be1-updated", "description" : "Updated Bridge Endpoint 1", "resource_type" : "BridgeEndpoint", "bridge_cluster_id" : "07419c2e-3d0e-48af-b1d1-380ffb6f5943", "ha_enable" : false, "vlan" : 1, "_last_modified_time" : 1442859802286, "_create_time" : 1442859704276, "_system_owned" : false, "_create_user" : "admin", "_last_modified_user" : "admin", "_revision" : 1 } Required Permissions: read Feature: nodes_bridges Additional Errors:

Returns statistics of a specified Bridge Endpoint

Get the statistics for the Bridge Endpoint of the given Endpoint id (endpoint-id) Request:
Method:
GET
URI Path(s):
/api/v1/bridge-endpoints/<endpoint-id>/statistics
Request Headers:
n/a
Query Parameters:
DataSourceParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/bridge-endpoints/15269939-779a-4fa4-9a0a-792dbf9fac12/statistics Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
BridgeEndpointStatistics+

Example Response: { "tx_packets": { "total": 159, "dropped": 0, "multicast_broadcast": 0 }, "rx_bytes": { "total": 1028, "multicast_broadcast": 0 }, "tx_bytes": { "total": 10438, "multicast_broadcast": 0 }, "rx_packets": { "total": 11, "dropped": 0, "multicast_broadcast": 0 }, "last_update_timestamp": 1457518122686, "endpoint_id": "15269939-779a-4fa4-9a0a-792dbf9fac12" } Required Permissions: read Feature: aggregation_service_health_monitoring Additional Errors:

Returns status of a specified Bridge Endpoint

Get the status for the Bridge Endpoint of the given Endpoint id Request:
Method:
GET
URI Path(s):
/api/v1/bridge-endpoints/<endpoint-id>/status
Request Headers:
n/a
Query Parameters:
DataSourceParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/bridge-endpoints/15269939-779a-4fa4-9a0a-792dbf9fac12/status Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
BridgeEndpointStatus+

Example Response: { "active_nodes": [ "ebe174ac-e4f1-4135-ba72-3dd2eb7099e3" ], "last_update_timestamp": 1457547568679, "endpoint_id": "15269939-779a-4fa4-9a0a-792dbf9fac12" } Required Permissions: read Feature: aggregation_service_health_monitoring Additional Errors:

Management Plane API: Networking: Logical Routing And Services

Management Plane API: Networking: Logical Routing And Services: BFD Peers

Associated URIs:

List static routes BFD Peers

Returns information about all BFD peers created on specified logical router for static routes.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/static-routes/bfd-peers
Request Headers:
n/a
Query Parameters:
StaticHopBfdPeerListParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/f962173f-ac03-4d08-8366-56a41779f61d/routing/static-routes/bfd-peers Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
StaticHopBfdPeerListResult+

Example Response: { "result_count": 1, "results": [ { "id": "ab6e173e-ac03-5d09-8888-46a41779f633" "peer_ip_address": "10.10.10.10", "enabled": true, "bfd_config": { "receive_interval": 1000, "transmit_interval": 1000, "declare_dead_multiple": 3 }, "_revision": 1 } ] } Required Permissions: read Feature: routing_routers Additional Errors:

Create a static hop BFD peer

Creates a BFD peer for static route. The required parameters includes peer IP address.
Request:
Method:
POST
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/static-routes/bfd-peers
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
StaticHopBfdPeer+

Example Request: POST https://<nsx-mgr>/api/v1/logical-routers/f962173f-ac03-4d08-8366-56a41779f61d/routing/static-routes/bfd-peers { "peer_ip_address": "10.10.10.10", "enabled": true, "bfd_config": { "receive_interval": 1000, "transmit_interval": 1000, "declare_dead_multiple": 3 } } Successful Response:
Response Code:
201 Created
Response Headers:
Location
Content-type: application/json
Response Body:
StaticHopBfdPeer+

Example Response: { "id": "ab6e173e-ac03-5d09-8888-46a41779f633", "peer_ip_address": "10.10.10.10", "enabled": true, "bfd_config": { "receive_interval": 1000, "transmit_interval": 1000, "declare_dead_multiple": 3 }, "_create_time": 1460092633898, "_last_modified_user": "admin", "_system_owned": false, "_last_modified_time": 1460092633898, "_create_user": "admin", "_revision": 0 } Required Permissions: crud Feature: routing_routers Additional Errors:

Read a static route BFD peer (Deprecated)

Read the BFD peer having specified ID.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/static-routes/bfd-peers/<bfd-peer-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/f962173f-ac03-4d08-8366-56a41779f61d/routing/static-routes/bfd-peers/723c1e3e-c82c-4243-bba0-2e1ef4815143 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
StaticHopBfdPeer+

Example Response: { "id": "ab6e173e-ac03-5d09-8888-46a41779f633", "peer_ip_address": "10.10.10.10", "enabled": true, "bfd_config": { "receive_interval": 1000, "transmit_interval": 1000, "declare_dead_multiple": 3 }, "_revision": 0 } Required Permissions: read Feature: routing_routers Additional Errors:

Delete a specified static route BFD peer cofigured on a specified logical router (Deprecated)

Deletes the specified BFD peer present on specified logical router.
Request:
Method:
DELETE
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/static-routes/bfd-peers/<bfd-peer-id>
Request Headers:
n/a
Query Parameters:
StaticHopBfdPeerDeleteRequestParameters+
Request Body:
n/a

Example Request: DELETE https://<nsx-mgr>/api/v1/logical-routers/f962173f-ac03-4d08-8366-56a41779f61d/routing/static-routes/bfd-peers/ab6e173e-ac03-5d09-8888-46a41779f633 Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: routing_routers Additional Errors:

Update a static route BFD peer (Deprecated)

Modifies the static route BFD peer.
Modifiable parameters includes peer IP, enable flag and configuration of the BFD peer.
Request:
Method:
PUT
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/static-routes/bfd-peers/<bfd-peer-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
StaticHopBfdPeer+

Example Request: PUT https://<nsx-mgr>/api/v1/logical-routers/f962173f-ac03-4d08-8366-56a41779f61d/routing/static-routes/bfd-peers/723c1e3e-c82c-4243-bba0-2e1ef4815143 { "id": "ab6e173e-ac03-5d09-8888-46a41779f633", "peer_ip_address": "10.10.10.10", "enabled": true, "bfd_config": { "receive_interval": 1000, "transmit_interval": 1000, "declare_dead_multiple": 3 } } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
StaticHopBfdPeer+

Example Response: { "id": "ab6e173e-ac03-5d09-8888-46a41779f633", "peer_ip_address": "10.10.10.10", "enabled": true, "bfd_config": { "receive_interval": 1000, "transmit_interval": 1000, "declare_dead_multiple": 3 }, "_revision": 43 } Required Permissions: crud Feature: routing_routers Additional Errors:

Management Plane API: Networking: Logical Routing And Services: Logical Router Ports

Associated URIs:

List Logical Router Ports (Deprecated)

Returns information about all logical router ports. Information includes the
resource_type (LogicalRouterUpLinkPort, LogicalRouterDownLinkPort,
LogicalRouterLinkPort, LogicalRouterLoopbackPort, LogicalRouterCentralizedServicePort);
logical_router_id (the router to which each logical router port is assigned);
and any service_bindings (such as DHCP relay service).
The GET request can include a query parameter (logical_router_id
or logical_switch_id).
Request:
Method:
GET
URI Path(s):
/api/v1/logical-router-ports
Request Headers:
n/a
Query Parameters:
LogicalRouterPortsListParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-router-ports?logical_router_id=723c1e3e-c82c-4243-bba0-2e1ef4815143 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LogicalRouterPortListResult+

Example Response: { "cursor": "003681096324-23ba-408e-ae24-294a7ba07f60web-tier router", "result_count": 2, "results": [ { "resource_type": "LogicalRouterLinkPort", "_revision": 0, "id": "770ffb50-44f7-4d8c-a359-de0af1088932", "service_bindings": [ { "service_id": "dc5804f7-fdd9-4ef6-b5f8-80b1494ca183", "resource_type": "DhcpRelayService" } ] "logical_router_id": "b676dec7-5d78-4492-9b16-cb7cdcf65328", "_last_modified_user": "admin", "_last_modified_time": 1415746635953, "_create_time": 1415746635953, "_create_user": "admin" "resource_type": "LogicalRouterDownLinkPort", "id": "87db83ed-9a73-436b-91f1-a2a793ffaa31", "display_name": "app-tier router", "logical_router_id": "723c1e3e-c82c-4243-bba0-2e1ef4815143", "mac_address": "02:50:56:56:44:52", "linked_logical_switch_port_id": { "target_display_name": "5a3f8696-e7ed-4e01-9fa6-eba1db8d7371", "is_valid": true, "target_type": "LogicalPort", "target_id": "5a3f8696-e7ed-4e01-9fa6-eba1db8d7371" }, "subnets": [ { "ip_addresses": [ "172.16.20.1" ], "prefix_length": 24 } ], "_last_modified_time": 1457984402672, "_create_time": 1457984402672, "_last_modified_user": "admin", "_system_owned": false, "_create_user": "admin", "_revision": 0 }, { "resource_type": "LogicalRouterLinkPortOnTIER1", "description": "Port created on Tier-1 router for 'overlay-router'(ID: 723c1e3e-c82c-4243-bba0-2e1ef4815143)", "id": "6cafb2ac-27d1-415c-916a-b37e6b8a32e1", "display_name": "tier1 router link port", "logical_router_id": "723c1e3e-c82c-4243-bba0-2e1ef4815143", "mac_address": "02:50:56:00:00:04", "linked_logical_router_port_id": { "target_display_name": "tier0 router link port", "is_valid": true, "target_type": "LogicalRouterLinkPortOnTIER0", "target_id": "48f78319-00e4-47b1-b721-6c3d43df821c" }, "edge_cluster_member_index": [ 0 ], "subnets": [ { "ip_addresses": [ "100.126.240.1" ], "prefix_length": 31 } ], "_last_modified_time": 1457984951916, "_create_time": 1457984404360, "_last_modified_user": "admin", "_system_owned": false, "_create_user": "admin", "_revision": 1 } ] } Required Permissions: read Feature: routing_routers Additional Errors:

Create a Logical Router Port (Deprecated)

Creates a logical router port. The required parameters include resource_type
(LogicalRouterUpLinkPort, LogicalRouterDownLinkPort, LogicalRouterLinkPort,
LogicalRouterLoopbackPort, LogicalRouterCentralizedServicePort); and
logical_router_id (the router to which each logical router port is assigned).
The service_bindings parameter is optional.
Request:
Method:
POST
URI Path(s):
/api/v1/logical-router-ports
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
LogicalRouterCentralizedServicePort+
LogicalRouterDownLinkPort+
LogicalRouterLinkPortOnTIER0+
LogicalRouterLinkPortOnTIER1+
LogicalRouterLoopbackPort+
LogicalRouterUpLinkPort+

Example Request: POST https://<nsx-mgr>/api/v1/logical-router-ports { "resource_type": "LogicalRouterDownLinkPort", "logical_router_id": "723c1e3e-c82c-4243-bba0-2e1ef4815143", "linked_logical_switch_port_id": { "target_type": "LogicalPort", "target_id": "18691381-b08f-4d90-8c0c-98d0e449b141" }, "subnets": [ { "ip_addresses": [ "172.16.40.1" ], "prefix_length": 24 } ] } Successful Response:
Response Code:
201 Created
Response Headers:
Location
Content-type: application/json
Response Body:
LogicalRouterCentralizedServicePort+
LogicalRouterDownLinkPort+
LogicalRouterLinkPortOnTIER0+
LogicalRouterLinkPortOnTIER1+
LogicalRouterLoopbackPort+
LogicalRouterUpLinkPort+

Example Response: { "resource_type": "LogicalRouterLinkPort", "_revision": 0, "id": "4a0d8003-0958-4911-a32b-3a5a51f18d95", "logical_router_id": "7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c", "resource_type": "LogicalRouterDownLinkPort", "id": "b5ceef62-cc10-424a-96ed-8c2d5989cd50", "display_name": "b5ceef62-cc10-424a-96ed-8c2d5989cd50", "logical_router_id": "723c1e3e-c82c-4243-bba0-2e1ef4815143", "mac_address": "02:50:56:56:44:52", "linked_logical_switch_port_id": { "target_display_name": "db2-switch-to-t1-router", "is_valid": true, "target_type": "LogicalPort", "target_id": "18691381-b08f-4d90-8c0c-98d0e449b141" }, "subnets": [ { "ip_addresses": [ "172.16.40.1" ], "prefix_length": 24 } ], "_last_modified_time": 1458848284438, "_create_time": 1458848284438, "_last_modified_user": "admin", "_system_owned": false, "_create_user": "admin", "_revision": 0 } Required Permissions: crud Feature: routing_routers Additional Errors:

Delete a Logical Router Port (Deprecated)

Deletes the specified logical router port. You must delete logical router
ports before you can delete the associated logical router. To Delete Tier0
router link port you must have to delete attached tier1 router link port,
otherwise pass "force=true" as query param to force delete the Tier0
router link port.
Request:
Method:
DELETE
URI Path(s):
/api/v1/logical-router-ports/<logical-router-port-id>
Request Headers:
n/a
Query Parameters:
LogicalRouterPortDeleteRequestParameters+
Request Body:
n/a

Example Request: DELETE https://<nsx-mgr>/api/v1/logical-router-ports/258c50b4-c960-4005-9023-f7946e302162 DELETE http://<nsx-mgr>/api/v1/logical-router-ports/258c50b4-c960-4005-9023-f7946e302162?force=true Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Example Response: None Required Permissions: crud Feature: routing_routers Additional Errors:

Update a Logical Router Port (Deprecated)

Modifies the specified logical router port. Required parameters include the
resource_type and logical_router_id. Modifiable parameters include the
resource_type (LogicalRouterUpLinkPort, LogicalRouterDownLinkPort,
LogicalRouterLinkPort, LogicalRouterLoopbackPort, LogicalRouterCentralizedServicePort),
logical_router_id (to reassign the port to a different router), and service_bindings.
Request:
Method:
PUT
URI Path(s):
/api/v1/logical-router-ports/<logical-router-port-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
LogicalRouterCentralizedServicePort+
LogicalRouterDownLinkPort+
LogicalRouterLinkPortOnTIER0+
LogicalRouterLinkPortOnTIER1+
LogicalRouterLoopbackPort+
LogicalRouterUpLinkPort+

Example Request: PUT https://<nsx-mgr>/api/v1/logical-router-ports/258c50b4-c960-4005-9023-f7946e302162 { "resource_type": "LogicalRouterDownLinkPort", "id": "81096324-23ba-408e-ae24-294a7ba07f60", "display_name": "web-tier router", "logical_router_id": "723c1e3e-c82c-4243-bba0-2e1ef4815143", "mac_address": "02:50:56:56:44:52", "service_bindings": [ { "service_id": { "target_display_name": "DHCP Relay", "is_valid": true, "target_type": "LogicalService", "target_id": "fb5334a1-3c82-4d2b-8adf-65e52e09d2a1" } } ], "linked_logical_switch_port_id": { "target_display_name": "4630aadd-25d7-4c73-b03c-227ac314dfc4", "is_valid": true, "target_type": "LogicalPort", "target_id": "4630aadd-25d7-4c73-b03c-227ac314dfc4" }, "subnets": [ { "ip_addresses": [ "3001::1" ], "prefix_length": 64 } ], "ndra_prefix_config": [ { "network_prefix": { "3001::/64" }, "prefix_preferred_time": 2000, "prefix_valid_time": 5000 } ], "_revision": 2 } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LogicalRouterCentralizedServicePort+
LogicalRouterDownLinkPort+
LogicalRouterLinkPortOnTIER0+
LogicalRouterLinkPortOnTIER1+
LogicalRouterLoopbackPort+
LogicalRouterUpLinkPort+

Example Response: { "resource_type": "LogicalRouterUpLinkPort", "_revision": 3, "id": "258c50b4-c960-4005-9023-f7946e302162", "resource_type": "LogicalRouterDownLinkPort", "id": "81096324-23ba-408e-ae24-294a7ba07f60", "display_name": "web-tier router", "logical_router_id": "723c1e3e-c82c-4243-bba0-2e1ef4815143", "mac_address": "02:50:56:56:44:52", "service_bindings": [ { "service_id": { "target_display_name": "DHCP Relay", "is_valid": true, "target_type": "LogicalService", "target_id": "fb5334a1-3c82-4d2b-8adf-65e52e09d2a1" } } ], "linked_logical_switch_port_id": { "target_display_name": "4630aadd-25d7-4c73-b03c-227ac314dfc4", "is_valid": true, "target_type": "LogicalPort", "target_id": "4630aadd-25d7-4c73-b03c-227ac314dfc4" }, "subnets": [ { "ip_addresses": [ "3001::1", "3001::3bff:fe57:7d29" ], "prefix_length": 64 } ], "ndra_prefixtime_config": [ { "network_prefix": { "3001::/64" }, "prefix_preferred_time": 2000, "prefix_valid_time": 5000 } ], "_last_modified_time": 1458851284244, "_create_time": 1457984402461, "_last_modified_user": "admin", "_system_owned": false, "_create_user": "admin", "_revision": 3 } Required Permissions: crud Feature: routing_routers Additional Errors:

Read Logical Router Port (Deprecated)

Returns information about the specified logical router port. Request:
Method:
GET
URI Path(s):
/api/v1/logical-router-ports/<logical-router-port-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-router-ports/c84f70b4-7500-4087-bb2d-3f68f5a32060 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LogicalRouterCentralizedServicePort+
LogicalRouterDownLinkPort+
LogicalRouterLinkPortOnTIER0+
LogicalRouterLinkPortOnTIER1+
LogicalRouterLoopbackPort+
LogicalRouterUpLinkPort+

Example Response: { "resource_type": "LogicalRouterLinkPort", "_revision": 0, "id": "258c50b4-c960-4005-9023-f7946e302162", "logical_router_id": "7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c", "resource_type": "LogicalRouterUpLinkPort", "id": "c84f70b4-7500-4087-bb2d-3f68f5a32060", "display_name": "uplink for vlan-router", "logical_router_id": "7744a9f8-302d-4e80-a5d1-b7e556db9c19", "mac_address": "02:50:56:00:00:01", "linked_logical_switch_port_id": { "target_display_name": "b7f69e2c-f42f-4fee-9313-c486b35a6d41", "is_valid": true, "target_type": "LogicalPort", "target_id": "b7f69e2c-f42f-4fee-9313-c486b35a6d41" }, "edge_cluster_member_index": [ 0 ], "subnets": [ { "ip_addresses": [ "192.168.100.2" ], "prefix_length": 24 } ], "urpf_mode": "STRICT", "_last_modified_time": 1457984403882, "_create_time": 1457984403882, "_last_modified_user": "admin", "_system_owned": false, "_create_user": "admin", "_revision": 0 } Required Permissions: read Feature: routing_routers Additional Errors:

Get the ARP table (IPv4) or Neighbor Discovery table (IPv6) for the Logical Router Port of the given id (Deprecated)

Returns ARP table (IPv4) or Neighbor Discovery table (IPv6) for the
Logical Router Port of the given id, on a node if a query parameter
"transport_node_id=<transport-node-id>" is given. The transport_node_id
parameter is mandatory if the router port is not uplink type.
Query parameter "source=realtime" is the only supported source.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-router-ports/<logical-router-port-id>/arp-table
Request Headers:
n/a
Query Parameters:
ListByNodeIdParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-router-ports/9b2ec1c5-cb54-4d69-8d64-14ccad6ae3cf/arp-table?source=realtime&transport_node_id=f8431964-f400-4da5-8c18-4ce4e6bd5fa5 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LogicalRouterPortArpTable+

Example Response: { "sort_ascending": true, "sort_by": "displayName", "result_count": 3, "logical_router_port_id": "9b2ec1c5-cb54-4d69-8d64-14ccad6ae3cf", "results": [ { "mac_address": "00:50:56:8e:b4:21", "ip": "172.16.10.21" }, { "mac_address": "02:50:56:56:44:52", "ip": "172.16.10.1" }, { "mac_address": "00:50:56:8e:91:12", "ip": "172.16.10.11" } ] } Required Permissions: read Feature: routing_routers Additional Errors:

Get the ARP table (IPv4) or Neighbor Discovery table (IPv6) for the Logical Router Port of the given id (Deprecated)

Returns ARP table (IPv4) or Neighbor Discovery table (IPv6) in CSV format
for the Logical Router Port of the given id, on a node if a query
parameter "transport_node_id=<transport-node-id>" is given. The
transport_node_id parameter is mandatory if the router port is not uplink
type. Query parameter "source=realtime" is the only supported source.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-router-ports/<logical-router-port-id>/arp-table?format=csv
Request Headers:
n/a
Query Parameters:
TransportNodeIdParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-router-ports/b3f74ac8-0c83-4174-b3c3-6d120423290d/arp-table?source=realtime&transport_node_id=ebe174ac-e4f1-4135-ba72-3dd2eb7099e3&format=csv Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: text/csv
Response Body:
LogicalRouterPortArpTableInCsvFormat+

Example Response: mac_address,ip 02:50:56:56:44:52,172.16.20.1 Required Permissions: read Feature: routing_routers Additional Errors:

Get the Realized State of a Logical Router Port (Deprecated)

Return realized state information of a logical router port.
Any configuration update that affects the logical router port 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 logical router ports,
dhcp relays, etc.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-router-ports/<logical-router-port-id>/state
Request Headers:
n/a
Query Parameters:
RealizationStateQueryParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-router-ports/258c50b4-c960-4005-9023-f7946e302162/state Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LogicalRouterPortState+

Example Response: { "details": [ { "sub_system_type": "TransportNode", "sub_system_id": "fe651e63-04bd-43a4-a8ec-45381a3b71b9", "state": "in_progress", "failure_message": "CCP Id:ab5958df-d98a-468e-a72b-d89dcdae5346, Message:State realization is in progress at the node." }, { "sub_system_type": "TransportNode", "sub_system_id": "ebe174ac-e4f1-4135-ba72-3dd2eb7099e3", "state": "in_sync" } ], "state": "in_progress", "failure_message": "The state realization is in progress at transport nodes." } Required Permissions: read Feature: routing_routers Additional Errors:

Get the statistics of a specified logical router port on all or a specified node (Deprecated)

Returns the statistics for the Logical Router Port. If query parameter
"transport_node_id=<transport-node-id>" is given, only the statistics
from the given node for the logical router port will be returned.
Otherwise the statistics from each node for the same logical router port
will be returned. The transport_node_id is mandatory if the router port
is not uplink type.
The query parameter "source=cached" will be ignored and it will always return
realtime statistics of the logical router port.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-router-ports/<logical-router-port-id>/statistics
Request Headers:
n/a
Query Parameters:
TransportNodeIdParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-router-ports/9b2ec1c5-cb54-4d69-8d64-14ccad6ae3cf/statistics?transport_node_id=f8431964-f400-4da5-8c18-4ce4e6bd5fa5 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LogicalRouterPortStatistics+

Example Response: { "logical_router_port_id": "9b2ec1c5-cb54-4d69-8d64-14ccad6ae3cf", "per_node_statistics": [ { "tx": { "dropped_packets": 0, "total_bytes": 1193822, "total_packets": 19695 }, "last_update_timestamp": 1457125914113, "rx": { "dropped_packets": 0, "total_bytes": 1492866, "total_packets": 24077 }, "transport_node_id": "f8431964-f400-4da5-8c18-4ce4e6bd5fa5" } ] } Required Permissions: read Feature: routing_routers Additional Errors:

Get the statistics summary of a specified logical router port (Deprecated)

Returns the summation of statistics from all nodes for the Specified
Logical Router Port.
The query parameter "source=realtime" is not supported.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-router-ports/<logical-router-port-id>/statistics/summary
Request Headers:
n/a
Query Parameters:
DataSourceParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-router-ports/9b2ec1c5-cb54-4d69-8d64-14ccad6ae3cf/statistics/summary Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LogicalRouterPortStatisticsSummary+

Example Response: { "tx": { "dropped_packets": 10, "total_bytes": 12172280, "total_packets": 60789 }, "last_update_timestamp": 1457125987869, "rx": { "dropped_packets": 8535, "total_bytes": 2085660, "total_packets": 33952 }, "logical_router_port_id": "9b2ec1c5-cb54-4d69-8d64-14ccad6ae3cf" } Required Permissions: read Feature: routing_routers Additional Errors:

Management Plane API: Networking: Logical Routing And Services: Logical Routers

Associated URIs:

List Logical Routers (Deprecated)

Returns information about all logical routers, including the UUID, internal
and external transit network addresses, and the router type (TIER0 or
TIER1). You can get information for only TIER0 routers or only the TIER1
routers by including the router_type query parameter.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers
Request Headers:
n/a
Query Parameters:
LogicalRouterListParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers?router_type=TIER0 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LogicalRouterListResult+

Example Response: { "cursor": "00364c87219e-7361-4fa4-9b4e-c612ed56f1fdtier-0", "result_count": 1, "results": [ { "resource_type": "LogicalRouter", "description": "", "id": "4c87219e-7361-4fa4-9b4e-c612ed56f1fd", "display_name": "tier-0", "tags": [], "edge_cluster_id": "a9dc562c-effd-4225-883d-3f7d2c887c6b", "advanced_config": { "external_transit_networks": [ "100.64.0.0/10" ], "internal_transit_network": "169.254.0.0/28" }, "allocation_profile": { "enable_standby_relocation": false } "router_type": "TIER0", "high_availability_mode": "ACTIVE_ACTIVE", "_last_modified_time": 1457505773124, "_create_time": 1457505741221, "_last_modified_user": "admin", "_system_owned": false, "_create_user": "admin", "_revision": 1 } ] } Required Permissions: read Feature: routing_routers Additional Errors:

Create a Logical Router (Deprecated)

Creates a logical router. The required parameters are router_type (TIER0 or
TIER1) and edge_cluster_id (TIER0 only). Optional parameters include
internal and external transit network addresses.
Request:
Method:
POST
URI Path(s):
/api/v1/logical-routers
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
LogicalRouter+

Example Request: POST https://<nsx-mgr>/api/v1/logical-routers { "resource_type": "LogicalRouter", "description": "Router West", "display_name": "tier-0", "edge_cluster_id": "a9dc562c-effd-4225-883d-3f7d2c887c6b", "advanced_config": { "external_transit_networks": [ "100.64.1.0/10" ], "internal_transit_network": "169.254.0.0/28" }, "allocation_profile": { "enable_standby_relocation": false }, "router_type": "TIER0", "high_availability_mode": "ACTIVE_ACTIVE" } Successful Response:
Response Code:
201 Created
Response Headers:
Location
Content-type: application/json
Response Body:
LogicalRouter+

Example Response: { "resource_type": "LogicalRouter", "description": "Router West", "id": "88a3c980-c433-43f7-80b8-987c8f80d9e1", "display_name": "tier-0", "edge_cluster_id": "a9dc562c-effd-4225-883d-3f7d2c887c6b", "advanced_config": { "external_transit_networks": [ "100.64.0.0/10" ], "internal_transit_network": "169.254.0.0/28" }, "allocation_profile": { "enable_standby_relocation": false }, "router_type": "TIER0", "high_availability_mode": "ACTIVE_ACTIVE", "_last_modified_time": 1457550246853, "_create_time": 1457550246853, "_last_modified_user": "admin", "_system_owned": false, "_create_user": "admin", "_revision": 0 } Required Permissions: crud Feature: routing_routers Additional Errors:

Update a Logical Router (Deprecated)

Modifies the specified logical router. Modifiable attributes include the
internal_transit_network, external_transit_networks, and edge_cluster_id
(for TIER0 routers).
Request:
Method:
PUT
URI Path(s):
/api/v1/logical-routers/<logical-router-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
LogicalRouter+

Example Request: PUT https://<nsx-mgr>/api/v1/logical-routers/f962173f-ac03-4d08-8366-56a41779f61d { "resource_type": "LogicalRouter", "description": "Router NortWest", "id": "88a3c980-c433-43f7-80b8-987c8f80d9e1", "display_name": "tier-0", "edge_cluster_id": "a9dc562c-effd-4225-883d-3f7d2c887c6b", "router_type": "TIER0", "high_availability_mode": "ACTIVE_ACTIVE", "_revision": 0 } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LogicalRouter+

Example Response: { "resource_type": "LogicalRouter", "description": "Router NortWest", "id": "88a3c980-c433-43f7-80b8-987c8f80d9e1", "display_name": "tier-0", "edge_cluster_id": "a9dc562c-effd-4225-883d-3f7d2c887c6b", "advanced_config": { "external_transit_networks": [ "100.64.0.0/10" ], "internal_transit_network": "169.254.0.0/28" }, "router_type": "TIER0", "high_availability_mode": "ACTIVE_ACTIVE", "_last_modified_time": 1457551370133, "_create_time": 1457550246853, "_last_modified_user": "admin", "_system_owned": false, "_create_user": "admin", "_revision": 1 } Required Permissions: crud Feature: routing_routers Additional Errors:

Delete a Logical Router (Deprecated)

Deletes the specified logical router. You must delete associated logical
router ports before you can delete a logical router. Otherwise use force
delete which will delete all related ports and other entities associated
with that LR. To force delete logical router pass force=true in query param.
Request:
Method:
DELETE
URI Path(s):
/api/v1/logical-routers/<logical-router-id>
Request Headers:
n/a
Query Parameters:
LogicalRouterDeleteRequestParameters+
Request Body:
n/a

Example Request: DELETE https://<nsx-mgr>/api/v1/logical-routers/f962173f-ac03-4d08-8366-56a41779f61d DELETE https://<nsx-mgr>/api/v1/logical-routers/f962173f-ac03-4d08-8366-56a41779f61d?force=true Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: routing_routers Additional Errors:

Read Logical Router (Deprecated)

Returns information about the specified logical router. Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/f962173f-ac03-4d08-8366-56a41779f61d Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LogicalRouter+

Example Response: { "_revision": 0, "id": "f962173f-ac03-4d08-8366-56a41779f61d", "resource_type": "LogicalRouter", "config": { "internal_transit_network": "169.0.0.0/28", "external_transit_networks": [ "100.64.1.0/24" ] }, "router_type": "TIER0", "_last_modified_user": "admin", "_last_modified_time": 1414620218840, "_create_time": 1414620218840, "_create_user": "admin" } Required Permissions: read Feature: routing_routers Additional Errors:

Get BGP neighbor advertised routes (Deprecated)

Returns routes advertised by BGP neighbor from all edge transport nodes on which
this neighbor is currently enabled. It always returns realtime response.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/bgp/neighbors/<neighbor-id>/advertised-routes
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/875381be-a4c5-4173-8aa7-ab71695a8129/routing/bgp/neighbors/f8431964-f400-4da5-8c18-4ce4e6bd5fa5/advertised-routes Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
BgpNeighborRouteDetails+

Example Response: { "logical_router_id": "4cca3156-bcc0-4c77-9a6a-141cb33a3844", "neighbor_address": "40.40.40.10", "per_transport_node_routes": [{ "transport_node_id": "6c9e2815-ad34-4b9c-bb95-8af87990cf5a", "source_address": "10.10.10.1", "routes": [{ "network": "2.1.4.0/24", "next_hop": "40.40.40.10", "local_pref": 0, "weight": 0, "med": 1, "as_path": 1000 }, { "network": "40.40.40.0/24", "next_hop": "40.40.40.10", "local_pref": 0, "weight": 0, "med": 1, "as_path": 1000 }] }, { "transport_node_id": "7980e91e-ba6d-11e8-9bda-020009ead346", "source_address": "50.50.50.1", "routes": [{ "network": "2.1.4.0/24", "next_hop": "40.40.40.10", "local_pref": 0, "weight": 0, "med": 1, "as_path": 1000 }, { "network": "40.40.40.0/24", "next_hop": "40.40.40.10", "local_pref": 0, "weight": 0, "med": 1, "as_path": 1000 }] }] } Required Permissions: read Feature: routing_routers Additional Errors:

Get BGP neighbor advertised routes in CSV format (Deprecated)

Returns routes advertised by BGP neighbor from all edge transport
nodes on which this neighbor is currently enabled in CSV format.
It always returns realtime response.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/bgp/neighbors/<neighbor-id>/advertised-routes?format=csv
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/875381be-a4c5-4173-8aa7-ab71695a8129/routing/bgp/neighbors/f8431964-f400-4da5-8c18-4ce4e6bd5fa5/advertised-routes?format=csv Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: text/csv
Response Body:
BgpNeighborRouteDetailsInCsvFormat+

Example Response: logical_router_id,neighbor_id,neighbor_address,transport_node_id,source_address,network,next_hop,local_pref,weight,med,as_path "3546b561-fcc6-4292-a97a-4caa611b995d","d56e64af-4329-4761-9bf7-39e0f68d7732",40.40.40.10,"c2ae8904-3e5f-11e9-b335-020006f72dcc",40.40.40.1,2.1.4.0/24,40.40.40.10,100,0,1," 1000 !" "3546b561-fcc6-4292-a97a-4caa611b995d","d56e64af-4329-4761-9bf7-39e0f68d7732",40.40.40.10,"c2ae8904-3e5f-11e9-b335-020006f72dcc",40.40.40.1,10.160.64.0/19,40.40.40.10,100,0,1," 1000 !" "3546b561-fcc6-4292-a97a-4caa611b995d","d56e64af-4329-4761-9bf7-39e0f68d7732",40.40.40.10,"c2ae8904-3e5f-11e9-b335-020006f72dcc",40.40.40.1,40.40.40.0/24,40.40.40.10,100,0,1," 1000 !" "3546b561-fcc6-4292-a97a-4caa611b995d","d56e64af-4329-4761-9bf7-39e0f68d7732",40.40.40.10,"c2ae8904-3e5f-11e9-b335-020006f72dcc",40.40.40.1,90.90.90.0/24,40.40.40.10,100,0,1," 1000 !" Required Permissions: read Feature: routing_routers Additional Errors:

Get BGP neighbor learned routes (Deprecated)

Returns routes learned by BGP neighbor from all edge transport nodes on which
this neighbor is currently enabled. It always returns realtime response.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/bgp/neighbors/<neighbor-id>/routes
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/875381be-a4c5-4173-8aa7-ab71695a8129/routing/bgp/neighbors/f8431964-f400-4da5-8c18-4ce4e6bd5fa5/routes Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
BgpNeighborRouteDetails+

Example Response: { "logical_router_id": "4cca3156-bcc0-4c77-9a6a-141cb33a3844", "neighbor_address": "40.40.40.10", "per_transport_node_routes": [{ "transport_node_id": "6c9e2815-ad34-4b9c-bb95-8af87990cf5a", "source_address": "10.10.10.1", "routes": [{ "network": "2.1.4.0/24", "next_hop": "40.40.40.10", "local_pref": 0, "weight": 0, "med": 1, "as_path": 1000 }, { "network": "40.40.40.0/24", "next_hop": "40.40.40.10", "local_pref": 0, "weight": 0, "med": 1, "as_path": 1000 }] }, { "transport_node_id": "7980e91e-ba6d-11e8-9bda-020009ead346", "source_address": "50.50.50.1", "routes": [{ "network": "2.1.4.0/24", "next_hop": "40.40.40.10", "local_pref": 0, "weight": 0, "med": 1, "as_path": 1000 }, { "network": "40.40.40.0/24", "next_hop": "40.40.40.10", "local_pref": 0, "weight": 0, "med": 1, "as_path": 1000 }] }] } Required Permissions: read Feature: routing_routers Additional Errors:

Get BGP neighbor learned routes in CSV format (Deprecated)

Returns routes learned by BGP neighbor from all edge transport nodes on
which this neighbor is currently enabled in CSV format.
It always returns realtime response.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/bgp/neighbors/<neighbor-id>/routes?format=csv
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/875381be-a4c5-4173-8aa7-ab71695a8129/routing/bgp/neighbors/f8431964-f400-4da5-8c18-4ce4e6bd5fa5/routes?format=csv Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: text/csv
Response Body:
BgpNeighborRouteDetailsInCsvFormat+

Example Response: logical_router_id,neighbor_id,neighbor_address,transport_node_id,source_address,network,next_hop,local_pref,weight,med,as_path "3546b561-fcc6-4292-a97a-4caa611b995d","d56e64af-4329-4761-9bf7-39e0f68d7732",40.40.40.10,"c2ae8904-3e5f-11e9-b335-020006f72dcc",40.40.40.1,2.1.4.0/24,40.40.40.10,100,0,1," 1000 !" "3546b561-fcc6-4292-a97a-4caa611b995d","d56e64af-4329-4761-9bf7-39e0f68d7732",40.40.40.10,"c2ae8904-3e5f-11e9-b335-020006f72dcc",40.40.40.1,10.160.64.0/19,40.40.40.10,100,0,1," 1000 !" "3546b561-fcc6-4292-a97a-4caa611b995d","d56e64af-4329-4761-9bf7-39e0f68d7732",40.40.40.10,"c2ae8904-3e5f-11e9-b335-020006f72dcc",40.40.40.1,40.40.40.0/24,40.40.40.10,100,0,1," 1000 !" "3546b561-fcc6-4292-a97a-4caa611b995d","d56e64af-4329-4761-9bf7-39e0f68d7732",40.40.40.10,"c2ae8904-3e5f-11e9-b335-020006f72dcc",40.40.40.1,90.90.90.0/24,40.40.40.10,100,0,1," 1000 !" Required Permissions: read Feature: routing_routers Additional Errors:

Get the status of all the BGP neighbors for the Logical Router of the given id (Deprecated)

Returns the status of all the BGP neighbors for the Logical Router of the given id. To get BGP neighbors status for the logical router from particular node, parameter "transport_node_id=<transportnode_id>" needs to be specified. Query parameter "source=realtime" is the only supported source. Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/bgp/neighbors/status
Request Headers:
n/a
Query Parameters:
ListByOptionalNodeIdParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/875381be-a4c5-4173-8aa7-ab71695a8129/routing/bgp/neighbors/status?transport_node_id=f8431964-f400-4da5-8c18-4ce4e6bd5fa5&source=realtime Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
BgpNeighborsStatusListResult+

Example Response: { "cursor": "00361b9f1d54-2f05-441e-9851-c42518cc8b1dasdfds", "sort_ascending": true, "sort_by": "displayName", "result_count": 1, "logical_router_id": "875381be-a4c5-4173-8aa7-ab71695a8129", "logical_router_name": "PLR", "results": [{ "lr_component_id": "70c955dd-22c0-4199-b3a9-8f312478116a", "transport_node_id": "7aaaaadd-22c0-4199-bddd-3aaaaaa8116a", "source_address": "10.1.1.1", "neighbor_address": "10.1.2.1", "remote_as_number": "1", "remote_port": 179, "local_port": 179, "connection_status": "CONNECTED", "messages_received": 12, "messages_sent": 10, "connection_drop_count": 0, "hold_time": 180, "keep_alive_time": 30, "graceful_restart": true, "last_updated_timestamp": 11999191991991 }] } Required Permissions: read Feature: routing_routers Additional Errors:

Get FIB table on a specified node for a logical router (Deprecated)

Returns the FIB for the logical router on a node of the given transport-node-id.
Query parameter "transport_node_id=<transport-node-id>" is required.
To filter the result by network address, paramter "network_prefix=<a.b.c.d/mask>"
needs to be specified.
Query parameter "source=realtime" is the only supported source.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/forwarding-table
Request Headers:
n/a
Query Parameters:
LogicalRouterFIBListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/875381be-a4c5-4173-8aa7-ab71695a8129/routing/forwarding-table?transport_node_id=f8431964-f400-4da5-8c18-4ce4e6bd5fa5&source=realtime Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LogicalRouterRouteTable+

Example Response: { "cursor": "00361b9f1d54-2f05-441e-9851-c42518cc8b1dasdfds", "sort_ascending": true, "sort_by": "displayName", "result_count": 7, "logical_router_id": "875381be-a4c5-4173-8aa7-ab71695a8129", "results": [ { "lr_component_id": "875381be-a4c5-4173-8aa7-ab71695a8129", "next_hop": "169.0.0.2", "logical_router_port_id": "70c955dd-22c0-4199-b3a9-8f312478116a", "admin_distance": 0, "lr_component_type": "DISTRIBUTED_ROUTER", "network": "0.0.0.0/0" }, { "lr_component_id": "875381be-a4c5-4173-8aa7-ab71695a8129", "next_hop": "169.0.0.2", "logical_router_port_id": "70c955dd-22c0-4199-b3a9-8f312478116a", "admin_distance": 0, "lr_component_type": "DISTRIBUTED_ROUTER", "network": "100.64.1.0/31" }, { "lr_component_id": "875381be-a4c5-4173-8aa7-ab71695a8129", "next_hop": "169.0.0.2", "logical_router_port_id": "70c955dd-22c0-4199-b3a9-8f312478116a", "admin_distance": 0, "lr_component_type": "DISTRIBUTED_ROUTER", "network": "100.64.1.1/32" }, { "lr_component_id": "875381be-a4c5-4173-8aa7-ab71695a8129", "next_hop": "0.0.0.0", "logical_router_port_id": "70c955dd-22c0-4199-b3a9-8f312478116a", "admin_distance": 0, "lr_component_type": "DISTRIBUTED_ROUTER", "network": "169.0.0.0/28" }, { "lr_component_id": "875381be-a4c5-4173-8aa7-ab71695a8129", "next_hop": "0.0.0.0", "logical_router_port_id": "9b2ec1c5-cb54-4d69-8d64-14ccad6ae3cf", "admin_distance": 0, "lr_component_type": "DISTRIBUTED_ROUTER", "network": "172.16.10.0/24" }, { "lr_component_id": "875381be-a4c5-4173-8aa7-ab71695a8129", "next_hop": "0.0.0.0", "logical_router_port_id": "3fc52f87-60b8-4c64-b664-9383f9680006", "admin_distance": 0, "lr_component_type": "DISTRIBUTED_ROUTER", "network": "172.16.20.0/24" }, { "lr_component_id": "875381be-a4c5-4173-8aa7-ab71695a8129", "next_hop": "0.0.0.0", "logical_router_port_id": "0d187b84-e1dc-4a49-9ac3-e500a69445c3", "admin_distance": 0, "lr_component_type": "DISTRIBUTED_ROUTER", "network": "172.16.30.0/24" } ] } Required Permissions: read Feature: routing_routers Additional Errors:

Get FIB table on a specified node for a logical router (Deprecated)

Returns the FIB table in CSV format for the logical router on a node of the given
transport-node-id. Query parameter "transport_node_id=<transport-node-id>" is required.
To filter the result by network address, paramter "network_prefix=<a.b.c.d/mask>"
needs to be specified.
Query parameter "source=realtime" is the only supported source.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/forwarding-table?format=csv
Request Headers:
n/a
Query Parameters:
LogicalRouterFIBRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/875381be-a4c5-4173-8aa7-ab71695a8129/routing/forwarding-table?transport_node_id=f8431964-f400-4da5-8c18-4ce4e6bd5fa5&format=csv&source=realtime Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: text/csv
Response Body:
LogicalRouterRouteTableInCsvFormat+

Example Response: network,logical_router_port_id,next_hop,admin_distance,lr_component_id,lr_component_type 0.0.0.0/0,,169.0.0.2,0,"875381be-a4c5-4173-8aa7-ab71695a8129",DISTRIBUTED_ROUTER 100.64.1.0/31,,169.0.0.2,0,"875381be-a4c5-4173-8aa7-ab71695a8129",DISTRIBUTED_ROUTER 100.64.1.1/32,,169.0.0.2,0,"875381be-a4c5-4173-8aa7-ab71695a8129",DISTRIBUTED_ROUTER 169.0.0.0/28,,0.0.0.0,0,"875381be-a4c5-4173-8aa7-ab71695a8129",DISTRIBUTED_ROUTER 172.16.10.0/24,,0.0.0.0,0,"875381be-a4c5-4173-8aa7-ab71695a8129",DISTRIBUTED_ROUTER Required Permissions: read Feature: routing_routers Additional Errors:

Get route table on a given node for a logical router (Deprecated)

Deprecated - Please use /logical-routers/<logical-router-id>/routing/routing-table for RIB and
/logical-routers/<logical-router-id>/routing/forwarding-table for FIB.
Returns the route table for the logical router on a node of the given transport-node-id.
Query parameter "transport_node_id=<transport-node-id>" is required.
Query parameter "source=realtime" is the only supported source.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/route-table
Request Headers:
n/a
Query Parameters:
ListByRequiredNodeIdParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/875381be-a4c5-4173-8aa7-ab71695a8129/routing/route-table?transport_node_id=f8431964-f400-4da5-8c18-4ce4e6bd5fa5&source=realtime Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LogicalRouterRouteTable+

Example Response: { "cursor": "00361b9f1d54-2f05-441e-9851-c42518cc8b1dasdfds", "sort_ascending": true, "sort_by": "displayName", "result_count": 7, "logical_router_id": "875381be-a4c5-4173-8aa7-ab71695a8129", "results": [ { "lr_component_id": "875381be-a4c5-4173-8aa7-ab71695a8129", "next_hop": "169.0.0.2", "route_type": "NSX_INTERNAL", "logical_router_port_id": "70c955dd-22c0-4199-b3a9-8f312478116a", "admin_distance": 0, "lr_component_type": "DISTRIBUTED_ROUTER", "network": "0.0.0.0/0" }, { "lr_component_id": "875381be-a4c5-4173-8aa7-ab71695a8129", "next_hop": "169.0.0.2", "route_type": "NSX_INTERNAL", "logical_router_port_id": "70c955dd-22c0-4199-b3a9-8f312478116a", "admin_distance": 0, "lr_component_type": "DISTRIBUTED_ROUTER", "network": "100.64.1.0/31" }, { "lr_component_id": "875381be-a4c5-4173-8aa7-ab71695a8129", "next_hop": "169.0.0.2", "route_type": "NSX_INTERNAL", "logical_router_port_id": "70c955dd-22c0-4199-b3a9-8f312478116a", "admin_distance": 0, "lr_component_type": "DISTRIBUTED_ROUTER", "network": "100.64.1.1/32" }, { "lr_component_id": "875381be-a4c5-4173-8aa7-ab71695a8129", "next_hop": "0.0.0.0", "route_type": "CONNECTED", "logical_router_port_id": "70c955dd-22c0-4199-b3a9-8f312478116a", "admin_distance": 0, "lr_component_type": "DISTRIBUTED_ROUTER", "network": "169.0.0.0/28" }, { "lr_component_id": "875381be-a4c5-4173-8aa7-ab71695a8129", "next_hop": "0.0.0.0", "route_type": "CONNECTED", "logical_router_port_id": "9b2ec1c5-cb54-4d69-8d64-14ccad6ae3cf", "admin_distance": 0, "lr_component_type": "DISTRIBUTED_ROUTER", "network": "172.16.10.0/24" }, { "lr_component_id": "875381be-a4c5-4173-8aa7-ab71695a8129", "next_hop": "0.0.0.0", "route_type": "CONNECTED", "logical_router_port_id": "3fc52f87-60b8-4c64-b664-9383f9680006", "admin_distance": 0, "lr_component_type": "DISTRIBUTED_ROUTER", "network": "172.16.20.0/24" }, { "lr_component_id": "875381be-a4c5-4173-8aa7-ab71695a8129", "next_hop": "0.0.0.0", "route_type": "CONNECTED", "logical_router_port_id": "0d187b84-e1dc-4a49-9ac3-e500a69445c3", "admin_distance": 0, "lr_component_type": "DISTRIBUTED_ROUTER", "network": "172.16.30.0/24" } ] } Required Permissions: read Feature: routing_routers Additional Errors:

Get route table on a node for a logical router (Deprecated)

Deprecated - Please use /logical-routers/<logical-router-id>/routing/routing-table for RIB and
/logical-routers/<logical-router-id>/routing/forwarding-table for FIB.
Returns the route table in CSV format for the logical router on a node of the given
transport-node-id. Query parameter "transport_node_id=<transport-node-id>" is required.
Query parameter "source=realtime" is the only supported source.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/route-table?format=csv
Request Headers:
n/a
Query Parameters:
RequiredTransportNodeIdParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/875381be-a4c5-4173-8aa7-ab71695a8129/routing/route-table?transport_node_id=f8431964-f400-4da5-8c18-4ce4e6bd5fa5&format=csv&source=realtime Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: text/csv
Response Body:
LogicalRouterRouteTableInCsvFormat+

Example Response: route_type,network,logical_router_port_id,next_hop,admin_distance,lr_component_id,lr_component_type NSX_INTERNAL,0.0.0.0/0,,169.0.0.2,0,"875381be-a4c5-4173-8aa7-ab71695a8129",DISTRIBUTED_ROUTER NSX_INTERNAL,100.64.1.0/31,,169.0.0.2,0,"875381be-a4c5-4173-8aa7-ab71695a8129",DISTRIBUTED_ROUTER NSX_INTERNAL,100.64.1.1/32,,169.0.0.2,0,"875381be-a4c5-4173-8aa7-ab71695a8129",DISTRIBUTED_ROUTER CONNECTED,169.0.0.0/28,,0.0.0.0,0,"875381be-a4c5-4173-8aa7-ab71695a8129",DISTRIBUTED_ROUTER CONNECTED,172.16.10.0/24,,0.0.0.0,0,"875381be-a4c5-4173-8aa7-ab71695a8129",DISTRIBUTED_ROUTER CONNECTED,172.16.20.0/24,,0.0.0.0,0,"875381be-a4c5-4173-8aa7-ab71695a8129",DISTRIBUTED_ROUTER CONNECTED,172.16.30.0/24,,0.0.0.0,0,"875381be-a4c5-4173-8aa7-ab71695a8129",DISTRIBUTED_ROUTER Required Permissions: read Feature: routing_routers Additional Errors:

Get RIB table on a specified node for a logical router (Deprecated)

Returns the route table(RIB) for the logical router on a node of the given transport-node-id.
Query parameter "transport_node_id=<transport-node-id>" is required.
To filter the result by network address, parameter "network_prefix=<a.b.c.d/mask>"
needs to be specified.
To filter the result by route source, parameter "route_source=<source_type>" needs to be specified
where source_type can be BGP, STATIC, CONNECTED, NSX_STATIC, TIER1_NAT or TIER0_NAT.
It is also possible to filter the RIB table using both network address and
route source filter together.
Query parameter "source=realtime" is the only supported source.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/routing-table
Request Headers:
n/a
Query Parameters:
LogicalRouterRIBListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/875381be-a4c5-4173-8aa7-ab71695a8129/routing/routing-table?transport_node_id=f8431964-f400-4da5-8c18-4ce4e6bd5fa5&source=realtime Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LogicalRouterRouteTable+

Example Response: { "cursor": "00361b9f1d54-2f05-441e-9851-c42518cc8b1dasdfds", "sort_ascending": true, "sort_by": "displayName", "result_count": 7, "logical_router_id": "875381be-a4c5-4173-8aa7-ab71695a8129", "results": [ { "lr_component_id": "875381be-a4c5-4173-8aa7-ab71695a8129", "next_hop": "169.0.0.2", "route_type": "NSX_INTERNAL", "logical_router_port_id": "70c955dd-22c0-4199-b3a9-8f312478116a", "admin_distance": 0, "lr_component_type": "DISTRIBUTED_ROUTER", "network": "0.0.0.0/0" }, { "lr_component_id": "875381be-a4c5-4173-8aa7-ab71695a8129", "next_hop": "169.0.0.2", "route_type": "NSX_INTERNAL", "logical_router_port_id": "70c955dd-22c0-4199-b3a9-8f312478116a", "admin_distance": 0, "lr_component_type": "DISTRIBUTED_ROUTER", "network": "100.64.1.0/31" }, { "lr_component_id": "875381be-a4c5-4173-8aa7-ab71695a8129", "next_hop": "169.0.0.2", "route_type": "NSX_INTERNAL", "logical_router_port_id": "70c955dd-22c0-4199-b3a9-8f312478116a", "admin_distance": 0, "lr_component_type": "DISTRIBUTED_ROUTER", "network": "100.64.1.1/32" }, { "lr_component_id": "875381be-a4c5-4173-8aa7-ab71695a8129", "next_hop": "0.0.0.0", "route_type": "CONNECTED", "logical_router_port_id": "70c955dd-22c0-4199-b3a9-8f312478116a", "admin_distance": 0, "lr_component_type": "DISTRIBUTED_ROUTER", "network": "169.0.0.0/28" }, { "lr_component_id": "875381be-a4c5-4173-8aa7-ab71695a8129", "next_hop": "0.0.0.0", "route_type": "CONNECTED", "logical_router_port_id": "9b2ec1c5-cb54-4d69-8d64-14ccad6ae3cf", "admin_distance": 0, "lr_component_type": "DISTRIBUTED_ROUTER", "network": "172.16.10.0/24" }, { "lr_component_id": "875381be-a4c5-4173-8aa7-ab71695a8129", "next_hop": "0.0.0.0", "route_type": "CONNECTED", "logical_router_port_id": "3fc52f87-60b8-4c64-b664-9383f9680006", "admin_distance": 0, "lr_component_type": "DISTRIBUTED_ROUTER", "network": "172.16.20.0/24" }, { "lr_component_id": "875381be-a4c5-4173-8aa7-ab71695a8129", "next_hop": "0.0.0.0", "route_type": "CONNECTED", "logical_router_port_id": "0d187b84-e1dc-4a49-9ac3-e500a69445c3", "admin_distance": 0, "lr_component_type": "DISTRIBUTED_ROUTER", "network": "172.16.30.0/24" } ] } Required Permissions: read Feature: routing_routers Additional Errors:

Get RIB table on a specified node for a logical router (Deprecated)

Returns the route table in CSV format for the logical router on a node of the given
transport-node-id. Query parameter "transport_node_id=<transport-node-id>" is required.
To filter the result by network address, paramter "network_prefix=<a.b.c.d/mask>"
needs to be specified.
To filter the result by route source, parameter "route_source=<source_type>" needs to be specified
where source_type can be BGP, STATIC, CONNECTED, NSX_STATIC, TIER1_NAT or TIER0_NAT.
It is also possible to filter the RIB table using both network address and
route source filter together.
Query parameter "source=realtime" is the only supported source.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/routing-table?format=csv
Request Headers:
n/a
Query Parameters:
LogicalRouterRIBRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/875381be-a4c5-4173-8aa7-ab71695a8129/routing/routing-table?transport_node_id=f8431964-f400-4da5-8c18-4ce4e6bd5fa5&format=csv&source=realtime Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: text/csv
Response Body:
LogicalRouterRouteTableInCsvFormat+

Example Response: route_type,network,logical_router_port_id,next_hop,admin_distance,lr_component_id,lr_component_type NSX_INTERNAL,0.0.0.0/0,,169.0.0.2,0,"875381be-a4c5-4173-8aa7-ab71695a8129",DISTRIBUTED_ROUTER NSX_INTERNAL,100.64.1.0/31,,169.0.0.2,0,"875381be-a4c5-4173-8aa7-ab71695a8129",DISTRIBUTED_ROUTER NSX_INTERNAL,100.64.1.1/32,,169.0.0.2,0,"875381be-a4c5-4173-8aa7-ab71695a8129",DISTRIBUTED_ROUTER CONNECTED,169.0.0.0/28,,0.0.0.0,0,"875381be-a4c5-4173-8aa7-ab71695a8129",DISTRIBUTED_ROUTER CONNECTED,172.16.10.0/24,,0.0.0.0,0,"875381be-a4c5-4173-8aa7-ab71695a8129",DISTRIBUTED_ROUTER CONNECTED,1l72.16.20.0/24,,0.0.0.0,0,"875381be-a4c5-4173-8aa7-ab71695a8129",DISTRIBUTED_ROUTER CONNECTED,172.16.30.0/24,,0.0.0.0,0,"875381be-a4c5-4173-8aa7-ab71695a8129",DISTRIBUTED_ROUTER Required Permissions: read Feature: routing_routers Additional Errors:

Get the Realized State of a Logical Service Router Cluster (Deprecated)

Return realized state information of a logical service router cluster.
Any configuration update that affects the logical service router 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 nat, bgp, bfd, etc.

What is a Service Router?
When a service cannot be distributed is enabled on a Logical Router, a Service Router (SR) is instantiated.
Some examples of services that are not distributed are NAT, DHCP server, Metadata Proxy, Edge Firewall,
Load Balancer and so on.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/service-cluster/state
Request Headers:
n/a
Query Parameters:
RealizationStateQueryParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/service-cluster/state Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LogicalServiceRouterClusterState+

Example Response: { "details": [ { "sub_system_type": "TransportNode", "sub_system_id": "fe651e63-04bd-43a4-a8ec-45381a3b71b9", "state": "in_progress", "failure_message": "CCP Id:ab5958df-d98a-468e-a72b-d89dcdae5346, Message:State realization is in progress at the node." }, { "sub_system_type": "TransportNode", "sub_system_id": "ebe174ac-e4f1-4135-ba72-3dd2eb7099e3", "state": "in_sync" } ], "state": "in_progress", "failure_message": "The state realization is in progress at transport nodes." } Required Permissions: read Feature: routing_routers Additional Errors:

Get the Realized State of a Logical Router (Deprecated)

Return realized state information of a logical router.
Any configuration update that affects the logical router 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 logical router,
static routes, etc.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/state
Request Headers:
n/a
Query Parameters:
RealizationStateQueryParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/state Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LogicalRouterState+

Example Response: { "details": [ { "sub_system_type": "TransportNode", "sub_system_id": "fe651e63-04bd-43a4-a8ec-45381a3b71b9", "state": "in_progress", "failure_message": "CCP Id:ab5958df-d98a-468e-a72b-d89dcdae5346, Message:State realization is in progress at the node." }, { "sub_system_type": "TransportNode", "sub_system_id": "ebe174ac-e4f1-4135-ba72-3dd2eb7099e3", "state": "in_sync" } ], "state": "in_progress", "failure_message": "The state realization is in progress at transport nodes." } Required Permissions: read Feature: routing_routers Additional Errors:

Get the status for the Logical Router of the given id (Deprecated)

Returns status for the Logical Router of the given id. Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/status
Request Headers:
n/a
Query Parameters:
DataSourceParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/875381be-a4c5-4173-8aa7-ab71695a8129/status Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LogicalRouterStatus+

Example Response: { "logical_router_id": "875381be-a4c5-4173-8aa7-ab71695a8129", "last_update_timestamp": 1457127071089, "per_node_status": [ { "service_router_id": "56eead22-3bb9-4586-8de3-9412941f9116", "high_availability_status": "STANDBY", "transport_node_id": "ca6fd559-198d-4a4a-a5be-7e4eda1d5af4" }, { "service_router_id": "56eead22-3bb9-4586-8de3-9412941f9116", "high_availability_status": "ACTIVE", "transport_node_id": "88324389-7991-4189-a4e9-3eaea4b97f61" } ] } Required Permissions: read Feature: routing_routers Additional Errors:

Re allocate edge node placement of TIER1 service routers (Deprecated)

API to re allocate edge node placement for TIER1 logical router. You can
re-allocate service routers of TIER1 in same edge cluster or different edge
cluster. You can also place edge nodes manually and provide maximum two
indices for HA mode ACTIVE_STANDBY. To re-allocate on new edge cluster you
must have existing edge cluster for TIER1 logical router. This will be
disruptive operation and all existing statistics of logical router will be
remove.
Request:
Method:
POST
URI Path(s):
/api/v1/logical-routers/<logical-router-id>?action=reallocate
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
ServiceRouterAllocationConfig+

Example Request: POST https://<nsx-mgr>/api/v1/logical-routers/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c?action=reallocate { "edge_cluster_id": "a9dc562c-effd-4225-883d-3f7d2c887c6b" } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LogicalRouter+

Example Response: { "resource_type": "LogicalRouter", "description": "Router EastWest", "id": "7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c", "display_name": "tier-1", "edge_cluster_id": "a9dc562c-effd-4225-883d-3f7d2c887c6b", "edge_cluster_member_indices": [ 0, 1 ], "advanced_config": { "internal_transit_network": "169.254.0.0/28" }, "router_type": "TIER1", "high_availability_mode": "ACTIVE_STANDBY", "_last_modified_time": 1457551370133, "_create_time": 1457550246853, "_last_modified_user": "admin", "_system_owned": false, "_create_user": "admin", "_revision": 1 } Required Permissions: crud Feature: routing_routers Additional Errors:

Reprocesses a logical router configuration and publish updates to controller (Deprecated)

Reprocess logical router configuration and configuration of related entities like logical router ports, static routing, etc.
Any missing Updates are published to controller.
Request:
Method:
POST
URI Path(s):
/api/v1/logical-routers/<logical-router-id>?action=reprocess
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: POST https://<nsx-mgr>/api/v1/logical-routers/875381be-a4c5-4173-8aa7-ab71695a8129?action=reprocess Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: routing_routers Additional Errors:

Management Plane API: Networking: Logical Routing And Services: NAT

Associated URIs:

List NAT rules of the logical router (Deprecated)

Returns paginated list of all user defined NAT rules of the specific
logical router. If a rule_type is provided, only the given type of
rules will be returned. If no rule_type is specified, the rule_type
will be defaulted to NATv4, i.e. only the NATv4 rules will be listed.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/nat/rules
Request Headers:
n/a
Query Parameters:
NatRuleTypeParameter+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/1977d30c-eee2-11e4-874d-0050569c7004/nat/rules?rule_type=ALL Successful Response:
Response Code:
200 OK
Response Headers:
Location
Content-type: application/json
Response Body:
NatRuleListResult+

Example Response: { "cursor": "003601003000-0000-0404-0000-0000000000181024", "sort_by": "rule_priority", "result_count": 1, "results": [ { "resource_type": "NatRule", "id": "1028", "display_name": "01003000-0000-0404-0000-000000000018", "match_source_network": "80.80.80.1", "action": "SNAT", "logging": false, "translated_ports": "", "match_service": { "resource_type": "L4PortSetNSService", "destination_ports": [ "80", "8080" ], "l4_protocol": "TCP", "source_ports": [] }, "rule_priority": 1024, "translated_network": "172.16.10.10", "enabled": true, "nat_pass": true, "_last_modified_time": 1458852632857, "_create_time": 1458852302781, "_last_modified_user": "admin", "_system_owned": false, "_create_user": "admin", "_revision": 3 } ] } Required Permissions: read Feature: routing_nat Additional Errors:

Add a NAT rule in a specific logical router (Deprecated)

Add a NAT rule in a specific logical router.
Request:
Method:
POST
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/nat/rules
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
NatRule+

Example Request: POST https://<nsx-mgr>/api/v1/logical-routers/1977d30c-eee2-11e4-874d-0050569c7004/nat/rules { "action": "SNAT", "match_source_network": "192.168.1.1", "translated_network": "10.117.5.19", "match_service": { "resource_type": "L4PortSetNSService", "source_ports": ["9000"], "destination_ports": ["9000"], "l4_protocol": "TCP" }, "enabled": false } Successful Response:
Response Code:
201 Created
Response Headers:
Location
Content-type: application/json
Response Body:
NatRule+

Example Response: { "resource_type": "NatRule", "id": "1029", "display_name": "01003000-0000-0405-0000-000000000018", "match_source_network": "192.168.1.1", "action": "SNAT", "logging": false, "match_service": { "resource_type": "L4PortSetNSService", "destination_ports": [ "9000" ], "l4_protocol": "TCP", "source_ports": [ "9000" ] }, "rule_priority": 1024, "translated_network": "10.117.5.19", "enabled": false, "nat_pass": true, "_last_modified_time": 1458852877750, "_create_time": 1458852877750, "_last_modified_user": "admin", "_system_owned": false, "_create_user": "admin", "_revision": 0 } Required Permissions: crud Feature: routing_nat Additional Errors:

Delete a specific NAT rule from a logical router (Deprecated)

Delete a specific NAT rule from a logical router
Request:
Method:
DELETE
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/nat/rules/<rule-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: DELETE https://<nsx-mgr>/api/v1/logical-routers/1977d30c-eee2-11e4-874d-0050569c7004/nat/rules/1032 Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: routing_nat Additional Errors:

Get a specific NAT rule from a given logical router (Deprecated)

Get a specific NAT rule from a given logical router
Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/nat/rules/<rule-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/1977d30c-eee2-11e4-874d-0050569c7004/nat/rules/1032 Successful Response:
Response Code:
200 OK
Response Headers:
Location
Content-type: application/json
Response Body:
NatRule+

Example Response: { "resource_type": "NatRule", "id": "1032", "display_name": "01003000-0000-0408-0000-000000000018", "action": "DNAT", "logging": false, "rule_priority": 1024, "translated_network": "172.16.10.10", "enabled": true, "nat_pass": true, "match_destination_network": "80.80.80.1", "_last_modified_time": 1458853243886, "_create_time": 1458853243886, "_last_modified_user": "admin", "_system_owned": false, "_create_user": "admin", "_revision": 0 } Required Permissions: read Feature: routing_nat Additional Errors:

Update a specific NAT rule from a given logical router (Deprecated)

Update a specific NAT rule from a given logical router.
Request:
Method:
PUT
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/nat/rules/<rule-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
NatRule+

Example Request: PUT https://<nsx-mgr>/api/v1/logical-routers/1977d30c-eee2-11e4-874d-0050569c7004/nat/rules/1032 { "resource_type": "NatRule", "id": "1032", "display_name": "01003000-0000-0408-0000-000000000018", "action": "DNAT", "logging": false, "translated_ports": "21", "rule_priority": 1024, "translated_network": "172.16.10.10", "enabled": true, "match_destination_network": "80.80.80.1", "nat_pass": false, "_revision": 1 } Successful Response:
Response Code:
200 OK
Response Headers:
Location
Content-type: application/json
Response Body:
NatRule+

Example Response: { "resource_type": "NatRule", "id": "1032", "display_name": "01003000-0000-0408-0000-000000000018", "action": "DNAT", "logging": false, "translated_ports": "21", "rule_priority": 1024, "translated_network": "172.16.10.10", "enabled": true, "nat_pass": false, "match_destination_network": "80.80.80.1", "_last_modified_time": 1458853572023, "_create_time": 1458853243886, "_last_modified_user": "admin", "_system_owned": false, "_create_user": "admin", "_revision": 2 } Required Permissions: crud Feature: routing_nat Additional Errors:

Get the statistics of a specified logical router NAT Rule (Deprecated)

Returns the summation of statistics from all nodes for the Specified
Logical Router NAT Rule. Query parameter "source=realtime" is the only supported source.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/nat/rules/<rule-id>/statistics
Request Headers:
n/a
Query Parameters:
DataSourceParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/de211ce9-291e-4876-ace6-606b3e32bf46/nat/rules/1026/statistics?source=realtime Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
NatStatisticsPerRule+

Example Response: { "total_bytes": 9240, "total_packets": 110, "active_sessions": 1, "logical_router_id": "de211ce9-291e-4876-ace6-606b3e32bf46", "last_update_timestamp": 1457541997577, "id": "1026" } Required Permissions: read Feature: routing_nat Additional Errors:

Get the statistics of all rules of the logical router (Deprecated)

Returns the summation of statistics for all rules from all nodes for the Specified
Logical Router. Also gives the per transport node statistics for provided logical router.
The query parameter "source=realtime" is not supported.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/nat/rules/statistics
Request Headers:
n/a
Query Parameters:
DataSourceParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/de211ce9-291e-4876-ace6-606b3e32bf46/nat/rules/statistics Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
NatStatisticsPerLogicalRouter+

Example Response: { "logical_router_id": "de211ce9-291e-4876-ace6-606b3e32bf46", "last_update_timestamp": 1457506982295, "statistics_across_all_nodes": { "total_bytes": 23372, "total_packets": 306 }, "per_transport_node_statistics": [ { "total_bytes": 23372, "total_packets": 306, "last_update_timestamp": 1457506982295, "transport_node_id": "60898d58-07f0-4187-865e-07059bc2cbac" } ] } Required Permissions: read Feature: routing_nat Additional Errors:

Add multiple NAT rules in a specific logical router

Create multiple NAT rules in a specific logical router.
The API succeeds only when all rules are accepted and created successfully.
Any one validation voilation will fail the API, no rule will be created.
The ruleIds of each rules can be found from the responsed message.
Request:
Method:
POST
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/nat/rules?action=create_multiple
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
NatRuleList+

Example Request: POST https://<nsx-mgr>/api/v1/logical-routers/1977d30c-eee2-11e4-874d-0050569c7004/nat/rules?action=create_multiple { "rules" : [ { "action": "SNAT", "match_source_network": "192.168.1.1", "translated_network": "10.117.5.19", "match_service": { "resource_type": "L4PortSetNSService", "source_ports": ["9000"], "destination_ports": ["9000"], "l4_protocol": "TCP" }, "enabled": false }, { "action": "SNAT", "match_source_network": "192.168.1.2", "translated_network": "10.117.6.88", "match_service": { "resource_type": "L4PortSetNSService", "source_ports": ["9001"], "destination_ports": ["9001"], "l4_protocol": "TCP" }, "enabled": false } ] } Successful Response:
Response Code:
201 Created
Response Headers:
Content-type: application/json
Response Body:
NatRuleList+

Example Response: { "rules": [ { "resource_type": "NatRule", "id": "1029", "display_name": "01003000-0000-0405-0000-000000000018", "match_source_network": "192.168.1.1", "action": "SNAT", "logging": false, "match_service": { "resource_type": "L4PortSetNSService", "destination_ports": [ "9000" ], "l4_protocol": "TCP", "source_ports": [ "9000" ] "rule_priority": 1024, "translated_network": "10.117.5.19", "enabled": false, "firewall_match": MATCH_EXTERNAL_ADDRESS, "_last_modified_time": 1458852877750, "_create_time": 1458852877750, "_last_modified_user": "admin", "_system_owned": false, "_create_user": "admin", "_revision": 0 }, { "resource_type": "NatRule", "id": "1030", "display_name": "01003000-0000-0309-0000-000000000020", "match_source_network": "192.168.1.2", "action": "SNAT", "logging": false, "match_service": { "resource_type": "L4PortSetNSService", "destination_ports": [ "9001" ], "l4_protocol": "TCP", "source_ports": [ "9001" ] "rule_priority": 1024, "translated_network": "10.117.6.88", "enabled": false, "firewall_match": MATCH_EXTERNAL_ADDRESS, "_last_modified_time": 1458853243886, "_create_time": 1458853243886, "_last_modified_user": "admin", "_system_owned": false, "_create_user": "admin", "_revision": 0 } ] } Required Permissions: crud Feature: routing_nat Additional Errors:

Get statistics for all logical router NAT rules on a transport node

Returns the summation of statistics for all rules from all logical routers
which are present on given transport node. Only cached statistics are supported.
The query parameter "source=realtime" is not supported.
Request:
Method:
GET
URI Path(s):
/api/v1/transport-nodes/<node-id>/statistics/nat-rules
Request Headers:
n/a
Query Parameters:
DataSourceParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/transport-nodes/fe651e63-04bd-43a4-a8ec-45381a3b71b9/statistics/nat-rules Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
NatStatisticsPerTransportNode+

Example Response: { "total_bytes": 0, "total_packets": 0, "transport_node_id": "fe651e63-04bd-43a4-a8ec-45381a3b71b9" } Required Permissions: read Feature: routing_nat Additional Errors:

Management Plane API: Networking: Logical Routing And Services: Routing BFD Configuration

Associated URIs:

Update the BFD Configuration for BFD peers for routing

Modifies the BFD configuration for routing BFD peers. Note - the configuration |
changes apply only to those routing BFD peers for which the BFD configuration has |
not been overridden at Peer level.
Request:
Method:
PUT
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/bfd-config
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
BfdConfig+

Example Request: PUT https://<nsx-mgr>/api/v1/logical-routers/19e504e6-2d1f-4aec-a36d-80bd3eb4caed/routing/bfd-config { "enabled": true, "receive_interval": 600, "transmit_interval": 600, "declare_dead_multiple": 5, "_revision": 1 } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
BfdConfig+

Example Response: { "enabled": true, "receive_interval": 600, "transmit_interval": 600, "declare_dead_multiple": 5, "_revision": 2 } Required Permissions: crud Feature: routing_routers Additional Errors:

Read the Routing BFD Configuration

Returns the BFD configuration for all routing BFD peers. This will be inherited |
by all BFD peers for LogicalRouter unless overriden while configuring the Peer.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/bfd-config
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/0fdce4c3-135e-498c-9108-3a4ae17187cb/routing/bfd-config Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
BfdConfig+

Example Response: { "enabled": true, "receive_interval": 300, "transmit_interval": 300, "declare_dead_multiple": 3, "_revision": 0 } Required Permissions: read Feature: routing_routers Additional Errors:

Management Plane API: Networking: Logical Routing And Services: Routing Configuration

Associated URIs:

Read All IPV6 DADProfiles (Deprecated)

Returns all IPv6 DADProfiles.
Request:
Method:
GET
URI Path(s):
/api/v1/ipv6/dad-profiles
Request Headers:
n/a
Query Parameters:
ListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/ipv6/dad-profiles Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
DADProfileListResult+

Example Response: { "result_count": 1, "results": [ { "id": "65fb67d8-0485-4c23-8e59-b9ccd8799a4c", "dad_mode": "LOOSE", "wait_time": 1, "ns_retries": 3, } ] } Required Permissions: read Feature: routing_routers Additional Errors:

Create a new DADProfile (Deprecated)

Adds a new DADProfile
Request:
Method:
POST
URI Path(s):
/api/v1/ipv6/dad-profiles
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
DADProfile+

Example Request: POST https://<nsx-mgr>/api/v1/ipv6/dad-profiles { "resource_type": "DADProfile", "dad_mode": "LOOSE", "wait_time": 1, "ns_retries": 3, } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
DADProfile+

Example Response: { "id": "65fb67d8-0485-4c23-8e59-b9ccd8799a4c", "resource_type": "DADProfile", "dad_mode": "LOOSE", "wait_time": 1, "ns_retries": 3, "_create_time": 1457391214234, "_last_modified_user": "admin", "_system_owned": false, "_last_modified_time": 1457391214234, "_create_user": "admin", "_revision": 0 } Required Permissions: crud Feature: routing_routers Additional Errors:

Delete DAD Profile (Deprecated)

Delete DADProfile
Request:
Method:
DELETE
URI Path(s):
/api/v1/ipv6/dad-profiles/<dad-profile-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: DELETE https://<nsx-mgr>/api/v1/ipv6/dad-profiles/65fb67d8-0485-4c23-8e59-b9ccd8799a4c Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: routing_routers Additional Errors:

Read specified IPV6 DADProfile (Deprecated)

Returns information about specified IPv6 DADProfile.
Request:
Method:
GET
URI Path(s):
/api/v1/ipv6/dad-profiles/<dad-profile-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/ipv6/dad-profiles/65fb67d8-0485-4c23-8e59-b9ccd8799a4c Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
DADProfile+

Example Response: { "id": "65fb67d8-0485-4c23-8e59-b9ccd8799a4c", "resource_type": "DADProfile", "dad_mode": "LOOSE", "wait_time": 1, "ns_retries": 3, "_create_time": 1457391214234, "_last_modified_user": "admin", "_system_owned": false, "_last_modified_time": 1457391214234, "_create_user": "admin", "_revision": 0 } Required Permissions: read Feature: routing_routers Additional Errors:

Update DADProfile (Deprecated)

Update DADProfile.
Request:
Method:
PUT
URI Path(s):
/api/v1/ipv6/dad-profiles/<dad-profile-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
DADProfile+

Example Request: PUT https://<nsx-mgr>/api/v1/ipv6/dad-profiles/65fb67d8-0485-4c23-8e59-b9ccd8799a4c { "id": "65fb67d8-0485-4c23-8e59-b9ccd8799a4c", "resource_type": "DADProfile", "dad_mode": "STRICT", "wait_time": 1, "ns_retries": 3, } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
DADProfile+

Example Response: { "id": "65fb67d8-0485-4c23-8e59-b9ccd8799a4c", "resource_type": "DADProfile", "dad_mode": "STRICT", "wait_time": 1, "ns_retries": 3, "_create_time": 1457391214234, "_last_modified_user": "admin", "_system_owned": false, "_last_modified_time": 1457391214234, "_create_user": "admin", "_revision": 2 } Required Permissions: crud Feature: routing_routers Additional Errors:

Create a new NDRA Profile (Deprecated)

Adds a new NDRAProfile
Request:
Method:
POST
URI Path(s):
/api/v1/ipv6/nd-ra-profiles
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
NDRAProfile+

Example Request: POST https://<nsx-mgr>/api/v1/ipv6/nd-ra-profiles { "resource_type": "NDRAProfile", "ra_mode": "SLAAC_DNS_THROUGH_RA", "ra_config": { "router_preference": "LOW", "ra_interval": 600000, "hop_limit": 64, "router_lifetime": 1800, "prefix_lifetime": 2592000, "prefix_preferred_time": 604800 }, "dns_config": { "domain_name": []. "domain_name_lifetime": 1800000, "dns_server": []. "dns_server_lifetime": 1800000 }, "ndra_advertised_route": [ { "subnet": "7001::/64", "route_lifetime": 1000, "route_preference": "LOW" } ], "reachable_timer": 0, "retransmit_interval": 0, } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
NDRAProfile+

Example Response: { "resource_type": "NDRAProfile", "id": "65fb67d8-0485-4c23-8e59-b9ccd8799a4c", "ra_mode": "SLAAC_DNS_THROUGH_RA", "ra_config": { "router_preference": "LOW", "ra_interval": 600000, "hop_limit": 64, "router_lifetime": 1800, "prefix_lifetime": 2592000, "prefix_preferred_time": 604800 }, "dns_config": { "domain_name": []. "domain_name_lifetime": 1800000, "dns_server": []. "dns_server_lifetime": 1800000 }, "ndra_advertised_route": [ { "subnet": "7001::/64", "route_lifetime": 1000, "route_preference": "LOW" } ], "reachable_timer": 0, "retransmit_interval": 0, "_create_time": 1457391214234, "_last_modified_user": "admin", "_system_owned": false, "_last_modified_time": 1457391214234, "_create_user": "admin", "_revision": 0 } Required Permissions: crud Feature: routing_routers Additional Errors:

Read All IPV6 NDRA Profiles (Deprecated)

Returns all IPv6 NDRA Profiles.
Request:
Method:
GET
URI Path(s):
/api/v1/ipv6/nd-ra-profiles
Request Headers:
n/a
Query Parameters:
ListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/ipv6/nd-ra-profiles Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
NDRAProfileListResult+

Example Response: { "result_count": 2, "results": [ { "ra_mode": "SLAAC_DNS_THROUGH_RA", "ra_config": { "router_preference": "LOW", "ra_interval": 600000, "hop_limit": 64, "router_lifetime": 1800, "prefix_lifetime": 2592000, "prefix_preferred_time": 604800 }, "dns_config": { "domain_name": []. "domain_name_lifetime": 1800000, "dns_server": []. "dns_server_lifetime": 1800000 }, "ndra_advertised_route": [ { "subnet": "7001::/64", "route_lifetime": 1000, "route_preference": "LOW" } ], "reachable_timer": 0, "retransmit_interval": 0, }, { "ra_mode": "SLAAC_DNS_THROUGH_RA", "ra_config": { "router_preference": "LOW", "ra_interval": 600000, "hop_limit": 64, "router_lifetime": 1800, "prefix_lifetime": 2592000, "prefix_preferred_time": 604800 }, "dns_config": { "domain_name": []. "domain_name_lifetime": 1800000, "dns_server": []. "dns_server_lifetime": 1800000 }, "ndra_advertised_route": [ { "subnet": "7001::/64", "route_lifetime": 1000, "route_preference": "LOW" } ], "reachable_timer": 0, "retransmit_interval": 0, } ] } Required Permissions: read Feature: routing_routers Additional Errors:

Update NDRA Profile (Deprecated)

Update NDRAProfile
Request:
Method:
PUT
URI Path(s):
/api/v1/ipv6/nd-ra-profiles/<nd-ra-profile-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
NDRAProfile+

Example Request: PUT https://<nsx-mgr>/api/v1/ipv6/nd-ra-profiles/65fb67d8-0485-4c23-8e59-b9ccd8799a4c { "resource_type": "NDRAProfile", "id": "65fb67d8-0485-4c23-8e59-b9ccd8799a4c", "ra_mode": "DISABLED", "ra_config": { "router_preference": "LOW", "ra_interval": 600000, "hop_limit": 64, "router_lifetime": 1800, "prefix_lifetime": 2592000, "prefix_preferred_time": 604800 }, "dns_config": { "domain_name": []. "domain_name_lifetime": 1800000, "dns_server": []. "dns_server_lifetime": 1800000 }, "ndra_advertised_route": [ { "subnet": "7001::/64", "route_lifetime": 1000, "route_preference": "LOW" } ], "reachable_timer": 0, "retransmit_interval": 0, } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
NDRAProfile+

Example Response: { "resource_type": "NDRAProfile", "id": "65fb67d8-0485-4c23-8e59-b9ccd8799a4c", "ra_mode": "DISABLED", "ra_config": { "router_preference": "LOW", "ra_interval": 600000, "hop_limit": 64, "router_lifetime": 1800, "prefix_lifetime": 2592000, "prefix_preferred_time": 604800 }, "dns_config": { "domain_name": []. "domain_name_lifetime": 1800000, "dns_server": []. "dns_server_lifetime": 1800000 }, "ndra_advertised_route": [ { "subnet": "7001::/64", "route_lifetime": 1000, "route_preference": "LOW" } ], "reachable_timer": 0, "retransmit_interval": 0, "_create_time": 1457391214234, "_last_modified_user": "admin", "_system_owned": false, "_last_modified_time": 1457391214234, "_create_user": "admin", "_revision": 1 } Required Permissions: crud Feature: routing_routers Additional Errors:

Read specified IPV6 NDRA Profile (Deprecated)

Returns information about specified IPv6 NDRA Profile.
Request:
Method:
GET
URI Path(s):
/api/v1/ipv6/nd-ra-profiles/<nd-ra-profile-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/ipv6/nd-ra-profiles/65fb67d8-0485-4c23-8e59-b9ccd8799a4c Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
NDRAProfile+

Example Response: { "resource_type": "NDRAProfile", "id": "65fb67d8-0485-4c23-8e59-b9ccd8799a4c", "ra_mode": "SLAAC_DNS_THROUGH_RA", "ra_config": { "router_preference": "LOW", "ra_interval": 600000, "hop_limit": 64, "router_lifetime": 1800, "prefix_lifetime": 2592000, "prefix_preferred_time": 604800 }, "dns_config": { "domain_name": []. "domain_name_lifetime": 1800000, "dns_server": []. "dns_server_lifetime": 1800000 }, "ndra_advertised_route": [ { "subnet": "7001::/64", "route_lifetime": 1000, "route_preference": "LOW" } ], "reachable_timer": 0, "retransmit_interval": 0, "_create_time": 1457391214234, "_last_modified_user": "admin", "_system_owned": false, "_last_modified_time": 1457391214234, "_create_user": "admin", "_revision": 0 } Required Permissions: read Feature: routing_routers Additional Errors:

Delete NDRA Profile (Deprecated)

Delete NDRAProfile
Request:
Method:
DELETE
URI Path(s):
/api/v1/ipv6/nd-ra-profiles/<nd-ra-profile-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: DELETE https://<nsx-mgr>/api/v1/ipv6/nd-ra-profiles/65fb67d8-0485-4c23-8e59-b9ccd8799a4c Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: routing_routers Additional Errors:

Read the debug information for the logical router

API to download below information as text which will be used
for debugging and troubleshooting.
1) Logical router sub-components and ports.
2) Routing configuration as sent to central control plane.
3) TIER1 advertised network information.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/debug-info?format=text
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/875381be-a4c5-4173-8aa7-ab71695a8129/debug-info?format=text Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: text/plain; charset=utf-8
Response Body:
string

Example Response: { "id" : "875381be-a4c5-4173-8aa7-ab71695a8129", "serviceRouterClusterId" : "00002000-0000-0000-0000-00000000040d", "componentInfo" : ...[content omitted for brevity] Required Permissions: read Feature: routing_routers Additional Errors:

Update the Routing Configuration

Modifies the routing configuration for a specified logical router.
Request:
Method:
PUT
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
RoutingConfig+

Example Request: PUT https://<nsx-mgr>/api/v1/logical-routers/19e504e6-2d1f-4aec-a36d-80bd3eb4caed/routing { "resource_type": "RoutingConfig", "id": "19e504e6-2d1f-4aec-a36d-80bd3eb4caed", "display_name": "19e504e6-2d1f-4aec-a36d-80bd3eb4caed", "forwarding_up_timer": 384, "_revision": 2 } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
RoutingConfig+

Example Response: { "resource_type": "RoutingConfig", "id": "19e504e6-2d1f-4aec-a36d-80bd3eb4caed", "display_name": "19e504e6-2d1f-4aec-a36d-80bd3eb4caed", "forwarding_up_timer": 384, "_last_modified_user": "admin", "_last_modified_time": 1457390550411, "_revision": 3 } Required Permissions: crud Feature: routing_routers Additional Errors:

Read the Routing Configuration

Returns the routing configuration for a specified logical router.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/0fdce4c3-135e-498c-9108-3a4ae17187cb/routing Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
RoutingConfig+

Example Response: { "id": "65950de0-5ee8-44e7-b7cc-3a6940736188", "display_name": "65950de0-5ee8-44e7-b7cc-3a6940736188", "resource_type": "RoutingConfig", "router_id": "1.1.1.1", "_last_modified_user": "admin", "_last_modified_time": 1433791848693, "_create_time": 1433790402867, "_create_user": "admin", "_revision": 0 } Required Permissions: read Feature: routing_routers Additional Errors:

Update the Advertisement Configuration on a Logical Router (Deprecated)

Modifies the route advertisement configuration on the specified logical router.
Request:
Method:
PUT
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/advertisement
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
AdvertisementConfig+

Example Request: PUT https://<nsx-mgr>/api/v1/logical-routers/f61f2197-0ccd-4c2d-972e-22fadab4e33a/routing/advertisement { "resource_type": "AdvertisementConfig", "description": "", "id": "77c6a05e-5602-46bc-a511-62da18fa0afe", "display_name": "77c6a05e-5602-46bc-a511-62da18fa0afe", "tags": [], "advertise_nsx_connected_routes": true, "advertise_static_routes": false, "advertise_nat_routes": true, "advertise_lb_vip": true, "advertise_lb_snat_ip": false, "enabled": true, "_revision": 2 } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AdvertisementConfig+

Example Response: { "resource_type": "AdvertisementConfig", "description": "", "id": "77c6a05e-5602-46bc-a511-62da18fa0afe", "display_name": "77c6a05e-5602-46bc-a511-62da18fa0afe", "tags": [], "advertise_nsx_connected_routes": true, "advertise_static_routes": false, "advertise_nat_routes": true, "advertise_lb_vip": true, "advertise_lb_snat_ip": false, "enabled": true, "_last_modified_user": "admin", "_last_modified_time": 1457392728479, "_revision": 3 } Required Permissions: crud Feature: routing_routers Additional Errors:

Read the Advertisement Configuration on a Logical Router

Returns information about the routes to be advertised by the specified
TIER1 logical router.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/advertisement
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/f61f2197-0ccd-4c2d-972e-22fadab4e33a/routing/advertisement Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AdvertisementConfig+

Example Response: { "_revision": 1, "id": "f61f2197-0ccd-4c2d-972e-22fadab4efff", "resource_type": "AdvertisementConfig", "enabled": true, "advertise_route_static": false, "advertise_route_connected": false, "advertise_route_nat": false } Required Permissions: read Feature: routing_routers Additional Errors:

Update the Advertisement Rules on a Logical Router (Deprecated)

Modifies the advertisement rules on the specified logical
router. The PUT request must include all the rules with the networks parameter. Modifiable
parameters are networks, display_name, and description. Set the rules list to empty to delete/clear all rules.
Request:
Method:
PUT
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/advertisement/rules
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
AdvertiseRuleList+

Example Request: PUT https://<nsx-mgr>/api/v1/logical-routers/77c6a05e-5602-46bc-a511-62da18fa0afe/routing/advertisement/rules { "resource_type": "AdvertiseRuleList", "id": "77c6a05e-5602-46bc-a511-62da18fa0afe", "display_name": "77c6a05e-5602-46bc-a511-62da18fa0afe", "rules": [ { "description":"Advertise all East routes", "display_name":"East routes", "networks": [ "10.0.1.0/24", "10.0.2.0/24", "10.0.3.0/24" ], "rule_filter": { "prefix_operator": "GE", "match_route_types": ["ANY"] } } ], "_create_time": 1456445680356, "_last_modified_user": "admin", "_system_owned": false, "_last_modified_time": 1456445680356, "_create_user": "admin", "_revision": 0 } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AdvertiseRuleList+

Example Response: { "resource_type": "AdvertiseRuleList", "id": "77c6a05e-5602-46bc-a511-62da18fa0afe", "display_name": "77c6a05e-5602-46bc-a511-62da18fa0afe", "rules": [ { "description": "Advertise all East routes", "networks": [ "10.0.1.0/24", "10.0.2.0/24", "10.0.3.0/24" ], "display_name": "East routes", "action": "ALLOW", "rule_filter": { "prefix_operator": "GE", "match_route_types": ["ANY"] } } ], "_last_modified_user": "admin", "_last_modified_time": 1457392997168, "_revision": 1 } Required Permissions: crud Feature: routing_routers Additional Errors:

Read the Advertisement Rules on a Logical Router

Returns the advertisement rule list for the specified
TIER1 logical router.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/advertisement/rules
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/f61f2197-0ccd-4c2d-972e-22fadab4e33a/routing/advertisement/rules Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
AdvertiseRuleList+

Example Response: { "_revision": 1, "id": "f61f2197-0ccd-4c2d-972e-22fadab4efff", "resource_type": "AdvertiseRuleList", "rules": [ { "networks": [ "192.168.100.0/24" ], "display_name": "Rule 1", "action": "DENY", "rule_filter": { "prefix_operator": "GE", "match_route_types": ["T1_LB_SNAT"] } }, { "networks": [ "192.168.10.0/24" ], "display_name": "Rule 2", "action": "ALLOW" } ] } Required Permissions: read Feature: routing_routers Additional Errors:

Update the BGP Configuration on a Logical Router (Deprecated)

Modifies the BGP configuration on a specified TIER0 logical router.
Modifiable parameters include enabled, graceful_restart, as_number.
Request:
Method:
PUT
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/bgp
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
BgpConfig+

Example Request: PUT https://<nsx-mgr>/api/v1/logical-routers/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/routing/bgp { "resource_type": "BgpConfig", "description": "Uplink to external", "id": "f2002b7e-e94b-4089-bef9-ef8e2a4fe2fb", "display_name": "Uplink to external", "as_num": "64520", "graceful_restart": true, "enabled": true, "ecmp": false, "_revision": 4 } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
BgpConfig+

Example Response: { "resource_type": "BgpConfig", "description": "Uplink to external", "id": "f2002b7e-e94b-4089-bef9-ef8e2a4fe2fb", "display_name": "Uplink to external", "as_num": "64520", "graceful_restart": true, "route_aggregation": [], "enabled": true, "ecmp": false, "_last_modified_user": "admin", "_last_modified_time": 1457392177631, "_revision": 5 } Required Permissions: crud Feature: routing_routers Additional Errors:

Read the BGP Configuration on a Logical Router

Returns information about the BGP configuration on a specified logical
router. Information includes whether or not the BGP configuration is
enabled, the AS number, and whether or not graceful
restart is enabled.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/bgp
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/routing/bgp Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
BgpConfig+

Example Response: { "id": "7376250a-fa3c-4f69-8844-f5671e914882", "display_name": "7376250a-fa3c-4f69-8844-f5671e914882", "resource_type": "BgpConfig", "enabled": true, "ecmp": false, "hold_up_timer": 0, "graceful_restart": false, "_last_modified_user": "admin", "_last_modified_time": 1433791720444, "_create_time": 1433790402867, "_create_user": "admin", "_revision": 0 } Required Permissions: read Feature: routing_routers Additional Errors:

Paginated list of BGP community lists on a logical router (Deprecated)

Paginated list of BGP Community Lists on a Logical Router
Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/bgp/community-lists
Request Headers:
n/a
Query Parameters:
ListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/routing/bgp/community-lists Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
BGPCommunityListListResult+

Example Response: { "cursor": "0036640912b0-4820-46f0-b7c2-7a9e2cb57505neighbor2", "result_count": 2, "results": [ { "id": "a9478c1d-d7ab-47c5-9e05-548920f4d88c", "resource_type": "BGPCommunityList" "communities": ["10:50", "10:52"], "community_type": "NormalBGPCommunity", "_last_modified_time": 1433948850593, "_create_time": 1433948850593, "_create_user": "admin", "_last_modified_user": "admin", "_revision": 0 }, { "id": "640912b0-4820-46f0-b7c2-7a9e2cb57505", "resource_type": "BGPCommunityList" "communities": ["11:09", "11:10"], "community_type": "NormalBGPCommunity", "_last_modified_time": 1433960878203, "_create_time": 1433949148014, "_create_user": "admin", "_last_modified_user": "admin", "_revision": 4 } ] } Required Permissions: read Feature: routing_routers Additional Errors:

Create a new BGP community list on a logical router (Deprecated)

Add a new BGP Community List on a Logical Router
Request:
Method:
POST
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/bgp/community-lists
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
BGPCommunityList+

Example Request: POST https://<nsx-mgr>/api/v1/logical-routers/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/routing/bgp/community-lists { "communities": ["10:50","10:52"], "community_type": "NormalBGPCommunity" } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
BGPCommunityList+

Example Response: { "id": "640912b0-4820-46f0-b7c2-7a9e2cb57505", "resource_type": "BGPCommunityList" "communities": ["10:50","10:52"], "community_type": "NormalBGPCommunity", "_last_modified_user": "admin", "_last_modified_time": 1433949148014, "_create_time": 1433949148014, "_create_user": "admin", "_revision": 0 } Required Permissions: crud Feature: routing_routers Additional Errors:

Delete a specific BGP community list from a logical router (Deprecated)

Delete a specific BGP community list from a Logical Router
Request:
Method:
DELETE
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/bgp/community-lists/<community-list-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: DELETE https://<nsx-mgr>/api/v1/logical-routers/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/routing/bgp/community-lists/640912b0-4820-46f0-b7c2-7a9e2cb57505 Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: routing_routers Additional Errors:

Update a specific BGP community list from a logical router (Deprecated)

Update a specific BGP community list from a Logical Router
Request:
Method:
PUT
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/bgp/community-lists/<community-list-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
BGPCommunityList+

Example Request: PUT https://<nsx-mgr>/api/v1/logical-routers/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/routing/bgp/community-lists/640912b0-4820-46f0-b7c2-7a9e2cb57505 { "_revision": 1, "communities": ["10:50","10:52"], "community_type": "NormalBGPCommunity" } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
BGPCommunityList+

Example Response: { "id": "640912b0-4820-46f0-b7c2-7a9e2cb57505", "resource_type": "BGPCommunityList", "communities": ["10:50","10:52"], "community_type": "NormalBGPCommunity", "_last_modified_user": "admin", "_last_modified_time": 1433949148014, "_create_time": 1433949148014, "_create_user": "admin", "_revision": 2 } Required Permissions: crud Feature: routing_routers Additional Errors:

Read a specific BGP community list from a logical router (Deprecated)

Read a specific BGP community list from a Logical Router
Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/bgp/community-lists/<community-list-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/routing/bgp/comunity-lists/640912b0-4820-46f0-b7c2-7a9e2cb57505 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
BGPCommunityList+

Example Response: { "id": "a9478c1d-d7ab-47c5-9e05-548920f4d88c", "resource_type": "BGPCommunityList" "communities": ["10:50", "10:52"], "community_type": "NormalBGPCommunity", "_last_modified_time": 1433948850593, "_create_time": 1433948850593, "_create_user": "admin", "_last_modified_user": "admin", "_revision": 0 } Required Permissions: read Feature: routing_routers Additional Errors:

Update a specific BGP community list from a logical router (Deprecated)

Update a specific BGP community list from a Logical Router
Request:
Method:
PUT
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/bgp/communty-lists/<community-list-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
BGPCommunityList+

Example Request: PUT https://<nsx-mgr>/api/v1/logical-routers/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/routing/bgp/community-lists/640912b0-4820-46f0-b7c2-7a9e2cb57505 { "_revision": 1, "communities": ["10:50","10:52"], "community_type": "NormalBGPCommunity" } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
BGPCommunityList+

Example Response: { "id": "640912b0-4820-46f0-b7c2-7a9e2cb57505", "resource_type": "BGPCommunityList", "communities": ["10:50","10:52"], "community_type": "NormalBGPCommunity", "_last_modified_user": "admin", "_last_modified_time": 1433949148014, "_create_time": 1433949148014, "_create_user": "admin", "_revision": 2 } Required Permissions: crud Feature: routing_routers Additional Errors:

Paginated list of BGP Neighbors on a Logical Router (Deprecated)

Paginated list of BGP Neighbors on a Logical Router
Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/bgp/neighbors
Request Headers:
n/a
Query Parameters:
ListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/routing/bgp/neighbors Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
BgpNeighborListResult+

Example Response: { "cursor": "0036640912b0-4820-46f0-b7c2-7a9e2cb57505neighbor2", "result_count": 2, "neighbors": [ { "id": "a9478c1d-d7ab-47c5-9e05-548920f4d88c", "display_name": "neighbor2", "resource_type": "BgpNeighbor", "hold_down_timer": 180, "neighbor_address": "1.1.1.1", "keep_alive_timer": 60, "remote_as_num": "300", "address_families": [ { "type" : "IPV4_UNICAST", "enabled" : true } ], "_last_modified_time": 1433948850593, "_create_time": 1433948850593, "_create_user": "admin", "_last_modified_user": "admin", "_revision": 0 }, { "id": "640912b0-4820-46f0-b7c2-7a9e2cb57505", "display_name": "neighbor1", "resource_type": "BgpNeighbor", "hold_down_timer": 180, "neighbor_address": "2.2.2.2", "keep_alive_timer": 60, "remote_as_num": "200", "address_families": [ { "type" : "IPV4_UNICAST", "enabled" : true, "in_filter_ipprefixlist_id" : "ad879413-dbc3-4952-b77d-28386c3a5363" } ], "_last_modified_time": 1433960878203, "_create_time": 1433949148014, "_create_user": "admin", "_last_modified_user": "admin", "_revision": 4 } ] } Required Permissions: read Feature: routing_routers Additional Errors:

Add a new BGP Neighbor on a Logical Router (Deprecated)

Add a new BGP Neighbor on a Logical Router
Request:
Method:
POST
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/bgp/neighbors
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
BgpNeighbor+

Example Request: POST https://<nsx-mgr>/api/v1/logical-routers/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/routing/bgp/neighbors { "display_name": "neighbor1", "neighbor_address": "2.2.2.2", "remote_as_num": "200", "address_families": [ { "type" : "IPV4_UNICAST", "enabled" : true, "in_filter_ipprefixlist_id" : "ad879413-dbc3-4952-b77d-28386c3a5363" } ], } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
BgpNeighbor+

Example Response: { "id": "640912b0-4820-46f0-b7c2-7a9e2cb57505", "display_name": "neighbor1", "resource_type": "BgpNeighbor", "hold_down_timer": 180, "neighbor_address": "2.2.2.2", "keep_alive_timer": 60, "remote_as_num": "200", "address_families": [ { "type" : "IPV4_UNICAST", "enabled" : true, "in_filter_ipprefixlist_id" : "ad879413-dbc3-4952-b77d-28386c3a5363" } ], "_last_modified_user": "admin", "_last_modified_time": 1433949148014, "_create_time": 1433949148014, "_create_user": "admin", "_revision": 0 } Required Permissions: crud Feature: routing_routers Additional Errors:

Delete a specific BGP Neighbor on a Logical Router (Deprecated)

Delete a specific BGP Neighbor on a Logical Router
Request:
Method:
DELETE
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/bgp/neighbors/<id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: DELETE https://<nsx-mgr>/api/v1/logical-routers/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/routing/bgp/neighbors/640912b0-4820-46f0-b7c2-7a9e2cb57505 Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: routing_routers Additional Errors:

Update a specific BGP Neighbor on a Logical Router (Deprecated)

Update a specific BGP Neighbor on a Logical Router
Request:
Method:
PUT
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/bgp/neighbors/<id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
BgpNeighbor+

Example Request: PUT https://<nsx-mgr>/api/v1/logical-routers/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/routing/bgp/neighbors/640912b0-4820-46f0-b7c2-7a9e2cb57505 { "_revision": 1, "hold_down_timer": 40, "neighbor_address": "10.30.1.1", "keep_alive_timer": 100, "source_addresses": ["192.168.0.1"], "remote_as_num": "64510", "address_families": [ { "type" : "IPV4_UNICAST", "enabled" : true, } ], "display_name": "neighbor A", "description": "to_neighbor_A", } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
BgpNeighbor+

Example Response: { "id": "640912b0-4820-46f0-b7c2-7a9e2cb57505", "resource_type": "BgpNeighbor", "hold_down_timer": 40, "neighbor_address": "10.30.1.1", "keep_alive_timer": 100, "source_addresses": ["192.168.0.1"], "remote_as_num": "64510", "address_families": [ { "type" : "IPV4_UNICAST", "enabled" : true, } ], "display_name": "neighbor A", "description": "to_neighbor_A", "_last_modified_user": "admin", "_last_modified_time": 1433949148014, "_create_time": 1433949148014, "_create_user": "admin", "_revision": 2 } Required Permissions: crud Feature: routing_routers Additional Errors:

Read a specific BGP Neighbor on a Logical Router (Deprecated)

Read a specific BGP Neighbor on a Logical Router
Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/bgp/neighbors/<id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/routing/bgp/neighbors/640912b0-4820-46f0-b7c2-7a9e2cb57505 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
BgpNeighbor+

Example Response: { "id": "640912b0-4820-46f0-b7c2-7a9e2cb57505", "display_name": "neighbor1", "resource_type": "BgpNeighbor", "hold_down_timer": 180, "neighbor_address": "2.2.2.2", "keep_alive_timer": 60, "remote_as_num": "200", "address_families": [ { "type" : "IPV4_UNICAST", "enabled" : true, "in_filter_ipprefixlist_id" : "ad879413-dbc3-4952-b77d-28386c3a5363" } ], "_last_modified_user": "admin", "_last_modified_time": 1433949148014, "_create_time": 1433949148014, "_create_user": "admin", "_revision": 0 } Required Permissions: read Feature: routing_routers Additional Errors:

Unset/Delete password property on specific BGP Neighbor on Logical Router (Deprecated)

Unset/Delete the password property on the specific BGP Neighbor.
No other property of the BgpNeighbor can be updated using this API
Request:
Method:
POST
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/bgp/neighbors/<id>
Request Headers:
n/a
Query Parameters:
ClearPasswordActionParameters+
Request Body:
n/a

Example Request: POST https://<nsx-mgr>/api/v1/logical-routers/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/routing/bgp/neighbors/640912b0-4820-46f0-b7c2-7a9e2cb57505?action=clear_password Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
BgpNeighbor+

Example Response: { "id": "640912b0-4820-46f0-b7c2-7a9e2cb57505", "resource_type": "BgpNeighbor", "hold_down_timer": 40, "neighbor_address": "10.30.1.1", "keep_alive_timer": 100, "source_addresses": ["192.168.0.1"], "remote_as_num": "64510", "address_families": [ { "type" : "IPV4_UNICAST", "enabled" : true, } ], "display_name": "neighbor A", "description": "to_neighbor_A", "_last_modified_user": "admin", "_last_modified_time": 1433949148014, "_create_time": 1433949148014, "_create_user": "admin", "_revision": 2 } Required Permissions: crud Feature: routing_routers Additional Errors:

Read a specific BGP Neighbor with password on a Logical Router

Read a specific BGP Neighbor details with password on a Logical Router
Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/bgp/neighbors/<id>?action=show-sensitive-data
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/routing/bgp/neighbors/640912b0-4820-46f0-b7c2-7a9e2cb57505?action=show-sensitive-data Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
BgpNeighbor+

Example Response: { "id": "640912b0-4820-46f0-b7c2-7a9e2cb57505", "display_name": "neighbor1", "resource_type": "BgpNeighbor", "hold_down_timer": 180, "neighbor_address": "2.2.2.2", "keep_alive_timer": 60, "remote_as_num": "200", "password": "Admin!23Admin", "address_families": [ { "type" : "IPV4_UNICAST", "enabled" : true, "in_filter_ipprefixlist_id" : "ad879413-dbc3-4952-b77d-28386c3a5363" } ], "_last_modified_user": "admin", "_last_modified_time": 1433949148014, "_create_time": 1433949148014, "_create_user": "admin", "_revision": 0 } Required Permissions: crud Feature: routing_routers Additional Errors:

Paginated List of IPPrefixLists (Deprecated)

Paginated List of IPPrefixLists Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/ip-prefix-lists
Request Headers:
n/a
Query Parameters:
ListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/routing/ip-prefix-lists Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
IPPrefixListListResult+

Example Response: { "cursor": "00365f22f70e-5725-4df3-9e25-46358642848fip-prefix-list1", "result_count": 1, "results": [ { "resource_type": "IPPrefixList", "description": "", "id": "5f22f70e-5725-4df3-9e25-46358642848f", "display_name": "ip-prefix-list1", "tags": [], "prefixes": [ { "action": "DENY", "network": "192.168.110.0/24" }, { "action": "DENY", "network": "192.168.210.0/24" } ], "_create_time": 1457128258723, "_last_modified_user": "admin", "_system_owned": false, "_last_modified_time": 1457128258723, "_create_user": "admin", "_revision": 0 } ] } Required Permissions: read Feature: routing_routers Additional Errors:

Add IPPrefixList on a Logical Router (Deprecated)

Adds a new IPPrefixList on a Logical Router
Request:
Method:
POST
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/ip-prefix-lists
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
IPPrefixList+

Example Request: POST https://<nsx-mgr>/api/v1/logical-routers/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/routing/ip-prefix-lists { "resource_type": "IPPrefixList", "description": "IP prefix list 2", "display_name": "ip-prefix-list2", "tags": [], "prefixes": [ { "action": "DENY", "network": "192.168.220.0/24" }, { "action": "DENY", "network": "192.168.240.0/24" } ] } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
IPPrefixList+

Example Response: { "resource_type": "IPPrefixList", "description": "IP prefix list 2", "id": "5c45c18f-0221-4a86-a7c0-1460812564f4", "display_name": "ip-prefix-list2", "tags": [], "prefixes": [ { "action": "DENY", "network": "192.168.220.0/24" }, { "action": "DENY", "network": "192.168.240.0/24" } ], "_create_time": 1457128510078, "_last_modified_user": "admin", "_system_owned": false, "_last_modified_time": 1457128510078, "_create_user": "admin", "_revision": 0 } Required Permissions: crud Feature: routing_routers Additional Errors:

Update a specific IPPrefixList on a Logical Router (Deprecated)

Update a specific IPPrefixList on the specified logical router.
Request:
Method:
PUT
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/ip-prefix-lists/<id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
IPPrefixList+

Example Request: PUT https://<nsx-mgr>/api/v1/logical-routers/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/routing/ip-prefix-lists/5f22f70e-5725-4df3-9e25-46358642848f { "resource_type": "IPPrefixList", "description": "IP Prefix List 1", "id": "5f22f70e-5725-4df3-9e25-46358642848f", "display_name": "ip-prefix-list1", "tags": [], "prefixes": [ { "action": "DENY", "network": "192.168.120.0/24" }, { "action": "DENY", "network": "192.168.220.0/24" } ], "_revision": 0 } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
IPPrefixList+

Example Response: { "resource_type": "IPPrefixList", "description": "IP Prefix List 1", "id": "5f22f70e-5725-4df3-9e25-46358642848f", "display_name": "ip-prefix-list1", "tags": [], "prefixes": [ { "action": "DENY", "network": "192.168.120.0/24" }, { "action": "DENY", "network": "192.168.220.0/24" } ], "_last_modified_user": "admin", "_last_modified_time": 1457128860172, "_revision": 1 } Required Permissions: crud Feature: routing_routers Additional Errors:

Get a specific IPPrefixList on a Logical Router (Deprecated)

Read a specific IPPrefixList on the specified logical router.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/ip-prefix-lists/<id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/routing/ip-prefix-lists/5f22f70e-5725-4df3-9e25-46358642848f Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
IPPrefixList+

Example Response: { "resource_type": "IPPrefixList", "description": "", "id": "5f22f70e-5725-4df3-9e25-46358642848f", "display_name": "ip-prefix-list1", "tags": [], "prefixes": [ { "action": "DENY", "network": "192.168.110.0/24" }, { "action": "DENY", "network": "192.168.210.0/24" } ], "_create_time": 1457128258723, "_last_modified_user": "admin", "_system_owned": false, "_last_modified_time": 1457128258723, "_create_user": "admin", "_revision": 0 } Required Permissions: read Feature: routing_routers Additional Errors:

Delete a specific IPPrefixList on a Logical Router (Deprecated)

Deletes a specific IPPrefixList on the specified logical router.
Request:
Method:
DELETE
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/ip-prefix-lists/<id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: DELETE https://<nsx-mgr>/api/v1/logical-routers/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/routing/ip-prefix-lists/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4444 Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: routing_routers Additional Errors:

Update the Redistribution Configuration on a Logical Router (Deprecated)

Modifies existing route redistribution rules for the specified TIER0 logical
router.
Request:
Method:
PUT
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/redistribution
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
RedistributionConfig+

Example Request: PUT https://<nsx-mgr>/api/v1/logical-routers/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/routing/redistribution { "resource_type": "RedistributionConfig", "display_name": "BGP route redistribution", "bgp_enabled": false, "_revision": 1 } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
RedistributionConfig+

Example Response: { "resource_type": "RedistributionConfig", "id": "5d007b29-70da-485e-be22-1c966d204607", "display_name": "BGP route redistribution", "bgp_enabled": false, "_last_modified_user": "admin", "_last_modified_time": 1457392490759, "_revision": 2 } Required Permissions: crud Feature: routing_routers Additional Errors:

Read the Redistribution Configuration on a Logical Router

Returns information about configured route redistribution for the specified
logical router.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/redistribution
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/routing/redistribution Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
RedistributionConfig+

Example Response: { "_revision": 1, "id": "67268324-0db6-4d4a-b00a-db1458e60da9", "resource_type": "RedistributionConfig", "bgp_enabled": true, "_last_modified_user": "admin", "_last_modified_time": 1415221811355, "_create_time": 1415221700736, "_create_user": "admin" } Required Permissions: read Feature: routing_routers Additional Errors:

Update All the Redistribution Rules on a Logical Router (Deprecated)

Modifies all route redistribution rules for the specified TIER0 logical
router. Set the rules list to empty to delete/clear all rules.
Request:
Method:
PUT
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/redistribution/rules
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
RedistributionRuleList+

Example Request: PUT https://<nsx-mgr>/api/v1/logical-routers/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/routing/redistribution/rules { "_revision": 14, "rules": [ { "display_name":"static/connected-into-bgp", "description":"BGP learns all static and connected routes", "destination":"BGP", "sources":["STATIC", "CONNECTED"] } ] } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
RedistributionRuleList+

Example Response: { "_revision": 15, "id": "67268324-0db6-4d4a-b00a-db1458e60da9", "resource_type": "RedistributionRuleList", "rules": [ { "display_name": "static/connected-into-bgp", "description": "BGP learns all static and connected routes", "sources": [ "STATIC", "CONNECTED" ], "destination": "BGP" } ], "_last_modified_user": "admin", "_last_modified_time": 1415221811355, "_create_time": 1415221700736, "_create_user": "admin" } Required Permissions: crud Feature: routing_routers Additional Errors:

Read All the Redistribution Rules on a Logical Router

Returns all the route redistribution rules for the specified
logical router.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/redistribution/rules
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/routing/redistribution/rules Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
RedistributionRuleList+

Example Response: { "_revision": 15, "id": "67268324-0db6-4d4a-b00a-db1458e60da9", "resource_type": "RedistributionRuleList", "rules": [ { "display_name": "static/connected-into-bgp", "description": "BGP learns all static and connected routes", "sources": [ "STATIC", "CONNECTED" ], "destination": "BGP" } ], "_last_modified_user": "admin", "_last_modified_time": 1415221811355, "_create_time": 1415221700736, "_create_user": "admin" } Required Permissions: read Feature: routing_routers Additional Errors:

Paginated List of RouteMaps (Deprecated)

Paginated List of RouteMaps Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/route-maps
Request Headers:
n/a
Query Parameters:
ListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/routing/route-maps Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
RouteMapListResult+

Example Response: { "cursor": "0036243cef41-bf97-493d-8a2d-703dca9de4dcroute map 1", "result_count": 1, "results": [ { "resource_type": "RouteMap", "description": "", "id": "243cef41-bf97-493d-8a2d-703dca9de4dc", "display_name": "route map 1", "tags": [], "sequences": [ { "match_criteria": { "ip_prefix_lists": [ "5f22f70e-5725-4df3-9e25-46358642848f", "5c45c18f-0221-4a86-a7c0-1460812564f4", "dfd1bc6e-570b-4531-a032-d5ed1c8b6261" ] }, "set_criteria": { "as_path_prepend" : "50", "weight" : 10, "multi_exit_discriminator" : 50, "add_community" : "30:40" }, "action": "PERMIT" }, { "match_criteria": { "ip_prefix_lists": [ "dfd1bc6e-570b-4531-a032-d5ed1c8b6262" ] }, "set_criteria": { "as_path_prepend" : "60", "weight" : 20, "multi_exit_discriminator" : 30, "add_community" : "NO_EXPORT" }, "action": "PERMIT" }, { "match_criteria": { "match_community_expression": { "expression": [ { "match_operator": "MATCH_REGEX", "regular_expression": "123:11.*" }, { "match_operator": "MATCH_ANY", "community_list_id": "c4b2b171-661b-4059-960c-fc931a612507" } ], "operator": "AND" } }, "set_criteria": { "as_path_prepend" : "60", "weight" : 20, "multi_exit_discriminator" : 30, "add_community" : "NO_EXPORT" }, "action": "PERMIT" } ], "_create_time": 1457129043915, "_last_modified_user": "admin", "_system_owned": false, "_last_modified_time": 1457129043915, "_create_user": "admin", "_revision": 0 } ] } Required Permissions: read Feature: routing_routers Additional Errors:

Add RouteMap on a Logical Router (Deprecated)

Adds a new RouteMap on a Logical Router
Request:
Method:
POST
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/route-maps
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
RouteMap+

Example Request: POST https://<nsx-mgr>/api/v1/logical-routers/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/routing/route-maps { "resource_type": "RouteMap", "description": "Route Map for West Customers", "display_name": "route map West", "sequences": [ { "match_criteria": { "ip_prefix_lists": [ "5f22f70e-5725-4df3-9e25-46358642848f", "5c45c18f-0221-4a86-a7c0-1460812564f4", "dfd1bc6e-570b-4531-a032-d5ed1c8b6261" ] }, "set_criteria": { "as_path_prepend" : "50", "weight" : 10, "multi_exit_discriminator" : 50, "add_community" : "30:40" }, "action": "PERMIT" }, { "match_criteria": { "ip_prefix_lists": [ "dfd1bc6e-570b-4531-a032-d5ed1c8b6262" ] }, "set_criteria": { "as_path_prepend" : "60", "weight" : 20, "multi_exit_discriminator" : 30, "add_community" : "NO_EXPORT" }, "action": "PERMIT" }, { "match_criteria": { "match_community_expression": { "expression": [ { "match_operator": "MATCH_REGEX", "regular_expression": "123:11.*" }, { "match_operator": "MATCH_ANY", "community_list_id": "c4b2b171-661b-4059-960c-fc931a612507" } ], "operator": "AND" } }, "set_criteria": { "as_path_prepend" : "60", "weight" : 20, "multi_exit_discriminator" : 30, "add_community" : "NO_EXPORT" }, "action": "PERMIT" } ] } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
RouteMap+

Example Response: { "resource_type": "RouteMap", "description": "Route Map for West Customers", "id": "3e744129-4712-4de3-9659-df69b4a312cb", "display_name": "route map West", "sequences": [ { "match_criteria": { "ip_prefix_lists": [ "5f22f70e-5725-4df3-9e25-46358642848f", "5c45c18f-0221-4a86-a7c0-1460812564f4", "dfd1bc6e-570b-4531-a032-d5ed1c8b6261" ] }, "set_criteria": { "as_path_prepend" : "50", "weight" : 10, "multi_exit_discriminator" : 50, "add_community" : "30:40" }, "action": "PERMIT" }, { "match_criteria": { "ip_prefix_lists": [ "dfd1bc6e-570b-4531-a032-d5ed1c8b6262" ] }, "set_criteria": { "as_path_prepend" : "60", "weight" : 20, "multi_exit_discriminator" : 30, "add_community" : "NO_EXPORT" }, "action": "PERMIT" } { "match_criteria": { "match_community_expression": { "expression": [ { "match_operator": "MATCH_REGEX", "regular_expression": "123:11.*" }, { "match_operator": "MATCH_ANY", "community_list_id": "c4b2b171-661b-4059-960c-fc931a612507" } ], "operator": "AND" } }, "set_criteria": { "as_path_prepend" : "60", "weight" : 20, "multi_exit_discriminator" : 30, "add_community" : "NO_EXPORT" }, "action": "PERMIT" } ], "_create_time": 1457393635951, "_last_modified_user": "admin", "_system_owned": false, "_last_modified_time": 1457393635951, "_create_user": "admin", "_revision": 0 } Required Permissions: crud Feature: routing_routers Additional Errors:

Update a specific RouteMap on a Logical Router (Deprecated)

Update a specific RouteMap on the specified logical router.
Request:
Method:
PUT
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/route-maps/<id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
RouteMap+

Example Request: PUT https://<nsx-mgr>/api/v1/logical-routers/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/routing/route-maps/243cef41-bf97-493d-8a2d-703dca9de4dc { "resource_type": "RouteMap", "description": "Route Map for East Customers", "display_name": "route map East", "sequences": [ { "match_criteria": { "ip_prefix_lists": [ "5f22f70e-5725-4df3-9e25-46358642848f", "5c45c18f-0221-4a86-a7c0-1460812564f4", "dfd1bc6e-570b-4531-a032-d5ed1c8b6261" ] }, "set_criteria": { "as_path_prepend" : "50", "weight" : 10, "multi_exit_discriminator" : 50, "add_community" : "30:40" }, "action": "PERMIT" }, { "match_criteria": { "ip_prefix_lists": [ "dfd1bc6e-570b-4531-a032-d5ed1c8b6262" ] }, "set_criteria": { "as_path_prepend" : "60", "weight" : 20, "multi_exit_discriminator" : 30, "add_community" : "NO_EXPORT" }, "action": "PERMIT" } { "match_criteria": { "match_community_expression": { "expression": [ { "match_operator": "MATCH_REGEX", "regular_expression": "123:11.*" }, { "match_operator": "MATCH_ANY", "community_list_id": "c4b2b171-661b-4059-960c-fc931a612507" } ], "operator": "AND" } }, "set_criteria": { "as_path_prepend" : "60", "weight" : 20, "multi_exit_discriminator" : 30, "add_community" : "NO_EXPORT" }, "action": "PERMIT" } ], "_revision": 0 } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
RouteMap+

Example Response: { "resource_type": "RouteMap", "description": "Route Map for East Customers", "id": "243cef41-bf97-493d-8a2d-703dca9de4dc", "display_name": "route map East", "sequences": [ { "match_criteria": { "ip_prefix_lists": [ "5f22f70e-5725-4df3-9e25-46358642848f", "5c45c18f-0221-4a86-a7c0-1460812564f4", "dfd1bc6e-570b-4531-a032-d5ed1c8b6261" ] }, "set_criteria": { "as_path_prepend" : "50", "weight" : 10, "multi_exit_discriminator" : 50, "add_community" : "30:40" }, "action": "PERMIT" }, { "match_criteria": { "ip_prefix_lists": [ "dfd1bc6e-570b-4531-a032-d5ed1c8b6262" ] }, "set_criteria": { "as_path_prepend" : "60", "weight" : 20, "multi_exit_discriminator" : 30, "add_community" : "NO_EXPORT" }, "action": "PERMIT" } { "match_criteria": { "match_community_expression": { "expression": [ { "match_operator": "MATCH_REGEX", "regular_expression": "123:11.*" }, { "match_operator": "MATCH_ANY", "community_list_id": "c4b2b171-661b-4059-960c-fc931a612507" } ], "operator": "AND" } }, "set_criteria": { "as_path_prepend" : "60", "weight" : 20, "multi_exit_discriminator" : 30, "add_community" : "NO_EXPORT" }, "action": "PERMIT" } ], "_last_modified_user": "admin", "_last_modified_time": 1457391862599, "_revision": 1 } Required Permissions: crud Feature: routing_routers Additional Errors:

Delete a specific RouteMap on a Logical Router (Deprecated)

Deletes a specific RouteMap on the specified logical router.
Request:
Method:
DELETE
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/route-maps/<id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: DELETE https://<nsx-mgr>/api/v1/logical-routers/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/routing/route-maps/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4444 Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: routing_routers Additional Errors:

Get a specific RouteMap on a Logical Router (Deprecated)

Read a specific RouteMap on the specified logical router.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/route-maps/<id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/routing/route-maps/243cef41-bf97-493d-8a2d-703dca9de4dc Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
RouteMap+

Example Response: { "resource_type": "RouteMap", "description": "Route Map for East Customers", "id": "243cef41-bf97-493d-8a2d-703dca9de4dc", "display_name": "route map East", "sequences": [ { "match_criteria": { "ip_prefix_lists": [ "5f22f70e-5725-4df3-9e25-46358642848f", "5c45c18f-0221-4a86-a7c0-1460812564f4", "dfd1bc6e-570b-4531-a032-d5ed1c8b6261" ] }, "set_criteria": { "as_path_prepend" : "50", "weight" : 10, "multi_exit_discriminator" : 50, "add_community" : "30:40" }, "action": "PERMIT" }, { "match_criteria": { "ip_prefix_lists": [ "dfd1bc6e-570b-4531-a032-d5ed1c8b6262" ] }, "set_criteria": { "as_path_prepend" : "60", "weight" : 20, "multi_exit_discriminator" : 30, "add_community" : "NO_EXPORT" }, "action": "PERMIT" } { "match_criteria": { "match_community_expression": { "expression": [ { "match_operator": "MATCH_REGEX", "regular_expression": "123:11.*" }, { "match_operator": "MATCH_ANY", "community_list_id": "c4b2b171-661b-4059-960c-fc931a612507" } ], "operator": "AND" } }, "set_criteria": { "as_path_prepend" : "60", "weight" : 20, "multi_exit_discriminator" : 30, "add_community" : "NO_EXPORT" }, "action": "PERMIT" } ], "_last_modified_user": "admin", "_last_modified_time": 1457391862599, "_revision": 1 } Required Permissions: read Feature: routing_routers Additional Errors:

Paginated List of Static Routes (Deprecated)

Returns information about configured static routes, including the
network address and next hops for each static route.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/static-routes
Request Headers:
n/a
Query Parameters:
ListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/routing/static-routes Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
StaticRouteListResult+

Example Response: { "cursor": "0036e3023f7f-4794-40b5-87a8-51cf7df35aefe3023f7f-4794-40b5-87a8-51cf7df35aef", "sort_ascending": true, "sort_by": "display_name", "result_count": 1, "results": [ { "resource_type": "StaticRoute", "description": "", "id": "e3023f7f-4794-40b5-87a8-51cf7df35aef", "display_name": "e3023f7f-4794-40b5-87a8-51cf7df35aef", "tags": [], "next_hops": [ { "administrative_distance": 1, "ip_address": "192.168.100.254" } ], "network": "192.168.100.0/24", "_create_time": 1457129209514, "_last_modified_user": "admin", "_system_owned": false, "_last_modified_time": 1457129209514, "_create_user": "admin", "_revision": 0 } ] } Required Permissions: read Feature: routing_routers Additional Errors:

Add Static Routes on a Logical Router (Deprecated)

Adds a new static route on a Logical Router
Request:
Method:
POST
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/static-routes
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
StaticRoute+

Example Request: POST https://<nsx-mgr>/api/v1/logical-routers/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/routing/static-routes { "resource_type": "StaticRoute", "description": "", "display_name": "to customer A", "tags": [], "next_hops": [ { "administrative_distance": "2", "ip_address": "192.168.200.254" } ], "network": "192.168.200.0/24" } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
StaticRoute+

Example Response: { "resource_type": "StaticRoute", "description": "", "id": "65fb67d8-0485-4c23-8e59-b9ccd8799a4c", "display_name": "to customer A", "tags": [], "next_hops": [ { "administrative_distance": 2, "ip_address": "192.168.200.254" } ], "network": "192.168.200.0/24", "_create_time": 1457391214234, "_last_modified_user": "admin", "_system_owned": false, "_last_modified_time": 1457391214234, "_create_user": "admin", "_revision": 0 } Required Permissions: crud Feature: routing_routers Additional Errors:

Delete a specific Static Route on a Logical Router (Deprecated)

Deletes a specific static route on the specified logical router.
Request:
Method:
DELETE
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/static-routes/<id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: DELETE https://<nsx-mgr>/api/v1/logical-routers/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/routing/static-routes/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4444 Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: routing_routers Additional Errors:

Update a specific Static Route Rule on a Logical Router (Deprecated)

Update a specific static route on the specified logical router.
Request:
Method:
PUT
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/static-routes/<id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
StaticRoute+

Example Request: PUT https://<nsx-mgr>/api/v1/logical-routers/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/routing/static-routes/65fb67d8-0485-4c23-8e59-b9ccd8799a4c { "resource_type": "StaticRoute", "description": "Static route to customer A", "display_name": "to customer A", "next_hops": [ { "administrative_distance": 2, "ip_address": "192.168.200.254" } ], "network": "192.168.200.0/24", "_revision": 0 } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
StaticRoute+

Example Response: { "resource_type": "StaticRoute", "description": "Static route to customer A", "id": "65fb67d8-0485-4c23-8e59-b9ccd8799a4c", "display_name": "to customer A", "next_hops": [ { "administrative_distance": 2, "ip_address": "192.168.200.254" } ], "network": "192.168.200.0/24", "_last_modified_user": "admin", "_last_modified_time": 1457391431538, "_revision": 1 } Required Permissions: crud Feature: routing_routers Additional Errors:

Get a specific Static Route on a Logical Router (Deprecated)

Read a specific static routes on the specified logical router.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-routers/<logical-router-id>/routing/static-routes/<id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-routers/7a62a0c5-1ea1-4b25-9d43-dce1c0fa4b8c/routing/static-routes/65fb67d8-0485-4c23-8e59-b9ccd8799a4c Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
StaticRoute+

Example Response: { "resource_type": "StaticRoute", "description": "Static route to customer A", "id": "65fb67d8-0485-4c23-8e59-b9ccd8799a4c", "display_name": "to customer A", "next_hops": [ { "administrative_distance": 2, "ip_address": "192.168.200.254" } ], "network": "192.168.200.0/24", "_last_modified_user": "admin", "_last_modified_time": 1457391431538, "_revision": 1 } Required Permissions: read Feature: routing_routers Additional Errors:

Management Plane API: Networking: Logical Switching

Management Plane API: Networking: Logical Switching: Logical Switch Ports

Associated URIs:

Create a Logical Port (Deprecated)

Creates a new logical switch port. The required parameters are the
associated logical_switch_id and admin_state (UP or DOWN). Optional
parameters are the attachment and switching_profile_ids. If you don't
specify switching_profile_ids, default switching profiles are assigned to
the port. If you don't specify an attachment, the switch port remains
empty. To configure an attachment, you must specify an id, and
optionally you can specify an attachment_type (VIF or LOGICALROUTER).
The attachment_type is VIF by default. This api is now deprecated. Please use new api -
PUT /infra/segments/<segment-id>/ports/<port-id>
Request:
Method:
POST
URI Path(s):
/api/v1/logical-ports
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
LogicalPort+

Example Request: POST https://<nsx-mgr>/api/v1/logical-ports { "logical_switch_id":"849e339e-64b7-47cb-9480-33068f70dc5a", "attachment": {"attachment_type":"VIF","id":"vif1"}, "admin_state":"UP" } { "resource_type": "LogicalPort", "display_name": "BM1-LP", "logical_switch_id": "849e339e-64b7-47cb-9480-33068f70dc5a", "attachment": { "attachment_type": "VIF", "id": "d8c2184c-1fcb-472d-a32a-524edbdaa1f8", "context": { "vif_type": "INDEPENDENT", "transport_node_uuid": "b5364421-6fbd-4670-98aa-974d8fe7462e", "app_id": "BM1_APP1", "resource_type": "VifAttachmentContext", "allocate_addresses": "Dhcp", "bms_interface_config": { "routing_table": ["101.20.0.0/16", "100.20.20.0/24"], "app_intf_name": "nsx-eth" } } }, "admin_state": "UP" } { "resource_type": "LogicalPort", "display_name": "BM1-LP", "logical_switch_id": "849e339e-64b7-47cb-9480-33068f70dc5a", "attachment": { "attachment_type": "VIF", "id": "d8c2184c-1fcb-472d-a32a-524edbdaa1f8", "context": { "vif_type": "INDEPENDENT", "transport_node_uuid": "b5364421-6fbd-4670-98aa-974d8fe7462e", "app_id": "BM1_APP1", "resource_type": "VifAttachmentContext", "allocate_addresses": "Both", "bms_interface_config": { "routing_table": ["101.20.0.0/16", "100.20.20.0/24"], "app_intf_name": "nsx-eth" } } }, "admin_state": "UP" } { "resource_type": "LogicalPort", "display_name": "BM1-LP", "logical_switch_id": "849e339e-64b7-47cb-9480-33068f70dc5a", "attachment": { "attachment_type": "VIF", "id": "d8c2184c-1fcb-472d-a32a-524edbdaa1f8", "context": { "vif_type": "INDEPENDENT", "transport_node_uuid": "b5364421-6fbd-4670-98aa-974d8fe7462e", "app_id": "BM1_APP1", "resource_type": "VifAttachmentContext", "allocate_addresses": "MacPool", "bms_interface_config": { "default_gateway": "192.168.1.254", "routing_table": ["101.20.0.0/16", "100.20.20.0/24"], "app_intf_name": "nsx-eth" } } }, "admin_state": "UP", "address_bindings": [ {"ip_address":"192.168.1.110"} ] } { "resource_type": "LogicalPort", "display_name": "BM1-LP", "logical_switch_id": "849e339e-64b7-47cb-9480-33068f70dc5a", "attachment": { "attachment_type": "VIF", "id": "d8c2184c-1fcb-472d-a32a-524edbdaa1f8", "context": { "vif_type": "INDEPENDENT", "transport_node_uuid": "b5364421-6fbd-4670-98aa-974d8fe7462e", "app_id": "BM1_APP1", "resource_type": "VifAttachmentContext", "allocate_addresses": "IpPool", "bms_interface_config": { "default_gateway": "192.168.1.254", "routing_table": ["101.20.0.0/16", "100.20.20.0/24"], "app_intf_name": "nsx-eth" } } }, "admin_state": "UP", "address_bindings": [ {"mac_address":"aa:bb:cc:dd:ee:ff"} ] } { "resource_type": "LogicalPort", "display_name": "BM1-LP", "logical_switch_id": "849e339e-64b7-47cb-9480-33068f70dc5a", "attachment": { "attachment_type": "VIF", "id": "d8c2184c-1fcb-472d-a32a-524edbdaa1f8", "context": { "vif_type": "INDEPENDENT", "transport_node_uuid": "b5364421-6fbd-4670-98aa-974d8fe7462e", "app_id": "BM1_APP1", "resource_type": "VifAttachmentContext", "allocate_addresses": "None", "bms_interface_config": { "default_gateway": "192.168.1.254", "routing_table": ["101.20.0.0/16", "100.20.20.0/24"], "app_intf_name": "nsx-eth" } } }, "admin_state": "UP", "address_bindings": [ {"ip_address":"192.168.1.110", "mac_address":"aa:bb:cc:dd:ee:ff"} ] } { "resource_type": "LogicalPort", "display_name": "BM1-LP", "logical_switch_id": "849e339e-64b7-47cb-9480-33068f70dc5a", "attachment": { "attachment_type": "VIF", "id": "d8c2184c-1fcb-472d-a32a-524edbdaa1f8", "context": { "vif_type": "INDEPENDENT", "transport_node_uuid": "b5364421-6fbd-4670-98aa-974d8fe7462e", "app_id": "BM1_APP1", "resource_type": "VifAttachmentContext", "allocate_addresses": "None", "bms_interface_config": { "migrate_intf": "eth0", "app_intf_name": "nsx-eth" } } }, "admin_state": "UP" } Successful Response:
Response Code:
201 Created
Response Headers:
Content-type: application/json
Response Body:
LogicalPort+

Example Response: { "id": "95a93e66-4fb1-4f7d-9484-1c8fd521e741", "display_name": "95a93e66-4fb1-4f7d-9484-1c8fd521e741", "resource_type": "LogicalPort", "address_bindings": [], "logical_switch_id": "849e339e-64b7-47cb-9480-33068f70dc5a", "admin_state": "UP", "attachment": { "id": "vif1", "attachment_type": "VIF" }, "switching_profile_ids": [ { "value": "49781ebb-6f76-464a-9a7e-c365ba26128b", "key": "IpDiscoverySwitchingProfile" }, { "value": "fad98876-d7ff-11e4-b9d6-1681e6b88ec1", "key": "SpoofGuardSwitchingProfile" }, { "value": "93b4b7e8-f116-415d-a50c-3364611b5d09", "key": "PortMirroringSwitchingProfile" }, { "value": "fbc4fb17-83d9-4b53-a286-ccdf04301888", "key": "SwitchSecuritySwitchingProfile" }, { "value": "f313290b-eba8-4262-bd93-fab5026e9495", "key": "QosSwitchingProfile" } ], "_last_modified_user": "admin", "_last_modified_time": 1435284566908, "_create_time": 1435284566908, "_create_user": "admin", "_revision": 0 } Required Permissions: crud Feature: switching_ports Additional Errors:

List All Logical Ports (Deprecated)

Returns information about all configured logical switch ports. Logical
switch ports connect to VM virtual network interface cards (NICs). Each
logical port is associated with one logical switch.
This api is now deprecated. Please use new api -
/infra/segments/<segment-id>/ports
Request:
Method:
GET
URI Path(s):
/api/v1/logical-ports
Request Headers:
n/a
Query Parameters:
LogicalPortListParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-ports Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LogicalPortListResult+

Example Response: { "result_count": 2, "results": [ { "id": "2f904690-355a-4900-841e-645b3d7fee91", "display_name": "2f904690-355a-4900-841e-645b3d7fee91", "resource_type": "LogicalPort", "address_bindings": [], "logical_switch_id": "849e339e-64b7-47cb-9480-33068f70dc5a", "admin_state": "UP", "attachment": { "id": "f941da72-2b4a-4212-9183-74029d41377e", "attachment_type": "VIF" }, "switching_profile_ids": [ { "value": "49781ebb-6f76-464a-9a7e-c365ba26128b", "key": "IpDiscoverySwitchingProfile" }, { "value": "fad98876-d7ff-11e4-b9d6-1681e6b88ec1", "key": "SpoofGuardSwitchingProfile" }, { "value": "93b4b7e8-f116-415d-a50c-3364611b5d09", "key": "PortMirroringSwitchingProfile" }, { "value": "fbc4fb17-83d9-4b53-a286-ccdf04301888", "key": "SwitchSecuritySwitchingProfile" }, { "value": "f313290b-eba8-4262-bd93-fab5026e9495", "key": "QosSwitchingProfile" } ], "_last_modified_user": "system", "_last_modified_time": 1435282553271, "_create_time": 1435282553249, "_system_owned": true, "_create_user": "system", "_revision": 1 }, { "id": "9467676a-aeae-46f7-90f1-c771e02d1669", "display_name": "9467676a-aeae-46f7-90f1-c771e02d1669", "resource_type": "LogicalPort", "address_bindings": [], "logical_switch_id": "849e339e-64b7-47cb-9480-33068f70dc5a", "admin_state": "UP", "attachment": { "id": "65332f8d-efa2-4dd9-9c92-39ca0bfb1966", "attachment_type": "VIF" }, "switching_profile_ids": [ { "value": "49781ebb-6f76-464a-9a7e-c365ba26128b", "key": "IpDiscoverySwitchingProfile" }, { "value": "fad98876-d7ff-11e4-b9d6-1681e6b88ec1", "key": "SpoofGuardSwitchingProfile" }, { "value": "93b4b7e8-f116-415d-a50c-3364611b5d09", "key": "PortMirroringSwitchingProfile" }, { "value": "fbc4fb17-83d9-4b53-a286-ccdf04301888", "key": "SwitchSecuritySwitchingProfile" }, { "value": "f313290b-eba8-4262-bd93-fab5026e9495", "key": "QosSwitchingProfile" } ], "_last_modified_user": "system", "_last_modified_time": 1435282426932, "_create_time": 1435282426867, "_system_owned": true, "_create_user": "system", "_revision": 1 } ] } Required Permissions: read Feature: switching_ports Additional Errors:

Get Information About a Logical Port (Deprecated)

Returns information about a specified logical port. in impactor-ufo branch. Please use corresponding policy API /infra/segments/<segment-id>/ports/<lport-id> Request:
Method:
GET
URI Path(s):
/api/v1/logical-ports/<lport-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-ports/9467676a-aeae-46f7-90f1-c771e02d1669 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LogicalPort+

Example Response: { "id": "9467676a-aeae-46f7-90f1-c771e02d1669", "display_name": "9467676a-aeae-46f7-90f1-c771e02d1669", "resource_type": "LogicalPort", "address_bindings": [], "logical_switch_id": "849e339e-64b7-47cb-9480-33068f70dc5a", "admin_state": "UP", "attachment": { "id": "65332f8d-efa2-4dd9-9c92-39ca0bfb1966", "attachment_type": "VIF" }, "switching_profile_ids": [ { "value": "49781ebb-6f76-464a-9a7e-c365ba26128b", "key": "IpDiscoverySwitchingProfile" }, { "value": "fad98876-d7ff-11e4-b9d6-1681e6b88ec1", "key": "SpoofGuardSwitchingProfile" }, { "value": "93b4b7e8-f116-415d-a50c-3364611b5d09", "key": "PortMirroringSwitchingProfile" }, { "value": "fbc4fb17-83d9-4b53-a286-ccdf04301888", "key": "SwitchSecuritySwitchingProfile" }, { "value": "f313290b-eba8-4262-bd93-fab5026e9495", "key": "QosSwitchingProfile" } ], "_last_modified_user": "system", "_last_modified_time": 1435282426932, "_create_time": 1435282426867, "_system_owned": true, "_create_user": "system", "_revision": 1 } Required Permissions: read Feature: switching_ports Additional Errors:

Update a Logical Port (Deprecated)

Modifies an existing logical switch port. Parameters that can be modified
include attachment_type (LOGICALROUTER, VIF), admin_state (UP or DOWN),
attachment id and switching_profile_ids. You cannot modify the logical_switch_id.
In other words, you cannot move an existing port from one switch to another switch.
This api is now deprecated.
Please use new api - /infra/segments/<segment-id>/ports/<port-id>
Request:
Method:
PUT
URI Path(s):
/api/v1/logical-ports/<lport-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
LogicalPort+

Example Request: PUT https://<nsx-mgr>/api/v1/logical-ports/95a93e66-4fb1-4f7d-9484-1c8fd521e741 { "logical_switch_id":"849e339e-64b7-47cb-9480-33068f70dc5a", "address_bindings": [{"ip_address":"192.168.1.110", "mac_address":"aa:bb:cc:dd:ee:ff"}], "attachment": {"attachment_type":"VIF","id":"vif1"}, "admin_state": "UP", "_revision": 0 } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LogicalPort+

Example Response: { "id": "95a93e66-4fb1-4f7d-9484-1c8fd521e741", "display_name": "95a93e66-4fb1-4f7d-9484-1c8fd521e741", "resource_type": "LogicalPort", "address_bindings": [ { "mac_address": "aa:bb:cc:dd:ee:ff", "ip_address": "192.168.1.110", "vlan": 0 } ], "logical_switch_id": "849e339e-64b7-47cb-9480-33068f70dc5a", "admin_state": "UP", "attachment": { "id": "vif1", "attachment_type": "VIF" }, "switching_profile_ids": [ { "value": "49781ebb-6f76-464a-9a7e-c365ba26128b", "key": "IpDiscoverySwitchingProfile" }, { "value": "fad98876-d7ff-11e4-b9d6-1681e6b88ec1", "key": "SpoofGuardSwitchingProfile" }, { "value": "93b4b7e8-f116-415d-a50c-3364611b5d09", "key": "PortMirroringSwitchingProfile" }, { "value": "fbc4fb17-83d9-4b53-a286-ccdf04301888", "key": "SwitchSecuritySwitchingProfile" }, { "value": "f313290b-eba8-4262-bd93-fab5026e9495", "key": "QosSwitchingProfile" } ], "_last_modified_user": "admin", "_last_modified_time": 1435284879143, "_create_time": 1435284566908, "_create_user": "admin", "_revision": 1 } Required Permissions: crud Feature: switching_ports Additional Errors:

Delete a Logical Port (Deprecated)

Deletes the specified logical switch port. By default, if logical port has
attachments, or it is added to any NSGroup, the deletion will be failed.
Option detach could be used for deleting logical port forcibly. This api is now deprecated.
Please use new api - DELETE /infra/segments/<segment-id>/ports/<port-id>
Request:
Method:
DELETE
URI Path(s):
/api/v1/logical-ports/<lport-id>
Request Headers:
n/a
Query Parameters:
LogicalPortDeleteParameters+
Request Body:
n/a

Example Request: DELETE https://<nsx-mgr>/api/v1/logical-ports/95a93e66-4fb1-4f7d-9484-1c8fd521e741 Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: switching_ports Additional Errors:

Get MAC table of a logical port with a given port id (lport-id)

Returns MAC table of a specified logical port. If the target transport node id is not provided,
the NSX manager will ask the controller for the transport node where the logical port is located.
The query parameter "source=cached" is not supported. MAC table retrieval is not supported on
logical ports that are attached to a logical router.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-ports/<lport-id>/mac-table
Request Headers:
n/a
Query Parameters:
ListByNodeIdParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-ports/<lport-id>/mac-table Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LogicalPortMacAddressListResult+

Example Response: { "sort_ascending" : true, "sort_by" : "display_name", "result_count" : 1, "logical_port_id" : "44766063-7068-4c82-9411-4e16c36d7c46", "last_update_timestamp" : 1496342672613, "transport_node_id" : "5a9bb1be-3f1b-11e7-80b9-53f65a56b3df", "results" : [ { "mac_address" : "00:50:56:b7:e1:04", "mac_type" : "STATIC" } ] } Required Permissions: read Feature: aggregation_service_health_monitoring Additional Errors:

Get MAC table of a logical port with a given port id (lport-id)

Returns MAC table in CSV format of a specified logical port. If the target transport node id is not provided,
the NSX manager will ask the controller for the transport node where the logical port is located.
The query parameter "source=cached" is not supported. MAC table retrieval is not supported on
logical ports that are attached to a logical router.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-ports/<lport-id>/mac-table?format=csv
Request Headers:
n/a
Query Parameters:
ListByNodeIdParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-ports/<lport-id>/mac-table?format=csv Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: text/csv
Response Body:
LogicalPortMacAddressCsvListResult+

Example Response: mac_address,mac_type 00:50:56:b7:e1:04,STATIC Required Permissions: read Feature: aggregation_service_health_monitoring Additional Errors:

Get realized state & location of a logical port (Deprecated)

Returns transport node id for a specified logical port. Also returns
information about all address bindings of the specified logical port. This
includes address bindings discovered via various snooping methods like ARP
snooping, DHCP snooping etc. and addressing bindings that are realized
based on user configuration. This api is now deprecated. Please use new api -
GET policy/api/v1/infra/realized-state/realized-entities?intent_path={{intent-path}}
GET policy/api/v1/infra/realized-state/status?intent_path={{intent-path}}
Request:
Method:
GET
URI Path(s):
/api/v1/logical-ports/<lport-id>/state
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-ports/9467676a-aeae-46f7-90f1-c771e02d1669/state Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LogicalPortState+

Example Response: { "id": "9467676a-aeae-46f7-90f1-c771e02d1669", "transport_node_ids": [], "discovered_bindings": [ { "source": "ARP_SNOOPING" "binding": { ip_address: "192.168.1.10", mac_address: "aa:bb:cc:dd:ee:ff", vlan: "" } "binding_timestamp": 1457127071089 }, { "source": "DHCP_SNOOPING" "binding": { ip_address: "192.168.1.10", mac_address: "aa:bb:cc:dd:ee:ff", vlan: "" } "binding_timestamp": 1457127071089 } ], "realized_bindings": [ { "source": "USER_DEFINED" "binding": { ip_address: "192.168.1.10", mac_address: "aa:bb:cc:dd:ee:ff", vlan: "" } "binding_timestamp": 1117127071050 }, ] } Required Permissions: read Feature: switching_ports Additional Errors:

Get Statistics for Logical Port of a Given Port ID (lport-id)

Returns statistics of a specified logical port. If the logical port is attached to
a logical router port, query parameter "source=realtime" is not supported.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-ports/<lport-id>/statistics
Request Headers:
n/a
Query Parameters:
DataSourceParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-ports/<lport-id>/statistics Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LogicalPortStatistics+

Example Response: { "tx_packets": { "total": 0, "dropped": 0, "multicast_broadcast": 0 }, "rx_bytes": { "total": 11473, "multicast_broadcast": 11473 }, "tx_bytes": { "total": 0, "multicast_broadcast": 0 }, "rx_packets": { "total": 56, "dropped": 0, "multicast_broadcast": 56 }, "logical_port_id": "04efc498-b872-40fc-83f8-ebf9317a2766", "last_update_timestamp": 1453500812476 } Required Permissions: read Feature: aggregation_service_health_monitoring Additional Errors:

Get Operational Status for Logical Port of a Given Port ID (lport-id)

Returns operational status of a specified logical port. Request:
Method:
GET
URI Path(s):
/api/v1/logical-ports/<lport-id>/status
Request Headers:
n/a
Query Parameters:
DataSourceParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-ports/<lport-id>/status Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LogicalPortOperationalStatus+

Example Response: { "logical_port_id": "04efc498-b872-40fc-83f8-ebf9317a2766", "last_update_timestamp": 1453764613211, "status": "UP" } Required Permissions: read Feature: aggregation_service_health_monitoring Additional Errors:

Get Operational Status Summary of All Logical Ports in the System

Returns operational status of all logical ports.
The query parameter "source=realtime" is not supported.
Pagination is not supported for this API.
The query parameters "cursor", "sort_ascending", "sort_by", "page_size" and "included_fields"
will be ignored.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-ports/status
Request Headers:
n/a
Query Parameters:
LogicalPortListWithSourceParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-ports/status Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LogicalPortStatusSummary+

Example Response: { "up_ports": 6, "total_ports": 6 } Required Permissions: read Feature: aggregation_service_health_monitoring Additional Errors:

Create a Switching Profile (Deprecated)

Creates a new, custom qos, port-mirroring, spoof-guard or port-security
switching profile. You can override their default switching profile assignments
by creating a new switching profile and assigning it to one or more logical
switches. You cannot override the default ipfix or ip_discovery switching profiles.
This api is now deprecated. Please use new api -
For eg. for QOS profile, please use - PUT /infra/qos-profiles/<qos-profile-id>
Request:
Method:
POST
URI Path(s):
/api/v1/switching-profiles
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
IpDiscoverySwitchingProfile+
MacManagementSwitchingProfile+
QosSwitchingProfile+
SpoofGuardSwitchingProfile+
SwitchSecuritySwitchingProfile+

Example Request: POST https://<nsx-mgr>/api/v1/switching-profiles { "resource_type": "SpoofGuardSwitchingProfile", "display_name": "spoof-guard-lswitch-bindings", "white_list_providers": ["LSWITCH_BINDINGS"] } Successful Response:
Response Code:
201 Created
Response Headers:
Content-type: application/json
Response Body:
IpDiscoverySwitchingProfile+
MacManagementSwitchingProfile+
QosSwitchingProfile+
SpoofGuardSwitchingProfile+
SwitchSecuritySwitchingProfile+

Example Response: { "resource_type": "SpoofGuardSwitchingProfile", "id": "11a97fd4-b668-4f1c-932d-b3bd087550ea", "display_name": "spoof-guard-lswitch-bindings", "white_list_providers": [ "LSWITCH_BINDINGS" ], "_last_modified_user": "admin", "_last_modified_time": 1435288074327, "_create_time": 1435288074327, "_create_user": "admin", "_revision": 0 } Required Permissions: crud Feature: switching_switching_profiles Additional Errors:

List Switching Profiles (Deprecated)

Returns information about the system-default and user-configured switching
profiles. Each switching profile has a unique ID, a display name, and
various other read-only and configurable properties. The default switching
profiles are assigned automatically to each switch. This api is now deprecated.
Please use new api - for QOS profile, please use - /infra/qos-profiles
Request:
Method:
GET
URI Path(s):
/api/v1/switching-profiles
Request Headers:
n/a
Query Parameters:
SwitchingProfileListParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/switching-profiles Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
SwitchingProfilesListResult+

Example Response: { "result_count": 7, "results": [ { "resource_type": "IpDiscoverySwitchingProfile", "id": "49781ebb-6f76-464a-9a7e-c365ba26128b", "display_name": "1-ipdiscoveryprofile-5", "arp_snooping_enabled": true, "dhcp_snooping_enabled": true, "arp_bindings_limit": 128, "vm_tools_enabled": true, "_last_modified_user": "admin", "_last_modified_time": 1435282351153, "_create_time": 1435282351153, "_create_user": "admin", "_revision": 0 }, { "resource_type": "IpDiscoverySwitchingProfile", "id": "64814784-7896-3901-9741-badeff705639", "display_name": "nsx-default-ip-discovery-overlay-profile", "arp_snooping_enabled": true, "dhcp_snooping_enabled": true, "arp_bindings_limit": 128, "vm_tools_enabled": false, "_last_modified_user": "system", "_last_modified_time": 1435280813950, "_create_time": 1435280813950, "_system_owned": true, "_create_user": "system", "_revision": 0 }, { "resource_type": "IpDiscoverySwitchingProfile", "id": "64814874-6987-1093-1479-badeff705639", "display_name": "nsx-default-ip-discovery-vlan-profile", "arp_snooping_enabled": true, "dhcp_snooping_enabled": true, "arp_bindings_limit": 128, "vm_tools_enabled": false, "_last_modified_user": "system", "_last_modified_time": 1435280813950, "_create_time": 1435280813950, "_system_owned": true, "_create_user": "system", "_revision": 0 }, { "resource_type": "PortMirroringSwitchingProfile", "id": "93b4b7e8-f116-415d-a50c-3364611b5d09", "display_name": "nsx-default-port-mirroring-profile", "destinations": [], "direction": "BIDIRECTIONAL", "key": 0, "_last_modified_user": "system", "_last_modified_time": 1435280813949, "_create_time": 1435280813949, "_system_owned": true, "_create_user": "system", "_revision": 0 }, { "resource_type": "QosSwitchingProfile", "id": "f313290b-eba8-4262-bd93-fab5026e9495", "display_name": "nsx-default-qos-switching-profile", "dscp": { "priority": 0, "mode": "TRUSTED" }, "class_of_service": 0, "shaper_configuration": [ { "resource_type": "IngressRateShaper", "enabled": false, "peak_bandwidth_mbps": 0, "burst_size_bytes": 0, "average_bandwidth_mbps": 0 }, { "resource_type": "IngressBroadcastRateShaper", "enabled": false, "peak_bandwidth_kbps": 0, "average_bandwidth_kbps": 0, "burst_size_bytes": 0 }, { "resource_type": "EgressRateShaper", "enabled": false, "peak_bandwidth_mbps": 0, "burst_size_bytes": 0, "average_bandwidth_mbps": 0 } ], "_last_modified_user": "system", "_last_modified_time": 1435280813947, "_create_time": 1435280813947, "_system_owned": true, "_create_user": "system", "_revision": 0 }, { "resource_type": "SpoofGuardSwitchingProfile", "id": "fad98876-d7ff-11e4-b9d6-1681e6b88ec1", "display_name": "nsx-default-spoof-guard-vif-profile", "white_list_providers": [], "_last_modified_user": "system", "_last_modified_time": 1435280813954, "_create_time": 1435280813954, "_system_owned": true, "_create_user": "system", "_revision": 0 }, { "resource_type": "SwitchSecuritySwitchingProfile", "id": "fbc4fb17-83d9-4b53-a286-ccdf04301888", "display_name": "nsx-default-switch-security-vif-profile", "dhcp_filter": { "client_block_enabled": false, "server_block_enabled": true }, "rate_limits": { "rx_broadcast": 0, "tx_broadcast": 0, "rx_multicast": 0, "tx_multicast": 0 }, "bpdu_filter": { "enabled": true, "white_list": [] }, "_last_modified_user": "system", "_last_modified_time": 1435280813955, "_create_time": 1435280813955, "_system_owned": true, "_create_user": "system", "_revision": 0 } ] } Required Permissions: read Feature: switching_switching_profiles Additional Errors:

Delete a Switching Profile (Deprecated)

Deletes the specified switching profile. This api is now deprecated. Use new api - for QOS profile, please use - DELETE /infra/qos-profiles/<qos-profile-id> Request:
Method:
DELETE
URI Path(s):
/api/v1/switching-profiles/<switching-profile-id>
Request Headers:
n/a
Query Parameters:
SwitchingProfileDeleteParameters+
Request Body:
n/a

Example Request: DELETE https://<nsx-mgr>/api/v1/switching-profiles/11a97fd4-b668-4f1c-932d-b3bd087550ea Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: switching_switching_profiles Additional Errors:

Get Switching Profile by ID (Deprecated)

Returns information about a specified switching profile. This api is now deprecated. Please use new api - for QOS profile, please use - /infra/qos-profiles/<qos-profile-id> Request:
Method:
GET
URI Path(s):
/api/v1/switching-profiles/<switching-profile-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/switching-profiles/f313290b-eba8-4262-bd93-fab5026e9495 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
IpDiscoverySwitchingProfile+
MacManagementSwitchingProfile+
QosSwitchingProfile+
SpoofGuardSwitchingProfile+
SwitchSecuritySwitchingProfile+

Example Response: { "resource_type": "QosSwitchingProfile", "id": "f313290b-eba8-4262-bd93-fab5026e9495", "display_name": "nsx-default-qos-switching-profile", "dscp": { "priority": 0, "mode": "TRUSTED" }, "class_of_service": 0, "shaper_configuration": [ { "resource_type": "IngressRateShaper", "enabled": false, "peak_bandwidth_mbps": 0, "burst_size_bytes": 0, "average_bandwidth_mbps": 0 }, { "resource_type": "IngressBroadcastRateShaper", "enabled": false, "peak_bandwidth_kbps": 0, "average_bandwidth_kbps": 0, "burst_size_bytes": 0 }, { "resource_type": "EgressRateShaper", "enabled": false, "peak_bandwidth_mbps": 0, "burst_size_bytes": 0, "average_bandwidth_mbps": 0 } ], "_last_modified_user": "system", "_last_modified_time": 1435280813947, "_create_time": 1435280813947, "_system_owned": true, "_create_user": "system", "_revision": 0 } Required Permissions: read Feature: switching_switching_profiles Additional Errors:

Update a Switching Profile (Deprecated)

Updates the user-configurable parameters of a switching profile. Only the qos,
port-mirroring, spoof-guard and port-security switching profiles can be modified.
You cannot modify the ipfix or ip-discovery switching profiles. This api is now deprecated.
Use new api, for eg., QOS profile - PATCH /infra/qos-profiles/<qos-profile-id>
Request:
Method:
PUT
URI Path(s):
/api/v1/switching-profiles/<switching-profile-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
IpDiscoverySwitchingProfile+
MacManagementSwitchingProfile+
QosSwitchingProfile+
SpoofGuardSwitchingProfile+
SwitchSecuritySwitchingProfile+

Example Request: PUT https://<nsx-mgr>/api/v1/switching-profiles/11a97fd4-b668-4f1c-932d-b3bd087550ea { "resource_type": "QosSwitchingProfile", "description": "", "id": "7f39bf67-ccf5-4613-8993-506ec89d893a", "display_name": "Medium priority", "tags": [], "dscp": { "mode": "TRUSTED", "priority": 0 }, "shaper_configuration": [ { "resource_type": "IngressRateShaper", "enabled": true, "average_bandwidth_mbps": 1000, "peak_bandwidth_mbps": 2000, "burst_size_bytes": 1250 }, { "resource_type": "IngressBroadcastRateShaper", "enabled": true, "burst_size_bytes": 1250, "peak_bandwidth_kbps": 2000, "average_bandwidth_kbps": 2000 }, { "resource_type": "EgressRateShaper", "enabled": false, "average_bandwidth_mbps": 1000, "peak_bandwidth_mbps": 2000, "burst_size_bytes": 1250 } ], "class_of_service": 2, "_revision": 0 } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
IpDiscoverySwitchingProfile+
MacManagementSwitchingProfile+
QosSwitchingProfile+
SpoofGuardSwitchingProfile+
SwitchSecuritySwitchingProfile+

Example Response: { "resource_type": "QosSwitchingProfile", "description": "", "id": "7f39bf67-ccf5-4613-8993-506ec89d893a", "display_name": "Medium priority", "tags": [], "required_capabilities": [ "switchingprofile.qos.shaper.broadcast" ], "dscp": { "mode": "TRUSTED", "priority": 0 }, "shaper_configuration": [ { "resource_type": "IngressRateShaper", "enabled": true, "average_bandwidth_mbps": 1000, "peak_bandwidth_mbps": 2000, "burst_size_bytes": 1250 }, { "resource_type": "IngressBroadcastRateShaper", "enabled": true, "burst_size_bytes": 1250, "peak_bandwidth_kbps": 2000, "average_bandwidth_kbps": 2000 }, { "resource_type": "EgressRateShaper", "enabled": false, "average_bandwidth_mbps": 1000, "peak_bandwidth_mbps": 2000, "burst_size_bytes": 1250 } ], "class_of_service": 2, "_last_modified_time": 1458857995660, "_last_modified_user": "admin", "_system_owned": false, "_revision": 1 } Required Permissions: crud Feature: switching_switching_profiles Additional Errors:

Get Counts of Ports and Switches Using This Switching Profile (Deprecated)

This api is now deprecated. Please use new api - GET policy/api/v1/infra/realized-state/status?intent_path={{intent-path}} Request:
Method:
GET
URI Path(s):
/api/v1/switching-profiles/<switching-profile-id>/summary
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/switching-profiles/7f39bf67-ccf5-4613-8993-506ec89d893a/summary Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
SwitchingProfileStatus+

Example Response: { "num_logical_ports": 1, "switching_profile_id": "7f39bf67-ccf5-4613-8993-506ec89d893a", "num_logical_switches": 0 } Required Permissions: read Feature: switching_switching_profiles Additional Errors:

Management Plane API: Networking: Logical Switching: Logical Switches

Associated URIs:

Create a Logical Switch (Deprecated)

Creates a new logical switch. The request must include the
transport_zone_id, display_name, and admin_state (UP or DOWN). The
replication_mode (MTEP or SOURCE) is required for overlay logical
switches, but not for VLAN-based logical switches. A vlan needs to be
provided for VLAN-based logical switches. This api is now deprecated.
Please use new api -/infra/segments/<segment-id>
Request:
Method:
POST
URI Path(s):
/api/v1/logical-switches
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
LogicalSwitch+

Example Request: POST https://<nsx-mgr>/api/v1/logical-switches { "transport_zone_id":"cfaec4c7-45c2-439b-b7c6-2c3aeabd9976", "replication_mode": "MTEP", "admin_state":"UP", "display_name":"test-logical-switch", "hybrid": true } Successful Response:
Response Code:
201 Created
Response Headers:
Content-type: application/json
Response Body:
LogicalSwitch+

Example Response: { "id": "92225022-a786-4c7d-91d1-1f9afa6deebe", "display_name": "test-logical-switch", "resource_type": "LogicalSwitch", "address_bindings": [], "transport_zone_id": "cfaec4c7-45c2-439b-b7c6-2c3aeabd9976", "replication_mode": "MTEP", "admin_state": "UP", "vni": 56200, "hybrid": true, "switching_profile_ids": [ { "value": "64814784-7896-3901-9741-badeff705639", "key": "IpDiscoverySwitchingProfile" }, { "value": "fad98876-d7ff-11e4-b9d6-1681e6b88ec1", "key": "SpoofGuardSwitchingProfile" }, { "value": "93b4b7e8-f116-415d-a50c-3364611b5d09", "key": "PortMirroringSwitchingProfile" }, { "value": "fbc4fb17-83d9-4b53-a286-ccdf04301888", "key": "SwitchSecuritySwitchingProfile" }, { "value": "f313290b-eba8-4262-bd93-fab5026e9495", "key": "QosSwitchingProfile" } ], "_last_modified_user": "admin", "_last_modified_time": 1435285527986, "_create_time": 1435285527986, "_create_user": "admin", "_revision": 0, "_schema": "/v1/schema/LogicalSwitch" } Required Permissions: crud Feature: switching_switches Additional Errors:

List all Logical Switches (Deprecated)

Returns information about all configured logical switches. This api is now deprecated. Please use new api - /infra/segments Request:
Method:
GET
URI Path(s):
/api/v1/logical-switches
Request Headers:
n/a
Query Parameters:
LogicalSwitchListParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-switches Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LogicalSwitchListResult+

Example Response: { "result_count": 1, "results": [ { "id": "849e339e-64b7-47cb-9480-33068f70dc5a", "display_name": "ls-demo", "description": "1st logical Switch", "resource_type": "LogicalSwitch", "address_bindings": [], "transport_zone_id": "cfaec4c7-45c2-439b-b7c6-2c3aeabd9976", "replication_mode": "MTEP", "admin_state": "UP", "vni": 11144, "hybrid": false, "switching_profile_ids": [ { "value": "49781ebb-6f76-464a-9a7e-c365ba26128b", "key": "IpDiscoverySwitchingProfile" }, { "value": "fad98876-d7ff-11e4-b9d6-1681e6b88ec1", "key": "SpoofGuardSwitchingProfile" }, { "value": "93b4b7e8-f116-415d-a50c-3364611b5d09", "key": "PortMirroringSwitchingProfile" }, { "value": "fbc4fb17-83d9-4b53-a286-ccdf04301888", "key": "SwitchSecuritySwitchingProfile" }, { "value": "f313290b-eba8-4262-bd93-fab5026e9495", "key": "QosSwitchingProfile" } ], "_last_modified_user": "admin", "_last_modified_time": 1435282408187, "_create_time": 1435282408187, "_create_user": "admin", "_revision": 0, "_schema": "/v1/schema/LogicalSwitch" } ] } Required Permissions: read Feature: switching_switches Additional Errors:

Delete a Logical Switch (Deprecated)

Removes a logical switch from the associated overlay or VLAN transport
zone. By default, a logical switch cannot be deleted if there are logical
ports on the switch, or it is added to a NSGroup.
Cascade option can be used to delete all ports and the logical switch.
Detach option can be used to delete the logical switch forcibly. This api is now deprecated.
Please use new api - /infra/segments/<segment-id>
Request:
Method:
DELETE
URI Path(s):
/api/v1/logical-switches/<lswitch-id>
Request Headers:
n/a
Query Parameters:
LogicalSwitchDeleteParameters+
Request Body:
n/a

Example Request: DELETE https://<nsx-mgr>/api/v1/logical-switches/92225022-a786-4c7d-91d1-1f9afa6deebe Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: switching_switches Additional Errors:

Get Logical Switch associated with the provided id (lswitch-id) (Deprecated)

Returns information about the specified logical switch Id. This api is now deprecated. Please use new api - /infra/segments/<segment-id> Request:
Method:
GET
URI Path(s):
/api/v1/logical-switches/<lswitch-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-switches/849e339e-64b7-47cb-9480-33068f70dc5a Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LogicalSwitch+

Example Response: { "id": "849e339e-64b7-47cb-9480-33068f70dc5a", "display_name": "ls-demo", "description": "1st logical Switch", "resource_type": "LogicalSwitch", "address_bindings": [], "transport_zone_id": "cfaec4c7-45c2-439b-b7c6-2c3aeabd9976", "replication_mode": "MTEP", "admin_state": "UP", "vni": 11144, "hybrid": true, "switching_profile_ids": [ { "value": "49781ebb-6f76-464a-9a7e-c365ba26128b", "key": "IpDiscoverySwitchingProfile" }, { "value": "fad98876-d7ff-11e4-b9d6-1681e6b88ec1", "key": "SpoofGuardSwitchingProfile" }, { "value": "93b4b7e8-f116-415d-a50c-3364611b5d09", "key": "PortMirroringSwitchingProfile" }, { "value": "fbc4fb17-83d9-4b53-a286-ccdf04301888", "key": "SwitchSecuritySwitchingProfile" }, { "value": "f313290b-eba8-4262-bd93-fab5026e9495", "key": "QosSwitchingProfile" } ], "_last_modified_user": "admin", "_last_modified_time": 1435282408187, "_create_time": 1435282408187, "_create_user": "admin", "_revision": 0, "_schema": "/v1/schema/LogicalSwitch" } Required Permissions: read Feature: switching_switches Additional Errors:

Update a Logical Switch (Deprecated)

Modifies attributes of an existing logical switch. Modifiable
attributes include admin_state, replication_mode, switching_profile_ids
and VLAN spec. You cannot modify the original transport_zone_id.
This api is now deprecated. Please use new api - PATCH /infra/segments/<segment-id>
Request:
Method:
PUT
URI Path(s):
/api/v1/logical-switches/<lswitch-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
LogicalSwitch+

Example Request: PUT https://<nsx-mgr>/api/v1/logical-switches/92225022-a786-4c7d-91d1-1f9afa6deebe { "transport_zone_id":"cfaec4c7-45c2-439b-b7c6-2c3aeabd9976", "replication_mode": "MTEP", "admin_state": "UP", "hybrid": false, "_revision": 0 } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LogicalSwitch+

Example Response: { "id": "92225022-a786-4c7d-91d1-1f9afa6deebe", "display_name": "92225022-a786-4c7d-91d1-1f9afa6deebe", "resource_type": "LogicalSwitch", "transport_zone_id": "cfaec4c7-45c2-439b-b7c6-2c3aeabd9976", "replication_mode": "MTEP", "admin_state": "UP", "vni": 56200, "hybrid": false, "switching_profile_ids": [ { "value": "64814784-7896-3901-9741-badeff705639", "key": "IpDiscoverySwitchingProfile" }, { "value": "fad98876-d7ff-11e4-b9d6-1681e6b88ec1", "key": "SpoofGuardSwitchingProfile" }, { "value": "93b4b7e8-f116-415d-a50c-3364611b5d09", "key": "PortMirroringSwitchingProfile" }, { "value": "fbc4fb17-83d9-4b53-a286-ccdf04301888", "key": "SwitchSecuritySwitchingProfile" }, { "value": "f313290b-eba8-4262-bd93-fab5026e9495", "key": "QosSwitchingProfile" } ], "_last_modified_user": "admin", "_last_modified_time": 1435285886962, "_create_time": 1435285527986, "_create_user": "admin", "_revision": 1, "_schema": "/v1/schema/LogicalSwitch" } Required Permissions: crud Feature: switching_switches Additional Errors:

Get MAC Table for Logical Switch of the Given ID (lswitch-id)

Returns MAC table of a specified logical switch from the given transport
node if a transport node id is given in the query parameter from the
Central Controller Plane.
The query parameter "source=cached" is not supported.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-switches/<lswitch-id>/mac-table
Request Headers:
n/a
Query Parameters:
ListByNodeIdParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-switches/<lswitch-id>/mac-table Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
MacAddressListResult+

Example Response: { "sort_ascending": true, "sort_by": "displayName", "result_count": 1, "logical_switch_id": "2bcc9f42-0fb8-4a30-b4a6-db6d4abedf5a", "results": [ { "vtep_mac_address": "00:50:56:6b:e9:b5", "mac_address": "00:0c:29:ec:2b:ce", "vtep_ip": "159.213.45.33" } ] } Required Permissions: read Feature: aggregation_service_health_monitoring Additional Errors:

Get MAC Table for Logical Switch of the Given ID (lswitch-id)

Returns MAC table of a specified logical switch in CSV format from the given transport
node if a transport node id is given in the query parameter from the
Central Controller Plane.
The query parameter "source=cached" is not supported.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-switches/<lswitch-id>/mac-table?format=csv
Request Headers:
n/a
Query Parameters:
TransportNodeIdParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-switches/<lswitch-id>/mac-table?format=csv&source=realtime Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: text/csv
Response Body:
MacAddressCsvListResult+

Example Response: mac_address,vtep_ip,vtep_mac_address 00:0c:29:ec:2b:ce,159.213.45.33,00:50:56:6b:e9:b5 Required Permissions: read Feature: aggregation_service_health_monitoring Additional Errors:

Get the realized state associated with provided logical switch id (Deprecated)

Returns current state of the logical switch configuration and details of only
out-of-sync transport nodes. This api is now deprecated. Please use new api -
policy/api/v1/infra/realized-state/realized-entities?intent_path={{intent-path}}
Request:
Method:
GET
URI Path(s):
/api/v1/logical-switches/<lswitch-id>/state
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-switches/cc5ff938-6f09-4841-8f0f-294e86415472/state Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LogicalSwitchState+

Example Response: { "state" : "in_progress", "logical_switch_id": "cc5ff938-6f09-4841-8f0f-294e86415472", "details": [ { "state" : "in_progress", "sub_system_id" : "366048ba-89d9-435e-ac2e-2c7cf6ed0f33", "sub_system_type" : "TransportNode" } ] } Required Permissions: read Feature: switching_switches Additional Errors:

Get Statistics for Logical Switch of the Given ID (lswitch-id)

Returns statistics of a specified logical switch.
The query parameter "source=realtime" is not supported.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-switches/<lswitch-id>/statistics
Request Headers:
n/a
Query Parameters:
DataSourceParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-switches/<lswitch-id>/statistics Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LogicalSwitchStatistics+

Example Response: { "tx_packets": { "total": 18, "dropped": 0, "multicast_broadcast": 0 }, "rx_bytes": { "total": 22358, "multicast_broadcast": 11473 }, "tx_bytes": { "total": 1068, "multicast_broadcast": 0 }, "rx_packets": { "total": 98, "dropped": 42, "multicast_broadcast": 56 }, "logical_switch_id": "2bcc9f42-0fb8-4a30-b4a6-db6d4abedf5a" } Required Permissions: read Feature: aggregation_service_health_monitoring Additional Errors:

Get Logical Switch runtime status info for a given logical switch (Deprecated)

Returns the number of ports assigned to logical switch. This api is now deprecated Please use new API - GET policy/api/v1/infra/realized-state/status?intent_path={{intent-path}} Request:
Method:
GET
URI Path(s):
/api/v1/logical-switches/<lswitch-id>/summary
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-switches/cc5ff938-6f09-4841-8f0f-294e86415472/summary Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LogicalSwitchStatus+

Example Response: { "logical_switch_id": "cc5ff938-6f09-4841-8f0f-294e86415472", "num_logical_ports": 0 } Required Permissions: read Feature: switching_switches Additional Errors:

Get virtual tunnel endpoint table for logical switch of the given ID (lswitch-id)

Returns the virtual tunnel endpoint table of a specified logical switch
from the given transport node if a transport node id is given in the
query parameter, from the Central Controller Plane.
The query parameter "source=cached" is not supported.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-switches/<lswitch-id>/vtep-table
Request Headers:
n/a
Query Parameters:
ListByNodeIdParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-switches/<lswitch-id>/vtep-table?source=realtime Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
VtepListResult+

Example Response: { "sort_ascending": true, "sort_by": "displayName", "result_count": 2, "logical_switch_id": "2bcc9f42-0fb8-4a30-b4a6-db6d4abedf5a", "results": [ { "vtep_mac_address": "00:50:56:6b:e9:b5", "vtep_label": 10241, "vtep_ip": "159.213.45.33", "segment_id": "159.213.45.0" }, { "vtep_mac_address": "04:00:9f:d5:2d:23", "vtep_label": 57345, "vtep_ip": "159.213.45.35", "segment_id": "159.213.45.0" } ] } Required Permissions: read Feature: aggregation_service_health_monitoring Additional Errors:

Get virtual tunnel endpoint table for logical switch of the given ID (lswitch-id)

Returns virtual tunnel endpoint table of a specified logical switch in
CSV format from the given transport node if a transport node id is
given in the query parameter from the Central Controller Plane.
The query parameter "source=cached" is not supported.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-switches/<lswitch-id>/vtep-table?format=csv
Request Headers:
n/a
Query Parameters:
TransportNodeIdParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-switches/<lswitch-id>/vtep-table?format=csv&source=realtime Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: text/csv
Response Body:
VtepCsvListResult+

Example Response: vtep_label,vtep_ip,vtep_mac_address,segment_id 10241,159.213.45.33,00:50:56:6b:e9:b5,159.213.45.0 57345,159.213.45.35,04:00:9f:d5:2d:23,159.213.45.0 Required Permissions: read Feature: aggregation_service_health_monitoring Additional Errors:

List logical switches by realized state (Deprecated)

Returns a list of logical switches states that have realized state as provided
as query parameter. This api is now deprecated. Please use new api -
policy/api/v1/infra/realized-state/realized-entities?intent_path={{intent-path}}
Request:
Method:
GET
URI Path(s):
/api/v1/logical-switches/state
Request Headers:
n/a
Query Parameters:
LogicalSwitchStateParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-switches/state?status=IN_PROGRESS Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LogicalSwitchStateListResult+

Example Response: { "state" : "in_progress", "logical_switch_id": "cc5ff938-6f09-4841-8f0f-294e86415472", "details": [ { "state" : "in_progress", "sub_system_id" : "366048ba-89d9-435e-ac2e-2c7cf6ed0f33", "sub_system_type" : "TransportNode" } ] } Required Permissions: read Feature: switching_switches Additional Errors:

Get Status Summary of All Logical Switches in the System

Returns Operational status of all logical switches.
The query parameter "source=realtime" is not supported.
Request:
Method:
GET
URI Path(s):
/api/v1/logical-switches/status
Request Headers:
n/a
Query Parameters:
LogicalSwitchListWithSourceParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/logical-switches/status Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LogicalSwitchStatusSummary+

Example Response: { "total_switches": 6, "fully_realized_switches": 6 } Required Permissions: read Feature: aggregation_service_health_monitoring Additional Errors:

Management Plane API: Networking: Services

Management Plane API: Networking: Services: DHCP

Associated URIs:

Get a paginated list of DHCP server profiles (Deprecated)

Get a paginated list of DHCP server profiles. Request:
Method:
GET
URI Path(s):
/api/v1/dhcp/server-profiles
Request Headers:
n/a
Query Parameters:
ListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/dhcp/server-profiles Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
DhcpProfileListResult+

Example Response: { "cursor" : "0036faf85fb5-9242-4d24-abca-0ca59b2b669bDHCP-server-profile-1", "result_count" : 1, "results" : [ { "resource_type" : "DhcpProfile", "id" : "faf85fb5-9242-4d24-abca-0ca59b2b669b", "display_name" : "DHCP-server-profile-1", "edge_cluster_id" : "4a6a13e0-eb66-4c02-96c3-85c9a250a946", "edge_cluster_member_indexes" : [ 1, 0 ], "enable_standby_relocation" : false "_create_time" : 1478111693174, "_create_user" : "admin", "_last_modified_user" : "admin", "_system_owned" : false, "_last_modified_time" : 1478111693174, "_revision" : 0 } ] } Required Permissions: read Feature: dhcp_server_profiles Additional Errors:

Create a DHCP server profile (Deprecated)

Create a DHCP server profile. If no edge member is specified, edge members
to run the dhcp servers will be auto-allocated from the edge cluster.
Request:
Method:
POST
URI Path(s):
/api/v1/dhcp/server-profiles
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
DhcpProfile+

Example Request: POST https://<nsx-mgr>/api/v1/dhcp/server-profiles { "display_name" : "DHCP-server-profile-2", "edge_cluster_id" : "4a6a13e0-eb66-4c02-96c3-85c9a250a946", "enable_standby_relocation" : true } Successful Response:
Response Code:
201 Created
Response Headers:
Content-type: application/json
Response Body:
DhcpProfile+

Example Response: { "resource_type" : "DhcpProfile", "id" : "ee5711ce-e4d5-4f88-8330-b79c01d3bf7c", "display_name" : "DHCP-server-profile-2", "edge_cluster_id" : "4a6a13e0-eb66-4c02-96c3-85c9a250a946", "enable_standby_relocation" : true, "_create_time" : 1478301260922, "_create_user" : "admin", "_last_modified_user" : "admin", "_system_owned" : false, "_last_modified_time" : 1478301260922, "_revision" : 0 } Required Permissions: crud Feature: dhcp_server_profiles Additional Errors:

Delete a DHCP server profile (Deprecated)

Delete a DHCP server profile specified by the profile id. Request:
Method:
DELETE
URI Path(s):
/api/v1/dhcp/server-profiles/<profile-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: DELETE https://<nsx-mgr>/api/v1/dhcp/server-profiles/ee5711ce-e4d5-4f88-8330-b79c01d3bf7c Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
n/a

Required Permissions: crud Feature: dhcp_server_profiles Additional Errors:

Update a DHCP server profile (Deprecated)

If both the edge_cluster_member_indexes in the DhcpProfile are changed in
a same PUT API, e.g. change from [a,b] to [x,y], the current DHCP server
leases will be lost, which could cause the network crash due to ip conflicts.
Hence the suggestion is to change only one member index in one single update,
e.g. from [a, b] to [a,y].

Please note, the edge_cluster_id in DhcpProfile can NOT be changed by this
PUT operation because all existing DHCP leases will lost. If losing leases
is not a problem, a dedicated re-allocation API is suggested to modify the
edge-cluster-id, i.e. "POST /api/v1/dhcp/dhcp-profiles/<profileiid>?action=reallocate".

Meanwhile, if the edge_cluster_member_indexes was specified currently but
now is changed to none (not specified) via a PUT operation, the edge nodes
will not be auto-selected from edge cluster. Instead, the previously-allocated
edge nodes will continue to be used by the DHCP server. This is because
changing both edge nodes of a DHCP server will lose all existing leases.
In case re-allocation is required and leases lost is not a problem (or can
be recovered), please invoke the reallocate API mentioned above with new
DhcpProfile to accomplish the intent.
Request:
Method:
PUT
URI Path(s):
/api/v1/dhcp/server-profiles/<profile-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
DhcpProfile+

Example Request: PUT https://<nsx-mgr>/api/v1/dhcp/server-profiles/ee5711ce-e4d5-4f88-8330-b79c01d3bf7c { "display_name" : "DHCP-server-profile-3", "edge_cluster_id" : "4a6a13e0-eb66-4c02-96c3-85c9a250a946", "_revision" : 0 } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
DhcpProfile+

Example Response: { "resource_type" : "DhcpProfile", "id" : "ee5711ce-e4d5-4f88-8330-b79c01d3bf7c", "display_name" : "DHCP-server-profile-3", "edge_cluster_id" : "4a6a13e0-eb66-4c02-96c3-85c9a250a946", "enable_standby_relocation" : false, "_last_modified_user" : "admin", "_last_modified_time" : 1478301632680, "_revision" : 1 } Required Permissions: crud Feature: dhcp_server_profiles Additional Errors:

Get a DHCP server profile (Deprecated)

Return the DHCP profile specified by the profile id. Request:
Method:
GET
URI Path(s):
/api/v1/dhcp/server-profiles/<profile-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/dhcp/server-profiles/ee5711ce-e4d5-4f88-8330-b79c01d3bf7c Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
DhcpProfile+

Example Response: { "resource_type" : "DhcpProfile", "id" : "ee5711ce-e4d5-4f88-8330-b79c01d3bf7c", "display_name" : "DHCP-server-profile-2", "edge_cluster_id" : "4a6a13e0-eb66-4c02-96c3-85c9a250a946", "enable_standby_relocation" : true, "_create_time" : 1478301260922, "_create_user" : "admin", "_last_modified_user" : "admin", "_system_owned" : false, "_last_modified_time" : 1478301260922, "_revision" : 0 } Required Permissions: read Feature: dhcp_server_profiles Additional Errors:

Reallocate edge cluster and members of given DHCP profile. (Deprecated)

As changing edge-cluster-id of a DhcpProfile by a PUT is disallowed,
this re-allocate API is used to modify the edge-cluster-id and members
of a given DhcpProfile.

Only the edge-cluster-id and the edge-cluster-member-indexes fields will
be picked up by this re-allication API. The othere fields in the payload
will be ignored.

If the edge-cluster-id in the payload DhcpProfile is different from the
current edge-cluster-id of the profile, the referencing DHCP server(s) will
be re-allocated to the new edge cluster. If the edge-cluster-id is not
changed, the referencing DHCP server(s) will be re-allocated to the
given edge members in the edge cluster. In this case, this REST API will
act same as that of updating a DhcpProfile.

If the edge cluster member indexes are provided, they should exist in the
given edge cluster. If the indexes are not specified in the DhcpProfile,
edge members will be auto-allocated from the given edge cluster.

Please note that re-allocating edge-cluster will cause lose of all exisitng
DHCP lease information. This API is used only when loosing DHCP leases is
not a real problem, e.g. cross-site migration or failover and all client
hosts will be reboot and get new IP addresses.
Request:
Method:
POST
URI Path(s):
/api/v1/dhcp/server-profiles/<server-profile-id>?action=reallocate
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
DhcpProfile+

Example Request: POST /api/v1/dhcp/dhcp-profiles/1e2e59c1-5d9d-4231-bc43-5f7c06825e1b?action=reallocate { "edge_cluster_id" : "0748d3ce-2bdc-40ba-90d2-639a7dfe6cfe", "edge_cluster_member_indexes" : [0, 1] } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
DhcpProfile+

Example Response: { "resource_type" : "DhcpProfile", "id" : "1e2e59c1-5d9d-4231-bc43-5f7c06825e1b", "display_name" : "DHCP-server-profile-3", "edge_cluster_id" : "0748d3ce-2bdc-40ba-90d2-639a7dfe6cfe", "edge_cluster_member_indexes" : [0, 1], "enable_standby_relocation" : false, "_last_modified_user" : "admin", "_last_modified_time" : 1478302632680, "_revision" : 3 } Required Permissions: crud Feature: dhcp_servers Additional Errors:

Create a DHCP server (Deprecated)

Create a logical DHCP server with v4 and/or v6 servers.
Request:
Method:
POST
URI Path(s):
/api/v1/dhcp/servers
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
LogicalDhcpServer+

Example Request: POST https://<nsx-mgr>/api/v1/dhcp/servers { "display_name" : "DHCP-server-2", "dhcp_profile_id" : "faf85fb5-9242-4d24-abca-0ca59b2b669b", "ipv4_dhcp_server" : { "dhcp_server_ip" : "192.168.110.50/24" } } Successful Response:
Response Code:
201 Created
Response Headers:
Content-type: application/json
Response Body:
LogicalDhcpServer+

Example Response: { "resource_type" : "LogicalDhcpServer", "id" : "b6a5bffa-f6a9-447c-936f-4633f9eb43a7", "display_name" : "DHCP-server-2", "dhcp_profile_id" : "faf85fb5-9242-4d24-abca-0ca59b2b669b", "ipv4_dhcp_server" : { "dhcp_server_ip" : "192.168.110.50/24" }, "_create_time" : 1478304339963, "_create_user" : "admin", "_last_modified_user" : "admin", "_system_owned" : false, "_last_modified_time" : 1478304339963, "_revision" : 0 } Required Permissions: crud Feature: dhcp_servers Additional Errors:

Get a paginated list of DHCP servers (Deprecated)

List logical DHCP servers with pagination support. Request:
Method:
GET
URI Path(s):
/api/v1/dhcp/servers
Request Headers:
n/a
Query Parameters:
ListRequestParameters+
Request Body:
n/a

Example Request: Get https://<nsx-mgr>/api/v1/dhcp/servers Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LogicalDhcpServerListResult+

Example Response: { "cursor" : "0036e4d0bf07-7ebf-46a1-84b0-6292ca6f52b7DHCP-server-1", "result_count" : 1, "results" : [ { "resource_type" : "LogicalDhcpServer", "id" : "e4d0bf07-7ebf-46a1-84b0-6292ca6f52b7", "display_name" : "DHCP-server-1", "dhcp_profile_id" : "faf85fb5-9242-4d24-abca-0ca59b2b669b", "ipv4_dhcp_server" : { "dhcp_server_ip" : "192.168.110.50/24" }, "ipv6_dhcp_server" : { "dhcp_server_ip" : "2019::1:0:0:1/96" }, "attached_logical_port_id" : "ecde011f-528f-4ccb-a147-dd45d74103b6", "_create_time" : 1478111770429, "_create_user" : "admin", "_last_modified_user" : "admin", "_system_owned" : false, "_last_modified_time" : 1478111770429, "_revision" : 0 } ] } Required Permissions: read Feature: dhcp_servers Additional Errors:

Delete a DHCP server (Deprecated)

Delete a logical DHCP server specified by server id. Request:
Method:
DELETE
URI Path(s):
/api/v1/dhcp/servers/<server-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: DELETE https://<nsx-mgr>/api/v1/dhcp/servers/b6a5bffa-f6a9-447c-936f-4633f9eb43a7 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
n/a

Required Permissions: crud Feature: dhcp_servers Additional Errors:

Update a DHCP server with v4 and/or v6 servers (Deprecated)

Update a logical DHCP server with new configurations. Request:
Method:
PUT
URI Path(s):
/api/v1/dhcp/servers/<server-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
LogicalDhcpServer+

Example Request: PUT https://<nsx-mgr>/api/v1/dhcp/servers/b6a5bffa-f6a9-447c-936f-4633f9eb43a7 { "display_name" : "DHCP-server-3", "dhcp_profile_id" : "faf85fb5-9242-4d24-abca-0ca59b2b669b", "ipv4_dhcp_server" : { "dhcp_server_ip" : "192.168.110.50/24" }, "_revision" : 0 } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LogicalDhcpServer+

Example Response: { "resource_type" : "LogicalDhcpServer", "id" : "b6a5bffa-f6a9-447c-936f-4633f9eb43a7", "display_name" : "DHCP-server-3", "dhcp_profile_id" : "faf85fb5-9242-4d24-abca-0ca59b2b669b", "ipv4_dhcp_server" : { "dhcp_server_ip" : "192.168.110.50/24" }, "attached_logical_port_id" : "ecde011f-528f-4ccb-a147-dd45d74103b6", "_last_modified_user" : "admin", "_last_modified_time" : 1478304649896, "_revision" : 1 } Required Permissions: crud Feature: dhcp_servers Additional Errors:

Get a DHCP server with v4 and/or v6 servers (Deprecated)

Retrieve a logical DHCP server specified by server id. Request:
Method:
GET
URI Path(s):
/api/v1/dhcp/servers/<server-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: Get https://<nsx-mgr>/api/v1/dhcp/servers/b6a5bffa-f6a9-447c-936f-4633f9eb43a7 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LogicalDhcpServer+

Example Response: { "resource_type" : "LogicalDhcpServer", "id" : "b6a5bffa-f6a9-447c-936f-4633f9eb43a7", "display_name" : "DHCP-server-2", "dhcp_profile_id" : "faf85fb5-9242-4d24-abca-0ca59b2b669b", "ipv4_dhcp_server" : { "dhcp_server_ip" : "192.168.110.50/24" }, "attached_logical_port_id" : "ecde011f-528f-4ccb-a147-dd45d74103b6", "_create_time" : 1478304339963, "_create_user" : "admin", "_last_modified_user" : "admin", "_system_owned" : false, "_last_modified_time" : 1478304339963, "_revision" : 0 } Required Permissions: read Feature: dhcp_servers Additional Errors:

Get a paginated list of a DHCP server's IP pools (Deprecated)

List the ip pools of a logical DHCP server with pagination support.
Request:
Method:
GET
URI Path(s):
/api/v1/dhcp/servers/<server-id>/ip-pools
Request Headers:
n/a
Query Parameters:
ListRequestParameters+
Request Body:
n/a

Example Request: GET /api/v1/dhcp/servers/d7f425da-25d2-4e5e-ae9e-ea112375971d/ip-pools Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
DhcpIpPoolListResult+

Example Response: { "cursor" : "0036073b1c6e-8591-4621-af6c-5f3dcdd4059fDHCP-ip-pool-2", "result_count" : 1, "results" : [ { "resource_type" : "DhcpIpPool", "id" : "073b1c6e-8591-4621-af6c-5f3dcdd4059f", "display_name" : "DHCP-ip-pool-2", "lease_time" : 86400, "gateway_ip" : "192.168.150.1", "allocation_ranges" : [ { "start" : "192.168.150.100", "end" : "192.168.150.200" } ], "error_threshold" : 100, "warning_threshold" : 80, "_create_time" : 1478305498175, "_create_user" : "admin", "_last_modified_user" : "admin", "_system_owned" : false, "_last_modified_time" : 1478305498175, "_revision" : 0 } ] } Required Permissions: read Feature: dhcp_servers Additional Errors:

Create an ip pool for a DHCP server (Deprecated)

Create an ip pool for a local DHCP server Request:
Method:
POST
URI Path(s):
/api/v1/dhcp/servers/<server-id>/ip-pools
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
DhcpIpPool+

Example Request: POST /api/v1/dhcp/servers/d7f425da-25d2-4e5e-ae9e-ea112375971d/ip-pools { "display_name" : "DHCP-ip-pool-2", "gateway_ip" : "192.168.150.1", "allocation_ranges" : [ { "start" : "192.168.150.100", "end" : "192.168.150.200" } ] } Successful Response:
Response Code:
201 Created
Response Headers:
Content-type: application/json
Response Body:
DhcpIpPool+

Example Response: { "resource_type" : "DhcpIpPool", "id" : "1b6cb97f-ffa3-407c-b2ed-a9616feb95dd", "display_name" : "DHCP-ip-pool-2", "lease_time" : 86400, "gateway_ip" : "192.168.150.1", "allocation_ranges" : [ { "start" : "192.168.150.100", "end" : "192.168.150.200" } ], "error_threshold" : 100, "warning_threshold" : 80, "_create_time" : 1478305919915, "_create_user" : "admin", "_last_modified_user" : "admin", "_system_owned" : false, "_last_modified_time" : 1478305919915, "_revision" : 0 } Required Permissions: crud Feature: dhcp_servers Additional Errors:

Update a DHCP server's IP pool (Deprecated)

Update a specific ip pool of a given logical DHCP server. Request:
Method:
PUT
URI Path(s):
/api/v1/dhcp/servers/<server-id>/ip-pools/<pool-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
DhcpIpPool+

Example Request: PUT /api/v1/dhcp/servers/d7f425da-25d2-4e5e-ae9e-ea112375971d/ip-pools/1b6cb97f-ffa3-407c-b2ed-a9616feb95dd { "display_name" : "DHCP-ip-pool-3", "gateway_ip" : "192.168.150.1", "allocation_ranges" : [ { "start" : "192.168.150.100", "end" : "192.168.150.200" } ], "_revision" : 0 } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
DhcpIpPool+

Example Response: { "resource_type" : "DhcpIpPool", "id" : "1b6cb97f-ffa3-407c-b2ed-a9616feb95dd", "display_name" : "DHCP-ip-pool-3", "lease_time" : 86400, "gateway_ip" : "192.168.150.1", "allocation_ranges" : [ { "start" : "192.168.150.100", "end" : "192.168.150.200" } ], "error_threshold" : 100, "warning_threshold" : 80, "_last_modified_user" : "admin", "_last_modified_time" : 1478306403854, "_revision" : 1 } Required Permissions: crud Feature: dhcp_servers Additional Errors:

Delete a DHCP server's IP pool (Deprecated)

Delete a specific ip pool of a given logical DHCP server. Request:
Method:
DELETE
URI Path(s):
/api/v1/dhcp/servers/<server-id>/ip-pools/<pool-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: DELETE /api/v1/dhcp/servers/d7f425da-25d2-4e5e-ae9e-ea112375971d/ip-pools/1b6cb97f-ffa3-407c-b2ed-a9616feb95dd Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
n/a

Required Permissions: crud Feature: dhcp_servers Additional Errors:

Get a DHCP server's IP pool with the specified pool ID (Deprecated)

Return a specific ip pool of a given logical DHCP server. Request:
Method:
GET
URI Path(s):
/api/v1/dhcp/servers/<server-id>/ip-pools/<pool-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET /api/v1/dhcp/servers/d7f425da-25d2-4e5e-ae9e-ea112375971d/ip-pools/1b6cb97f-ffa3-407c-b2ed-a9616feb95dd Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
DhcpIpPool+

Example Response: { "resource_type" : "DhcpIpPool", "id" : "1b6cb97f-ffa3-407c-b2ed-a9616feb95dd", "display_name" : "DHCP-ip-pool-2", "lease_time" : 86400, "gateway_ip" : "192.168.150.1", "allocation_ranges" : [ { "start" : "192.168.150.100", "end" : "192.168.150.200" } ], "error_threshold" : 100, "warning_threshold" : 80, "_create_time" : 1478305919915, "_create_user" : "admin", "_last_modified_user" : "admin", "_system_owned" : false, "_last_modified_time" : 1478305919915, "_revision" : 0 } Required Permissions: read Feature: dhcp_servers Additional Errors:

Get the realized state of a dhcp ip pool (Deprecated)

Return realized state information of a dhcp ip pool.
After a dhcp ip pool is created or updated, you can invoke this API to get
the realization information of the ip pool.
Request:
Method:
GET
URI Path(s):
/api/v1/dhcp/servers/<server-id>/ip-pools/<pool-id>/state
Request Headers:
n/a
Query Parameters:
RealizationStateQueryParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/dhcp/servers/f962173f-ac03-4d08-8366-56a41779f61d/ip-pools/1b6cb97f-ffa3-407c-b2ed-a9616feb95dd/state?request_id=3433a089-feff-4ede-a049-6950f201f0b5 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
ConfigurationState+

Example Response: { "details": [ { "sub_system_type": "TransportNode", "sub_system_id": "fe651e63-04bd-43a4-a8ec-45381a3b71b9", "state": "in_progress", "failure_message": "CCP Id:ab5958df-d98a-468e-a72b-d89dcdae5346, Message:State realization is in progress at the node." }, { "sub_system_type": "TransportNode", "sub_system_id": "ebe174ac-e4f1-4135-ba72-3dd2eb7099e3", "state": "in_sync" } ], "state": "in_progress", "failure_message": "The state realization is in progress at transport nodes." } Required Permissions: read Feature: dhcp_servers Additional Errors:

Create an ip pool for a DHCP IPv6 server (Deprecated)

Create an ip pool for a local DHCP IPv6 server Request:
Method:
POST
URI Path(s):
/api/v1/dhcp/servers/<server-id>/ipv6-ip-pools
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
DhcpV6IpPool+

Example Request: POST /api/v1/dhcp/servers/d7f425da-25d2-4e5e-ae9e-ea112375971d/ipv6-ip-pools { "display_name" : "dhcp-v6-ip-pool-1", "ranges" : [ { "start" : "2019::200.1.0.0", "end" : "2019::200.255.255.255" }] } Successful Response:
Response Code:
201 Created
Response Headers:
Content-type: application/json
Response Body:
DhcpV6IpPool+

Example Response: { "resource_type" : "DhcpV6IpPool", "id" : "1b6cb97f-ffa3-407c-b2ed-a9616feb95dd", "display_name" : "dhcp-v6-ip-pool-1", "ranges" : [ { "start" : "2019::200.1.0.0", "end" : "2019::200.255.255.255" }], "_create_time" : 1478305919915, "_create_user" : "admin", "_last_modified_user" : "admin", "_system_owned" : false, "_last_modified_time" : 1478305919915, "_revision" : 0 } Required Permissions: crud Feature: dhcp_servers Additional Errors:

Get a paginated list of a DHCP IPv6 server's IP pools (Deprecated)

List the ip pools of a logical DHCP IPv6 server with pagination support.
Request:
Method:
GET
URI Path(s):
/api/v1/dhcp/servers/<server-id>/ipv6-ip-pools
Request Headers:
n/a
Query Parameters:
ListRequestParameters+
Request Body:
n/a

Example Request: GET /api/v1/dhcp/servers/d7f425da-25d2-4e5e-ae9e-ea112375971d/ipv6-ip-pools Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
DhcpV6IpPoolListResult+

Example Response: { "cursor" : "0036073b1c6e-8591-4621-af6c-5f3dcdd4059fDHCP-ip-pool-2", "result_count" : 1, "results" : [ { "resource_type" : "DhcpV6IpPool", "id" : "073b1c6e-8591-4621-af6c-5f3dcdd4059f", "display_name" : "dhcp-v6-ip-pool-1", "ranges" : [ { "start" : "2019::200.1.0.0", "end" : "2019::200.255.255.255" }], "_create_time" : 1478305498175, "_create_user" : "admin", "_last_modified_user" : "admin", "_system_owned" : false, "_last_modified_time" : 1478305498175, "_revision" : 0 } ] } Required Permissions: read Feature: dhcp_servers Additional Errors:

Get a DHCP IPv6 server's IP pool with the specified pool ID (Deprecated)

Return a specific ip pool of a given logical DHCP IPv6 server. Request:
Method:
GET
URI Path(s):
/api/v1/dhcp/servers/<server-id>/ipv6-ip-pools/<pool-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET /api/v1/dhcp/servers/d7f425da-25d2-4e5e-ae9e-ea112375971d/ipv6-ip-pools/1b6cb97f-ffa3-407c-b2ed-a9616feb95dd Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
DhcpV6IpPool+

Example Response: { "resource_type" : "DhcpV6IpPool", "id" : "1b6cb97f-ffa3-407c-b2ed-a9616feb95dd", "display_name" : "dhcp-v6-ip-pool-1", "ranges" : [ { "start" : "2019::200.1.0.0", "end" : "2019::200.255.255.255" }], "_create_time" : 1478305919915, "_create_user" : "admin", "_last_modified_user" : "admin", "_system_owned" : false, "_last_modified_time" : 1478305919915, "_revision" : 0 } Required Permissions: read Feature: dhcp_servers Additional Errors:

Update a DHCP IPv6 server's IP pool (Deprecated)

Update a specific ip pool of a given logical DHCP IPv6 server. Request:
Method:
PUT
URI Path(s):
/api/v1/dhcp/servers/<server-id>/ipv6-ip-pools/<pool-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
DhcpV6IpPool+

Example Request: PUT /api/v1/dhcp/servers/d7f425da-25d2-4e5e-ae9e-ea112375971d/ip-pools/1b6cb97f-ffa3-407c-b2ed-a9616feb95dd { "display_name" : "DHCP-ip-pool-3", "ranges" : [ { "start" : "2019::200.1.0.0", "end" : "2019::200.255.255.255" }], "_revision" : 0 } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
DhcpV6IpPool+

Example Response: { "resource_type" : "DhcpIpPool", "id" : "1b6cb97f-ffa3-407c-b2ed-a9616feb95dd", "display_name" : "DHCP-ip-pool-3", "ranges" : [ { "start" : "2019::200.1.0.0", "end" : "2019::200.255.255.255" }], "_last_modified_user" : "admin", "_last_modified_time" : 1478306403854, "_revision" : 1 } Required Permissions: crud Feature: dhcp_servers Additional Errors:

Delete a DHCP IPv6 server's IP pool (Deprecated)

Delete a specific ip pool of a given logical DHCP IPv6 server. Request:
Method:
DELETE
URI Path(s):
/api/v1/dhcp/servers/<server-id>/ipv6-ip-pools/<pool-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: DELETE /api/v1/dhcp/servers/d7f425da-25d2-4e5e-ae9e-ea112375971d/ipv6-ip-pools/1b6cb97f-ffa3-407c-b2ed-a9616feb95dd Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
n/a

Required Permissions: crud Feature: dhcp_servers Additional Errors:

Get a paginated list of a DHCP IPv6 server's static bindings (Deprecated)

Return a paginated list of a static bindings of a given logical DHCP IPv6 server.
Request:
Method:
GET
URI Path(s):
/api/v1/dhcp/servers/<server-id>/ipv6-static-bindings
Request Headers:
n/a
Query Parameters:
ListRequestParameters+
Request Body:
n/a

Example Request: GET /api/v1/dhcp/servers/d7f425da-25d2-4e5e-ae9e-ea112375971d/ipv6-static-bindings Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
DhcpV6StaticBindingListResult+

Example Response: { "cursor" : "00363433a089-feff-4ede-a049-6950f201f0b512:34:56:78:9a:bc", "result_count" : 1, "results" : [ { "resource_type" : "DhcpV6StaticBinding", "id" : "3433a089-feff-4ede-a049-6950f201f0b5", "display_name" : "dhcp-v6-binding-host-1", "ip_address" : ["2019::120.110.110.1"], "mac_address" : "12:34:56:78:9a:bc", "_create_time" : 1478112071458, "_create_user" : "admin", "_last_modified_user" : "admin", "_system_owned" : false, "_last_modified_time" : 1478112071458, "_revision" : 0 } ] } Required Permissions: read Feature: dhcp_servers Additional Errors:

Create a static binding for a DHCP IPv6 server (Deprecated)

Create a static binding for a logical DHCP IPv6 server. Request:
Method:
POST
URI Path(s):
/api/v1/dhcp/servers/<server-id>/ipv6-static-bindings
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
DhcpV6StaticBinding+

Example Request: POST https://<nsx-mgr>/api/v1/dhcp/servers/d7f425da-25d2-4e5e-ae9e-ea112375971d/ipv6-static-bindings { "display_name" : "dhcp-v6-binding-host-1", "ip_address" : ["2019::120.110.110.1"], "mac_address" : "12:34:56:78:9a:bc" } Successful Response:
Response Code:
201 Created
Response Headers:
Content-type: application/json
Response Body:
DhcpV6StaticBinding+

Example Response: { "resource_type" : "DhcpV6StaticBinding", "id" : "6f866db1-1ac9-44b5-9ba0-eb87b5bd0ef8", "display_name" : "dhcp-v6-binding-host-1", "ip_address" : ["2019::120.110.110.1"], "mac_address" : "12:34:56:78:9a:bc", "_create_time" : 1478309747583, "_create_user" : "admin", "_last_modified_user" : "admin", "_system_owned" : false, "_last_modified_time" : 1478309747583, "_revision" : 0 } Required Permissions: crud Feature: dhcp_servers Additional Errors:

Update a DHCP IPv6 server's static binding (Deprecated)

Update a specific static binding of a given local DHCP IPv6 server. Request:
Method:
PUT
URI Path(s):
/api/v1/dhcp/servers/<server-id>/ipv6-static-bindings/<binding-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
DhcpV6StaticBinding+

Example Request: PUT /api/v1/dhcp/servers/d7f425da-25d2-4e5e-ae9e-ea112375971d/ipv6-static-bindings/6f866db1-1ac9-44b5-9ba0-eb87b5bd0ef8 { "ip_address" : ["2019::120.110.110.1"], "mac_address" : "12:34:56:78:9a:bc", "_revision" : 0 } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
DhcpV6StaticBinding+

Example Response: { "resource_type" : "DhcpV6StaticBinding", "id" : "6f866db1-1ac9-44b5-9ba0-eb87b5bd0ef8", "display_name" : "dhcp-v6-binding-host-1", "ip_address" : ["2019::120.110.110.1"], "mac_address" : "12:34:56:78:9a:bc", "_last_modified_user" : "admin", "_last_modified_time" : 1478310104268, "_revision" : 1 } Required Permissions: crud Feature: dhcp_servers Additional Errors:

Get a DHCP IPv6 server's static binding with the specified binding ID (Deprecated)

Return a specific static binding of a given logical DHCP IPv6 server.
Request:
Method:
GET
URI Path(s):
/api/v1/dhcp/servers/<server-id>/ipv6-static-bindings/<binding-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET /api/v1/dhcp/servers/d7f425da-25d2-4e5e-ae9e-ea112375971d/ipv6-static-bindings/6f866db1-1ac9-44b5-9ba0-eb87b5bd0ef8 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
DhcpV6StaticBinding+

Example Response: { "resource_type" : "DhcpV6StaticBinding", "id" : "6f866db1-1ac9-44b5-9ba0-eb87b5bd0ef8", "display_name" : "dhcp-v6-binding-host-1", "ip_address" : ["2019::120.110.110.1"], "mac_address" : "12:34:56:78:9a:bc", "_create_time" : 1478309747583, "_create_user" : "admin", "_last_modified_user" : "admin", "_system_owned" : false, "_last_modified_time" : 1478309747583, "_revision" : 0 } Required Permissions: read Feature: dhcp_servers Additional Errors:

Delete a static binding for DHCP IPv6 server (Deprecated)

Delete a specific static binding of a given logical DHCP IPv6 server. Request:
Method:
DELETE
URI Path(s):
/api/v1/dhcp/servers/<server-id>/ipv6-static-bindings/<binding-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: DELETE /api/v1/dhcp/servers/d7f425da-25d2-4e5e-ae9e-ea112375971d/ipv6-static-bindings/6f866db1-1ac9-44b5-9ba0-eb87b5bd0ef8 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
n/a

Required Permissions: crud Feature: dhcp_servers Additional Errors:

Delete a single DHCP lease entry specified by ip and mac.

Delete a single DHCP lease entry specified by ip and mac.

The DHCP server matches the DHCP lease with the given ip address and
the mac address. The matched lease entry will be deleted. If no lease
matches, the request is ignored.

The DHCP lease to be deleted will be removed by the system from both active
and standby node. The system will report error if the DHCP lease could not
be removed from both nodes. If the DHCP lease could not be removed on either
node, please check the DHCP server status. Once the DHCP server status is
UP, please invoke the deletion API again to ensure the lease gets deleted
from both nodes.
Request:
Method:
DELETE
URI Path(s):
/api/v1/dhcp/servers/<server-id>/leases
Request Headers:
n/a
Query Parameters:
DhcpDeleteLeaseRequestParameters+
Request Body:
n/a

Example Request: DELETE /api/v1/dhcp/servers/d7f425da-25d2-4e5e-ae9e-ea112375971d/leases?ip=192.168.100.6&mac=02:42:21:4d:bc:b7 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
n/a

Required Permissions: crud Feature: dhcp_servers Additional Errors:

Get the realized state of a dhcp server (Deprecated)

Return realized state information of a dhcp server.
After a dhcp server is created or updated, you can invoke this API to get
the realization information of the server.
Request:
Method:
GET
URI Path(s):
/api/v1/dhcp/servers/<server-id>/state
Request Headers:
n/a
Query Parameters:
RealizationStateQueryParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/dhcp/servers/f962173f-ac03-4d08-8366-56a41779f61d/state?request_id=1b6cb97f-ffa3-407c-b2ed-a9616feb95dd Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
ConfigurationState+

Example Response: { "details": [ { "sub_system_type": "TransportNode", "sub_system_id": "fe651e63-04bd-43a4-a8ec-45381a3b71b9", "state": "in_progress", "failure_message": "CCP Id:ab5958df-d98a-468e-a72b-d89dcdae5346, Message:State realization is in progress at the node." }, { "sub_system_type": "TransportNode", "sub_system_id": "ebe174ac-e4f1-4135-ba72-3dd2eb7099e3", "state": "in_sync" } ], "state": "in_progress", "failure_message": "The state realization is in progress at transport nodes." } Required Permissions: read Feature: dhcp_servers Additional Errors:

Get a paginated list of a DHCP server's static bindings (Deprecated)

Return a paginated list of a static bindings of a given logical DHCP server.
Request:
Method:
GET
URI Path(s):
/api/v1/dhcp/servers/<server-id>/static-bindings
Request Headers:
n/a
Query Parameters:
ListRequestParameters+
Request Body:
n/a

Example Request: GET /api/v1/dhcp/servers/d7f425da-25d2-4e5e-ae9e-ea112375971d/static-bindings Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
DhcpStaticBindingListResult+

Example Response: { "cursor" : "00363433a089-feff-4ede-a049-6950f201f0b512:34:56:78:9a:bc", "result_count" : 1, "results" : [ { "resource_type" : "DhcpStaticBinding", "id" : "3433a089-feff-4ede-a049-6950f201f0b5", "display_name" : "12:34:56:78:9a:bc", "lease_time" : 86400, "gateway_ip" : "192.168.150.1", "mac_address" : "12:34:56:78:9a:bc", "ip_address" : "192.168.150.201", "host_name" : "machine-1", "_create_time" : 1478112071458, "_create_user" : "admin", "_last_modified_user" : "admin", "_system_owned" : false, "_last_modified_time" : 1478112071458, "_revision" : 0 } ] } Required Permissions: read Feature: dhcp_servers Additional Errors:

Create a static binding for a DHCP server (Deprecated)

Create a static binding for a logical DHCP server. Request:
Method:
POST
URI Path(s):
/api/v1/dhcp/servers/<server-id>/static-bindings
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
DhcpStaticBinding+

Example Request: POST https://<nsx-mgr>/api/v1/dhcp/servers/d7f425da-25d2-4e5e-ae9e-ea112375971d/static-bindings { "gateway_ip" : "192.168.150.1", "mac_address" : "12:34:56:78:9a:bc", "ip_address" : "192.168.150.201", "host_name" : "machine-1" } Successful Response:
Response Code:
201 Created
Response Headers:
Content-type: application/json
Response Body:
DhcpStaticBinding+

Example Response: { "resource_type" : "DhcpStaticBinding", "id" : "6f866db1-1ac9-44b5-9ba0-eb87b5bd0ef8", "display_name" : "6f866db1-1ac9-44b5-9ba0-eb87b5bd0ef8", "lease_time" : 86400, "gateway_ip" : "192.168.150.1", "mac_address" : "12:34:56:78:9a:bc", "ip_address" : "192.168.150.201", "host_name" : "machine-1", "_create_time" : 1478309747583, "_create_user" : "admin", "_last_modified_user" : "admin", "_system_owned" : false, "_last_modified_time" : 1478309747583, "_revision" : 0 } Required Permissions: crud Feature: dhcp_servers Additional Errors:

Update a DHCP server's static binding (Deprecated)

Update a specific static binding of a given local DHCP server. Request:
Method:
PUT
URI Path(s):
/api/v1/dhcp/servers/<server-id>/static-bindings/<binding-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
DhcpStaticBinding+

Example Request: PUT /api/v1/dhcp/servers/d7f425da-25d2-4e5e-ae9e-ea112375971d/static-bindings/6f866db1-1ac9-44b5-9ba0-eb87b5bd0ef8 { "gateway_ip" : "192.168.150.1", "mac_address" : "12:34:56:78:9a:bc", "ip_address" : "192.168.150.202", "host_name" : "machine-1", "_revision" : 0 } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
DhcpStaticBinding+

Example Response: { "resource_type" : "DhcpStaticBinding", "id" : "6f866db1-1ac9-44b5-9ba0-eb87b5bd0ef8", "display_name" : "6f866db1-1ac9-44b5-9ba0-eb87b5bd0ef8", "lease_time" : 86400, "gateway_ip" : "192.168.150.1", "mac_address" : "12:34:56:78:9a:bc", "ip_address" : "192.168.150.202", "host_name" : "machine-1", "_last_modified_user" : "admin", "_last_modified_time" : 1478310104268, "_revision" : 1 } Required Permissions: crud Feature: dhcp_servers Additional Errors:

Get a DHCP server's static binding with the specified binding ID (Deprecated)

Return a specific static binding of a given logical DHCP server.
Request:
Method:
GET
URI Path(s):
/api/v1/dhcp/servers/<server-id>/static-bindings/<binding-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET /api/v1/dhcp/servers/d7f425da-25d2-4e5e-ae9e-ea112375971d/static-bindings/6f866db1-1ac9-44b5-9ba0-eb87b5bd0ef8 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
DhcpStaticBinding+

Example Response: { "resource_type" : "DhcpStaticBinding", "id" : "6f866db1-1ac9-44b5-9ba0-eb87b5bd0ef8", "display_name" : "6f866db1-1ac9-44b5-9ba0-eb87b5bd0ef8", "lease_time" : 86400, "gateway_ip" : "192.168.150.1", "mac_address" : "12:34:56:78:9a:bc", "ip_address" : "192.168.150.201", "host_name" : "machine-1", "_create_time" : 1478309747583, "_create_user" : "admin", "_last_modified_user" : "admin", "_system_owned" : false, "_last_modified_time" : 1478309747583, "_revision" : 0 } Required Permissions: read Feature: dhcp_servers Additional Errors:

Delete a static binding (Deprecated)

Delete a specific static binding of a given logical DHCP server. Request:
Method:
DELETE
URI Path(s):
/api/v1/dhcp/servers/<server-id>/static-bindings/<binding-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: DELETE /api/v1/dhcp/servers/d7f425da-25d2-4e5e-ae9e-ea112375971d/static-bindings/6f866db1-1ac9-44b5-9ba0-eb87b5bd0ef8 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
n/a

Required Permissions: crud Feature: dhcp_servers Additional Errors:

Get the realized state of a dhcp static binding (Deprecated)

Return realized state information of a dhcp static binding.
After a dhcp static binding is created or updated, you can invoke this API to get
the realization information of the static binding.
Request:
Method:
GET
URI Path(s):
/api/v1/dhcp/servers/<server-id>/static-bindings/<binding-id>/state
Request Headers:
n/a
Query Parameters:
RealizationStateQueryParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/dhcp/servers/f962173f-ac03-4d08-8366-56a41779f61d/static-bindings/6f866db1-1ac9-44b5-9ba0-eb87b5bd0ef8/state?request_id=6f866db1-1ac9-44b5-9ba0-eb87b5bd0ef8 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
ConfigurationState+

Example Response: { "details": [ { "sub_system_type": "TransportNode", "sub_system_id": "fe651e63-04bd-43a4-a8ec-45381a3b71b9", "state": "in_progress", "failure_message": "CCP Id:ab5958df-d98a-468e-a72b-d89dcdae5346, Message:State realization is in progress at the node." }, { "sub_system_type": "TransportNode", "sub_system_id": "ebe174ac-e4f1-4135-ba72-3dd2eb7099e3", "state": "in_sync" } ], "state": "in_progress", "failure_message": "The state realization is in progress at transport nodes." } Required Permissions: read Feature: dhcp_servers Additional Errors:

Get DHCP service status with given dhcp server id (Deprecated)

Returns the service status of the given dhcp server.
Request:
Method:
GET
URI Path(s):
/api/v1/dhcp/servers/<server-id>/status
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: TODO Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
DhcpServerStatus+

Required Permissions: read Feature: dhcp_servers Additional Errors:

Management Plane API: Networking: Services: DHCP Relay

Associated URIs:

Create a DHCP Relay Service (Deprecated)

Creates a dhcp relay service.
Request:
Method:
POST
URI Path(s):
/api/v1/dhcp/relays
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
DhcpRelayService+

Example Request: POST https://<nsx-mgr>/api/v1/dhcp/relays { "dhcp_relay_profile_id": "bbfa30e4-87b6-41b8-8da5-771055967da1" } Successful Response:
Response Code:
201 Created
Response Headers:
Content-type: application/json
Response Body:
DhcpRelayService+

Example Response: { "resource_type" : "DhcpRelayService", "_revision": 0, "id": "fac2f67e-a860-4a9f-842b-a3cb6e34bb73", "dhcp_relay_profile_id": "bbfa30e4-87b6-41b8-8da5-771055967da1", "_last_modified_user": "admin", "_last_modified_time": 1414704710165, "_create_time": 1414704710165, "_create_user": "admin" } Required Permissions: crud Feature: dhcp_relay_services Additional Errors:

List all DHCP Relay Services (Deprecated)

Returns information about all configured dhcp relay services.
Request:
Method:
GET
URI Path(s):
/api/v1/dhcp/relays
Request Headers:
n/a
Query Parameters:
ListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/dhcp/relays Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
DhcpRelayServiceListResult+

Example Response: { "result_count": 1, "results": [ { "resource_type" : "DhcpRelayService", "_revision": 0, "id": "fac2f67e-a860-4a9f-842b-a3cb6e34bb73", "dhcp_relay_profile_id": "bbfa30e4-87b6-41b8-8da5-771055967da1", "_last_modified_user": "admin", "_last_modified_time": 1414704710165, "_create_time": 1414704710165, "_create_user": "admin" } ] } Required Permissions: read Feature: dhcp_relay_services Additional Errors:

Update a DHCP Relay Service (Deprecated)

Modifies the specified dhcp relay service.
Request:
Method:
PUT
URI Path(s):
/api/v1/dhcp/relays/<relay-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
DhcpRelayService+

Example Request: PUT https://<nsx-mgr>/api/v1/dhcp/relays/fac2f67e-a860-4a9f-842b-a3cb6e34bb73 { "_revision": 1, "dhcp_relay_profile_id": "bbfa30e4-87b6-41b8-8da5-771055967da1" } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
DhcpRelayService+

Example Response: { "resource_type" : "DhcpRelayService", "_revision": 2, "id": "fac2f67e-a860-4a9f-842b-a3cb6e34bb73", "dhcp_relay_profile_id": "bbfa30e4-87b6-41b8-8da5-771055967da1", "_last_modified_user": "admin", "_last_modified_time": 1414705228041, "_create_time": 1414704710165, "_create_user": "admin" } Required Permissions: crud Feature: dhcp_relay_services Additional Errors:

Delete a DHCP Relay Service (Deprecated)

Deletes the specified dhcp relay service. Request:
Method:
DELETE
URI Path(s):
/api/v1/dhcp/relays/<relay-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: DELETE https://<nsx-mgr>/api/v1/dhcp/relays/fac2f67e-a860-4a9f-842b-a3cb6e34bb73 Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: dhcp_relay_services Additional Errors:

Read a DHCP Relay Service (Deprecated)

Returns the dhcp relay service information. Request:
Method:
GET
URI Path(s):
/api/v1/dhcp/relays/<relay-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/dhcp/relays/bbfa30e4-87b6-41b8-8da5-771055967da1 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
DhcpRelayService+

Example Response: { "resource_type" : "DhcpRelayService", "_revision": 0, "id": "fac2f67e-a860-4a9f-842b-a3cb6e34bb73", "dhcp_relay_profile_id": "bbfa30e4-87b6-41b8-8da5-771055967da1", "_last_modified_user": "admin", "_last_modified_time": 1414704710165, "_create_time": 1414704710165, "_create_user": "admin" } Required Permissions: read Feature: dhcp_relay_services Additional Errors:

Management Plane API: Networking: Services: DHCP Relay Profiles

Associated URIs:

List All DHCP Relay Profiles (Deprecated)

Returns information about all dhcp relay profiles.
Request:
Method:
GET
URI Path(s):
/api/v1/dhcp/relay-profiles
Request Headers:
n/a
Query Parameters:
ListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/dhcp/relay-profiles Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
DhcpRelayProfileListResult+

Example Response: { "result_count": 1, "results": [ { "resource_type": "DhcpRelayProfile", "_revision": 0, "id": "bbfa30e4-87b6-41b8-8da5-771055967da1", "display_name": "dhcp-relay-external-servers", "server_addresses": [ "10.1.1.1", "10.2.2.2", "10.3.3.3", "10.4.4.4" ], "_last_modified_user": "admin", "_last_modified_time": 1414623610509, "_create_time": 1414623610509, "_create_user": "admin" } ] } Required Permissions: read Feature: dhcp_relay_profile Additional Errors:

Create a DHCP Relay Profile (Deprecated)

Creates a dhcp relay profile.
Request:
Method:
POST
URI Path(s):
/api/v1/dhcp/relay-profiles
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
DhcpRelayProfile+

Example Request: POST https://<nsx-mgr>/api/v1/dhcp/relay-profiles { "server_addresses" : [ "10.1.1.1", "10.2.2.2", "10.3.3.3", "10.4.4.4" ], "display_name" : "dhcp-relay-external-servers", } Successful Response:
Response Code:
201 Created
Response Headers:
Content-type: application/json
Response Body:
DhcpRelayProfile+

Example Response: { "resource_type": "DhcpRelayProfile", "_revision": 0, "id": "bbfa30e4-87b6-41b8-8da5-771055967da1", "display_name": "dhcp-relay-external-servers", "server_addresses": [ "10.1.1.1", "10.2.2.2", "10.3.3.3", "10.4.4.4" ], "_last_modified_user": "admin", "_last_modified_time": 1414623610509, "_create_time": 1414623610509, "_create_user": "admin" } Required Permissions: crud Feature: dhcp_relay_profile Additional Errors:

Update a DHCP Relay Profile (Deprecated)

Modifies the specified dhcp relay profile.
Request:
Method:
PUT
URI Path(s):
/api/v1/dhcp/relay-profiles/<relay-profile-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
DhcpRelayProfile+

Example Request: PUT https://<nsx-mgr>/api/v1/dhcp/relay-profiles/bbfa30e4-87b6-41b8-8da5-771055967da1 { "_revision": 1, "display_name": "dhcp-relay-servers", "server_addresses": [ "10.10.1.1", "10.20.2.2", "10.30.3.3", "10.40.4.4" ] } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
DhcpRelayProfile+

Example Response: { "resource_type": "DhcpRelayProfile", "_revision": 2, "id": "bbfa30e4-87b6-41b8-8da5-771055967da1", "display_name": "dhcp-relay-servers", "server_addresses": [ "10.10.1.1", "10.20.2.2", "10.30.3.3", "10.40.4.4" ], "_last_modified_user": "admin", "_last_modified_time": 1414624153541, "_create_time": 1414623610509, "_create_user": "admin" } Required Permissions: crud Feature: dhcp_relay_profile Additional Errors:

Delete a DHCP Relay Profile (Deprecated)

Deletes the specified dhcp relay profile. Request:
Method:
DELETE
URI Path(s):
/api/v1/dhcp/relay-profiles/<relay-profile-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: DELETE https://<nsx-mgr>/api/v1/dhcp/relay-profiles/bbfa30e4-87b6-41b8-8da5-771055967da1 Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: dhcp_relay_profile Additional Errors:

Read a DHCP Relay Profile (Deprecated)

Returns information about the specified dhcp relay profile. Request:
Method:
GET
URI Path(s):
/api/v1/dhcp/relay-profiles/<relay-profile-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/dhcp/relay-profiles/bbfa30e4-87b6-41b8-8da5-771055967da1 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
DhcpRelayProfile+

Example Response: { "resource_type": "DhcpRelayProfile", "_revision": 0, "id": "bbfa30e4-87b6-41b8-8da5-771055967da1", "display_name": "dhcp-relay-external-servers", "server_addresses": [ "10.1.1.1", "10.2.2.2", "10.3.3.3", "10.4.4.4" ], "_last_modified_user": "admin", "_last_modified_time": 1414623610509, "_create_time": 1414623610509, "_create_user": "admin" } Required Permissions: read Feature: dhcp_relay_profile Additional Errors:

Management Plane API: Networking: Services: DNS

Associated URIs:

Create a DNS forwader (Deprecated)

Create a DNS forwader upon a logical router. There is only
one DNS forwarder can be created upon a given logical router.
Request:
Method:
POST
URI Path(s):
/api/v1/dns/forwarders
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
DnsForwarder+

Example Request: POST https://<nsx-mgr>/api/v1/dns/forwarders { "display_name": "tenant_A_dns_forwarder", "logical_router_id": "e2fa39aa-f4ca-4781-ac48-60a6c47d34f8", "cache_size": 1024, "listener_ip": "10.10.10.10", "default_forwarder": { "upstream_servers": [ "1.1.1.1", "2.2.2.2", "3.3.3.3" ], "source_ip": "10.10.10.11" }, "conditional_forwarders": [ { "domain_names": [ "foo.com", "0.0.130.in-addr.arpa" ], "upstream_servers": [ "8.8.8.8" ], "source_ip": "10.10.10.12" },{ "domain_names": [ "dev.foo.com" ], "upstream_servers": [ "9.9.9.9" ], "source_ip": "10.10.10.101" },{ "domain_names": [ "bar.com", "0.70.in-addr.arpa" ], "upstream_servers": [ "55.55.55.5" ], "source_ip": "10.10.10.13" } ], "log_level": "INFO" } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
DnsForwarder+

Example Response: { "resource_type" : "DnsFowarder", "id" : "1b6cb97f-ffa3-407c-b2ed-a9616feb95dd", "display_name": "tenant_A_dns_forwarder", "logical_router_id": "e2fa39aa-f4ca-4781-ac48-60a6c47d34f8", "cache_size": 1024, "listener_ip": "10.10.10.10", "default_forwarder": { "upstream_servers": [ "1.1.1.1", "2.2.2.2", "3.3.3.3" ], "source_ip": "10.10.10.11" }, "conditional_forwarders": [ { "domain_names": [ "foo.com", "0.0.130.in-addr.arpa" ], "upstream_servers": [ "8.8.8.8" ], "source_ip": "10.10.10.12" },{ "domain_names": [ "dev.foo.com" ], "upstream_servers": [ "9.9.9.9" ], "source_ip": "10.10.10.101" },{ "domain_names": [ "bar.com", "0.0.70.in-addr.arpa" ], "upstream_servers": [ "55.55.55.5" ], "source_ip": "10.10.10.13" } ], "log_level": "INFO", "_create_user" : "admin", "_last_modified_user" : "admin", "_create_time" : 1478305498175, "_last_modified_time" : 1478305498175, "_system_owned" : false, "_revision" : 0 } Required Permissions: crud Feature: dns_forwarder Additional Errors:

Get a paginated list of DNS forwarders (Deprecated)

Get a paginated list of DNS forwarders.
Request:
Method:
GET
URI Path(s):
/api/v1/dns/forwarders
Request Headers:
n/a
Query Parameters:
ListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/dns/forwarders Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
DnsForwarderListResult+

Example Response: { "sort_ascending": true, "sort_by": "displayName", "result_count": 2, "results": [ { "resource_type": "DnsFowarder", "id" : "1b6cb97f-ffa3-407c-b2ed-a9616feb95dd", "display_name": "tenant_A_dns_forwarder", "logical_router_id": "e2fa39aa-f4ca-4781-ac48-60a6c47d34f8", "cache_size": 1024, "listener_ip": "10.10.10.10", "default_forwarder": { "upstream_servers": [ "1.1.1.1" ], "source_ip": "10.10.10.11" }, "conditional_forwarders": [ { "domain_names": [ "foo.com" ], "upstream_servers": [ "8.8.8.8" ], "source_ip": "10.10.10.12" },{ "domain_names": [ "dev.foo.com" ], "upstream_servers": [ "9.9.9.9" ], "source_ip": "10.10.10.101" },{ "domain_names": [ "bar.com" ], "upstream_servers": [ "55.55.55.5" ], "source_ip": "10.10.10.13" } ], "log_level": "INFO", "_create_user" : "admin", "_last_modified_user" : "admin", "_create_time" : 1478305498175, "_last_modified_time" : 1478305499183, "_system_owned" : false, "_revision" : 1 }, { "resource_type": "DnsFowarder", "id" : "facbc7e8-2a1b-44f0-a013-6791d840277a", "display_name": "tenant_B_dns_forwarder", "logical_router_id": "5079b683-9c7e-4d56-a7d4-8bdb846dee8f", "cache_size": 24, "listener_ip": "192.168.10.2", "default_forwarder": { "upstream_servers": [ "1.1.1.1" ], "source_ip": "10.117.7.10" }, "conditional_forwarders": [ { "domain_names": [ "abc.com" ], "upstream_servers": [ "8.8.8.8" ], "source_ip": "10.117.7.11" } ], "log_level": "INFO", "_create_user" : "admin", "_last_modified_user" : "admin", "_create_time" : 1478305490071, "_last_modified_time" : 1478305490071, "_system_owned" : false, "_revision" : 0 } ] } Required Permissions: read Feature: dns_forwarder Additional Errors:

Delete a specific DNS forwarder (Deprecated)

Delete a specific DNS forwarder.
Request:
Method:
DELETE
URI Path(s):
/api/v1/dns/forwarders/<forwarder-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: DELETE https://<nsx-mgr>/api/v1/dns/forwarders/1b6cb97f-ffa3-407c-b2ed-a9616feb95dd Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: dns_forwarder Additional Errors:

Retrieve a DNS forwarder (Deprecated)

Retrieve a DNS forwarder.
Request:
Method:
GET
URI Path(s):
/api/v1/dns/forwarders/<forwarder-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/dns/forwarders/1b6cb97f-ffa3-407c-b2ed-a9616feb95dd Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
DnsForwarder+

Example Response: { "resource_type" : "DnsFowarder", "id" : "1b6cb97f-ffa3-407c-b2ed-a9616feb95dd", "display_name": "tenant_A_dns_forwarder", "logical_router_id": "e2fa39aa-f4ca-4781-ac48-60a6c47d34f8", "cache_size": 1024, "listener_ip": "10.10.10.10", "default_forwarder": { "upstream_servers": [ "1.1.1.1", "2.2.2.2", "3.3.3.3" ], "source_ip": "10.10.10.11" }, "conditional_forwarders": [ { "domain_names": [ "foo.com", "0.0.30.in-addr.arpa" ], "upstream_servers": [ "8.8.8.8" ], "source_ip": "10.10.10.12" },{ "domain_names": [ "dev.foo.com" ], "upstream_servers": [ "9.9.9.9" ], "source_ip": "10.10.10.101" },{ "domain_names": [ "bar.com" ], "upstream_servers": [ "55.55.55.5" ], "source_ip": "10.10.10.13" } ], "log_level": "INFO", "_create_user" : "admin", "_last_modified_user" : "admin", "_create_time" : 1478305498175, "_last_modified_time" : 1478305498175, "_system_owned" : false, "_revision" : 0 } Required Permissions: read Feature: dns_forwarder Additional Errors:

Update a specific DNS forwarder (Deprecated)

Update a specific DNS forwarder.
Request:
Method:
PUT
URI Path(s):
/api/v1/dns/forwarders/<forwarder-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
DnsForwarder+

Example Request: PUT https://<nsx-mgr>/api/v1/dns/forwarders/1b6cb97f-ffa3-407c-b2ed-a9616feb95dd { "display_name": "tenant_A_dns_forwarder", "logical_router_id": "e2fa39aa-f4ca-4781-ac48-60a6c47d34f8", "cache_size": 1024, "listener_ip": "10.10.10.10", "default_forwarder": { "upstream_servers": [ "1.1.1.1", "2.2.2.2", "3.3.3.3" ], "source_ip": "10.10.10.11" }, "conditional_forwarders": [ { "domain_names": [ "foo.com" ], "upstream_servers": [ "8.8.8.8" ], "source_ip": "10.10.10.12" },{ "domain_names": [ "dev.foo.com" ], "upstream_servers": [ "9.9.9.9" ], "source_ip": "10.10.10.101" },{ "domain_names": [ "bar.com" ], "upstream_servers": [ "55.55.55.5" ], "source_ip": "10.10.10.13" } ], "log_level": "INFO", "_revision" : 1 } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
DnsForwarder+

Example Response: { "resource_type" : "DnsFowarder", "id" : "1b6cb97f-ffa3-407c-b2ed-a9616feb95dd", "display_name": "tenant_A_dns_forwarder", "logical_router_id": "e2fa39aa-f4ca-4781-ac48-60a6c47d34f8", "cache_size": 1024, "listener_ip": "10.10.10.10", "default_forwarder": { "upstream_servers": [ "1.1.1.1", "2.2.2.2", "3.3.3.3" ], "source_ip": "10.10.10.11" }, "conditional_forwarders": [ { "domain_names": [ "foo.com" ], "upstream_servers": [ "8.8.8.8" ], "source_ip": "10.10.10.12" },{ "domain_names": [ "dev.foo.com" ], "upstream_servers": [ "9.9.9.9" ], "source_ip": "10.10.10.101" },{ "domain_names": [ "bar.com" ], "upstream_servers": [ "55.55.55.5" ], "source_ip": "10.10.10.13" } ], "log_level":"INFO", "_create_user" : "admin", "_last_modified_user" : "admin", "_create_time" : 1478305498175, "_last_modified_time" : 1478305499183, "_system_owned" : false, "_revision" : 2 } Required Permissions: crud Feature: dns_forwarder Additional Errors:

Get the recent failed DNS queries

Return the given count of recent failed DNS queries from DNS forwarder.
Since the DNS forwarder is running in Acitve/Standby HA mode on transport
nodes, the given count of queries will be returned from each nodes. Hence
the total queries returned could be doubled.
If no count is specified, 100 recent failed queries are returned. If the
recent failures is less than the given count, all the failures will be
returned. The maximum count is 1,000.
Request:
Method:
GET
URI Path(s):
/api/v1/dns/forwarders/<forwarder-id>/failed-queries
Request Headers:
n/a
Query Parameters:
DnsFailedQueryRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/dns/forwarders/f962173f-ac03-4d08-8366-56a41779f61d/failed-queries?count=10 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
DnsFailedQueries+

Example Response: { "timestamp" : "2019-02-12 09:08:12.120", "per_node_failed_queries" : [ { "count" : 2, "node_id" : "aedc2af2-4c5c-11e9-aa7d-0200400d53ef", "timestamp" : "2019-02-12 09:09:12.120", "results" : [ { "timestamp": "2019-02-11 18:20:20.026", "address" : "dev.vmware.com", "record_type" : "A", "query_target" : "DnsForwarder", "client_ip": "192.168.7.10", "forwarder_ip": "172.128.10.10", "source_ip": "192.168.7.10", "upstream_server_ip": "11.11.11.1", "time_spent": 120, "error_type": "NXDOMAIN", "error_message" : "NXDOMAIN" }, { "timestamp": "2019-02-11 08:21:28.200", "address" : "abc.vmware.com", "record_type" : "A", "query_target" : "Upstream Server", "client_ip": "11.11.11.11", "forwarder_ip": "172.128.11.77", "source_ip": "11.11.11.11", "upstream_server_ip": "8.8.8.8", "time_spent": 60008, "error_type": "timeout", "error_message" : "connection timeout" }] }, { "count" : 2, "node_id" : "c73e587c-4c5c-11e9-87cb-0200407787ca", "timestamp" : "2019-02-12 09:10:12.120", "results" : [ { "timestamp": "2019-02-11 18:20:20.026", "address" : "host1.vmc.vmware.com", "record_type" : "A", "query_target" : "DnsForwarder", "client_ip": "117.168.10.22", "forwarder_ip": "172.128.50.11", "source_ip": "192.168.7.10", "upstream_server_ip": "11.11.11.1", "time_spent": 1100, "error_type": "NXDOMAIN", "error_message" : "NXDOMAIN" }, { "timestamp": "2019-02-11 08:21:28.200", "address" : "host1.wix.vmware.com", "record_type" : "A", "query_target" : "Upstream Server", "client_ip": "22.22.22.22", "forwarder_ip": "172.128.5.8", "source_ip": "11.11.11.10", "upstream_server_ip": "9.9.9.9", "time_spent": 51002, "error_type": "timeout", "error_message" : "connection timeout" }] }] } Required Permissions: read Feature: dns_forwarder Additional Errors:

Resolve a given address via the DNS forwarder (Deprecated)

Query the nameserver for an ip-address or a FQDN of the given an address optionally using
an specified DNS server. If the address is a fqdn, nslookup will resolve ip-address with it.
If the address is an ip-address, do a reverse lookup and answer fqdn(s).
Request:
Method:
GET
URI Path(s):
/api/v1/dns/forwarders/<forwarder-id>/nslookup
Request Headers:
n/a
Query Parameters:
NsLookupParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/dns/forwarders/1b6cb97f-ffa3-407c-b2ed-a9616feb95dd/nslookup?address=vmware.com Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
DnsAnswer+

Example Response: { "dns_server" : "10.117.0.1#53", "edge_node_id" : "e2fa39aa-f4ca-4781-ac48-60a6c47d34e0", "authoritative_answer" : [ { "name": "vmware.com" "address": "10.113.63.149" } ] } Required Permissions: read Feature: dns_forwarder Additional Errors:

Get the realized state of a DNS forwarder (Deprecated)

Return the realized state information of a DNS forwarder.
After a DNS forwarder was created or updated, you can invoke this API to
check the realization state of the forwarder.
Request:
Method:
GET
URI Path(s):
/api/v1/dns/forwarders/<forwarder-id>/state
Request Headers:
n/a
Query Parameters:
RealizationStateQueryParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/dns/forwarders/f962173f-ac03-4d08-8366-56a41779f61d/state?request_id=1b6cb97f-ffa3-407c-b2ed-a9616feb95dd Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
ConfigurationState+

Example Response: { "details": [ { "sub_system_type": "TransportNode", "sub_system_id": "fe651e63-04bd-43a4-a8ec-45381a3b71b9", "state": "in_progress", "failure_message": "CCP Id:ab5958df-d98a-468e-a72b-d89dcdae5346, Message:State realization is in progress at the node." }, { "sub_system_type": "TransportNode", "sub_system_id": "ebe174ac-e4f1-4135-ba72-3dd2eb7099e3", "state": "in_sync" } ], "state": "in_progress", "failure_message": "The state realization is in progress at transport nodes." } Required Permissions: read Feature: dns_forwarder Additional Errors:

Get current status of the given DNS forwarder (Deprecated)

Returns the current status of the given DNS forwarder.
Request:
Method:
GET
URI Path(s):
/api/v1/dns/forwarders/<forwarder-id>/status
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: TODO Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
DnsForwarderStatus+

Required Permissions: read Feature: aggregation_service_health_monitoring Additional Errors:

Clear the current cache of the DNS forwarder. (Deprecated)

Clear the current cache of the DNS forwarder.
Request:
Method:
POST
URI Path(s):
/api/v1/dns/forwarders/<forwarder-id>?action=clear_cache
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: POST https://<nsx-mgr>/api/v1/dns/forwarders/1b6cb97f-ffa3-407c-b2ed-a9616feb95dd?action=clear_cache Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: dns_forwarder Additional Errors:

Disable the DNS forwarder.

Disable the DNS forwarder if the forwarder is currently enbled. If the DNS
forwarder is already disabled, the forwarder will not be re-disabled.

Please note, once a DNS forwarder is disabled then enabled, the previous
DNS forwarder statistics counters will be reset.
Request:
Method:
POST
URI Path(s):
/api/v1/dns/forwarders/<forwarder-id>?action=disable
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: POST https://<nsx-mgr>/api/v1/dns/forwarders/1b6cb97f-ffa3-407c-b2ed-a9616feb95dd?action=disable Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: dns_forwarder Additional Errors:

Enable the DNS forwarder.

Enable the DNS forwarder if the forwarder is currently disabled. If the
DNS forwarder is already enabled, the forwarder will not be re-enabled.

Please note, once a DNS forwarder is disabled then enabled, the previous
DNS forwarder statistics counters will be reset.
Request:
Method:
POST
URI Path(s):
/api/v1/dns/forwarders/<forwarder-id>?action=enable
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: POST https://<nsx-mgr>/api/v1/dns/forwarders/1b6cb97f-ffa3-407c-b2ed-a9616feb95dd?action=enable Successful Response:
Response Code:
200 OK
Response Headers:
n/a
Response Body:
n/a

Required Permissions: crud Feature: dns_forwarder Additional Errors:

Management Plane API: Networking: Services: Loadbalancer

Associated URIs:

Retrieve a paginated list of load balancer application profiles (Deprecated)

Retrieve a paginated list of load balancer application profiles.
Request:
Method:
GET
URI Path(s):
/api/v1/loadbalancer/application-profiles
Request Headers:
n/a
Query Parameters:
LbAppProfileListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/loadbalancer/application-profiles Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LbAppProfileListResult+

Example Response: { "result_count" : 4, "results" : [ { "resource_type" : "LbHttpProfile", "description" : "LB_HTTP_Application_Profile", "id" : "1cab1491-a058-48fd-ac55-ea412adb3283", "display_name" : "LB_HTTP_Application_Profile", "ntlm" : false, "request_header_size" : 1024, "http_redirect_to_https" : false, "idle_timeout" : 15, "_create_time" : 1515741466296, "_last_modified_user" : "admin", "_last_modified_time" : 1515741466296, "_system_owned" : false, "_create_user" : "admin", "_protection" : "NOT_PROTECTED", "_revision" : 0 }, { "resource_type" : "LbFastTcpProfile", "id" : "6f99b4d7-8b85-53db-956a-4b5255daf032", "display_name" : "nsx-default-lb-fast-tcp-profile", "close_timeout" : 8, "ha_flow_mirroring_enabled" : false, "idle_timeout" : 1800, "_create_time" : 1515651381528, "_last_modified_user" : "system", "_last_modified_time" : 1515651381528, "_system_owned" : true, "_create_user" : "system", "_protection" : "NOT_PROTECTED", "_revision" : 0 }, { "resource_type" : "LbFastUdpProfile", "id" : "0564104e-d0ba-5b9a-9ca0-865cbc5feeb3", "display_name" : "nsx-default-lb-fast-udp-profile", "flow_mirroring_enabled" : false, "idle_timeout" : 300, "_create_time" : 1515651381538, "_last_modified_user" : "system", "_last_modified_time" : 1515651381538, "_system_owned" : true, "_create_user" : "system", "_protection" : "NOT_PROTECTED", "_revision" : 0 }, { "resource_type" : "LbHttpProfile", "id" : "cb2d0721-cc15-5b8e-8633-14be114eac5e", "display_name" : "nsx-default-lb-http-profile", "ntlm" : false, "request_header_size" : 1024, "http_redirect_to_https" : false, "idle_timeout" : 15, "_create_time" : 1515651381507, "_last_modified_user" : "system", "_last_modified_time" : 1515651381507, "_system_owned" : true, "_create_user" : "system", "_protection" : "NOT_PROTECTED", "_revision" : 0 } ] } Required Permissions: read Feature: lb_application_profiles Additional Errors:

Create a load balancer application profile (Deprecated)

Create a load balancer application profile.
Request:
Method:
POST
URI Path(s):
/api/v1/loadbalancer/application-profiles
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
LbFastTcpProfile+
LbFastUdpProfile+
LbHttpProfile+

Example Request: POST https://<nsx-mgr>/api/v1/loadbalancer/application-profiles { "display_name":"LB_HTTP_Application_Profile", "description":"LB_HTTP_Application_Profile", "resource_type":"LbHttpProfile" } Successful Response:
Response Code:
201 Created
Response Headers:
Content-type: application/json
Response Body:
LbFastTcpProfile+
LbFastUdpProfile+
LbHttpProfile+

Example Response: { "resource_type" : "LbHttpProfile", "description" : "LB_HTTP_Application_Profile", "id" : "1cab1491-a058-48fd-ac55-ea412adb3283", "display_name" : "LB_HTTP_Application_Profile", "ntlm" : false, "request_header_size" : 1024, "http_redirect_to_https" : false, "idle_timeout" : 15, "_create_time" : 1515741466296, "_last_modified_user" : "admin", "_last_modified_time" : 1515741466296, "_system_owned" : false, "_create_user" : "admin", "_protection" : "NOT_PROTECTED", "_revision" : 0 } Required Permissions: crud Feature: lb_application_profiles Additional Errors:

Delete a load balancer application profile (Deprecated)

Delete a load balancer application profile.
Request:
Method:
DELETE
URI Path(s):
/api/v1/loadbalancer/application-profiles/<application-profile-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: DELETE https://<nsx-mgr>/api/v1/loadbalancer/application-profiles/1cab1491-a058-48fd-ac55-ea412adb3283 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
n/a

Required Permissions: crud Feature: lb_application_profiles Additional Errors:

Update a load balancer application profile (Deprecated)

Update a load balancer application profile.
Request:
Method:
PUT
URI Path(s):
/api/v1/loadbalancer/application-profiles/<application-profile-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
LbFastTcpProfile+
LbFastUdpProfile+
LbHttpProfile+

Example Request: PUT https://<nsx-mgr>/api/v1/loadbalancer/application-profiles/1cab1491-a058-48fd-ac55-ea412adb3283 { "resource_type" : "LbHttpProfile", "description" : "LB_HTTP_Application_Profile", "id" : "1cab1491-a058-48fd-ac55-ea412adb3283", "display_name" : "LB_HTTP_Application_Profile", "ntlm" : false, "request_header_size" : 1024, "http_redirect_to_https" : false, "idle_timeout" : 30, "_create_time" : 1515741466296, "_last_modified_user" : "admin", "_last_modified_time" : 1515741466296, "_system_owned" : false, "_create_user" : "admin", "_protection" : "NOT_PROTECTED", "_revision" : 0 } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LbFastTcpProfile+
LbFastUdpProfile+
LbHttpProfile+

Required Permissions: crud Feature: lb_application_profiles Additional Errors:

Retrieve a load balancer application profile (Deprecated)

Retrieve a load balancer application profile.
Request:
Method:
GET
URI Path(s):
/api/v1/loadbalancer/application-profiles/<application-profile-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/loadbalancer/application-profiles/1cab1491-a058-48fd-ac55-ea412adb3283 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LbFastTcpProfile+
LbFastUdpProfile+
LbHttpProfile+

Example Response: { "resource_type" : "LbHttpProfile", "description" : "LB_HTTP_Application_Profile", "id" : "1cab1491-a058-48fd-ac55-ea412adb3283", "display_name" : "LB_HTTP_Application_Profile", "ntlm" : false, "request_header_size" : 1024, "http_redirect_to_https" : false, "idle_timeout" : 15, "_create_time" : 1515741466296, "_last_modified_user" : "admin", "_last_modified_time" : 1515741466296, "_system_owned" : false, "_create_user" : "admin", "_protection" : "NOT_PROTECTED", "_revision" : 0 } Required Permissions: read Feature: lb_application_profiles Additional Errors:

Create a load balancer client-ssl profile (Deprecated)

Create a load balancer client-ssl profile.
Request:
Method:
POST
URI Path(s):
/api/v1/loadbalancer/client-ssl-profiles
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
LbClientSslProfile+

Example Request: POST https://<nsx-mgr>/api/v1/loadbalancer/client-ssl-profiles { "resource_type" : "LbClientSslProfile", "display_name" : "client-ssl-profile1", "prefer_server_ciphers" : false, "ciphers" : [ "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256" ], "protocols" : [ "TLS_V1_2" ] } Successful Response:
Response Code:
201 Created
Response Headers:
Content-type: application/json
Response Body:
LbClientSslProfile+

Required Permissions: crud Feature: lb_ssl_profiles Additional Errors:

Retrieve a paginated list of load balancer client-ssl profiles (Deprecated)

Retrieve a paginated list of load balancer client-ssl profiles.
Request:
Method:
GET
URI Path(s):
/api/v1/loadbalancer/client-ssl-profiles
Request Headers:
n/a
Query Parameters:
ListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/loadbalancer/client-ssl-profiles Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LbClientSslProfileListResult+

Example Response: { "result_count" : 2, "results" : [ { "resource_type" : "LbClientSslProfile", "id" : "0bf84c53-6b60-48e6-8837-5a106841cfb6", "display_name" : "client-ssl-profile1", "prefer_server_ciphers" : false, "ciphers" : [ "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256" ], "is_secure" : true, "protocols" : [ "TLS_V1_2" ], "session_cache_enabled" : true, "session_cache_timeout" : 300, "_create_time" : 1515743444200, "_last_modified_user" : "admin", "_last_modified_time" : 1515743444200, "_system_owned" : false, "_create_user" : "admin", "_protection" : "NOT_PROTECTED", "_revision" : 0 }, { "resource_type" : "LbClientSslProfile", "id" : "aff205bb-4db8-5a72-8d67-218cdc54d27b", "display_name" : "nsx-default-client-ssl-profile", "prefer_server_ciphers" : false, "ciphers" : [ "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA", "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA", "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA", "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA", "TLS_RSA_WITH_AES_256_CBC_SHA", "TLS_RSA_WITH_AES_128_CBC_SHA", "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA", "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256", "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384", "TLS_RSA_WITH_AES_128_CBC_SHA256", "TLS_RSA_WITH_AES_128_GCM_SHA256", "TLS_RSA_WITH_AES_256_CBC_SHA256", "TLS_RSA_WITH_AES_256_GCM_SHA384", "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA", "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256", "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384", "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA", "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256", "TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256", "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384", "TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384", "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA", "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256", "TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256", "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384", "TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384" ], "is_secure" : true, "protocols" : [ "TLS_V1_1", "TLS_V1_2" ], "session_cache_enabled" : true, "session_cache_timeout" : 300, "_create_time" : 1515651381591, "_last_modified_user" : "system", "_last_modified_time" : 1515651381591, "_system_owned" : true, "_create_user" : "system", "_protection" : "NOT_PROTECTED", "_revision" : 0 } ] } Required Permissions: read Feature: lb_ssl_profiles Additional Errors:

Delete a load balancer client-ssl profile (Deprecated)

Delete a load balancer client-ssl profile.
Request:
Method:
DELETE
URI Path(s):
/api/v1/loadbalancer/client-ssl-profiles/<client-ssl-profile-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: DELETE https://<nsx-mgr>/api/v1/loadbalancer/client-ssl-profiles/0bf84c53-6b60-48e6-8837-5a106841cfb6 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
n/a

Required Permissions: crud Feature: lb_ssl_profiles Additional Errors:

Retrieve a load balancer client-ssl profile (Deprecated)

Retrieve a load balancer client-ssl profile.
Request:
Method:
GET
URI Path(s):
/api/v1/loadbalancer/client-ssl-profiles/<client-ssl-profile-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/loadbalancer/client-ssl-profiles/0bf84c53-6b60-48e6-8837-5a106841cfb6 Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LbClientSslProfile+

Example Response: { "resource_type" : "LbClientSslProfile", "id" : "0bf84c53-6b60-48e6-8837-5a106841cfb6", "display_name" : "client-ssl-profile1", "prefer_server_ciphers" : false, "ciphers" : [ "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256" ], "is_secure" : true, "protocols" : [ "TLS_V1_2" ], "session_cache_enabled" : true, "session_cache_timeout" : 300, "_create_time" : 1515743444200, "_last_modified_user" : "admin", "_last_modified_time" : 1515743444200, "_system_owned" : false, "_create_user" : "admin", "_protection" : "NOT_PROTECTED", "_revision" : 0 } Required Permissions: read Feature: lb_ssl_profiles Additional Errors:

Update a load balancer client-ssl profile (Deprecated)

Update a load balancer client-ssl profile.
Request:
Method:
PUT
URI Path(s):
/api/v1/loadbalancer/client-ssl-profiles/<client-ssl-profile-id>
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
LbClientSslProfile+

Example Request: PUT https://<nsx-mgr>/api/v1/loadbalancer/client-ssl-profiles/0bf84c53-6b60-48e6-8837-5a106841cfb6 { "resource_type" : "LbClientSslProfile", "id" : "0bf84c53-6b60-48e6-8837-5a106841cfb6", "display_name" : "client-ssl-profile1", "prefer_server_ciphers" : false, "ciphers" : [ "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384" ], "is_secure" : true, "protocols" : [ "TLS_V1_2" ], "session_cache_enabled" : true, "session_cache_timeout" : 300, "_create_time" : 1515743444200, "_last_modified_user" : "admin", "_last_modified_time" : 1515743444200, "_system_owned" : false, "_create_user" : "admin", "_protection" : "NOT_PROTECTED", "_revision" : 0 } Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LbClientSslProfile+

Example Response: { "resource_type" : "LbClientSslProfile", "id" : "0bf84c53-6b60-48e6-8837-5a106841cfb6", "display_name" : "client-ssl-profile1", "prefer_server_ciphers" : false, "ciphers" : [ "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384" ], "is_secure" : true, "protocols" : [ "TLS_V1_2" ], "session_cache_enabled" : true, "session_cache_timeout" : 300, "_create_time" : 1515743444200, "_last_modified_user" : "admin", "_last_modified_time" : 1515744251536, "_system_owned" : false, "_create_user" : "admin", "_protection" : "NOT_PROTECTED", "_revision" : 1 } Required Permissions: crud Feature: lb_ssl_profiles Additional Errors:

Retrieve a paginated list of load balancer monitors (Deprecated)

Retrieve a paginated list of load balancer monitors.
Request:
Method:
GET
URI Path(s):
/api/v1/loadbalancer/monitors
Request Headers:
n/a
Query Parameters:
LbMonitorListRequestParameters+
Request Body:
n/a

Example Request: GET https://<nsx-mgr>/api/v1/loadbalancer/monitors Successful Response:
Response Code:
200 OK
Response Headers:
Content-type: application/json
Response Body:
LbMonitorListResult+

Example Response: { "result_count": 6, "results": [ { "resource_type" : "LbHttpMonitor", "description" : "LB_Http_Monitor", "id" : "ab1c038f-565a-4870-a61c-b731f99f0bb4", "display_name" : "LB_Http_Monitor", "monitor_port" : "80", "interval" : 1, "timeout" : 1, "rise_count" : 1, "fall_count" : 1, "response_status_codes" : [ 200 ], "request_version" : "HTTP_VERSION_1_1", "request_method" : "GET", "request_url" : "/", "_create_time" : 1515737352635, "_last_modified_user" : "admin", "_last_modified_time" : 1515737352635, "_system_owned" : false, "_create_user" : "admin", "_protection" : "NOT_PROTECTED", "_revision" : 0 }, { "resource_type": "LbHttpMonitor", "id": "c2cb7f9e-72d7-55ed-914e-5209b67d02b2", "display_name": "nsx-default-http-monitor", "monitor_port": "80", "interval": 5, "timeout": 15, "rise_count": 3, "fall_count": 3, "response_status_codes": [ 200 ], "request_version": "HTTP_VERSION_1_1", "request_method": "GET", "request_url": "/", "_create_user": "system", "_create_time": 1509389584229, "_last_modified_user": "system", "_last_modified_time": 1509389584229, "_system_owned": true, "_protection": "NOT_PROTECTED", "_revision": 0 }, { "resource_type": "LbHttpsMonitor", "id": "72945dda-f4f1-532f-9bd0-a3f52c099d4b", "display_name": "nsx-default-https-monitor", "monitor_port": "443", "interval": 5, "timeout": 15, "rise_count": 3, "fall_count": 3, "response_status_codes": [ 200 ], "server_auth": "IGNORE", "is_secure": true, "request_method": "GET", "request_url": "/", "request_version": "HTTP_VERSION_1_1", "ciphers": [ "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA", "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA", "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA", "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA", "TLS_RSA_WITH_AES_256_CBC_SHA", "TLS_RSA_WITH_AES_128_CBC_SHA", "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA", "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256", "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384", "TLS_RSA_WITH_AES_128_CBC_SHA256", "TLS_RSA_WITH_AES_128_GCM_SHA256", "TLS_RSA_WITH_AES_256_CBC_SHA256", "TLS_RSA_WITH_AES_256_GCM_SHA384", "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA", "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256", "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384", "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA", "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256", "TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256", "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384", "TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384", "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA", "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256", "TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256", "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384", "TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384" ], "certificate_chain_depth": 3, "protocols": [ "TLS_V1_1", "TLS_V1_2" ], "_create_user": "system", "_create_time": 1509389584246, "_last_modified_user": "system", "_last_modified_time": 1509389584246, "_system_owned": true, "_protection": "NOT_PROTECTED", "_revision": 0 }, { "resource_type": "LbIcmpMonitor", "id": "cc572f1a-316b-580e-9e7b-24ed1ac5527e", "display_name": "nsx-default-icmp-monitor", "interval": 5, "timeout": 15, "rise_count": 3, "fall_count": 3, "data_length": 56, "_create_user": "system", "_create_time": 1509389584254, "_last_modified_user": "system", "_last_modified_time": 1509389584254, "_system_owned": true, "_protection": "NOT_PROTECTED", "_revision": 0 }, { "resource_type": "LbPassiveMonitor", "id": "9f8f448e-beda-594b-a9eb-fd3f9d3c1266", "display_name": "nsx-default-passive-monitor", "max_fails": 5, "timeout": 5, "_create_user": "system", "_create_time": 1509389584278, "_last_modified_user": "system", "_last_modified_time": 1509389584278, "_system_owned": true, "_protection": "NOT_PROTECTED", "_revision": 0 }, { "resource_type": "LbTcpMonitor", "id": "8907ef61-8d8d-5dbd-96af-45b8dafa6627", "display_name": "nsx-default-tcp-monitor", "interval": 5, "timeout": 15, "rise_count": 3, "fall_count": 3, "_create_user": "system", "_create_time": 1509389584262, "_last_modified_user": "system", "_last_modified_time": 1509389584262, "_system_owned": true, "_protection": "NOT_PROTECTED", "_revision": 0 } ] } Required Permissions: read Feature: lb_monitors Additional Errors:

Create a load balancer monitor (Deprecated)

Create a load balancer monitor.
Request:
Method:
POST
URI Path(s):
/api/v1/loadbalancer/monitors
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
LbHttpMonitor+
LbHttpsMonitor+
LbIcmpMonitor+
LbPassiveMonitor+
LbTcpMonitor+
LbUdpMonitor+