NSX-T Data Center REST API

Associated URIs:

API Description API Path

List RBAC features


List all the RBAC features and their properties.
GET /policy/api/v1/aaa/features-with-properties
GET /api/v1/aaa/features-with-properties

List LDAP identity sources


Return a list of all configured LDAP identity sources.
GET /policy/api/v1/aaa/ldap-identity-sources

Test an LDAP server


Attempt to connect to an LDAP server and ensure that the server can be contacted using the given URL and authentication credentials.
POST /policy/api/v1/aaa/ldap-identity-sources?action=probe_ldap_server

Probe an LDAP identity source


Verify that the configuration of an LDAP identity source is correct before actually creating the source.
POST /policy/api/v1/aaa/ldap-identity-sources?action=probe_identity_source

Fetch the server certificate of an LDAP server


Attempt to connect to an LDAP server and retrieve the server certificate it presents.
POST /policy/api/v1/aaa/ldap-identity-sources?action=fetch_certificate

Delete an LDAP identity source


Delete an LDAP identity source. Users defined in that source will no longer be able to access NSX.
DELETE /policy/api/v1/aaa/ldap-identity-sources/{ldap-identity-source-id}

Read a single LDAP identity source


Return details about one LDAP identity source
GET /policy/api/v1/aaa/ldap-identity-sources/{ldap-identity-source-id}

Test the configuration of an existing LDAP identity source


Attempt to connect to an existing LDAP identity source and report any errors encountered.
POST /policy/api/v1/aaa/ldap-identity-sources/{ldap-identity-source-id}?action=probe

Create or update an LDAP identity source


Create a new LDAP identity source or update the configuration of an existing LDAP identity source. You may wish to verify the new configuration using the POST /aaa/ldap-identity-sources?action=probe API before creating or changing the configuration. Note that if you are using LDAP on an active and standby NSX-T Global Manager in a federated environment, you must use the same name for your LDAP identity sources on the active and standby Global Managers.
PUT /policy/api/v1/aaa/ldap-identity-sources/{ldap-identity-source-id}

Search the LDAP identity source


Search the LDAP identity source for users and groups that match the given filter_value. In most cases, the LDAP source performs a case-insensitive search.
POST /policy/api/v1/aaa/ldap-identity-sources/{ldap-identity-source-id}/search

Create registration access token


The privileges of the registration token will be the same as the caller.
POST /api/v1/aaa/registration-token

Delete registration access token


DELETE /api/v1/aaa/registration-token/{token} (Deprecated)

Get registration access token


GET /api/v1/aaa/registration-token/{token} (Deprecated)

Delete registration access token


POST /api/v1/aaa/registration-token/delete

Get registration access token


Get the roles associated with the given registration token
POST /api/v1/aaa/registration-token/retrieve

Get all users and groups with their roles


Get all users and groups with their roles. If the root_path is
provided then only return role bindings that start-with or are
sub-trees of the provided root path. Also filter the roles_for_paths
such that only those roles_for_paths appear that start-with or are
sub-tree of the provided root path.
GET /policy/api/v1/aaa/role-bindings
GET /api/v1/aaa/role-bindings

Delete all stale role assignments


POST /policy/api/v1/aaa/role-bindings?action=delete_stale_bindings
POST /api/v1/aaa/role-bindings?action=delete_stale_bindings

Assign roles to User or Group


This API is used to assign a user/group any role(s) of choice. It is
recommended to use the new property roles_for_paths instead of
roles. When using the roles_for_paths, set the read_roles_for_paths
as true. User has union of all the roles assigned to it on a particular
path and its sub-tree. User name is dealt case-insensitively.
POST /policy/api/v1/aaa/role-bindings
POST /api/v1/aaa/role-bindings

Delete user/group's roles assignment


Delete the user/group's role assignment. If the path is provided
then deletes only the roles_for_paths that matches the path. If
path is provided for the last roles_for_paths then the whole role
binding is deleted provided it is not that of a local user.
For deleting multiple paths, please provide semi-colon ';' separated
paths in the request parameter.
DELETE /policy/api/v1/aaa/role-bindings/{binding-id}
DELETE /api/v1/aaa/role-bindings/{binding-id}

