{
  "#mode": "routed-pppoe",
  "supported_modes": [
    {
      "name": "routed-dhcp",
      "description": "DHCP",
      "supported_args": [
        {
          "name": "vlanid",
          "description": "VLAN ID",
          "required": false,
          "type": "integer"
        },
        {
          "name": "dns_servers",
          "description": "DNS Servers",
          "required": false,
          "type": "string"
        }
      ]
    },
    {
      "name": "routed-pppoe",
      "description": "PPPoE",
      "supported_args": [
        {
          "name": "username",
          "description": "PPPoE Username",
          "required": true,
          "type": "string",
          "#value": "TestUser"
        },
        {
          "name": "password",
          "description": "PPPoE Password",
          "required": true,
          "type": "string",
          "#value": "TestPassword"
        },
        {
          "name": "vlanid",
          "description": "VLAN ID",
          "required": false,
          "type": "integer"
        },
        {
          "name": "mtu",
          "description": "MTU",
          "required": false,
          "type": "integer"
        },
        {
          "name": "dns_servers",
          "description": "DNS Servers",
          "required": false,
          "type": "string"
        }
      ]
    },
    {
      "name": "routed-static",
      "description": "Static",
      "supported_args": [
        {
          "name": "ipaddr",
          "description": "IP Address",
          "required": true,
          "type": "string",
          "#value": "93.21.0.104"
        },
        {
          "name": "netmask",
          "description": "Subnet Mask",
          "required": true,
          "type": "string",
          "#value": "255.255.255.0"
        },
        {
          "name": "gateway",
          "description": "Default Gateway",
          "required": true,
          "type": "string",
          "#value": "93.21.0.1"
        },
        {
          "name": "vlanid",
          "description": "VLAN ID",
          "required": false,
          "type": "integer"
        },
        {
          "name": "dns_servers",
          "description": "DNS Servers",
          "required": false,
          "type": "string"
        }
      ]
    },
    {
      "name": "bridged",
      "description": "Bridged mode with optional VLAN and Q-in-Q support, the bridge will have a DHCP v4 and v6 client",
      "supported_args": [
        {
          "name": "lan_cvlanid",
          "description": "LAN CVLAN ID, if present, 8021q set up will be done for LAN ports with this VID",
          "required": false,
          "type": "integer"
        },
        {
          "name": "lan_svlanid",
          "description": "LAN SVLAN ID, if present, 8021ad set up will be done for LAN ports with this VID",
          "required": false,
          "type": "integer"
        },
        {
          "name": "wan_cvlanid",
          "description": "WAN CVLAN ID, if present, 8021q set up will be done for WAN port with this VID",
          "required": false,
          "type": "integer"
        },
        {
          "name": "wan_svlanid",
          "description": "WAN SVLAN ID, if present, 8021ad set up will be done for WAN port with this VID",
          "required": false,
          "type": "integer"
        },
        {
          "name": "port_list",
          "description": "LAN ports that will be bridged with wan, example: 'LAN1,LAN2', unset value means all ports",
          "required": false,
          "type": "string"
        }
      ]
    },
    {
      "name": "routed-vlan-per-service",
      "description": "routed configuration with separate vlans for internet and iptv",
      "supported_args": [
        {
          "name": "inet_vlanid",
          "description": "Internet VLAN ID",
          "required": true,
          "type": "integer"
        },
        {
          "name": "iptv_vlanid",
          "description": "IPTV VLAN ID",
          "required": true,
          "type": "integer"
        },
        {
          "name": "mgmt_vlanid",
          "description": "Management VLAN ID",
          "required": false,
          "type": "integer"
        },
        {
          "name": "dns_servers",
          "description": "DNS Servers",
          "required": false,
          "type": "string"
        },
        {
          "name": "mtu",
          "description": "MTU",
          "required": false,
          "type": "integer"
        }
      ]
    },
    {
      "name": "routed-mac-per-service",
      "description": "routed configuration with separate macvlans for internet and iptv",
      "supported_args": [
        {
          "name": "inet_mac_addr",
          "description": "Internet MAC Address",
          "required": true,
          "type": "string"
        },
        {
          "name": "iptv_mac_addr",
          "description": "IPTV MAC Address",
          "required": true,
          "type": "string"
        },
        {
          "name": "mgmt_mac_addr",
          "description": "Management MAC Address",
          "required": false,
          "type": "string"
        },
        {
          "name": "dns_servers",
          "description": "DNS Servers",
          "required": false,
          "type": "string"
        },
        {
          "name": "mtu",
          "description": "MTU",
          "required": false,
          "type": "integer"
        }
      ]
    }
  ]
}
