Authentication

Nexus Dashboard APIs and services require access through an authenticated and authorized account. Only authorized accounts can submit requests to API operations. All operations must use a secure HTTPS connection.

You can authenticate using one of the following two methods:

  • When you authenticate using the login API, you receive an authorization token. You must then include this token in each subsequent API request.

  • Alternatively, you can obtain an API key and use it instead of the username and password. An API key may be a more suitable approach for automation scripts.

The Nexus Dashboard platform provides individual user management. A single API gateway handles all service APIs. Therefore, authenticating using the Nexus Dashboard authentication API (described in Getting Started) is sufficient to use all available service APIs.

The Nexus Dashboard API supports multiple users, each assigned user-specific authorization and privileges based on their role. You can associate users with specific roles to control access and to restrict REST endpoints according to their role. The admin user has unrestricted access. For more information on creating and managing users and their roles, see the Nexus Dashboard documentation for your release.

Authorization Using User Credentials and API Token

To perform operations on the Nexus Dashboard cluster or services, first log in by POSTing a JSON payload with your username, password, and log in domain. This returns an authorization token for subsequent API calls.

Alternatively, obtain an API key and use it instead of the username and password, as described in Authorization Using API Key. An API key may be a more suitable approach for automation scripts.

The following examples use the admin user account.

Request

POST https://<nd-node-ip>/login

Body

{
  "userName": "admin",
  "userPasswd": "cisco.123",
  "domain": "DefaultAuth"
}

Response

The response to the POST operation contains an authentication token and the information about the user’s privileges as configured in the Nexus Dashboard.

{
    "jwttoken": "eyJhbGciOiJSUzI1NiIsImtpZCI6InFieXViN2hldndqM2o0YnZrdGp5NDY1c2NkcGRicmRzIiwidHlwIjoiSldUIn0.eyJhdnBhaXIiOiJzaGVsbDpkb21haW5zPWFsbC9zdXBlci1hZG1pbiIsImNsdXN0ZXIiOiI1NDRkNDUyZC00ZTQ0LTJkMzAtMzEwMC0wMDAwMDAwMDAwMDAiLCJleHAiOjE3NjA3MDI1MDgsImlhdCI6MTc2MDcwMTMwOCwiaWQiOiI0OGQxMDViZGZiYzQ5YTVmY2YzOWExMGI5NjEzODZlNjFkZmU0MDA4NWNiMDMxNWQ4MThiNzYxYzU3MzVkYWZhIiwiaXNzIjoibmQiLCJpc3MtaG9zdCI6IjEwLjE1LjAuMTQzIiwicmJhYyI6W3siZG9tYWluIjoiYWxsIiwicm9sZXNNYXAiOnsic3VwZXItYWRtaW4iOnt9fX1dLCJzZXNzaW9uaWQiOiJGOUd4SWJ3NEt0djlnbU00TWN2RmJudVQiLCJ1c2VyZmxhZ3MiOjAsInVzZXJpZCI6MjUwMDIsInVzZXJuYW1lIjoiYWRtaW4iLCJ1c2VydHlwZSI6ImxvY2FsIn0.EJLL0rh1ohNmt602t1Jrdt_t_OLHgy0knIXu_530sRWLwfuyyA80Wl8vWBdXgUqipyA5mvGjRfmtlmenrdOeZ4AeUgJYILUiLZmoGOTm5sGtJv7khWZwPtgkkJC2hz476d5TZzQsca7mVatCp4aVppnG66OFGcvQBfM6EitAgB-50CusOOXArwMKAlSYvnuUC6lHQG1QyQhjMmLNfovzA-9hOsc_Gnk-65IKllv-tSnoED_T20eYJzSTak5Moa_k59nDtS9r_bO_qJZMk7oMmjb-p__KwzdJnjUHkyxOMOFtLhwNWKZxHGqkTVGOTyLOTmfnpv6P9xEpmjO0GZ0QyQ",
    "username": "admin",
    "usertype": "local",
    "rbac": "[{\"domain\":\"all\",\"rolesMap\":{\"super-admin\":{}}}]",
    "statusCode": 200,
    "token": "eyJhbGciOiJSUzI1NiIsImtpZCI6InFieXViN2hldndqM2o0YnZrdGp5NDY1c2NkcGRicmRzIiwidHlwIjoiSldUIn0.eyJhdnBhaXIiOiJzaGVsbDpkb21haW5zPWFsbC9zdXBlci1hZG1pbiIsImNsdXN0ZXIiOiI1NDRkNDUyZC00ZTQ0LTJkMzAtMzEwMC0wMDAwMDAwMDAwMDAiLCJleHAiOjE3NjA3MDI1MDgsImlhdCI6MTc2MDcwMTMwOCwiaWQiOiI0OGQxMDViZGZiYzQ5YTVmY2YzOWExMGI5NjEzODZlNjFkZmU0MDA4NWNiMDMxNWQ4MThiNzYxYzU3MzVkYWZhIiwiaXNzIjoibmQiLCJpc3MtaG9zdCI6IjEwLjE1LjAuMTQzIiwicmJhYyI6W3siZG9tYWluIjoiYWxsIiwicm9sZXNNYXAiOnsic3VwZXItYWRtaW4iOnt9fX1dLCJzZXNzaW9uaWQiOiJGOUd4SWJ3NEt0djlnbU00TWN2RmJudVQiLCJ1c2VyZmxhZ3MiOjAsInVzZXJpZCI6MjUwMDIsInVzZXJuYW1lIjoiYWRtaW4iLCJ1c2VydHlwZSI6ImxvY2FsIn0.EJLL0rh1ohNmt602t1Jrdt_t_OLHgy0knIXu_530sRWLwfuyyA80Wl8vWBdXgUqipyA5mvGjRfmtlmenrdOeZ4AeUgJYILUiLZmoGOTm5sGtJv7khWZwPtgkkJC2hz476d5TZzQsca7mVatCp4aVppnG66OFGcvQBfM6EitAgB-50CusOOXArwMKAlSYvnuUC6lHQG1QyQhjMmLNfovzA-9hOsc_Gnk-65IKllv-tSnoED_T20eYJzSTak5Moa_k59nDtS9r_bO_qJZMk7oMmjb-p__KwzdJnjUHkyxOMOFtLhwNWKZxHGqkTVGOTyLOTmfnpv6P9xEpmjO0GZ0QyQ"
}

Example API Token Usage

Get the user authentication token for requests.

Authenticate

Request

curl --insecure --request POST 'https://<nd-node-ip>/login' \
  --data '{"domain": "local", "userName": "admin", "userPasswd": "cisco.123"}'
import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

base_url = 'https://<nd-node-ip>'
payload = {
  "userName": "admin",
  "userPasswd": "cisco.123",
  "domain": "local"
}

