Dell EMC SmartFabric Director REST API Guide Release 1.2 June 2020 Rev.
Notes, cautions, and warnings NOTE: A NOTE indicates important information that helps you make better use of your product. CAUTION: A CAUTION indicates either potential damage to hardware or loss of data and tells you how to avoid the problem. WARNING: A WARNING indicates a potential for property damage, personal injury, or death. © 2019 - 2020 Dell Inc. or its subsidiaries. All rights reserved. Dell, EMC, and other trademarks are trademarks of Dell Inc. or its subsidiaries.
Contents Chapter 1: Revision history.............................................................................................................. 7 Chapter 2: Using the REST API........................................................................................................ 8 Chapter 3: About............................................................................................................................ 9 GET /about..........................................................................
GET /events/{id}................................................................................................................................................................54 Chapter 9: Fabrics........................................................................................................................ 56 GET /fabrics........................................................................................................................................................................
POST /lcm/update-jobs/{id}/cancel............................................................................................................................. 122 POST /lcm/update-jobs/{id}/deploy............................................................................................................................. 123 POST /lcm/update-jobs/{id}/status..............................................................................................................................125 Chapter 15: Activities.
POST /telemetry/state.....................................................................................................................................................177 GET /telemetry/catalog................................................................................................................................................... 179 POST /telemetry/connection/{switch-id}....................................................................................................................
1 Revision history This table provides an overview of the changes in this guide. Table 1. Revision history Release Revision Description 1.2.0 A02 (June 2020) Organized APIs by feature; added POST /system/license-file 1.1.
2 Using the REST API Representational state transfer (REST) is a software architectural style that defines constraints that are used to provide interoperability between systems on the Internet. RESTful Web services allow the requesting systems to access and manipulate textual representations of web resources by using a uniform and predefined set of stateless operations. These stateless operations include GET, POST, PUT , DELETE, and SET.
3 About Returns information about SFD. Topics: • GET /about GET /about Retrieves information about SFD. API GET/ about Description This API retrieves SFD version and service tag information.
] } ] } 10 About
4 Alerts Alerts generated in SFD. Topics: • • • • • GET /alerts POST /alerts/{id}/ack POST /alerts/{id}/unack POST /alerts/{id}/clear GET /alerts/{id}/events GET /alerts Retrieves alerts generated in SFD. API GET /alerts Description This API returns all active alerts that are generated within SFD. An alert is raised when an instance of an event type occurs with certain severity level. An alert is cleared when an instance of an event type occurs with certain severity level.
Table 2. API parameters (continued) Filter name Description (query) Responses 200 — Response to get all the active alerts { "data": [ { "id": "136:51772757723185169", "type": "SWITCH_UNREACHABLE_ALERT", "severity": "WARNING", "created_timestamp": 1579979178564, "modified_timestamp": 0, "message": "Switch : 'tb-Leaf2' is not reachable.", "referenced_object_id": { "id": "2:51770212505682023", "type": "SWITCH" }, "state": "ACK", "acknowledged_by": “admin@sfd.
POST /alerts/{id}/ack Updates the state of an alert to the ACK state. API POST /alerts/{id}/ack Description This API updates the state of an alert from OPEN to ACK state. Parameters Table 3. API parameters Filter name Description *id The alert ID to acknowledge. required string (path) Responses 200 — Success or error response { "new_object_id": null, "id": "ack_alert_success", "message": "Alert has been acknowledged successfully.
default — Success or error response { "new_object_id": null, "id": "ack_alert_success", "message": "Alert has been acknowledged successfully.", "messageParams": [], "messages": [ { "id": "ack_alert_success", "message": "Alert has been acknowledged successfully.", "field_name": null, "messageParams": [] } ] } POST /alerts/{id}/unack Updates the state of an alert to the OPEN state. API POST /alerts/{id}/unack Description This API updates the state of an alert from ACK to OPEN state.
404 — Requested entity does not exist { "new_object_id": null, "id": "unack_alert_success", "message": "Alert has been un-acknowledged successfully.", "messageParams": [], "messages": [ { "id": "unack_alert_success", "message": "Alert has been un-acknowledged successfully.", "field_name": null, "messageParams": [] } ] } default — Success or error response { "new_object_id": null, "id": "unack_alert_success", "message": "Alert has been un-acknowledged successfully.
401 — You are not authorized to perform this operation { "new_object_id": null, "id": "clear_alert_success", "message": "Alert has been cleared successfully.", "messageParams": [], "messages": [ { "id": "clear_alert_success", "message": "Alert has been cleared successfully.", "field_name": null, "messageParams": [] } ] } 404 — Requested entity does not exist { "new_object_id": null, "id": "clear_alert_success", "message": "Alert has been cleared successfully.
Responses 200 — Success or error response { "data": [ { "id": "131:51772757722828383", "type": "SWITCH_REACHABILITY_STATE_DOWN", "severity": "WARNING", "timestamp": 1579979178553, "message": "Switch : 'tb-Leaf2' is not reachable.", "referenced_object_id": { "id": "2:51770212505682023", "type": "SWITCH" } } ] } 401 — You are not authorized to perform this operation { "new_object_id": null, "id": "clear_alert_success", "message": "Alert has been cleared successfully.
5 Authentication Provides access to APIs.
"messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 401 — Bad credentials { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string
Parameters Table 8. API parameters Filter name Description body Extend token request to get a new access token.
], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } GET /auth/users Retrieves all user information. API GET/auth/users Description This API returns all user records.
default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } POST /auth/users Creates a new local user. API POST /auth/users Description This API creates a local SFD user. Parameters Table 9. API parameters Filter name Description body Create a new local user.
] } 401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string
} "state": true, "cli_access": true, "user_role": "ADMIN", "ad_user": false, "contact_number": "string", "updated_by": "string", "last_updated": 0, "user_status": "ACTIVE", "cli_status": "ACTIVE" 401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 404 — Request entity does not exist { "new_ob
} ] } PUT /auth/users/{userId} Updates information for a specific user. API PUT /auth/users/{userId} Description This API updates user information based on the user ID. Users can change their own data, and users with ADMIN role can update the user data of others. Parameters Table 11. API parameters Filter name Description userId userId parameter as input to update user information. required string (path) body required (body) Update user data.
] } ] } 404 — Requested entity does not exist.
Responses 202 — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "strin
"string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } PUT /auth/users/{userId}/password Modifies the current user password. API PUT /auth/users/{userId}/password Description This API modifies the user password. The user must have ADMIN privileges. Parameters Table 13. API parameters Filter name Description userId userId parameter to change user password.
"string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 404 — Requested entity does not exist { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default - Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ]
Parameters Table 14. API parameters Filter name Description changeSelfPassword Password parameter used to change the password of a user.
"field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } PUT /auth/users/{userId}/cli-access Modifies user CLI access permissions. API PUT /auth/users/{userId}/cli-access Description This API changes user CLI access.
"string" ] } ] } 401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 404 — Requested entity does not exist { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageP
PUT /auth/users/{userId}/user-role Changes the user role. API PUT /auth/users/{userId}/user-role Description This API changes the role of the user. The user must have ADMIN privileges. Parameters Table 16. API parameters Filter name Description userId userId parameter to change a user role. required string (path) changeUserRole required (body) User role parameter to change the user role.
"id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } PUT /auth/users/{userId}/user-state Changes the user state.
"messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 404 — Request entity does not exist { "new_object_id": "string", "id": "string", "message": "st
"field_name": "string", "messageParams": [ "string" ] } ] } GET /auth/domains Returns the configured auth domains. API GET /auth/domains Description This API returns configuration information for auth domains.
GET /auth/servers/ldap Returns LDAP server attributes. API GET /auth/servers/ldap Description This API returns the LDAP server configuration information.
PUT /auth/servers/ldap Configures LDAP server information. API PUT /auth/servers/ldap Description This API configures LDAP server credentials to verify authentication with the URL. Parameters Table 18. API parameters Filter name Description body * Configure LDAP with the URL and credentials. required (body) { "url": "ldap:// ds.example.
"id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } DELETE /auth/servers/ldap Removes the LDAP server. API DELETE /auth/servers/ldap Description This API deletes the configured LDAP server from SFD.
] } 404 — Requested entity does not exist { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { ] "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } } 40
6 Configuration Switch configuration based on fabric intent. Topics: • GET /fabric-intents/{fabric-intent-id}/configuration/vlans GET /fabric-intents/{fabric-intent-id}/ configuration/vlans Retrieves host network information that is generated from the configuration for the specified fabric intent using the fabric intent ID. API GET /fabric-intents/{fabric-intent-id}/configuration/vlans Description This API returns the generated configuration for host networks.
] } 401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 404 — Request entity does not exist { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string
7 Edge-leaf Edge-leaf service APIs. Topics: • • • • • GET /fabrics-intents/{fabric-intent-id}/edge/connections POST /fabrics-intents/{fabric-intent-id}/edge/connections GET /fabrics-intents/{fabric-intent-id}/edge/connections/{id} PUT /fabrics-intents/{fabric-intent-id}/edge/connections/{id} DELETE /fabrics-intents/{fabric-intent-id}/edge/connections/{id} GET /fabrics-intents/{fabric-intent-id}/edge/ connections Retrieves all edge connections for a specific fabric intent ID.
"prefixLen": 16 }, "remoteAddress": { "IpAddress": "60.60.60.
"messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } POST /fabrics-intents/{fabric-intent-id}/edge/ connections Creates an edge connection for a specific fabric intent ID. API POST /fabrics-intents/{fabric-intent-id}/edge/connections Description This API creates an Edge connection for a specific fabric intent ID. Edge connectivity helps fabric to communicate with workloads outside of the fabric. Parameters Table 21.
} ] } 400 — Invalid request { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] }
GET /fabrics-intents/{fabric-intent-id}/edge/ connections/{id} Retrieves an edge connection for a specific fabric intent using the fabric intent ID. API GET /fabrics-intents/{fabric-intent-id}/edge/connections/{id} Description This API retrieves an edge connection for a specific fabric intent using the fabric intent ID. Parameters Table 22. API parameters Filter name Description fabric-intent-id Unique identifier of the fabric intent. string (path) *id Unique identifier of the Edge connection.
"message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 404 — Request entity does not exist { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "
Parameters Table 23. API parameters Filter name Description fabric-intent-id Unique identifier of the fabric intent. string (path) *id Responses Unique identifier of the Edge connection.
] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } DELETE /fabrics-intents/{fabric-intent-id}/edge/ connections/{id} Deletes an edge connection for a specific fabric intent using the fabric intent ID.
] } ] } 401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 404 — Request entity does not exist { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "
8 Events Events generated in SFD. Topics: • • GET /events GET /events/{id} GET /events Retrieves a list of SFD event information. API GET /events Description This API returns all the events generated within SFD. Parameters Table 25. API parameters Filter name Description type Gets all the NFC events based on the event type that is generated within SFD.
imported.", "referenced_object_id": { "id": "210:51771176547909632", "type": "SFD_WIRING" } }, { "id": "131:51770651935244305", "type": "SYSTEM_HEALTH_ACTIVE_EVENT", "severity": "INFO", "timestamp": 1579914915016, "message": "SFD system health is active.", "referenced_object_id": { "id": "131:51770643868909574", "type": "SFD_EVENTS" } }, { "id": "131:51770645014446088", "type": "SYSTEM_HEALTH_DOWN_EVENT", "severity": "CRITICAL", "timestamp": 1579914703810, "message": "SFD system health is degraded.
] } GET /events/{id} Returns SFD event information. API GET /events/{id} Description This API returns event information based on a specific event ID. Parameters Table 26. API parameters Filter name Description *id Unique identifier of the SFD event.
"message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } Events 55
9 Fabrics SFD fabrics. Topics: • GET /fabrics GET /fabrics Retrieves a summary of all fabrics. API GET /fabrics Description Fabric object is created when any fabric intent is deployed. This fabric object points to the FabricIntent which is active and gives Operational state of the FabricIntent.
"string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } Fabrics 57
10 Fabrics-intents Fabric intent provisioning.
401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 404 — Requested entity does not exist { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ]
POST /fabrics-intents Provides input parameters for the network intent. Description A fabric intent is a desired state of network and is achieved by providing seed configurations. SFD will translate the provided fabric intent to the configurations and will deploy to physical switches in the topology. Fabric intent will contain many objects which define the desired need of network like interlink, host-networks, Edge connectivity, and so on.
"messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } GET /fabrics-intents/{id} Retrieves the configured fabric intent.
"state": { "current_state": "DRAFT", "timestamp": null, "timestamp_iso": null } } 401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 404 — Requested entity does not exist { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "
PUT /fabrics-intents/{id} Updates the configured fabric intent. API PUT /fabrics-intents/{id} Description This API updates the fabric intent. Parameters Table 29. API parameters Filter name Description *id Unique identifier of the fabric intent.
404 — Requested entity does not exist { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } DELETE /fa
{ ] } } "id": "fabric_intent_delete_success", "message": "Fabric Intent deleted successfully", "field_name": null, "messageParams": [] 401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 404 — Requested entity does not exist { "new_object_id": "string", "id": "string", "message": "string"
] } POST /fabrics-intents/{id}/clone Clones a fabric intent API POST /fabrics-intents/{id}/clone Description This API clones a fabric intent represented by the requested id. A new fabric intent in DRAFT state will be cloned, along with all contained objects. Parameters Table 31. API parameters Filter name Description *id Unique identifier of the fabric intent.
404 — Requested entity does not exist { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } POST /fabr
401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 404 — Requested entity does not exist { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ]
Description This API retrieves the generated configuration for this fabric intent represented by this id. Parameters Table 33. API parameters Filter name Description *id Unique identifier of the fabric intent.
}, "lacp": { "system_priority": 0, "aggregate_interface": [ { "id": "string", "period_type": "string", "mode": "string", "min_links": 0, "lag_id": 0, "interface_members": [ { "id": "string", "name": "string" } ] } ] } } ], "connections": [ { "id": "string", "name": "string", "role": "MANAGEMENT", "endpoint1": { "switch_id": "string", "switch_name": "string", "interface_id": "string", "ipaddress": "string" }, "endpoint2": { "switch_id": "string", "switch_name": "string", "interface_id": "string", "ipaddress
], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } POST /fabrics-intents/{id}/approval-request Requests approval for a specific fabric intent.
] } } "messageParams": [] 201 — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messa
default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } POST /fabrics-intents/{id}/cancel-approval Requests a cancel for a fabric intent approval. API POST /fabrics-intents/{id}/cancel-approval Description This API sends a cancel request for a fabric intent approval.
], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 404 — Requested entity does not exist { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messag
Parameters Table 36. API parameters Filter name Description *id Unique identifier of the fabric intent. For example: string 41:51771215306326025 (path) Responses 200 — Validate response for the fabric intent { "deployable": true, "messages": [ { "id": "fabric_intent_validate_success", "message": "Fabric Intent was validated successfully.
"message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } POST /fabrics-intents/{id}/deploy Requests deployment for a specific fabric intent to the topology. API POST /fabrics-intents/{id}/deploy Description This API starts deploying the configuration on the switches in the topology. Parameters Table 37. API parameters Filter name Description *id Unique identifier of the fabric intent.
"field_name": "string", "messageParams": [ "string" ] } ] } 404 — Requested entity does not exist { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_na
Responses 200 — Deploy status response of the fabric intent { "deployment_state": "FAILED", "timestamp": { "start_time": 1579987357, "start_time_iso": "2020-01-25 21:22:37 UTC", "end_time": 1579987422, "end_time_iso": "2020-01-25 21:23:42 UTC" }, "deployment_count": { "success_count": 0, "in_progress_count": 0, "error_count": 6 }, "deployment_progression": [ { "id": "2:51771176555151441", "name": "sc2-t2-s5224-l3", "progress": 100, "status": "FAILED", "timestamp": { "start_time": 1579987375738, "start_tim
], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } GET /fabrics-intents/{fabric-intent-id}/ deployments/{deployment-id} Retrieves the deployment status of a specific fabric-intent using the fabr
"end_time": 1579987422, "end_time_iso": "2020-01-25 21:23:42 UTC" }, "deployment_count": { "success_count": 0, "in_progress_count": 0, "error_count": 6 }, "deployment_progression": [ { "id": "2:51771176555151441", "name": "sc2-t2-s5224-l3", "progress": 100, "status": "FAILED", "timestamp": { "start_time": 1579987375738, "start_time_iso": "52037-10-21 22:08:58 UTC", "end_time": 1579987405500, "end_time_iso": "52037-10-22 06:25:00 UTC" }, "messages": [ { "id": null, "message": "Failed to configure entity : B
] } 401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 404 — Requested entity does not exist { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "stri
11 Host-networks Host network objects within a fabric intent.
"message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 404 — Request entity does not exist { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "
VLAN ID of the network, two SVI IP addresses for leaf/spine switches which are in VLTLINK pair 3, and VRRP virtual IP which is the host network gateway IP. Parameters Table 41. API parameters Filter name Description fabric-intent-id Unique identifier of the fabric intent. For example: string 41:51776562459279527 (path) body For example: { "type": "WORKLOAD_VLAN", "data": [ { "svi_ip_1": "10.1.1.2/24", "svi_ip_2": "10.1.1.3/24", "vrrp_virtual_ip": "10.1.1.
"messageParams": [ "string" ] } ] } 404 — Request entity does not exist { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messagePar
Parameters Table 42. API parameters Filter name Description fabric-intent-id Unique identifier of the fabric intent. For example: string 41:51776562459279527 (path) host-network-id Unique identifier of the host network object. For example: 46:51776822585327789 Responses 200 — Response to get host network { "vlan_id": 100, "type": "WORKLOAD_VLAN", "data": [ { "switch_id_1": "2:51771176554102825", "switch_id_2": "2:51771176554692670", "svi_ip_1": "10.1.1.2/24", "svi_ip_2": "10.1.1.
"messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } PUT /fabrics-intents/{fabric-intent-id}/hostnetworks/{host-network-id} Updates a specific host network object within a fabric intent using the host network ID.
Table 43.
"message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } DELETE /fabrics-intents/{fabric-intent-id}/hostnetworks/{host-network-id} Deletes a specific host network object from a fabric intent using the host network ID.
"messages": [ { "id": "host_network_delete_success", "message": "Host Network Delete Successfully", "field_name": null, "messageParams": [ "string" ] } ] } 401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 404 — Request entity does not exist { "new_object_id": "string", "id": "string", "
] } ] } Host-networks 91
12 Image-servers Image server to upgrade or downgrade the image on the switch. Topics: • • • • • GET /image-servers POST /image-servers GET /image-servers/{id} PUT /image-servers/{id} DELETE /image-servers/{id} GET /image-servers Retrieves all image servers on a switch. API GET /image-servers Description This API retrieves all image servers in the system.
"string" ] } ] } 404 — Requested entity does not exist { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string"
Table 45.
"message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } GET /image-servers/{id} Retrieves an image server using the image server ID.
} } } } 401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 404 — Requested entity does not exist { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [
PUT /image-servers/{id} Updates an image server using the image server ID. API PUT /image-servers/{id} Description This API updates an image server using the image server ID. Parameters Table 47. API parameters Filter name Description *id Unique identifier of the image server.
"messageParams": [ "string" ] } ] } 401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 404 — Requested entity does not exist { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name":
DELETE /image-servers/{id} Deletes an image server using the image server ID. API DELETE /image-servers/{id} Description This API deletes an image server using the image server ID. Parameters Table 48. API parameters Filter name Description *id Unique identifier of the image server.
], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { ] "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } } 100 Image-servers
13 Interlinks Interlink objects within a fabric intent. Topics: • • • • • GET /fabrics-intents/{fabric-intent-id}/interlinks POST /fabrics-intents/{fabric-intent-id}/interlinks GET /fabrics-intents/{fabric-intent-id}/interlinks/{interlink-id} PUT /fabrics-intents/{fabric-intent-id}/interlinks/{interlink-id} DELETE /fabrics-intents/{fabric-intent-id}/interlinks/{interlink-id} GET /fabrics-intents/{fabric-intent-id}/interlinks Retrieve all interlink objects within a fabric intent.
}, "ufd": true, "rstp": true, "mtu": 1500 }, "L2_VLT": null, "id": "42:51776562747670697", "fabricIntentId": "41:51776562459279527" } } ] } 401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "strin
Parameters Table 50. API parameters Filter name Description fabric-intent-id Unique identifier of the fabric intent. For example: string 41:51776562459279527 (path) body For example: { } Responses "name": "intent-new", "type": "L3_BGP", "L3_BGP": { "bgp": { "type": "eBGP", "as_leaf_range": [ { "start": 64801, "end": 64928 } ], "as_spine_range": [ { "start": 64601, "end": 64616 } ] }, "interlink_subnet": { "address": "192.180.0.0", "prefix_len": 16 }, "loopback_seed_address": { "address": "10.0.0.
401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 404 — Requested entity does not exist { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ]
GET /fabrics-intents/{fabric-intent-id}/ interlinks/{interlink-id} Retrieve a specific interlink object within a fabric intent using the interlink ID. API GET /fabrics-intents/{fabric-intent-id}/interlinks/{interlink-id} Description This API returns an interlink object identified by interlink-id within a fabric intent identified by fabric-intent-id Parameters Table 51. API parameters Filter name Description fabric-intent-id Unique identifier of the fabric intent.
} } } "loopback_seed_address": { "address": "string", "prefix_len": 0 }, "bgp": { "type": "eBGP", "as_leaf_range": [ { "start": 0, "end": 0 } ], "as_spine_range": [ { "start": 0, "end": 0 } ] } 401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 404 — Requested entity does not exist { "new
"message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } PUT /fabrics-intents/{fabric-intent-id}/ interlinks/{interlink-id} Place an interlink object within a fabric intent. API PUT /fabrics-intents/{fabric-intent-id}/interlinks/{interlink-id} Description This API updates an interlink object identified by interlink-id within a fabric intent identified by fabric-intent-Id. Parameters Table 52.
Table 52. API parameters (continued) Filter name Description "address": "10.0.0.0", "prefix_len": 32 } Response status codes 200 — success or error response { "new_object_id": null, "id": "fabric_intent_interlink_update_successful", "message": "Interlink updated successfully.", "messageParams": [ "string" ], "messages": [ { "id": "fabric_intent_interlink_update_successful", "message": "Interlink updated successfully.
"field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } DELETE /fabrics-intents/{fabric-intent-id}/ interlinks/{interlink-id} Remove an interlink object from a fabric intent.
"message": "Interlink with deleted successfully.
] } Interlinks 111
14 Life cycle management Update SFD jobs. Topics: • • • • • • • • • GET /lcm/update-jobs POST /lcm/update-jobs GET /lcm/update-jobs/{id} PUT /lcm/update-jobs/{id} DELETE /lcm/update-jobs/{id} POST /lcm/update-jobs/{id}/approval-request POST /lcm/update-jobs/{id}/cancel POST /lcm/update-jobs/{id}/deploy POST /lcm/update-jobs/{id}/status GET /lcm/update-jobs Retrieves information for all switch image update jobs.
"id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 404 — Requested entity does not exist { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "st
Parameters Table 54.
"id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } GET /lcm/update-jobs/{id} Retrieves information for a switch image update job using the request ID.
"name": "string" } "image_server": { "id": "string" } } } 401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 404 — Requested entity does not exist { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message":
PUT /lcm/update-jobs/{id} Update a switch image update job using the requested ID. API PUT /lcm/update-jobs/{id} Description This API updates a switch image update job using the requested ID. Parameters Table 56. API parameters Filter name Description *id Unique identifier of the image update job.
} ] } 404 — Requested entity does not exist { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } D
Responses 200 — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 400 — Invalid request { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 401 — You are not a
"string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } POST /lcm/update-jobs/{id}/approval-request Request approval for a switch image update job.
"message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 400 — Invalid request { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "messa
] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } POST /lcm/update-jobs/{id}/cancel Request to cancel a switch image update job. API POST /lcm/update-jobs/{id}/cancel Description This API requests to cancel a job that is scheduled to deploy. The cancelled job returns back to approved state.
401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 404 — Requested entity does not exist { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ]
Description This API requests a switch image update job represented by the requested id. The operator must specify if the job needs to be scheduled or deployed now. If the job is scheduled, it will be deployed at that time. To deploy the job, it needs to be in approved state. Parameters Table 60. API parameters Filter name Description *id Unique identifier of the switch image update job.
"id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } POST /lcm/update-jobs/{id}/status Gets the status of a switch image update job
"error": "NOT_SET", "download_status": { "status": "NOT_SET", "file_transfer_status": { "progress_percentage": O, "start_time": O, "end_time": O, "file_size": O, "transfer_rate": O, "message": "string" } } } } 401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 404 — Requested entity does not
"field_name": "string", "messageParams": [ "string" ] } ] } Life cycle management 127
15 Activities SFD activities. Topics: • GET /activities GET /activities Retrieves SFD activities. API GET /activities Description This API returns SFD activities. SFD activities is a summary of operations. This could be operator driven or any dynamic activity happening in SFD. Parameters Table 62. API parameters Filter name Description start-time Get all SFD activities created after start timestamp (inclusive). The default value for start timestamp is set as end-time - 24 hours.
Responses 200 — Activities response for SFD { "data": [ { "id": "190:51774078941167775", "activity_type": "FABRIC_CONFIG", "sub_type": "CONFIG_REPLAY", "start_time": 1580019498937, "end_time": 1580019505842, "status": "SUCCESS", "referenced_id": "41:51771177706553346", "fabric_intent_deployment_id": "151:51774078940348574", "name": "sfd", "message": "Switch: 'sc2-t2-z9100-s2' restarted. Provisioning the switch.
], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 130 Activities
16 Notifications Notification service APIs. Topics: • • • • • GET /notifications GET /notifications/smtp PUT /notifications/smtp DELETE /notifications/smtp POST /notifications/smtp/test GET /notifications Retrieves all the currently applied notification configurations. API GET /notifications Description This API returns all the currently applied notification configurations.
default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } GET /notifications/smtp Retrieves the applied SMTP configuration. API GET /notifications/smtp Description This API returns the currently applied SMTP configuration.
404 — Requested entity does not exist { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } PUT /notif
Responses 200 — Response to a notification request { "status": "enum", "error_message": "string" } 400 — Invalid request { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id"
DELETE /notifications/smtp Deletes the applied SMTP configuration. API DELETE /notifications/smtp Description This API deletes the currently applied SMTP configuration.
"id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } POST /notifications/smtp/test Sends a test email. API POST /notifications/smtp/test Description This API sends a test email based on input data. Parameters Table 64.
401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] }
17 Switch Switch inventory information. Topics: • • • • • • GET /switch/{switch-id} GET /switch/{switch-id}/interface GET /interface/{interface id} GET /switch/{switch-id}/bgp GET /switch/{switch-id}/lag GET /switches/summary GET /switch/{switch-id} Retrieves all interface summaries for a specific switch using the switch ID. API GET /switch/{switch-id} Description This API retrieves a telemetry summary. Parameters Table 65.
{ } "key": "up_state_lag_count", "value": "1" ] } ] } 400 — Invalid request { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_nam
] } GET /switch/{switch-id}/interface Retrieves a specific interface summary for a switch using the switch ID. API GET /switch/{switch-id}/interface Description This API retrieves a telemetry summary. Parameters Table 66. API parameters Filter name Description switch-id * Unique identifier of the switch. required string (path) start Start an index of the interface records. integer (query) count Number of the interface records to retrieve.
] } 400 — Invalid request { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } d
GET /interface/{interface id} Retrieves a summary of a specified interface using the interface ID. API GET /interface/{interface id} Description This API retrieves a telemetry summary. Parameters Table 67. API parameters Filter name Description interface-id * Unique identifier of the interface. required string (path) Responses 200 — Telemetry summary for a switch { . . .
"messageParams": [ "string" ] } ] } 401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "s
Responses 200 — Telemetry summary for a switch { "switch_id": "2:51778771773521959", "total_count": "null", "data": [ { "data": [ { "key": "prefixes_received", "value": "4" }, { "key": "prefixes_sent", "value": "2" }, { "key": "prefixes_installed", "value": "4" }, { "key": "state", "value": "ESTABLISHED" }, { "key": "neighbor-oid", "value": "72:51778774711206129" }, { "key": "neighbor-ip", "value": "192.168.0.
"field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } GET /switch/{switch-id}/lag Retrieves all LAG summary information for a specified switch using the switch ID. API GET /switch/{switch-id}/lag Description This API retrieves a telemetry summary.
{ ] } } ] "key": "interface-name", "value": "port-channel1" }, { "key": "lag-member-interface", "value": "ethernet1/1/26" }, { "key": "oper_state", "value": "UP" }, { "key": "admin_state", "value": "UP" } 400 — Invalid request { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 401 — You are not authorized to perform this operation { "new_ob
"string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } GET /switches/summary Retrieves summary information of all switches. API GET /switches/summary Description This API retrieves summary information of all switches.
"message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { ] "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id":
18 Switch-groups Switch group configuration information. Topics: • • • • • GET /switch-groups POST /switch-groups GET /switch-groups/{id} PUT /switch-groups/{id} DELETE /switch-groups/{id} GET /switch-groups Retrieves a list of all the switch groups present in the system. API GET /switch-groups Description This API returns all the switch groups present in the system.
] } ] } 404 — Requested entity does not exist { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] }
Table 70.
] } GET /switch-groups/{id} Retrieves a switch group using the switch group ID. API GET /switch-groups/{id} Description This API retrieves a switch group represented by the requested id. Parameters Table 71. API parameters Filter name Description *id Unique identifier of the image server. required string (path) Responses 200 — Response to get switch-group by ID.
404 — Requested entity does not exist { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } PUT /switc
Table 72.
] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } DELETE /switch-groups/{id} Deletes a specific switch group using the switch group ID. API DELETE /switch-groups/{id} Description This API deletes a switch group represented by the requested id. Parameters Table 73.
401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 404 — Requested entity does not exist { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ]
19 Syslogs Syslog messages received by SFD from switches. Topics: • • GET /syslogs/messages GET /syslogs/messages/latest GET /syslogs/messages Retrieves syslog messages between the start and end timestamp. API GET /syslogs/messages Description This API retrieves syslog messages between the start and end timestamp. Parameters Table 74. API parameters Filter name Description oid If present, the Object ID acts as a filter. string (query) start-time integer ($int64) Start time in epoch millisecond.
acct=\"admin\" exe=\"/usr/bin/python2.7\" hostname=? addr=? terminal=? res=success' \n\n" }, { "timestamp": 1567213635327, "message": "<37>1 2019-08-31T09:04:12.970103+00:00 sc2-t2-z9100-s1 audit 2967 - - Node.1-Unit.1:PRI [audit], Dell EMC (OS10) USER_AUTH pid=2967 uid=0 auid=4294967295 ses=4294967295 msg='op=PAM:authentication acct=\"admin\" exe=\"/usr/bin/python2.7\" hostname=? addr=? terminal=? res=success' \n\n" }, . . . { "timestamp": 1567190985325, "message": "<37>1 2019-08-31T02:45:52.
GET /syslogs/messages/latest Retrieves syslog messages between the start and end timestamp. API GET /syslogs/messages/latest Description This API retrieves the latest N syslog messages for a switch identified by OID. Parameters Table 75. API parameters Filter name Description oid If present, the Object ID acts as a filter. string (query) max-messages integer Maximum number of messages to retrieve. The default is 100. (query) filter Matching phrase, accepts wildcards (*).
] } default — Success or error response { ] "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } } 160 Syslogs
20 System System APIs. Topics: • • • GET /system/health POST /system/ping POST /system/license-file GET /system/health Retrieves overall SFD health information. API GET /system/health Description This API retrieves overall system health information.
"string" ] } ] } POST /system/ping Pings the REST service. API POST /system/ping Description This API pings the REST service. Use case for this can be client application dependent.
POST /system/license-file Uploads the SFD licence file. API POST /system/license-file Description This API retrieves the SFD license file obtained from the Dell Digital Locker, downloads into the local machine, then uploads the file to SFD. Parameters Table 76. API parameters Filter name Description LicenseFile The SFD license file to be uploaded.
], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { ] "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } } 164 System
21 System-settings SFD system settings. Topics: • • • • • • GET /system-settings PUT /system-settings/gateway POST /system-settings/ntp DELETE /system-settings/ntp/{ntp_server} POST /system-settings/dns DELETE /system-settings/dns/{dns_server} GET /system-settings Returns a list of SFD system settings. API GET /system-settings Description This API returns a list of SFD system settings.
default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } PUT /system-settings/gateway Configures the default gateway in SFD. API PUT /system-settings/gateway Description This API configures the default gateway in SFD. Parameters Table 77.
"messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } POST /system-settings/ntp Configures the NTP server in SFD.
"message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "s
Table 79.
default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } POST /system-settings/dns Configures the DNS server in SFD. API POST /system-settings/dns Description This API configures the DNS server in SFD. Parameters Table 80. API parameters Filter name Description body * Configure the DNS server.
"messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } DELETE /system-settings/dns/{dns_server} Deletes the DNS server from SFD.
"message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 404 — Requested entity does not exist { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id":
] } System-settings 173
22 Telemetry Time series-based metrics and state information. Topics: • • • • • POST /telemetry/metrics GET /telemetry/switch/rank/metric/{metric-name} POST /telemetry/state GET /telemetry/catalog POST /telemetry/connection/{switch-id} POST /telemetry/metrics Creates or updates metric values corresponding to the specified OID and metric key. API POST /telemetry/metrics Description This API retrieves metric values corresponding to the specified OID and metric key. Parameters Table 82.
{ ] "timestamp": 1580186777, "value": 1565 }, { "timestamp": 1580186837, "value": 1565 }, { "timestamp": 1580186897, "value": 1565 }, { "timestamp": 1580186957, "value": 1565 } }] } 400 — Invalid request { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 401 — You are not authorized to perform this operation { "new_object_id": "string", "id"
], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } GET /telemetry/switch/rank/metric/{metricname} Retrieves metrics for all switches in the topology. Returns switch information in descending order by the metric. API GET/telemetry/switch/rank/metric/{metric-name} Description This API retrieves metrics for all switches in the topology. Returns switch information in descending order by the metric.
"field_name": "string", "messageParams": [ "string" ] } ] } 401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "s
Table 84.
401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] }
] "switch_reachability_state" }, { "object_type": "FABRIC", "state_name": [ "fabric_health" ] }, { "object_type": "AGGREGATE_INTERFACE", "state_name": [ "aggregate_interface" ] } ], "metrics": [ { "object_type": "BGP", "metric_name": [ "prefixes_received", "prefixes_sent", "prefixes_installed" ] }, { "object_type": "INTERFACE", "metric_name": [ "in_octets", "in_unicast_pkts", "in_broadcast_pkts", "in_multicast_pkts", "in_discards", "in_errors", "in_unknown_protos", "in_undersize_frames", "in_fragment_
] } } ] "in_unicast_pkts", "in_broadcast_pkts", "in_multicast_pkts", "in_discards", "in_errors", "in_unknown_protos", "in_undersize_frames", "in_fragment_frames", "in_oversize_frames", "in_pkts", "out_pkts", "out_octets", "out_unicast_pkts", "out_broadcast_pkts", "out_multicast_pkts", "out_discards", "out_errors", "port_speed" 400 — Invalid request { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "fiel
POST /telemetry/connection/{switch-id} Allows changing the connection status for a switch using the switch ID. API POST /telemetry/connection/{switch-id} Description This API provides operations for changing connection status with a switch. Parameters Table 85. API parameters Filter name Description switch-oid * Unique identifier of the switch.
401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] }
23 Topology Physical topology of the fabric. Topics: • • • GET /topology/status POST /topology/upload GET /topology GET /topology/status Retrieves the overall status of the fabric. API GET /topology/status Description Fabric creation designs topology, discovery of physical switches, and configuration of the switches. This API can be invoked at any time to know the status of the fabric. This API provides status of each step in creation of the fabric.
} ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } POST /topology/upload Retrieves the overall status of the fabric. API GET /topology/status Description This API is the design file to upload. SFD learns the design and then provides the next steps to perform.
"id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "message
{ "id": "string", "name": "string", "model": "string", "position": 0, "role": "LEAF", "peer_switch_id": "string", "mgmt_ip_address": "string", "states": { "defined": true, "rechable": true, "discovered": true, "configured": true, "operational": "NONE" }, "interfaces": [ { "id": "string", "name": "string", "type": "ETHERNET", "role": "MANAGEMENT", "speed": "string" } ] } ], "connections": [ { "id": "string", "name": "string", "source_switch_id": "string", "destination_switch_id": "string", "source_switch_i
"messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 188 Topology
24 VM-managers vCenter and NSX access APIs. Topics: • • • • • GET /vm-managers POST /vm-managers GET /vm-managers/{id} PUT /vm-managers/{id} DELETE /vm-managers/{id} GET /vm-managers Returns all the vCenters and NSX that the SFD manages. API GET /vm-managers Description This API returns all VM managers monitored by SFD. Parameters None Responses 200 — Get all the vCenters and NSX managed by SFD { } "data": [ { "id": "102:51771201129512964", "name": "", "type": "VCENTER", "url": "https://10.175.
default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } POST /vm-managers Adds the user-provided vCenter/NSX URL and credentials. API POST /vm-managers Description This API adds vCenter to NSX. SFD will contact the vCenter or NSX and configure the switches for the host network. Parameters Table 86.
401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] }
"username": "admin@vsphere ", "state": "OPERATIONAL" } 401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 404 — Requested entity does not exist { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string
PUT /vm-managers/{id} Updates a specific VM manager using the VM manager ID. API PUT /vm-managers/{id} Description This API updates the VM manager by ID. Parameters Table 88. API parameters Filter name Description *id Unique identifier of the vCenter/NSX to update.
] } 404 — Requested entity does not exist { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } DELE
"id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 404 — Requested entity does not exist { "new_object_id": "
"id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 196 VM-managers
25 Wiring-diagrams Wiring diagram builder for the fabric. Topics: • • • • • • POST /wiring-diagrams DELETE /wiring-diagrams/{id} GET /wiring-diagrams/{id}/topology GET /wiring-diagrams/summary GET /wiring-diagrams/{id}/compatible-intents GET /wiring-diagrams/supported-models POST /wiring-diagrams Uploads the fabric design file in JSON format. API POST /wiring-diagrams Description This API uploads the fabric design file in JSON format.
"id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } 404 — Requested entity does not exist { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messa
] } DELETE /wiring-diagrams/{id} Deletes a wiring diagram. API DELETE /wiring-diagrams/{id} Description This API deletes a wiring diagram. Only inactive wiring diagrams can be deleted. Parameters Table 91. API parameters Filter name Description *id Unique identifier of the wiring diagram. string (path) Responses 200 — Response to the wiring upload { "new_object_id": "210:51778176823451697", "id": "wiring_diagram_delete_success", "message": "Wiring diagram deleted successfully.
"id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } GET /wiring-diagrams/{id}/topology Returns the physical topology that is creat
. . . "switch_service_tag": "", "position": 203, "role": "LEAF", "peer_switch_id": null, "mgmt_ip_address": "10.175.18.
default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } GET /wiring-diagrams/summary Lists all imported wiring diagram summaries. API GET /wiring-diagrams/summary Description This API lists all imported wiring diagrams.
"message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } GET /wiring-diagrams/{id}/compatible-intents Returns all compatible intents for this wiring di
"fabric_type": "L3_BGP", "status": "DRAFT" }, { "fabric_intent_id": "41:51776562459279527", "name": "intent-new", "fabric_type": "L3_BGP", "status": "DRAFT" }, { "fabric_intent_id": "41:51776466356076705", "name": "sfd-1579932107739-1580092357060", "fabric_type": "L3_BGP", "status": "APPROVED" } ] } 401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "fi
Responses 200 — Supported switch models { "switch_models": [ { "model": "string", "image_files": "string", ], { "image_files": "string" } } } } 401 — You are not authorized to perform this operation { "new_object_id": "string", "id": "string", "message": "string", "messageParams": [ "string" ], "messages": [ { "id": "string", "message": "string", "field_name": "string", "messageParams": [ "string" ] } ] } default — Success or error response { "new_object_id": "string", "id": "string", "message":
26 Dell EMC support The Dell EMC support site provides documents and tools to help you effectively use Dell EMC equipment and mitigate network outages. Through the support site you can obtain technical information, access software upgrades and patches, download available management software, and manage your open cases. The Dell EMC support site provides integrated, secure access to these services. To access the Dell EMC support site, go to www.dell.com/support/.
Index A about 9 activities 128 alerts 11 authentication 18 C configuration 41 D DELETE /auth/servers/ldap 39 DELETE /auth/users/{userId} 26 DELETE /fabrics-intents/{fabric-intent-id}/edge/connections/{id} 50 DELETE /fabrics-intents/{fabric-intent-id}/host-networks/{hostnetwork-id} 89 DELETE /fabrics-intents/{fabric-intent-id}/interlinks/{interlink-id} 109 DELETE /fabrics-intents/{id} 64 DELETE /image-servers/{id} 99 DELETE /lcm/update-job/{id} 118 DELETE /notifications/smtp 135 DELETE /switch-groups/{id}
POST /alerts/{id}/unack 14 POST /auth/token 18 POST /auth/token/extend 19 POST /auth/users 22 POST /fabric-intents 60 POST /fabrics-intents/{fabric-intent-id}/edge/connections 45 POST /fabrics-intents/{fabric-intent-id}/host-networks 83 POST /fabrics-intents/{fabric-intent-id}/interlinks 102 POST /fabrics-intents/{id}/approval-request 71 POST /fabrics-intents/{id}/cancel-approval 73 POST /fabrics-intents/{id}/check-deploy-impact 67 POST /fabrics-intents/{id}/clone 66 POST /fabrics-intents/{id}/deploy 76 POS