Get user/group's role information


GET /policy/api/v1/aaa/role-bindings/{binding-id}
GET /api/v1/aaa/role-bindings/{binding-id}

Update User or Group's roles


This API is used to update a user/group any role(s) of choice. It is
recommended to use the new property roles_for_paths instead of
roles. When using the roles_for_paths, set the read_roles_for_paths
as true. User has union of all the roles assigned to it on a particular
path and its sub-tree. User name is dealt case-insensitively.
This API will merge the existing roles_for_paths with the newly provided
roles_for_paths excluding roles_for_paths those are marked for deletion.
PUT /policy/api/v1/aaa/role-bindings/{binding-id}
PUT /api/v1/aaa/role-bindings/{binding-id}

Get information about all roles


GET /policy/api/v1/aaa/roles
GET /api/v1/aaa/roles

Validate a new feature permission set


Validate the permissions of an incoming role. Also, recommend the
permissions which need to be corrected.
POST /policy/api/v1/aaa/roles?action=validate
POST /api/v1/aaa/roles?action=validate

Get information about all roles with features and their permissions


GET /policy/api/v1/aaa/roles-with-feature-permissions
GET /api/v1/aaa/roles-with-feature-permissions

Delete custom role


If a role is assigned to a role binding then the deletion of
the role is not allowed. Precanned roles cannot be deleted.
DELETE /policy/api/v1/aaa/roles/{role}
DELETE /api/v1/aaa/roles/{role}

Get role information


GET /policy/api/v1/aaa/roles/{role}
GET /api/v1/aaa/roles/{role}

Clone an already present role


The role with id <role> is cloned and the new id, name and description are
the ones provided in the request body.
POST /policy/api/v1/aaa/roles/{role}?action=clone
POST /api/v1/aaa/roles/{role}?action=clone

Update custom role


Creates a new role with id as <role> if there does not exist any
role with id <role>, else updates the existing role. Permissions
for features marked is_internal as true will be ignored if provided in
request payload. These features' permission are set internally.
PUT /policy/api/v1/aaa/roles/{role}
PUT /api/v1/aaa/roles/{role}

Set role assignment permission configuration


Provides a means to allow or disallow project administrators and VPC administrators
to assign roles to other users on projects and VPCs.
PUT /policy/api/v1/aaa/roles/{role}/role-assignment-permission-config
PUT /api/v1/aaa/roles/{role}/role-assignment-permission-config

Get the name and role information of the user.


This API will return the name and role information of the user
invoking this API request. This API is available for all NSX users
no matter their authentication method (Local account, VIDM, LDAP etc).
The permissions parameter of the NsxRole has been deprecated.
The request parameter root_path has been introduced for multi-tenancy
to get user's role at any path that the user desires. The response will
contain the roles_for_paths to indicate roles at various paths.
GET /policy/api/v1/aaa/user-info
GET /api/v1/aaa/user-info

Get all the User Groups where vIDM display name matches the search key case insensitively. The search key is checked to be a substring of display name. This is a non paginated API. This API will return as many results that vIDM returns to NSX during the search query. vIDM may not send all results at once so to zero in on the group of interest more characters need to be entered.


GET /policy/api/v1/aaa/vidm/groups
GET /api/v1/aaa/vidm/groups

Get all the users and groups from vIDM matching the search key case insensitively. The search key is checked to be a substring of name or given name or family name of user and display name of group. This is a non paginated API. This API will return as many results that vIDM returns to NSX during the search query. vIDM may not send all results at once so to zero in on the user/group of interest more characters need to be entered.


POST /policy/api/v1/aaa/vidm/search
POST /api/v1/aaa/vidm/search

Get all the users from vIDM whose userName, givenName or familyName matches the search key case insensitively. The search key is checked to be a substring of name or given name or family name. This is a non paginated API. This API will return as many results that vIDM returns to NSX during the search query. vIDM may not send all results at once so to zero in on the user of interest more characters need to be entered.


GET /policy/api/v1/aaa/vidm/users
GET /api/v1/aaa/vidm/users

Read AAA provider vIDM properties


GET /api/v1/cluster/{cluster-node-id}/node/aaa/providers/vidm
GET /api/v1/node/aaa/providers/vidm