# Using a session to persist cookies across requests
with requests.Session() as session:

    # Use verify=False if you are sure the target system is the system you expect and it has a self-signed certificate.
    login_response = session.post(url=f"{base_url}/login", json=payload, verify=False)

    print('Login Response:')
    print(login_response.json())
    print('\n-----------------------------------\n')

    print('Session cookies after login:')
    print(session.cookies.get_dict())

Response

{"jwttoken":"eyJhbGciOiJSUzI1NiIsImtpZCI6InFieXViN2hldndqM2o0YnZrdGp5NDY1c2NkcGRicmRzIiwidHlwIjoiSldUIn0.eyJhdnBhaXIiOiJzaGVsbDpkb21haW5zPWFsbC9zdXBlci1hZG1pbiIsImNsdXN0ZXIiOiI1NDRkNDUyZC00ZTQ0LTJkMzAtMzEwMC0wMDAwMDAwMDAwMDAiLCJleHAiOjE3NjE2MTQzMjEsImlhdCI6MTc2MTYxMzEyMSwiaWQiOiI0OGQxMDViZGZiYzQ5YTVmY2YzOWExMGI5NjEzODZlNjFkZmU0MDA4NWNiMDMxNWQ4MThiNzYxYzU3MzVkYWZhIiwiaXNzIjoibmQiLCJpc3MtaG9zdCI6IjEwLjE1LjAuMTQzIiwicmJhYyI6W3siZG9tYWluIjoiYWxsIiwicm9sZXNNYXAiOnsic3VwZXItYWRtaW4iOnt9fX1dLCJzZXNzaW9uaWQiOiIzb3h0OW5JcmJRcURmeVJOPWZVbENmYlAiLCJ1c2VyZmxhZ3MiOjAsInVzZXJpZCI6MjUwMDIsInVzZXJuYW1lIjoiYWRtaW4iLCJ1c2VydHlwZSI6ImxvY2FsIn0.P9C0fXsGsQjMDCdx4J_UdJAqAzSkSP7cTW4u-vDF-n0f8KgBDET_KUSC0HcBvx9ZRiKHlUoKpMG5n61sBYUB2moCLfPLXW14a0ThIGSJXYgtT5hoRDacLhFoMEya5L2gqG-q0sNf-5DUtsb7kHt1KwHzz8WYLpxrTD0-nyJlIOLROUYAm-HaT14Bn1hUDW-Eq7wUqVvghEwDffJKrj4OlkNztgYTR7Yi74WucydIdjjzqatW7u-CzAF3YHHMXNU3WpGzkEG_izuk5i-SfwzoDGKUsQMRNNe8t6MNiKzehW564b33AgWR8J3-RqR-bRuBth-tHRCdDcoaCsr8chh50g","username":"admin","usertype":"local","rbac":"[{\"domain\":\"all\",\"rolesMap\":{\"super-admin\":{}}}]","statusCode":200,"token":"eyJhbGciOiJSUzI1NiIsImtpZCI6InFieXViN2hldndqM2o0YnZrdGp5NDY1c2NkcGRicmRzIiwidHlwIjoiSldUIn0.eyJhdnBhaXIiOiJzaGVsbDpkb21haW5zPWFsbC9zdXBlci1hZG1pbiIsImNsdXN0ZXIiOiI1NDRkNDUyZC00ZTQ0LTJkMzAtMzEwMC0wMDAwMDAwMDAwMDAiLCJleHAiOjE3NjE2MTQzMjEsImlhdCI6MTc2MTYxMzEyMSwiaWQiOiI0OGQxMDViZGZiYzQ5YTVmY2YzOWExMGI5NjEzODZlNjFkZmU0MDA4NWNiMDMxNWQ4MThiNzYxYzU3MzVkYWZhIiwiaXNzIjoibmQiLCJpc3MtaG9zdCI6IjEwLjE1LjAuMTQzIiwicmJhYyI6W3siZG9tYWluIjoiYWxsIiwicm9sZXNNYXAiOnsic3VwZXItYWRtaW4iOnt9fX1dLCJzZXNzaW9uaWQiOiIzb3h0OW5JcmJRcURmeVJOPWZVbENmYlAiLCJ1c2VyZmxhZ3MiOjAsInVzZXJpZCI6MjUwMDIsInVzZXJuYW1lIjoiYWRtaW4iLCJ1c2VydHlwZSI6ImxvY2FsIn0.P9C0fXsGsQjMDCdx4J_UdJAqAzSkSP7cTW4u-vDF-n0f8KgBDET_KUSC0HcBvx9ZRiKHlUoKpMG5n61sBYUB2moCLfPLXW14a0ThIGSJXYgtT5hoRDacLhFoMEya5L2gqG-q0sNf-5DUtsb7kHt1KwHzz8WYLpxrTD0-nyJlIOLROUYAm-HaT14Bn1hUDW-Eq7wUqVvghEwDffJKrj4OlkNztgYTR7Yi74WucydIdjjzqatW7u-CzAF3YHHMXNU3WpGzkEG_izuk5i-SfwzoDGKUsQMRNNe8t6MNiKzehW564b33AgWR8J3-RqR-bRuBth-tHRCdDcoaCsr8chh50g"}
Login Response:
{'jwttoken': 'eyJhbGciOiJSUzI1NiIsImtpZCI6InFieXViN2hldndqM2o0YnZrdGp5NDY1c2NkcGRicmRzIiwidHlwIjoiSldUIn0.eyJhdnBhaXIiOiJzaGVsbDpkb21haW5zPWFsbC9zdXBlci1hZG1pbiIsImNsdXN0ZXIiOiI1NDRkNDUyZC00ZTQ0LTJkMzAtMzEwMC0wMDAwMDAwMDAwMDAiLCJleHAiOjE3NjE2MTY1NzUsImlhdCI6MTc2MTYxNTM3NSwiaWQiOiI0OGQxMDViZGZiYzQ5YTVmY2YzOWExMGI5NjEzODZlNjFkZmU0MDA4NWNiMDMxNWQ4MThiNzYxYzU3MzVkYWZhIiwiaXNzIjoibmQiLCJpc3MtaG9zdCI6IjEwLjE1LjAuMTQzIiwicmJhYyI6W3siZG9tYWluIjoiYWxsIiwicm9sZXNNYXAiOnsic3VwZXItYWRtaW4iOnt9fX1dLCJzZXNzaW9uaWQiOiJnMFd6a1hZWnk0dHZ0TVlBNDdTY3FrU3UiLCJ1c2VyZmxhZ3MiOjAsInVzZXJpZCI6MjUwMDIsInVzZXJuYW1lIjoiYWRtaW4iLCJ1c2VydHlwZSI6ImxvY2FsIn0.iyZZwjD_cxHdDDohCVpZepGN3fcDKLXq93SyJOG4atBWoUnf3i8WErND6qK83X4f1kd_4_WoIIyWQUQHrb2Bqax11mFYab6_tfTB0dBzBFEj4TVQrchYpdrdqiROVWB5wA8z3NzSC0TLuIgkB4ki2l11Vu5Dylo9nNzxqbULRCIfjDdOY21E_cK4lNlFzGo4YwJInlzOijvYIpnJYFIVQrKxn8VA7e-0NEkZocZmbIBzvrSkSSRPdjEkgdMrgc68cowzf2e_zqYDk6sad-W98ZnrZPC_7v5jfi_FVAyeR55FtFiyBD-PKBkGGKwrsmvjaK2O4w30_jW_MxImHtibQQ', 'username': 'admin', 'usertype': 'local', 'rbac': '[{"domain":"all","rolesMap":{"super-admin":{}}}]', 'statusCode': 200, 'token': 'eyJhbGciOiJSUzI1NiIsImtpZCI6InFieXViN2hldndqM2o0YnZrdGp5NDY1c2NkcGRicmRzIiwidHlwIjoiSldUIn0.eyJhdnBhaXIiOiJzaGVsbDpkb21haW5zPWFsbC9zdXBlci1hZG1pbiIsImNsdXN0ZXIiOiI1NDRkNDUyZC00ZTQ0LTJkMzAtMzEwMC0wMDAwMDAwMDAwMDAiLCJleHAiOjE3NjE2MTY1NzUsImlhdCI6MTc2MTYxNTM3NSwiaWQiOiI0OGQxMDViZGZiYzQ5YTVmY2YzOWExMGI5NjEzODZlNjFkZmU0MDA4NWNiMDMxNWQ4MThiNzYxYzU3MzVkYWZhIiwiaXNzIjoibmQiLCJpc3MtaG9zdCI6IjEwLjE1LjAuMTQzIiwicmJhYyI6W3siZG9tYWluIjoiYWxsIiwicm9sZXNNYXAiOnsic3VwZXItYWRtaW4iOnt9fX1dLCJzZXNzaW9uaWQiOiJnMFd6a1hZWnk0dHZ0TVlBNDdTY3FrU3UiLCJ1c2VyZmxhZ3MiOjAsInVzZXJpZCI6MjUwMDIsInVzZXJuYW1lIjoiYWRtaW4iLCJ1c2VydHlwZSI6ImxvY2FsIn0.iyZZwjD_cxHdDDohCVpZepGN3fcDKLXq93SyJOG4atBWoUnf3i8WErND6qK83X4f1kd_4_WoIIyWQUQHrb2Bqax11mFYab6_tfTB0dBzBFEj4TVQrchYpdrdqiROVWB5wA8z3NzSC0TLuIgkB4ki2l11Vu5Dylo9nNzxqbULRCIfjDdOY21E_cK4lNlFzGo4YwJInlzOijvYIpnJYFIVQrKxn8VA7e-0NEkZocZmbIBzvrSkSSRPdjEkgdMrgc68cowzf2e_zqYDk6sad-W98ZnrZPC_7v5jfi_FVAyeR55FtFiyBD-PKBkGGKwrsmvjaK2O4w30_jW_MxImHtibQQ'}

