{ "swagger": "2.0", "info": { "version": "6.3", "title": "nEdge", "description": "nEdge RESTful API documentation" }, "tags": [ { "name": "Interfaces", "description": "Everything about interfaces" }, { "name": "Users", "description": "Everything about nEdge users" }, { "name": "Policy", "description": "Traffic enforcement policies" } ], "schemes": [ "https", "http" ], "paths": { "/lua/pro/rest/v2/get/nedge/interfaces.lua": { "get": { "tags": [ "Interfaces" ], "summary": "Get nEdge interfaces", "description": "Get all the network interfaces used by nEdge", "operationId": "get_nedge_interfaces", "produces": [ "application/json" ], "parameters": [ ], "responses": { "0": { "description": "OK" }, "-3": { "description": "NOT_GRANTED" } } } }, "/lua/pro/rest/v2/get/nedge/gateways/status.lua": { "get": { "tags": [ "Interfaces" ], "summary": "Get gateways status information", "description": "Read information about gateways", "operationId": "get_nedge_gateways_status", "produces": [ "application/json" ], "parameters": [ ], "responses": { "0": { "description": "OK" }, "-3": { "description": "NOT_GRANTED" } } } }, "/lua/pro/rest/v2/set/nedge/interface/state.lua": { "post": { "tags": [ "Policy" ], "summary": "Enable or disable a WAN interface", "description": "Set the state (enabled or disabled) of a WAN interface", "operationId": "set_nedge_interface_state", "produces": [ "application/json" ], "parameters": [ { "name": "interface", "in": "formData", "description": "WAN interface name", "required": true, "type": "string" }, { "name": "enabled", "in": "formData", "description": "New interface enable state: 'true' or 'false'", "required": true, "type": "string" } ], "responses": { "0": { "description": "OK" }, "-5": { "description": "INVALID_ARGUMENTS" }, "-6": { "description": "INTERNAL_ERROR" }, "-7": { "description": "BAD_FORMAT" } } } }, "/lua/pro/rest/v2/get/nedge/physical/interface/data.lua": { "get": { "tags": [ "Interfaces" ], "summary": "Get interface information", "description": "Read information about an interface", "operationId": "get_nedge_physical_interface_data", "produces": [ "application/json" ], "parameters": [ { "name": "ifid", "in": "query", "description": "Interface identifier", "required": true, "type": "integer", "format": "int32" } ], "responses": { "0": { "description": "OK" }, "-2": { "description": "INVALID_INTERFACE" }, "-3": { "description": "NOT_GRANTED" } } } }, "/lua/pro/rest/v2/get/nedge/dhcp_active_leases.lua": { "get": { "tags": [ "Interfaces" ], "summary": "Get DHCP leases", "description": "Read active DHCP elases", "operationId": "get_nedge_dhcp_active_leases", "produces": [ "application/json" ], "parameters": [ ], "responses": { "0": { "description": "OK" }, "-3": { "description": "NOT_GRANTED" } } } }, "/lua/pro/rest/v2/get/nedge/users/status.lua": { "get": { "tags": [ "Users" ], "summary": "Get users stats", "description": "Read traffic stats about users", "operationId": "get_nedge_users_status", "produces": [ "application/json" ], "parameters": [ ], "responses": { "0": { "description": "OK" }, "-3": { "description": "NOT_GRANTED" } } } }, "/lua/pro/rest/v2/get/nedge/policy/default.lua": { "get": { "tags": [ "Policy" ], "summary": "Get default policy for inter-LAN traffic ", "description": "Read default policy for inter-LAN traffic", "operationId": "get_nedge_policy_default", "produces": [ "application/json" ], "parameters": [ ], "responses": { "0": { "description": "OK" }, "-3": { "description": "NOT_GRANTED" } } } }, "/lua/pro/rest/v2/set/nedge/policy/default.lua": { "post": { "tags": [ "Policy" ], "summary": "Set default policy for inter-LAN traffic", "description": "Set default policy for inter-LAN traffic", "operationId": "set_nedge_policy_default", "produces": [ "application/json" ], "parameters": [ { "name": "default_policy", "in": "formData", "description": "Policy: accept or deny", "required": true, "type": "string" } ], "responses": { "0": { "description": "OK" }, "-5": { "description": "INVALID_ARGUMENTS" }, "-6": { "description": "INTERNAL_ERROR" }, "-7": { "description": "BAD_FORMAT" } } } }, "/lua/pro/rest/v2/get/nedge/policy/rules.lua": { "get": { "tags": [ "Policy" ], "summary": "Get rules for inter-LAN traffic", "description": "Read all configured rules to allow/deny inter-LAN traffic", "operationId": "get_nedge_policy_rules", "produces": [ "application/json" ], "parameters": [ ], "responses": { "0": { "description": "OK" }, "-3": { "description": "NOT_GRANTED" } } } }, "/lua/pro/rest/v2/add/nedge/policy/rule.lua": { "post": { "tags": [ "Policy" ], "summary": "Add a policy for inter-LAN traffic", "description": "Add a new policy for inter-LAN traffic and return the ID", "operationId": "add_nedge_policy_rule", "produces": [ "application/json" ], "parameters": [ { "name": "src_type", "in": "formData", "description": "Source type: 'cidr' or 'interface'", "required": true, "type": "string" }, { "name": "src_value", "in": "formData", "description": "Source (e.g. '192.168.1.0/24' or 'eno2.11')", "required": true, "type": "string" }, { "name": "dst_type", "in": "formData", "description": "Destination type: 'cidr' or 'interface'", "required": true, "type": "string" }, { "name": "dst_value", "in": "formData", "description": "Destination (e.g. '192.168.1.0/24' or 'eno2.11')", "required": true, "type": "string" }, { "name": "bidirectional", "in": "formData", "description": "Bidirectionsl: 'true' or 'false'", "required": false, "type": "string" }, { "name": "policy", "in": "formData", "description": "Policy: 'accept' or 'deny'", "required": true, "type": "string" } ], "responses": { "0": { "description": "OK" }, "-5": { "description": "INVALID_ARGUMENTS" }, "-6": { "description": "INTERNAL_ERROR" } } } }, "/lua/pro/rest/v2/edit/nedge/policy/rule.lua": { "post": { "tags": [ "Policy" ], "summary": "Edit a policy by ID", "description": "Change a policy rule by ID", "operationId": "edit_nedge_policy_rule", "produces": [ "application/json" ], "parameters": [ { "name": "rule_id", "in": "formData", "description": "Rule ID to edit", "required": true, "type": "string" }, { "name": "new_rule_id", "in": "formData", "description": "New Rule ID", "required": false, "type": "string" }, { "name": "src_type", "in": "formData", "description": "Source type: 'cidr' or 'interface'", "required": false, "type": "string" }, { "name": "src_value", "in": "formData", "description": "Source (e.g. '192.168.1.0/24' or 'eno2.11')", "required": false, "type": "string" }, { "name": "dst_type", "in": "formData", "description": "Destination type: 'cidr' or 'interface'", "required": false, "type": "string" }, { "name": "dst_value", "in": "formData", "description": "Destination (e.g. '192.168.1.0/24' or 'eno2.11')", "required": false, "type": "string" }, { "name": "bidirectional", "in": "formData", "description": "Bidirectionsl: 'true' or 'false'", "required": false, "type": "string" }, { "name": "policy", "in": "formData", "description": "Policy: 'accept' or 'deny'", "required": false, "type": "string" } ], "responses": { "0": { "description": "OK" }, "-5": { "description": "INVALID_ARGUMENTS" }, "-6": { "description": "INTERNAL_ERROR" } } } }, "/lua/rest/v2/delete/nedge/policy/rule.lua": { "post": { "tags": [ "Policy" ], "summary": "Delete a policy rule", "description": "Delete a policy rule by id", "operationId": "delete_nedge_policy_rule", "produces": [ "application/json" ], "parameters": [ { "name": "rule_id", "in": "formData", "description": "Rule ID to delete", "required": true, "type": "string" } ], "responses": { "0": { "description": "OK" }, "-3": { "description": "NOT_GRANTED" } } } }, "/lua/pro/rest/v2/get/nedge/forwarders.lua": { "get": { "tags": [ "Policy" ], "summary": "Get broadcast/multicast forwarding rules", "description": "Read all configured broadcast/multicast forwarding rules", "operationId": "get_nedge_forwarders", "produces": [ "application/json" ], "parameters": [ ], "responses": { "0": { "description": "OK" }, "-3": { "description": "NOT_GRANTED" } } } }, "/lua/pro/rest/v2/add/nedge/forwarder.lua": { "post": { "tags": [ "Policy" ], "summary": "Add a rule for broadcast/multicast forwarding", "description": "Add a new rule for broadcast/multicast forwarding", "operationId": "add_nedge_forwarder", "produces": [ "application/json" ], "parameters": [ { "name": "repeater_type", "in": "formData", "description": "Repeater type (e.g. 'custom')", "required": true, "type": "string" }, { "name": "ip", "in": "formData", "description": "Multicast IP address", "required": true, "type": "string" }, { "name": "interfaces", "in": "formData", "description": "Trusted interfaces", "required": true, "type": "string" }, { "name": "interface_details", "in": "formData", "description": "", "required": true, "type": "string" }, { "name": "restricted_interfaces", "in": "formData", "description": "Restricted interfaces", "required": true, "type": "string" }, { "name": "restricted_interface_details", "in": "formData", "description": "", "required": true, "type": "string" } ], "responses": { "0": { "description": "OK" }, "-5": { "description": "INVALID_ARGUMENTS" }, "-6": { "description": "INTERNAL_ERROR" } } } }, "/lua/pro/rest/v2/edit/nedge/forwarder.lua": { "post": { "tags": [ "Policy" ], "summary": "Edit a broadcast/multicast forwarding rule", "description": "Edit a broadcast/multicast forwarding rules by ID", "operationId": "edit_nedge_forwarder", "produces": [ "application/json" ], "parameters": [ { "name": "repeater_id", "in": "formData", "description": "Repeater rule ID", "required": true, "type": "string" }, { "name": "new_repeater_id", "in": "formData", "description": "New repeater rule ID", "required": true, "type": "string" }, { "name": "repeater_type", "in": "formData", "description": "Repeater type (e.g. 'custom')", "required": true, "type": "string" }, { "name": "ip", "in": "formData", "description": "Multicast IP address", "required": true, "type": "string" }, { "name": "interfaces", "in": "formData", "description": "Trusted interfaces", "required": true, "type": "string" }, { "name": "interface_details", "in": "formData", "description": "", "required": true, "type": "string" }, { "name": "restricted_interfaces", "in": "formData", "description": "Restricted interfaces", "required": true, "type": "string" }, { "name": "restricted_interface_details", "in": "formData", "description": "", "required": true, "type": "string" } ], "responses": { "0": { "description": "OK" }, "-5": { "description": "INVALID_ARGUMENTS" }, "-6": { "description": "INTERNAL_ERROR" } } } }, "/lua/rest/v2/delete/nedge/forwarder.lua": { "post": { "tags": [ "Policy" ], "summary": "Delete multicast/broadcast forwarder rule", "description": "Delete multicast/broadcast forwarder rule by id", "operationId": "delete_nedge_forwarder", "produces": [ "application/json" ], "parameters": [ { "name": "repeater_id", "in": "formData", "description": "Repeater rule ID", "required": true, "type": "string" } ], "responses": { "0": { "description": "OK" }, "-3": { "description": "NOT_GRANTED" } } } }, "/lua/pro/rest/v2/add/nedge/vlan/add_vlan.lua": { "post": { "tags": [ "Interfaces" ], "summary": "Add a VLAN interface", "description": "Add a VLAN interface", "operationId": "add_nedge_vlan", "produces": [ "application/json" ], "parameters": [ { "name": "interface", "in": "formData", "description": "Physical interface", "required": true, "type": "string" }, { "name": "vlan_id", "in": "formData", "description": "VLAN ID", "required": true, "type": "string" } ], "responses": { "0": { "description": "OK" }, "-5": { "description": "INVALID_ARGUMENTS" }, "-6": { "description": "INTERNAL_ERROR" } } } }, "/lua/rest/v2/delete/nedge/vlan/remove_vlan.lua": { "post": { "tags": [ "Interfaces" ], "summary": "Delete a VLAN interface", "description": "Remove a VLAN interface", "operationId": "delete_nedge_vlan", "produces": [ "application/json" ], "parameters": [ { "name": "delete_vlan", "in": "formData", "description": "VLAN ID", "required": true, "type": "string" } ], "responses": { "0": { "description": "OK" }, "-3": { "description": "NOT_GRANTED" } } } } } }