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