-----------------------------------

Session cookies after login:
{'AuthCookie': 'eyJhbGciOiJSUzI1NiIsImtpZCI6InFieXViN2hldndqM2o0YnZrdGp5NDY1c2NkcGRicmRzIiwidHlwIjoiSldUIn0.eyJhdnBhaXIiOiJzaGVsbDpkb21haW5zPWFsbC9zdXBlci1hZG1pbiIsImNsdXN0ZXIiOiI1NDRkNDUyZC00ZTQ0LTJkMzAtMzEwMC0wMDAwMDAwMDAwMDAiLCJleHAiOjE3NjE2MTY1NzUsImlhdCI6MTc2MTYxNTM3NSwiaWQiOiI0OGQxMDViZGZiYzQ5YTVmY2YzOWExMGI5NjEzODZlNjFkZmU0MDA4NWNiMDMxNWQ4MThiNzYxYzU3MzVkYWZhIiwiaXNzIjoibmQiLCJpc3MtaG9zdCI6IjEwLjE1LjAuMTQzIiwicmJhYyI6W3siZG9tYWluIjoiYWxsIiwicm9sZXNNYXAiOnsic3VwZXItYWRtaW4iOnt9fX1dLCJzZXNzaW9uaWQiOiJnMFd6a1hZWnk0dHZ0TVlBNDdTY3FrU3UiLCJ1c2VyZmxhZ3MiOjAsInVzZXJpZCI6MjUwMDIsInVzZXJuYW1lIjoiYWRtaW4iLCJ1c2VydHlwZSI6ImxvY2FsIn0.iyZZwjD_cxHdDDohCVpZepGN3fcDKLXq93SyJOG4atBWoUnf3i8WErND6qK83X4f1kd_4_WoIIyWQUQHrb2Bqax11mFYab6_tfTB0dBzBFEj4TVQrchYpdrdqiROVWB5wA8z3NzSC0TLuIgkB4ki2l11Vu5Dylo9nNzxqbULRCIfjDdOY21E_cK4lNlFzGo4YwJInlzOijvYIpnJYFIVQrKxn8VA7e-0NEkZocZmbIBzvrSkSSRPdjEkgdMrgc68cowzf2e_zqYDk6sad-W98ZnrZPC_7v5jfi_FVAyeR55FtFiyBD-PKBkGGKwrsmvjaK2O4w30_jW_MxImHtibQQ'}

Get Managed Fabrics

Use the user authentication token to get managed fabrics.

Request

curl --insecure --request GET 'https://<nd-node-ip>/api/v1/manage/fabrics' \
  --header 'Cookie: AuthCookie=eyJhbGciOiJSUzI1NiIsImtpZCI6InFieXViN2hldndqM2o0YnZrdGp5NDY1c2NkcGRicmRzIiwidHlwIjoiSldUIn0.eyJhdnBhaXIiOiJzaGVsbDpkb21haW5zPWFsbC9zdXBlci1hZG1pbiIsImNsdXN0ZXIiOiI1NDRkNDUyZC00ZTQ0LTJkMzAtMzEwMC0wMDAwMDAwMDAwMDAiLCJleHAiOjE3NjE2MTQzMjEsImlhdCI6MTc2MTYxMzEyMSwiaWQiOiI0OGQxMDViZGZiYzQ5YTVmY2YzOWExMGI5NjEzODZlNjFkZmU0MDA4NWNiMDMxNWQ4MThiNzYxYzU3MzVkYWZhIiwiaXNzIjoibmQiLCJpc3MtaG9zdCI6IjEwLjE1LjAuMTQzIiwicmJhYyI6W3siZG9tYWluIjoiYWxsIiwicm9sZXNNYXAiOnsic3VwZXItYWRtaW4iOnt9fX1dLCJzZXNzaW9uaWQiOiIzb3h0OW5JcmJRcURmeVJOPWZVbENmYlAiLCJ1c2VyZmxhZ3MiOjAsInVzZXJpZCI6MjUwMDIsInVzZXJuYW1lIjoiYWRtaW4iLCJ1c2VydHlwZSI6ImxvY2FsIn0.P9C0fXsGsQjMDCdx4J_UdJAqAzSkSP7cTW4u-vDF-n0f8KgBDET_KUSC0HcBvx9ZRiKHlUoKpMG5n61sBYUB2moCLfPLXW14a0ThIGSJXYgtT5hoRDacLhFoMEya5L2gqG-q0sNf-5DUtsb7kHt1KwHzz8WYLpxrTD0-nyJlIOLROUYAm-HaT14Bn1hUDW-Eq7wUqVvghEwDffJKrj4OlkNztgYTR7Yi74WucydIdjjzqatW7u-CzAF3YHHMXNU3WpGzkEG_izuk5i-SfwzoDGKUsQMRNNe8t6MNiKzehW564b33AgWR8J3-RqR-bRuBth-tHRCdDcoaCsr8chh50g'