Update AAA provider vIDM properties


PUT /api/v1/cluster/{cluster-node-id}/node/aaa/providers/vidm
PUT /api/v1/node/aaa/providers/vidm

Read AAA provider vIDM status


GET /api/v1/cluster/{cluster-node-id}/node/aaa/providers/vidm/status
GET /api/v1/node/aaa/providers/vidm/status

Get all users and groups with their roles


Get all users and groups with their roles from CSP. If the root_path is
provided then only return role bindings that start-with or are
sub-trees of the provided root path. Also filter the roles_for_paths
such that only those roles_for_paths appear that start-with or are
sub-tree of the provided root path.
GET /policy/api/v1/orgs/{org-id}/projects/{project-id}/aaa/role-bindings

Assign roles to User or Group


This API is used to assign a user/group any role(s) of choice on CSP.
It is recommended to use the new property roles_for_paths instead of
roles. When using the roles_for_paths, set the read_roles_for_paths
as true. User has union of all the roles assigned to it on a particular
path and its sub-tree. User name is dealt case-insensitively.
PATCH /policy/api/v1/orgs/{org-id}/projects/{project-id}/aaa/role-bindings

Delete user/group's roles assignment


Delete the user/group's role assignment on CSP. If the path is provided
then deletes only the roles_for_paths that matches the path. If
path is provided for the last roles_for_paths then the whole role
binding is deleted provided it is not that of a local user.
DELETE /policy/api/v1/orgs/{org-id}/projects/{project-id}/aaa/role-bindings/{binding-id}

Get user/group's role information from CSP


GET /policy/api/v1/orgs/{org-id}/projects/{project-id}/aaa/role-bindings/{binding-id}

Get information about all roles


GET /policy/api/v1/orgs/{org-id}/projects/{project-id}/aaa/roles

Get the name and role information of the user.


This API will return the name and role information of the user
invoking this API request on the particular project.
The permissions parameter of the NsxRole has been deprecated.
The response will contain the roles_for_paths to indicate roles
of the user at various paths .
GET /policy/api/v1/orgs/{org-id}/projects/{project-id}/aaa/user-info

Get all users and groups with their roles


Get all users and groups with their roles from CSP. If the root_path is
provided then only return role bindings that start-with or are
sub-trees of the provided root path. Also filter the roles_for_paths
such that only those roles_for_paths appear that start-with or are
sub-tree of the provided root path.
GET /policy/api/v1/orgs/{org-id}/projects/{project-id}/vpcs/{vpc-id}/aaa/role-bindings

Assign roles to User or Group


This API is used to assign a user/group any role(s) of choice on CSP.
It is recommended to use the new property roles_for_paths instead of
roles. When using the roles_for_paths, set the read_roles_for_paths
as true. User has union of all the roles assigned to it on a particular
path and its sub-tree. User name is dealt case-insensitively.
PATCH /policy/api/v1/orgs/{org-id}/projects/{project-id}/vpcs/{vpc-id}/aaa/role-bindings

Delete user/group's roles assignment


Delete the user/group's role assignment on CSP. If the path is provided
then deletes only the roles_for_paths that matches the path. If
path is provided for the last roles_for_paths then the whole role
binding is deleted provided it is not that of a local user.
DELETE /policy/api/v1/orgs/{org-id}/projects/{project-id}/vpcs/{vpc-id}/aaa/role-bindings/{binding-id}

Get user/group's role information from CSP


GET /policy/api/v1/orgs/{org-id}/projects/{project-id}/vpcs/{vpc-id}/aaa/role-bindings/{binding-id}

Get information about all roles


GET /policy/api/v1/orgs/{org-id}/projects/{project-id}/vpcs/{vpc-id}/aaa/roles

Get the name and role information of the user.


This API will return the name and role information of the user
invoking this API request on the particular project.
The permissions parameter of the NsxRole has been deprecated.
The response will contain the roles_for_paths to indicate roles
of the user at various paths .
GET /policy/api/v1/orgs/{org-id}/projects/{project-id}/vpcs/{vpc-id}/aaa/user-info

Create sensor registration access token


The privileges of the registration token will be user with sensor role.
POST /api/v1/security/sensor-registration-token

Return the list of OpenID Connect end-points.


GET /api/v1/trust-management/oidc-uris

Update a OpenID Connect end-point's thumbprint


Update a OpenID Connect end-point's thumbprint used to connect to the
oidc_uri through SSL
POST /api/v1/trust-management/oidc-uris?action=update_thumbprint

Add an OpenID Connect end-point.


This request also fetches the issuer and jwks_uri meta-data from the OIDC
end-point and stores it.
POST /api/v1/trust-management/oidc-uris

Get an OpenID Connect end-point.


When ?refresh=true is added to the request, the meta-data is newly fetched
from the OIDC end-point.
GET /api/v1/trust-management/oidc-uris/{id}

Refresh an OpenID Connect end-point


Refresh an OpenID Connect end-point by re-reading data from the OIDC URI.
POST /api/v1/trust-management/oidc-uris/{id}?action=refresh

Update an OpenID Connect end-point.


Update the properties of an OpenID Connect end-point. The oidc_uri property
may not be changed. If you need to update the oidc_uri, you should delete
the OIDC end-point and create a new one with the correct oidc_uri.

This request also re-fetches the issuer, jwks_uri, and other meta-data
from the OIDC end-point and stores it.
PUT /api/v1/trust-management/oidc-uris/{id}

Check the health of an OpenID Connect end-point


Connect to the OpenID Connect end-point and verify that it
appears to be functioning properly.
GET /api/v1/trust-management/oidc-uris/{id}/health

Search a SCIM endpoint


Search the System for Cross-domain Identity Management (SCIM) source for users and groups whose names match the search string.
POST /api/v1/trust-management/oidc-uris/{id}/search

Verify that a given user or group exists on the SCIM endpoint


Search the System for Cross-domain Identity Management (SCIM) source to find a user or group whose name exactly matches the given name.
GET /api/v1/trust-management/oidc-uris/{id}/user-or-group-exists

Configure NSX for OIDC authentication with VC/WS1B


Configures NSX to use VC/WS1B for OIDC authentication. Using the provided JWT token, NSX will create an OAuth app on VC/WS1B, creating a client ID and client secret. NSX will subsequently use that client ID/secret to authenticate user, and will support single sign-on across VMware products.
POST /api/v1/trust-management/oidc-uris/action/configure-ws1b-oidc-endpoint

Unconfigure NSX for OIDC authentication with VC/WS1B


Removes the OAuth app on VC/W1B and deletes the associated OIDC endpoint from NSX.
POST /api/v1/trust-management/oidc-uris/action/remove-ws1b-oidc-endpoint

Return the list of principal identities


Returns the list of principals registered with a certificate.
GET /api/v1/trust-management/principal-identities

Register a name-certificate combination.


Associates a principal's name with a certificate that is used to authenticate.
The combination name and node_id needs to be unique across token-based and
certificate-based principal identities.
POST /api/v1/trust-management/principal-identities (Deprecated)

Update a principal identity's certificate


Update a principal identity's certificate
POST /api/v1/trust-management/principal-identities?action=update_certificate

Delete a principal identity


Delete a principal identity. It does not delete the certificate.
DELETE /api/v1/trust-management/principal-identities/{principal-identity-id}

Get a principal identity


Get a stored principal identity
GET /api/v1/trust-management/principal-identities/{principal-identity-id}

Register a name-certificate combination.


Create a principal identity with a new, unused, certificate.
The combination name and node_id needs to be unique across token-based and
certificate-based principal identities.
POST /api/v1/trust-management/principal-identities/with-certificate

Return the list of token-based principal identities. | These don't have certificate or role information.


GET /api/v1/trust-management/token-principal-identities

Register a token-based principal identity.


Register a principal identity that is going to be authenticated through a token.
The combination name and node_id needs to be unique across token-based and
certificate-based principal identities.
POST /api/v1/trust-management/token-principal-identities

Delete a token-based principal identity


Delete a token-based principal identity.
DELETE /api/v1/trust-management/token-principal-identities/{principal-identity-id}

Get a token-based principal identity


Get a stored token-based principal identity
GET /api/v1/trust-management/token-principal-identities/{principal-identity-id}