1. RESTful API v2 Specification¶
1.1. Authentication¶
The HTTP/HTTPS authentication should be used, for example with curl
it is possible to specify username and password with
-u <user>:<password>
Using HTTPS is recommended for security. See this post to enable HTTPS.
1.2. Request Format¶
Parameters can be provided both using GET with a query string or POST using JSON (in this case please make sure the correct Content Type is provided). For example, to download data for a host you can use the below curl command line using GET:
curl -s -u admin:admin "http://192.168.1.1:3000/lua/rest/v2/get/host/data.lua?ifid=1&host=192.168.1.2"
or the below curl command line using POST:
curl -s -u admin:admin -H "Content-Type: application/json" -d '{"ifid": "1", "host": "192.168.1.2"}' "http://192.168.1.1:3000/lua/rest/v2/get/host/data.lua"
Please check the Examples section for more examples.
1.3. Response Format¶
An API response is usually represented by a JSON message matching a standard structure. This JSON message consists of an envelope containing:
- a return code rc
- a human-readable string rc_str describing the return code
- the actual response in rsp
Example:
{
"rc": 0
"rc_str": "OK",
"rsp": {
...
}
}
1.4. API¶
1.4.1. Interfaces¶
GET /lua/pro/rest/v2/get/nedge/interfaces.lua
Get nEdge interfaces
- Description: Get all the network interfaces used by nEdge
- Produces: [‘application/json’]
Parameters
Name | Position | Description | Type |
---|
Responses
0 - OK
-3 - NOT_GRANTED
GET /lua/pro/rest/v2/get/nedge/gateways/status.lua
Get gateways status information
- Description: Read information about gateways
- Produces: [‘application/json’]
Parameters
Name | Position | Description | Type |
---|
Responses
0 - OK
-3 - NOT_GRANTED
GET /lua/pro/rest/v2/get/nedge/physical/interface/data.lua
Get interface information
- Description: Read information about an interface
- Produces: [‘application/json’]
Parameters
Name | Position | Description | Type |
---|---|---|---|
ifid | query | Interface identifier | integer |
Responses
0 - OK
-2 - INVALID_INTERFACE
-3 - NOT_GRANTED
GET /lua/pro/rest/v2/get/nedge/dhcp_active_leases.lua
Get DHCP leases
- Description: Read active DHCP elases
- Produces: [‘application/json’]
Parameters
Name | Position | Description | Type |
---|
Responses
0 - OK
-3 - NOT_GRANTED
POST /lua/pro/rest/v2/add/nedge/vlan/add_vlan.lua
Add a VLAN interface
- Description: Add a VLAN interface
- Produces: [‘application/json’]
Parameters
Name | Position | Description | Type |
---|---|---|---|
interface | formData | Physical interface | string |
vlan_id | formData | VLAN ID | string |
Responses
0 - OK
-5 - INVALID_ARGUMENTS
-6 - INTERNAL_ERROR
POST /lua/rest/v2/delete/nedge/vlan/remove_vlan.lua
Delete a VLAN interface
- Description: Remove a VLAN interface
- Produces: [‘application/json’]
Parameters
Name | Position | Description | Type |
---|---|---|---|
delete_vlan | formData | VLAN ID | string |
Responses
0 - OK
-3 - NOT_GRANTED
1.4.2. Users¶
GET /lua/pro/rest/v2/get/nedge/users/status.lua
Get users stats
- Description: Read traffic stats about users
- Produces: [‘application/json’]
Parameters
Name | Position | Description | Type |
---|
Responses
0 - OK
-3 - NOT_GRANTED
1.4.3. Policy¶
POST /lua/pro/rest/v2/set/nedge/interface/state.lua
Enable or disable a WAN interface
- Description: Set the state (enabled or disabled) of a WAN interface
- Produces: [‘application/json’]
Parameters
Name | Position | Description | Type |
---|---|---|---|
interface | formData | WAN interface name | string |
enabled | formData | New interface enable state: ‘true’ or ‘false’ | string |
Responses
0 - OK
-5 - INVALID_ARGUMENTS
-6 - INTERNAL_ERROR
-7 - BAD_FORMAT
GET /lua/pro/rest/v2/get/nedge/policy/default.lua
Get default policy for inter-LAN traffic
- Description: Read default policy for inter-LAN traffic
- Produces: [‘application/json’]
Parameters
Name | Position | Description | Type |
---|
Responses
0 - OK
-3 - NOT_GRANTED
POST /lua/pro/rest/v2/set/nedge/policy/default.lua
Set default policy for inter-LAN traffic
- Description: Set default policy for inter-LAN traffic
- Produces: [‘application/json’]
Parameters
Name | Position | Description | Type |
---|---|---|---|
default_policy | formData | Policy: accept or deny | string |
Responses
0 - OK
-5 - INVALID_ARGUMENTS
-6 - INTERNAL_ERROR
-7 - BAD_FORMAT
GET /lua/pro/rest/v2/get/nedge/policy/rules.lua
Get rules for inter-LAN traffic
- Description: Read all configured rules to allow/deny inter-LAN traffic
- Produces: [‘application/json’]
Parameters
Name | Position | Description | Type |
---|
Responses
0 - OK
-3 - NOT_GRANTED
POST /lua/pro/rest/v2/add/nedge/policy/rule.lua
Add a policy for inter-LAN traffic
- Description: Add a new policy for inter-LAN traffic and return the ID
- Produces: [‘application/json’]
Parameters
Name | Position | Description | Type |
---|---|---|---|
src_type | formData | Source type: ‘cidr’ or ‘interface’ | string |
src_value | formData | Source (e.g. ‘192.168.1.0/24’ or ‘eno2.11’) | string |
dst_type | formData | Destination type: ‘cidr’ or ‘interface’ | string |
dst_value | formData | Destination (e.g. ‘192.168.1.0/24’ or ‘eno2.11’) | string |
bidirectional | formData | Bidirectionsl: ‘true’ or ‘false’ | string |
policy | formData | Policy: ‘accept’ or ‘deny’ | string |
Responses
0 - OK
-5 - INVALID_ARGUMENTS
-6 - INTERNAL_ERROR
POST /lua/pro/rest/v2/edit/nedge/policy/rule.lua
Edit a policy by ID
- Description: Change a policy rule by ID
- Produces: [‘application/json’]
Parameters
Name | Position | Description | Type |
---|---|---|---|
rule_id | formData | Rule ID to edit | string |
new_rule_id | formData | New Rule ID | string |
src_type | formData | Source type: ‘cidr’ or ‘interface’ | string |
src_value | formData | Source (e.g. ‘192.168.1.0/24’ or ‘eno2.11’) | string |
dst_type | formData | Destination type: ‘cidr’ or ‘interface’ | string |
dst_value | formData | Destination (e.g. ‘192.168.1.0/24’ or ‘eno2.11’) | string |
bidirectional | formData | Bidirectionsl: ‘true’ or ‘false’ | string |
policy | formData | Policy: ‘accept’ or ‘deny’ | string |
Responses
0 - OK
-5 - INVALID_ARGUMENTS
-6 - INTERNAL_ERROR
POST /lua/rest/v2/delete/nedge/policy/rule.lua
Delete a policy rule
- Description: Delete a policy rule by id
- Produces: [‘application/json’]
Parameters
Name | Position | Description | Type |
---|---|---|---|
rule_id | formData | Rule ID to delete | string |
Responses
0 - OK
-3 - NOT_GRANTED
GET /lua/pro/rest/v2/get/nedge/forwarders.lua
Get broadcast/multicast forwarding rules
- Description: Read all configured broadcast/multicast forwarding rules
- Produces: [‘application/json’]
Parameters
Name | Position | Description | Type |
---|
Responses
0 - OK
-3 - NOT_GRANTED
POST /lua/pro/rest/v2/add/nedge/forwarder.lua
Add a rule for broadcast/multicast forwarding
- Description: Add a new rule for broadcast/multicast forwarding
- Produces: [‘application/json’]
Parameters
Name | Position | Description | Type |
---|---|---|---|
repeater_type | formData | Repeater type (e.g. ‘custom’) | string |
ip | formData | Multicast IP address | string |
interfaces | formData | Trusted interfaces | string |
interface_details | formData | string | |
restricted_interfaces | formData | Restricted interfaces | string |
restricted_interface_details | formData | string |
Responses
0 - OK
-5 - INVALID_ARGUMENTS
-6 - INTERNAL_ERROR
POST /lua/pro/rest/v2/edit/nedge/forwarder.lua
Edit a broadcast/multicast forwarding rule
- Description: Edit a broadcast/multicast forwarding rules by ID
- Produces: [‘application/json’]
Parameters
Name | Position | Description | Type |
---|---|---|---|
repeater_id | formData | Repeater rule ID | string |
new_repeater_id | formData | New repeater rule ID | string |
repeater_type | formData | Repeater type (e.g. ‘custom’) | string |
ip | formData | Multicast IP address | string |
interfaces | formData | Trusted interfaces | string |
interface_details | formData | string | |
restricted_interfaces | formData | Restricted interfaces | string |
restricted_interface_details | formData | string |
Responses
0 - OK
-5 - INVALID_ARGUMENTS
-6 - INTERNAL_ERROR
POST /lua/rest/v2/delete/nedge/forwarder.lua
Delete multicast/broadcast forwarder rule
- Description: Delete multicast/broadcast forwarder rule by id
- Produces: [‘application/json’]
Parameters
Name | Position | Description | Type |
---|---|---|---|
repeater_id | formData | Repeater rule ID | string |
Responses
0 - OK
-3 - NOT_GRANTED