import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

base_url = 'https://<nd-node-ip>'
payload = {
  "userName": "admin",
  "userPasswd": "cisco.123",
  "domain": "local"
}

# Using a session to persist cookies across requests
with requests.Session() as session:

    # Use verify=False if you are sure the target system is the system you expect and it has a self-signed certificate.
    login_response = session.post(url=f"{base_url}/login", json=payload, verify=False)

    print('Login Response:')
    print(login_response.json())
    print('\n-----------------------------------\n')

    print('Session cookies after login:')
    print(session.cookies.get_dict())

    print('\n-----------------------------------\n')

    get_response = session.get(url=f"{base_url}/api/v1/manage/fabrics", verify=False)

    print('Get Response:')
    print(get_response.json())

Response

{"fabrics":[{"alertSuspend":"disabled","category":"fabric","externalStreamingSettings":{"email":[],"messageBus":[],"syslog":{"collectionSettings":{"anomalies":[]},"facility":"","servers":[]}},"licenseTier":"essentials","location":{"latitude":0,"longitude":0},"management":{"type":"vxlanIbgp","netflowSettings":{"netflow":false},"vpcLayer3PeerRouter":true,"ptp":false,"l3VniRange":"50000-59000","securityGroupTag":false,"advertisePhysicalIp":false,"fabricVpcQosPolicyName":"spine_qos_for_fabric_vpc_peering","bfdPim":false,"underlayIpv6":false,"bfdIsis":false,"nveHoldDownTimer":180,"autoUniqueVrfLiteIpPrefix":false,"ospfAuthentication":false,"macsec":false,"defaultQueuingPolicyOther":"queuing_policy_default_other","autoBgpNeighborDescription":true,"mplsIsisAreaNumber":"0001","ipv6LinkLocal":true,"autoSymmetricVrfLite":false,"policyBasedRouting":false,"vrfLiteSubnetTargetMask":30,"tenantRoutedMulticastIpv6":false,"vpcPeerLinkPortChannelId":"500","isisAuthentication":false,"perVrfLoopbackAutoProvision":false,"replicationMode":"multicast","anycastRendezvousPointIpRange":"10.251.251.0/24","vpcIpv6NeighborDiscoverySync":true,"tcamAllocation":true,"realTimeInterfaceStatisticsCollection":false,"serviceNetworkVlanRange":"3000-3199","isisLevel":"level-2","targetSubnetMask":31,"autoSymmetricDefaultVrf":false,"defaultQueuingPolicyRSeries":"queuing_policy_default_r_series","brownfieldNetworkNameFormat":"Auto_Net_VNI$$VNI$$_VLAN$$VLAN_ID$$","fabricVpcDomainId":false,"vrfLiteSubnetRange":"10.33.0.0/16","nxapi":true,"vrfLiteAutoConfig":"manual","greenfieldDebugFlag":"enable","vrfVlanRange":"2000-2299","vpcTorDelayRestoreTimer":30,"objectTrackingNumberRange":"100-299","pimHelloAuthentication":false,"bfdAuthentication":false,"bgpLoopbackId":0,"nveLoopbackIpRange":"10.111.100.0/22","vpcPeerKeepAliveOption":"management","autoVrfLiteDefaultVrf":false,"aimlQos":false,"ipv6SubnetTargetMask":126,"strictConfigComplianceMode":false,"brownfieldSkipOverlayNetworkAttachments":false,"vpcPeerLinkVlan":"3600","nxapiHttpPort":80,"bgpAuthentication":false,"leafTorIdRange":false,"rendezvousPointMode":"asm","bfdOspf":false,"bgpLoopbackIpRange":"10.11.0.0/22","aaa":false,"ntpServerCollection":["10.81.254.131"],"overlayMode":"cli","autoGenerateMulticastGroupAddress":false,"stpRootOption":"unmanaged","perVrfLoopbackAutoProvisionIpv6":false,"localDhcpServer":false,"bgpAuthenticationKeyType":"3des","siteId":"65999","bgpAsn":"65999","nextGenerationOAM":true,"cdp":false,"l3VniNoVlanDefaultOption":false,"vrfLiteMacsec":false,"vrfExtensionTemplate":"Default_VRF_Extension_Universal","tenantRoutedMulticast":false,"nxapiHttp":false,"routeMapSequenceNumberRange":"1-65534","networkVlanRange":"2300-2999","staticUnderlayIpAllocation":false,"heartbeatInterval":190,"mplsHandoff":false,"bootstrapSubnetCollection":[],"powerRedundancyMode":"redundant","bfd":false,"anycastGatewayMac":"1234.5678.9000","ntpServerVrfCollection":["management"],"vrfRouteImportIdReallocation":false,"linkStateRoutingTag":"UNDERLAY","rendezvousPointLoopbackId":250,"aimlQosPolicy":"400G","ngoamSouthBoundLoopDetect":false,"linkStateRoutingProtocol":"ospf","networkExtensionTemplate":"Default_Network_Extension_Universal","dnsCollection":["10.0.249.16"],"vrfLiteIpv6SubnetRange":"fd00::a33:0/112","fabricMtu":9216,"vpcDomainIdRange":"1-1000","hostInterfaceAdminState":true,"bfdIbgp":false,"vpcAutoRecoveryTimer":360,"dnsVrfCollection":["management"],"isisAreaNumber":"0001","snmpTrap":true,"subInterfaceDot1qRange":"2-511","privateVlan":false,"networkTemplate":"Default_Network_Universal","defaultQueuingPolicy":false,"allowVlanOnLeafTorPairing":"none","vrfLiteIpv6SubnetTargetMask":126,"anycastBorderGatewayAdvertisePhysicalIp":false,"rendezvousPointCount":2,"name":"tme-fabric","performanceMonitoring":false,"nveLoopbackId":1,"vpcDelayRestoreTimer":150,"nxapiHttpsPort":443,"vpcPeerLinkEnableNativeVlan":false,"l2HostInterfaceMtu":9216,"coppPolicy":"strict","day0Bootstrap":false,"advertisePhysicalIpOnBorder":true,"vrfTemplate":"Default_VRF_Universal","ospfAreaId":"0.0.0.0","tenantDhcp":true,"routeReflectorCount":2,"inbandManagement":false,"underlayMulticastGroupAddressLimit":128,"ipServiceLevelAgreementIdRange":"10000-19999","intraFabricSubnetRange":"10.1.0.0/16","defaultQueuingPolicyCloudscale":"queuing_policy_default_8q_cloudscale","multicastGroupSubnet":"239.1.1.0/25","fabricInterfaceType":"p2p","fabricVpcQos":false,"advancedSshOption":false,"l2VniRange":"30000-49000"},"name":"tme-fabric","securityDomain":"all","telemetryCollection":false}]}
Login Response:
{'jwttoken': 'eyJhbGciOiJSUzI1NiIsImtpZCI6InFieXViN2hldndqM2o0YnZrdGp5NDY1c2NkcGRicmRzIiwidHlwIjoiSldUIn0.eyJhdnBhaXIiOiJzaGVsbDpkb21haW5zPWFsbC9zdXBlci1hZG1pbiIsImNsdXN0ZXIiOiI1NDRkNDUyZC00ZTQ0LTJkMzAtMzEwMC0wMDAwMDAwMDAwMDAiLCJleHAiOjE3NjE2MTY3MTcsImlhdCI6MTc2MTYxNTUxNywiaWQiOiI0OGQxMDViZGZiYzQ5YTVmY2YzOWExMGI5NjEzODZlNjFkZmU0MDA4NWNiMDMxNWQ4MThiNzYxYzU3MzVkYWZhIiwiaXNzIjoibmQiLCJpc3MtaG9zdCI6IjEwLjE1LjAuMTQzIiwicmJhYyI6W3siZG9tYWluIjoiYWxsIiwicm9sZXNNYXAiOnsic3VwZXItYWRtaW4iOnt9fX1dLCJzZXNzaW9uaWQiOiJaYWZBbXYwUXQ1V25PV25NTklRT3ZrN1MiLCJ1c2VyZmxhZ3MiOjAsInVzZXJpZCI6MjUwMDIsInVzZXJuYW1lIjoiYWRtaW4iLCJ1c2VydHlwZSI6ImxvY2FsIn0.tQQqCgmRY7NvKPJn7VG9Tmw2e9zdz1MViddYSs5l0Fw6nsor6RsxYF1K_SGc_1QB2_-7qNZt20sSNj24VhvyP6aBZYXoYsXvhzBapul17MA28XrZCaT_IB-wfij1Znz3qE78vOjAItp_tESs5zicdPFn6C9Vb4KOWDCf7-m6pMI3Iab91eQKKCc7EG6H9sZbDs9jk9JtYL3BFofeWzg7ULl6sFKD9tYMElSSng1rnI3GWoQJnr0zlLSKmStDKLBHYAHTHAz9ydcS40nniyN_OJkV00ekioy1VirnOQnAprr-BraxiP0xb4ghx3AwMePNDeVf76fxxd0QcwfrTLWc8Q', 'username': 'admin', 'usertype': 'local', 'rbac': '[{"domain":"all","rolesMap":{"super-admin":{}}}]', 'statusCode': 200, 'token': 'eyJhbGciOiJSUzI1NiIsImtpZCI6InFieXViN2hldndqM2o0YnZrdGp5NDY1c2NkcGRicmRzIiwidHlwIjoiSldUIn0.eyJhdnBhaXIiOiJzaGVsbDpkb21haW5zPWFsbC9zdXBlci1hZG1pbiIsImNsdXN0ZXIiOiI1NDRkNDUyZC00ZTQ0LTJkMzAtMzEwMC0wMDAwMDAwMDAwMDAiLCJleHAiOjE3NjE2MTY3MTcsImlhdCI6MTc2MTYxNTUxNywiaWQiOiI0OGQxMDViZGZiYzQ5YTVmY2YzOWExMGI5NjEzODZlNjFkZmU0MDA4NWNiMDMxNWQ4MThiNzYxYzU3MzVkYWZhIiwiaXNzIjoibmQiLCJpc3MtaG9zdCI6IjEwLjE1LjAuMTQzIiwicmJhYyI6W3siZG9tYWluIjoiYWxsIiwicm9sZXNNYXAiOnsic3VwZXItYWRtaW4iOnt9fX1dLCJzZXNzaW9uaWQiOiJaYWZBbXYwUXQ1V25PV25NTklRT3ZrN1MiLCJ1c2VyZmxhZ3MiOjAsInVzZXJpZCI6MjUwMDIsInVzZXJuYW1lIjoiYWRtaW4iLCJ1c2VydHlwZSI6ImxvY2FsIn0.tQQqCgmRY7NvKPJn7VG9Tmw2e9zdz1MViddYSs5l0Fw6nsor6RsxYF1K_SGc_1QB2_-7qNZt20sSNj24VhvyP6aBZYXoYsXvhzBapul17MA28XrZCaT_IB-wfij1Znz3qE78vOjAItp_tESs5zicdPFn6C9Vb4KOWDCf7-m6pMI3Iab91eQKKCc7EG6H9sZbDs9jk9JtYL3BFofeWzg7ULl6sFKD9tYMElSSng1rnI3GWoQJnr0zlLSKmStDKLBHYAHTHAz9ydcS40nniyN_OJkV00ekioy1VirnOQnAprr-BraxiP0xb4ghx3AwMePNDeVf76fxxd0QcwfrTLWc8Q'}

-----------------------------------

Session cookies after login:
{'AuthCookie': 'eyJhbGciOiJSUzI1NiIsImtpZCI6InFieXViN2hldndqM2o0YnZrdGp5NDY1c2NkcGRicmRzIiwidHlwIjoiSldUIn0.eyJhdnBhaXIiOiJzaGVsbDpkb21haW5zPWFsbC9zdXBlci1hZG1pbiIsImNsdXN0ZXIiOiI1NDRkNDUyZC00ZTQ0LTJkMzAtMzEwMC0wMDAwMDAwMDAwMDAiLCJleHAiOjE3NjE2MTY3MTcsImlhdCI6MTc2MTYxNTUxNywiaWQiOiI0OGQxMDViZGZiYzQ5YTVmY2YzOWExMGI5NjEzODZlNjFkZmU0MDA4NWNiMDMxNWQ4MThiNzYxYzU3MzVkYWZhIiwiaXNzIjoibmQiLCJpc3MtaG9zdCI6IjEwLjE1LjAuMTQzIiwicmJhYyI6W3siZG9tYWluIjoiYWxsIiwicm9sZXNNYXAiOnsic3VwZXItYWRtaW4iOnt9fX1dLCJzZXNzaW9uaWQiOiJaYWZBbXYwUXQ1V25PV25NTklRT3ZrN1MiLCJ1c2VyZmxhZ3MiOjAsInVzZXJpZCI6MjUwMDIsInVzZXJuYW1lIjoiYWRtaW4iLCJ1c2VydHlwZSI6ImxvY2FsIn0.tQQqCgmRY7NvKPJn7VG9Tmw2e9zdz1MViddYSs5l0Fw6nsor6RsxYF1K_SGc_1QB2_-7qNZt20sSNj24VhvyP6aBZYXoYsXvhzBapul17MA28XrZCaT_IB-wfij1Znz3qE78vOjAItp_tESs5zicdPFn6C9Vb4KOWDCf7-m6pMI3Iab91eQKKCc7EG6H9sZbDs9jk9JtYL3BFofeWzg7ULl6sFKD9tYMElSSng1rnI3GWoQJnr0zlLSKmStDKLBHYAHTHAz9ydcS40nniyN_OJkV00ekioy1VirnOQnAprr-BraxiP0xb4ghx3AwMePNDeVf76fxxd0QcwfrTLWc8Q'}

-----------------------------------

Get Response:
{"fabrics":[{"alertSuspend":"disabled","category":"fabric","externalStreamingSettings":{"email":[],"messageBus":[],"syslog":{"collectionSettings":{"anomalies":[]},"facility":"","servers":[]}},"licenseTier":"essentials","location":{"latitude":0,"longitude":0},"management":{"type":"vxlanIbgp","netflowSettings":{"netflow":false},"vpcLayer3PeerRouter":true,"ptp":false,"l3VniRange":"50000-59000","securityGroupTag":false,"advertisePhysicalIp":false,"fabricVpcQosPolicyName":"spine_qos_for_fabric_vpc_peering","bfdPim":false,"underlayIpv6":false,"bfdIsis":false,"nveHoldDownTimer":180,"autoUniqueVrfLiteIpPrefix":false,"ospfAuthentication":false,"macsec":false,"defaultQueuingPolicyOther":"queuing_policy_default_other","autoBgpNeighborDescription":true,"mplsIsisAreaNumber":"0001","ipv6LinkLocal":true,"autoSymmetricVrfLite":false,"policyBasedRouting":false,"vrfLiteSubnetTargetMask":30,"tenantRoutedMulticastIpv6":false,"vpcPeerLinkPortChannelId":"500","isisAuthentication":false,"perVrfLoopbackAutoProvision":false,"replicationMode":"multicast","anycastRendezvousPointIpRange":"10.251.251.0/24","vpcIpv6NeighborDiscoverySync":true,"tcamAllocation":true,"realTimeInterfaceStatisticsCollection":false,"serviceNetworkVlanRange":"3000-3199","isisLevel":"level-2","targetSubnetMask":31,"autoSymmetricDefaultVrf":false,"defaultQueuingPolicyRSeries":"queuing_policy_default_r_series","brownfieldNetworkNameFormat":"Auto_Net_VNI$$VNI$$_VLAN$$VLAN_ID$$","fabricVpcDomainId":false,"vrfLiteSubnetRange":"10.33.0.0/16","nxapi":true,"vrfLiteAutoConfig":"manual","greenfieldDebugFlag":"enable","vrfVlanRange":"2000-2299","vpcTorDelayRestoreTimer":30,"objectTrackingNumberRange":"100-299","pimHelloAuthentication":false,"bfdAuthentication":false,"bgpLoopbackId":0,"nveLoopbackIpRange":"10.111.100.0/22","vpcPeerKeepAliveOption":"management","autoVrfLiteDefaultVrf":false,"aimlQos":false,"ipv6SubnetTargetMask":126,"strictConfigComplianceMode":false,"brownfieldSkipOverlayNetworkAttachments":false,"vpcPeerLinkVlan":"3600","nxapiHttpPort":80,"bgpAuthentication":false,"leafTorIdRange":false,"rendezvousPointMode":"asm","bfdOspf":false,"bgpLoopbackIpRange":"10.11.0.0/22","aaa":false,"ntpServerCollection":["10.81.254.131"],"overlayMode":"cli","autoGenerateMulticastGroupAddress":false,"stpRootOption":"unmanaged","perVrfLoopbackAutoProvisionIpv6":false,"localDhcpServer":false,"bgpAuthenticationKeyType":"3des","siteId":"65999","bgpAsn":"65999","nextGenerationOAM":true,"cdp":false,"l3VniNoVlanDefaultOption":false,"vrfLiteMacsec":false,"vrfExtensionTemplate":"Default_VRF_Extension_Universal","tenantRoutedMulticast":false,"nxapiHttp":false,"routeMapSequenceNumberRange":"1-65534","networkVlanRange":"2300-2999","staticUnderlayIpAllocation":false,"heartbeatInterval":190,"mplsHandoff":false,"bootstrapSubnetCollection":[],"powerRedundancyMode":"redundant","bfd":false,"anycastGatewayMac":"1234.5678.9000","ntpServerVrfCollection":["management"],"vrfRouteImportIdReallocation":false,"linkStateRoutingTag":"UNDERLAY","rendezvousPointLoopbackId":250,"aimlQosPolicy":"400G","ngoamSouthBoundLoopDetect":false,"linkStateRoutingProtocol":"ospf","networkExtensionTemplate":"Default_Network_Extension_Universal","dnsCollection":["10.0.249.16"],"vrfLiteIpv6SubnetRange":"fd00::a33:0/112","fabricMtu":9216,"vpcDomainIdRange":"1-1000","hostInterfaceAdminState":true,"bfdIbgp":false,"vpcAutoRecoveryTimer":360,"dnsVrfCollection":["management"],"isisAreaNumber":"0001","snmpTrap":true,"subInterfaceDot1qRange":"2-511","privateVlan":false,"networkTemplate":"Default_Network_Universal","defaultQueuingPolicy":false,"allowVlanOnLeafTorPairing":"none","vrfLiteIpv6SubnetTargetMask":126,"anycastBorderGatewayAdvertisePhysicalIp":false,"rendezvousPointCount":2,"name":"tme-fabric","performanceMonitoring":false,"nveLoopbackId":1,"vpcDelayRestoreTimer":150,"nxapiHttpsPort":443,"vpcPeerLinkEnableNativeVlan":false,"l2HostInterfaceMtu":9216,"coppPolicy":"strict","day0Bootstrap":false,"advertisePhysicalIpOnBorder":true,"vrfTemplate":"Default_VRF_Universal","ospfAreaId":"0.0.0.0","tenantDhcp":true,"routeReflectorCount":2,"inbandManagement":false,"underlayMulticastGroupAddressLimit":128,"ipServiceLevelAgreementIdRange":"10000-19999","intraFabricSubnetRange":"10.1.0.0/16","defaultQueuingPolicyCloudscale":"queuing_policy_default_8q_cloudscale","multicastGroupSubnet":"239.1.1.0/25","fabricInterfaceType":"p2p","fabricVpcQos":false,"advancedSshOption":false,"l2VniRange":"30000-49000"},"name":"tme-fabric","securityDomain":"all","telemetryCollection":false}]}

