NSX Global Policy API Guide
Copyright © 2014-2026 VMware, Inc. All rights reserved. Copyright and trademark information.
NSX Global Policy API Guide
NSX 9.1.1
Table of Contents
- Overview
- API Methods
- Certificates
- Enforcement Points
- Federation
- Inventory
- Monitoring
- Multi-Tenancy
- Networking (Dhcp)
- Networking (Dns Forwarder)
- Networking (Nat)
- Networking (Network Services)
- Networking (Networking Profiles)
-
Networking (Routing)
- Tier-0S
- Tier-0S (Arp Proxies)
- Tier-0S (Arp Tables)
- Tier-0S (Bgp)
- Tier-0S (Community Lists)
- Tier-0S (Dad States)
- Tier-0S (Deployment Maps)
- Tier-0S (Forwarding Tables)
- Tier-0S (Inter-Vrfs)
- Tier-0S (Interface Groups)
- Tier-0S (Interfaces)
- Tier-0S (Locale Services)
- Tier-0S (Prefix Lists)
- Tier-0S (Route Maps)
- Tier-0S (Routing Tables)
- Tier-0S (Routing)
- Tier-0S (States)
- Tier-0S (Static Routes BFD Peers)
- Tier-0S (Static Routes)
- Tier-0S (Statistics)
- Tier-1S
- Tier-1S (Arp Proxies)
- Tier-1S (Arp Tables)
- Tier-1S (Dad States)
- Tier-1S (Forwarding Tables)
- Tier-1S (Interface Groups)
- Tier-1S (Interfaces)
- Tier-1S (Locale Services)
- Tier-1S (Routing)
- Tier-1S (States)
- Tier-1S (Static Routes)
- Tier-1S (Statistics)
-
Networking (Switching)
- Segment Ports
- Segment Ports (Mac Tables)
- Segment Ports (States)
- Segments
- Segments (Arp Proxies)
- Segments (Edge Bridge)
- Segments (Fixed)
- Segments (Mac Tables)
- Segments (States)
- Segments (Statistics)
- Segments (Tep Tables)
- Segments Profiles (Discovery Profiles)
- Segments Profiles (Ip Discovery Profiles)
- Segments Profiles (Mac Discovery Profiles)
- Segments Profiles (Monitoring Profile Bindings)
- Segments Profiles (Qos Profiles)
- Segments Profiles (Real Time Eth Profiles)
- Segments Profiles (Security Profile Bindings)
- Segments Profiles (Security Profiles)
- Segments Profiles (Spoofguard Profiles)
- Transport Zones
- Networking (Vpn)
- Policy
- Search
- Security
-
Security (East West)
- Distributed Firewall (Drafts)
- Distributed Firewall (Exclusion List)
- Distributed Firewall (Firewall Scheduler)
- Distributed Firewall (Group/Service Associations)
- Distributed Firewall (Identity Firewall)
- Distributed Firewall (Ip Reputation)
- Distributed Firewall (Rules)
- Distributed Firewall (Settings)
- Distributed Firewall (Statistics)
- Distributed Firewall (Tasks)
- Distributed IDS (Signatures)
- Ips & Malware (Rules)
- Security (North South)
- Security (Security Profiles)
-
System (Administration)
- Configuration (Auto-Enable Gateway Firewall)
- Configuration (Partial Patch)
- API Services
- Certificates
- Global Configurations
- Grub
- Monitoring
- NSX Manager (Appliance Proxy)
- NSX Manager (Async Replicator Service)
- NSX Manager (Auth Service)
- NSX Manager (Cluster Certificate)
- NSX Manager (Cluster)
- NSX Manager (Cm Inventory Service)
- NSX Manager (Corfu Server)
- NSX Manager (Http Service)
- NSX Manager (Install Upgrade Service)
- NSX Manager (Manager Service)
- NSX Manager (Messaging Manager Service)
- NSX Manager (Migration Coordinator Service)
- NSX Manager (Search Service)
- NSX Manager (Site Manager Service)
- NSX Manager (Telemetry Service)
- NSX Manager (User Interface Service)
- NSX Managers (Api Services)
- NSX Managers (Cluster)
- NSX Managers (Interfaces)
- NSX Managers (Monitoring)
- Support Bundle
- Transport Nodes
- Transport Nodes (Dns)
- Transport Nodes (Interfaces)
- Transport Nodes (Log Insight)
- Transport Nodes (Ntp Service)
- Transport Nodes (Snmp Service)
- Transport Nodes (Ssh Service)
- Transport Nodes (Syslog Service)
- Transport Nodes (Tasks Service)
- Transport Nodes (Upgrade Agent Service)
- User Management (Ldap)
- System (Fabric)
- System (Lifecycle Management)
- System (Settings)
- System Administration
- Troubleshooting
- User Management
- API Types
- API Type Schemas
- API Errors
- Deprecated Types and Methods
Overview
Introduction
This guide is for the NSX Global Manager API endpoint and is only relevant for environments using NSX Federation. For all other use cases please look at the at the NSX Manager API guide.
Like for the local manager of NSX, in case of Federation the global manager provides a programmatic API to automate management activities.
The Global Manager aims to manage centrally the configuration of multiple NSX deployments (also called Local Managers) as part of NSX Federation. In those environments both the Global Manager and the Local Managers API endpoints are available, but objects created and managed (CRUD) from the Global Manager should only be managed at this level.
The Global Manager follows the same data-structure than the NSX Local Manager. 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 Data Types and Allowed Ranges
The NSX 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:
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, 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:
The following cURL command will authenticate to the manager using basic authentication and will issue a GET request for the top-level global-infra object.
where:
USERNAME is the user to authenticate as,
PASSWORD is the password to provide, and
GLOBAL_MANAGER is the IP address or host name
of the NSX global manager
For example:
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:
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:
- A local user name. For example, "admin".
- 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.
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.
For example:
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:
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:
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 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.
API Pagination
When responding to operations that return a ListResult type, NSX may limit the number of results returned. By default, the limit is 1000 results, but some APIs with large result payloads may return fewer results, even if a large number of results is requested by the client. Clients must be prepared to handle paginated results.
NSX indicates that it has returned fewer than the total number of results by including a "cursor" property in the response to the list operation. For example:
{
"results" : [
.... 1000 results omitted for clarity
],
"result_count" : 1322,
"sort_by" : "display_name",
"sort_ascending" : true,
"cursor" : "28de76e5-c7c2-4fa0-9a3e-0be891818d35"
}
The response indicates that there are a total of 1,322 results, but not all results are present in this response.
To get the next page of results, repeat the same list operation, but pass the returned cursor value. For example:
The response will return the next page of results. If there are more pages of results, the response will include a new cursor which can be used to get the next page of results. If this is the last page, then no cursor will be returned, as show below.
{
"results" : [
.... 322 results omitted for clarity
],
"sort_by" : "display_name",
"sort_ascending" : true,
}
The format of the "cursor" property is not meaningful to the client, and the client should not attempt to interpret the cursor's value. The format of the cursor may be different, depending on which API is called.
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.
Collection List Pagination
A call to the NSX API may return many thousands of results when the system is operating at scale. In such scenarios, the system performs pagination of response objects. All queries to the API must be capable of handling ListResults objects that contain partial results. Pagination in API works as follows:
The API will respond with a ListResult object that has at most page_size results. Note, that the client must always be ready to handle a paginated result, even if the client did not specify page_size.
The default page size is 1000. In case the result size exceeds the page size, the first page will be returned. You need to retrieve the remaining with cursor.
When doing an API call against the NSX-T API, there are a variety of objects which have limits on the number of returned items allowed. The limits themselves are different depending on the objects.
The way you can tell if pagination is being activated is by looking for an attribute called 'cursor'. For example, here is the end of a call for all firewall rule sections:
End of the results:
So, looking at our result attributes we can see the overall result count is 1448 and we can tell pagination was activated, because we have a 'cursor' attribute. If you have a 'cursor' attribute returned in your overall results, pagination is activating and truncating those results. You need to retrieve the remaining with cursor.
You pass the cursor attribute in standard URL options with the value specified to the exact same call until you no longer have a cursor attribute returned, for example:
which will return the 2nd page of results.
Optimistic Concurrency Control and the _revision property
Overview
In order to prevent one client from overwriting another client's updates, NSX 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.
Partial PATCH
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 activated. 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 activated using either one of the following approach:
- System-wide partial patch configuration
Partial patch can be activated/deactivated 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. - Header parameter (request level configuration)
Partial patch can also be activated/deactivated using API request header parameter. This will override the system-wide configuration for a particular request.
To activate partial patch, use 'nsx-enable-partial-patch=true'
To deactivate 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:
- Array properties will be replaced entirely in partial patch.
- If PATCH api is executed on a non-existing object, a new object will be created after performing all applicable validations.
- 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).
- Partial patch is not supported for 'Infra' object.
- 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. - 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.
PUT Operations
NSX 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.
API Rate Limiting
The NSX 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 and submit operations on each connection. When this limit is exceeded, the server returns a 503 Server Unavailable 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, 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.
Each manager enforces the rate limit independently of the other managers. For example, in a 3-node cluster, each manager has a maximum concurrency of 199 requests, but across the cluster there may be a maximum of 199 * 3 = 597 concurrent requests.
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 APIs, see https://github.com/vmware-samples/nsx-t/blob/master/python/basics/rate-limits.py
OpenAPI Specification of NSX APIs
You can download OpenAPI specifications for the NSX Global Policy API at the following URLs:
NSX Global Policy API:
- GET https://<global-manager>/global-manager/api/v1/spec/openapi/nsx_global_policy_api.yaml
- GET https://<global-manager>/global-manager/api/v1/spec/openapi/nsx_global_policy_api.json
Certificates
Certificates: Ca Bundles
- GET /global-manager/api/v1/global-infra/cabundles
- DELETE /global-manager/api/v1/global-infra/cabundles/{cabundle-id}
- GET /global-manager/api/v1/global-infra/cabundles/{cabundle-id}
- PATCH /global-manager/api/v1/global-infra/cabundles/{cabundle-id}
- POST /global-manager/api/v1/global-infra/cabundles/{cabundle-id}
- PUT /global-manager/api/v1/global-infra/cabundles/{cabundle-id}
- GET /global-manager/api/v1/global-infra/cabundles/{cabundle-id}/pem-file
- GET /global-manager/api/v1/global-infra/certificates
- DELETE /global-manager/api/v1/global-infra/certificates/{certificate-id}
- GET /global-manager/api/v1/global-infra/certificates/{certificate-id}
- PATCH /global-manager/api/v1/global-infra/certificates/{certificate-id}
- PUT /global-manager/api/v1/global-infra/certificates/{certificate-id}
Returns information about all the CA bundles
Returns information about all the bundles of trusted CA certificates.Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/cabundles Successful Response:
Example Response: { "result_count": 2, "results": [ { "_create_time": 0, "_create_user": "unknown", "_last_modified_time": 0, "_last_modified_user": "unknown", "_protection": "NOT_PROTECTED", "_revision": 0, "_system_owned": false, "display_name": "example-cabundle-id", "earliest_not_after": 1688688782000, "id": "example-cabundle-id", "marked_for_delete": false, "not_after_list": [1688688782000, ...], "overridden": false, "parent_path": "/infra", "path": "/infra/cabundles/example-cabundle-id", "relative_path": "example-cabundle-id", "resource_type": "CaBundle", "unique_id": "b829537a-fcdb-4349-b5e1-53fb40f69a8c" }, { "_create_time": 1611941474997, "_create_user": "unknown", "_last_modified_time": 1611941474997, "_last_modified_user": "unknown", "_protection": "NOT_PROTECTED", "_revision": 0, "_system_owned": true, "display_name": "default_trusted_public_ca_bundle", "earliest_not_after": 1616006013000, "id": "default_trusted_public_ca_bundle", "marked_for_delete": false, "not_after_list": [2289338164000, ...], "overridden": false, "parent_path": "/infra", "path": "/infra/cabundles/default_trusted_public_ca_bundle", "relative_path": "default_trusted_public_ca_bundle", "resource_type": "CaBundle", "unique_id": "293185d4-07e5-4a5e-b7b8-bd3a86fa270e"}], } ] } Required Permissions: Feature: policy_certificate Additional Errors:
Adds or replaces a CA bundle
Adds or replaces a new bundle of trusted CA certificates.The bundle must be a concatenation of one or more
PEM-encoded certificates.
Request:
Example Request: PUT https://<policy-mgr>/global-manager/api/v1/global-infra/cabundles/example-cabundle-id { "pem_encoded": "-----BEGIN CERTIFICATE-----\n[...]\n-----END CERTIFICATE-----", } Successful Response:
Example Response: { "_create_time": 0, "_create_user": "unknown", "_last_modified_time": 0, "_last_modified_user": "unknown", "_protection": "NOT_PROTECTED", "_revision": 0, "_system_owned": false, "display_name": "example-cabundle-id", "earliest_not_after": 1688688782000, "id": "example-cabundle-id", "marked_for_delete": false, "not_after_list": [1688688782000, ...], "overridden": false, "parent_path": "/infra", "path": "/infra/cabundles/example-cabundle-id", "relative_path": "example-cabundle-id", "resource_type": "CaBundle", "unique_id": "b829537a-fcdb-4349-b5e1-53fb40f69a8c" } Required Permissions: Feature: policy_certificate Additional Errors:
Adds or updates a CA bundle
Adds or updates a new bundle of trusted CA certificates.The bundle must be a concatenation of one or more
PEM-encoded certificates. The PEM-encoded bundle is replaced
with the one provided in the request.
Request:
Example Request: PATCH https://<policy-mgr>/global-manager/api/v1/global-infra/cabundles/example-cabundle-id { "pem_encoded": "-----BEGIN CERTIFICATE-----\n[...]\n-----END CERTIFICATE-----", } Successful Response:
Example Response: { "_create_time": 0, "_create_user": "unknown", "_last_modified_time": 0, "_last_modified_user": "unknown", "_protection": "NOT_PROTECTED", "_revision": 1, "_system_owned": false, "display_name": "example-cabundle-id", "earliest_not_after": 1688688782000, "id": "example-cabundle-id", "marked_for_delete": false, "not_after_list": [1688688782000, ...], "overridden": false, "parent_path": "/infra", "path": "/infra/cabundles/example-cabundle-id", "relative_path": "example-cabundle-id", "resource_type": "CaBundle", "unique_id": "b829537a-fcdb-4349-b5e1-53fb40f69a8c" } Required Permissions: Feature: policy_certificate Additional Errors:
Adds or replaces a CA bundle
Adds or replaces a new bundle of trusted CA certificates.The multipart-uploaded file must be a concatenation of one or more
PEM-encoded certificates.
Request:
Example Request: POST https://<policy-mgr>/global-manager/api/v1/global-infra/cabundles/example-cabundle-id Content-Type: multipart/form-data; boundary=243332e4709e58a3bd679ef3c7b1259a --243332e4709e58a3bd679ef3c7b1259a Content-Disposition: form-data; name="file"; filename="example-cabundle.pem" -----BEGIN CERTIFICATE----- [...] -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- [...] -----END CERTIFICATE----- [...] --243332e4709e58a3bd679ef3c7b1259a-- Successful Response:
Example Response: { "_create_time": 0, "_create_user": "unknown", "_last_modified_time": 0, "_last_modified_user": "unknown", "_protection": "NOT_PROTECTED", "_revision": 0, "_system_owned": false, "display_name": "example-cabundle-id", "earliest_not_after": 1688688782000, "id": "example-cabundle-id", "marked_for_delete": false, "not_after_list": [1688688782000, ...], "overridden": false, "parent_path": "/infra", "path": "/infra/cabundles/example-cabundle-id", "relative_path": "example-cabundle-id", "resource_type": "CaBundle", "unique_id": "b829537a-fcdb-4349-b5e1-53fb40f69a8c" } Required Permissions: Feature: policy_certificate Additional Errors:
Deletes CA bundle
Deletes the specified bundle of trusted CA certificates.Request:
Example Request: DELETE https://<policy-mgr>/global-manager/api/v1/global-infra/cabundles/example-cabundle-id Successful Response:
Example Response: 200 OK Required Permissions: Feature: policy_certificate Additional Errors:
Returns information about a CA bundle
Returns information about the specified bundle of trusted CAcertificates.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/cabundles/example-cabundle-id Successful Response:
Example Response: { "_create_time": 0, "_create_user": "unknown", "_last_modified_time": 0, "_last_modified_user": "unknown", "_protection": "NOT_PROTECTED", "_revision": 0, "_system_owned": false, "certificates": [ { "is_ca": true, "is_valid": true, "issuer": "CN=test.local,O=Internet Widgits Pty Ltd,ST=Some-State,C=AU", "issuer_cn": "test.local", "not_after": 1688688782000, "not_before": 1602202382000, "public_key_algo": "RSA", "public_key_length": 2048, "rsa_public_key_exponent": "10001", "rsa_public_key_modulus": "00 cf ...", "serial_number": "abffbac5ca0a1934357be127156f6615cc14400", "signature": "1e 81 ...", "signature_algorithm": "SHA256WITHRSA", "subject": "CN=test.local,O=Internet Widgits Pty Ltd,ST=Some-State,C=AU", "subject_cn": "test.local", "version": "3", }, ... ], "display_name": "example-cabundle-id", "earliest_not_after": 1688688782000, "id": "example-cabundle-id", "marked_for_delete": false, "not_after_list": [1688688782000, ...], "overridden": false, "parent_path": "/infra", "path": "/infra/cabundles/example-cabundle-id", "relative_path": "example-cabundle-id", "resource_type": "CaBundle", "unique_id": "b829537a-fcdb-4349-b5e1-53fb40f69a8c" } Required Permissions: Feature: policy_certificate Additional Errors:
Downloads a CA bundle
Downloads the specified PEM-encoded bundle of trusted CA certificates.Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/cabundles/example-cabundle-id Successful Response:
Example Response: -----BEGIN CERTIFICATE----- [...] -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- [...] -----END CERTIFICATE----- [...] Required Permissions: Feature: policy_certificate Additional Errors:
Return All the User-Facing Components' Certificates
Returns all certificate information viewable by the user, including eachcertificate's id; pem_encoded data; and history of the
certificate (who created or modified it and when). For additional
information, include the ?details=true modifier at the end of the request
URI.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/certificates Successful Response:
Example Response: { "sort_ascending": true, "sort_by": "display_name", "result_count": 2, "results": [ { "resource_type": "TlsCertificate", "id": "caCert", "display_name": "caCert", "path": "/infra/certificates/caCert", "parent_path": "/infra", "relative_path": "caCert", "details": [ ... ], "pem_encoded": "-----BEGIN CERTIFICATE-----
Add a New Certificate
Adds a new private-public certificate and, optionally, a private key thatcan be applied to one of the user-facing components (appliance management
or edge). The certificate and the key should be stored in PEM format. If
no private key is provided, the certificate is used as a client
certificate in the trust store.
A private key can be uploaded for a CA certificate only if the "purpose"
parameter is set to "signing-ca".
A certificate chain will not be expanded
into separate certificate instances for reference, but would be pushed to
the enforcement point as a single certificate. This PUT method does
not modify an existing certificate.
Request:
Example Request: PUT https://<policy-mgr>/global-manager/api/v1/certificates/selfSignedCert { "_revision":"0", "pem_encoded": "-----BEGIN CERTIFICATE-----
Example Response: { "resource_type": "TlsCertificate", "id": "selfSignedCert", "display_name": "selfSignedCert", "path": "/infra/certificates/selfSignedCert", "parent_path": "/infra", "relative_path": "selfSignedCert", "details": [ { "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" } ], "pem_encoded": "-----BEGIN CERTIFICATE-----
Add a New Certificate
Adds a new private-public certificate and, optionally, a private key thatcan be applied to one of the user-facing components (appliance management
or edge). The certificate and the key should be stored in PEM format. If
no private key is provided, the certificate is used as a client
certificate in the trust store.
A private key can be uploaded for a CA certificate only if the "purpose"
parameter is set to "signing-ca".
A certificate chain will not be expanded
into separate certificate instances for reference, but would be pushed to
the enforcement point as a single certificate. This patch method does
not modify an existing certificate.
Request:
Example Request: PATCH https://<policy-mgr>/global-manager/api/v1/certificates/certificate-1 { "pem_encoded": "-----BEGIN CERTIFICATE-----
Example Response: 200 OK Required Permissions: Feature: policy_certificate Additional Errors:
Show Certificate Data for the Given Certificate ID
Returns information for the specified certificate ID, including thecertificate's id; pem_encoded data; and history of the
certificate (who created or modified it and when). For additional
information, include the ?details=true modifier at the end of the request
URI.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/certificates/selfSignedCertificate Successful Response:
Example Response: { "resource_type": "TlsCertificate", "id": "selfSignedCert", "display_name": "selfSignedCert", "path": "/infra/certificates/selfSignedCert", "parent_path": "/infra", "relative_path": "selfSignedCert", "details": [ { "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" } ], "pem_encoded": "-----BEGIN CERTIFICATE-----
Delete Certificate for the Given Certificate ID
Removes the specified certificate. The private key associated with thecertificate is also deleted.
Request:
Example Request: DELETE https://<policy-mgr>/global-manager/api/v1/global-infra/certificates/signedDigitalCert Successful Response:
Example Response: 200 OK Required Permissions: Feature: policy_certificate Additional Errors:
Certificates: Crls
- GET /global-manager/api/v1/global-infra/crls
- DELETE /global-manager/api/v1/global-infra/crls/{crl-id}
- GET /global-manager/api/v1/global-infra/crls/{crl-id}
- PATCH /global-manager/api/v1/global-infra/crls/{crl-id}
- POST /global-manager/api/v1/global-infra/crls/{crl-id}?action=import
- POST /global-manager/api/v1/global-infra/crls/{crl-id}?action=upload
- PUT /global-manager/api/v1/global-infra/crls/{crl-id}
Return All Added CRLs
Returns information about all CRLs. For additional information, include the?details=true modifier at the end of the request URI.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/crls?details=true Successful Response:
Example Response: { "result_count": 1, "results": [ { "resource_type": "TlsCrl", "display_name": "revoked certificates", "path": "/infra/crls/revokedCerts", "parent_path": "/infra", "relative_path": "revokedCerts", "pem_encoded": "-----BEGIN X509 CRL-----
Create or patch a Certificate Revocation List
Create or patch a Certificate Revocation List for the given id. The CRL is used toverify the client certificate status against the revocation lists published by the CA.
For this reason, the administrator needs to add the CRL in certificate repository as well.
The CRL must contain PEM data for a single CRL.
A CRL can be in the PEM X.509 format (crl_type=X509) or JSON OneCRL
(crl_type=OneCRL).
If crl_type is not specified, it is auto-detected based on the presence of
fields pem_encoded or one_crl.
Request:
Example Request: PATCH https://<policy-mgr>/global-manager/api/v1/global-infra/crls/revokedCertsb { "display_name": "Revoked Certificates", "pem_encoded": "-----BEGIN X509 CRL-----
Example Response: 200 Ok Required Permissions: Feature: policy_certificate Additional Errors:
Create or fully replace a Certificate Revocation List
Create or replace a Certificate Revocation List for the given id. The CRL is used toverify the client certificate status against the revocation lists published by the CA.
For this reason, the administrator needs to add the CRL in certificate repository as well.
The CRL must contain PEM data for a single CRL. Revision is required.
A CRL can be in the PEM X.509 format (crl_type=X509) or JSON OneCRL
(crl_type=OneCRL).
If crl_type is not specified, it is auto-detected based on the presence of
fields pem_encoded or one_crl.
Request:
Example Request: PUT https://<policy-mgr>/global-manager/api/v1/global-infra/crls/revokedCerts { "display_name": "Revoked Certificates", "pem_encoded": "-----BEGIN X509 CRL-----
Example Response: { "resource_type": "TlsCrl", "display_name": "revoked certificates", "path": "/infra/crls/revokedCerts", "parent_path": "/infra", "relative_path": "revokedCerts", "pem_encoded": "-----BEGIN X509 CRL-----
Delete a CRL
Deletes an existing CRL. Request:Example Request: DELETE https://<policy-mgr>/global-manager/api/v1/global-infra/crls/revokedCerts Successful Response:
Example Response: 200 OK Required Permissions: Feature: policy_certificate Additional Errors:
Show CRL Data for the Given CRL id.
Returns information about the specified CRL. For additional information,include the ?details=true modifier at the end of the request URI.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/crls/revokedCerts?details=true Successful Response:
Example Response: { "resource_type": "TlsCrl", "display_name": "revoked certificates", "path": "/infra/crls/revokedCerts", "parent_path": "/infra", "relative_path": "revokedCerts", "pem_encoded": "-----BEGIN X509 CRL-----
Create a new Certificate Revocation List
Adds a new certificate revocation list (CRLs). The CRL is used to verify the clientcertificate status against the revocation lists published by the CA. For this reason,
the administrator needs to add the CRL in certificate repository as well.
A CRL can be in the PEM X.509 format (crl_type=X509) or JSON OneCRL
(crl_type=OneCRL).
If crl_type is not specified, it is auto-detected based on the presence of
fields pem_encoded or one_crl.
An X.509 CRL can contain a single CRL or multiple CRLs depending on the PEM data.
- Single CRL: a single CRL is created with the given id.
- Composite CRL: multiple CRLs are generated. Each of the CRL is created with an id
generated based on the given id. First CRL is created with crl-id, second with crl-id-1,
third with crl-id-2, etc.
Request:
Example Request: PATCH https://<policy-mgr>/global-manager/api/v1/global-infra/crls/revokedCertsb { "display_name": "Revoked Certificates", "pem_encoded": "-----BEGIN X509 CRL-----
Example Response: { "results": [{ "resource_type": "TlsCrl", "display_name": "revoked certificates", "path": "/infra/crls/revokedCerts", "parent_path": "/infra", "relative_path": "revokedCerts", "pem_encoded": "-----BEGIN X509 CRL-----
Upload a new or updated Certificate Revocation List
Adds or replaces a certificate revocation list (CRLs). The CRL is used to verify the clientcertificate status against the revocation lists published by the CA. For this reason,
the administrator needs to add the CRL in certificate repository as well.
A CRL can be in the PEM X.509 format (crl_type=X509) or JSON OneCRL
(crl_type=OneCRL).
If crl_type is not specified, it is auto-detected based on the upload content.
An X.509 CRL can contain a single CRL or multiple CRLs depending on the PEM data.
- Single CRL: a single CRL is created with the given id.
- Composite CRL: multiple CRLs are generated. Each of the CRL is created with an id
generated based on the given id. First CRL is created with crl-id, second with crl-id-1,
third with crl-id-2, etc.
Differently from action=import, this method allows multi-part upload of the CRL(s).
The TlsCrl resource returned in the body of the response will have an empty pem_encoded
field, as it may be large. Use a GET request to retrieve the PEM-encoded CRL.
Request:
Example Request: POST https://<policy-mgr>/global-manager/api/v1/global-infra/crls/revokedCerts?action=import Content-Type: multipart/form-data; boundary=2a8ae6ad-f4ad-4d9a-a92c-6d217011fe0f --2a8ae6ad-f4ad-4d9a-a92c-6d217011fe0f Content-Disposition: form-data; name="file"; filename="mycrl.pem" -----BEGIN X509 CRL-----
Example Response: { "results": [{ "resource_type": "TlsCrl", "display_name": "revoked certificates", "path": "/infra/crls/revokedCerts", "parent_path": "/infra", "relative_path": "revokedCerts", "pem_encoded": "-----BEGIN X509 CRL-----
Certificates: Csrs
- GET /global-manager/api/v1/global-infra/csrs
- POST /global-manager/api/v1/global-infra/csrs?action=self_sign
- DELETE /global-manager/api/v1/global-infra/csrs/{csr-id}
- GET /global-manager/api/v1/global-infra/csrs/{csr-id}
- POST /global-manager/api/v1/global-infra/csrs/{csr-id}?action=create
- POST /global-manager/api/v1/global-infra/csrs/{csr-id}?action=import
- POST /global-manager/api/v1/global-infra/csrs/{csr-id}?action=upload
- POST /global-manager/api/v1/global-infra/csrs/{csr-id}?action=self_sign
- GET /global-manager/api/v1/global-infra/csrs/{csr-id}/pem-file
Return All the Generated CSRs
Returns information about all of the CSRs that have been created. Request:Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/csrs Successful Response:
Example Response: { "result_count": 1, "results": [ { "resource_type": "Csr", "id": "example-csr-id", "display_name": "example-csr-id", "path": "/infra/csrs/example-csr-id", "parent_path": "/infra/csrs/example-csr-id", "relative_path": "example-csr-id", "pem_encoded": "-----BEGIN CERTIFICATE REQUEST-----
Show CSR Data for the Given CSR ID
Returns information about the specified CSR. Request:Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/csrs/example-csr-id Successful Response:
Example Response: { "resource_type": "Csr", "id": "example-csr-id", "display_name": "example-csr-id", "path": "/infra/csrs/example-csr-id", "parent_path": "/infra/csrs/example-csr-id", "relative_path": "example-csr-id", "pem_encoded": "-----BEGIN CERTIFICATE REQUEST-----
Delete a CSR
Removes a specified CSR. If a CSR is not used for verification, you candelete it. Note that the CSR import and upload POST actions automatically
delete the associated CSR.
Request:
Example Request: DELETE https://<policy-mgr>/global-manager/api/v1/global-infra/csrs/example-csr-id Successful Response:
Required Permissions: Feature: policy_certificate Additional Errors:
Get CSR PEM File for the Given CSR ID
Downloads the CSR PEM file for a specified CSR. Clients must include an Accept: text/plain request header. Request:Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/csrs/example-csr-id/pem-file Accept: text/plain Successful Response:
Example Response: -----BEGIN CERTIFICATE REQUEST-----
Generate a New Certificate Signing Request
Creates a new certificate signing request (CSR). A CSR is encrypted text thatcontains information about your organization (organization name, country,
and so on) and your Web server's public key, which is a public certificate
the is generated on the server that can be used to forward this request to a
certificate authority (CA). A private key is also usually created at the
same time as the CSR.
Request:
Example Request: POST https://<policy-mgr>/global-manager/api/v1/global-infra/csrs/example-csr-id?action=create { "subject": { "attributes": [ {"key":"CN","value":"Jane"}, {"key":"O","value":"VMware"}, {"key":"OU","value":"NSBU"}, {"key":"C","value":"US"}, {"key":"ST","value":"CA"}, {"key":"L","value":"PA"} ] }, "key_size": "2048", "algorithm": "RSA", "is_ca": false } Successful Response:
Example Response: { "resource_type": "TlsCsr", "id": "example-csr-id", "display_name": "example-csr-id", "path": "/infra/csrs/example-csr-id", "parent_path": "/infra/csrs", "relative_path": "example-csr-id", "pem_encoded": "-----BEGIN CERTIFICATE REQUEST-----
Import a Certificate Associated with an Approved CSR
Imports a certificate authority (CA)-signed certificate for a CSR. Thisaction links the certificate to the private key created by the CSR. The
pem_encoded string in the request body is the signed certificate provided by
your CA in response to the CSR that you provide to them. The import POST
action automatically deletes the associated CSR.
Request:
Example Request: POST https://<policy-mgr>/global-manager/api/v1/global-infra/csrs/example-csr-id?action=import { "pem_encoded": "-----BEGIN CERTIFICATE-----
Example Response: { "resource_type": "TlsCertificate", "id": "669f4e8f-061e-4c73-8cfb-1044181eb365", "display_name": "example-csr-id", "path": "/infra/certificates/669f4e8f-061e-4c73-8cfb-1044181eb365", "parent_path": "/infra", "relative_path": "example-csr-id", "details": [ { "issuer_cn": "vSM Test Certificate", "public_key_length": 1024, "signature": "4e cf ff 36 ac a1", "not_before": 1323772715000, "subject": "CN=Jane,O=VMware,OU=NSBU,ST=CA,C=US,PA=L", "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": "Jane", "not_after": 1355308715000, "is_valid": false, "rsa_public_key_exponent": "10001", "signature_algorithm": "SHA1WITHRSA", "rsa_public_key_modulus": "00 b7 8f 79 e4" } ], "pem_encoded": "-----BEGIN CERTIFICATE-----
Self-Sign the CSR
Self-signs the previously generated CSR. This action is similar to theimport certificate action, but instead of using a public certificate signed
by a CA, the self_sign POST action uses a certificate that is signed with
NSX's own private key. The maximum validity limit for non-CA certificates
is 825 days, except that values of 3,650 and 36,500 days are allowed.
No limit is set for CA certificates.
Request:
Example Request: POST https://<policy-mgr>/global-manager/api/v1/global-infra/csrs/example-csr-id?action=self_sign&days_valid=365 Successful Response:
Example Response: { "resource_type": "TlsCertificate", "id": "669f4e8f-061e-4c73-8cfb-1044181eb365", "display_name": "example-csr-id", "path": "/infra/certificates/669f4e8f-061e-4c73-8cfb-1044181eb365", "parent_path": "/infra", "relative_path": "669f4e8f-061e-4c73-8cfb-1044181eb365", "details": [ { "issuer_cn": "Jane", "public_key_length": 1024, "signature": "4e cf ff 36 ac a1", "not_before": 1323772715000, "subject": "CN=Jane,O=VMware,OU=NSBU,ST=CA,C=US,PA=L", "serial_number": "ca55f5e21a0b2dd2", "public_key_algo": "RSA", "version": "1", "issuer": "CN=Jane,O=VMware,OU=NSBU,ST=CA,C=US,PA=L", "is_ca": false, "subject_cn": "Jane", "not_after": 1355308715000, "is_valid": false, "rsa_public_key_exponent": "10001", "signature_algorithm": "SHA1WITHRSA", "rsa_public_key_modulus": "00 b7 8f 79 e4" } ], "pem_encoded": "-----BEGIN CERTIFICATE-----
Upload the Certificate PEM File Signed by the CA Associated with a CSR
Uploads the certificate authority (CA)-signed certificate. After you sendthe certificate request to the CA of your choice, and the CA sends back the
signed certificate, you can use the upload POST action to upload the signed
certificate. The upload action is similar to the import action, but the
upload action allows you to directly upload the PEM-encoded file (signed
certificate) provided by the CA. Like the import POST action, the upload
POST action automatically deletes the associated CSR.
Request:
Example Request: POST https://<policy-mgr>/global-manager/api/v1/global-infra/csrs/example-csr-id?action=upload Content-Type: multipart/form-data; boundary=2a8ae6ad-f4ad-4d9a-a92c-6d217011fe0f --2a8ae6ad-f4ad-4d9a-a92c-6d217011fe0f Content-Disposition: form-data; name="file"; filename="mycert.pem" -----BEGIN CERTIFICATE-----
Example Response: { "resource_type": "TlsCertificate", "id": "669f4e8f-061e-4c73-8cfb-1044181eb365", "display_name": "example-csr-id", "path": "/infra/certificates/669f4e8f-061e-4c73-8cfb-1044181eb365", "parent_path": "/infra", "relative_path": "example-csr-id", "details": [ { "issuer_cn": "vSM Test Certificate", "public_key_length": 1024, "signature": "4e cf ff 36 ac a1", "not_before": 1323772715000, "subject": "CN=Jane,O=VMware,OU=NSBU,ST=CA,C=US,PA=L", "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": "Jane", "not_after": 1355308715000, "is_valid": false, "rsa_public_key_exponent": "10001", "signature_algorithm": "SHA1WITHRSA", "rsa_public_key_modulus": "00 b7 8f 79 e4" } ], "pem_encoded": "-----BEGIN CERTIFICATE-----
Generate a new self-signed certificate
Creates a new self-signed certificate. A private key is also created at thesame time. This is convenience call that will generate a CSR and then self-sign it.
The maximum validity limit for non-CA certificates is 825 days, except that values
of 3,650 and 36,500 days are allowed. No limit is set for CA certificates.
Request:
Example Request: POST https://<policy-mgr>/global-manager/api/v1/global-infra/csrs?action=self_sign { "subject": { "attributes": [ {"key":"CN","value":"Jane"}, {"key":"O","value":"VMware"}, {"key":"OU","value":"NSBU"}, {"key":"C","value":"US"}, {"key":"ST","value":"CA"}, {"key":"L","value":"PA"} ] }, "key_size": "2048", "algorithm": "RSA", "days_valid": 365, } Successful Response:
Example Response: { "resource_type": "TlsCertificate", "id": "669f4e8f-061e-4c73-8cfb-1044181eb365", "display_name": "example-csr-id", "path": "/infra/certificates/669f4e8f-061e-4c73-8cfb-1044181eb365", "parent_path": "/infra", "relative_path": "669f4e8f-061e-4c73-8cfb-1044181eb365", "details": [ { "issuer_cn": "Jane", "public_key_length": 1024, "signature": "4e cf ff 36 ac a1", "not_before": 1323772715000, "subject": "CN=Jane,O=VMware,OU=NSBU,ST=CA,C=US,PA=L", "serial_number": "ca55f5e21a0b2dd2", "public_key_algo": "RSA", "version": "1", "issuer": "CN=Jane,O=VMware,OU=NSBU,ST=CA,C=US,PA=L", "is_ca": false, "subject_cn": "Jane", "not_after": 1355308715000, "is_valid": false, "rsa_public_key_exponent": "10001", "signature_algorithm": "SHA1WITHRSA", "rsa_public_key_modulus": "00 b7 8f 79 e4" } ], "pem_encoded": "-----BEGIN CERTIFICATE-----
Enforcement Points
Enforcement Points: Edge Clusters
- GET /global-manager/api/v1/global-infra/sites/{site-id}/enforcement-points
- POST /global-manager/api/v1/global-infra/sites/{site-id}/enforcement-points/{enforcement-point-id}?action=full-sync
- DELETE /global-manager/api/v1/global-infra/sites/{site-id}/enforcement-points/{enforcementpoint-id}
- GET /global-manager/api/v1/global-infra/sites/{site-id}/enforcement-points/{enforcementpoint-id}
- PATCH /global-manager/api/v1/global-infra/sites/{site-id}/enforcement-points/{enforcementpoint-id}
- POST /global-manager/api/v1/global-infra/sites/{site-id}/enforcement-points/{enforcementpoint-id}?action=reload
- PUT /global-manager/api/v1/global-infra/sites/{site-id}/enforcement-points/{enforcementpoint-id}
- GET /global-manager/api/v1/global-infra/sites/{site-id}/enforcement-points/{enforcementpoint-id}/edge-clusters
- GET /global-manager/api/v1/global-infra/sites/{site-id}/enforcement-points/{enforcementpoint-id}/edge-clusters/{edge-cluster-id}
List enforcementpoints under Site
Paginated list of all enforcementpoints under Site.Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/sites/default/enforcement-points Successful Response:
Example Response: { "sort_ascending": true, "sort_by": "display_name", "result_count": 1, "results": [ { "resource_type": "EnforcementPoint", "id": "nsxt-ep", "display_name": "/infra/sites/default/enforcement-points/nsxt-ep", "path": "/infra/sites/default/enforcement-points/nsxt-ep", "parent_path": "/infra/sites/default", "relative_path": "nsxt-ep", "connection_info": { "resource_type": "NSXTConnectionInfo", "enforcement_point_address": "10.192.201.163", "thumbprint": "f53d7052535613b3032a41d555631228cb4d0d8b584a8225b94fbf0ba83eb9a4" }, "_create_user": "admin", "_create_time": 1517262573524, "_last_modified_user": "admin", "_last_modified_time": 1517262753660, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 2 } ] } Required Permissions: Feature: site_admin Additional Errors:
Full sync EnforcementPoint from Site
Full sync EnforcementPoint from Site Request:Example Request: POST https://<policy-mgr>/global-manager/api/v1/global-infra/sites/default/enforcement-points/external-ep?action=full-sync Successful Response:
Required Permissions: Feature: site_admin Additional Errors:
Create/update a new Enforcement Point under Site
If the passed Enforcement Point does not already exist, create a new Enforcement Point.If it already exists, replace it.
Request:
Example Request: PUT https://<policy-mgr>/global-manager/api/v1/global-infra/sites/default/enforcement-points/nsxt-ep { "connection_info": { "enforcement_point_address":"10.192.201.163", "resource_type":"NSXTConnectionInfo", "username":"admin", "password":"Admin!23Admin", "thumbprint":"f53d7052535613b3032a41d555631228cb4d0d8b584a8225b94fbf0ba83eb9a4" }, "_revision" : 0 } Successful Response:
Example Response: { "resource_type": "EnforcementPoint", "id": "nsxt-ep", "display_name": "/infra/sites/default/enforcement-points/nsxt-ep", "path": "/infra/sites/default/enforcement-points/nsxt-ep", "parent_path": "/infra/sites/default", "relative_path": "nsxt-ep", "connection_info": { "resource_type": "NSXTConnectionInfo", "enforcement_point_address": "10.192.201.163", "thumbprint": "f53d7052535613b3032a41d555631228cb4d0d8b584a8225b94fbf0ba83eb9a4" }, "_create_user": "admin", "_create_time": 1517262573524, "_last_modified_user": "admin", "_last_modified_time": 1517262573524, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 } Required Permissions: Feature: site_admin Additional Errors:
Patch a new Enforcement Point under Site
If the passed Enforcement Point does not already exist, create a new Enforcement Point.If it already exists, patch it.
Request:
Example Request: PATCH https://<policy-mgr>/global-manager/api/v1/global-infra/sites/default/enforcement-points/nsxt-ep { "connection_info": { "enforcement_point_address":"10.192.201.163", "resource_type":"NSXTConnectionInfo", "username":"admin", "password":"Admin!23Admin", "thumbprint":"f53d7052535613b3032a41d555631228cb4d0d8b584a8225b94fbf0ba83eb9a4" } } Successful Response:
Required Permissions: Feature: site_admin Additional Errors:
Read an Enforcement Point under Infra/Site
Read an Enforcement Point under Infra/SiteRequest:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/sites/default/enforcement-points/nsxt-ep Successful Response:
Example Response: { "resource_type": "EnforcementPoint", "id": "nsxt-ep", "display_name": "/infra/sites/default/enforcement-points/nsxt-ep", "path": "/infra/sites/default/enforcement-points/nsxt-ep", "parent_path": "/infra/sites/default", "relative_path": "nsxt-ep", "connection_info": { "resource_type": "NSXTConnectionInfo", "enforcement_point_address": "10.192.201.163", "thumbprint": "f53d7052535613b3032a41d555631228cb4d0d8b584a8225b94fbf0ba83eb9a4" }, "_create_user": "admin", "_create_time": 1517262573524, "_last_modified_user": "admin", "_last_modified_time": 1517262753660, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 2 } Required Permissions: Feature: site_admin Additional Errors:
Delete EnforcementPoint from Site
Delete EnforcementPoint from Site Request:Example Request: DELETE https://<policy-mgr>/global-manager/api/v1/global-infra/sites/default/enforcement-points/nsxt-ep Successful Response:
Required Permissions: Feature: site_admin Additional Errors:
List Edge Clusters under an Enforcement Point
Paginated list of all Edge Clusters under an Enforcement PointRequest:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/sites/default/enforcement-points/nsxt-ep/edge-clusters Successful Response:
Example Response: { "sort_ascending": true, "sort_by": "display_name", "result_count": 1, "results": [ { "resource_type": "PolicyEdgeCluster", "id": "ec", "display_name": "/infra/sites/default/enforcement-points/nsxt-ep/edge-clusters/ec", "path": "/infra/sites/default/enforcement-points/nsxt-ep/edge-clusters/ec", "parent_path": "/infra/sites/default/enforcement-points/nsxt-ep", "relative_path": "ec", "policy_edge_nodes": [ { "id": "my-policy-edge-node-id", "edge_transport_node_path": "/infra/sites/default/enforcement-points/default/edge-transport-nodes/my-policy-edge-tn-id", "member_index": 0 }, { "id": "my-policy-edge-node-id-1", "edge_transport_node_path": "/infra/sites/default/enforcement-points/default/edge-transport-nodes/my-policy-edge-tn-id-1", "member_index": 1 } ] "nsx_id": "8ce97b79-e2da-4d73-bc3b-4723ccab0600", "_create_user": "admin", "_create_time": 1517262573524, "_last_modified_user": "admin", "_last_modified_time": 1517262753660, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 } ] } Required Permissions: Feature: policy_ep_edge Additional Errors:
Read an Edge Cluster under an Enforcement Point
Read an Edge Cluster under an Enforcement PointRequest:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/sites/default/enforcement-points/nsxt-ep/edge-clusters/ec Successful Response:
Example Response: { "resource_type": "PolicyEdgeCluster", "id": "ec", "display_name": "/infra/sites/default/enforcement-points/nsxt-ep/edge-clusters/ec", "path": "/infra/sites/default/enforcement-points/nsxt-ep/edge-clusters/ec", "parent_path": "/infra/sites/default/enforcement-points/nsxt-ep", "policy_edge_nodes": [ { "id": "my-policy-edge-node-id", "edge_transport_node_path": "/infra/sites/default/enforcement-points/default/edge-transport-nodes/my-policy-edge-tn-id", "member_index": 0 }, { "id": "my-policy-edge-node-id-1", "edge_transport_node_path": "/infra/sites/default/enforcement-points/default/edge-transport-nodes/my-policy-edge-tn-id-1", "member_index": 1 } ] "relative_path": "ec", "nsx_id": "8ce97b79-e2da-4d73-bc3b-4723ccab0600", "_create_user": "admin", "_create_time": 1517262573524, "_last_modified_user": "admin", "_last_modified_time": 1517262753660, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 } Required Permissions: Feature: policy_ep_edge Additional Errors:
Reload an Enforcement Point under Site
Reload an Enforcement Point under Site. This will read and updatefabric configs from enforcement point.
Request:
Example Request: POST https://<policy-mgr>/global-manager/api/v1/global-infra/sites/default/enforcement-points/nsxt-ep?action=reload Successful Response:
Example Response: { "resource_type": "EnforcementPoint", "id": "nsxt-ep", "display_name": "/infra/sites/default/enforcement-points/nsxt-ep", "path": "/infra/sites/default/enforcement-points/nsxt-ep", "parent_path": "/infra/sites/default", "relative_path": "nsxt-ep", "connection_info": { "resource_type": "NSXTConnectionInfo", "enforcement_point_address": "10.192.201.163", "thumbprint": "f53d7052535613b3032a41d555631228cb4d0d8b584a8225b94fbf0ba83eb9a4" }, "_create_user": "admin", "_create_time": 1517262573524, "_last_modified_user": "admin", "_last_modified_time": 1517262753660, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 2 } Required Permissions: Feature: site_admin Additional Errors:
Federation
Federation: Edge Transport Node (Remote Tep)
- GET /global-manager/api/v1/global-infra/sites/{site-id}/enforcement-points/{enforcementpoint-id}/edge-clusters/{edge-cluster-id}/edge-nodes/{policy-edge-node-id}/remote-tep-connectivity/bgp/neighbors
- GET /global-manager/api/v1/global-infra/sites/{site-id}/enforcement-points/{enforcementpoint-id}/edge-clusters/{edge-cluster-id}/edge-nodes/{policy-edge-node-id}/remote-tep-connectivity/bgp/neighbors/{neighbor-id}/advertised-routes
- GET /global-manager/api/v1/global-infra/sites/{site-id}/enforcement-points/{enforcementpoint-id}/edge-clusters/{edge-cluster-id}/edge-nodes/{policy-edge-node-id}/remote-tep-connectivity/bgp/neighbors/{neighbor-id}/routes
- GET /global-manager/api/v1/global-infra/sites/{site-id}/enforcement-points/{enforcementpoint-id}/edge-clusters/{edge-cluster-id}/edge-nodes/{policy-edge-node-id}/remote-tep-connectivity/bgp/summary
- GET /global-manager/api/v1/global-infra/sites/{site-id}/enforcement-points/{enforcementpoint-id}/edge-clusters/{edge-cluster-id}/edge-nodes/{policy-edge-node-id}/remote-tep-connectivity/tunnels/statistics
Paginated list of BGP Neighbors on edge transport node
Paginated list of paginated BGP neighbors on the edge transport node.Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/sites/default/enforcement-points/default/edge-clusters/fa0f2e56-a09c-42f6-9417-adcce68416a4/edge-nodes/0/remote-tep-connectivity/bgp/neighbors Successful Response:
Example Response: { "results": [ { "enabled": true, "neighbor_address": "172.20.10.20", "source_address": "172.20.10.10", "source_addresses": [ "172.20.10.10" ], "maximum_hop_limit": 0, "enable_bfd": false, "remote_as": 65000, "remote_as_num": "65000", "hold_down_timer": 15, "keep_alive_timer": 5, "address_families": [ { "type": "IPV6_UNICAST", "enabled": true, "in_filter_routemap_id": "90318bdc-d9a6-426e-98fc-53e3ea1b68a9", "out_filter_routemap_id": "f1490a33-34cc-4a96-a60a-1da4289f5394" } ], "allow_as_in": false, "graceful_restart_mode": "INVALID", "resource_type": "BgpNeighbor", "id": "504684af-8b62-44c9-8333-39884203b386", "_protection": "NOT_PROTECTED", "_create_time": 1734502487340, "_create_user": "system", "_last_modified_time": 1734502487340, "_last_modified_user": "system", "_revision": 0 }, { "enabled": true, "neighbor_address": "172.20.10.21", "source_address": "172.20.10.10", "source_addresses": [ "172.20.10.10" ], "maximum_hop_limit": 0, "enable_bfd": false, "remote_as": 65000, "remote_as_num": "65000", "hold_down_timer": 15, "keep_alive_timer": 5, "address_families": [ { "type": "IPV6_UNICAST", "enabled": true, "in_filter_routemap_id": "90318bdc-d9a6-426e-98fc-53e3ea1b68a9", "out_filter_routemap_id": "f1490a33-34cc-4a96-a60a-1da4289f5394" } ], "allow_as_in": false, "graceful_restart_mode": "INVALID", "resource_type": "BgpNeighbor", "id": "6f6178a5-5766-4765-b0a0-dbd7bcefa4e9", "_protection": "NOT_PROTECTED", "_create_time": 1734502487342, "_create_user": "system", "_last_modified_time": 1734502487342, "_last_modified_user": "system", "_revision": 0 } ], "result_count": 2 } Required Permissions: Feature: policy_ep_edge 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:
Example Request: GET https://<policy-mgr>/global-manager/api/v1//global-infra/sites/default/enforcement-points/default/edge-clusters/fa0f2e56-a09c-42f6-9417-adcce68416a4/edge-nodes/0/remote-tep-connectivity/bgp/neighbors/504684af-8b62-44c9-8333-39884203b386/advertised-routes Successful Response:
Example Response: { "neighbor_id": "504684af-8b62-44c9-8333-39884203b386", "neighbor_address": "172.20.10.20", "per_transport_node_routes": [ { "source_address": "172.20.10.10", "routes": [ { "network": "fc00::3:fcf9:23:fcf9/128", "next_hop": "::", "local_pref": 100, "weight": 32768, "med": 0, "as_path": "" }, { "network": "fc00::3:98f9:23:98f9/128", "next_hop": "::", "local_pref": 100, "weight": 32768, "med": 0, "as_path": "" }, { "network": "fc00::3:c0f9:23:c0f9/128", "next_hop": "::", "local_pref": 100, "weight": 32768, "med": 0, "as_path": "" } ] } ] } Required Permissions: Feature: policy_ep_edge 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:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/sites/default/enforcement-points/default/edge-clusters/fa0f2e56-a09c-42f6-9417-adcce68416a4/edge-nodes/0/remote-tep-connectivity/bgp/neighbors/504684af-8b62-44c9-8333-39884203b386/routes Successful Response:
Example Response: { "neighbor_id": "504684af-8b62-44c9-8333-39884203b386", "neighbor_address": "172.20.10.20", "per_transport_node_routes": [ { "source_address": "172.20.10.10", "routes": [ { "network": "fc00::3:fcf9:43:fcf9/128", "next_hop": "fe80::1:ac14:a14", "local_pref": 100, "weight": 32768, "med": 0, "as_path": "" }, { "network": "fc00::3:98f9:43:98f9/128", "next_hop": "fe80::1:ac14:a14", "local_pref": 100, "weight": 32768, "med": 0, "as_path": "" }, { "network": "fc00::3:c0f9:43:c0f9/128", "next_hop": "fe80::1:ac14:a14", "local_pref": 100, "weight": 32768, "med": 0, "as_path": "" } ] } ] } Required Permissions: Feature: policy_ep_edge Additional Errors:
Get Remote TEP BGP summary of policy edge transport node.
Get Remote TEP BGP summary of policy edge transport node.Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/sites/default/enforcement-points/default/edge-clusters/fa0f2e56-a09c-42f6-9417-adcce68416a4/edge-nodes/0/remote-tep-connectivity/bgp/summary Successful Response:
Example Response: { "policy_edge_node_path": "/infra/sites/default/enforcement-points/default/edge-clusters/fa0f2e56-a09c-42f6-9417-adcce68416a4/edge-nodes/0", "neighbor_status": [ { "source_address": "172.20.10.10", "local_port": 179, "neighbor_address": "172.20.10.20", "remote_port": 34703, "remote_as_number": "65000", "connection_state": "ESTABLISHED", "messages_received": 145809, "messages_sent": 145797, "time_since_established": 205949, "total_in_prefix_count": 3, "total_out_prefix_count": 3, "address_families": [ { "type": "IPV6_UNICAST", "in_prefix_count": 3, "out_prefix_count": 3 } ], "connection_drop_count": 6, "established_connection_count": 7, "hold_time": 15, "keep_alive_interval": 5, "graceful_restart_mode": "HELPER_ONLY", "announced_capabilities": [ "addPath IPv6 Unicast Rx", "IPv6 Unicast", "hostName advHostName", "routeRefresh", "4byteAs" ], "negotiated_capability": [ "addPath IPv6 Unicast Rx", "IPv6 Unicast", "hostName rcvHostName", "routeRefresh", "4byteAs" ], "neighbor_router_id": "172.20.10.20", "remote_site_path": "/global-infra/sites/Paris" }, { "source_address": "172.20.10.10", "local_port": 179, "neighbor_address": "172.20.10.21", "remote_port": 44337, "remote_as_number": "65000", "connection_state": "ESTABLISHED", "messages_received": 145778, "messages_sent": 145782, "time_since_established": 200713, "total_in_prefix_count": 3, "total_out_prefix_count": 3, "address_families": [ { "type": "IPV6_UNICAST", "in_prefix_count": 3, "out_prefix_count": 3 } ], "connection_drop_count": 12, "established_connection_count": 13, "hold_time": 15, "keep_alive_interval": 5, "graceful_restart_mode": "HELPER_ONLY", "announced_capabilities": [ "addPath IPv6 Unicast Rx", "IPv6 Unicast", "hostName advHostName", "routeRefresh", "4byteAs" ], "negotiated_capability": [ "addPath IPv6 Unicast Rx", "IPv6 Unicast", "hostName rcvHostName", "routeRefresh", "4byteAs" ], "neighbor_router_id": "172.20.10.21", "remote_site_path": "/global-infra/sites/Paris" } ], "last_update_timestamp": 1735231591677 } Required Permissions: Feature: policy_ep_edge Additional Errors:
Get cross-site tunnel statistics of policy edge transport node.
Returns RTEP to RTEP tunnel port statistics of the given edge node. It always returns realtime response.Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/sites/default/enforcement-points/default/edge-clusters/fa0f2e56-a09c-42f6-9417-adcce68416a4/edge-nodes/0/remote-tep-connectivity/tunnels/statistics Successful Response:
Example Response: { "stats_per_site": [ { "remote_site_path": "/global-infra/sites/Paris", "stats_per_tunnel": [ { "tunnel_source_address": "172.20.10.10", "tunnel_destination_address": "172.20.10.20", "rx": { "total_bytes": 30728445, "total_packets": 405923, "dropped_packets": 17, "blocked_packets": 0 }, "tx": { "total_bytes": 48996399, "total_packets": 409618, "dropped_packets": 0, "blocked_packets": 0 } }, { "tunnel_source_address": "172.20.10.10", "tunnel_destination_address": "172.20.10.21", "rx": { "total_bytes": 30361253, "total_packets": 401876, "dropped_packets": 23, "blocked_packets": 0 }, "tx": { "total_bytes": 48280988, "total_packets": 404029, "dropped_packets": 0, "blocked_packets": 0 } } ], "rx": { "total_bytes": 61089698, "total_packets": 807799, "dropped_packets": 40, "blocked_packets": 0 }, "tx": { "total_bytes": 97277387, "total_packets": 813647, "dropped_packets": 0, "blocked_packets": 0 } } ], "last_update_timestamp": 1735233402279 } Required Permissions: Feature: policy_ep_edge Additional Errors:
Federation: Federation Configuration
- GET /global-manager/api/v1/global-infra/federation-config
- GET /global-manager/api/v1/global-infra/global-manager-config?action=show-sensitive-data
- PATCH /global-manager/api/v1/global-infra/global-manager-config
- PUT /global-manager/api/v1/global-infra/global-manager-config
- GET /global-manager/api/v1/global-infra/overridden-resources
Read federation config
Read a federation config from Global Manager. Request:Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/federation-config GET https://<global-mgr>/global-manager/api/v1/global-infra/federation-config Successful Response:
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: Feature: site_admin Additional Errors:
Create or fully replace Global Manager Config
Create or fully replace a Global Manager Config.Revision is optional for creation and required for update.
Request:
Example Request: PUT https://<policy-mgr>/global-manager/api/v1/global-infra/global-manager-config { "rtep_config" : { "ibgp_password": "secureme" }, "_revision": 1 } Successful Response:
Example Response: { "resource_type": "GlobalManagerConfig", "_create_user": "admin", "_create_time": 1517262573524, "_last_modified_user": "admin", "_last_modified_time": 1517262573524, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 2 } Required Permissions: Feature: site_admin Additional Errors:
Create or patch Global Manager Config
Create or patch a Global Manager ConfigRequest:
Example Request: PATCH https://<policy-mgr>/global-manager/api/v1/global-infra/global-manager-config { "rtep_config" : { "ibgp_password": "secureme" } } Successful Response:
Required Permissions: 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:
Example Request: GET https://<pglobal-mgr>/global-manager/api/v1/global-infra/global-manager-config?action=show-sensitive-data GET https://<policy-mgr>/global-manager/api/v1/global-infra/global-manager-config?action=show-sensitive-data Successful Response:
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: Feature: site_admin Additional Errors:
List overridden resources
List overridden resources Request:Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/overridden-resources Successful Response:
Example Response: { "results": [ { "intent_path": "/global-infra/spoofguard-profiles/spoofguard_disabled", "site_path": "/global-infra/sites/Paris", "resource_type": "OverriddenResource", "id": "SPOOFGUARD_PROFILE-spoofguard_disabled-Paris", "display_name": "/global-infra/overriden-objects/SPOOFGUARD_PROFILE-spoofguard_disabled-Paris", "path": "/global-infra/overriden-objects/SPOOFGUARD_PROFILE-spoofguard_disabled-Paris", "relative_path": "SPOOFGUARD_PROFILE-spoofguard_disabled-Paris", "parent_path": "/global-infra", "marked_for_delete": false, "overridden": false, "_system_owned": false, "_create_user": "system", "_create_time": 1580359905533, "_last_modified_user": "system", "_last_modified_time": 1580359905533, "_revision": 0 } ], "result_count": 1 } Required Permissions: Feature: site_admin Additional Errors:
Federation: Full Synchronization
List full sync states
List full sync state. Request:Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/full-sync-states Successful Response:
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: Feature: site_admin Additional Errors:
Get full sync state
Get full sync state. Request:Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/full-sync-states/1234 Successful Response:
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: Feature: site_admin Additional Errors:
Federation: Global Managers
- GET /global-manager/api/v1/gm-operational-state
- GET /global-manager/api/v1/global-infra/global-managers
- DELETE /global-manager/api/v1/global-infra/global-managers/{global-manager-id}
- GET /global-manager/api/v1/global-infra/global-managers/{global-manager-id}
- PATCH /global-manager/api/v1/global-infra/global-managers/{global-manager-id}
- PUT /global-manager/api/v1/global-infra/global-managers/{global-manager-id}
- GET /global-manager/api/v1/global-infra/site-cleanup-pending
- GET /global-manager/api/v1/global-infra/upgrade-summary
Get Global Managed operational state
Global Manager operation state includes the current status, switchover statusof global manager nodes if any, errors if any and consolidated status of the
operation.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/gm-operational-state Successful Response:
Example Response: { "status": "SWITCHING_TO_ACTIVE", "start_time": 2374925435, "end_time": 32342234, "consolidated_progress": "IN_PROGRESS", "nodes" :[ { "node-id": "23fae-332d-34243d-2342aa", "status": "COMPLETED", "start_time": 2374925435, "end_time": 32342234, }, { "node-id": "55fae-332d-34243d-2342fr", "status": "IN_PROGRESS", "start_time": 2374925435, "end_time": 32342234, } ] } Required Permissions: Feature: site_admin Additional Errors:
List Global Managers
List Global Managers under Infra.Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/global-managers Successful Response:
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: Feature: standby_site_admin Additional Errors:
Create or fully replace a Global Manager under infra
Create or fully replace Global Manager under Infra.Revision is optional for creation and required for update.
Global Manager id 'self' is reserved and can be used for referring to local
logged in Global Manager.
Example - /infra/global-managers/self
Request:
Example Request: PUT https://<policy-mgr>/global-manager/api/v1/global-infra/global-managers/Paris { "display_name": "Paris GM", "mode": "ACTIVE", "_revision" : 1 } Successful Response:
Example Response: { "resource_type": "GlobalManager", "id": "Paris", "display_name": "Paris GM", "path": "/infra/global-managers/Paris", "parent_path": "/infra/global-managers/Paris", "relative_path": "Paris", "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: Feature: standby_site_admin Additional Errors:
Create or patch a Global Manager
Create or patch a Global Manager under Infra.Global Manager id 'self' is reserved and can be used for referring to local
logged in Global Manager.
Example - /infra/global-managers/self
Request:
Example Request: PATCH https://<policy-mgr>/global-manager/api/v1/global-infra/global-managers/Paris { "display_name": "Paris GM", "mode": "ACTIVE" } Successful Response:
Required Permissions: 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
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/global-managers/london Successful Response:
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: Feature: standby_site_admin Additional Errors:
Delete a Global Manager under Infra
Delete a particular global manager under Infra.Global Manager id 'self' is reserved and can be used for referring to local
logged in Global Manager.
Example - /infra/global-managers/self
Request:
Example Request: DELETE https://<policy-mgr>/global-manager/api/v1/global-infra/global-managers/london Successful Response:
Required Permissions: Feature: standby_site_admin Additional Errors:
List resources pending to be cleaned from set of sites.
Paginated list of resources pending to be cleaned.Request:
Example Request: GET https://<global-manager>/global-manager/api/v1/global-infra/site-cleanup-pending?intent_path=/global-infra/tier-1s/t1&intent_path=/global-infra/tier-1s/t2 Successful Response:
Example Response: { "results":[ { "resource_path":"/global-infra/tier-1s/t1", "mark_for_delete":true, "pending_sites":[ { "site_id":"0692bb40-f47f-4b16-b09d-b8493e2c37ee", "site_path":"/global-infra/sites/LM-London" }, { "site_id":"1225c8b2-10a3-4b43-b1a0-b11d3b3e0656", "site_path":"/global-infra/sites/LM-Paris" } ] }, { "resource_path":"/global-infra/tier-1s/t1/segments/segment1", "mark_for_delete":true, "pending_sites":[ { "site_id":"0692bb40-f47f-4b16-b09d-b8493e2c37ee", "site_path":"/global-infra/sites/LM-London" }, { "site_id":"1225c8b2-10a3-4b43-b1a0-b11d3b3e0656", "site_path":"/global-infra/sites/LM-Paris" } ] }, { "resource_path":"/global-infra/tier-1s/t2", "mark_for_delete":false, "pending_sites":[ { "site_id":"0692bb40-f47f-4b16-b09d-b8493e2c37ee", "site_path":"/global-infra/sites/LM-London" } ] } ], "result_count":3, "sort_by":"resource_path", "sort_ascending":true } Required Permissions: Feature: site_admin Additional Errors:
Get Upgrade summary
API will return high level summary of Upgrade across various sites.Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/upgrade-summary Successful Response:
Example Response: { "result_count" : 1, "results" : [ { "id": "30f127c3-aab3-42ec-81f8-223b46184695", "name": "Paris Site", "gpm_name": "Paris GM", "site_type": "ACTIVE_SITE", "overall_upgrade_status": "IN_PROGRESS", "current_version": "3.0.0.2.0.68976345", "target_version": "3.1.0.0.0.76898768", "last_upgrade_timestamp": "3425325235235325", "site_ip": "10.2.35.6", "component_status": [ { "component_type": "EDGE", "component_status": "SUCCESS", "progress_percent": "100", "current_version_node_summary": [ { "2.3.4.5.6", "node_count": "2" } ], "target_version": "3.4.5.6.7" }, { "component_type": "HOST", "component_status": "SUCCESS", "progress_percent": "100", "current_version_node_summary": [ { "version": "2.3.4.5.6", "node_count": "3" }, { "version":"2.3.4,5,5", "node_count": "1" } ], "target_version": "3.4.5.6.7" }, { "component_type": "MP", "component_status": "SUCCESS", "progress_percent": "100", "current_version_node_summary": [ { "2.3.4.5.6", "node_count": "3" } ], "target_version": "3.4.5.6.7" } ] } ] } Required Permissions: Feature: utilities_upgrade Additional Errors:
Federation: Inter-Sites (Legacy Management Plane)
- GET /global-manager/api/v1/global-infra/segments/{segment-id}/inter-site-forwarder/site-span-info
- GET /global-manager/api/v1/global-infra/segments/{segment-id}/inter-site-forwarder/statistics
- GET /global-manager/api/v1/global-infra/segments/{segment-id}/inter-site-forwarder/status (Deprecated)
- GET /global-manager/api/v1/global-infra/tier-0s/{tier-0-id}/locale-services/{locale-services-id}/inter-site/bgp-summary (Deprecated)
- GET /global-manager/api/v1/global-infra/tier-0s/{tier-0-id}/locale-services/{locale-services-id}/inter-site/status (Deprecated)
- GET /global-manager/api/v1/global-infra/tier-1s/{tier-1-id}/locale-services/{locale-services-id}/inter-site-forwarder/status
- GET /global-manager/api/v1/global-infra/tier-1s/{tier-1-id}/segments/{segment-id}/inter-site-forwarder/site-span-info
- GET /global-manager/api/v1/global-infra/tier-1s/{tier-1-id}/segments/{segment-id}/inter-site-forwarder/statistics
- GET /global-manager/api/v1/global-infra/tier-1s/{tier-1-id}/segments/{segment-id}/inter-site-forwarder/status (Deprecated)
Get infra segment cross site forwarder placement and HA status
Get infra segment cross site forwarder placement and HA statuss.Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/segments/tier0-ls/inter-site-forwarder/site-span-info?enforcement_point_path=/global-infra/sites/default/enforcement-points/default Successful Response:
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: Feature: policy_segment Additional Errors:
Get infra segment cross site traffic statistics
Get infra segment cross site traffic statistics.Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/segments/tier0-ls/inter-site-forwarder/stats?enforcement_point_path=/global-infra/sites/default/enforcement-points/default Successful Response:
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: Feature: policy_segment Additional Errors:
Get infra segment cross site traffic statistics (Deprecated)
Get infra segment cross site traffic statistics.Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/segments/tier0-ls/inter-site-forwarder/status?enforcement_point_path=/global-infra/sites/default/enforcement-points/default Successful Response:
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: Feature: policy_segment Additional Errors:
Get RTEP span and mac address-table (Deprecated)
Get RTEP span and mac address-table.Request:
Example Request: GET https://policy-mgr/global-manager/api/v1/global-infra/tier-0s/tier0/locale-services/tier0localeservices/inter-site/bgp-summary Successful Response:
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: Feature: policy_connectivity Additional Errors:
Get RTEP mesh connectivity status (Deprecated)
Get RTEP mesh connectivity status.Request:
Example Request: GET https://policy-mgr/global-manager/api/v1/global-infra/tier-0s/tier0/locale-services/tier0localeservices/inter-site/status Successful Response:
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: Feature: policy_connectivity Additional Errors:
Get inter-site L2 forwarder status for Tier1 gateway
Get inter-site L2 forwarder status for Tier1 gateway.Request:
Example Request: GET https://policy-mgr/global-manager/api/v1/global-infra/tier-1s/tier1/locale-services/tier1localeservices/inter-site-forwarder/status Successful Response:
Example Response: { } Required Permissions: Feature: policy_connectivity Additional Errors:
Get segment cross site forwarder placement and HA status
Get segment cross site forwarder placement and HA statuss.Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/tier-1s/tier1/segments/tier1-ls/inter-site-forwarder/site-span-info?enforcement_point_path=/global-infra/sites/default/enforcement-points/default Successful Response:
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: Feature: policy_segment Additional Errors:
Get segment cross site traffic statistics
Get segment cross site traffic statistics.Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/tier-1s/tier1/segments/tier1-ls/inter-site-forwarder/stats?enforcement_point_path=/global-infra/sites/default/enforcement-points/default Successful Response:
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: Feature: policy_segment Additional Errors:
Get segment cross site traffic statistics (Deprecated)
Get segment cross site traffic statistics.Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/tier-1s/tier1/segments/tier1-ls/inter-site-forwarder/status?enforcement_point_path=/global-infra/sites/default/enforcement-points/default Successful Response:
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: Feature: policy_segment Additional Errors:
Federation: Observability
Get monitoring info
Provides federation monitoring information, which includes allconfig flows originating from the site where API is invoked.
Request:
Example Request: GET https://<global-manager>/global-manager/api/v1/observability/flow-details GET https://<local-manager>/global-manager/api/v1/observability/flow-details Successful Response:
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: Feature: site_admin Additional Errors:
Federation: Onboarding
- POST /global-manager/api/v1/global-infra/sites/{site-id}/onboarding?action=start_onboarding
- POST /global-manager/api/v1/global-infra/sites/{site-id}/onboarding?action=check_conflict
- GET /global-manager/api/v1/global-infra/sites/{site-id}/onboarding/feature-summary
- GET /global-manager/api/v1/global-infra/sites/{site-id}/onboarding/invalid-config-details
- GET /global-manager/api/v1/global-infra/sites/{site-id}/onboarding/preferences
- PUT /global-manager/api/v1/global-infra/sites/{site-id}/onboarding/preferences
- GET /global-manager/api/v1/global-infra/sites/{site-id}/onboarding/status
Fetch conflicting entities summary for a Site
Get consolidated list of conflicting entities summary for each supportedfeature for a site with an example.
Request:
Example Request: GET /global-infra/site/site-1/onboarding/feature-summary Successful Response:
Example Response: { "infra_descendants": [ { "feature": { "name": "NETWORK" }, "conflict_count": 0, "total_count": 0 }, { "feature": { "name": "LOCATION" }, "conflict_count": 0, "total_count": 2 }, { "feature": { "name": "DNS" }, "conflict_count": 0, "total_count": 0 }, { "feature": { "name": "DHCP" }, "conflict_count": 0, "total_count": 0 }, { "feature": { "name": "NETWORK_PROFILE" }, "conflict_count": 0, "total_count": 8 }, { "feature": { "name": "CONTEXT_PROFILE" }, "conflict_count": 0, "total_count": 126 }, { "feature": { "name": "SERVICE" }, "conflict_count": 0, "total_count": 2460 }, { "feature": { "name": "TIER1" }, "conflict_count": 0, "total_count": 0 }, { "feature": { "name": "TIER0" }, "conflict_count": 0, "total_count": 0 }, { "feature": { "name": "SECURITY_PROFILE" }, "conflict_count": 0, "total_count": 0 } ], "feature_descendants": [ { "feature": { "name": "UNKNOWN" }, "conflict_count": 0, "total_count": 0 }, { "feature": { "name": "IDS" }, "conflict_count": 0, "total_count": 2 }, { "feature": { "name": "SECURITY_POLICY" }, "conflict_count": 0, "total_count": 230 }, { "feature": { "name": "GATEWAY_PROFILE" }, "conflict_count": 0, "total_count": 4 }, { "feature": { "name": "GATEWAY_PROPERTY" }, "conflict_count": 0, "total_count": 0 }, { "feature": { "name": "IGNORE" }, "conflict_count": 0, "total_count": 2 }, { "feature": { "name": "NAT" }, "conflict_count": 0, "total_count": 0 }, { "feature": { "name": "GROUP" }, "conflict_count": 0, "total_count": 20 }, { "feature": { "name": "IP_ADDRESS_POOL" }, "conflict_count": 0, "total_count": 0 }, { "feature": { "name": "LB" }, "conflict_count": 0, "total_count": 17 }, { "feature": { "name": "VPN" }, "conflict_count": 0, "total_count": 29 } ], "feature_summary" : { "total_conflict_count": 0, "total_count" : 304 } "example": { "name": "service_14", "resource_type": "SERVICE", "path": "/infra/services/service_14" }, "feature_compatibility_data" : [ { "feature": { "name": "SECURITY_POLICY" }, "status" : "INCOMPATIBLE", "details" : [ { "status_code" : 40031, "status_message" : "Incompatible Security Policy order found on..." "attributes" : [ { "name" : "SP_SEQ_INCOMP_CNT", "value" : "12", "value_type" : "INTEGER" } ] } ] } ] } Required Permissions: Feature: federated_site_onboarding Additional Errors:
Fetch feature entities summary details for a Site
Get feature summary details with invalid configuration for a feature.Request:
Example Request: GET /global-infra/site/site-1/onboarding/invalid-config-details?feature=LB Successful Response:
Example Response: { "feature": { "name": "LB" }, "invalid_config_summary": [ { "category": "LB_POOL_GROUP_USE_COUNT", "resource_summary_details": [ { "resource_type": "Group", "resource_list": [ { "name": "group-8", "value": "/infra/domains/domain/groups/group-8", "value_type": "STRING" }, { "name": "group-2", "value": "/infra/domains/domain/groups/group-2", "value_type": "STRING" }, { "name": "group-1", "value": "/infra/domains/domain/groups/group-1", "value_type": "STRING" } ], "resource_count": 3 } ], "resource_count": 3 }, { "category": "LB_POOL_SHARED_SECTION_USE_COUNT", "resource_summary_details": [ { "resource_type": "CommunicationMap", "resource_list": [ { "name": "sec-11", "value": "/infra/domains/default/security-policies/sec-11", "value_type": "STRING" }, { "name": "sec-12", "value": "/infra/domains/default/security-policies/sec-12", "value_type": "STRING" }, { "name": "sec-5", "value": "/infra/domains/default/security-policies/sec-5", "value_type": "STRING" }, { "name": "sec-14", "value": "/infra/domains/default/security-policies/sec-14", "value_type": "STRING" }, { "name": "sec-1", "value": "/infra/domains/default/security-policies/sec-1", "value_type": "STRING" } ], "resource_count": 5 } ], "resource_count": 5 } ], "total_count": 8 } Required Permissions: Feature: federated_site_onboarding Additional Errors:
Update Onboarding Preferences
Update user onboarding preferences to allow or reject site onboarding onglobal manager.
Request:
Example Request: PUT /global-infra/sites/site-1/onboarding/user-preferences { "site_id": "site-1", "ignore_import": true, "resource_type": "SiteOnboardingPreference", "id": "site-1", "display_name": "site-1", "_create_user": "admin", "_create_time": 1581541290117, "_last_modified_user": "admin", "_last_modified_time": 1581541290117, "_system_owned": false, "_revision": 0 } Successful Response:
Example Response: { "site_id": "site-1", "ignore_import": true, "resource_type": "SiteOnboardingPreference", "id": "site-1", "display_name": "site-1", "_create_user": "admin", "_create_time": 1581541290117, "_last_modified_user": "admin", "_last_modified_time": 1581541290117, "_system_owned": false, "_revision": 1 } Required Permissions: Feature: federated_site_onboarding Additional Errors:
Get Onboarding Preferences
Get user onboarding preferences for a site on global manager.Request:
Example Request: GET /global-infra/sites/site-1/onboarding/user-preferences Successful Response:
Example Response: { "site_id": "site-1", "ignore_import": false, "resource_type": "SiteOnboardingPreference", "id": "site-1", "display_name": "site-1", "_create_user": "admin", "_create_time": 1581541290117, "_last_modified_user": "admin", "_last_modified_time": 1581541290117, "_system_owned": false, "_revision": 0 } Required Permissions: Feature: federated_site_onboarding Additional Errors:
Get Onboarding status
Get onboarding status for a site. Request:Example Request: GET /global-infra/sites/site-1/onboarding/status Successful Response:
Example Response: { "site_id": "site-1", "status": "IN_PROGRESS", "details": { "import_progress": { "feature": { "name": "SERVICE" }, "stage": "LM_MIGRATION", "current_step": 1, "total_steps": 5 }, "site_backup_reference": "2020-01-28-Site-1-backup" }, "timestamp": 1581550365276 } Required Permissions: Feature: federated_site_onboarding Additional Errors:
Check Onboarding configuration conflicts
Verifies and reports conflicting onboarding feature for a site. Theresponse will contain first conflicting feature for the site configuration
compared to corresponding global manager configuration.
Request:
Example Request: POST /global-infra/sites/site-1/onboarding??action=check_conflict { "site_id" : "site-1", "suffix": "site-1-suffix" } Successful Response:
Example Response: { "site_id": "site-1", "status": "CONFLICT_DETECTED", "details": { "resource_type" : "Tier0", "name": "routing-gateway", "path": "/infra/tier0s/routing-gateway" } } Required Permissions: Feature: federated_site_onboarding Additional Errors:
Start or Check on-boarding for a Site
Initiate config on-boarding of a Site. The entire on-boarding is asyncworkflow controlled by API.
Request:
Example Request: POST /global-infra/sites/site-1/onboarding?action=start_config_onboarding { "site_id" : "site-1", "suffix": "site-1-suffix", "site_backup_reference" : "2020-01-28-Site-1-backup" } Successful Response:
Example Response: { "site_id": "site-1", "status": "IN_PROGRESS", "supported_features": [], "details": { "import_progress": {}, "site_backup_reference": "2020-01-28-Site-1-backup" }, "timestamp": 1580609440765 } Required Permissions: Feature: federated_site_onboarding Additional Errors:
Federation: Sites
- POST /global-manager/api/v1/global-infra/onboarding-check-compatibility
- GET /global-manager/api/v1/global-infra/sites
- DELETE /global-manager/api/v1/global-infra/sites/{site-id}
- GET /global-manager/api/v1/global-infra/sites/{site-id}
- PATCH /global-manager/api/v1/global-infra/sites/{site-id}
- PUT /global-manager/api/v1/global-infra/sites/{site-id}
- GET /global-manager/api/v1/global-infra/sites/listener_certificate
- GET /global-manager/api/v1/global-infra/span
- GET /api/v1/sites
- GET /api/v1/sites?version=3.0.2
- GET /api/v1/sites?version=3.1.0
- GET /api/v1/sites?version=latest
- GET /api/v1/sites/compatibility
- GET /api/v1/sites/compatibility/remote
- GET /api/v1/sites/self
- GET /api/v1/sites/status
- GET /api/v1/sites/switchover-status
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:
Example Request: POST https://<policy-mgr>/global-manager/api/v1/global-infra/onboarding-check-compatibility { "fqdn": "10.192.201.163", "username": "admin", "password": "Admin!23Admin", "thumbprint": "f53d7052535613b3032a41d555631228cb4d0d8b584a8225b94fbf0ba83eb9a4" } Successful Response:
Example Response: { "rtt": 125, "rtt_exceeded": false, "nsx_version": "3.0.0", "version_compatible" : true } Required Permissions: Feature: site_admin Additional Errors:
List Sites
List Sites under Infra.Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/sites Successful Response:
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: 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:
Example Request: PUT https://<policy-mgr>/global-manager/api/v1/global-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:
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: Feature: site_admin Additional Errors:
Create or patch Site
Create or patch Site under Infra.Request:
Example Request: PATCH https://<policy-mgr>/global-manager/api/v1/global-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:
Required Permissions: Feature: site_admin Additional Errors:
Delete a site
Delete a site under Infra.Request:
Example Request: DELETE https://<policy-mgr>/global-manager/api/v1/global-infra/sites/Paris Successful Response:
Required Permissions: Feature: site_admin Additional Errors:
Read a site
Read a site under Infra.Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/sites/casablanca Successful Response:
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: 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, returnsthe certificate of the listener.
Intent of this API is "Do you trust this certificate?".
Request:
Example Request: POST https://<policy-mgr>/global-policy/api/v1/global-infra/sites/listener_certificate?address=10.22.122.7&port=443 Successful Response:
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: Feature: site_admin Additional Errors:
Get span for an entity with specified path
Get span for an entity with specified path. Request:Example Request: GET https://<global-manager>/global-manager/api/v1/global-infra/span?intent_path=/global-infra/tier-0s/t0 Successful Response:
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: Feature: site_admin Additional Errors:
Get the site configuration
Request:Example Request: GET https://<nsx-mgr>/api/v1/sites Successful Response:
Example Response: { "sites": [ { "id": "c69dd550-841d-4064-bc92-476e977ad04d", "name": "name1", "active_gm": "true", "aph_list": [ { "address": "10.11.12.13", "port": "8000", "certificate": "-----BEGIN CERTIFICATE-----\nMIIC1TCCAb2gAwIBAgIEX135sjANBgkqhkiG9w0BAQsFADAaMRgwFgYDVQQDEw9j\nbHVzdGVyLW1hbmFnZXIwIBcNMTgwODAzMTgyNTI1WhgPMjExODA3MTAxODI1MjVa\nMBoxGDAWBgNVBAMTD2NsdXN0ZXItbWFuYWdlcjCCASIwDQYJKoZIhvcNAQEBBQAD\nggEPADCCAQoCggEBALKz/i+SQzpB7dkaF6tGTm1oP4esjEtd5Pv9beE01qpZv+CA\npAB/BosbDLFvBSwlEwqFZNbNSPlgyfbHCCe28IibWWrkVtIIH/9XVTdsH+iJEG3N\nDXgcn3Qj+PBbYK9K+imF2fQdypeYokMova3YQnBadfTKZgJSc5gt0fKPehLceeHE\nIZz07tfDRMzZg4kYFBURU1u/V17coPD7y/Ja0kGJSBSjN6t/eFqI1PvVLw9niddz\n+yjsRqnvdGnQFoB43LewnbpYxn69qOd9Knu81MP2HR4G2jhVevf/qkG8mS3fS8gu\nFGm2JwtncnWsxGFdb2c/KTMxH0iQEcBCjbph6T0CAwEAAaMhMB8wHQYDVR0OBBYE\nFHhBeWEQrmNTv4otlztUkfVLCzwkMA0GCSqGSIb3DQEBCwUAA4IBAQBAu/jFw3QY\n5eWm3lOBJe67MXXOFVbCLRgcMlXzXoNWStI/3ncH1ZUDH0pz0pcOmyWoWUZ0OSjr\nLz+XMZN6MFgHx2w7RvLXYewFzowVaNu7l/V375Vhv18KpnJ6EjemVQRMZmJQFwda\nMrLU5dSuWVJYoTR6yVneSPasxHMCorTc+K3msVbP/1nh/wSls5Zj8L7jszLOqMpz\nUQL8eYN2r+A/sWFW5Ge6qGTOuOVpUS24isBwRqcyYLD7iJsIzpdebanuTNlXeJJQ\n49yPXri4nzQ4mNsiVCNFGGZyUmBzEpvcx3Lzol790Azk8SHkiGaOQJRKVr8CPszv\nZ12pIgNkADz8\n-----END CERTIFICATE-----\n" } ], } ], "epoch": 1, "version": 1 } Required Permissions: Feature: cluster_management Additional Errors:
Get the compatibility list of the site
Returns the version of this site and list of compatible versionsRequest:
Example Request: GET https://<nsx-mgr>/api/v1/sites/compatibility Successful Response:
Example Response: { "site_version": "3.1.0", "compatibility_list": ["3.0.1", "3.1.0"] } Required Permissions: Feature: cluster_management Additional Errors:
Check whether the remote site version is compatible to this site
Returns the version of this site and list of compatible versions for both local and remote site,also a boolean indicating whether the two are compatible, this value is true if one of the site
version is in the compatibility list of the other site
Request:
Example Request: GET https://<nsx-mgr>/api/v1/sites/compatibility/remote { "address": "10.100.200.10:7441", "username": "admin", "password": "password", "thumbprint": "f656452785a13d8e1431984a0a5137f1e27cdfa43e1cb08f46051a66733ca1b8" } Successful Response:
Example Response: { "local": { "site_version": "3.1.0", "compatibility_list": ["3.0.1", "3.1.0"] } "remote": { "site_version": "3.1.1", "compatibility_list": ["3.1.0", "3.1.1"] } "is_compatible": true } Required Permissions: Feature: cluster_management Additional Errors:
Get the local site configuration
Request:Example Request: GET https://<nsx-mgr>/api/v1/sites/self Successful Response:
Example Response: { "federation_id": "12345", "epoch": 12, "site": { "id": "c69dd550-841d-4064-bc92-476e977ad04d", "name": "name1", "active_gm": "true", "aph_list": [ { "address": "10.11.12.13", "port": "8000", "certificate": "-----BEGIN CERTIFICATE-----\nMIIC1TCCAb2gAwIBAgIEX135sjANBgkqhkiG9w0BAQsFADAaMRgwFgYDVQQDEw9j\nbHVzdGVyLW1hbmFnZXIwIBcNMTgwODAzMTgyNTI1WhgPMjExODA3MTAxODI1MjVa\nMBoxGDAWBgNVBAMTD2NsdXN0ZXItbWFuYWdlcjCCASIwDQYJKoZIhvcNAQEBBQAD\nggEPADCCAQoCggEBALKz/i+SQzpB7dkaF6tGTm1oP4esjEtd5Pv9beE01qpZv+CA\npAB/BosbDLFvBSwlEwqFZNbNSPlgyfbHCCe28IibWWrkVtIIH/9XVTdsH+iJEG3N\nDXgcn3Qj+PBbYK9K+imF2fQdypeYokMova3YQnBadfTKZgJSc5gt0fKPehLceeHE\nIZz07tfDRMzZg4kYFBURU1u/V17coPD7y/Ja0kGJSBSjN6t/eFqI1PvVLw9niddz\n+yjsRqnvdGnQFoB43LewnbpYxn69qOd9Knu81MP2HR4G2jhVevf/qkG8mS3fS8gu\nFGm2JwtncnWsxGFdb2c/KTMxH0iQEcBCjbph6T0CAwEAAaMhMB8wHQYDVR0OBBYE\nFHhBeWEQrmNTv4otlztUkfVLCzwkMA0GCSqGSIb3DQEBCwUAA4IBAQBAu/jFw3QY\n5eWm3lOBJe67MXXOFVbCLRgcMlXzXoNWStI/3ncH1ZUDH0pz0pcOmyWoWUZ0OSjr\nLz+XMZN6MFgHx2w7RvLXYewFzowVaNu7l/V375Vhv18KpnJ6EjemVQRMZmJQFwda\nMrLU5dSuWVJYoTR6yVneSPasxHMCorTc+K3msVbP/1nh/wSls5Zj8L7jszLOqMpz\nUQL8eYN2r+A/sWFW5Ge6qGTOuOVpUS24isBwRqcyYLD7iJsIzpdebanuTNlXeJJQ\n49yPXri4nzQ4mNsiVCNFGGZyUmBzEpvcx3Lzol790Azk8SHkiGaOQJRKVr8CPszv\nZ12pIgNkADz8\n-----END CERTIFICATE-----\n" } ] } } Required Permissions: Feature: cluster_management Additional Errors:
Get overall status of the federation, including stub status
Request:Example Request: GET https://<nsx-mgr>/api/v1/sites/status Successful Response:
Example Response: { "remote_connections": [ { "site_name": "site name", "stubs": { "address": "10.160.223.31", "connection_up": true } } ], "active_standby_sync_statuses": [ { "standby_site": "London", "is_data_consistent": true, "description": "status description", "status": "ONGOING", "percentage_completed": 70, "remaining_entries_to_send": 5, "sync_type": "DELTA_SYNC", "full_sync_status": { "sync_id": "9d33ec11-3c7a-46bc-80f9-88adc21c8289", "status": "COMPLETE", "sync_type": "STANDARD", "completed_at": "1600913640000", "snapshot_version": "781" } } ] } Required Permissions: Feature: cluster_management Additional Errors:
Get the switchover status
Request:Example Request: GET https://<nsx-mgr>/api/v1/sites/switchover-status Successful Response:
Example Response: { "overall_status": "ERROR", "note": "", "current_step": { "name": "precheck", "description": "precheck", "parts": [ { "name": "precheck", "description": "precheck", "status": "ERROR", "percentage": 0, "error": "Some problem have occured" } ] }, "current_step_number", 1, "number_of_stemps", 6 } Required Permissions: Feature: cluster_management Additional Errors:
Get the site configuration, some attributes won't be shown based on version
Request:Example Request: GET https://<nsx-mgr>/api/v1/sites?version=latest Successful Response:
Example Response: { "sites": [ { "id": "c69dd550-841d-4064-bc92-476e977ad04d", "name": "name1", "active_gm": "true", "aph_list": [ { "address": "10.11.12.13", "port": "8000", "certificate": "-----BEGIN CERTIFICATE-----\nMIIC1TCCAb2gAwIBAgIEX135sjANBgkqhkiG9w0BAQsFADAaMRgwFgYDVQQDEw9j\nbHVzdGVyLW1hbmFnZXIwIBcNMTgwODAzMTgyNTI1WhgPMjExODA3MTAxODI1MjVa\nMBoxGDAWBgNVBAMTD2NsdXN0ZXItbWFuYWdlcjCCASIwDQYJKoZIhvcNAQEBBQAD\nggEPADCCAQoCggEBALKz/i+SQzpB7dkaF6tGTm1oP4esjEtd5Pv9beE01qpZv+CA\npAB/BosbDLFvBSwlEwqFZNbNSPlgyfbHCCe28IibWWrkVtIIH/9XVTdsH+iJEG3N\nDXgcn3Qj+PBbYK9K+imF2fQdypeYokMova3YQnBadfTKZgJSc5gt0fKPehLceeHE\nIZz07tfDRMzZg4kYFBURU1u/V17coPD7y/Ja0kGJSBSjN6t/eFqI1PvVLw9niddz\n+yjsRqnvdGnQFoB43LewnbpYxn69qOd9Knu81MP2HR4G2jhVevf/qkG8mS3fS8gu\nFGm2JwtncnWsxGFdb2c/KTMxH0iQEcBCjbph6T0CAwEAAaMhMB8wHQYDVR0OBBYE\nFHhBeWEQrmNTv4otlztUkfVLCzwkMA0GCSqGSIb3DQEBCwUAA4IBAQBAu/jFw3QY\n5eWm3lOBJe67MXXOFVbCLRgcMlXzXoNWStI/3ncH1ZUDH0pz0pcOmyWoWUZ0OSjr\nLz+XMZN6MFgHx2w7RvLXYewFzowVaNu7l/V375Vhv18KpnJ6EjemVQRMZmJQFwda\nMrLU5dSuWVJYoTR6yVneSPasxHMCorTc+K3msVbP/1nh/wSls5Zj8L7jszLOqMpz\nUQL8eYN2r+A/sWFW5Ge6qGTOuOVpUS24isBwRqcyYLD7iJsIzpdebanuTNlXeJJQ\n49yPXri4nzQ4mNsiVCNFGGZyUmBzEpvcx3Lzol790Azk8SHkiGaOQJRKVr8CPszv\nZ12pIgNkADz8\n-----END CERTIFICATE-----\n" } ], } ], "epoch": 1, "version": 1 } Required Permissions: Feature: cluster_management Additional Errors:
Federation: Sites (Security Settings)
This routine will get site security setting
This routine will get site security settingRequest:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/sites/London/security-setting { "air_gapped": true, "resource_type": "SiteSecuritySetting", "id": "security-setting", "display_name": "security-setting", "path": "/global-infra/sites/LM/security-setting", "relative_path": "security-setting", "parent_path": "/global-infra/sites/LM", "unique_id": "ffaca9ae-4a90-4f9f-ba88-4369e02bf3e3", "owner_id": "6c5b2358-5862-49d8-952e-611b8cd32bf1", "marked_for_delete": false, "overridden": false, "_create_time": 1718858458723, "_create_user": "admin", "_last_modified_time": 1718858458723, "_last_modified_user": "admin", "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 } Successful Response:
Required Permissions: Feature: policy_security_settings Additional Errors:
This routine will update site security setting
This routine will update site security setting.Request:
Example Request: PATCH https://<policy-mgr>/global-manager/api/v1/global-infra/sites/London/security-setting { "air_gapped": true } Successful Response:
Required Permissions: Feature: policy_security_settings Additional Errors:
This routine will update site security setting
This routine will update site security setting.Request:
Example Request: PUT https://<policy-mgr>/global-manager/api/v1/global-infra/sites/London/security-setting { "air_gapped": true } Successful Response:
Example Response: { "air_gapped": true, "resource_type": "SiteSecuritySetting", "id": "security-setting", "display_name": "security-setting", "path": "/global-infra/sites/LM/security-setting", "relative_path": "security-setting", "parent_path": "/global-infra/sites/LM", "unique_id": "ffaca9ae-4a90-4f9f-ba88-4369e02bf3e3", "owner_id": "6c5b2358-5862-49d8-952e-611b8cd32bf1", "marked_for_delete": false, "overridden": false, "_create_time": 1718858458723, "_create_user": "admin", "_last_modified_time": 1718858458723, "_last_modified_user": "admin", "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 } Required Permissions: Feature: policy_security_settings Additional Errors:
This routine will delete site security setting
This routine will delete site security setting.Request:
Example Request: DELETE https://<policy-mgr>/global-manager/api/v1/global-infra/sites/London/security-setting Successful Response:
Required Permissions: Feature: policy_security_settings Additional Errors:
Inventory
Inventory: Context Profiles
- GET /global-manager/api/v1/global-infra/context-profiles
- DELETE /global-manager/api/v1/global-infra/context-profiles/{context-profile-id}
- GET /global-manager/api/v1/global-infra/context-profiles/{context-profile-id}
- PATCH /global-manager/api/v1/global-infra/context-profiles/{context-profile-id}
- PUT /global-manager/api/v1/global-infra/context-profiles/{context-profile-id}
- GET /global-manager/api/v1/global-infra/context-profiles/attribute-types
- GET /global-manager/api/v1/global-infra/context-profiles/attributes
- PATCH /global-manager/api/v1/global-infra/context-profiles/custom-attributes (Deprecated)
- POST /global-manager/api/v1/global-infra/context-profiles/custom-attributes (Deprecated)
- GET /global-manager/api/v1/global-infra/context-profiles/custom-attributes/default
- PATCH /global-manager/api/v1/global-infra/context-profiles/custom-attributes/default
- POST /global-manager/api/v1/global-infra/context-profiles/custom-attributes/default
Get PolicyContextProfiles
Get all PolicyContextProfilesRequest:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/context-profiles/ { "sort_ascending": true, "sort_by": "display_name", "result_count": 1, "results": [ { "resource_type":"PolicyContextProfile", "display_name":"testPolicyContextProfile", "description":"Test Policy Context Profile", "attributes":[ { "key":"APP_ID", "value":[ "TLS" ], "datatype":"STRING", "sub_attributes":[ { "key":"TLS_VERSION", "value": [ "TLS_V13" ], "datatype":"STRING" }, { "key":"ENCRYPTION_ALGORITHM", "value": [ "TLS_RSA_EXPORT_WITH_RC4_40_MD5" ], "datatype":"STRING" } ], }, { "key":"DOMAIN_NAME", "value": [ "*.office365.com" ], "datatype":"STRING" } ] } ] } Successful Response:
Required Permissions: Feature: policy_context_profile Additional Errors:
Create or partially update a Policy Context Profile
Creates a new Policy Context Profile or selectively updates the fieldsprovided in the request body of an existing one.
Rules for using attributes and sub-attributes in a single PolicyContextProfile:
1. Each attribute key may appear only once per profile. (e.g. APP_ID
can be specified at most once.)
2. Multiple values for an attribute must be supplied as an array.
3. When sub-attributes are provided for an attribute, that attribute
must have exactly one value.
4. The reserved id "custom_attributes" must not be used as a profile id.
Request:
Example Request: PATCH https://<policy-mgr>/global-manager/api/v1/global-infra/context-profiles/testPolicyContextProfile { "resource_type":"PolicyContextProfile", "display_name":"testPolicyContextProfile", "description":"Test Policy Context Profile", "attributes":[ { "key":"APP_ID", "value":[ "SSL" ], "datatype":"STRING", "sub_attributes":[ { "key":"TLS_VERSION", "value":[ "TLS_V13" ], "datatype":"STRING" }, { "key":"TLS_CIPHER_SUITE", "value":[ "TLS_RSA_EXPORT_WITH_RC4_40_MD5" ], "datatype":"STRING" } ] }, { "key":"DOMAIN_NAME", "value":[ "*.office365.com" ], "datatype":"STRING" } ] } Successful Response:
Required Permissions: Feature: policy_context_profile Additional Errors:
Create or replace a Policy Context Profile
Creates a new Policy Context Profile or fully replaces an existing one.The entire profile is replaced with the contents of the request body;
any fields not included in the request will be reset to their defaults.
Rules for using attributes and sub-attributes in a single PolicyContextProfile:
1. Each attribute key may appear only once per profile. (e.g. APP_ID
can be specified at most once.)
2. Multiple values for an attribute must be supplied as an array.
3. When sub-attributes are provided for an attribute, that attribute
must have exactly one value.
4. The reserved id "custom_attributes" must not be used as a profile id.
Request:
Example Request: PUT https://<policy-mgr>/global-manager/api/v1/global-infra/context-profiles/testPolicyContextProfile { "resource_type":"PolicyContextProfile", "display_name":"testPolicyContextProfile", "description":"Test Policy Context Profile", "attributes":[ { "key":"APP_ID", "value":[ "SSL" ], "datatype":"STRING", "sub_attributes":[ { "key":"TLS_VERSION", "value": [ "TLS_V13" ], "datatype":"STRING" }, { "key":"TLS_CIPHER_SUITE", "value": [ "TLS_RSA_EXPORT_WITH_RC4_40_MD5" ], "datatype":"STRING" } ] }, { "key":"DOMAIN_NAME", "value": [ "*.office365.com" ], "datatype":"STRING" } ] } Successful Response:
Required Permissions: Feature: policy_context_profile Additional Errors:
Get PolicyContextProfile
Get a single PolicyContextProfile by idRequest:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/context-profiles/testPolicyContextProfile { "resource_type":"PolicyContextProfile", "display_name":"testPolicyContextProfile", "description":"Test Policy Context Profile", "attributes":[ { "key":"APP_ID", "value":[ "TLS" ], "datatype":"STRING", "sub_attributes":[ { "key":"TLS_VERSION", "value": [ "TLS_V13" ], "datatype":"STRING" }, { "key":"ENCRYPTION_ALGORITHM", "value": [ "TLS_RSA_EXPORT_WITH_RC4_40_MD5" ], "datatype":"STRING" } ], }, { "key":"DOMAIN_NAME", "value": [ "*.office365.com" ], "datatype":"STRING" } ] } Successful Response:
Required Permissions: Feature: policy_context_profile Additional Errors:
Delete Policy Context Profile
Deletes the specified Policy Context Profile. If the Policy ContextProfile is consumed in a firewall rule, it won't get deleted.
Request:
Example Request: DELETE https://<policy-mgr>/global-manager/api/v1/global-infra/context-profiles/testPolicyContextProfile Successful Response:
Required Permissions: Feature: policy_context_profile Additional Errors:
List Context Profile supported attribute types
Returns supported attribute type strings for Context Profile.Request:
Example Request: GET https://<nsx-mgr>/global-manager/api/v1/global-infra/context-profiles/attribute-types Successful Response:
Example Response: { "attribute_types": [ "APP_ID", "DOMAIN_NAME", "URL_CATEGORY", "URL_REPUTATION", "CUSTOM_URL" ] } Required Permissions: Feature: policy_context_profile Additional Errors:
List Policy Context Profile supported attributes and sub-attributes
Returns supported attributes and sub-attributes along with their allowedvalues. When an attribute_key query parameter is supplied, only the
matching attribute and its sub-attributes are returned. When omitted,
all supported attribute keys and their corresponding values are returned.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/context-profiles/attributes Successful Response:
Example Response: { "sort_ascending": true, "sort_by": "display_name", "result_count": 1, "results": [ { "attributes":[ { "key":"APP_ID", "value": [ "SSL" ], "datatype":"STRING", "description":"SSL (Secure Sockets Layer) is a cryptographic protocol that provides security over the Internet.", "sub_attributes":[ { "key":"TLS_VERSION", "value": [ "TLS_V10", "TLS_V11", "TLS_V12", "TLS_V13" ], "datatype":"STRING" }, { "key":"TLS_CIPHER_SUITE", "value": [ "TLS_RSA_EXPORT_WITH_RC4_40_MD5", "SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA", ] "datatype":"STRING" } ], }, { "key":"DOMAIN_NAME", "value": [ "*.office365.com" ], "datatype":"STRING", "description":"Office 365 url" } ] } ] } Required Permissions: Feature: policy_context_profile Additional Errors:
Update custom object attribute value list for given attribute key (Deprecated)
This API updates custom attribute value list for given key.Request:
Example Request: PATCH https://<policy-mgr>/global-manager/api/v1/global-infra/context-profiles/custom-attributes Successful Response:
Example Response: { "key":"DOMAIN_NAME", "value":[ "*.office365.com", "*.azure.com" ], "datatype":"STRING" } Required Permissions: Feature: policy_context_profile Additional Errors:
Adds/Removes custom attribute values from list (Deprecated)
This API adds/removes custom attribute values from list for a given attribute key.Request:
Example Request: POST https://<policy-mgr>/global-manager/api/v1/global-infra/context-profiles/custom-attributes?action=add Successful Response:
Example Response: { "key":"DOMAIN_NAME", "value":[ "*.office365.com", "*.azure.com" ], "datatype":"STRING" } Required Permissions: Feature: policy_context_profile Additional Errors:
Update custom attribute value list for given attribute key.
This API updates custom attribute value list for given key in the request. This replaces theexisting list with the list provided in the request
Request:
Example Request: PATCH https://<policy-mgr>/global-manager/api/v1/global-infra/context-profiles/custom-attributes/default { "key":"DOMAIN_NAME", "value":[ "*.customdomainname1.com", "*.customdomainname2.com" ], "datatype":"STRING" } Successful Response:
Example Response: 200 OK Required Permissions: Feature: policy_context_profile Additional Errors:
Retrieves custom attribute values for given attribute key
This API lists all the custom attribute values defined in the system for the attribute_keymentioned as part of the url.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/context-profiles/custom-attributes/default?attribute_key=DOMAIN_NAME Successful Response:
Example Response: { "key":"DOMAIN_NAME", "value":[ "*.office365.com", "*.azure.com" ], "datatype":"STRING" } Required Permissions: Feature: policy_context_profile Additional Errors:
Adds/Removes custom attribute values from list
This API adds/removes custom attribute values from list for a given attribute key. The values in therequest will be added or removed from the existing list.
Request:
Example Request: POST https://<policy-mgr>/global-manager/api/v1/global-infra/context-profiles/custom-attributes/default?action=add { "key":"DOMAIN_NAME", "value":[ "*.customdomainname5.com", "*.customdomainname6.com" ], "datatype":"STRING" } Successful Response:
Example Response: 200 OK Required Permissions: Feature: policy_context_profile Additional Errors:
Inventory: Group Members
- GET /global-manager/api/v1/global-infra/bms-group-associations
- GET /global-manager/api/v1/global-infra/bmsi-group-associations
- GET /global-manager/api/v1/global-infra/cloud-native-service-group-associations
- GET /global-manager/api/v1/global-infra/domains/{domain-id}/groups/{group-id}/members/bms
- GET /global-manager/api/v1/global-infra/domains/{domain-id}/groups/{group-id}/members/bmsi
- GET /global-manager/api/v1/global-infra/domains/{domain-id}/groups/{group-id}/members/cloud-native-service-instances
- GET /global-manager/api/v1/global-infra/domains/{domain-id}/groups/{group-id}/members/dvpg
- GET /global-manager/api/v1/global-infra/domains/{domain-id}/groups/{group-id}/members/dvports
- GET /global-manager/api/v1/global-infra/domains/{domain-id}/groups/{group-id}/members/ip-addresses
- GET /global-manager/api/v1/global-infra/domains/{domain-id}/groups/{group-id}/members/ip-groups
- GET /global-manager/api/v1/global-infra/domains/{domain-id}/groups/{group-id}/members/logical-ports (Deprecated)
- GET /global-manager/api/v1/global-infra/domains/{domain-id}/groups/{group-id}/members/logical-switches (Deprecated)
- GET /global-manager/api/v1/global-infra/domains/{domain-id}/groups/{group-id}/members/pods
- GET /global-manager/api/v1/global-infra/domains/{domain-id}/groups/{group-id}/members/segment-ports
- GET /global-manager/api/v1/global-infra/domains/{domain-id}/groups/{group-id}/members/segments
- GET /global-manager/api/v1/global-infra/domains/{domain-id}/groups/{group-id}/members/vifs
- GET /global-manager/api/v1/global-infra/domains/{domain-id}/groups/{group-id}/members/virtual-machines
- GET /global-manager/api/v1/global-infra/domains/{domain-id}/groups/{group-id}/members/vpcs
- GET /global-manager/api/v1/global-infra/domains/{domain-id}/groups/{group-id}/tags
- GET /global-manager/api/v1/global-infra/group-associations
- GET /global-manager/api/v1/global-infra/ip-address-group-associations
- GET /global-manager/api/v1/global-infra/pod-group-associations
- GET /global-manager/api/v1/global-infra/virtual-machine-group-associations
- GET /global-manager/api/v1/global-infra/virtual-network-interface-group-associations
Get groups for which the given bare metal server (BMS) is a member
Get policy groups for which the given bare metal server (BMS) is a member.Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/bms-group-associations?bms_external_id=564de333-15ac-de52-da90-974fe099a17b&enforcement_point_path=/global-infra/sites/default/enforcement-points/ep1 Successful Response:
Example Response: { "result_count": 2, "results": [ { { "path" : "/infra/domains/domain1/groups/g1", "target_id" : "g1", "target_display_name" : "group-1", "target_type" : "DOMAIN_GROUP", "is_valid" : "true", "owner_id": "4c5c5516-087a-47cd-9fba-a7669775d308", "origin_site_id": "4c5c5516-087a-47cd-9fba-a7669775d308" }, { "path" : "/infra/domains/domain1/groups/g2", "target_id" : "g2", "target_display_name" : "group-2", "target_type" : "DOMAIN_GROUP", "is_valid" : "true", "owner_id": "4c5c5516-087a-47cd-9fba-a7669775d308", "origin_site_id": "4c5c5516-087a-47cd-9fba-a7669775d308" } } ] } Required Permissions: Feature: policy_grouping Additional Errors:
Get groups for which the given bare metal server interface (BMSI) is a member
Get policy groups for which the given bare metal server interface (BMSI) is a member.Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/bmsi-group-associations?bmsi_external_id=564de333-15ac-de52-da90-974fe099a17b&enforcement_point_path=/global-infra/sites/default/enforcement-points/ep1 Successful Response:
Example Response: { "result_count": 2, "results": [ { { "path" : "/infra/domains/domain1/groups/g1", "target_id" : "g1", "target_display_name" : "group-1", "target_type" : "DOMAIN_GROUP", "is_valid" : "true", "owner_id": "4c5c5516-087a-47cd-9fba-a7669775d308", "origin_site_id": "4c5c5516-087a-47cd-9fba-a7669775d308" }, { "path" : "/infra/domains/domain1/groups/g2", "target_id" : "g2", "target_display_name" : "group-2", "target_type" : "DOMAIN_GROUP", "is_valid" : "true", "owner_id": "4c5c5516-087a-47cd-9fba-a7669775d308", "origin_site_id": "4c5c5516-087a-47cd-9fba-a7669775d308" } } ] } Required Permissions: Feature: policy_grouping Additional Errors:
Get groups for which the given Cloud Native Service Instance is a member
Get policy groups for which the given Cloud Native Service Instance is a member.Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/cloud-native-service-group-associations?cns_external_id=564de333-15ac-de52-da90-974fe099a17b&enforcement_point_path=/global-infra/sites/default/enforcement-points/ep1 Successful Response:
Example Response: { "result_count": 2, "results": [ { { "path" : "/infra/domains/domain1/groups/g1", "target_id" : "g1", "target_display_name" : "group-1", "target_type" : "DOMAIN_GROUP", "is_valid" : "true", "owner_id": "4c5c5516-087a-47cd-9fba-a7669775d308", "origin_site_id": "4c5c5516-087a-47cd-9fba-a7669775d308" }, { "path" : "/infra/domains/domain1/groups/g2", "target_id" : "g2", "target_display_name" : "group-2", "target_type" : "DOMAIN_GROUP", "is_valid" : "true", "owner_id": "4c5c5516-087a-47cd-9fba-a7669775d308", "origin_site_id": "4c5c5516-087a-47cd-9fba-a7669775d308" } } ] } Required Permissions: Feature: policy_grouping Additional Errors:
Get Effective Bare Metal Servers(BMS) that belong to this group.
Returns Effective Bare metal servers(BMS) that belong to this group.This API is applicable only for Groups containing BMS member type.
For Groups containing other member types,it returns an empty list.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/domains/d1/groups/g1/members/bms?enforcement_point_path=/global-infra/sites/default/enforcement-points/ep1 Successful Response:
Example Response: { "cursor" : "00361f148bdc-fe7c-4320-8ef3-594e28d57c87Iws-2", "result_count": 1, "results": [ { "display_name": "BM-1", "tags": [ { "scope": "os", "tag": "linux86" } ], "resource_type": "BareMetalServer", "source_id": "74730a28-e52d-11e5-936e-6f061d405a11", "external_id": "74730a28-e52d-11e5-936e-6f061d405a22", "cpu_cores": 4 "os_info": { "os_name": "Ubuntu Linux (64-bit)", "os_version": "20.0" }, "_last_sync_time": 1493291539130 } ] } Required Permissions: Feature: policy_grouping Additional Errors:
Get Effective Bare Metal Server Interfaces(BMSI) that belong to this group.
Returns Effective Bare metal server interfaces (BMSI) that belong to this group.This API is applicable only for Groups containing BMSI member type.
For Groups containing other member types,it returns an empty list.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/domains/d1/groups/g1/members/bmsi?enforcement_point_path=/global-infra/sites/default/enforcement-points/ep1 Successful Response:
Example Response: { "cursor" : "00361f148bdc-fe7c-4320-8ef3-594e28d57c87Iws-2", "result_count": 1, "results": [ { "external_id": "5006d98a-352f-134f-df6b-33e7f8d5de65", "tags": [ { "scope": "os", "tag": "linux86" } ], "resource_type": "BareMetalServerInterface", "bms_external_id": "5006d98a-352f-134f-df6b-33e7f8d54444", "display_name": "Interface1", "ip_addresses": [ "172.16.20.10", "fe80::250:56ff:fe86:f2b2" ], "mac_address": "00:50:56:86:f2:b2", "source_id": "74730a28-e52d-11e5-936e-6f061d405a28", "is_mgmt_interface": "true", "state": "UP" } ] } Required Permissions: Feature: policy_grouping Additional Errors:
Get Effective Cloud Native Service Instances that belong to this group.
Returns Effective Cloud Native Service Instances that belong to this group.This API is applicable only for Groups containing CloudNativeServiceInstance member type.
For Groups containing other member types,it returns an empty list.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/domains/d1/groups/g1/members/cloud-native-service-instances?enforcement_point_path=/global-infra/sites/default/enforcement-points/ep1 Successful Response:
Example Response: { "cursor" : "00361f148bdc-fe7c-4320-8ef3-594e28d57c87Iws-2", "result_count" : 1, "results" : [ { "display_name" : "CNS-2", "id" : "420e72c9-55e7-a4f7-81bf-673a2af1a6cf" } ] } Required Permissions: Feature: policy_grouping Additional Errors:
Get Discovered Port Groups that belong to this Group
Get Discovered Port Groups that belong to this GroupRequest:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/domains/d1/groups/g1/members/dvpg?enforcement_point_path=/global-infra/sites/default/enforcement-points/default Successful Response:
Example Response: { "results": [ { "id": "dvpg-1", "display_name": "segment-1", "path": "/infra/segments/segment-1" } ], "result_count": 1, "sort_by": "display_name", "sort_ascending": true } Required Permissions: Feature: policy_grouping Additional Errors:
Get discovered ports that belong to this Group
Get discovered ports that belong to this GroupRequest:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/domains/d1/groups/g1/members/segment-ports?enforcement_point_path=/global-infra/sites/default/enforcement-points/default Successful Response:
Example Response: { "results": [ { "id": "default:4a5a3cd0-6f0a-40b0-a31a-1f55d51e1824", "display_name": "nbokare-10.160.129.166-vdtest-97902/VM-1-10.160.129.166-20190505-122351-03783733@b089f7e1-433f-4ecc-9722-ab5f2b66d391", "path": "/infra/segments/segment-1/ports/default:4a5a3cd0-6f0a-40b0-a31a-1f55d51e1824" } ], "result_count": 1, "sort_by": "display_name", "sort_ascending": true } Required Permissions: Feature: policy_grouping Additional Errors:
Get IP addresses that belong to this Group
Get IP addresses that belong to this Group.This API is applicable for Groups containing either VirtualMachine, VIF,
Segment ,Segment Port or IP Address member type.For Groups containing other
member types,an empty list is returned
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/domains/d1/groups/g1/members/ip-addresses?enforcement_point_path=/global-infra/sites/default/enforcement-points/ep1 Successful Response:
Example Response: { "result_count": 3, "results": [ "192.168.0.0/24", "192.168.0.1", "192.168.0.1-192.168.0.100" ] } Required Permissions: Feature: policy_grouping Additional Errors:
Get Effective IPGroups that belong to this group.
Returns effective IPGroups that belong to this group.This API is applicable only for Groups containing IPSet member type.
For Groups containing other member types,it returns an empty list.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/domains/d1/groups/g1/members/ip-groups?enforcement_point_path=/global-infra/sites/default/enforcement-points/ep1 Successful Response:
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: Feature: policy_grouping Additional Errors:
Get logical ports that belong to this Group (Deprecated)
Get logical ports that belong to this GroupThis API is applicable for Groups containing either VirtualMachine, VIF,
Segment or Segment Port member type.For Groups containing other
member types,an empty list is returned.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/domains/d1/groups/g1/members/logical-ports?enforcement_point_path=/global-infra/sites/default/enforcement-points/ep1 Successful Response:
Example Response: { "result_count": 2, "results": [ { "id" : "20c1ac1f-58b5-4241-a352-f8e82c4a8c65", "display_name" : "LP-HR1" }, { "id" : "c07005fe-4a9a-47f1-9a1e-2db65a285124", "display_name" : "LP-HR2" } ] } Required Permissions: Feature: policy_grouping Additional Errors:
Get logical switches that belong to this Group (Deprecated)
Get logical switches that belong to this Group.This API is applicable for Groups containing Segment member type.
For Groups containing other member types, an empty list is returned.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/domains/d1/groups/g1/members/logical-switches?enforcement_point_path=/global-infra/sites/default/enforcement-points/ep1 Successful Response:
Example Response: { "result_count": 2, "results": [ { "id" : "20c1ac1f-58b5-4241-a352-f8e82c4a8c65", "display_name" : "LS-HR1" }, { "id" : "c07005fe-4a9a-47f1-9a1e-2db65a285124", "display_name" : "LS-HR2" } ] } Required Permissions: Feature: policy_grouping Additional Errors:
Get pods that belong to this Group
Get pods that belong to this Group. This API is applicable for Groupscontaining either Pod, Cluster, Namespace, Service member type. For
Groups containing other member types an empty list is returned
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/domains/d1/groups/g1/members/pods?enforcement_point_path=/global-infra/sites/default/enforcement-points/default&cluster_id=6ar43cd0-6f0a-40b0-a31a-1f55d51e1824 Successful Response:
Example Response: { "results": [ { "cluster_id":"6ar43cd0-6f0a-40b0-a31a-1f55d51e1824", "pods":[ { "id": "4a5a3cd0-6f0a-40b0-a31a-1f55d51e1824", "display_name": "Container1" }, { "id": "54R3W356-6f0a-40b0-a31a-1f55d51e1824", "display_name": "Container2" } ] } ], "result_count": 1, "sort_by": "display_name", "sort_ascending": true } Required Permissions: Feature: policy_grouping Additional Errors:
Get segment ports that belong to this Group
Get segment ports that belong to this GroupRequest:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/domains/d1/groups/g1/members/segment-ports?enforcement_point_path=/global-infra/sites/default/enforcement-points/default Successful Response:
Example Response: { "results": [ { "id": "default:4a5a3cd0-6f0a-40b0-a31a-1f55d51e1824", "display_name": "nbokare-10.160.129.166-vdtest-97902/VM-1-10.160.129.166-20190505-122351-03783733@b089f7e1-433f-4ecc-9722-ab5f2b66d391", "path": "/infra/segments/segment-1/ports/default:4a5a3cd0-6f0a-40b0-a31a-1f55d51e1824" } ], "result_count": 1, "sort_by": "display_name", "sort_ascending": true } Required Permissions: Feature: policy_grouping Additional Errors:
Get segments that belong to this Group
Get segments that belong to this GroupRequest:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/domains/d1/groups/g1/members/segments?enforcement_point_path=/global-infra/sites/default/enforcement-points/default Successful Response:
Example Response: { "results": [ { "id": "segment-1", "display_name": "segment-1", "path": "/infra/segments/segment-1" } ], "result_count": 1, "sort_by": "display_name", "sort_ascending": true } Required Permissions: Feature: policy_grouping Additional Errors:
Get Virtual Network Interface instances that belong to this Group
Get Virtual Network Interface instances that belong to this Group.This API is applicable for Groups containing VirtualNetworkInterface and VirtualMachine member types.
For Groups containing other member types,an empty list is returned.target_id in response
is external_id of VirtualNetworkInterface or VirtualMachine.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/domains/d1/groups/g1/members/vifs?enforcement_point_path=/global-infra/sites/default/enforcement-points/ep1 Successful Response:
Example Response: { "results": [ { "external_id": "564dda4e-bc05-061c-dac7-7a314e0e0c9c-4000", "owner_vm_id": "1778a2b0-7f9b-4c64-806c-bc13d6d60762", "owner_vm_type": "REGULAR", "host_id": "28477562-ea6f-11e9-9c84-f98983786a98", "vm_local_id_on_host": "1", "device_key": "4000", "device_name": "Network adapter 1", "mac_address": "00:0c:29:0e:0c:9c", "ip_address_info": [ { "source": "VM_TOOLS", "ip_addresses": [ "10.170.66.155", "fd01:3:4:2825:c5dc:25a5:fbb9:6762", "fd01:3:4:2825:2c49:a400:48df:23dd", "fd01:3:4:2825:34ca:5670:96e0:6edf", "fd01:3:4:2825:d9e4:5e51:6df6:c93e", "fd01:3:4:2825:b002:86da:30d4:1030", "fd01:3:4:2825:20c:29ff:fe0e:c9c", "fe80::20c:29ff:fe0e:c9c", "fd01:3:4:2825:eddf:5879:67d5:6293", "fd01:3:4:2825:f027:6316:8de5:3a29" ] } ], "resource_type": "VirtualNetworkInterface", "display_name": "Network adapter 1", "_last_sync_time": 0 } ], "result_count": 1, "sort_by": "display_name", "sort_ascending": true } Required Permissions: Feature: policy_grouping Additional Errors:
Get Virtual machines that belong to this Group
Get Virtual machines that belong to this Group.This API is applicable for Groups containing VirtualMachine,member type.
For Groups containing other member types,an empty list is returned.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/domains/d1/groups/g1/members/virtual-machines?enforcement_point_path=/global-infra/sites/default/enforcement-points/ep1 Successful Response:
Example Response: { "sort_ascending": true, "sort_by": "display_name", "result_count": 1, "results": [ { "resource_type": "RealizedVirtualMachine", "id": "564de333-15ac-de52-da90-974fe099a17b", "display_name": "1-vm_ubuntu_1404_srv_64-local-586-bb9bbaf4-7f29-4e7a-9216-ef33890bf081", "path": "/infra/realized-state/enforcement-points/nsx-1/virtual-machines/564de333-15ac-de52-da90-974fe099a17b", "parent_path": "/infra/realized-state/enforcement-points/nsx-1", "relative_path": "564de333-15ac-de52-da90-974fe099a17b", "intent_reference": [], "realization_specific_identifier": "564de333-15ac-de52-da90-974fe099a17b", "alarms": [], "state": "REALIZED", "runtime_status": "UNKNOWN", "compute_ids": [ "moIdOnHost:1", "hostLocalId:1", "locationId:564de333-15ac-de52-da90-974fe099a17b", "instanceUuid:bb9bbaf4-7f29-4e7a-9216-ef33890bf081", "externalId:564de333-15ac-de52-da90-974fe099a17b", "biosUuid:564de333-15ac-de52-da90-974fe099a17b" ], "power_state": "VM_RUNNING", "_create_user": "system", "_create_time": 1519383616259, "_last_modified_user": "system", "_last_modified_time": 1519383616259, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 } ] } Required Permissions: Feature: policy_grouping Additional Errors:
Get VPCs that belong to this Group
Get VPCs that belong to this GroupRequest:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/domains/d1/groups/g1/members/vpcs?enforcement_point_path=/global-infra/sites/default/enforcement-points/default Successful Response:
Example Response: { "results": [ { "id": "vpc-1", "display_name": "vpc-1", "path": "/orgs/default/projects/project-1/vpcs/vpc-1" } ], "result_count": 1, "sort_by": "display_name", "sort_ascending": true } Required Permissions: Feature: policy_grouping Additional Errors:
Get tags used to define conditions inside a Group
Get tags used to define conditions inside a Group. Alsoincludes tags inside nested groups.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/domains/d1/groups/g1/tags Successful Response:
Example Response: { "result_count": 2, "results": [ { "member_type" : "IPSet", "tags" : [ "Web", "DB", "App" ] }, { "member_type" : "VirtualMachine", "tags" : [ "Linux", "Windows", "Mac" ] } ] } Required Permissions: Feature: policy_grouping Additional Errors:
Get groups for which the given object is a member
Get policy groups for which the given object is a member.In Federation environment, if the given object is a global entity
(eg: global segment) and if the entity is not stretched to the site
specified in the enforcement_point_path parameter,then the following is returned:-
1)If the entity is a member of any global group and that group is stretched
to the enforcement_point_path site,then the API returns an empty list.
2)If the entity is not a member of any global group,this API returns
an 'invalid path' error message.
3)If both the entity and its corresponding groups are stretched to the
enforcement_point_path site , then the API returns the groups list.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/group-associations?intent_path=/global-infra/segment/s1&enforcement_point_path=/global-infra/sites/default/enforcement-points/ep1 Successful Response:
Example Response: { "result_count": 2, "results": [ { { "path" : "/infra/domains/domain1/groups/g1", "target_id" : "g1", "target_display_name" : "group-1", "target_type" : "DOMAIN_GROUP", "is_valid" : "true", "owner_id": "4c5c5516-087a-47cd-9fba-a7669775d308", "origin_site_id": "4c5c5516-087a-47cd-9fba-a7669775d308" }, { "path" : "/infra/domains/domain1/groups/g2", "target_id" : "g2", "target_display_name" : "group-2", "target_type" : "DOMAIN_GROUP", "is_valid" : "true", "owner_id": "4c5c5516-087a-47cd-9fba-a7669775d308", "origin_site_id": "4c5c5516-087a-47cd-9fba-a7669775d308", } } ] } Required Permissions: Feature: policy_grouping Additional Errors:
Get groups for which the given IP address is a member
Get policy groups for which the given IP address is a member.Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/ip-address-group-associations?ip_address=10.1.19.10&enforcement_point_path=/global-infra/sites/default/enforcement-points/ep1 Successful Response:
Example Response: { "result_count": 2, "results": [ { { "path" : "/infra/domains/domain1/groups/g1", "target_id" : "g1", "target_display_name" : "group-1", "target_type" : "DOMAIN_GROUP", "is_valid" : "true", "owner_id": "4c5c5516-087a-47cd-9fba-a7669775d308", "origin_site_id": "4c5c5516-087a-47cd-9fba-a7669775d308" }, { "path" : "/infra/domains/domain1/groups/g2", "target_id" : "g2", "target_display_name" : "group-2", "target_type" : "DOMAIN_GROUP", "is_valid" : "true", "owner_id": "4c5c5516-087a-47cd-9fba-a7669775d308", "origin_site_id": "4c5c5516-087a-47cd-9fba-a7669775d308" } } ] } Required Permissions: Feature: policy_grouping Additional Errors:
Get groups for which the given pod is a member
Get policy groups for which the given pod is a member.Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/pod-group-associations?pod_id=64dde333-15ac-de52-da90-974de459a17b&enforcement_point_path=/global-infra/sites/default/enforcement-points/ep1 Successful Response:
Example Response: { "result_count": 2, "results": [ { { "path" : "/infra/domains/domain1/groups/g1", "target_id" : "g1", "target_display_name" : "group-1", "target_type" : "DOMAIN_GROUP", "is_valid" : "true", "owner_id": "4c5c5516-087a-47cd-9fba-a7669775d308", "origin_site_id": "4c5c5516-087a-47cd-9fba-a7669775d308" }, { "path" : "/infra/domains/domain1/groups/g2", "target_id" : "g2", "target_display_name" : "group-2", "target_type" : "DOMAIN_GROUP", "is_valid" : "true", "owner_id": "4c5c5516-087a-47cd-9fba-a7669775d308", "origin_site_id": "4c5c5516-087a-47cd-9fba-a7669775d308" } } ] } Required Permissions: Feature: policy_grouping Additional Errors:
Get groups for which the given VM is a member
Get policy groups for which the given VM is a member.Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/virtual-machine-group-associations?vm_external_id=564de333-15ac-de52-da90-974fe099a17b&enforcement_point_path=/global-infra/sites/default/enforcement-points/ep1 Successful Response:
Example Response: { "result_count": 2, "results": [ { { "path" : "/infra/domains/domain1/groups/g1", "target_id" : "g1", "target_display_name" : "group-1", "target_type" : "DOMAIN_GROUP", "is_valid" : "true", "owner_id": "4c5c5516-087a-47cd-9fba-a7669775d308", "origin_site_id": "4c5c5516-087a-47cd-9fba-a7669775d308" }, { "path" : "/infra/domains/domain1/groups/g2", "target_id" : "g2", "target_display_name" : "group-2", "target_type" : "DOMAIN_GROUP", "is_valid" : "true", "owner_id": "4c5c5516-087a-47cd-9fba-a7669775d308", "origin_site_id": "4c5c5516-087a-47cd-9fba-a7669775d308" } } ] } Required Permissions: Feature: policy_grouping Additional Errors:
Get groups for which the given VIF is a member
Get policy groups for which the given VIF is a member.Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/virtual-network-interface-group-associations?vif_external_id=564de333-15ac-de52-da90-974fe099a17b&enforcement_point_path=/global-infra/sites/default/enforcement-points/ep1 Successful Response:
Example Response: { "result_count": 2, "results": [ { { "path" : "/infra/domains/domain1/groups/g1", "target_id" : "g1", "target_display_name" : "group-1", "target_type" : "DOMAIN_GROUP", "is_valid" : "true", "owner_id": "4c5c5516-087a-47cd-9fba-a7669775d308", "origin_site_id": "4c5c5516-087a-47cd-9fba-a7669775d308" }, { "path" : "/infra/domains/domain1/groups/g2", "target_id" : "g2", "target_display_name" : "group-2", "target_type" : "DOMAIN_GROUP", "is_valid" : "true", "owner_id": "4c5c5516-087a-47cd-9fba-a7669775d308", "origin_site_id": "4c5c5516-087a-47cd-9fba-a7669775d308" } } ] } Required Permissions: Feature: policy_grouping Additional Errors:
Inventory: Groups
- GET /global-manager/api/v1/global-infra/domains/{domain-id}/groups
- DELETE /global-manager/api/v1/global-infra/domains/{domain-id}/groups/{group-id}
- GET /global-manager/api/v1/global-infra/domains/{domain-id}/groups/{group-id}
- PATCH /global-manager/api/v1/global-infra/domains/{domain-id}/groups/{group-id}
- PUT /global-manager/api/v1/global-infra/domains/{domain-id}/groups/{group-id}
- DELETE /global-manager/api/v1/global-infra/domains/{domain-id}/groups/{group-id}/external-id-expressions/{expression-id}
- PATCH /global-manager/api/v1/global-infra/domains/{domain-id}/groups/{group-id}/external-id-expressions/{expression-id}
- POST /global-manager/api/v1/global-infra/domains/{domain-id}/groups/{group-id}/external-id-expressions/{expression-id}
- DELETE /global-manager/api/v1/global-infra/domains/{domain-id}/groups/{group-id}/ip-address-expressions/{expression-id}
- PATCH /global-manager/api/v1/global-infra/domains/{domain-id}/groups/{group-id}/ip-address-expressions/{expression-id}
- POST /global-manager/api/v1/global-infra/domains/{domain-id}/groups/{group-id}/ip-address-expressions/{expression-id}
- DELETE /global-manager/api/v1/global-infra/domains/{domain-id}/groups/{group-id}/mac-address-expressions/{expression-id}
- PATCH /global-manager/api/v1/global-infra/domains/{domain-id}/groups/{group-id}/mac-address-expressions/{expression-id}
- POST /global-manager/api/v1/global-infra/domains/{domain-id}/groups/{group-id}/mac-address-expressions/{expression-id}
- GET /global-manager/api/v1/global-infra/domains/{domain-id}/groups/{group-id}/member-types
- DELETE /global-manager/api/v1/global-infra/domains/{domain-id}/groups/{group-id}/path-expressions/{expression-id}
- PATCH /global-manager/api/v1/global-infra/domains/{domain-id}/groups/{group-id}/path-expressions/{expression-id}
- POST /global-manager/api/v1/global-infra/domains/{domain-id}/groups/{group-id}/path-expressions/{expression-id}
List Groups for a domain
List Groups for a domain. Groups can be filtered using member_types query parameter,which returns the groups that contains the specified member types. Multiple member types
can be provided as comma separated values. The API also return groups having member
type that are subset of provided member_types.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/domains/vmc/groups Successful Response:
Example Response: { "sort_ascending": true, "sort_by": "display_name", "result_count": 1, "results": [ { "resource_type": "Group", "description": "web group", "id": "webgroup", "display_name": "web group", "path": "/infra/domains/vmc/groups/webgroup", "parent_path": "/infra/domains/vmc", "relative_path": "webgroup", "expression": [ { "resource_type": "Condition", "member_type": "VirtualMachine", "value": "webvm", "key": "Tag", "operator": "EQUALS", "_protection": "NOT_PROTECTED" } ], "_create_user": "admin", "_create_time": 1517308749250, "_last_modified_user": "admin", "_last_modified_time": 1517308749250, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 } ] } Required Permissions: Feature: policy_grouping Additional Errors:
Patch a group
If a group with the group-id is not already present, create a new group.If it already exists, patch the group.
Group created with Kubernetes membership criteria includes only Antrea reported inventory as its members.
Once created, Groups with Identity (Directory) Group members should be updated with the new Distinguished Name in case it is changed on AD Server.
Maximum of 500 malicious IP Groups (i.e Group with criteria having IPAddress equals All MALICIOUS_IP) should be created.
Request:
Example Request: PATCH https://<policy-mgr>/global-manager/api/v1/global-infra/domains/vmc/groups/webgroup { "expression": [ { "member_type": "VirtualMachine", "value": "webvm", "key": "Tag", "operator": "EQUALS", "resource_type": "Condition" } ], "description": "web group", "display_name": "web group" } Successful Response:
Required Permissions: Feature: policy_grouping Additional Errors:
Create or update a group
If a group with the group-id is not already present, create a new group.If it already exists, update the group.
Avoid creating groups with multiple MACAddressExpression and IPAddressExpression.
In future releases, group will be restricted to contain a single
MACAddressExpression and IPAddressExpression along with other expressions.
To group IPAddresses or MACAddresses, use nested groups instead of multiple
IPAddressExpressions/MACAddressExpression.
Group created with Kubernetes membership criteria includes only Antrea reported inventory as its members.
Once created, Groups with Identity (Directory) Group members should be updated with the new Distinguished Name in case it is changed on AD Server.
Maximum of 500 malicious IP Groups (i.e Group with criteria having IPAddress equals All MALICIOUS_IP) should be created.
Request:
Example Request: PUT https://<policy-mgr>/global-manager/api/v1/global-infra/domains/vmc/groups/webgroup { "expression": [ { "member_type": "VirtualMachine", "value": "webvm", "key": "Tag", "operator": "EQUALS", "resource_type": "Condition" } ], "description": "web group", "display_name": "web group", "_revision":0 } Successful Response:
Example Response: { "resource_type": "Group", "description": "web group", "id": "webgroup", "display_name": "web group", "path": "/infra/domains/vmc/groups/webgroup", "parent_path": "/infra/domains/vmc", "relative_path": "webgroup", "expression": [ { "resource_type": "Condition", "member_type": "VirtualMachine", "value": "webvm", "key": "Tag", "operator": "EQUALS", "_protection": "NOT_PROTECTED" } ], "_create_user": "admin", "_create_time": 1517308749250, "_last_modified_user": "admin", "_last_modified_time": 1517308749250, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 } Required Permissions: Feature: policy_grouping Additional Errors:
Read a group by ID
Returns the configuration of a specific group within a domain, identifiedby domain ID and group ID. Groups define membership criteria for workloads and are
used as sources, destinations, and scopes in security policies.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/domains/vmc/groups/webgroup Successful Response:
Example Response: { "resource_type": "Group", "description": "web group", "id": "webgroup", "display_name": "web group", "path": "/infra/domains/vmc/groups/webgroup", "parent_path": "/infra/domains/vmc", "relative_path": "webgroup", "expression": [ { "resource_type": "Condition", "member_type": "VirtualMachine", "value": "webvm", "key": "Tag", "operator": "EQUALS", "_protection": "NOT_PROTECTED" } ], "_create_user": "admin", "_create_time": 1517308749250, "_last_modified_user": "admin", "_last_modified_time": 1517308749250, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 } Required Permissions: Feature: policy_grouping Additional Errors:
Delete Group
Delete the group with group_id under domain domain_id. The force query parameter supported on theAPI is deprecated. Usage of the force query parameter does not alter the behaviour of the API. The
API just ignores the force parameter.
Request:
Example Request: DELETE https://<policy-mgr>/global-manager/api/v1/global-infra/domains/vmc/groups/webgroup Successful Response:
Required Permissions: Feature: policy_grouping Additional Errors:
Patch a group external ID expression
If a group ExternalIDexpression with the expression-id is not already present, create a new ExternalIDexpresison.If it already exists, replace the existing ExternalIDexpression.
Request:
Example Request: PATCH https://<policy-mgr>/global-manager/api/v1/global-infra/domains/vmc/groups/webgroup/external-id-expressions/exp1 { "member_type": "VirtualMachine", "external_ids": [ "00989582-0920-459e-a8a6-ebf65a140aa9" ], "resource_type": "ExternalIDExpression", "id": "exp1" } Successful Response:
Required Permissions: Feature: policy_grouping Additional Errors:
Delete Group External ID Expression
Delete Group External ID Expression Request:Example Request: DELETE https://<policy-mgr>/global-manager/api/v1/global-infra/domains/vmc/groups/webgroup/external-id-expressions/exp1 Successful Response:
Required Permissions: Feature: policy_grouping Additional Errors:
Add or Remove external id based members from/to a Group
It will add or remove the specified members having external ID for a given expression of a group.Request:
Example Request: ## For adding external id based members to a Group POST /global-infra/domains/default/groups/VMGroup/external-id-expressions/vmexp?action=add { "members": [ "527ef6f5-0fea-b910-1efb-0991e41e44cd", "527ef6f5-0fea-b910-1efb-0991e41e44ce" ] } ## For removing external id based members from a Group POST /global-infra/domains/default/groups/VMGroup/external-id-expressions/vmexp?action=remove { "members": [ "527ef6f5-0fea-b910-1efb-0991e41e44cd", "527ef6f5-0fea-b910-1efb-0991e41e44ce" ] } Successful Response:
Example Response: 200 OK Required Permissions: Feature: policy_grouping Additional Errors:
Patch a group IP Address expression
If a group IPAddressExpression with the expression-id is not already present, create a new IPAddressExpression.If it already exists, replace the existing IPAddressExpression.
Request:
Example Request: PATCH https://<policy-mgr>/global-manager/api/v1/global-infra/domains/vmc/groups/webgroup/ip-address-expressions/exp1 { "ip_addresses": [ "10.110.9.21", "10.112.9.22" ], "resource_type": "IPAddressExpression", "id" : "exp1" } Successful Response:
Required Permissions: Feature: policy_grouping Additional Errors:
Delete Group IPAddressExpression
Delete Group IPAddressExpression Request:Example Request: DELETE https://<policy-mgr>/global-manager/api/v1/global-infra/domains/vmc/groups/webgroup/ip-address-expressions/exp1 Successful Response:
Required Permissions: Feature: policy_grouping Additional Errors:
Add or Remove IP Addresses from/to a Group
It will add or remove the specified IP Addresses from a given expression of a group.Request:
Example Request: ## For adding ip addresses to a Group POST /global-infra/domains/default/groups/IPGroup/ip-address-expressions/ipaddressexp?action=add { "ip_addresses": [ "10.110.9.4-10.110.9.10", "10.110.9.3/24" ] } ## For removing ip addresses from a Group POST /global-infra/domains/default/groups/IPGroup/ip-address-expressions/ipaddressexp?action=remove { "ip_addresses": [ "10.110.9.4-10.110.9.10", "10.110.9.3/24" ] } Successful Response:
Example Response: 200 OK Required Permissions: Feature: policy_grouping Additional Errors:
Patch a group MAC Address expression
If a group MACAddressExpression with the expression-id is not already present, create a new MACAddressExpression.If it already exists, replace the existing MACAddressExpression.
Request:
Example Request: PATCH https://<policy-mgr>/global-manager/api/v1/global-infra/domains/vmc/groups/webgroup/mac-address-expressions/exp1 { "mac_addresses": [ "00:0a:95:9d:68:21", "00:0a:95:9d:68:22" ], "resource_type": "MACAddressExpression", "id" : "exp1" } Successful Response:
Required Permissions: Feature: policy_grouping Additional Errors:
Delete Group MACAddressExpression
Delete Group MACAddressExpression Request:Example Request: DELETE https://<policy-mgr>/global-manager/api/v1/global-infra/domains/vmc/groups/webgroup/mac-address-expressions/exp1 Successful Response:
Required Permissions: Feature: policy_grouping Additional Errors:
Add or Remove MAC Addresses from/to a Group
It will add or remove the specified MAC Addresses from a given expression of a group.Request:
Example Request: ## For adding mac addresses to a Group POST /global-infra/domains/default/groups/MACGroup/mac-address-expressions/macaddressexp?action=add { "mac_addresses": [ "00:0a:95:9d:68:16", "00:0a:95:9d:68:17" ] } ## For removing mac addresses from a Group POST /global-infra/domains/default/groups/MACGroup/mac-address-expressions/macaddressexp?action=remove { "mac_addresses": [ "00:0a:95:9d:68:16", "00:0a:95:9d:68:17" ] } Successful Response:
Example Response: 200 OK Required Permissions: Feature: policy_grouping Additional Errors:
Get member types for a given Group based on the expressions used in the group.
It retrieves member types for a given group - based on the expression used in the group or the definition of thegroup via static and dynamic criteria. In case of nested groups, it calculates member types of child groups as well.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/domains/vmc/groups/webgroup/member-types Successful Response:
Example Response: { "resultCount": 1, "results" : ["VirtualMachine"] } Required Permissions: Feature: policy_grouping Additional Errors:
Patch a group path expression
If a group path_expression with the expression-id is not already present, create a new pathexpresison.If it already exists, replace the existing pathexpression.
Request:
Example Request: PATCH https://<policy-mgr>/global-manager/api/v1/global-infra/domains/vmc/groups/webgroup/path-expression/exp1 { "paths": [ "/global-infra/domains/default/groups/childgroup8" ], "resource_type": "PathExpression", "id": "exp1" } Successful Response:
Required Permissions: Feature: policy_grouping Additional Errors:
Delete Group Path Expression
Delete Group Path Expression Request:Example Request: DELETE https://<policy-mgr>/global-manager/api/v1/global-infra/domains/vmc/groups/webgroup/path-expressions/exp1 Successful Response:
Required Permissions: Feature: policy_grouping Additional Errors:
Add or Remove path based members from/to a Group
It will add or remove the specified members having path for a given expression of a group.Request:
Example Request: ## For adding path based members to a Group POST /global-infra/domains/default/groups/NestedGroup/path-expressions/pathexp?action=add { "members": [ "/global-infra/domains/default/groups/GroupTag", "/global-infra/domains/default/groups/VMGroup" ] } ## For removing path based members from a Group POST /global-infra/domains/default/groups/NestedGroup/path-expressions/pathexp?action=remove { "members": [ "/global-infra/domains/default/groups/GroupTag", "/global-infra/domains/default/groups/VMGroup" ] } Successful Response:
Example Response: 200 OK Required Permissions: Feature: policy_grouping Additional Errors:
Inventory: Services
- GET /global-manager/api/v1/global-infra/services
- DELETE /global-manager/api/v1/global-infra/services/{service-id}
- GET /global-manager/api/v1/global-infra/services/{service-id}
- PATCH /global-manager/api/v1/global-infra/services/{service-id}
- PUT /global-manager/api/v1/global-infra/services/{service-id}
- GET /global-manager/api/v1/global-infra/services/{service-id}/service-entries
- DELETE /global-manager/api/v1/global-infra/services/{service-id}/service-entries/{service-entry-id}
- GET /global-manager/api/v1/global-infra/services/{service-id}/service-entries/{service-entry-id}
- PATCH /global-manager/api/v1/global-infra/services/{service-id}/service-entries/{service-entry-id}
- PUT /global-manager/api/v1/global-infra/services/{service-id}/service-entries/{service-entry-id}
List all Services
Returns a paginated list of all services.Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/services Successful Response:
Example Response: { "sort_ascending": true, "sort_by": "display_name", "result_count": 402, "results": [ { "resource_type": "Service", "description": "AD Server", "id": "AD_Server", "display_name": "AD Server", "path": "/infra/services/AD_Server", "parent_path": "/infra/services/AD_Server", "relative_path": "AD_Server", "service_entries": [ { "resource_type": "L4PortSetServiceEntry", "id": "AD_Server", "display_name": "AD Server", "path": "/infra/services/AD_Server/service-entries/AD_Server", "parent_path": "/infra/services/AD_Server", "relative_path": "AD_Server", "destination_ports": [ "1024" ], "l4_protocol": "TCP", "_create_user": "system", "_create_time": 1517296380484, "_last_modified_user": "system", "_last_modified_time": 1517296380484, "_system_owned": true, "_protection": "NOT_PROTECTED", "_revision": 0 } ], "_create_user": "system", "_create_time": 1517296380468, "_last_modified_user": "system", "_last_modified_time": 1517296380468, "_system_owned": true, "_protection": "NOT_PROTECTED", "_revision": 0 } } Required Permissions: Feature: policy_services Additional Errors:
Create or update a Service
Create a new service if a service with the given ID does not alreadyexist. Creates new service entries if populated in the service.
If a service with the given ID already exists, update the service
including the nested service entries. This is a full replace.
Request:
Example Request: PUT https://<policy-mgr>/global-manager/api/v1/global-infra/services/my-http { "description": "My HTTP", "display_name": "My HTTP", "_revision": 0, "service_entries": [ { "resource_type": "L4PortSetServiceEntry", "display_name": "MyHttpEntry", "destination_ports": [ "8080" ], "l4_protocol": "TCP" } ] } Successful Response:
Example Response: { "resource_type": "Service", "description": "My HTTP", "id": "my-http", "display_name": "My HTTP", "path": "/infra/services/my-http", "parent_path": "/infra/services/my-http", "relative_path": "my-http", "service_entries": [ { "resource_type": "L4PortSetServiceEntry", "id": "MyHttpEntry", "display_name": "MyHttpEntry", "path": "/infra/services/my-http/service-entries/MyHttpEntry", "parent_path": "/infra/services/my-http", "relative_path": "MyHttpEntry", "destination_ports": [ "8080" ], "l4_protocol": "TCP", "_create_user": "admin", "_create_time": 1517310677617, "_last_modified_user": "admin", "_last_modified_time": 1517310677617, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 } ], "_create_user": "admin", "_create_time": 1517310677604, "_last_modified_user": "admin", "_last_modified_time": 1517310677604, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 } Required Permissions: Feature: policy_services Additional Errors:
Patch a Service
Create a new service if a service with the given ID does not alreadyexist. Creates new service entries if populated in the service.
If a service with the given ID already exists, patch the service
including the nested service entries.
Request:
Example Request: PATCH https://<policy-mgr>/global-manager/api/v1/global-infra/services/my-http { "description": "My HTTP Patched", "display_name": "My HTTP", "service_entries": [ { "resource_type": "L4PortSetServiceEntry", "display_name": "MyHttpEntry", "destination_ports": [ "8080" ], "l4_protocol": "TCP" } ] } Successful Response:
Required Permissions: Feature: policy_services Additional Errors:
Read a service by ID
Returns the configuration of a specific service identified by service ID.Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/services/my-http Successful Response:
Example Response: { "resource_type": "Service", "description": "My HTTP", "id": "my-http", "display_name": "My HTTP", "path": "/infra/services/my-http", "parent_path": "/infra/services/my-http", "relative_path": "my-http", "service_entries": [ { "resource_type": "L4PortSetServiceEntry", "id": "MyHttpEntry", "display_name": "MyHttpEntry", "path": "/infra/services/my-http/service-entries/MyHttpEntry", "parent_path": "/infra/services/my-http", "relative_path": "MyHttpEntry", "destination_ports": [ "8080" ], "l4_protocol": "TCP", "_create_user": "admin", "_create_time": 1517310677617, "_last_modified_user": "admin", "_last_modified_time": 1517310677617, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 } ], "_create_user": "admin", "_create_time": 1517310677604, "_last_modified_user": "admin", "_last_modified_time": 1517310677604, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 } Required Permissions: Feature: policy_services Additional Errors:
Delete Service
Delete Service Request:Example Request: DELETE https://<policy-mgr>/global-manager/api/v1/global-infra/services/my-http Successful Response:
Required Permissions: Feature: policy_services Additional Errors:
List Service entries for the given service
Return list of Service entries for the given serviceRequest:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/services/my-http/service-entries Successful Response:
Example Response: { "sort_ascending": true, "sort_by": "display_name", "result_count": 2, "results": [ { "resource_type": "L4PortSetServiceEntry", "id": "MyHttpEntry", "display_name": "MyHttpEntry", "path": "/infra/services/my-http/service-entries/MyHttpEntry", "parent_path": "/infra/services/my-http", "relative_path": "MyHttpEntry", "destination_ports": [ "8080" ], "l4_protocol": "TCP", "_create_user": "admin", "_create_time": 1517310677617, "_last_modified_user": "admin", "_last_modified_time": 1517310677617, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 }, { "resource_type": "L4PortSetServiceEntry", "id": "https", "display_name": "MyHttps", "path": "/infra/services/my-http/service-entries/https", "parent_path": "/infra/services/my-http", "relative_path": "https", "destination_ports": [ "7443" ], "l4_protocol": "TCP", "_create_user": "admin", "_create_time": 1517316057383, "_last_modified_user": "admin", "_last_modified_time": 1517316057383, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 } ] } Required Permissions: Feature: policy_services Additional Errors:
Create or update a ServiceEntry
If a service entry with the service-entry-id is not already present,create a new service entry. If it already exists, update the service
entry.
Request:
Example Request: PUT https://<policy-mgr>/global-manager/api/v1/global-infra/services/my-http/service-entries/https { "resource_type": "L4PortSetServiceEntry", "display_name": "MyHttps", "destination_ports": [ "7443" ], "l4_protocol": "TCP", "_revision": 0 } Successful Response:
Example Response: { "resource_type": "L4PortSetServiceEntry", "id": "https", "display_name": "MyHttps", "path": "/infra/services/my-http/service-entries/https", "parent_path": "/infra/services/my-http", "relative_path": "https", "destination_ports": [ "7443" ], "l4_protocol": "TCP", "_create_user": "admin", "_create_time": 1517316057383, "_last_modified_user": "admin", "_last_modified_time": 1517316057383, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 } Required Permissions: Feature: policy_services Additional Errors:
Patch a ServiceEntry
If a service entry with the service-entry-id is not already present,create a new service entry. If it already exists, patch the service
entry.
Request:
Example Request: PATCH https://<policy-mgr>/global-manager/api/v1/global-infra/services/my-http/service-entries/https { "resource_type": "L4PortSetServiceEntry", "display_name": "MyHttps", "destination_ports": [ "9443" ], "l4_protocol": "TCP" } Successful Response:
Required Permissions: Feature: policy_services Additional Errors:
Read service entry
Read service entry Request:Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/services/my-http/service-entries/https Successful Response:
Example Response: { "resource_type": "L4PortSetServiceEntry", "id": "https", "display_name": "MyHttps", "path": "/infra/services/my-http/service-entries/https", "parent_path": "/infra/services/my-http", "relative_path": "https", "destination_ports": [ "7443" ], "l4_protocol": "TCP", "_create_user": "admin", "_create_time": 1517316057383, "_last_modified_user": "admin", "_last_modified_time": 1517316057383, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 } Required Permissions: Feature: policy_services Additional Errors:
Delete Service entry
Delete Service entry Request:Example Request: DELETE https://<policy-mgr>/global-manager/api/v1/global-infra/services/my-http/service-entries/https Successful Response:
Required Permissions: Feature: policy_services Additional Errors:
Inventory: Tags
- DELETE /global-manager/api/v1/global-infra/categories/{category-id}/tags/{tag-id}/attachments
- GET /global-manager/api/v1/global-infra/categories/{category-id}/tags/{tag-id}/attachments
- PATCH /global-manager/api/v1/global-infra/categories/{category-id}/tags/{tag-id}/attachments
- GET /global-manager/api/v1/global-infra/tags
- GET /global-manager/api/v1/global-infra/tags/effective-resources
- GET /global-manager/api/v1/global-infra/tags/tag-operations/{operation-id}
- PUT /global-manager/api/v1/global-infra/tags/tag-operations/{operation-id}
- GET /global-manager/api/v1/global-infra/tags/tag-operations/{operation-id}/status
Create or update vm tag attachment
Create or update vm tag attachment Request:Example Request: PATCH https://<policy-mgr>/global-manager/api/v1/global-infra/tag/tag1/attachments { "remove_from": [ {"resource_type" : "VIRTUAL_MACHINE", "resource_ids": ["vm0"] }, { "resource_type" : "VIRTUAL_MACHINE", "resource_ids": ["vm4"] }, { "resource_type" : "SEGMENT", "resource_ids": ["seg"] } ], "apply_to": [ { "resource_type" : "VIRTUAL_MACHINE", "resource_ids": ["vm1", "vm3"] }, { "resource_type" : "SEGMENT", "resource_ids": ["seg3","seg1"] } ] } Successful Response:
Example Response: { "attached_to": [ { "resource_type": "VIRTUAL_MACHINE", "resource_ids": [ "vm1", "vm3" ] }, { "resource_type": "SEGMENT", "resource_ids": [ "seg1", "seg3" ] } ], "tag_path": "/infra/tag/tag1", "marked_for_delete": false, "overridden": false, "_protection": "NOT_PROTECTED" } Required Permissions: Feature: policy_vm_vm_tags Additional Errors:
Get tag attachments
Get tag attachments Request:Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/tag/
Example Response: { "attached_to": [ { "resource_type": "VIRTUAL_MACHINE", "resource_ids": [ "vm1", "vm3" ] }, { "resource_type": "SEGMENT", "resource_ids": [ "seg1", "seg3" ] } ], "tag_path": "/infra/tag/tag1", "marked_for_delete": false, "overridden": false, "_protection": "NOT_PROTECTED" } Required Permissions: Feature: policy_vm_vm_tags Additional Errors:
Delete tag attachments
Delete tag attachments Request:Example Request: DELETE https://<policy-mgr>/global-manager/api/v1/global-infra/tag/
Required Permissions: Feature: policy_vm_vm_tags Additional Errors:
List all unique tags.
Returns paginated list of all unique tags. Supports filtering by scope, tag andsource from which tags are synced. Supports starts with, ends with, equals and
contains operators on scope and tag values.
To filter tags by starts with on scope or tag, use '*' as suffix after the value.
To filter tags by ends with on scope or tag, use '*' as prefix before the value.
To filter tags by contain on scope or tag, use '*' as prefix and suffix on the value.
Below special characters in the filter value needs to be escaped with hex values.
- Character '&' needs to be escaped as '%26'
- Character '[' needs to be escaped as '%5B'
- Character ']' needs to be escaped as '%5D'
- Character '+' needs to be escaped as '%2B'
- Character '#' needs to be escaped as '%23'
Sort option for list of unique tags is available only on tag and scope properties.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/tags Successful Response:
Example Response: ## For /infra/tags ## { "results": [ { "scope": "os", "tag": "windows", "tagged_objects": 250 }, { "scope": "os", "tag": "ubantu", "tagged_objects": 100 } ], "result_count": 2 } ## For /infra/tags?tag=win* ## { "results": [ { "scope": "os", "tag": "windows", "tagged_objects": 250 } ], "result_count": 1 } ## For /infra/tags?tag=*ban* ## { "results": [ { "scope": "os", "tag": "ubantu", "tagged_objects": 100 } ], "result_count": 1 } Required Permissions: Feature: policy_vm_vm_tags Additional Errors:
List all objects assigned with matching scope and tag values
Paginated list of all objects assigned with matching scope and tag values. Objectsare represented in form of resource reference. Sort option is available only on
target_type and target_display_name properties.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/tags/effective-resources?scope=type&tag=app Successful Response:
Example Response: { "results": [ { "target_type": "VirtualMachine", "target_display_name": "App-VM-1", "target_id": "564d8b81-983d-b8ef-686b-161205939c58" }, { "target_type": "Group", "target_display_name": "app-vms", "path": "/infra/domains/default/groups/app-vms" } ], "result_count": 2 } Required Permissions: Feature: policy_vm_vm_tags Additional Errors:
Assign or Unassign tag on multiple Virtual Machines.
Tag can be assigned or unassigned on multiple objects. Supported object type isrestricted to Virtual Machine for now and support for other objects will be added
later. Permissions for tag bulk operation would be similar to virtual machine
tag permissions.
Request:
Example Request: PUT https://<policy-mgr>/global-manager/api/v1/global-infra/tags/tag-operations/win-vm-update { "tag": { "scope": "os", "tag": "windows" }, "apply_to": [ { "resource_type": "VirtualMachine", "resource_ids": [ "ee98a906-7b84-42ae-9413-d812cdb64543" ] } ], "remove_from":[ { "resource_type": "VirtualMachine", "resource_ids": [ "564d8b81-983d-b8ef-686b-161205939c58" ] } ] } Successful Response:
Example Response: { "tag": { "scope": "os", "tag": "windows" }, "apply_to": [ { "resource_type": "VirtualMachine", "resource_ids": [ "ee98a906-7b84-42ae-9413-d812cdb64543" ] } ], "remove_from":[ { "resource_type": "VirtualMachine", "resource_ids": [ "564d8b81-983d-b8ef-686b-161205939c58" ] } ], "resource_type": "TagBulkOperation", "id": "win-vm-update", "display_name": "win-vm-update", "path": "/infra/tags/tag-operations/win-vm-update", "relative_path": "win-vm-update", "parent_path": "/infra/tags/tag-operations", "marked_for_delete": false, "_create_user": "admin", "_create_time": 1544641564432, "_last_modified_user": "admin", "_last_modified_time": 1544641564432, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 } Required Permissions: Feature: policy_vm_vm_tags Additional Errors:
Get details of tag bulk operation request
Get details of tag bulk operation request with which tag is applied or removedon virtual machines.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/tags/tag-operations/win-vm-update Successful Response:
Example Response: { "tag": { "scope": "os", "tag": "windows" }, "apply_to": [ { "resource_type": "VirtualMachine", "resource_ids": [ "ee98a906-7b84-42ae-9413-d812cdb64543" ] } ], "remove_from":[ { "resource_type": "VirtualMachine", "resource_ids": [ "564d8b81-983d-b8ef-686b-161205939c58" ] } ], "resource_type": "TagBulkOperation", "id": "win-vm-update", "display_name": "win-vm-update", "path": "/infra/tags/tag-operations/win-vm-update", "relative_path": "win-vm-update", "parent_path": "/infra/tags/tag-operations", "marked_for_delete": false, "_create_user": "admin", "_create_time": 1544641564432, "_last_modified_user": "admin", "_last_modified_time": 1544641564432, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 } Required Permissions: Feature: policy_vm_vm_tags Additional Errors:
Get status of tag bulk operation
Get status of tag bulk operation with details of tag operation on each virtual machine.Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/tags/tag-operations/win-vm-update/status Successful Response:
Example Response: { "tag": { "scope": "os", "tag": "windows" }, "status": "Error", "apply_to": [ { "resource_type": "VirtualMachine", "resource_tag_status": [ { "resource_id": "e98a906-7b84-42ae-9413-d812cdb64543", "tag_status": "Success" } ] } ], "remove_from":[ { "resource_type": "VirtualMachine", "resource_tag_status": [ { "resource_id": "564d8b81-983d-b8ef-686b-161205939c58", "tag_status": "Error", "details": "VM with external id not found" } ] } ], } Required Permissions: Feature: policy_vm_vm_tags Additional Errors:
Inventory: Vm
- GET /global-manager/api/v1/global-infra/vm-tag-replication-policies
- DELETE /global-manager/api/v1/global-infra/vm-tag-replication-policies/{id}
- GET /global-manager/api/v1/global-infra/vm-tag-replication-policies/{id}
- PATCH /global-manager/api/v1/global-infra/vm-tag-replication-policies/{id}
- PUT /global-manager/api/v1/global-infra/vm-tag-replication-policies/{id}
List all VM tag replication policies
List all VM tag replication policies.Request:
Example Request: GET https://<global-manager>/global_manager/api/v1/global-infra/vm-tag-replication-policies Successful Response:
Example Response: { "result_count": 1, "results": [ { "display_name": "VMTag replication policy 1", "description": "VMTag replication policy 1", "protected_site": "/global-infra/sites/pune", "recovery_sites": [ "/global-infra/sites/london" ], "vm_match_criteria": "MATCH_NSX_ATTACHMENT_ID", "groups": [ "/global-infra/domains/d1/groups/g1", "/global-infra/domains/d2/groups/g2" ], "id": "policy1", "path": "/global-infra/vm-tag-replication-policies/policy1", "_revision": 2 } ] } Required Permissions: Feature: site_admin Additional Errors:
Get the VM tag replication policy specified by id
Get the VM tag replication policy specified by id.Request:
Example Request: GET https://<global-manager>/global_manager/api/v1/global-infra/vm-tag-replication-policies/policy1 Successful Response:
Example Response: { "display_name": "VMTag replication policy 1", "description": "VMTag replication policy 1", "protected_site": "/global-infra/sites/pune", "recovery_sites": [ "/global-infra/sites/london" ], "vm_match_criteria": "MATCH_NSX_ATTACHMENT_ID", "groups": [ "/global-infra/domains/d1/groups/g1", "/global-infra/domains/d2/groups/g2" ], "id": "policy1", "path": "/global-infra/vm-tag-replication-policies/policy1", "_revision": 2 } Required Permissions: Feature: site_admin Additional Errors:
Create or update the VM tag replication policy
Create or update the VM tag replication policy.Request:
Example Request: PUT https://<global-manager>/global_manager/api/v1/global-infra/vm-tag-replication-policies/policy1 { "display_name": "VMTag replication policy 1", "description": "VMTag replication policy 1", "protected_site": "/global-infra/sites/pune", "recovery_sites": [ "/global-infra/sites/london" ], "groups": [ "/global-infra/domains/d1/groups/g1", "/global-infra/domains/d2/groups/g2" ] } Successful Response:
Example Response: { "display_name": "VMTag replication policy 1", "description": "VMTag replication policy 1", "protected_site": "/global-infra/sites/pune", "recovery_sites": [ "/global-infra/sites/london" ], "vm_match_criteria": "MATCH_NSX_ATTACHMENT_ID", "groups": [ "/global-infra/domains/d1/groups/g1", "/global-infra/domains/d2/groups/g2" ], "id": "policy1", "path": "/global-infra/vm-tag-replication-policies/policy1", "_revision": 2 } Required Permissions: Feature: site_admin Additional Errors:
Patch the VM tag replication policy
Patch the VM tag replication policy.Request:
Example Request: PATCH https://<global-manager>/global_manager/api/v1/global-infra/vm-tag-replication-policies/policy1 { "display_name": "VMTag replication policy 1", "description": "VMTag replication policy 1", "protected_site": "/global-infra/sites/pune", "recovery_sites": [ "/global-infra/sites/london" ], "vm_match_criteria": "MATCH_BIOS_UUID_NAME", "groups": [ "/global-infra/domains/d1/groups/g1", "/global-infra/domains/d2/groups/g2" ] } Successful Response:
Required Permissions: Feature: site_admin Additional Errors:
Delete the VM tag replication policy specified by id
Delete the VM tag replication policy specified by id.Request:
Example Request: DELETE https://<global-manager>/global_manager/api/v1/global-infra/vm-tag-replication-policies/policy1 Successful Response:
Required Permissions: Feature: site_admin Additional Errors:
Monitoring
Monitoring: Compliance
Returns the compliance status
Returns the compliance status and details of non compliant configuration Request:Example Request: GET https://<policy-mgr>/global-manager/api/v1/compliance/status Successful Response:
Example Response: { "last_updated_time" : 1535016210856, "non_compliant_configs": [ { "description": "TLS version 1.0 used for establishing secure socket connection. It is recommended to run TLSv 1.1 or higher and fully deactivate TLSv1.0 that have protocol weaknesses.", "reported_by": { "target_display_name": "test-profile", "is_valid": true, "target_type": "LB_CLIENT_SSL_PROFILE", "target_id": "/infra/lb-client-ssl-profiles/test-profile", "path": "/infra/lb-client-ssl-profiles/test-profile" }, "non_compliance_code": 72022 } ] } Required Permissions: Feature: infra_admin Additional Errors:
Monitoring: Dashboard (Legacy Management Plane)
- GET /global-manager/api/v1/ui-views (Deprecated)
- POST /global-manager/api/v1/ui-views (Deprecated)
- DELETE /global-manager/api/v1/ui-views/{view-id} (Deprecated)
- GET /global-manager/api/v1/ui-views/{view-id} (Deprecated)
- PUT /global-manager/api/v1/ui-views/{view-id} (Deprecated)
- GET /global-manager/api/v1/ui-views/{view-id}/widgetconfigurations (Deprecated)
- POST /global-manager/api/v1/ui-views/{view-id}/widgetconfigurations (Deprecated)
- DELETE /global-manager/api/v1/ui-views/{view-id}/widgetconfigurations/{widgetconfiguration-id} (Deprecated)
- GET /global-manager/api/v1/ui-views/{view-id}/widgetconfigurations/{widgetconfiguration-id} (Deprecated)
- PUT /global-manager/api/v1/ui-views/{view-id}/widgetconfigurations/{widgetconfiguration-id} (Deprecated)
Returns the Views based on query criteria defined in ViewQueryParameters. (Deprecated)
If no query params are specified then all the views entitled for the userare returned. The views to which a user is entitled to include the views
created by the user and the shared views.
Request:
Example Request: GET https://<nsx-mgr>/api/v1/ui-views Successful Response:
Example Response: { "views" : [ { "display_name" : "System", "widgets" : [ { "widget_id" : "ContainerConfiguration_Clusters-Status", "weight" : 9000 }, { "widget_id" : "ContainerConfiguration_EPP-Deployment-Status", "weight" : 9100 }, { "widget_id" : "ContainerConfiguration_Fabric-Status", "weight" : 9010 }, { "widget_id" : "DonutConfiguration_All-Transport-Zones-Status", "weight" : 9542 }, { "widget_id" : "DonutConfiguration_Compute-Managers-Status", "weight" : 9543 }, { "widget_id" : "DonutConfiguration_EPP-Deployment-Status", "weight" : 9080 }, { "widget_id" : "DonutConfiguration_Edge-Transport-Nodes", "weight" : 9536 }, { "widget_id" : "DonutConfiguration_Host-Transport-Nodes", "weight" : 9535 }, { "widget_id" : "DonutConfiguration_Node-Cluster-Status", "weight" : 9562 }, { "widget_id" : "LabelValueConfiguration_Backups", "weight" : 9070 } ], "shared" : true, "weight" : 10, "resource_type" : "View", "id" : "dashboard_system", "description" : "Highlights the health of key entities in the NSX infrastructure and backup status of appliance.", "_create_time" : 1672635884575, "_create_user" : "system", "_last_modified_time" : 1672635885284, "_last_modified_user" : "system", "_system_owned" : true, "_protection" : "NOT_PROTECTED", "_revision" : 1 }, { "display_name" : "Networking & Security", "widgets" : [ { "widget_id" : "ContainerConfiguration_Networking-Status", "weight" : 2000 }, { "widget_id" : "ContainerConfiguration_POLICY_VPN-Status", "weight" : 3035 }, { "widget_id" : "ContainerConfiguration_Policy-Load-Balancers-Status", "weight" : 3000 }, { "widget_id" : "ContainerConfiguration_Security-Status", "weight" : 1000 }, { "widget_id" : "ContainerConfiguration_Segments-Status", "weight" : 2020 }, { "widget_id" : "DonutConfiguration_DFW_Sections-Status", "weight" : 2020 }, { "widget_id" : "DonutConfiguration_Groups-Status", "weight" : 1000 }, { "widget_id" : "DonutConfiguration_Load_Balancers-Status", "weight" : 3040 }, { "widget_id" : "DonutConfiguration_Networks-Status", "weight" : 3020 }, { "widget_id" : "DonutConfiguration_Providers-Status", "weight" : 3010 }, { "widget_id" : "DonutConfiguration_Segments-Status", "weight" : 3030 }, { "widget_id" : "SpacerWidgetConfiguration_L2_VPN-Status", "weight" : 4000 }, { "widget_id" : "SpacerWidgetConfiguration_L3_ROUTE_BASED_VPN-Status", "weight" : 4040 }, { "widget_id" : "StatsConfiguration_L2_VPN-Status", "weight" : 4010 }, { "widget_id" : "StatsConfiguration_L3_POLICY_BASED_VPN-Status", "weight" : 4020 }, { "widget_id" : "StatsConfiguration_L3_ROUTE_BASED_VPN-Status", "weight" : 4030 } ], "shared" : true, "weight" : 20, "resource_type" : "View", "id" : "dashboard_policy_networking_n_security", "description" : "Highlights the realization status of key Networking and Security Intent.", "_create_time" : 1672635885297, "_create_user" : "system", "_last_modified_time" : 1672635885733, "_last_modified_user" : "system", "_system_owned" : true, "_protection" : "NOT_PROTECTED", "_revision" : 1 }, { "display_name" : "Networking & Security", "widgets" : [ { "widget_id" : "ContainerConfiguration_Firewall", "weight" : 9040 }, { "widget_id" : "ContainerConfiguration_Load-Balancers-Status", "weight" : 9030 }, { "widget_id" : "ContainerConfiguration_Switching-Status", "weight" : 9060 }, { "widget_id" : "ContainerConfiguration_VPN-Status", "weight" : 9050 }, { "widget_id" : "LabelValueConfiguration_Firewall-Rules-Details", "weight" : 0 }, { "widget_id" : "LabelValueConfiguration_Firewall-Sections-Details", "weight" : 0 }, { "widget_id" : "MultiWidgetConfiguration_Switching-Container-Port-Status", "weight" : 9436 }, { "widget_id" : "MultiWidgetConfiguration_Switching-Logical-Switches-Status", "weight" : 9430 }, { "widget_id" : "MultiWidgetConfiguration_Switching-Switch-Port-Status", "weight" : 9432 }, { "widget_id" : "MultiWidgetConfiguration_Switching-VM-Port-Status", "weight" : 9434 }, { "widget_id" : "StatsConfiguration_Firewall-Members-Excluded", "weight" : 9310 }, { "widget_id" : "StatsConfiguration_Firewall-Rules", "weight" : 9305 }, { "widget_id" : "StatsConfiguration_Firewall-Sections", "weight" : 9300 }, { "widget_id" : "StatsConfiguration_L2VPN-Status", "weight" : 9671 }, { "widget_id" : "StatsConfiguration_L3VPN-Status", "weight" : 9670 }, { "widget_id" : "StatsConfiguration_Load-Balancers-Status", "weight" : 9255 }, { "widget_id" : "StatsConfiguration_Server-Pools-Status", "weight" : 9270 }, { "widget_id" : "StatsConfiguration_Switching-Container-Ports-Admin-Status", "weight" : 9657 }, { "widget_id" : "StatsConfiguration_Switching-Container-Ports-Operational-Status", "weight" : 9414 }, { "widget_id" : "StatsConfiguration_Switching-Logical-Switches-Admin-Status", "weight" : 9400 }, { "widget_id" : "StatsConfiguration_Switching-Logical-Switches-Config-Status", "weight" : 9402 }, { "widget_id" : "StatsConfiguration_Switching-Switch-Ports-Admin-Status", "weight" : 9404 }, { "widget_id" : "StatsConfiguration_Switching-Switch-Ports-Operational-Status", "weight" : 9406 }, { "widget_id" : "StatsConfiguration_Switching-VM-Ports-Admin-Status", "weight" : 9408 }, { "widget_id" : "StatsConfiguration_Switching-VM-Ports-Operational-Status", "weight" : 9410 }, { "widget_id" : "StatsConfiguration_Virtual-Servers-Status", "weight" : 9260 } ], "shared" : true, "weight" : 30, "resource_type" : "View", "id" : "dashboard_adv_networking_n_security", "description" : "Highlights the health of key realized entities for Networking and Security.", "_create_time" : 1672635885752, "_create_user" : "system", "_last_modified_time" : 1672635886232, "_last_modified_user" : "system", "_system_owned" : true, "_protection" : "NOT_PROTECTED", "_revision" : 1 }, { "display_name" : "Compliance Report", "widgets" : [ ], "shared" : true, "weight" : 50, "resource_type" : "View", "id" : "dashboard_compliance", "description" : "Highlights the compliance issues with entities in the deployment.", "_create_time" : 1672635885743, "_create_user" : "system", "_last_modified_time" : 1672635885743, "_last_modified_user" : "system", "_system_owned" : true, "_protection" : "NOT_PROTECTED", "_revision" : 0 }, { "display_name" : "Custom", "widgets" : [ { "label" : { "text" : "NETWORKING" }, "widget_id" : "LabelValueConfiguration_0d5c8a34-616b-44a1-8151-09362f4177e5", "weight" : 10005 } ], "shared" : true, "weight" : 1000, "resource_type" : "View", "id" : "dashboard_custom", "description" : "Custom Dashboard gives flexibility to user to add content on the dashboard, for entities of their choice. Please create views and add widgets using REST API to add content, useful to highlight status or summarize details.", "_create_time" : 1672635884565, "_create_user" : "system", "_last_modified_time" : 1672751592453, "_last_modified_user" : "system", "_system_owned" : true, "_protection" : "NOT_PROTECTED", "_revision" : 1 } ] } Required Permissions: Feature: nsx_dashboard Additional Errors:
Creates a new View. (Deprecated)
Request:Example Request: POST https://<nsx-mgr>/api/v1/ui-views { "resource_type": "View", "display_name": "My View 1", "shared": true, "weight": 19020, "widgets": [{ "widget_id": "DonutConfiguration_Host-Nodes-Deployment", "label": { "text": "Deployment" }, "weight": 9531 },{ "widget_id": "DonutConfiguration_Host-Nodes-Connectivity", "label": { "text": "Connectivity" }, "weight": 9535 }] } Successful Response:
Example Response: { "id": "View_0de8406c", "resource_type": "View", "display_name": "My View 1", "shared": true, "weight": 19020, "widgets": [{ "widget_id": "DonutConfiguration_Host-Nodes-Deployment", "label": { "text": "Deployment" }, "weight": 9531 },{ "widget_id": "DonutConfiguration_Host-Nodes-Connectivity", "label": { "text": "Connectivity" }, "weight": 9535 }], "_create_user": "admin", "_create_time": 1496911709362, "_last_modified_user": "admin", "_last_modified_time": 1496911709362, "_system_owned": false, "_revision": 0 } Required Permissions: Feature: nsx_dashboard Additional Errors:
Returns View Information (Deprecated)
Returns Information about a specific View.Request:
Example Request: GET https://<nsx-mgr>/api/v1/ui-views/View_abe34406a Successful Response:
Example Response: { "id": "View_abe34406a", "resource_type": "View", "display_name": "My View 2", "shared": true, "weight": 19021, "widgets": [{ "widget_id": "DonutConfiguration_Edge-Nodes-Deployment", "label": { "text": "Deployment" }, "weight": 9532 },{ "widget_id": "DonutConfiguration_Edge-Nodes-Connectivity", "label": { "text": "Connectivity" }, "weight": 9536 }], "_create_user": "admin", "_create_time": 1496911709362, "_last_modified_user": "admin", "_last_modified_time": 1496911709362, "_system_owned": false, "_revision": 0 } Required Permissions: Feature: nsx_dashboard Additional Errors:
Update View (Deprecated)
Request:Example Request: PUT https://<nsx-mgr>/api/v1/ui-views/View_0de8406c { "resource_type": "View", "display_name": "My View 1 Updated", "shared": true, "weight": 19020, "widgets": [{ "widget_id": "DonutConfiguration_Host-Nodes-Deployment", "label": { "text": "Deployment" }, "weight": 9531 },{ "widget_id": "DonutConfiguration_Host-Nodes-Connectivity", "label": { "text": "Connectivity" }, "weight": 9535 }], "_revision": 0 } Successful Response:
Example Response: { "id": "View_0de8406c", "resource_type": "View", "display_name": "My View 1 Updated", "shared": true, "weight": 19020, "widgets": [{ "widget_id": "DonutConfiguration_Host-Nodes-Deployment", "label": { "text": "Deployment" }, "weight": 9531 },{ "widget_id": "DonutConfiguration_Host-Nodes-Connectivity", "label": { "text": "Connectivity" }, "weight": 9535 }], "_create_user": "admin", "_create_time": 1496911709362, "_last_modified_user": "admin", "_last_modified_time": 1496911902685, "_system_owned": false, "_revision": 1 } Required Permissions: Feature: nsx_dashboard Additional Errors:
Delete View (Deprecated)
Request:Example Request: DELETE https://<nsx-mgr>/api/v1/ui-views/View_0de8406c Successful Response:
Required Permissions: Feature: nsx_dashboard Additional Errors:
Returns the Widget Configurations based on query criteria defined in WidgetQueryParameters. (Deprecated)
If no query params are specified then all the Widget Configurations ofthe specified view are returned.
Request:
Example Request: GET https://<nsx-mgr>/api/v1/ui-views/dashboard/widgetconfigurations Successful Response:
Example Response: { "widgetconfigurations": [ { "id": "LabelValueConfiguration_0de8406c-ab4a-4973-83ef-a1c7a6655c13", "resource_type": "LabelValueConfiguration", "display_name": "Backups", "datasources": [{ "urls": [{ "alias": "config", "url": "api/v1/cluster/backups/config" },{ "alias": "status", "url": "api/v1/cluster/backups/history" }], "display_name": "default" }], "feature_set": { "feature_list": ["utilities_backup"], "require_all_permissions": false }, "navigation": "nsxapi/index.html#view=systemAdmin/utilities/backup", "footer": { "actions": [{ "dock_to_container_footer": true, "label": { "text": "Configure Backups" }, "url": "nsxapi/index.html#view=systemAdmin/utilities/backup" }] }, "properties": [{ "condition": "#{default.config.backup_enabled} == true", "field": "\"Automatic Backups Enabled\"", "heading": true, "render_configuration": [{ "icons": [{ "type": "SUCCESS" }] }], "type": "String" },{ "condition": "#{default.config.backup_enabled} == false", "field": "\"Automatic Backups Disabled\"", "heading": true, "render_configuration": [{ "icons": [{ "type": "NOT_AVAILABLE" },{ "type": "DETAIL", "placement": "POST", "tooltip": [{ "text": "\"Please enable automatic backups\"" }] }] }], "type": "String" },{ "condition": "#{default.status.node_backup_statuses}.size() == 0", "field": "\"Not Configured\"", "heading": false, "render_configuration": [{ "icons": [{ "type": "WARNING" }] }], "label": { "text": "Node" }, "type": "String" },{ "condition": "#{default.status.node_backup_statuses}.size() != 0", "field": "#{default.status.node_backup_statuses[0].end_time}", "heading": false, "render_configuration": [{ "condition": "#{default.status.node_backup_statuses[0].success}", "icons": [{ "type": "SUCCESS" }] },{ "condition": "#{default.status.node_backup_statuses[0].success} == false", "icons": [{ "type": "ERROR" }] }], "label": { "text": "Node" }, "type": "Date" }], "_create_user": "admin", "_create_time": 1496911709362, "_last_modified_user": "admin", "_last_modified_time": 1496911709362, "_system_owned": false, "_revision": 0 },{ "resource_type": "DonutConfiguration", "id": "DonutConfiguration_1bc7406c-ab4a-4973-aed5-a1c7a6659a87", "display_name": "Transport Nodes", "datasources": [{ "urls": [{ "alias": "status", "url": "api/v1/transport-nodes/status" }], "display_name": "default" }], "navigation": "nsxapi/index.html#view=fabric/nodes/transportnodes&id=", "label": { "text": "Nodes" }, "sections": [{ "template": false, "parts": [{ "field": "#{default.status.degraded_count}", "tooltip": [{ "text": "\"Degraded\"" },{ "text": "#{default.status.degraded_count} + \" Nodes \"" }], "render_configuration": [{ "color": "YELLOW" }], "label": { "text": "Degraded" } },{ "field": "#{default.status.down_count}", "tooltip": [{ "text": "\"Down\"" },{ "text": "#{default.status.down_count} + \" Nodes \"" }], "render_configuration": [{ "color": "RED" }], "label": { "text": "Down" } },{ "field": "#{default.status.up_count}", "tooltip": [{ "text": "\"Up\"" },{ "text": "#{default.status.up_count} + \" Nodes \"" }], "render_configuration": [{ "color": "GREEN" }], "label": { "text": "Up" } },{ "field": "#{default.status.unknown_count}", "tooltip": [{ "text": "\"Unknown\"" },{ "text": "#{default.status.unknown_count} + \" Nodes \"" }], "render_configuration": [{ "color": "GREY" }], "label": { "text": "Unknown" } }] }], "_create_time": 1490707552434, "_create_user": "admin", "_last_modified_time": 1490707552434, "_last_modified_user": "admin", "_system_owned": true, "_revision": 3 }] } Required Permissions: Feature: nsx_dashboard Additional Errors:
Creates a new Widget Configuration. (Deprecated)
Creates a new Widget Configuration and adds it to the specified view.Supported resource_types are LabelValueConfiguration, DonutConfiguration,
GridConfiguration, StatsConfiguration, MultiWidgetConfiguration,
GraphConfiguration and ContainerConfiguration.
Note: Expressions should be given in a single line. If an expression spans
multiple lines, then form the expression in a single line.
For label-value pairs, expressions are evaluated as follows:
a. First, render configurations are evaluated in their order of
appearance in the widget config. The 'field' is evaluated at the end.
b. Second, when render configuration is provided then the order of
evaluation is
1. If expressions provided in 'condition' and 'display value' are
well-formed and free of runtime-errors such as 'null pointers' and
evaluates to 'true'; Then remaining render configurations are not
evaluated, and the current render configuration's 'display value'
is taken as the final value.
2. If expression provided in 'condition' of render configuration is
false, then next render configuration is evaluated.
3. Finally, 'field' is evaluated only when every render configuration
evaluates to false and no error occurs during steps 1 and 2 above.
If an error occurs during evaluation of render configuration, then an
error message is shown. The display value corresponding to that label is
not shown and evaluation of the remaining render configurations continues
to collect and show all the error messages (marked with the 'Label' for
identification) as 'Error_Messages: {}'.
If during evaluation of expressions for any label-value pair an error
occurs, then it is marked with error. The errors are shown in the report,
along with the label value pairs that are error-free.
Important: For elements that take expressions, strings should be provided
by escaping them with a back-slash. These elements are - condition, field,
tooltip text and render_configuration's display_value.
Request:
Example Request: POST https://<nsx-mgr>/api/v1/ui-views/dashboard_custom/widgetconfigurations { "resource_type": "LabelValueConfiguration", "display_name": "NETWORKING", "datasources": [ { "urls": [ { "alias": "overview", "url": "#urlPrefix/ui-controller/networking-overview?filter=overview&context=projects:#tenantContext" } ], "display_name": "default" } ], "is_drilldown": false, "sub_type": "VERTICALLY_ALIGNED", "properties": [ { "condition": "#isCustomProject == \"false\" && #{default.overview.entities[?(@.key == \"POLICY_HOME_LABEL_TIER0\")]}.size() > 0", "label": { "text": "Tier-0 Gateways", "navigation":"/app/networks/providers/home/providers" }, "field": "#{default.overview.entities[?(@.key == \"POLICY_HOME_LABEL_TIER0\")].count}.sum()", "heading": true, "render_configuration": [], "type": "Number", "separator": false }, { "condition": "#{default.overview.entities[?(@.key == \"POLICY_HOME_LABEL_TIER1\")]}.size() > 0", "label": { "text": "Tier-1 Gateways", "navigation":"/app/networks/networks/home/networks" }, "field": "#{default.overview.entities[?(@.key == \"POLICY_HOME_LABEL_TIER1\")].count}.sum()", "heading": true, "render_configuration": [], "type": "Number", "separator": false }, { "condition": "#{default.overview.entities[?(@.key == \"POLICY_HOME_LABEL_SEGMENTS\")]}.size() > 0", "label": { "text": "Segments", "navigation":"/app/networks/segments/module/home" }, "field": "#{default.overview.entities[?(@.key == \"POLICY_HOME_LABEL_SEGMENTS\")].count}.sum()", "heading": true, "render_configuration": [], "type": "Number", "separator": false }, { "condition": "#{default.overview.entities[?(@.key == \"POLICY_HOME_LABEL_DVPG_SEGMENTS\")]}.size() > 0", "label": { "text": "Distributed Port Groups", "navigation":"app/networks/segments/module/distributed-port-groups/home" }, "field": "#{default.overview.entities[?(@.key == \"POLICY_HOME_LABEL_DVPG_SEGMENTS\")].count}.sum()", "heading": true, "render_configuration": [], "type": "Number", "separator": false } ], "weight": 10005 } Successful Response:
Example Response: { "sub_type": "VERTICALLY_ALIGNED", "properties": [ { "label": { "text": "Tier-0 Gateways", "hover": false, "navigation": "/app/networks/providers/home/providers" }, "field": "#{default.overview.entities[?(@.key == \"POLICY_HOME_LABEL_TIER0\")].count}.sum()", "heading": true, "type": "Number", "condition": "#isCustomProject == \"false\" && #{default.overview.entities[?(@.key == \"POLICY_HOME_LABEL_TIER0\")]}.size() > 0", "separator": false, "rowspan": 12 }, { "label": { "text": "Tier-1 Gateways", "hover": false, "navigation": "/app/networks/networks/home/networks" }, "field": "#{default.overview.entities[?(@.key == \"POLICY_HOME_LABEL_TIER1\")].count}.sum()", "heading": true, "type": "Number", "condition": "#{default.overview.entities[?(@.key == \"POLICY_HOME_LABEL_TIER1\")]}.size() > 0", "separator": false, "rowspan": 12 }, { "label": { "text": "Segments", "hover": false, "navigation": "/app/networks/segments/module/home" }, "field": "#{default.overview.entities[?(@.key == \"POLICY_HOME_LABEL_SEGMENTS\")].count}.sum()", "heading": true, "type": "Number", "condition": "#{default.overview.entities[?(@.key == \"POLICY_HOME_LABEL_SEGMENTS\")]}.size() > 0", "separator": false, "rowspan": 12 }, { "label": { "text": "Distributed Port Groups", "hover": false, "navigation": "app/networks/segments/module/distributed-port-groups/home" }, "field": "#{default.overview.entities[?(@.key == \"POLICY_HOME_LABEL_DVPG_SEGMENTS\")].count}.sum()", "heading": true, "type": "Number", "condition": "#{default.overview.entities[?(@.key == \"POLICY_HOME_LABEL_DVPG_SEGMENTS\")]}.size() > 0", "separator": false, "rowspan": 12 } ], "resource_type": "LabelValueConfiguration", "id": "LabelValueConfiguration_48e1015a-8e9a-4d69-9af1-38149e71166d", "display_name": "NETWORKING", "show_header": false, "datasources": [ { "display_name": "default", "urls": [ { "alias": "overview", "url": "#urlPrefix/ui-controller/networking-overview?filter=overview&context=projects:#tenantContext", "request_method": "Get" } ] } ], "weight": 10005, "is_drilldown": false, "filter_value_required": true, "filters": [], "rowspan": 12, "_create_time": 1672752309346, "_create_user": "admin", "_last_modified_time": 1672752309346, "_last_modified_user": "admin", "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 } Required Permissions: Feature: nsx_dashboard Additional Errors:
Returns Widget Configuration Information (Deprecated)
Returns Information about a specific Widget Configuration.Request:
Example Request: GET https://<nsx-mgr>/api/v1/ui-views/dashboard/widgetconfigurations/ LabelValueConfiguration_BackupStatus Successful Response:
Example Response: { "id": "LabelValueConfiguration_0de8406c-ab4a-4973-83ef-a1c7a6655c13", "resource_type": "LabelValueConfiguration", "display_name": "Backups", "datasources": [{ "urls": [{ "alias": "config", "url": "api/v1/cluster/backups/config" },{ "alias": "status", "url": "api/v1/cluster/backups/history" }], "display_name": "default" }], "navigation": "nsxapi/index.html#view=systemAdmin/utilities/backup", "feature_set": { "feature_list": ["utilities_backup"], "require_all_permissions": false }, "footer": { "actions": [{ "dock_to_container_footer": true, "label": { "text": "Configure Backups" }, "url": "nsxapi/index.html#view=systemAdmin/utilities/backup" }] }, "properties": [{ "condition": "#{default.config.backup_enabled} == true", "field": "\"Automatic Backups Enabled\"", "heading": true, "render_configuration": [{ "icons": [{ "type": "SUCCESS" }] }], "type": "String" },{ "condition": "#{default.config.backup_enabled} == false", "field": "\"Automatic Backups Disabled\"", "heading": true, "render_configuration": [{ "icons": [{ "type": "NOT_AVAILABLE" },{ "type": "DETAIL", "placement": "POST", "tooltip": [{ "text": "\"Please enable automatic backups\"" }] }] }], "type": "String" },{ "condition": "#{default.status.node_backup_statuses}.size() == 0", "field": "\"Not Configured\"", "heading": false, "render_configuration": [{ "icons": [{ "type": "WARNING" }] }], "label": { "text": "Node" }, "type": "String" },{ "condition": "#{default.status.node_backup_statuses}.size() != 0", "field": "#{default.status.node_backup_statuses[0].end_time}", "heading": false, "render_configuration": [{ "condition": "#{default.status.node_backup_statuses[0].success}", "icons": [{ "type": "SUCCESS" }] },{ "condition": "#{default.status.node_backup_statuses[0].success} == false", "icons": [{ "type": "ERROR" }] }], "label": { "text": "Node" }, "type": "Date" }], "_create_user": "admin", "_create_time": 1496911709362, "_last_modified_user": "admin", "_last_modified_time": 1496911709362, "_system_owned": false, "_revision": 0 } Required Permissions: Feature: nsx_dashboard Additional Errors:
Update Widget Configuration (Deprecated)
Updates the widget at the given view. If the widget is referenced by otherviews, then the widget will be updated in all the views that it is part of.
Request:
Example Request: PUT https://<nsx-mgr>/api/v1/ui-views/dashboard_custom/widgetconfigurations/ LabelValueConfiguration_0de8406c-ab4a-4973-83ef-a1c7a6655c13 { "id": "LabelValueConfiguration_0de8406c-ab4a-4973-83ef-a1c7a6655c13", "resource_type": "LabelValueConfiguration", "display_name": "Backups Updated", "datasources": [{ "urls": [{ "alias": "config", "url": "api/v1/cluster/backups/config" },{ "alias": "status", "url": "api/v1/cluster/backups/history" }], "display_name": "default" }], "navigation": "nsxapi/index.html#view=systemAdmin/utilities/backup", "feature_set": { "feature_list": ["utilities_backup"], "require_all_permissions": false }, "footer": { "actions": [{ "dock_to_container_footer": true, "label": { "text": "Configure Backups" }, "url": "nsxapi/index.html#view=systemAdmin/utilities/backup" }] }, "properties": [{ "condition": "#{default.config.backup_enabled} == true", "field": "\"Automatic Backups Enabled\"", "heading": true, "render_configuration": [{ "icons": [{ "type": "SUCCESS" }] }], "type": "String" },{ "condition": "#{default.config.backup_enabled} == false", "field": "\"Automatic Backups Disabled\"", "heading": true, "render_configuration": [{ "icons": [{ "type": "NOT_AVAILABLE" },{ "type": "DETAIL", "placement": "POST", "tooltip": [{ "text": "\"Please enable automatic backups\"" }] }] }], "type": "String" },{ "condition": "#{default.status.node_backup_statuses}.size() == 0", "field": "\"Not Configured\"", "heading": false, "render_configuration": [{ "icons": [{ "type": "WARNING" }] }], "label": { "text": "Node" }, "type": "String" },{ "condition": "#{default.status.node_backup_statuses}.size() != 0", "field": "#{default.status.node_backup_statuses[0].end_time}", "heading": false, "render_configuration": [{ "condition": "#{default.status.node_backup_statuses[0].success}", "icons": [{ "type": "SUCCESS" }] },{ "condition": "#{default.status.node_backup_statuses[0].success} == false", "icons": [{ "type": "ERROR" }] }], "label": { "text": "Node" }, "type": "Date" }], "_create_user": "admin", "_create_time": 1496911709362, "_last_modified_user": "admin", "_last_modified_time": 1496911709362, "_system_owned": false, "_revision": 0 } Successful Response:
Example Response: { "id": "LabelValueConfiguration_0de8406c-ab4a-4973-83ef-a1c7a6655c13", "resource_type": "LabelValueConfiguration", "display_name": "Backups Updated", "datasources": [{ "urls": [{ "alias": "config", "url": "api/v1/cluster/backups/config" },{ "alias": "status", "url": "api/v1/cluster/backups/history" }], "display_name": "default" }], "navigation": "nsxapi/index.html#view=systemAdmin/utilities/backup", "feature_set": { "feature_list": ["utilities_backup"], "require_all_permissions": false }, "footer": { "actions": [{ "dock_to_container_footer": true, "label": { "text": "Configure Backups" }, "url": "nsxapi/index.html#view=systemAdmin/utilities/backup" }] }, "properties": [{ "condition": "#{default.config.backup_enabled} == true", "field": "\"Automatic Backups Enabled\"", "heading": true, "render_configuration": [{ "icons": [{ "type": "SUCCESS" }] }], "type": "String" },{ "condition": "#{default.config.backup_enabled} == false", "field": "\"Automatic Backups Disabled\"", "heading": true, "render_configuration": [{ "icons": [{ "type": "NOT_AVAILABLE" },{ "type": "DETAIL", "placement": "POST", "tooltip": [{ "text": "\"Please enable automatic backups\"" }] }] }], "type": "String" },{ "condition": "#{default.status.node_backup_statuses}.size() == 0", "field": "\"Not Configured\"", "heading": false, "render_configuration": [{ "icons": [{ "type": "WARNING" }] }], "label": { "text": "Node" }, "type": "String" },{ "condition": "#{default.status.node_backup_statuses}.size() != 0", "field": "#{default.status.node_backup_statuses[0].end_time}", "heading": false, "render_configuration": [{ "condition": "#{default.status.node_backup_statuses[0].success}", "icons": [{ "type": "SUCCESS" }] },{ "condition": "#{default.status.node_backup_statuses[0].success} == false", "icons": [{ "type": "ERROR" }] }], "label": { "text": "Node" }, "type": "Date" }], "_create_user": "admin", "_create_time": 1496911718391, "_last_modified_user": "admin", "_last_modified_time": 1496911718391, "_system_owned": false, "_revision": 1 } Required Permissions: Feature: nsx_dashboard Additional Errors:
Delete Widget Configuration (Deprecated)
Detaches widget from a given view. If the widget is no longer part of anyview, then it will be purged.
Request:
Example Request: DELETE https://<nsx-mgr>/api/v1/ui-views/dashboard_custom/ widgetconfigurations/LabelValueConfiguration_BackupStatus Successful Response:
Required Permissions: Feature: nsx_dashboard Additional Errors:
Monitoring: Finetuning
For each type of entity what are the attributes owned by policy.
This API provides field names of attributes in NSX types that are owned byPolicy, as opposed to those owned by the enforcement point. For any type on NSX,
some of the attributes of that type may be owned and set by Policy when realizing
the intent, while some others may be owned and set by the enforcement point itself.
This information can be used to deactivate updates to Policy owned attributes by the
advanced networking UI, while allowing tweaking to the attributes owned by the
management plane.
Request:
Example Request: https://<policy-mgr>/global-manager/api/v1/fine-tuning/resources?type=InstanceDeploymentConfigDto Successful Response:
Example Response: { "result_count": 1, "results": [{ "resource_name": "InstanceDeploymentConfigDto", "fields": [{ "sub_type": { "resource_name": "VmNicInfoDto", "fields": [{ "sub_type": { "resource_name": "NicInfoDto", "fields": [{ "field_name": "gateway_address" }, { "field_name": "network_id" }, { "field_name": "subnet_mask" }, { "field_name": "ip_address" }] }, "field_name": "nic_infos" }] }, "field_name": "vm_nic_infos" }, { "field_name": "compute_id" }, { "field_name": "storage_id" }, { "field_name": "context_id" }] }] } Required Permissions: Feature: policy_fine_tuning Additional Errors:
Multi-Tenancy
Multi-Tenancy: Constraints
List tenant Constraints.
List tenant constraints. Request:Example Request: GET https://<policy-mgr>policy/api/v1/global-infra/constraints Successful Response:
Example Response: { "sort_ascending": true, "sort_by": "display_name", "result_count": 3, "results": [ { "constraint_expression": { "resource_type": "RelatedAttributeConditionalExpression", "condition": { "value_constraint": { "resource_type": "ValueConstraintExpression", "values": [ "/infra/services/HTTP", "/infra/services/HTTPS" ], "operator": "INCLUDES", "_protection": "NOT_PROTECTED" }, "rhs_value": [ "/infra/domains/mgw/groups/VCENTER" ], "operator": "INCLUDES" }, "related_attribute": { "attribute": "destinationGroups" }, "_protection": "NOT_PROTECTED" }, "target": { "target_resource_type": "CommunicationEntry", "attribute": "services", "path_prefix": "/infra/domains/amar/edge-communication-maps/default/communication-entries/" }, "_protection": "NOT_PROTECTED" }, { "constraint_expression": { "resource_type": "ValueConstraintExpression", "values": [ "ALLOW" ], "operator": "EQUALS", "_protection": "NOT_PROTECTED" }, "target": { "target_resource_type": "CommunicationEntry", "attribute": "action", "path_prefix": "/infra/domains/amar/edge-communication-maps/default/communication-entries/" }, "_protection": "NOT_PROTECTED" }, { "constraint_expression": { "resource_type": "ValueConstraintExpression", "values": [ "/infra/domains/amar/groups/VCENTER" ], "operator": "INCLUDES", "_protection": "NOT_PROTECTED" }, "target": { "target_resource_type": "CommunicationEntry", "attribute": "destinationGroups", "path_prefix": "/infra/domains/amar/edge-communication-maps/default/communication-entries/" }, "_protection": "NOT_PROTECTED" }, { "constraint_expressions": [{ "resource_type": "EntityCountConstraintExpression", "target_resource_type": "Group", "operator": "<", "count" : 2 }, { "resource_type": "EntityCountConstraintExpression", "target_resource_type": "Vpc", "operator": "<", "count" : 2 }] "targets": [{ "path_prefix": "/orgs/org1/projects/project1/" }, { "path_prefix": "/orgs/org1/projects/project2/" }] "_protection": "NOT_PROTECTED" } ] } Required Permissions: Feature: policy_constraints Additional Errors:
Read tenant Constraint.
Read tenant constraint. Request:Example Request: GET https://<policy-mgr>policy/api/v1/global-infra/constraints/related-attribute-constraint Successful Response:
Example Response: { "constraint_expressions": [{ "resource_type": "RelatedAttributeConditionalExpression", "condition": { "value_constraint": { "resource_type": "ValueConstraintExpression", "values": [ "/infra/services/HTTP", "/infra/services/HTTPS" ], "operator": "INCLUDES", "_protection": "NOT_PROTECTED" }, "rhs_value": [ "/infra/domains/mgw/groups/VCENTER" ], "operator": "INCLUDES" }, "related_attribute": { "attribute": "destinationGroups" }, "_protection": "NOT_PROTECTED" }], "targets": [{ "target_resource_type": "CommunicationEntry", "attribute": "services", "path_prefix": "/infra/domains/amar/edge-communication-maps/default/communication-entries/" }], "_protection": "NOT_PROTECTED" } Required Permissions: Feature: policy_constraints Additional Errors:
Networking (Dhcp)
Networking (Dhcp): DHCP Leases
Delete DHCP lease(s) specified by IP and MAC
Delete one or multiple DHCP lease(s) specified by IP and MAC.If there is a DHCP server running upon the given segment, or this segment
is using a DHCP server running in its connected Tier-0 or Tier-1, the DHCP
lease(s) which match exactly the IP address and the MAC address will be
deleted. If no such lease matches, the deletion for this lease will be
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:
Example Request: POST /global-infra/segments/seg-1?action=delete_dhcp_leases { "leases": [ { "ip": "40.1.1.1", "mac": "02:42:21:4d:bc:b7" } ] } Successful Response:
Example Response: 200 OK Required Permissions: Feature: policy_segment Additional Errors:
Delete DHCP lease(s) specified by IP and MAC
Delete one or multiple DHCP lease(s) specified by IP and MAC under a Tier-1.If there is a DHCP server running upon the given segment, or this segment
is using a DHCP server running in its connected Tier-1, the DHCP lease(s)
which match exactly the IP address and the MAC address will be deleted.
If no such lease matches, the deletion for this lease will be 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:
Example Request: POST /global-infra/tier-1s/t1/segments/seg-1?action=delete_dhcp_leases { "leases": [ { "ip": "40.1.1.1", "mac": "02:42:21:4d:bc:b7" } ] } Successful Response:
Example Response: 200 OK Required Permissions: Feature: policy_segment Additional Errors:
Networking (Dhcp): DHCP Relay Configs
- GET /global-manager/api/v1/global-infra/dhcp-relay-configs
- DELETE /global-manager/api/v1/global-infra/dhcp-relay-configs/{dhcp-relay-config-id}
- GET /global-manager/api/v1/global-infra/dhcp-relay-configs/{dhcp-relay-config-id}
- PATCH /global-manager/api/v1/global-infra/dhcp-relay-configs/{dhcp-relay-config-id}
- PUT /global-manager/api/v1/global-infra/dhcp-relay-configs/{dhcp-relay-config-id}
List DHCP relay config instances
Paginated list of all DHCP relay config instancesRequest:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/dhcp-relay-configs Successful Response:
Example Response: { "sort_ascending": true, "sort_by": "display_name", "result_count": 1, "results": [ { "resource_type": "DhcpRelayConfig", "id": "dhcp-relay1", "display_name": "dhcp-relay1", "path": "/infra/dhcp-relay-configs/dhcp-relay1", "parent_path": "/infra", "relative_path": "dhcp-relay1", "server_addresses": [ "10.1.1.1", "10.1.1.2" ] "_create_user": "admin", "_create_time": 1516668826912, "_last_modified_user": "admin", "_last_modified_time": 1516668826912, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 } ] } Required Permissions: Feature: policy_dhcp Additional Errors:
Create or update DHCP relay configuration
If DHCP relay config with the dhcp-relay-config-id is not already present,create a new DHCP relay config instance. If it already exists, replace
the DHCP relay config instance with this object.
Request:
Example Request: PUT https://<policy-mgr>/global-manager/api/v1/global-infra/dhcp-relay-configs/dhcp-relay1 { "server_addresses": [ "10.1.1.1", "10.1.1.2" ], "_revision": 0 } Successful Response:
Example Response: { "resource_type": "DhcpRelayConfig", "id": "dhcp-relay1", "display_name": "dhcp-relay1", "path": "/infra/dhcp-relay-configs/dhcp-relay1", "parent_path": "/infra", "relative_path": "dhcp-relay1", "server_addresses": [ "10.1.1.1", "10.1.1.2" ] "_create_user": "admin", "_create_time": 1516668826912, "_last_modified_user": "admin", "_last_modified_time": 1516668826912, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 } Required Permissions: Feature: policy_dhcp Additional Errors:
Create or update DHCP relay configuration
If DHCP relay config with the dhcp-relay-config-id is not already present, create a new DHCP relay config instance.If it already exists, update the DHCP relay config instance with specified attributes.
Request:
Example Request: PATCH https://<policy-mgr>/global-manager/api/v1/global-infra/dhcp-relay-configs/dhcp-relay1 { "server_addresses": [ "10.1.1.1", "10.1.1.2" ] } Successful Response:
Example Response: 200 OK Required Permissions: Feature: policy_dhcp Additional Errors:
Read DHCP relay configuration
Read DHCP relay configuration Request:Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/dhcp-relay-configs/dhcp-relay1 Successful Response:
Example Response: { "resource_type": "DhcpRelayConfig", "id": "dhcp-relay1", "display_name": "dhcp-relay1", "path": "/infra/dhcp-relay-configs/dhcp-relay1", "parent_path": "/infra", "relative_path": "dhcp-relay1", "server_addresses": [ "10.1.1.1", "10.1.1.2" ] "_create_user": "admin", "_create_time": 1516668826912, "_last_modified_user": "admin", "_last_modified_time": 1516668826912, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 } Required Permissions: Feature: policy_dhcp Additional Errors:
Delete DHCP relay configuration
Delete DHCP relay configuration Request:Example Request: DELETE https://<policy-mgr>/global-manager/api/v1/global-infra/dhcp-relay-configs/dhcp-relay1 Successful Response:
Example Response: 200 OK Required Permissions: Feature: policy_dhcp Additional Errors:
Networking (Dhcp): DHCP Server Configs
- GET /global-manager/api/v1/global-infra/dhcp-server-configs
- GET /global-manager/api/v1/global-infra/dhcp-server-configs/{config-id}/leases
- GET /global-manager/api/v1/global-infra/dhcp-server-configs/{config-id}/state
- GET /global-manager/api/v1/global-infra/dhcp-server-configs/{config-id}/stats
- POST /global-manager/api/v1/global-infra/dhcp-server-configs/{config-id}/stats?action=reset
- GET /global-manager/api/v1/global-infra/dhcp-server-configs/{config-id}/status
- DELETE /global-manager/api/v1/global-infra/dhcp-server-configs/{dhcp-server-config-id}
- GET /global-manager/api/v1/global-infra/dhcp-server-configs/{dhcp-server-config-id}
- PATCH /global-manager/api/v1/global-infra/dhcp-server-configs/{dhcp-server-config-id}
- PUT /global-manager/api/v1/global-infra/dhcp-server-configs/{dhcp-server-config-id}
List DHCP server config instances
Paginated list of all DHCP server config instancesRequest:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/dhcp-server-configs Successful Response:
Example Response: { "sort_ascending": true, "sort_by": "display_name", "result_count": 1, "results": [ { "resource_type": "DhcpServerConfig", "id": "dhcp-srv1", "display_name": "dhcp-srv1", "path": "/infra/dhcp-server-configs/dhcp-srv1", "parent_path": "/infra", "relative_path": "dhcp-srv1", "server_address": "10.1.1.1/30", "lease_time": 10000, "_create_user": "admin", "_create_time": 1516668826912, "_last_modified_user": "admin", "_last_modified_time": 1516668826912, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 } ] } Required Permissions: Feature: policy_dhcp Additional Errors:
Read DHCP server leases
Read DHCP server leases Request:Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/dhcp-server-configs/default/leases?segment_path=/global-infra/segments/web&connectivity_path=/global-infra/tier-1s/it_t1&enforcement_point_path=/global-infra/sites/default/enforcement-points/default Successful Response:
Example Response: { "leases" : [ { "subnet" : "184.168.1.0", "start_time" : "2017-06-26 18:34:34 +0000", "mac_address" : "00:50:56:ae:6b:01", "lease_time" : "3600", "expire_time" : "2017-06-26 19:34:35 +0000", "ip_address" : "184.168.1.3" } ], "dhcp_server_id" : "9f34f749-08d9-4744-b1e9-9f079f9ce726", "timestamp" : 1498503052577 } Required Permissions: Feature: policy_dhcp Additional Errors:
Read DHCP server state
Read DHCP server state Request:Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/dhcp-server-configs/default/state?connectivity_path=/global-infra/tier-1s/it_t1&enforcement_point_path=/global-infra/sites/default/enforcement-points/default Successful Response:
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: Feature: policy_dhcp Additional Errors:
Read DHCP server statistics
Read DHCP server statistics Request:Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/dhcp-server-configs/default/stats?connectivity_path=/global-infra/tier-1s/it_t1&enforcement_point_path=/global-infra/sites/default/enforcement-points/default Successful Response:
Example Response: { "dhcp_server_id": "0c660543-5edf-463a-ace8-bec9b9651d02", "timestamp": 1578798980607, "discovers": 0, "offers": 0, "requests": 0, "acks": 0, "nacks": 0, "declines": 0, "releases": 0, "informs": 0, "errors": 0 } Required Permissions: Feature: policy_dhcp Additional Errors:
Reset DHCP server statistics counters
Reset DHCP statistics counters of a DHCP server represented by theconnectivity_path and the enforecement_point_path where the
dhcp-server-config was applied to. The connectivity_path can be the Tier0
path, Tier1 path or a segment path. If the given Tier0/1 or Segment has
DHCP server applied, the resetting will succeed and the DHCP statistics
counters will be reset to 0. But if it has no DHCP server applied, the
reseting will fail with proper error message.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/dhcp-server-configs/default/stats?enforcement_point_path=/global-infra/sites/default/enforcement-points/default Successful Response:
Example Response: {} Required Permissions: Feature: policy_dhcp Additional Errors:
Read DHCP server status
Read DHCP server status Request:Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/dhcp-server-configs/default/status?connectivity_path=/global-infra/tier-1s/it_t1&enforcement_point_path=/global-infra/sites/default/enforcement-points/default Successful Response:
Example Response: { "active_node": "/infra/sites/default/enforcement-points/default/edge-clusters/43436d79-05ce-4c0b-b31f-078989d4e6fd/edge-nodes/bf80b020-2df8-11ea-986b-000c291ec83c", "stand_by_node": "/infra/sites/default/enforcement-points/default/edge-clusters/43436d79-05ce-4c0b-b31f-078989d4e6fd/edge-nodes/c03dadec-2df8-11ea-a4e6-000c295fbd46", "service_status": "UP" } Required Permissions: Feature: policy_dhcp Additional Errors:
Create or update DHCP server configuration
If DHCP server config with the dhcp-server-config-id is not alreadypresent, create a new DHCP server config instance. If it already exists,
replace the DHCP server config instance with this object.
Realized entities of this API can be found using the path of Tier-0, Tier1,
or Segment where this config is applied on.
Modification of edge_cluster_path in DhcpServerConfig will lose all
existing DHCP leases.
If both the preferred_edge_paths in the DhcpServerConfig 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 network connectivity
issues. It is recommended to change only one member index in an update
call, e.g. from [a, b] to [a,y].
Clearing preferred_edge_paths will not reassign edge nodes from the
edge cluster. Instead, the previously-allocated edge nodes will be
retained to avoid loss of leases.
Request:
Example Request: PUT https://<policy-mgr>/global-manager/api/v1/global-infra/dhcp-server-configs/dhcp-srv1 { "server_address": "10.1.1.1/30", "lease_time": 10000, "_revision": 0 } Successful Response:
Example Response: { "resource_type": "DhcpServerConfig", "id": "dhcp-srv1", "display_name": "dhcp-srv1", "path": "/infra/dhcp-server-configs/dhcp-srv1", "parent_path": "/infra", "relative_path": "dhcp-srv1", "server_address": "10.1.1.1/30", "lease_time": 10000, "_create_user": "admin", "_create_time": 1516668826912, "_last_modified_user": "admin", "_last_modified_time": 1516668826912, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 } Required Permissions: Feature: policy_dhcp Additional Errors:
Create or update DHCP server configuration
If DHCP server config with the dhcp-server-config-id is not alreadypresent, create a new DHCP server config instance. If it already exists,
update the DHCP server config instance with specified attributes.
Realized entities of this API can be found using the path of Tier-0, Tier1,
or Segment where this config is applied on.
Modification of edge_cluster_path in DhcpServerConfig will lose all
existing DHCP leases.
If both the preferred_edge_paths in the DhcpServerConfig are changed
in a same PATCH API, e.g. change from [a,b] to [x,y], the current DHCP
server leases will be lost, which could cause network connectivity
issues. It is recommended to change only one member index in an update
call, e.g. from [a, b] to [a,y].
Clearing preferred_edge_paths will not reassign edge nodes from the
edge cluster. Instead, the previously-allocated edge nodes will be
retained to avoid loss of leases.
Request:
Example Request: PATCH https://<policy-mgr>/global-manager/api/v1/global-infra/dhcp-server-configs/dhcp-srv1 { "server_address": "10.1.1.1/30", "lease_time": 10000 } Successful Response:
Example Response: 200 OK Required Permissions: Feature: policy_dhcp Additional Errors:
Read DHCP server configuration
Read DHCP server configuration Request:Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/dhcp-server-configs/dhcp-srv1 Successful Response:
Example Response: { "resource_type": "DhcpServerConfig", "id": "dhcp-srv1", "display_name": "dhcp-srv1", "path": "/infra/dhcp-server-configs/dhcp-srv1", "parent_path": "/infra", "relative_path": "dhcp-srv1", "server_address": "10.1.1.1/30", "lease_time": 10000, "_create_user": "admin", "_create_time": 1516668826912, "_last_modified_user": "admin", "_last_modified_time": 1516668826912, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 } Required Permissions: Feature: policy_dhcp Additional Errors:
Delete DHCP server configuration
Delete DHCP server configuration Request:Example Request: DELETE https://<policy-mgr>/global-manager/api/v1/global-infra/dhcp-server-configs/dhcp-srv1 Successful Response:
Example Response: 200 OK Required Permissions: Feature: policy_dhcp Additional Errors:
Networking (Dhcp): DHCP Static Bindings (Fixed Segments)
- GET /global-manager/api/v1/global-infra/tier-1s/{tier-1-id}/segments/{segment-id}/dhcp-static-binding-configs
- DELETE /global-manager/api/v1/global-infra/tier-1s/{tier-1-id}/segments/{segment-id}/dhcp-static-binding-configs/{binding-id}
- GET /global-manager/api/v1/global-infra/tier-1s/{tier-1-id}/segments/{segment-id}/dhcp-static-binding-configs/{binding-id}
- PATCH /global-manager/api/v1/global-infra/tier-1s/{tier-1-id}/segments/{segment-id}/dhcp-static-binding-configs/{binding-id}
- PUT /global-manager/api/v1/global-infra/tier-1s/{tier-1-id}/segments/{segment-id}/dhcp-static-binding-configs/{binding-id}
List all DHCP static bindings
Paginated list of all DHCP static binding instancesRequest:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/tier-1s/mgw/segments/web_seg/dhcp-static-binding-configs Successful Response:
Example Response: { "results": [ { "gateway_address": "10.1.1.1", "host_name": "vm1.vmware.com", "ip_address": "30.30.30.175", "mac_address": "11:22:33:44:55:67", "lease_time": 86400, "options": { "option121": { "static_routes": [ { "network": "10.22.12.1/23", "next_hop": "2.2.2.2" }, { "network": "129.0.0.1/32", "next_hop": "0.0.0.0" } ] } }, "resource_type": "DhcpV4StaticBindingConfig", "id": "address1", "display_name": "address1", "path": "/infra/tier-1s/mgw/segments/web1/dhcp-static-binding-configs/address1", "relative_path": "address1", "parent_path": "/infra/tier-1s/mgw/segments/web1", "unique_id": "32fdd5b6-e3e7-4e62-867b-fc805c9de77e", "marked_for_delete": false, "overridden": false, "_system_owned": false, "_create_user": "admin", "_create_time": 1594595467056, "_last_modified_user": "admin", "_last_modified_time": 1594595467058, "_protection": "NOT_PROTECTED", "_revision": 0 } ], "result_count": 1, "sort_by": "display_name", "sort_ascending": true } Required Permissions: Feature: policy_segment Additional Errors:
Create or update DHCP static binding
If binding with the binding-id is not already present,create a new DHCP static binding instance. If it already exists, replace
the existing DHCP static binding instance with this object.
Request:
Example Request: PUT https://<policy-mgr>/global-manager/api/v1/global-infra/tier-1s/mgw/segments/web1/dhcp-static-binding-configs/address1 { "resource_type": "DhcpV4StaticBindingConfig", "gateway_address": "10.1.1.1", "mac_address": "11:22:33:44:55:67", "host_name": "vm1.vmware.com", "ip_address": "30.30.30.175", "options": { "option121": { "static_routes": [ { "network": "10.22.12.1/23", "next_hop": "2.2.2.2" }, { "network": "129.0.0.1/32", "next_hop": "0.0.0.0" } ] } }, "_revision": 0 } Successful Response:
Example Response: { "gateway_address": "10.1.1.1", "host_name": "vm1.vmware.com", "ip_address": "30.30.30.175", "mac_address": "11:22:33:44:55:67", "lease_time": 86400, "options": { "option121": { "static_routes": [ { "network": "10.22.12.1/23", "next_hop": "2.2.2.2" }, { "network": "129.0.0.1/32", "next_hop": "0.0.0.0" } ] } }, "resource_type": "DhcpV4StaticBindingConfig", "id": "address1", "display_name": "address1", "path": "/infra/tier-1s/mgw/segments/web1/dhcp-static-binding-configs/address1", "relative_path": "address1", "parent_path": "/infra/tier-1s/mgw/segments/web1", "unique_id": "32fdd5b6-e3e7-4e62-867b-fc805c9de77e", "marked_for_delete": false, "overridden": false, "_system_owned": false, "_create_user": "admin", "_create_time": 1594595467056, "_last_modified_user": "admin", "_last_modified_time": 1594595467058, "_protection": "NOT_PROTECTED", "_revision": 0 } Required Permissions: Feature: policy_segment Additional Errors:
Create or update DHCP static binding
If binding with the binding-id is not already present,create a new DHCP static binding instance. If it already exists, replace
the existing DHCP static binding instance with specified attributes.
Request:
Example Request: PATCH https://<policy-mgr>/global-manager/api/v1/global-infra/tier-1s/mgw/segments/web_seg/dhcp-static-binding-configs/binding1 { "resource_type": "DhcpV4StaticBindingConfig", "gateway_address": "10.1.1.1", "mac_address": "11:22:33:44:55:67", "host_name": "vm1.vmware.com", "ip_address": "30.30.30.175", "options": { "option121": { "static_routes": [ { "network": "10.22.12.1/23", "next_hop": "2.2.2.2" }, { "network": "129.0.0.1/32", "next_hop": "0.0.0.0" } ] } } } Successful Response:
Example Response: 200 OK Required Permissions: Feature: policy_segment Additional Errors:
Read DHCP static binding
Read DHCP static binding Request:Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/tier-1s/mgw/segments/web_seg/dhcp-static-binding-configs/binding1 Successful Response:
Example Response: { "gateway_address": "10.1.1.1", "host_name": "vm1.vmware.com", "ip_address": "30.30.30.175", "mac_address": "11:22:33:44:55:67", "lease_time": 86400, "options": { "option121": { "static_routes": [ { "network": "10.22.12.1/23", "next_hop": "2.2.2.2" }, { "network": "129.0.0.1/32", "next_hop": "0.0.0.0" } ] } }, "resource_type": "DhcpV4StaticBindingConfig", "id": "address1", "display_name": "address1", "path": "/infra/tier-1s/mgw/segments/web1/dhcp-static-binding-configs/address1", "relative_path": "address1", "parent_path": "/infra/tier-1s/mgw/segments/web1", "unique_id": "32fdd5b6-e3e7-4e62-867b-fc805c9de77e", "marked_for_delete": false, "overridden": false, "_system_owned": false, "_create_user": "admin", "_create_time": 1594595467056, "_last_modified_user": "admin", "_last_modified_time": 1594595467058, "_protection": "NOT_PROTECTED", "_revision": 0 } Required Permissions: Feature: policy_segment Additional Errors:
Delete DHCP static binding
Delete DHCP static binding Request:Example Request: DELETE https://<policy-mgr>/global-manager/api/v1/global-infra/tier-1s/mgw/segments/web_seg/dhcp-static-binding-configs/binding1 Successful Response:
Example Response: 200 OK Required Permissions: Feature: policy_segment Additional Errors:
Networking (Dhcp): DHCP Static Bindings (Segments)
- GET /global-manager/api/v1/global-infra/segments/{segment-id}/dhcp-static-binding-configs
- DELETE /global-manager/api/v1/global-infra/segments/{segment-id}/dhcp-static-binding-configs/{binding-id}
- GET /global-manager/api/v1/global-infra/segments/{segment-id}/dhcp-static-binding-configs/{binding-id}
- PATCH /global-manager/api/v1/global-infra/segments/{segment-id}/dhcp-static-binding-configs/{binding-id}
- PUT /global-manager/api/v1/global-infra/segments/{segment-id}/dhcp-static-binding-configs/{binding-id}
- GET /global-manager/api/v1/global-infra/segments/{segment-id}/dhcp-static-bindings/{binding-id}/state
- GET /global-manager/api/v1/global-infra/tier-1s/{tier-1-id}/segments/{segment-id}/dhcp-static-bindings/{binding-id}/state
List all DHCP static bindings
Paginated list of all DHCP static binding instancesRequest:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/segments/web1/dhcp-static-binding-configs Successful Response:
Example Response: { "results": [ { "gateway_address": "10.1.1.1", "host_name": "vm1.vmware.com", "ip_address": "30.30.30.175", "mac_address": "11:22:33:44:55:67", "lease_time": 86400, "options": { "option121": { "static_routes": [ { "network": "10.22.12.1/23", "next_hop": "2.2.2.2" }, { "network": "129.0.0.1/32", "next_hop": "0.0.0.0" } ] } }, "resource_type": "DhcpV4StaticBindingConfig", "id": "address1", "display_name": "vm1-address", "path": "/infra/segments/web1/dhcp-static-binding-configs/address1", "relative_path": "address1", "parent_path": "/infra/segments/web1", "unique_id": "32fdd5b6-e3e7-4e62-867b-fc805c9de77e", "marked_for_delete": false, "overridden": false, "_system_owned": false, "_create_user": "admin", "_create_time": 1594595467056, "_last_modified_user": "admin", "_last_modified_time": 1594595977854, "_protection": "NOT_PROTECTED", "_revision": 2 } ], "result_count": 1, "sort_by": "display_name", "sort_ascending": true } Required Permissions: Feature: policy_segment Additional Errors:
Create or update DHCP static binding
If binding with the binding-id is not already present,create a new DHCP static binding instance. If it already exists, replace
the existing DHCP static binding instance with this object.
Request:
Example Request: PUT https://<policy-mgr>/global-manager/api/v1/global-infra/segments/web1/dhcp-static-binding-configs/address1 { "display_name": "vm1-address", "resource_type": "DhcpV4StaticBindingConfig", "gateway_address": "10.1.1.1", "mac_address": "11:22:33:44:55:67", "host_name": "vm1.vmware.com", "ip_address": "30.30.30.175", "options": { "option121": { "static_routes": [ { "network": "10.22.12.1/23", "next_hop": "2.2.2.2" }, { "network": "129.0.0.1/32", "next_hop": "0.0.0.0" } ] } }, "_revision": 0 } example_response: | { "gateway_address": "10.1.1.1", "host_name": "vm1.vmware.com", "ip_address": "30.30.30.175", "mac_address": "11:22:33:44:55:67", "lease_time": 86400, "options": { "option121": { "static_routes": [ { "network": "10.22.12.1/23", "next_hop": "2.2.2.2" }, { "network": "129.0.0.1/32", "next_hop": "0.0.0.0" } ] } }, "resource_type": "DhcpV4StaticBindingConfig", "id": "address1", "display_name": "vm1-address", "path": "/global-infra/segments/web1/dhcp-static-binding-configs/address1", "relative_path": "address1", "parent_path": "/global-infra/segments/web1", "unique_id": "32fdd5b6-e3e7-4e62-867b-fc805c9de77e", "marked_for_delete": false, "overridden": false, "_system_owned": false, "_create_user": "admin", "_create_time": 1594595467056, "_last_modified_user": "admin", "_last_modified_time": 1594595977854, "_protection": "NOT_PROTECTED", "_revision": 2 } Successful Response:
Required Permissions: Feature: policy_segment Additional Errors:
Create or update DHCP static binding
If binding with the binding-id is not already present,create a new DHCP static binding instance. If it already exists, replace
the existing DHCP static binding instance with specified attributes.
Request:
Example Request: PATCH https://<policy-mgr>/global-manager/api/v1/global-infra/segments/web1/dhcp-static-binding-configs/address1 { "display_name": "vm1-address", "resource_type": "DhcpV4StaticBindingConfig", "gateway_address": "10.1.1.1", "mac_address": "11:22:33:44:55:67", "host_name": "vm1.vmware.com", "ip_address": "30.30.30.175", "options": { "option121": { "static_routes": [ { "network": "10.22.12.1/23", "next_hop": "2.2.2.2" }, { "network": "129.0.0.1/32", "next_hop": "0.0.0.0" } ] } }, "_revision": 0 } Successful Response:
Example Response: 200 OK Required Permissions: Feature: policy_segment Additional Errors:
Read DHCP static binding
Read DHCP static binding Request:Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/segments/web1/dhcp-static-binding-configs/address1 Successful Response:
Example Response: { "gateway_address": "10.1.1.1", "host_name": "vm1.vmware.com", "ip_address": "30.30.30.175", "mac_address": "11:22:33:44:55:67", "lease_time": 86400, "options": { "option121": { "static_routes": [ { "network": "10.22.12.1/23", "next_hop": "2.2.2.2" }, { "network": "129.0.0.1/32", "next_hop": "0.0.0.0" } ] } }, "resource_type": "DhcpV4StaticBindingConfig", "id": "address1", "display_name": "vm1-address", "path": "/infra/segments/web1/dhcp-static-binding-configs/address1", "relative_path": "address1", "parent_path": "/infra/segments/web1", "unique_id": "32fdd5b6-e3e7-4e62-867b-fc805c9de77e", "marked_for_delete": false, "overridden": false, "_system_owned": false, "_create_user": "admin", "_create_time": 1594595467056, "_last_modified_user": "admin", "_last_modified_time": 1594595977854, "_protection": "NOT_PROTECTED", "_revision": 2 } Required Permissions: Feature: policy_segment Additional Errors:
Delete DHCP static binding
Delete DHCP static binding Request:Example Request: DELETE https://<policy-mgr>/global-manager/api/v1/global-infra/segments/web_seg/dhcp-static-binding-configs/binding1 Successful Response:
Example Response: 200 OK Required Permissions: Feature: policy_segment Additional Errors:
Read DHCP static binding state
Read DHCP static binding state Request:Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/segments/web_seg/dhcp-static-bindings/server1/state Successful Response:
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: Feature: policy_dhcp Additional Errors:
Read DHCP static binding state
Read DHCP static binding state Request:Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/tier-1s/mgw/segments/web_seg/dhcp-static-bindings/server1/state Successful Response:
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: Feature: policy_dhcp Additional Errors:
Networking (Dns Forwarder)
Networking (Dns Forwarder): DNS Zones
- GET /global-manager/api/v1/global-infra/dns-forwarder-zones
- DELETE /global-manager/api/v1/global-infra/dns-forwarder-zones/{dns-forwarder-zone-id}
- GET /global-manager/api/v1/global-infra/dns-forwarder-zones/{dns-forwarder-zone-id}
- PATCH /global-manager/api/v1/global-infra/dns-forwarder-zones/{dns-forwarder-zone-id}
- PUT /global-manager/api/v1/global-infra/dns-forwarder-zones/{dns-forwarder-zone-id}
List Dns Forwarder Zones
Paginated list of all Dns Forwarder ZonesRequest:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/dns-forwarder-zones Successful Response:
Example Response: { "sort_ascending" : true, "sort_by" : "display_name", "result_count" : 2, "results" : [ { "resource_type" : "PolicyDnsForwarderZone", "id" : "default-1", "display_name" : "$1", "path" : "/infra/dns-forwarder-zones/default-1", "parent_path" : "/infra/dns-forwarder-zones/default-1", "relative_path" : "default-1", "dns_domain_names" : [ ], "upstream_servers" : [ "3.3.3.3", "4.4.4.4" ], "_create_user" : "a;a", "_create_time" : 1517400275031, "_last_modified_user" : "a;a", "_last_modified_time" : 1517400275031, "_system_owned" : false, "_protection" : "NOT_PROTECTED", "_revision" : 0 }, { "resource_type" : "PolicyDnsForwarderZone", "id" : "conditional-1", "display_name" : "$1", "path" : "/infra/dns-forwarder-zones/conditional-1", "parent_path" : "/infra/dns-forwarder-zones/conditional-1", "relative_path" : "conditional-1", "dns_domain_names" : [ "foo.com" ], "upstream_servers" : [ "1.1.1.1", "2.2.2.2" ], "_create_user" : "a;a", "_create_time" : 1517400132921, "_last_modified_user" : "a;a", "_last_modified_time" : 1517400132921, "_system_owned" : false, "_protection" : "NOT_PROTECTED", "_revision" : 0 } ] } Required Permissions: Feature: policy_dns Additional Errors:
Create or update the DNS Forwarder Zone
Create or update the DNS Forwarder Zone Request:Example Request: PATCH https://<policy-mgr>/global-manager/api/v1/global-infra/dns-forwarder-zones/conditional-1 { "display_name" : "Conditional 1", "dns_domain_names" : [ "foo.com" ], "upstream_servers" : [ "1.1.1.1", "2.2.2.2" ] } Successful Response:
Required Permissions: Feature: policy_dns Additional Errors:
Create or update the DNS Forwarder Zone
Create or update the DNS Forwarder Zone Request:Example Request: PUT https://<policy-mgr>/global-manager/api/v1/global-infra/dns-forwarder-zones/conditional-1 { "display_name" : "Conditional 1", "dns_domain_names" : [ "foo.com" ], "upstream_servers" : [ "1.1.1.1", "2.2.2.2" ], "_revision" : 0 } Successful Response:
Example Response: { "resource_type" : "PolicyDnsForwarderZone", "id" : "conditional-1", "display_name" : "$1", "path" : "/infra/dns-forwarder-zones/conditional-1", "parent_path" : "/infra/dns-forwarder-zones/conditional-1", "relative_path" : "conditional-1", "dns_domain_names" : [ "foo.com" ], "upstream_servers" : [ "1.1.1.1", "2.2.2.2" ], "_create_user" : "a;a", "_create_time" : 1517400132921, "_last_modified_user" : "a;a", "_last_modified_time" : 1517400132921, "_system_owned" : false, "_protection" : "NOT_PROTECTED", "_revision" : 1 } Required Permissions: Feature: policy_dns Additional Errors:
Read the DNS Forwarder Zone
Read the DNS Forwarder Zone Request:Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/dns-forwarder-zones/conditional-1 Successful Response:
Example Response: { "resource_type" : "PolicyDnsForwarderZone", "id" : "conditional-1", "display_name" : "$1", "path" : "/infra/dns-forwarder-zones/conditional-1", "parent_path" : "/infra/dns-forwarder-zones/conditional-1", "relative_path" : "conditional-1", "dns_domain_names" : [ "foo.com" ], "upstream_servers" : [ "1.1.1.1", "2.2.2.2" ], "_create_user" : "a;a", "_create_time" : 1517400132921, "_last_modified_user" : "a;a", "_last_modified_time" : 1517400132921, "_system_owned" : false, "_protection" : "NOT_PROTECTED", "_revision" : 1 } Required Permissions: Feature: policy_dns Additional Errors:
Delete the DNS Forwarder Zone
Delete the DNS Forwarder Zone Request:Example Request: DELETE https://<policy-mgr>/global-manager/api/v1/global-infra/dns-forwarder-zones/conditional-1 Successful Response:
Required Permissions: Feature: policy_dns Additional Errors:
Networking (Dns Forwarder): Tier-0S
- DELETE /global-manager/api/v1/global-infra/tier-0s/{tier-0-id}/dns-forwarder
- GET /global-manager/api/v1/global-infra/tier-0s/{tier-0-id}/dns-forwarder
- PATCH /global-manager/api/v1/global-infra/tier-0s/{tier-0-id}/dns-forwarder
- POST /global-manager/api/v1/global-infra/tier-0s/{tier-0-id}/dns-forwarder
- PUT /global-manager/api/v1/global-infra/tier-0s/{tier-0-id}/dns-forwarder
- GET /global-manager/api/v1/global-infra/tier-0s/{tier-0-id}/dns-forwarder/failed-queries
- GET /global-manager/api/v1/global-infra/tier-0s/{tier-0-id}/dns-forwarder/nslookup
- GET /global-manager/api/v1/global-infra/tier-0s/{tier-0-id}/dns-forwarder/statistics
- GET /global-manager/api/v1/global-infra/tier-0s/{tier-0-id}/dns-forwarder/status
Update the DNS Forwarder
Update the DNS Forwarder Request:Example Request: PATCH https://<policy-mgr>/global-manager/api/v1/global-infra/tier-0s/<tier-0-id>/dns-forwarder { "display_name" : "dns-forwarder", "listener_ip" : "5.5.5.5", "default_forwarder_zone_path" : "/global-infra/dns-forwarder-zones/default-1", "conditional_forwarder_zone_paths" : ["/global-infra/dns-forwarder-zones/conditional-1"] } Successful Response:
Required Permissions: Feature: policy_dns Additional Errors:
Update the DNS Forwarder
Update the DNS Forwarder Request:Example Request: PUT https://<policy-mgr>/global-manager/api/v1/global-infra/tier-0s/<tier-0-id>/dns-forwarder { "display_name" : "dns-forwarder", "listener_ip" : "5.5.5.5", "default_forwarder_zone_path" : "/global-infra/dns-forwarder-zones/default-1", "conditional_forwarder_zone_paths" : ["/global-infra/dns-forwarder-zones/conditional-1"], "enabled": false, "_revision" : 0 } Successful Response:
Example Response: { "resource_type" : "PolicyDnsForwarder", "id" : "dns-forwarder", "display_name" : "dns-forwarder", "path" : "/infra/tier-0s/prv/dns-forwarder", "parent_path" : "/infra/tier-0s/prv", "relative_path" : "dns-forwarder", "listener_ip" : "5.5.5.5", "conditional_forwarder_zone_paths" : [ "/infra/dns-forwarder-zones/conditional-1" ], "log_level" : "INFO", "enabled" : false, "default_forwarder_zone_path" : "/infra/dns-forwarder-zones/default-1", "_create_user" : "a;a", "_create_time" : 1517403652195, "_last_modified_user" : "a;a", "_last_modified_time" : 1517403652195, "_system_owned" : false, "_protection" : "NOT_PROTECTED", "_revision" : 1 } Required Permissions: Feature: policy_dns Additional Errors:
Read the DNS Forwarder for the given tier-0 instance
Read the DNS Forwarder for the given tier-0 instance Request:Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/tier-0s/<tier-0-id>/dns-forwarder Successful Response:
Example Response: { "resource_type" : "PolicyDnsForwarder", "id" : "dns-forwarder", "display_name" : "dns-forwarder", "path" : "/infra/tier-0s/prv/dns-forwarder", "parent_path" : "/infra/tier-0s/prv", "relative_path" : "dns-forwarder", "listener_ip" : "5.5.5.5", "conditional_forwarder_zone_paths" : [ "/infra/dns-forwarder-zones/conditional-1" ], "log_level" : "INFO", "enabled" : true, "default_forwarder_zone_path" : "/infra/dns-forwarder-zones/default-1", "_create_user" : "a;a", "_create_time" : 1517403652195, "_last_modified_user" : "a;a", "_last_modified_time" : 1517403652195, "_system_owned" : false, "_protection" : "NOT_PROTECTED", "_revision" : 1 } Required Permissions: Feature: policy_dns Additional Errors:
Delete DNS configuration for tier-0 instance
Delete DNS configuration for tier-0 instance Request:Example Request: DELETE https://<policy-mgr>/global-manager/api/v1/global-infra/tier-0s/<tier-0-id>/dns-forwarder Successful Response:
Required Permissions: Feature: policy_dns Additional Errors:
Perform the specified DNS forwarder action
Perform the specified action for Tier0 DNS forwarder on specified enforcement point.Request:
Example Request: 1. Clear cache POST https://<policy-mgr>/global-manager/api/v1/global-infra/tier-0s/tier0/dns-forwarder?action=clear_cache Successful Response:
Required Permissions: Feature: policy_dns 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 Active/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:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/tier-0s/tier0/dns-forwarder/failed-queries Successful Response:
Example Response: { "timestamp" : "2019-02-12 09:08:12.120", "per_node_failed_queries" : [ { "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", "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", "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" }], "edge_node_path": "/infra/sites/default/enforcement-points/default/edge-clusters/b051d3f9-3ad8-4831-9d67-8ae1cd3f5a1e/edge-nodes/aedc2af2-4c5c-11e9-aa7d-0200400d53ef" }, { "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", "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", "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" }], "edge_node_path": "/infra/sites/default/enforcement-points/default/edge-clusters/b051d3f9-3ad8-4831-9d67-8ae1cd3f5a1e/edge-nodes/c73e587c-4c5c-11e9-87cb-0200407787ca" }] } Required Permissions: Feature: policy_dns Additional Errors:
Resolve a given address via the dns forwarder at Tier0
Query the nameserver for an ip-address or a FQDN of the given an address optionally usingan 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).
If enforcement point is specified, then DNS forwarder nslookup answer will get fetched from
specified enforcement point. Otherwise from all enforcement points.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/tier-0s/tier0/dns-forwarder/nslookup?address=vmware.com&enforcement_point_path=/global-infra/sites/default/enforcement-points/default Successful Response:
Example Response: { "dns_answer_per_enforcement_point": [ { "resource_type": "NsxTDnsAnswer", "enforcement_point_path": "/infra/sites/default/enforcement-points/default", "dns_server" : "192.168.144.144:53", "edge_node_id" : "e2fa39aa-f4ca-4781-ac48-60a6c47d34e0", "answers" : [ { "raw_string": "server.example.com. 300 IN A 192.168.1.10" } ], "raw_answer": "; (()) DiG 9.18.30-0ubuntu0.22.04.2-Ubuntu (()) @192.168.144.144 -b 192.168.144.144 server.example.com +timeout=5 +tries=3 +nosearch ; (1 server found) ;; global options: +cmd ;; Got answer: ;; -))HEADER((- opcode: QUERY, status: NOERROR, id: 49577 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1232 ;; QUESTION SECTION: ;server.example.com. IN A ;; ANSWER SECTION: server.example.com. 300 IN A 192.168.1.10 ;; Query time: 4 msec ;; SERVER: 192.168.144.144:53(192.168.144.144) (UDP) ;; WHEN: Mon May 19 03:16:57 UTC 2025 ;; MSG SIZE rcvd: 63" } ], "intent_path": "/infra/tier-0s/tier0/dns-forwarder" } Required Permissions: Feature: policy_dns Additional Errors:
Get tier-0 DNS forwarder statistics
Get statistics of tier-0 DNS forwarder.- no enforcement point path specified: Statistics will be evaluated on each enforcement
point.
- {enforcement_point_path}: Statistics are evaluated only on the given enforcement point.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/tier-0s/tier-01/dns-forwarder/statistics Successful Response:
Example Response: { "statistics_per_enforcement_point": [ { "resource_type": "NsxTDNSForwarderStatistics", "enforcement_point_path": "/infra/sites/default/enforcement-points/default", "queries_answered_locally": 0, "conditional_forwarder_statistics": [ { "upstream_statistics": [ { "queries_succeeded": 0, "queries_failed": 0, "upstream_server": "10.0.0.0" }, { "queries_succeeded": 0, "queries_failed": 0, "upstream_server": "10.2.0.0" } ], "domain_names": [ "fqdn1", "fqdn2" ] } ], "default_forwarder_statistics": { "upstream_statistics": [ { "queries_succeeded": 0, "queries_failed": 0, "upstream_server": "11.0.0.0" }, { "queries_succeeded": 0, "queries_failed": 0, "upstream_server": "11.2.0.0" } ] }, "used_cache_stats": [ { "node_id": "6f1c310b-aeed-445e-aef9-9722c8967ab8", "used_cache_size": 300, "cached_entries_number": 200 }, { "node_id": "5b171969-1539-4be4-a761-83f46b6a262f", "used_cache_size": 200, "cached_entries_number": 190 } ], "queries_forwarded": 0, "configured_cache_size": 4096, "total_queries": 0 } ], "intent_path": "/infra/tier-0s/tier-01/dns-forwarder" } Required Permissions: Feature: policy_statistics Additional Errors:
Get current status of tier-0 DNS forwarder
Get current status of tier-0 DNS forwarder.- no enforcement point path specified: Status will be evaluated on each enforcement
point.
- {enforcement_point_path}: Status will be evaluated only on the given enforcement
point.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/tier-0s/tier-01/dns-forwarder/status Successful Response:
Example Response: { "status_per_enforcement_point": [ { "resource_type": "NsxTDNSForwarderStatus", "enforcement_point_path": "/infra/sites/default/enforcement-points/default", "timestamp": 1537263302625, "status": "UP" }, { "resource_type": "NsxTDNSForwarderStatus", "enforcement_point_path": "/infra/sites/default/enforcement-points/default1", "extra_message": "ERROR status could be an intermediate state during failover between transport nodes. Please recheck the status a few minutes later.", "timestamp": 1537263302625, "status": "ERROR" } ], "intent_path": "/infra/tier-0s/tier-01/dns-forwarder" } Required Permissions: Feature: policy_statistics Additional Errors:
Networking (Dns Forwarder): Tier-1S
- DELETE /global-manager/api/v1/global-infra/tier-1s/{tier-1-id}/dns-forwarder
- GET /global-manager/api/v1/global-infra/tier-1s/{tier-1-id}/dns-forwarder
- PATCH /global-manager/api/v1/global-infra/tier-1s/{tier-1-id}/dns-forwarder
- POST /global-manager/api/v1/global-infra/tier-1s/{tier-1-id}/dns-forwarder
- PUT /global-manager/api/v1/global-infra/tier-1s/{tier-1-id}/dns-forwarder
- GET /global-manager/api/v1/global-infra/tier-1s/{tier-1-id}/dns-forwarder/failed-queries
- GET /global-manager/api/v1/global-infra/tier-1s/{tier-1-id}/dns-forwarder/nslookup
- GET /global-manager/api/v1/global-infra/tier-1s/{tier-1-id}/dns-forwarder/statistics
- GET /global-manager/api/v1/global-infra/tier-1s/{tier-1-id}/dns-forwarder/status
Create or update the DNS Forwarder
Create or update the DNS Forwarder Request:Example Request: PATCH https://<policy-mgr>/global-manager/api/v1/global-infra/tier-1s/<tier-1-id>/dns-forwarder { "display_name" : "dns-forwarder", "listener_ip" : "5.5.5.5", "default_forwarder_zone_path" : "/global-infra/dns-forwarder-zones/default-1", "conditional_forwarder_zone_paths" : ["/global-infra/dns-forwarder-zones/conditional-1"] } Successful Response:
Required Permissions: Feature: policy_dns Additional Errors:
Create or update the DNS Forwarder
Create or update the DNS Forwarder Request:Example Request: PUT https://<policy-mgr>/global-manager/api/v1/global-infra/tier-1s/<tier-1-id>/dns-forwarder { "display_name" : "dns-forwarder", "listener_ip" : "5.5.5.5", "default_forwarder_zone_path" : "/global-infra/dns-forwarder-zones/default-1", "conditional_forwarder_zone_paths" : ["/global-infra/dns-forwarder-zones/conditional-1"], "_revision" : 0 } Successful Response:
Example Response: { "resource_type" : "PolicyDnsForwarder", "id" : "dns-forwarder", "display_name" : "dns-forwarder", "path" : "/infra/tier-1s/net-1/dns-forwarder", "parent_path" : "/infra/tier-1s/net-1", "relative_path" : "dns-forwarder", "listener_ip" : "5.5.5.5", "conditional_forwarder_zone_paths" : [ "/infra/dns-forwarder-zones/conditional-1" ], "log_level" : "INFO", "enabled" : true, "default_forwarder_zone_path" : "/infra/dns-forwarder-zones/default-1", "_create_user" : "a;a", "_create_time" : 1517403652195, "_last_modified_user" : "a;a", "_last_modified_time" : 1517403652195, "_system_owned" : false, "_protection" : "NOT_PROTECTED", "_revision" : 1 } Required Permissions: Feature: policy_dns Additional Errors:
Read the DNS Forwarder for the given tier-1 instance
Read the DNS Forwarder for the given tier-1 instance Request:Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/tier-1s/<tier-1-id>/dns-forwarder Successful Response:
Example Response: { "resource_type" : "PolicyDnsForwarder", "id" : "dns-forwarder", "display_name" : "dns-forwarder", "path" : "/infra/tier-1s/net-1/dns-forwarder", "parent_path" : "/infra/tier-1s/net-1", "relative_path" : "dns-forwarder", "listener_ip" : "5.5.5.5", "conditional_forwarder_zone_paths" : [ "/infra/dns-forwarder-zones/conditional-1" ], "log_level" : "INFO", "enabled" : true, "default_forwarder_zone_path" : "/infra/dns-forwarder-zones/default-1", "_create_user" : "a;a", "_create_time" : 1517403652195, "_last_modified_user" : "a;a", "_last_modified_time" : 1517403652195, "_system_owned" : false, "_protection" : "NOT_PROTECTED", "_revision" : 1 } Required Permissions: Feature: policy_dns Additional Errors:
Delete DNS configuration for tier-1 instance
Delete DNS configuration for tier-1 instance Request:Example Request: DELETE https://<policy-mgr>/global-manager/api/v1/global-infra/tier-1s/<tier-1-id>/dns-forwarder Successful Response:
Required Permissions: Feature: policy_dns Additional Errors:
Perform the specified DNS forwarder action
Perform the specified action for Tier0 DNS forwarder on specified enforcement point.Request:
Example Request: 1. Clear cache POST https://<policy-mgr>/global-manager/api/v1/global-infra/tier-0s/tier1/dns-forwarder?action=clear_cache&enforcement_point_path=/global-infra/sites/default/enforcement-points/ep Successful Response:
Required Permissions: Feature: policy_dns 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 Active/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:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/tier-1s/tier1/dns-forwarder/failed-queries Successful Response:
Example Response: { "timestamp" : "2019-02-12 09:08:12.120", "per_node_failed_queries" : [ { "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", "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", "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" }], "edge_node_path": "/infra/sites/default/enforcement-points/default/edge-clusters/b051d3f9-3ad8-4831-9d67-8ae1cd3f5a1e/edge-nodes/aedc2af2-4c5c-11e9-aa7d-0200400d53ef" }, { "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", "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", "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" }], "edge_node_path": "/infra/sites/default/enforcement-points/default/edge-clusters/b051d3f9-3ad8-4831-9d67-8ae1cd3f5a1e/edge-nodes/c73e587c-4c5c-11e9-87cb-0200407787ca" }] } Required Permissions: Feature: policy_dns Additional Errors:
Resolve a given address via the dns forwarder at Tier1
Query the nameserver for an ip-address or a FQDN of the given an address optionally usingan 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).
If enforcement point is specified, then DNS forwarder nslookup answer will get fetched from
specified enforcement point. Otherwise from all enforcement points.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/tier-1s/tier1/dns-forwarder/nslookup?address=vmware.com&enforcement_point_path=/global-infra/sites/default/enforcement-points/default Successful Response:
Example Response: { "dns_answer_per_enforcement_point": [ { "resource_type": "NsxTDnsAnswer", "enforcement_point_path": "/infra/sites/default/enforcement-points/default", "dns_server" : "192.168.144.144#53", "edge_node_id" : "e2fa39aa-f4ca-4781-ac48-60a6c47d34e0", "answers" : [ { "raw_string": "server.example.com. 300 IN A 192.168.1.10" } ], "raw_answer": "; (()) DiG 9.18.30-0ubuntu0.22.04.2-Ubuntu (()) @192.168.144.144 -b 192.168.144.144 server.example.com +timeout=5 +tries=3 +nosearch ; (1 server found) ;; global options: +cmd ;; Got answer: ;; -))HEADER((- opcode: QUERY, status: NOERROR, id: 49577 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1232 ;; QUESTION SECTION: ;server.example.com. IN A ;; ANSWER SECTION: server.example.com. 300 IN A 192.168.1.10 ;; Query time: 4 msec ;; SERVER: 192.168.144.144:53(192.168.144.144) (UDP) ;; WHEN: Mon May 19 03:16:57 UTC 2025 ;; MSG SIZE rcvd: 63" } ], "intent_path": "/infra/tier-1s/tier1/dns-forwarder" } Required Permissions: Feature: policy_dns Additional Errors:
Get tier-1 DNS forwarder statistics
Get statistics of tier-1 DNS forwarder.- no enforcement point path specified: Statistics will be evaluated on each enforcement
point.
- {enforcement_point_path}: Statistics are evaluated only on the given enforcement point.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/tier-1s/tier-1/dns-forwarder/statistics?enforcement_point_path=/global-infra/sites/default/enforcement-points/ep1 Successful Response:
Example Response: { "statistics_per_enforcement_point": [ { "resource_type": "NsxTDNSForwarderStatistics", "enforcement_point_path": "/infra/sites/default/enforcement-points/default", "queries_answered_locally": 0, "conditional_forwarder_statistics": [ { "upstream_statistics": [ { "queries_succeeded": 0, "queries_failed": 0, "upstream_server": "10.0.0.0" }, { "queries_succeeded": 0, "queries_failed": 0, "upstream_server": "10.2.0.0" } ], "domain_names": [ "fqdn1", "fqdn2" ] } ], "default_forwarder_statistics": { "upstream_statistics": [ { "queries_succeeded": 0, "queries_failed": 0, "upstream_server": "11.0.0.0" }, { "queries_succeeded": 0, "queries_failed": 0, "upstream_server": "11.2.0.0" } ] }, "used_cache_stats": [ { "node_id": "6f1c310b-aeed-445e-aef9-9722c8967ab8", "used_cache_size": 300, "cached_entries_number": 200 }, { "node_id": "5b171969-1539-4be4-a761-83f46b6a262f", "used_cache_size": 200, "cached_entries_number": 190 } ], "queries_forwarded": 0, "configured_cache_size": 2048, "total_queries": 0 } ], "intent_path": "/infra/tier-1s/tier-1/dns-forwarder" } Required Permissions: Feature: policy_statistics Additional Errors:
Get current status of tier-1 DNS forwarder
Get current status of tier-1 DNS forwarder.- no enforcement point path specified: Status will be evaluated on each enforcement
point.
- {enforcement_point_path}: Status will be evaluated only on the given enforcement
point.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/tier-1s/tier-1/dns-forwarder/status?enforcement_point_path=/global-infra/sites/default/enforcement-points/default Successful Response:
Example Response: { "status_per_enforcement_point": [ { "resource_type": "NsxTDNSForwarderStatus", "enforcement_point_path": "/infra/sites/default/enforcement-points/default", "timestamp": 1537263302625, "status": "UP" } ], "intent_path": "/infra/tier-1s/tier-1/dns-forwarder" } Required Permissions: Feature: policy_statistics Additional Errors:
Networking (Nat)
Networking (Nat): NAT Rules (Tier-0S)
- GET /global-manager/api/v1/global-infra/tier-0s/{tier-0-id}/nat
- GET /global-manager/api/v1/global-infra/tier-0s/{tier-0-id}/nat/{nat-id}/nat-rules
- DELETE /global-manager/api/v1/global-infra/tier-0s/{tier-0-id}/nat/{nat-id}/nat-rules/{nat-rule-id}
- GET /global-manager/api/v1/global-infra/tier-0s/{tier-0-id}/nat/{nat-id}/nat-rules/{nat-rule-id}
- PATCH /global-manager/api/v1/global-infra/tier-0s/{tier-0-id}/nat/{nat-id}/nat-rules/{nat-rule-id}
- PUT /global-manager/api/v1/global-infra/tier-0s/{tier-0-id}/nat/{nat-id}/nat-rules/{nat-rule-id}
List Policy NAT types.
List all NAT sections under the given Tier-0 ID.For more details related to NAT section please refer to PolicyNAT schema.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/tier-0s/vmc_provider-demo/nat Successful Response:
Example Response: { "sort_ascending": true, "sort_by": "display_name", "result_count": 4, "results": [ { "nat_type": "DEFAULT", "resource_type": "PolicyNat", "id": "DEFAULT", "display_name": "DEFAULT", "path": "/infra/tier-0s/pepsi/nat/DEFAULT", "relative_path": "DEFAULT", "parent_path": "/infra/tier-0s/pepsi", "unique_id": "053c5df4-13f2-4573-84b3-b6f3356283f8", "realization_id": "053c5df4-13f2-4573-84b3-b6f3356283f8", "marked_for_delete": false, "overridden": false, "_system_owned": true, "_create_time": 1633385506470, "_create_user": "admin", "_last_modified_user": "admin", "_last_modified_time": 1633385506470, "_protection": "NOT_PROTECTED", "_revision": 0 }, { "nat_type": "INTERNAL", "resource_type": "PolicyNat", "id": "INTERNAL", "display_name": "INTERNAL", "path": "/infra/tier-0s/pepsi/nat/INTERNAL", "relative_path": "INTERNAL", "parent_path": "/infra/tier-0s/pepsi", "unique_id": "8680b58e-7013-434a-af56-1917c25cbc75", "realization_id": "8680b58e-7013-434a-af56-1917c25cbc75", "marked_for_delete": false, "overridden": false, "_system_owned": true, "_create_time": 1633385506447, "_create_user": "admin", "_last_modified_user": "admin", "_last_modified_time": 1633385506447, "_protection": "NOT_PROTECTED", "_revision": 0 }, { "nat_type": "NAT64", "resource_type": "PolicyNat", "id": "NAT64", "display_name": "NAT64", "path": "/infra/tier-0s/pepsi/nat/NAT64", "relative_path": "NAT64", "parent_path": "/infra/tier-0s/pepsi", "unique_id": "a96329d1-c8d7-43c7-b2ac-5fb1283e4201", "realization_id": "a96329d1-c8d7-43c7-b2ac-5fb1283e4201", "marked_for_delete": false, "overridden": false, "_system_owned": true, "_create_time": 1633385506470, "_create_user": "admin", "_last_modified_user": "admin", "_last_modified_time": 1633385506470, "_protection": "NOT_PROTECTED", "_revision": 0 }, { "nat_type": "USER", "resource_type": "PolicyNat", "id": "USER", "display_name": "USER", "path": "/infra/tier-0s/pepsi/nat/USER", "relative_path": "USER", "parent_path": "/infra/tier-0s/pepsi", "unique_id": "d76c8c31-aff3-437c-bb13-be0c15e65afb", "realization_id": "d76c8c31-aff3-437c-bb13-be0c15e65afb", "marked_for_delete": false, "overridden": false, "_system_owned": true, "_create_time": 1633385506468, "_create_user": "admin", "_last_modified_user": "admin", "_last_modified_time": 1633385506468, "_protection": "NOT_PROTECTED", "_revision": 0 } ] } Required Permissions: Feature: policy_nat_rules Additional Errors:
List NAT Rules
List NAT Rules from Tier-0 denoted by Tier-0 ID, under NAT sectiondenoted by <nat-id>.
Under tier-0 there will be 3 different NATs(sections).
(INTERNAL, USER and DEFAULT)
For more details related to NAT section please refer to PolicyNAT schema.
Note:
IPSecVpnSession as Scope: Please note that old IPSecVpnSession policy path deprecated. If user specifiy old IPSecVpnSession path in the
scope property in the PATCH/PUT API, the path returned in the GET response payload will be a new path instead of the deprecated IPSecVpnSession path
Both old and new IPSecVpnSession path refer to same resource. there is no functional impact.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/tier-0s/vmc_provider-demo/nat/USER/nat-rules Successful Response:
Example Response: { "sort_ascending": true, "sort_by": "display_name", "result_count": 3, "results": [ { "resource_type": "PolicyNatRule", "description": "Example of a NAT rule", "id": "MyNATRule", "display_name": "MyNATRule", "path": "/infra/tier-0s/vmc_provider-demo/nat/USER/nat-rules/MyNATRule", "parent_path": "/infra/tier-0s/vmc_provider-demo/nat/USER", "relative_path": "MyNATRule", "sequence_number": 1, "service": "", "scope": [], "action": "REFLEXIVE", "source_network": "10.117.5.73", "translated_network": "192.168.1.1", "enabled": true, "logging": false, "firewall_match" : "MATCH_EXTERNAL_ADDRESS", "_create_user": "admin", "_create_time": 1516015559976, "_last_modified_user": "admin", "_last_modified_time": 1516015559976, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 }, { "resource_type": "PolicyNatRule", "description": "Example of a NAT rule", "id": "MyNATRule3", "display_name": "MyNATRule3", "path": "/infra/tier-0s/vmc_provider-demo/nat/USER/nat-rules/MyNATRule3", "parent_path": "/infra/tier-0s/vmc_provider-demo/nat/USER", "relative_path": "MyNATRule3", "sequence_number": 10, "service": "/infra/services/AD_Server", "scope": [], "action": "DNAT", "translated_ports": "80-82", "destination_network": "10.117.5.19", "translated_network": "192.168.1.1", "enabled": true, "logging": false, "firewall_match" : "MATCH_EXTERNAL_ADDRESS", "_create_user": "admin", "_create_time": 1516084472276, "_last_modified_user": "admin", "_last_modified_time": 1516084472276, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 }, { "resource_type": "PolicyNatRule", "description": "Example of a NAT rule", "id": "MyNATRuleDemo", "display_name": "MyNATRuleDemo", "path": "/infra/tier-0s/vmc_provider-demo/nat/USER/nat-rules/MyNATRuleDemo", "parent_path": "/infra/tier-0s/vmc_provider-demo/nat/USER", "relative_path": "MyNATRuleDemo", "sequence_number": 10, "service": "/infra/services/AD_Server", "scope": [ "infra/tier-0s/provider1/local-services/localService1/interfaces/internet" ], "action": "DNAT", "translated_ports": "80-82", "destination_network": "10.117.5.19", "translated_network": "192.168.1.1", "enabled": true, "logging": false, "firewall_match" : "MATCH_EXTERNAL_ADDRESS", "_create_user": "admin", "_create_time": 1516181809835, "_last_modified_user": "admin", "_last_modified_time": 1516181809835, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 } ] } Required Permissions: Feature: policy_nat_rules Additional Errors:
Create or update a NAT Rule on tier-0
If a NAT Rule is not already present on Tier-0 denoted by Tier-0 ID,under NAT section denoted by <nat-id>, create a new NAT Rule.
If it already exists, update the NAT Rule.
Under tier-0 there will be 3 different NATs(sections).
(INTERNAL, USER and DEFAULT)
NAT rule cannot be applied to a loopback interface or a label referencing loopback interfaces.
For more details related to NAT section please refer to PolicyNAT schema.
Note:
IPSecVpnSession as Scope: Please note that old IPSecVpnSession policy path deprecated. If user specifiy old IPSecVpnSession path in the
scope property in the PATCH API, the path returned in the GET response payload will be a new path instead of the deprecated IPSecVpnSession path
Both old and new IPSecVpnSession path refer to same resource. there is no functional impact.
Request:
Example Request: PATCH https://<policy-mgr>/global-manager/api/v1/global-infra/tier-0s/vmc_provider-demo/nat/USER/nat-rules/MyNATRuleDemo { "display_name" : "MyNATRuleDemo", "description" : "Example of a NAT rule", "action" : "DNAT", "destination_network" : "10.117.5.19", "service": "/global-infra/services/AD_Server", "translated_network" : "192.168.1.1", "translated_ports" : "80-82", "sequence_number" : 10, "scope" : ["infra/tier-0s/provider1/local-services/localService1/interfaces/internet"], "enabled": true, "logging" : false, "firewall_match" : "MATCH_EXTERNAL_ADDRESS", "_revision" : 0 } Successful Response:
Required Permissions: Feature: policy_nat_rules Additional Errors:
Get NAT Rule
Get NAT Rule from Tier-0 denoted by Tier-0 ID, under NAT sectiondenoted by <nat-id>.
Under tier-0 there will be 3 different NATs(sections).
(INTERNAL, USER and DEFAULT)
For more details related to NAT section please refer to PolicyNAT schema.
Note:
IPSecVpnSession as Scope: Please note that old IPSecVpnSession policy path deprecated. If user specifiy old IPSecVpnSession path in the
scope property in the PUT/PATCH API, the path returned in the GET response payload will be a new path instead of the deprecated IPSecVpnSession path
Both old and new IPSecVpnSession path refer to same resource. there is no functional impact.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/tier-0s/vmc_provider-demo/nat/USER/nat-rules/MyNATRule3 Successful Response:
Example Response: { "resource_type": "PolicyNatRule", "description": "Example of a NAT rule", "id": "MyNATRule3", "display_name": "MyNATRule3", "path": "/infra/tier-0s/vmc_provider-demo//nat/USER/nat-rules/MyNATRule3", "parent_path": "/infra/tier-0s/vmc_provider-demo/nat/USER", "relative_path": "MyNATRule3", "sequence_number": 10, "service": "/infra/services/AD_Server", "enabled": true, "logging": false, "firewall_match" : "MATCH_EXTERNAL_ADDRESS", "scope": [], "action": "DNAT", "translated_ports": "80-82", "destination_network": "10.117.5.19", "translated_network": "192.168.1.1", "_create_user": "admin", "_create_time": 1516084472276, "_last_modified_user": "admin", "_last_modified_time": 1516084472276, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 } Required Permissions: Feature: policy_nat_rules Additional Errors:
Delete NAT Rule
Delete NAT Rule from Tier-0 denoted by Tier-0 ID, under NAT section denoted by <nat-id>. Under tier-0 there will be 3 different NATs(sections). (INTERNAL, USER and DEFAULT) For more details related to NAT section please refer to PolicyNAT schema. Request:Example Request: DELETE https://<policy-mgr>/global-manager/api/v1/global-infra/tier-0s/vmc_provider-demo/nat/USER/nat-rules/MyNATRule4 Successful Response:
Required Permissions: Feature: policy_nat_rules Additional Errors:
Create or update NAT Rule
Create or update NAT Rule on Tier-0 denoted by Tier-0 ID, under NAT sectiondenoted by <nat-id>.
Under tier-0 there will be 3 different NATs(sections).
(INTERNAL, USER and DEFAULT)
NAT rule cannot be applied to a loopback interface or a label referencing loopback interfaces.
For more details related to NAT section please refer to PolicyNAT schema.
Note:
IPSecVpnSession as Scope: Please note that old IPSecVpnSession policy path deprecated. If user specifiy old IPSecVpnSession path in the
scope property in the PUT API, the path returned in the PUT/GET response payload will be a new path instead of the deprecated IPSecVpnSession path
Both old and new IPSecVpnSession path refer to same resource. there is no functional impact.
Request:
Example Request: PUT https://<policy-mgr>/global-manager/api/v1/global-infra/tier-0s/vmc_provider-demo/nat/USER/nat-rules/MyNATRuleDemo { "display_name" : "MyNATRuleDemo", "description" : "Example of a NAT rule", "action" : "DNAT", "destination_network" : "10.117.5.19", "service": "/global-infra/services/AD_Server", "translated_network" : "192.168.1.1", "translated_ports" : "80-82", "sequence_number" : 10, "scope" : ["infra/tier-0s/provider1/local-services/localService1/interfaces/internet"], "enabled": true, "logging" : false, "firewall_match" : "MATCH_EXTERNAL_ADDRESS", "_revision" : 0 } Successful Response:
Example Response: { "resource_type": "PolicyNatRule", "description": "Example of a NAT rule", "id": "MyNATRuleDemo", "display_name": "MyNATRuleDemo", "path": "/infra/tier-0s/vmc_provider-demo/nat/USER/nat-rules/MyNATRuleDemo", "parent_path": "/infra/tier-0s/vmc_provider-demo/nat/USER", "relative_path": "MyNATRuleDemo", "sequence_number": 10, "service": "/infra/services/AD_Server", "scope": [ "infra/tier-0s/provider1/local-services/localService1/interfaces/internet" ], "action": "DNAT", "translated_ports": "80-82", "destination_network": "10.117.5.19", "translated_network": "192.168.1.1", "enabled" : true, "logging" : false, "firewall_match" : "MATCH_EXTERNAL_ADDRESS", "_create_user": "admin", "_create_time": 1516181809835, "_last_modified_user": "admin", "_last_modified_time": 1516181809835, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 } Required Permissions: Feature: policy_nat_rules Additional Errors:
Networking (Nat): NAT Rules (Tier-1S)
- GET /global-manager/api/v1/global-infra/tier-1s/{tier-1-id}/nat
- GET /global-manager/api/v1/global-infra/tier-1s/{tier-1-id}/nat/{nat-id}/nat-rules
- DELETE /global-manager/api/v1/global-infra/tier-1s/{tier-1-id}/nat/{nat-id}/nat-rules/{nat-rule-id}
- GET /global-manager/api/v1/global-infra/tier-1s/{tier-1-id}/nat/{nat-id}/nat-rules/{nat-rule-id}
- PATCH /global-manager/api/v1/global-infra/tier-1s/{tier-1-id}/nat/{nat-id}/nat-rules/{nat-rule-id}
- PUT /global-manager/api/v1/global-infra/tier-1s/{tier-1-id}/nat/{nat-id}/nat-rules/{nat-rule-id}
List Policy NAT types.
List all NAT sections under the given Tier-1 ID.For more details related to NAT section please refer to PolicyNAT schema.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/tier-1s/vmc_network-demo/nat Successful Response:
Example Response: { "sort_ascending": true, "sort_by": "display_name", "result_count": 4, "results": [ { "nat_type": "DEFAULT", "resource_type": "PolicyNat", "id": "DEFAULT", "display_name": "DEFAULT", "path": "/infra/tier-1s/it_t1/nat/DEFAULT", "relative_path": "DEFAULT", "parent_path": "/infra/tier-1s/it_t1", "unique_id": "6c029b55-56aa-4f30-8dda-50745853c78f", "realization_id": "6c029b55-56aa-4f30-8dda-50745853c78f", "marked_for_delete": false, "overridden": false, "_system_owned": true, "_create_time": 1633385644756, "_create_user": "admin", "_last_modified_user": "admin", "_last_modified_time": 1633385644756, "_protection": "NOT_PROTECTED", "_revision": 0 }, { "nat_type": "INTERNAL", "resource_type": "PolicyNat", "id": "INTERNAL", "display_name": "INTERNAL", "path": "/infra/tier-1s/it_t1/nat/INTERNAL", "relative_path": "INTERNAL", "parent_path": "/infra/tier-1s/it_t1", "unique_id": "2ede024b-2bbc-429c-b5de-dff7131a7900", "realization_id": "2ede024b-2bbc-429c-b5de-dff7131a7900", "marked_for_delete": false, "overridden": false, "_system_owned": true, "_create_time": 1633385644745, "_create_user": "admin", "_last_modified_user": "admin", "_last_modified_time": 1633385644745, "_protection": "NOT_PROTECTED", "_revision": 0 }, { "nat_type": "NAT64", "resource_type": "PolicyNat", "id": "NAT64", "display_name": "NAT64", "path": "/infra/tier-1s/it_t1/nat/NAT64", "relative_path": "NAT64", "parent_path": "/infra/tier-1s/it_t1", "unique_id": "8ff75480-5cc5-4bce-9ed5-6bb948a65b3d", "realization_id": "8ff75480-5cc5-4bce-9ed5-6bb948a65b3d", "marked_for_delete": false, "overridden": false, "_system_owned": true, "_create_time": 1633385644758, "_create_user": "admin", "_last_modified_user": "admin", "_last_modified_time": 1633385644758, "_protection": "NOT_PROTECTED", "_revision": 0 }, { "nat_type": "USER", "resource_type": "PolicyNat", "id": "USER", "display_name": "USER", "path": "/infra/tier-1s/it_t1/nat/USER", "relative_path": "USER", "parent_path": "/infra/tier-1s/it_t1", "unique_id": "202e658c-17bd-41bb-bc72-bfdef716ba9b", "realization_id": "202e658c-17bd-41bb-bc72-bfdef716ba9b", "marked_for_delete": false, "overridden": false, "_system_owned": true, "_create_time": 1633385644755, "_create_user": "admin", "_last_modified_user": "admin", "_last_modified_time": 1633385644755, "_protection": "NOT_PROTECTED", "_revision": 0 } ] } Required Permissions: Feature: policy_nat_rules Additional Errors:
List NAT Rules
List NAT Rules from Tier-1 denoted by Tier-1 ID, under NAT sectiondenoted by <nat-id>.
Under tier-1 there will be 3 different NATs(sections).
(INTERNAL, USER and DEFAULT)
For more details related to NAT section please refer to PolicyNAT schema.
Note:
IPSecVpnSession as Scope: Please note that old IPSecVpnSession policy path deprecated. If user specifiy old IPSecVpnSession path in the
scope property in the PATCH/PUT PoliycNatRule API, the path returned in the GET response payload will be a new path instead of the deprecated IPSecVpnSession path
Both old and new IPSecVpnSession path refer to same resource. there is no functional impact.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/tier-1s/vmc_network-demo/nat/USER/nat-rules Successful Response:
Example Response: { "sort_ascending": true, "sort_by": "display_name", "result_count": 3, "results": [ { "resource_type": "PolicyNatRule", "description": "Example of a NAT rule", "id": "MyNATRule", "display_name": "MyNATRule", "path": "/infra/tier-1s/vmc_network-demo/nat/USER/nat-rules/MyNATRule", "parent_path": "/infra/tier-1s/vmc_network-demo/nat/USER", "relative_path": "MyNATRule", "sequence_number": 1, "service": "", "scope": [], "action": "REFLEXIVE", "enabled" : true, "logging" : false, "firewall_match" : "MATCH_EXTERNAL_ADDRESS", "source_network": "10.117.5.73", "translated_network": "192.168.1.1", "_create_user": "admin", "_create_time": 1516015559976, "_last_modified_user": "admin", "_last_modified_time": 1516015559976, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 }, { "resource_type": "PolicyNatRule", "description": "Example of a NAT rule", "id": "MyNATRule3", "display_name": "MyNATRule3", "path": "/infra/tier-1s/vmc_network-demo/nat/USER/nat-rules/MyNATRule3", "parent_path": "/infra/tier-1s/vmc_network-demo/nat/USER", "relative_path": "MyNATRule3", "sequence_number": 10, "service": "/infra/services/AD_Server", "scope": [], "action": "DNAT", "enabled" : true, "logging" : false, "firewall_match" : "MATCH_EXTERNAL_ADDRESS", "translated_ports": "80-82", "destination_network": "10.117.5.19", "translated_network": "192.168.1.1", "_create_user": "admin", "_create_time": 1516084472276, "_last_modified_user": "admin", "_last_modified_time": 1516084472276, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 }, { "resource_type": "PolicyNatRule", "description": "Example of a NAT rule", "id": "MyNATRuleDemo", "display_name": "MyNATRuleDemo", "path": "/infra/tier-1s/vmc_network-demo/nat/USER/nat-rules/MyNATRuleDemo", "parent_path": "/infra/tier-1s/vmc_network-demo/nat/USER", "relative_path": "MyNATRuleDemo", "sequence_number": 10, "service": "/infra/services/AD_Server", "scope": [ "infra/tier-0s/tier-0-vmc/interfaces/internet" ], "action": "DNAT", "enabled" : true, "logging" : false, "firewall_match" : "MATCH_EXTERNAL_ADDRESS", "translated_ports": "80-82", "destination_network": "10.117.5.19", "translated_network": "192.168.1.1", "_create_user": "admin", "_create_time": 1516181809835, "_last_modified_user": "admin", "_last_modified_time": 1516181809835, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 } ] } Required Permissions: Feature: policy_nat_rules Additional Errors:
Create or update a Nat Rule
If a NAT Rule is not already present on Tier-1 denoted by Tier-1 ID,under NAT section denoted by <nat-id>, create a new NAT Rule.
If it already exists, update the NAT Rule.
Under tier-1 there will be 3 different NATs(sections).
(INTERNAL, USER and DEFAULT)
For more details related to NAT section please refer to PolicyNAT schema.
Note:
IPSecVpnSession as Scope: Please note that old IPSecVpnSession policy path deprecated. If user specifiy old IPSecVpnSession path in the
scope property, the path returned in the GET response payload will be a new path instead of the deprecated IPSecVpnSession path
Both old and new IPSecVpnSession path refer to same resource. there is no functional impact.
Request:
Example Request: PATCH https://<policy-mgr>/global-manager/api/v1/global-infra/tier-1s/vmc_network-demo/nat/USER/nat-rules/MyNATRuleDemo { "display_name" : "MyNATRuleDemo", "description" : "Example of a NAT rule", "action" : "DNAT", "destination_network" : "10.117.5.19", "service": "/global-infra/services/AD_Server", "translated_network" : "192.168.1.1", "translated_ports" : "80-82", "sequence_number" : 10, "enabled" : true, "logging" : false, "firewall_match" : "MATCH_EXTERNAL_ADDRESS", "scope" : ["infra/tier-0s/tier-0-vmc/interfaces/internet"] } Successful Response:
Required Permissions: Feature: policy_nat_rules Additional Errors:
Get NAT Rule
Get NAT Rule from Tier-1 denoted by Tier-1 ID, under NAT sectiondenoted by <nat-id>.
Under tier-1 there will be 3 different NATs(sections).
(INTERNAL, USER and DEFAULT)
For more details related to NAT section please refer to PolicyNAT schema.
Note:
IPSecVpnSession as Scope: Please note that old IPSecVpnSession policy path deprecated. If user specifiy old IPSecVpnSession path in the
scope property in the PATCH/PUT PoliycNatRule API, the path returned in the GET response payload will be a new path instead of the deprecated IPSecVpnSession path
Both old and new IPSecVpnSession path refer to same resource. there is no functional impact.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/tier-1s/vmc_network-demo/nat/USER/nat-rules/MyNATRule3 Successful Response:
Example Response: { "resource_type": "PolicyNatRule", "description": "Example of a NAT rule", "id": "MyNATRule3", "display_name": "MyNATRule3", "path": "/infra/tier-1s/vmc_network-demo/nat/USER/nat-rules/MyNATRule3", "parent_path": "/infra/tier-1s/vmc_network-demo/nat/USER", "relative_path": "MyNATRule3", "sequence_number": 10, "service": "/infra/services/AD_Server", "scope": [], "action": "DNAT", "translated_ports": "80-82", "destination_network": "10.117.5.19", "translated_network": "192.168.1.1", "enabled" : true, "logging" : false, "firewall_match" : "MATCH_EXTERNAL_ADDRESS", "_create_user": "admin", "_create_time": 1516084472276, "_last_modified_user": "admin", "_last_modified_time": 1516084472276, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 } Required Permissions: Feature: policy_nat_rules Additional Errors:
Delete NAT Rule
Delete NAT Rule from Tier-1 denoted by Tier-1 ID, under NAT section denoted by <nat-id>. Under tier-1 there will be 3 different NATs(sections). (INTERNAL, USER and DEFAULT) For more details related to NAT section please refer to PolicyNAT schema. Request:Example Request: DELETE https://<policy-mgr>/global-manager/api/v1/global-infra/tier-1s/vmc_network-demo/nat/USER/nat-rules/MyNATRule4 Successful Response:
Required Permissions: Feature: policy_nat_rules Additional Errors:
Create or update NAT Rule
Create or update NAT Rule on Tier-1 denoted by Tier-1 ID, under NAT sectiondenoted by <nat-id>.
Under tier-1 there will be 3 different NATs(sections).
(INTERNAL, USER and DEFAULT)
For more details related to NAT section please refer to PolicyNAT schema.
Note:
IPSecVpnSession as Scope: Please note that old IPSecVpnSession policy path deprecated. If user specifiy old IPSecVpnSession path in the
scope property in the PUT API, the path returned in the GET/PUT response payload will be a new path instead of the deprecated IPSecVpnSession path
Both old and new IPSecVpnSession path refer to same resource. there is no functional impact.
Request:
Example Request: PUT https://<policy-mgr>/global-manager/api/v1/global-infra/tier-1s/vmc_network-demo/nat/USER/nat-rules/MyNATRuleDemo { "display_name" : "MyNATRuleDemo", "description" : "Example of a NAT rule", "action" : "DNAT", "destination_network" : "10.117.5.19", "service": "/global-infra/services/AD_Server", "translated_network" : "192.168.1.1", "translated_ports" : "80-82", "sequence_number" : 10, "enabled" : true, "logging" : false, "firewall_match" : "MATCH_EXTERNAL_ADDRESS", "scope" : ["infra/tier-0s/tier-0-vmc/interfaces/internet"] } Successful Response:
Example Response: { "resource_type": "PolicyNatRule", "description": "Example of a NAT rule", "id": "MyNATRuleDemo", "display_name": "MyNATRuleDemo", "path": "/infra/tier-1s/vmc_network-demo/nat/USER/nat-rules/MyNATRuleDemo", "parent_path": "/infra/tier-1s/vmc_network-demo/nat/USER", "relative_path": "MyNATRuleDemo", "sequence_number": 10, "service": "/infra/services/AD_Server", "scope": [ "infra/tier-0s/tier-0-vmc/interfaces/internet" ], "action": "DNAT", "translated_ports": "80-82", "destination_network": "10.117.5.19", "translated_network": "192.168.1.1", "enabled" : true, "logging" : false, "firewall_match" : "MATCH_EXTERNAL_ADDRESS", "_create_user": "admin", "_create_time": 1516181809835, "_last_modified_user": "admin", "_last_modified_time": 1516181809835, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 } Required Permissions: Feature: policy_nat_rules Additional Errors:
Networking (Nat): NAT Statistics
- GET /global-manager/api/v1/global-infra/tier-0s/{tier-0-id}/nat/{nat-id}/nat-rules/{nat-rule-id}/statistics
- GET /global-manager/api/v1/global-infra/tier-0s/{tier-0-id}/nat/statistics
- GET /global-manager/api/v1/global-infra/tier-1s/{tier-1-id}/nat/{nat-id}/nat-rules/{nat-rule-id}/statistics
- GET /global-manager/api/v1/global-infra/tier-1s/{tier-1-id}/nat/statistics
Get NAT Rule Statistics
Get NAT Rule Statistics from Tier-0 denoted by Tier-0 ID, under NAT sectiondenoted by <nat-id>.
Under tier-0 there will be 3 different NATs(sections).
(INTERNAL, USER and DEFAULT)
For more details related to NAT section please refer to PolicyNAT schema.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/tier-0s/ServerT0_AS/nat/USER/nat-rules/ANYANY/statistics Successful Response:
Example Response: { "results": [ { "enforcement_point_path": "/infra/sites/default/enforcement-points/default", "rule_path": "/infra/tier-0s/ServerT0_AS/nat/USER/nat-rules/ANYANY", "rule_statistics": [ { "last_update_timestamp": 1726032957830, "total_bytes": 0, "total_packets": 0, "active_sessions": 0 } ] } ] } Required Permissions: Feature: policy_nat_rules Additional Errors:
List NAT Rules Statistics
List NAT Rules Statistics from Tier-0 denoted by Tier-0 ID. Request:Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/tier-0s/Tier0Gateway1_child_vrf1/nat/statistics Successful Response:
Example Response: { "enforcement_point_path": "/infra/sites/default/enforcement-points/default", "router_path": "/infra/tier-0s/Tier0Gateway1_child_vrf1", "last_update_timestamp": 1725968007133, "statistics": { "total_bytes": 7242, "total_packets": 42, "active_sessions": 0 }, "per_node_statistics": [ { "transport_node_path": "0", "last_update_timestamp": 1725968007133, "total_bytes": 0, "total_packets": 0, "active_sessions": 0 }, { "transport_node_path": "0", "last_update_timestamp": 1725968007133, "total_bytes": 7242, "total_packets": 42, "active_sessions": 0 } ] } Required Permissions: Feature: policy_nat_rules Additional Errors:
Get NAT Rule Statistics
Get NAT Rule Statistics from Tier-1 denoted by Tier-1 ID, under NAT sectiondenoted by <nat-id>.
Under tier-1 there will be 3 different NATs(sections).
(INTERNAL, USER and DEFAULT)
For more details related to NAT section please refer to PolicyNAT schema.
Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/tier-1s/TLR1_Server/nat/USER/nat-rules/TEST-DNAT/statistics Successful Response:
Example Response: { "results": [ { "enforcement_point_path": "/infra/sites/default/enforcement-points/default", "rule_path": "/infra/tier-1s/TLR1_Server/nat/USER/nat-rules/TEST-DNAT", "rule_statistics": [ { "last_update_timestamp": 1725960690467, "total_bytes": 11424, "total_packets": 136, "active_sessions": 0 } ] } ] } Required Permissions: Feature: policy_nat_rules Additional Errors:
List NAT Rules Statistics
List NAT Rules Statistics from Tier-1 denoted by Tier-1 ID. Request:Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/tier-1s/TLR1_Server/nat/statistics Successful Response:
Example Response: { "results": [ { "enforcement_point_path": "/infra/sites/default/enforcement-points/default", "router_path": "/infra/tier-1s/TLR1_Server", "last_update_timestamp": 1726031919747, "statistics": { "total_bytes": 16380, "total_packets": 195, "active_sessions": 0 }, "per_node_statistics": [ { "transport_node_path": "1", "last_update_timestamp": 1726031919747, "total_bytes": 16380, "total_packets": 195, "active_sessions": 0 }, { "transport_node_path": "1", "last_update_timestamp": 1726031919527, "total_bytes": 0, "total_packets": 0, "active_sessions": 0 } ] } ] } Required Permissions: Feature: policy_nat_rules Additional Errors:
Networking (Network Services)
Networking (Network Services): Metadata Proxies
Get metadata proxy status
Request:Example Request: https://{{nsx-mgr}}/global-manager/api/v1/global-infra/metadata-proxies/p1/statistics?segment_path=/global-infra/segments/md-proxy-seg1&enforcement_point_path=/global-infra/sites/default/enforcement-points/default Successful Response:
Example Response: { "metadata_proxy_path": "/infra/metadata-proxies/p1", "timestamp": 1591854737938, "statistics": [ { "segment_path": "/infra/segments/md-proxy-seg1", "requests_from_clients": 0, "responses_to_clients": 0, "requests_to_nova_server": 0, "succeeded_responses_from_nova_server": 0, "error_responses_from_nova_server": 0 } ] } Required Permissions: Feature: policy_segment Additional Errors:
Get metadata proxy status
Request:Example Request: https://{{nsx-mgr}}/api/v1/md-proxies/8966db98-e2ca-4757-af3b-330755ca3e94/6b169af5-4579-481d-a886-9ef7846a7603/status Successful Response:
Example Response: { "transport_nodes": [ "12176406-a7c9-11ea-8166-020063c85974", "a831390e-a7c8-11ea-9102-020063e79023" ], "proxy_status": "DOWN", "error_message": "ErrorCode: INTERNAL_ERROR, Detail: backend nova server connection is broken with reason: UNKNOWN;; ErrorCode: INTERNAL_ERROR, Detail: backend nova server connection is broken with reason: UNKNOWN;" } Required Permissions: Feature: policy_segment Additional Errors:
Networking (Networking Profiles)
Networking (Networking Profiles): BFD Profiles
- GET /global-manager/api/v1/global-infra/bfd-profiles
- DELETE /global-manager/api/v1/global-infra/bfd-profiles/{bfd-profile-id}
- GET /global-manager/api/v1/global-infra/bfd-profiles/{bfd-profile-id}
- PATCH /global-manager/api/v1/global-infra/bfd-profiles/{bfd-profile-id}
- PUT /global-manager/api/v1/global-infra/bfd-profiles/{bfd-profile-id}
List BfdProfiles
Paginated list of all BfdProfiles.Request:
Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/bfd-profiles Successful Response:
Example Response: { "results": [ { "interval": 500, "multiple": 3, "resource_type": "BfdProfile", "id": "config1", "display_name": "config1", "path": "/infra/bfd-profiles/config1", "relative_path": "config1", "parent_path": "/infra", "unique_id": "09b937cf-81e8-4684-be01-a8b0a6b78400", "marked_for_delete": false, "overridden": false, "_create_user": "admin", "_create_time": 1579244895250, "_last_modified_user": "admin", "_last_modified_time": 1579244895250, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 } ] } Required Permissions: Feature: policy_profiles Additional Errors:
Create or update a BfdProfile
If a BfdProfile with the bfd-profile-id is not already present,create a new BfdProfile. If it already exists, update the
BfdProfile. This operation will fully replace the object.
Request:
Example Request: PUT https://<policy-mgr>/global-manager/api/v1/global-infra/bfd-profiles/config2 { "interval": 500, "multiple": 3 } Successful Response:
Example Response: { "interval": 500, "multiple": 3, "resource_type": "BfdProfile", "id": "config2", "display_name": "config2", "path": "/infra/bfd-profiles/config2", "relative_path": "config2", "parent_path": "/infra", "unique_id": "94e10261-d7e7-4655-b0a8-e0feb7afe13a", "marked_for_delete": false, "overridden": false, "_create_user": "admin", "_create_time": 1579245303690, "_last_modified_user": "admin", "_last_modified_time": 1579245303690, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 } Required Permissions: Feature: policy_profiles Additional Errors:
Create or update a BfdProfile
If a BfdProfile with the bfd-profile-id is not already present,create a new BfdProfile. If it already exists, update the
BfdProfile. This operation will fully replace the object.
Request:
Example Request: PATCH https://<policy-mgr>/global-manager/api/v1/global-infra/bfd-profiles/config1 { "interval": 500, "multiple": 3 } Successful Response:
Example Response: {} Required Permissions: Feature: policy_profiles Additional Errors:
Read a BfdProfile
Read a BfdProfile. Request:Example Request: GET https://<policy-mgr>/global-manager/api/v1/global-infra/bfd-profiles/config1 Successful Response:
Example Response: { "interval": 500, "multiple": 3, "resource_type": "BfdProfile", "id": "config1", "display_name": "config1", "path": "/infra/bfd-profiles/config1", "relative_path": "config1", "parent_path": "/infra", "unique_id": "09b937cf-81e8-4684-be01-a8b0a6b78400", "marked_for_delete": false, "overridden": false, "_create_user": "admin", "_create_time": 1579244895250, "_last_modified_user": "admin", "_last_modified_time": 1579244895250, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 } Required Permissions: Feature: policy_profiles Additional Errors:
Delete BFD Config and all the entities contained by this BfdProfile
Delete BFD Config and all the entities contained by this BfdProfile. Request:Example Request: DELETE https://<policy-mgr>/global-manager/api/v1/global-infra/bfd-profiles/config1 Successful Response:
Example Response: {} Required Permissions: Feature: policy_profiles Additional Errors:
Networking (Networking Profiles): EVPN Tenant Configuration
Create or Update Evpn Tenant Configuration
Create a global evpn tenant configuration if it is not already present,otherwise update the evpn tenant configuration.
Request:
Example Request: PATCH /global-infra/evpn-tenant-configs/config { "mappings": [{ "vlans": "13", "vnis": "86015" },{ "vlans": "40-50", "vnis": "86000-86010" },{ "vlans": "100-150", "vnis": "86050-86100" }], "transport_zone_path": "/global-infra/sites/default/enforcement-points/default/transport-zones/dab3561c-d1ee-41db-ad26-67c5bd0f2414", "vni_pool_path": "/global-infra/vni-pools/vnipool" } Successful Response:
Required Permissions: Feature: policy_profiles Additional Errors:
Create or Update Evpn Tenant Configuration
Create or update Evpn Tenant configuration.Request: