North Bound API¶
In order to access the flexiManage North Bound API, it requires to generate an access key. An access key is generated per account and organization from the Account -> Access Keys menu.
Click on the “Add Access Key” button and fill in the Name and Organization for the access key.
Difference between Normal Bearer Token And Access Keys¶
On normal user operations, the UI remembers the last organization and permission used. Access Keys, get permission to the entire account and can access any organization with the same access key. This mandate to specifiy the organization to be used on some of the API calls. To see the list of organizations under an account, use the GET organizations API
Swagger API¶
The flexiWAN North Bound API of the flexiManage is represented by accessing the swagger API in https://manage.flexiwan.com/api-docs
Once an access key created, it can be used as bearer token authentication by adding an “authentication” header for the REST API. To use the access with the swagger API, click on the Authorize button at the top of the page and copy & paste the Access Key in the “bearerAuth” field.
Apply API¶
Apply API is added to allow dynamic integration of new device configurations. Apply to multiple devices can be found in https://manage.flexiwan.com/api-docs/#/Devices/devicesApplyPOST Apply to a specific device can be found in https://manage.flexiwan.com/api-docs/#/Devices/devicesIdApplyPOST In most cases it result with creating jobs that sent to devices. The created jobs returned in the response body as well as a link in the Locaion header to follow the created jobs status. The apply API is used for some of the existing functions. Below are few examples:
Create tunnels:
This example calls to devices apply to create a tunnel between two devices with no path labels.
{ "method": "tunnels", "devices": { "63054504ceb73f58528ab912": true, "63054513ceb73f58528ab988": true }, "meta": { "pathLabels": [], "tunnelType": "site-to-site", "topology": "fullMesh", "hub": "", "advancedOptions": {} } }
For using a path label, add the path label IDs in the pathLabels list, for example:
"pathLabels": [ "5e8f465d622b105449e60828" ],
For cost, or other advanced parameters, use:
"advancedOptions": { "mtu": "1500", "mssClamp": "yes", "ospfCost": "100", "routing": "ospf" }
Delete tunnels
This example calls to devices apply to delete a tunnel by ID
{"method":"deltunnels","tunnels":{"5e4c2aba71b763362c099fb2":true}}
Run device:
This example is applied for a specific device to run it
{"method":"start"}
Stop device:
This example is applied for a specific device to stop it
{"method":"stop"}
Upgrade devices:
This example upgrade software version for two devices
{"method":"upgrade","devices":{"5e4c1fee3fce30225c612ee8":true,"5e4c2a8b3fce30225c613071":true}}
Some of the REST APIs call apply internally such as:
Static routes
DHCP configuratino
Modify device