Refreshing Authentication Token

All authentication tokens expire after a certain time. Since all subsequent API calls rely on the authentication token you receive when you first log in, you may want to refresh the existing token instead of obtaining a new one.

The Nexus Dashboard GUI sets the default token duration to 20 minutes, but you can change it.

To change the default values:

  1. Navigate to Admin > Users and Security.
  2. Choose the Security tab.
  3. Choose the Security Configuration sub-tab.
  4. Click Edit.
  5. Change the Session Timeout as needed.

Session Timeout

Request

POST https://<nd-node-ip>/refresh

Header

In the header, provide the token as a cookie that you want to refresh.

{
  "Cookie": "AuthCookie=eyJhbGciOi ... OegNbM8CEuW0mpTfDOw"
}

Response

The response to the POST operation contains an authentication token and information about the user’s privileges as configured in the Nexus Dashboard.

{
    "jwttoken": "eyJhbGciOiJSUzI1NiIsImtpZCI6InFieXViN2hldndqM2o0YnZrdGp5NDY1c2NkcGRicmRzIiwidHlwIjoiSldUIn0.eyJhdnBhaXIiOiJzaGVsbDpkb21haW5zPWFsbC9zdXBlci1hZG1pbiIsImNsdXN0ZXIiOiI1NDRkNDUyZC00ZTQ0LTJkMzAtMzEwMC0wMDAwMDAwMDAwMDAiLCJleHAiOjE3NjA3MDI1MDgsImlhdCI6MTc2MDcwMTMwOCwiaWQiOiI0OGQxMDViZGZiYzQ5YTVmY2YzOWExMGI5NjEzODZlNjFkZmU0MDA4NWNiMDMxNWQ4MThiNzYxYzU3MzVkYWZhIiwiaXNzIjoibmQiLCJpc3MtaG9zdCI6IjEwLjE1LjAuMTQzIiwicmJhYyI6W3siZG9tYWluIjoiYWxsIiwicm9sZXNNYXAiOnsic3VwZXItYWRtaW4iOnt9fX1dLCJzZXNzaW9uaWQiOiJGOUd4SWJ3NEt0djlnbU00TWN2RmJudVQiLCJ1c2VyZmxhZ3MiOjAsInVzZXJpZCI6MjUwMDIsInVzZXJuYW1lIjoiYWRtaW4iLCJ1c2VydHlwZSI6ImxvY2FsIn0.EJLL0rh1ohNmt602t1Jrdt_t_OLHgy0knIXu_530sRWLwfuyyA80Wl8vWBdXgUqipyA5mvGjRfmtlmenrdOeZ4AeUgJYILUiLZmoGOTm5sGtJv7khWZwPtgkkJC2hz476d5TZzQsca7mVatCp4aVppnG66OFGcvQBfM6EitAgB-50CusOOXArwMKAlSYvnuUC6lHQG1QyQhjMmLNfovzA-9hOsc_Gnk-65IKllv-tSnoED_T20eYJzSTak5Moa_k59nDtS9r_bO_qJZMk7oMmjb-p__KwzdJnjUHkyxOMOFtLhwNWKZxHGqkTVGOTyLOTmfnpv6P9xEpmjO0GZ0QyQ",
    "username": "admin",
    "usertype": "local",
    "rbac": "[{\"domain\":\"all\",\"rolesMap\":{\"super-admin\":{}}}]",
    "statusCode": 200,
    "token": "eyJhbGciOiJSUzI1NiIsImtpZCI6InFieXViN2hldndqM2o0YnZrdGp5NDY1c2NkcGRicmRzIiwidHlwIjoiSldUIn0.eyJhdnBhaXIiOiJzaGVsbDpkb21haW5zPWFsbC9zdXBlci1hZG1pbiIsImNsdXN0ZXIiOiI1NDRkNDUyZC00ZTQ0LTJkMzAtMzEwMC0wMDAwMDAwMDAwMDAiLCJleHAiOjE3NjA3MDI1MDgsImlhdCI6MTc2MDcwMTMwOCwiaWQiOiI0OGQxMDViZGZiYzQ5YTVmY2YzOWExMGI5NjEzODZlNjFkZmU0MDA4NWNiMDMxNWQ4MThiNzYxYzU3MzVkYWZhIiwiaXNzIjoibmQiLCJpc3MtaG9zdCI6IjEwLjE1LjAuMTQzIiwicmJhYyI6W3siZG9tYWluIjoiYWxsIiwicm9sZXNNYXAiOnsic3VwZXItYWRtaW4iOnt9fX1dLCJzZXNzaW9uaWQiOiJGOUd4SWJ3NEt0djlnbU00TWN2RmJudVQiLCJ1c2VyZmxhZ3MiOjAsInVzZXJpZCI6MjUwMDIsInVzZXJuYW1lIjoiYWRtaW4iLCJ1c2VydHlwZSI6ImxvY2FsIn0.EJLL0rh1ohNmt602t1Jrdt_t_OLHgy0knIXu_530sRWLwfuyyA80Wl8vWBdXgUqipyA5mvGjRfmtlmenrdOeZ4AeUgJYILUiLZmoGOTm5sGtJv7khWZwPtgkkJC2hz476d5TZzQsca7mVatCp4aVppnG66OFGcvQBfM6EitAgB-50CusOOXArwMKAlSYvnuUC6lHQG1QyQhjMmLNfovzA-9hOsc_Gnk-65IKllv-tSnoED_T20eYJzSTak5Moa_k59nDtS9r_bO_qJZMk7oMmjb-p__KwzdJnjUHkyxOMOFtLhwNWKZxHGqkTVGOTyLOTmfnpv6P9xEpmjO0GZ0QyQ"
}

Authorization Using API Key

For certain use cases, like automation scripts, using an API key to access Nexus Dashboard and service resources can be more convenient than relying on user credentials and authentication tokens.

Guidelines and Limitations

  • You can manage API keys through API calls or the Nexus Dashboard GUI.

  • API keys are available only for local users and apply only to the local Nexus Dashboard cluster and its running services.

  • A user receives API keys and can manage only their own keys.

  • Deleting a user also deletes their associated API keys.

  • You can create a maximum of 10 API keys per user.

Creating API Keys

  1. Log into Nexus Dashboard using a username and password combination.

    a) Click username

    b) Click Manage API keys

    Manage User API Keys

  2. In the Manage API keys pop-up:

    a) Click Add API key

    Add User API Keys

  3. In the Create API key pop-up:

    a) Give the API key a name/description

    b) (Optional) Add an annotation.

    c) Click Save

    Create User API Keys

  4. In the Copy API key pop-up,

    a) Use the Copy button to save the generated API key.

    b) Once you save the API key somewhere, Close the pop-up.

    Note: This is the only opportunity to obtain the API key. Once you close this window, you will not be able to view the API key again.

    Copy User API Keys

  5. Review the API key you created.

    Review User API Keys

Example API Key Usage

Request header requires the following two header keys:

Header Key Description
X-Nd-Username Username
X-Nd-Apikey Generated API Key for Specified Username

Get Managed Fabrics

Use the user API key to get managed fabrics.

Request

curl --insecure --request GET 'https://<nd-node-ip>/api/v1/manage/fabrics' \
  -H "X-Nd-Username: admin" \
  -H "X-Nd-Apikey: 01a5fc38949844018126bcae7994797f4c73e129dc3b46ea8046da58ef22f244"

Response

{"fabrics":[{"alertSuspend":"disabled","category":"fabric","externalStreamingSettings":{"email":[],"messageBus":[],"syslog":{"collectionSettings":{"anomalies":[]},"facility":"","servers":[]}},"licenseTier":"essentials","location":{"latitude":0,"longitude":0},"management":{"type":"vxlanIbgp","netflowSettings":{"netflow":false},"vpcLayer3PeerRouter":true,"ptp":false,"l3VniRange":"50000-59000","securityGroupTag":false,"advertisePhysicalIp":false,"fabricVpcQosPolicyName":"spine_qos_for_fabric_vpc_peering","bfdPim":false,"underlayIpv6":false,"bfdIsis":false,"nveHoldDownTimer":180,"autoUniqueVrfLiteIpPrefix":false,"ospfAuthentication":false,"macsec":false,"defaultQueuingPolicyOther":"queuing_policy_default_other","autoBgpNeighborDescription":true,"mplsIsisAreaNumber":"0001","ipv6LinkLocal":true,"autoSymmetricVrfLite":false,"policyBasedRouting":false,"vrfLiteSubnetTargetMask":30,"tenantRoutedMulticastIpv6":false,"vpcPeerLinkPortChannelId":"500","isisAuthentication":false,"perVrfLoopbackAutoProvision":false,"replicationMode":"multicast","anycastRendezvousPointIpRange":"10.251.251.0/24","vpcIpv6NeighborDiscoverySync":true,"tcamAllocation":true,"realTimeInterfaceStatisticsCollection":false,"serviceNetworkVlanRange":"3000-3199","isisLevel":"level-2","targetSubnetMask":31,"autoSymmetricDefaultVrf":false,"defaultQueuingPolicyRSeries":"queuing_policy_default_r_series","brownfieldNetworkNameFormat":"Auto_Net_VNI$$VNI$$_VLAN$$VLAN_ID$$","fabricVpcDomainId":false,"vrfLiteSubnetRange":"10.33.0.0/16","nxapi":true,"vrfLiteAutoConfig":"manual","greenfieldDebugFlag":"enable","vrfVlanRange":"2000-2299","vpcTorDelayRestoreTimer":30,"objectTrackingNumberRange":"100-299","pimHelloAuthentication":false,"bfdAuthentication":false,"bgpLoopbackId":0,"nveLoopbackIpRange":"10.111.100.0/22","vpcPeerKeepAliveOption":"management","autoVrfLiteDefaultVrf":false,"aimlQos":false,"ipv6SubnetTargetMask":126,"strictConfigComplianceMode":false,"brownfieldSkipOverlayNetworkAttachments":false,"vpcPeerLinkVlan":"3600","nxapiHttpPort":80,"bgpAuthentication":false,"leafTorIdRange":false,"rendezvousPointMode":"asm","bfdOspf":false,"bgpLoopbackIpRange":"10.11.0.0/22","aaa":false,"ntpServerCollection":["10.81.254.131"],"overlayMode":"cli","autoGenerateMulticastGroupAddress":false,"stpRootOption":"unmanaged","perVrfLoopbackAutoProvisionIpv6":false,"localDhcpServer":false,"bgpAuthenticationKeyType":"3des","siteId":"65999","bgpAsn":"65999","nextGenerationOAM":true,"cdp":false,"l3VniNoVlanDefaultOption":false,"vrfLiteMacsec":false,"vrfExtensionTemplate":"Default_VRF_Extension_Universal","tenantRoutedMulticast":false,"nxapiHttp":false,"routeMapSequenceNumberRange":"1-65534","networkVlanRange":"2300-2999","staticUnderlayIpAllocation":false,"heartbeatInterval":190,"mplsHandoff":false,"bootstrapSubnetCollection":[],"powerRedundancyMode":"redundant","bfd":false,"anycastGatewayMac":"1234.5678.9000","ntpServerVrfCollection":["management"],"vrfRouteImportIdReallocation":false,"linkStateRoutingTag":"UNDERLAY","rendezvousPointLoopbackId":250,"aimlQosPolicy":"400G","ngoamSouthBoundLoopDetect":false,"linkStateRoutingProtocol":"ospf","networkExtensionTemplate":"Default_Network_Extension_Universal","dnsCollection":["10.0.249.16"],"vrfLiteIpv6SubnetRange":"fd00::a33:0/112","fabricMtu":9216,"vpcDomainIdRange":"1-1000","hostInterfaceAdminState":true,"bfdIbgp":false,"vpcAutoRecoveryTimer":360,"dnsVrfCollection":["management"],"isisAreaNumber":"0001","snmpTrap":true,"subInterfaceDot1qRange":"2-511","privateVlan":false,"networkTemplate":"Default_Network_Universal","defaultQueuingPolicy":false,"allowVlanOnLeafTorPairing":"none","vrfLiteIpv6SubnetTargetMask":126,"anycastBorderGatewayAdvertisePhysicalIp":false,"rendezvousPointCount":2,"name":"tme-fabric","performanceMonitoring":false,"nveLoopbackId":1,"vpcDelayRestoreTimer":150,"nxapiHttpsPort":443,"vpcPeerLinkEnableNativeVlan":false,"l2HostInterfaceMtu":9216,"coppPolicy":"strict","day0Bootstrap":false,"advertisePhysicalIpOnBorder":true,"vrfTemplate":"Default_VRF_Universal","ospfAreaId":"0.0.0.0","tenantDhcp":true,"routeReflectorCount":2,"inbandManagement":false,"underlayMulticastGroupAddressLimit":128,"ipServiceLevelAgreementIdRange":"10000-19999","intraFabricSubnetRange":"10.1.0.0/16","defaultQueuingPolicyCloudscale":"queuing_policy_default_8q_cloudscale","multicastGroupSubnet":"239.1.1.0/25","fabricInterfaceType":"p2p","fabricVpcQos":false,"advancedSshOption":false,"l2VniRange":"30000-49000"},"name":"tme-fabric","securityDomain":"all","telemetryCollection":false}]}