mirror of
https://github.com/ansible-collections/community.routeros.git
synced 2025-06-21 09:35:45 +02:00
* Support more paths. * Forgot comma. * Adjust tests. * power-cycle-ping-address and power-cycle-ping-timeout can be unset Co-authored-by: Tomas Herfert <68421396+therfert@users.noreply.github.com> Co-authored-by: Tomas Herfert <68421396+therfert@users.noreply.github.com>
1962 lines
74 KiB
Python
1962 lines
74 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Copyright (c) 2022, Felix Fontein (@felixfontein) <felix@fontein.de>
|
|
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
# The data inside here is private to this collection. If you use this from outside the collection,
|
|
# you are on your own. There can be random changes to its format even in bugfix releases!
|
|
|
|
from __future__ import absolute_import, division, print_function
|
|
__metaclass__ = type
|
|
|
|
|
|
class APIData(object):
|
|
def __init__(self, primary_keys=None,
|
|
stratify_keys=None,
|
|
has_identifier=False,
|
|
single_value=False,
|
|
unknown_mechanism=False,
|
|
fully_understood=False,
|
|
fixed_entries=False,
|
|
fields=None):
|
|
if sum([primary_keys is not None, stratify_keys is not None, has_identifier, single_value, unknown_mechanism]) > 1:
|
|
raise ValueError('primary_keys, stratify_keys, has_identifier, single_value, and unknown_mechanism are mutually exclusive')
|
|
if unknown_mechanism and fully_understood:
|
|
raise ValueError('unknown_mechanism and fully_understood cannot be combined')
|
|
self.primary_keys = primary_keys
|
|
self.stratify_keys = stratify_keys
|
|
self.has_identifier = has_identifier
|
|
self.single_value = single_value
|
|
self.unknown_mechanism = unknown_mechanism
|
|
self.fully_understood = fully_understood
|
|
self.fixed_entries = fixed_entries
|
|
if fixed_entries and primary_keys is None:
|
|
raise ValueError('fixed_entries can only be used with primary_keys')
|
|
if fields is None:
|
|
raise ValueError('fields must be provided')
|
|
self.fields = fields
|
|
if primary_keys:
|
|
for pk in primary_keys:
|
|
if pk not in fields:
|
|
raise ValueError('Primary key {pk} must be in fields!'.format(pk=pk))
|
|
if stratify_keys:
|
|
for sk in stratify_keys:
|
|
if sk not in fields:
|
|
raise ValueError('Stratify key {sk} must be in fields!'.format(sk=sk))
|
|
|
|
|
|
class KeyInfo(object):
|
|
def __init__(self, _dummy=None, can_disable=False, remove_value=None, absent_value=None, default=None, required=False, automatically_computed_from=None):
|
|
if _dummy is not None:
|
|
raise ValueError('KeyInfo() does not have positional arguments')
|
|
if sum([required, default is not None, automatically_computed_from is not None, can_disable]) > 1:
|
|
raise ValueError('required, default, automatically_computed_from, and can_disable are mutually exclusive')
|
|
if not can_disable and remove_value is not None:
|
|
raise ValueError('remove_value can only be specified if can_disable=True')
|
|
if absent_value is not None and any([default is not None, automatically_computed_from is not None, can_disable]):
|
|
raise ValueError('absent_value can not be combined with default, automatically_computed_from, can_disable=True, or absent_value')
|
|
self.can_disable = can_disable
|
|
self.remove_value = remove_value
|
|
self.automatically_computed_from = automatically_computed_from
|
|
self.default = default
|
|
self.required = required
|
|
self.absent_value = absent_value
|
|
|
|
|
|
def split_path(path):
|
|
return path.split()
|
|
|
|
|
|
def join_path(path):
|
|
return ' '.join(path)
|
|
|
|
|
|
# How to obtain this information:
|
|
# 1. Run `/export verbose` in the CLI;
|
|
# 2. All attributes listed there go into the `fields` list;
|
|
# attributes which can have a `!` ahead should have `canDisable=True`
|
|
# 3. All bold attributes go into the `primary_keys` list -- this is not always true!
|
|
|
|
PATHS = {
|
|
('interface', 'bridge'): APIData(
|
|
# fully_understood=True,
|
|
primary_keys=('name', ),
|
|
fields={
|
|
'admin-mac': KeyInfo(),
|
|
'ageing-time': KeyInfo(default='5m'),
|
|
'arp': KeyInfo(default='enabled'),
|
|
'arp-timeout': KeyInfo(default='auto'),
|
|
'auto-mac': KeyInfo(default=False),
|
|
'comment': KeyInfo(can_disable=True, remove_value=''),
|
|
'dhcp-snooping': KeyInfo(default=False),
|
|
'disabled': KeyInfo(default=False),
|
|
'fast-forward': KeyInfo(default=True),
|
|
'forward-delay': KeyInfo(default='15s'),
|
|
'igmp-snooping': KeyInfo(default=False),
|
|
'max-message-age': KeyInfo(default='20s'),
|
|
'mtu': KeyInfo(default='auto'),
|
|
'name': KeyInfo(),
|
|
'priority': KeyInfo(default='0x8000'),
|
|
'protocol-mode': KeyInfo(default='rstp'),
|
|
'transmit-hold-count': KeyInfo(default=6),
|
|
'vlan-filtering': KeyInfo(default=False),
|
|
},
|
|
),
|
|
('interface', 'ethernet'): APIData(
|
|
fixed_entries=True,
|
|
fully_understood=True,
|
|
primary_keys=('default-name', ),
|
|
fields={
|
|
'default-name': KeyInfo(),
|
|
'advertise': KeyInfo(),
|
|
'arp': KeyInfo(default='enabled'),
|
|
'arp-timeout': KeyInfo(default='auto'),
|
|
'auto-negotiation': KeyInfo(default=True),
|
|
'bandwidth': KeyInfo(default='unlimited/unlimited'),
|
|
'combo-mode': KeyInfo(can_disable=True),
|
|
'comment': KeyInfo(can_disable=True, remove_value=''),
|
|
'disabled': KeyInfo(default=False),
|
|
'fec-mode': KeyInfo(can_disable=True),
|
|
'full-duplex': KeyInfo(default=True),
|
|
'l2mtu': KeyInfo(default=1598),
|
|
'loop-protect': KeyInfo(default='default'),
|
|
'loop-protect-disable-time': KeyInfo(default='5m'),
|
|
'loop-protect-send-interval': KeyInfo(default='5s'),
|
|
'mac-address': KeyInfo(),
|
|
'mdix-enable': KeyInfo(),
|
|
'mtu': KeyInfo(default=1500),
|
|
'name': KeyInfo(),
|
|
'orig-mac-address': KeyInfo(),
|
|
'poe-out': KeyInfo(can_disable=True),
|
|
'poe-priority': KeyInfo(can_disable=True),
|
|
'poe-voltage': KeyInfo(can_disable=True),
|
|
'power-cycle-interval': KeyInfo(),
|
|
'power-cycle-ping-address': KeyInfo(can_disable=True),
|
|
'power-cycle-ping-enabled': KeyInfo(),
|
|
'power-cycle-ping-timeout': KeyInfo(can_disable=True),
|
|
'rx-flow-control': KeyInfo(default='off'),
|
|
'sfp-rate-select': KeyInfo(default='high'),
|
|
'sfp-shutdown-temperature': KeyInfo(default='95C'),
|
|
'speed': KeyInfo(),
|
|
'tx-flow-control': KeyInfo(default='off'),
|
|
},
|
|
),
|
|
('interface', 'list'): APIData(
|
|
primary_keys=('name', ),
|
|
fully_understood=True,
|
|
fields={
|
|
'comment': KeyInfo(can_disable=True, remove_value=''),
|
|
'exclude': KeyInfo(),
|
|
'include': KeyInfo(),
|
|
'name': KeyInfo(),
|
|
},
|
|
),
|
|
('interface', 'list', 'member'): APIData(
|
|
primary_keys=('list', 'interface', ),
|
|
fully_understood=True,
|
|
fields={
|
|
'comment': KeyInfo(can_disable=True, remove_value=''),
|
|
'interface': KeyInfo(),
|
|
'list': KeyInfo(),
|
|
'disabled': KeyInfo(default=False),
|
|
},
|
|
),
|
|
('interface', 'lte', 'apn'): APIData(
|
|
unknown_mechanism=True,
|
|
# primary_keys=('default', ),
|
|
fields={
|
|
'default': KeyInfo(),
|
|
'add-default-route': KeyInfo(),
|
|
'apn': KeyInfo(),
|
|
'default-route-distance': KeyInfo(),
|
|
'name': KeyInfo(),
|
|
'use-peer-dns': KeyInfo(),
|
|
},
|
|
),
|
|
('interface', 'wireless', 'security-profiles'): APIData(
|
|
unknown_mechanism=True,
|
|
# primary_keys=('default', ),
|
|
fields={
|
|
'default': KeyInfo(),
|
|
'authentication-types': KeyInfo(),
|
|
'disable-pmkid': KeyInfo(),
|
|
'eap-methods': KeyInfo(),
|
|
'group-ciphers': KeyInfo(),
|
|
'group-key-update': KeyInfo(),
|
|
'interim-update': KeyInfo(),
|
|
'management-protection': KeyInfo(),
|
|
'management-protection-key': KeyInfo(),
|
|
'mode': KeyInfo(),
|
|
'mschapv2-password': KeyInfo(),
|
|
'mschapv2-username': KeyInfo(),
|
|
'name': KeyInfo(),
|
|
'radius-called-format': KeyInfo(),
|
|
'radius-eap-accounting': KeyInfo(),
|
|
'radius-mac-accounting': KeyInfo(),
|
|
'radius-mac-authentication': KeyInfo(),
|
|
'radius-mac-caching': KeyInfo(),
|
|
'radius-mac-format': KeyInfo(),
|
|
'radius-mac-mode': KeyInfo(),
|
|
'static-algo-0': KeyInfo(),
|
|
'static-algo-1': KeyInfo(),
|
|
'static-algo-2': KeyInfo(),
|
|
'static-algo-3': KeyInfo(),
|
|
'static-key-0': KeyInfo(),
|
|
'static-key-1': KeyInfo(),
|
|
'static-key-2': KeyInfo(),
|
|
'static-key-3': KeyInfo(),
|
|
'static-sta-private-algo': KeyInfo(),
|
|
'static-sta-private-key': KeyInfo(),
|
|
'static-transmit-key': KeyInfo(),
|
|
'supplicant-identity': KeyInfo(),
|
|
'tls-certificate': KeyInfo(),
|
|
'tls-mode': KeyInfo(),
|
|
'unicast-ciphers': KeyInfo(),
|
|
'wpa-pre-shared-key': KeyInfo(),
|
|
'wpa2-pre-shared-key': KeyInfo(),
|
|
},
|
|
),
|
|
('ip', 'hotspot', 'profile'): APIData(
|
|
unknown_mechanism=True,
|
|
# primary_keys=('default', ),
|
|
fields={
|
|
'default': KeyInfo(),
|
|
'dns-name': KeyInfo(),
|
|
'hotspot-address': KeyInfo(),
|
|
'html-directory': KeyInfo(),
|
|
'html-directory-override': KeyInfo(),
|
|
'http-cookie-lifetime': KeyInfo(),
|
|
'http-proxy': KeyInfo(),
|
|
'login-by': KeyInfo(),
|
|
'name': KeyInfo(),
|
|
'rate-limit': KeyInfo(),
|
|
'smtp-server': KeyInfo(),
|
|
'split-user-domain': KeyInfo(),
|
|
'use-radius': KeyInfo(),
|
|
},
|
|
),
|
|
('ip', 'hotspot', 'user', 'profile'): APIData(
|
|
unknown_mechanism=True,
|
|
# primary_keys=('default', ),
|
|
fields={
|
|
'default': KeyInfo(),
|
|
'add-mac-cookie': KeyInfo(),
|
|
'address-list': KeyInfo(),
|
|
'idle-timeout': KeyInfo(),
|
|
'insert-queue-before': KeyInfo(can_disable=True),
|
|
'keepalive-timeout': KeyInfo(),
|
|
'mac-cookie-timeout': KeyInfo(),
|
|
'name': KeyInfo(),
|
|
'parent-queue': KeyInfo(can_disable=True),
|
|
'queue-type': KeyInfo(can_disable=True),
|
|
'shared-users': KeyInfo(),
|
|
'status-autorefresh': KeyInfo(),
|
|
'transparent-proxy': KeyInfo(),
|
|
},
|
|
),
|
|
('ip', 'ipsec', 'mode-config'): APIData(
|
|
unknown_mechanism=True,
|
|
# primary_keys=('default', ),
|
|
fields={
|
|
'default': KeyInfo(),
|
|
'name': KeyInfo(),
|
|
'responder': KeyInfo(),
|
|
'use-responder-dns': KeyInfo(),
|
|
},
|
|
),
|
|
('ip', 'ipsec', 'policy', 'group'): APIData(
|
|
unknown_mechanism=True,
|
|
# primary_keys=('default', ),
|
|
fields={
|
|
'default': KeyInfo(),
|
|
'name': KeyInfo(),
|
|
},
|
|
),
|
|
('ip', 'ipsec', 'profile'): APIData(
|
|
unknown_mechanism=True,
|
|
# primary_keys=('default', ),
|
|
fields={
|
|
'default': KeyInfo(),
|
|
'dh-group': KeyInfo(),
|
|
'dpd-interval': KeyInfo(),
|
|
'dpd-maximum-failures': KeyInfo(),
|
|
'enc-algorithm': KeyInfo(),
|
|
'hash-algorithm': KeyInfo(),
|
|
'lifetime': KeyInfo(),
|
|
'name': KeyInfo(),
|
|
'nat-traversal': KeyInfo(),
|
|
'proposal-check': KeyInfo(),
|
|
},
|
|
),
|
|
('ip', 'ipsec', 'proposal'): APIData(
|
|
unknown_mechanism=True,
|
|
# primary_keys=('default', ),
|
|
fields={
|
|
'default': KeyInfo(),
|
|
'auth-algorithms': KeyInfo(),
|
|
'disabled': KeyInfo(),
|
|
'enc-algorithms': KeyInfo(),
|
|
'lifetime': KeyInfo(),
|
|
'name': KeyInfo(),
|
|
'pfs-group': KeyInfo(),
|
|
},
|
|
),
|
|
('ip', 'pool'): APIData(
|
|
fully_understood=True,
|
|
primary_keys=('name', ),
|
|
fields={
|
|
'name': KeyInfo(),
|
|
'ranges': KeyInfo(),
|
|
},
|
|
),
|
|
('ip', 'route'): APIData(
|
|
fully_understood=True,
|
|
fields={
|
|
'check-gateway': KeyInfo(can_disable=True),
|
|
'comment': KeyInfo(can_disable=True, remove_value=''),
|
|
'disabled': KeyInfo(default=False),
|
|
'distance': KeyInfo(),
|
|
'dst-address': KeyInfo(),
|
|
'gateway': KeyInfo(required=True),
|
|
'route-tag': KeyInfo(can_disable=True),
|
|
'routing-mark': KeyInfo(can_disable=True),
|
|
'scope': KeyInfo(),
|
|
'target-scope': KeyInfo(),
|
|
},
|
|
),
|
|
('ip', 'route', 'vrf'): APIData(
|
|
fully_understood=True,
|
|
primary_keys=('routing-mark', ),
|
|
fields={
|
|
'comment': KeyInfo(can_disable=True, remove_value=''),
|
|
'disabled': KeyInfo(default=False),
|
|
'interfaces': KeyInfo(),
|
|
'routing-mark': KeyInfo(),
|
|
},
|
|
),
|
|
('ip', 'dhcp-server'): APIData(
|
|
fully_understood=True,
|
|
primary_keys=('name', ),
|
|
fields={
|
|
'address-pool': KeyInfo(required=True),
|
|
'authoritative': KeyInfo(default=True),
|
|
'disabled': KeyInfo(default=False),
|
|
'interface': KeyInfo(required=True),
|
|
'lease-script': KeyInfo(default=''),
|
|
'lease-time': KeyInfo(default='10m'),
|
|
'name': KeyInfo(),
|
|
'use-radius': KeyInfo(default=False),
|
|
},
|
|
),
|
|
('routing', 'ospf', 'instance'): APIData(
|
|
unknown_mechanism=True,
|
|
# primary_keys=('default', ),
|
|
fields={
|
|
'default': KeyInfo(),
|
|
'disabled': KeyInfo(),
|
|
'distribute-default': KeyInfo(),
|
|
'domain-id': KeyInfo(can_disable=True),
|
|
'domain-tag': KeyInfo(can_disable=True),
|
|
'in-filter': KeyInfo(),
|
|
'metric-bgp': KeyInfo(),
|
|
'metric-connected': KeyInfo(),
|
|
'metric-default': KeyInfo(),
|
|
'metric-other-ospf': KeyInfo(),
|
|
'metric-rip': KeyInfo(),
|
|
'metric-static': KeyInfo(),
|
|
'mpls-te-area': KeyInfo(can_disable=True),
|
|
'mpls-te-router-id': KeyInfo(can_disable=True),
|
|
'name': KeyInfo(),
|
|
'out-filter': KeyInfo(),
|
|
'redistribute-bgp': KeyInfo(),
|
|
'redistribute-connected': KeyInfo(),
|
|
'redistribute-other-ospf': KeyInfo(),
|
|
'redistribute-rip': KeyInfo(),
|
|
'redistribute-static': KeyInfo(),
|
|
'router-id': KeyInfo(),
|
|
'routing-table': KeyInfo(can_disable=True),
|
|
'use-dn': KeyInfo(can_disable=True),
|
|
},
|
|
),
|
|
('routing', 'ospf', 'area'): APIData(
|
|
unknown_mechanism=True,
|
|
# primary_keys=('default', ),
|
|
fields={
|
|
'default': KeyInfo(),
|
|
'area-id': KeyInfo(),
|
|
'disabled': KeyInfo(),
|
|
'instance': KeyInfo(),
|
|
'name': KeyInfo(),
|
|
'type': KeyInfo(),
|
|
},
|
|
),
|
|
('routing', 'ospf-v3', 'instance'): APIData(
|
|
unknown_mechanism=True,
|
|
# primary_keys=('default', ),
|
|
fields={
|
|
'default': KeyInfo(),
|
|
'disabled': KeyInfo(),
|
|
'distribute-default': KeyInfo(),
|
|
'metric-bgp': KeyInfo(),
|
|
'metric-connected': KeyInfo(),
|
|
'metric-default': KeyInfo(),
|
|
'metric-other-ospf': KeyInfo(),
|
|
'metric-rip': KeyInfo(),
|
|
'metric-static': KeyInfo(),
|
|
'name': KeyInfo(),
|
|
'redistribute-bgp': KeyInfo(),
|
|
'redistribute-connected': KeyInfo(),
|
|
'redistribute-other-ospf': KeyInfo(),
|
|
'redistribute-rip': KeyInfo(),
|
|
'redistribute-static': KeyInfo(),
|
|
'router-id': KeyInfo(),
|
|
},
|
|
),
|
|
('routing', 'ospf-v3', 'area'): APIData(
|
|
unknown_mechanism=True,
|
|
# primary_keys=('default', ),
|
|
fields={
|
|
'default': KeyInfo(),
|
|
'area-id': KeyInfo(),
|
|
'disabled': KeyInfo(),
|
|
'instance': KeyInfo(),
|
|
'name': KeyInfo(),
|
|
'type': KeyInfo(),
|
|
},
|
|
),
|
|
('snmp', 'community'): APIData(
|
|
unknown_mechanism=True,
|
|
# primary_keys=('default', ),
|
|
fields={
|
|
'default': KeyInfo(),
|
|
'addresses': KeyInfo(),
|
|
'authentication-password': KeyInfo(),
|
|
'authentication-protocol': KeyInfo(),
|
|
'disabled': KeyInfo(),
|
|
'encryption-password': KeyInfo(),
|
|
'encryption-protocol': KeyInfo(),
|
|
'name': KeyInfo(),
|
|
'read-access': KeyInfo(),
|
|
'security': KeyInfo(),
|
|
'write-access': KeyInfo(),
|
|
},
|
|
),
|
|
('caps-man', 'aaa'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'called-format': KeyInfo(default='mac:ssid'),
|
|
'interim-update': KeyInfo(default='disabled'),
|
|
'mac-caching': KeyInfo(default='disabled'),
|
|
'mac-format': KeyInfo(default='XX:XX:XX:XX:XX:XX'),
|
|
'mac-mode': KeyInfo(default='as-username'),
|
|
},
|
|
),
|
|
('caps-man', 'manager', 'interface'): APIData(
|
|
unknown_mechanism=True,
|
|
# primary_keys=('default', ),
|
|
fields={
|
|
'default': KeyInfo(),
|
|
'disabled': KeyInfo(),
|
|
'forbid': KeyInfo(),
|
|
'interface': KeyInfo(),
|
|
},
|
|
),
|
|
('certificate', 'settings'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'crl-download': KeyInfo(default=False),
|
|
'crl-store': KeyInfo(default='ram'),
|
|
'crl-use': KeyInfo(default=False),
|
|
},
|
|
),
|
|
('interface', 'bridge', 'port'): APIData(
|
|
fully_understood=True,
|
|
primary_keys=('interface', ),
|
|
fields={
|
|
'auto-isolate': KeyInfo(default=False),
|
|
'bpdu-guard': KeyInfo(default=False),
|
|
'bridge': KeyInfo(required=True),
|
|
'broadcast-flood': KeyInfo(default=True),
|
|
'comment': KeyInfo(can_disable=True, remove_value=''),
|
|
'disabled': KeyInfo(default=False),
|
|
'edge': KeyInfo(default='auto'),
|
|
'fast-leave': KeyInfo(default=False),
|
|
'frame-types': KeyInfo(default='admit-all'),
|
|
'horizon': KeyInfo(default='none'),
|
|
'hw': KeyInfo(default=True),
|
|
'ingress-filtering': KeyInfo(default=False),
|
|
'interface': KeyInfo(),
|
|
'internal-path-cost': KeyInfo(default=10),
|
|
'learn': KeyInfo(default='auto'),
|
|
'multicast-router': KeyInfo(default='temporary-query'),
|
|
'path-cost': KeyInfo(default=10),
|
|
'point-to-point': KeyInfo(default='auto'),
|
|
'priority': KeyInfo(default='0x80'),
|
|
'pvid': KeyInfo(default=1),
|
|
'restricted-role': KeyInfo(default=False),
|
|
'restricted-tcn': KeyInfo(default=False),
|
|
'tag-stacking': KeyInfo(default=False),
|
|
'trusted': KeyInfo(default=False),
|
|
'unknown-multicast-flood': KeyInfo(default=True),
|
|
'unknown-unicast-flood': KeyInfo(default=True),
|
|
},
|
|
),
|
|
('interface', 'bridge', 'port-controller'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'bridge': KeyInfo(default='none'),
|
|
'cascade-ports': KeyInfo(default=''),
|
|
'switch': KeyInfo(default='none'),
|
|
},
|
|
),
|
|
('interface', 'bridge', 'port-extender'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'control-ports': KeyInfo(default=''),
|
|
'excluded-ports': KeyInfo(default=''),
|
|
'switch': KeyInfo(default='none'),
|
|
},
|
|
),
|
|
('interface', 'bridge', 'settings'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'allow-fast-path': KeyInfo(default=True),
|
|
'use-ip-firewall': KeyInfo(default=False),
|
|
'use-ip-firewall-for-pppoe': KeyInfo(default=False),
|
|
'use-ip-firewall-for-vlan': KeyInfo(default=False),
|
|
},
|
|
),
|
|
('ip', 'firewall', 'connection', 'tracking'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'enabled': KeyInfo(default='auto'),
|
|
'generic-timeout': KeyInfo(default='10m'),
|
|
'icmp-timeout': KeyInfo(default='10s'),
|
|
'loose-tcp-tracking': KeyInfo(default=True),
|
|
'tcp-close-timeout': KeyInfo(default='10s'),
|
|
'tcp-close-wait-timeout': KeyInfo(default='10s'),
|
|
'tcp-established-timeout': KeyInfo(default='1d'),
|
|
'tcp-fin-wait-timeout': KeyInfo(default='10s'),
|
|
'tcp-last-ack-timeout': KeyInfo(default='10s'),
|
|
'tcp-max-retrans-timeout': KeyInfo(default='5m'),
|
|
'tcp-syn-received-timeout': KeyInfo(default='5s'),
|
|
'tcp-syn-sent-timeout': KeyInfo(default='5s'),
|
|
'tcp-time-wait-timeout': KeyInfo(default='10s'),
|
|
'tcp-unacked-timeout': KeyInfo(default='5m'),
|
|
'udp-stream-timeout': KeyInfo(default='3m'),
|
|
'udp-timeout': KeyInfo(default='10s'),
|
|
},
|
|
),
|
|
('ip', 'neighbor', 'discovery-settings'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'discover-interface-list': KeyInfo(),
|
|
'lldp-med-net-policy-vlan': KeyInfo(default='disabled'),
|
|
'protocol': KeyInfo(default='cdp,lldp,mndp'),
|
|
},
|
|
),
|
|
('ip', 'settings'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'accept-redirects': KeyInfo(default=False),
|
|
'accept-source-route': KeyInfo(default=False),
|
|
'allow-fast-path': KeyInfo(default=True),
|
|
'arp-timeout': KeyInfo(default='30s'),
|
|
'icmp-rate-limit': KeyInfo(default=10),
|
|
'icmp-rate-mask': KeyInfo(default='0x1818'),
|
|
'ip-forward': KeyInfo(default=True),
|
|
'max-neighbor-entries': KeyInfo(default=8192),
|
|
'route-cache': KeyInfo(default=True),
|
|
'rp-filter': KeyInfo(default=False),
|
|
'secure-redirects': KeyInfo(default=True),
|
|
'send-redirects': KeyInfo(default=True),
|
|
'tcp-syncookies': KeyInfo(default=False),
|
|
},
|
|
),
|
|
('ipv6', 'settings'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'accept-redirects': KeyInfo(default='yes-if-forwarding-disabled'),
|
|
'accept-router-advertisements': KeyInfo(default='yes-if-forwarding-disabled'),
|
|
'forward': KeyInfo(default=True),
|
|
'max-neighbor-entries': KeyInfo(default=8192),
|
|
},
|
|
),
|
|
('interface', 'detect-internet'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'detect-interface-list': KeyInfo(default='none'),
|
|
'internet-interface-list': KeyInfo(default='none'),
|
|
'lan-interface-list': KeyInfo(default='none'),
|
|
'wan-interface-list': KeyInfo(default='none'),
|
|
},
|
|
),
|
|
('interface', 'l2tp-server', 'server'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'allow-fast-path': KeyInfo(default=False),
|
|
'authentication': KeyInfo(default='pap,chap,mschap1,mschap2'),
|
|
'caller-id-type': KeyInfo(default='ip-address'),
|
|
'default-profile': KeyInfo(default='default-encryption'),
|
|
'enabled': KeyInfo(default=False),
|
|
'ipsec-secret': KeyInfo(default=''),
|
|
'keepalive-timeout': KeyInfo(default=30),
|
|
'max-mru': KeyInfo(default=1450),
|
|
'max-mtu': KeyInfo(default=1450),
|
|
'max-sessions': KeyInfo(default='unlimited'),
|
|
'mrru': KeyInfo(default='disabled'),
|
|
'one-session-per-host': KeyInfo(default=False),
|
|
'use-ipsec': KeyInfo(default=False),
|
|
},
|
|
),
|
|
('interface', 'ovpn-server', 'server'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'auth': KeyInfo(),
|
|
'cipher': KeyInfo(),
|
|
'default-profile': KeyInfo(default='default'),
|
|
'enabled': KeyInfo(default=False),
|
|
'keepalive-timeout': KeyInfo(default=60),
|
|
'mac-address': KeyInfo(),
|
|
'max-mtu': KeyInfo(default=1500),
|
|
'mode': KeyInfo(default='ip'),
|
|
'netmask': KeyInfo(default=24),
|
|
'port': KeyInfo(default=1194),
|
|
'require-client-certificate': KeyInfo(default=False),
|
|
},
|
|
),
|
|
('interface', 'pptp-server', 'server'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'authentication': KeyInfo(default='mschap1,mschap2'),
|
|
'default-profile': KeyInfo(default='default-encryption'),
|
|
'enabled': KeyInfo(default=False),
|
|
'keepalive-timeout': KeyInfo(default=30),
|
|
'max-mru': KeyInfo(default=1450),
|
|
'max-mtu': KeyInfo(default=1450),
|
|
'mrru': KeyInfo(default='disabled'),
|
|
},
|
|
),
|
|
('interface', 'sstp-server', 'server'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'authentication': KeyInfo(default='pap,chap,mschap1,mschap2'),
|
|
'certificate': KeyInfo(default='none'),
|
|
'default-profile': KeyInfo(default='default'),
|
|
'enabled': KeyInfo(default=False),
|
|
'force-aes': KeyInfo(default=False),
|
|
'keepalive-timeout': KeyInfo(default=60),
|
|
'max-mru': KeyInfo(default=1500),
|
|
'max-mtu': KeyInfo(default=1500),
|
|
'mrru': KeyInfo(default='disabled'),
|
|
'pfs': KeyInfo(default=False),
|
|
'port': KeyInfo(default=443),
|
|
'tls-version': KeyInfo(default='any'),
|
|
'verify-client-certificate': KeyInfo(default='no'),
|
|
},
|
|
),
|
|
('interface', 'wireless', 'align'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'active-mode': KeyInfo(default=True),
|
|
'audio-max': KeyInfo(default=-20),
|
|
'audio-min': KeyInfo(default=-100),
|
|
'audio-monitor': KeyInfo(default='00:00:00:00:00:00'),
|
|
'filter-mac': KeyInfo(default='00:00:00:00:00:00'),
|
|
'frame-size': KeyInfo(default=300),
|
|
'frames-per-second': KeyInfo(default=25),
|
|
'receive-all': KeyInfo(default=False),
|
|
'ssid-all': KeyInfo(default=False),
|
|
},
|
|
),
|
|
('interface', 'wireless', 'cap'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'bridge': KeyInfo(default='none'),
|
|
'caps-man-addresses': KeyInfo(default=''),
|
|
'caps-man-certificate-common-names': KeyInfo(default=''),
|
|
'caps-man-names': KeyInfo(default=''),
|
|
'certificate': KeyInfo(default='none'),
|
|
'discovery-interfaces': KeyInfo(default=''),
|
|
'enabled': KeyInfo(default=False),
|
|
'interfaces': KeyInfo(default=''),
|
|
'lock-to-caps-man': KeyInfo(default=False),
|
|
'static-virtual': KeyInfo(default=False),
|
|
},
|
|
),
|
|
('interface', 'wireless', 'sniffer'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'channel-time': KeyInfo(default='200ms'),
|
|
'file-limit': KeyInfo(default=10),
|
|
'file-name': KeyInfo(default=''),
|
|
'memory-limit': KeyInfo(default=10),
|
|
'multiple-channels': KeyInfo(default=False),
|
|
'only-headers': KeyInfo(default=False),
|
|
'receive-errors': KeyInfo(default=False),
|
|
'streaming-enabled': KeyInfo(default=False),
|
|
'streaming-max-rate': KeyInfo(default=0),
|
|
'streaming-server': KeyInfo(default='0.0.0.0'),
|
|
},
|
|
),
|
|
('interface', 'wireless', 'snooper'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'channel-time': KeyInfo(default='200ms'),
|
|
'multiple-channels': KeyInfo(default=True),
|
|
'receive-errors': KeyInfo(default=False),
|
|
},
|
|
),
|
|
('ip', 'accounting'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'account-local-traffic': KeyInfo(default=False),
|
|
'enabled': KeyInfo(default=False),
|
|
'threshold': KeyInfo(default=256),
|
|
},
|
|
),
|
|
('ip', 'accounting', 'web-access'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'accessible-via-web': KeyInfo(default=False),
|
|
'address': KeyInfo(default='0.0.0.0/0'),
|
|
},
|
|
),
|
|
('ip', 'address'): APIData(
|
|
fully_understood=True,
|
|
primary_keys=('address', 'interface', ),
|
|
fields={
|
|
'address': KeyInfo(),
|
|
'comment': KeyInfo(can_disable=True, remove_value=''),
|
|
'disabled': KeyInfo(default=False),
|
|
'interface': KeyInfo(),
|
|
'network': KeyInfo(automatically_computed_from=('address', )),
|
|
},
|
|
),
|
|
('ip', 'cloud'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'ddns-enabled': KeyInfo(default=False),
|
|
'ddns-update-interval': KeyInfo(default='none'),
|
|
'update-time': KeyInfo(default=True),
|
|
},
|
|
),
|
|
('ip', 'cloud', 'advanced'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'use-local-address': KeyInfo(default=False),
|
|
},
|
|
),
|
|
('ip', 'dhcp-client'): APIData(
|
|
fully_understood=True,
|
|
primary_keys=('interface', ),
|
|
fields={
|
|
'add-default-route': KeyInfo(default=True),
|
|
'comment': KeyInfo(can_disable=True, remove_value=''),
|
|
'default-route-distance': KeyInfo(default=1),
|
|
'dhcp-options': KeyInfo(default='hostname,clientid'),
|
|
'disabled': KeyInfo(default=False),
|
|
'interface': KeyInfo(),
|
|
'script': KeyInfo(can_disable=True),
|
|
'use-peer-dns': KeyInfo(default=True),
|
|
'use-peer-ntp': KeyInfo(default=True),
|
|
},
|
|
),
|
|
('ip', 'dhcp-server', 'config'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'accounting': KeyInfo(default=True),
|
|
'interim-update': KeyInfo(default='0s'),
|
|
'store-leases-disk': KeyInfo(default='5m'),
|
|
},
|
|
),
|
|
('ip', 'dhcp-server', 'lease'): APIData(
|
|
fully_understood=True,
|
|
primary_keys=('server', 'address', ),
|
|
fields={
|
|
'address': KeyInfo(),
|
|
'address-lists': KeyInfo(default=''),
|
|
'always-broadcast': KeyInfo(),
|
|
'client-id': KeyInfo(can_disable=True, remove_value=''),
|
|
'comment': KeyInfo(can_disable=True, remove_value=''),
|
|
'dhcp-option': KeyInfo(default=''),
|
|
'disabled': KeyInfo(default=False),
|
|
'insert-queue-before': KeyInfo(can_disable=True),
|
|
'mac-address': KeyInfo(can_disable=True, remove_value=''),
|
|
'server': KeyInfo(absent_value='all'),
|
|
},
|
|
),
|
|
('ip', 'dhcp-server', 'network'): APIData(
|
|
fully_understood=True,
|
|
primary_keys=('address', ),
|
|
fields={
|
|
'address': KeyInfo(),
|
|
'boot-file-name': KeyInfo(default=''),
|
|
'caps-manager': KeyInfo(default=''),
|
|
'comment': KeyInfo(can_disable=True, remove_value=''),
|
|
'dhcp-option': KeyInfo(default=''),
|
|
'dhcp-option-set': KeyInfo(default=''),
|
|
'dns-none': KeyInfo(default=''),
|
|
'dns-server': KeyInfo(default=''),
|
|
'domain': KeyInfo(default=''),
|
|
'gateway': KeyInfo(automatically_computed_from=('address', )),
|
|
'netmask': KeyInfo(automatically_computed_from=('address', )),
|
|
'next-server': KeyInfo(default=''),
|
|
'ntp-server': KeyInfo(default=''),
|
|
'wins-server': KeyInfo(default=''),
|
|
},
|
|
),
|
|
('ip', 'dns'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'allow-remote-requests': KeyInfo(),
|
|
'cache-max-ttl': KeyInfo(default='1w'),
|
|
'cache-size': KeyInfo(default='2048KiB'),
|
|
'max-concurrent-queries': KeyInfo(default=100),
|
|
'max-concurrent-tcp-sessions': KeyInfo(default=20),
|
|
'max-udp-packet-size': KeyInfo(default=4096),
|
|
'query-server-timeout': KeyInfo(default='2s'),
|
|
'query-total-timeout': KeyInfo(default='10s'),
|
|
'servers': KeyInfo(default=''),
|
|
'use-doh-server': KeyInfo(default=''),
|
|
'verify-doh-cert': KeyInfo(default=False),
|
|
},
|
|
),
|
|
('ip', 'dns', 'static'): APIData(
|
|
fully_understood=True,
|
|
stratify_keys=('name', ),
|
|
fields={
|
|
'address': KeyInfo(),
|
|
'cname': KeyInfo(),
|
|
'comment': KeyInfo(can_disable=True, remove_value=''),
|
|
'disabled': KeyInfo(default=False),
|
|
'forward-to': KeyInfo(),
|
|
'mx-exchange': KeyInfo(),
|
|
'mx-preference': KeyInfo(),
|
|
'name': KeyInfo(required=True),
|
|
'ns': KeyInfo(),
|
|
'srv-port': KeyInfo(),
|
|
'srv-priority': KeyInfo(),
|
|
'srv-target': KeyInfo(),
|
|
'srv-weight': KeyInfo(),
|
|
'text': KeyInfo(),
|
|
'ttl': KeyInfo(default='1d'),
|
|
'type': KeyInfo(),
|
|
},
|
|
),
|
|
('ip', 'firewall', 'address-list'): APIData(
|
|
fully_understood=True,
|
|
primary_keys=('address', 'list', ),
|
|
fields={
|
|
'address': KeyInfo(),
|
|
'disabled': KeyInfo(default=False),
|
|
'list': KeyInfo(),
|
|
},
|
|
),
|
|
('ip', 'firewall', 'filter'): APIData(
|
|
fully_understood=True,
|
|
stratify_keys=('chain', ),
|
|
fields={
|
|
'action': KeyInfo(),
|
|
'chain': KeyInfo(),
|
|
'comment': KeyInfo(can_disable=True, remove_value=''),
|
|
'connection-bytes': KeyInfo(can_disable=True),
|
|
'connection-limit': KeyInfo(can_disable=True),
|
|
'connection-mark': KeyInfo(can_disable=True),
|
|
'connection-nat-state': KeyInfo(can_disable=True),
|
|
'connection-rate': KeyInfo(can_disable=True),
|
|
'connection-state': KeyInfo(can_disable=True),
|
|
'connection-type': KeyInfo(can_disable=True),
|
|
'content': KeyInfo(can_disable=True),
|
|
'disabled': KeyInfo(),
|
|
'dscp': KeyInfo(can_disable=True),
|
|
'dst-address': KeyInfo(can_disable=True),
|
|
'dst-address-list': KeyInfo(can_disable=True),
|
|
'dst-address-type': KeyInfo(can_disable=True),
|
|
'dst-limit': KeyInfo(can_disable=True),
|
|
'dst-port': KeyInfo(can_disable=True),
|
|
'fragment': KeyInfo(can_disable=True),
|
|
'hotspot': KeyInfo(can_disable=True),
|
|
'hw-offload': KeyInfo(can_disable=True),
|
|
'icmp-options': KeyInfo(can_disable=True),
|
|
'in-bridge-port': KeyInfo(can_disable=True),
|
|
'in-bridge-port-list': KeyInfo(can_disable=True),
|
|
'in-interface': KeyInfo(can_disable=True),
|
|
'in-interface-list': KeyInfo(can_disable=True),
|
|
'ingress-priority': KeyInfo(can_disable=True),
|
|
'ipsec-policy': KeyInfo(can_disable=True),
|
|
'ipv4-options': KeyInfo(can_disable=True),
|
|
'layer7-protocol': KeyInfo(can_disable=True),
|
|
'limit': KeyInfo(can_disable=True),
|
|
'log': KeyInfo(),
|
|
'log-prefix': KeyInfo(),
|
|
'nth': KeyInfo(can_disable=True),
|
|
'out-bridge-port': KeyInfo(can_disable=True),
|
|
'out-bridge-port-list': KeyInfo(can_disable=True),
|
|
'out-interface': KeyInfo(can_disable=True),
|
|
'out-interface-list': KeyInfo(can_disable=True),
|
|
'p2p': KeyInfo(can_disable=True),
|
|
'packet-mark': KeyInfo(can_disable=True),
|
|
'packet-size': KeyInfo(can_disable=True),
|
|
'per-connection-classifier': KeyInfo(can_disable=True),
|
|
'port': KeyInfo(can_disable=True),
|
|
'priority': KeyInfo(can_disable=True),
|
|
'protocol': KeyInfo(can_disable=True),
|
|
'psd': KeyInfo(can_disable=True),
|
|
'random': KeyInfo(can_disable=True),
|
|
'routing-mark': KeyInfo(can_disable=True),
|
|
'routing-table': KeyInfo(can_disable=True),
|
|
'src-address': KeyInfo(can_disable=True),
|
|
'src-address-list': KeyInfo(can_disable=True),
|
|
'src-address-type': KeyInfo(can_disable=True),
|
|
'src-mac-address': KeyInfo(can_disable=True),
|
|
'src-port': KeyInfo(can_disable=True),
|
|
'tcp-flags': KeyInfo(can_disable=True),
|
|
'tcp-mss': KeyInfo(can_disable=True),
|
|
'time': KeyInfo(can_disable=True),
|
|
'tls-host': KeyInfo(can_disable=True),
|
|
'ttl': KeyInfo(can_disable=True),
|
|
},
|
|
),
|
|
('ip', 'firewall', 'mangle'): APIData(
|
|
fully_understood=True,
|
|
stratify_keys=('chain', ),
|
|
fields={
|
|
'action': KeyInfo(),
|
|
'chain': KeyInfo(),
|
|
'comment': KeyInfo(can_disable=True, remove_value=''),
|
|
'connection-bytes': KeyInfo(can_disable=True),
|
|
'connection-limit': KeyInfo(can_disable=True),
|
|
'connection-mark': KeyInfo(can_disable=True),
|
|
'connection-nat-state': KeyInfo(can_disable=True),
|
|
'connection-rate': KeyInfo(can_disable=True),
|
|
'connection-state': KeyInfo(can_disable=True),
|
|
'connection-type': KeyInfo(can_disable=True),
|
|
'content': KeyInfo(can_disable=True),
|
|
'disabled': KeyInfo(),
|
|
'dscp': KeyInfo(can_disable=True),
|
|
'dst-address': KeyInfo(can_disable=True),
|
|
'dst-address-list': KeyInfo(can_disable=True),
|
|
'dst-address-type': KeyInfo(can_disable=True),
|
|
'dst-limit': KeyInfo(can_disable=True),
|
|
'dst-port': KeyInfo(can_disable=True),
|
|
'fragment': KeyInfo(can_disable=True),
|
|
'hotspot': KeyInfo(can_disable=True),
|
|
'icmp-options': KeyInfo(can_disable=True),
|
|
'in-bridge-port': KeyInfo(can_disable=True),
|
|
'in-bridge-port-list': KeyInfo(can_disable=True),
|
|
'in-interface': KeyInfo(can_disable=True),
|
|
'in-interface-list': KeyInfo(can_disable=True),
|
|
'ingress-priority': KeyInfo(can_disable=True),
|
|
'ipsec-policy': KeyInfo(can_disable=True),
|
|
'ipv4-options': KeyInfo(can_disable=True),
|
|
'layer7-protocol': KeyInfo(can_disable=True),
|
|
'limit': KeyInfo(can_disable=True),
|
|
'log': KeyInfo(),
|
|
'log-prefix': KeyInfo(),
|
|
'new-connection-mark': KeyInfo(can_disable=True),
|
|
'new-dscp': KeyInfo(can_disable=True),
|
|
'new-mss': KeyInfo(can_disable=True),
|
|
'new-packet-mark': KeyInfo(can_disable=True),
|
|
'new-priority': KeyInfo(can_disable=True),
|
|
'new-routing-mark': KeyInfo(can_disable=True),
|
|
'new-ttl': KeyInfo(can_disable=True),
|
|
'nth': KeyInfo(can_disable=True),
|
|
'out-bridge-port': KeyInfo(can_disable=True),
|
|
'out-bridge-port-list': KeyInfo(can_disable=True),
|
|
'out-interface': KeyInfo(can_disable=True),
|
|
'out-interface-list': KeyInfo(can_disable=True),
|
|
'p2p': KeyInfo(can_disable=True),
|
|
'packet-mark': KeyInfo(can_disable=True),
|
|
'packet-size': KeyInfo(can_disable=True),
|
|
'passthrough': KeyInfo(can_disable=True),
|
|
'per-connection-classifier': KeyInfo(can_disable=True),
|
|
'port': KeyInfo(can_disable=True),
|
|
'priority': KeyInfo(can_disable=True),
|
|
'protocol': KeyInfo(can_disable=True),
|
|
'psd': KeyInfo(can_disable=True),
|
|
'random': KeyInfo(can_disable=True),
|
|
'route-dst': KeyInfo(can_disable=True),
|
|
'routing-mark': KeyInfo(can_disable=True),
|
|
'routing-table': KeyInfo(can_disable=True),
|
|
'sniff-id': KeyInfo(can_disable=True),
|
|
'sniff-target': KeyInfo(can_disable=True),
|
|
'sniff-target-port': KeyInfo(can_disable=True),
|
|
'src-address': KeyInfo(can_disable=True),
|
|
'src-address-list': KeyInfo(can_disable=True),
|
|
'src-address-type': KeyInfo(can_disable=True),
|
|
'src-mac-address': KeyInfo(can_disable=True),
|
|
'src-port': KeyInfo(can_disable=True),
|
|
'tcp-flags': KeyInfo(can_disable=True),
|
|
'tcp-mss': KeyInfo(can_disable=True),
|
|
'time': KeyInfo(can_disable=True),
|
|
'tls-host': KeyInfo(can_disable=True),
|
|
'ttl': KeyInfo(can_disable=True),
|
|
},
|
|
),
|
|
('ip', 'firewall', 'nat'): APIData(
|
|
fully_understood=True,
|
|
stratify_keys=('chain', ),
|
|
fields={
|
|
'action': KeyInfo(),
|
|
'chain': KeyInfo(),
|
|
'comment': KeyInfo(can_disable=True, remove_value=''),
|
|
'dst-address': KeyInfo(can_disable=True),
|
|
'dst-port': KeyInfo(can_disable=True),
|
|
'in-interface': KeyInfo(can_disable=True),
|
|
'in-interface-list': KeyInfo(can_disable=True),
|
|
'out-interface': KeyInfo(can_disable=True),
|
|
'out-interface-list': KeyInfo(can_disable=True),
|
|
'protocol': KeyInfo(can_disable=True),
|
|
'to-addresses': KeyInfo(can_disable=True),
|
|
'to-ports': KeyInfo(can_disable=True),
|
|
},
|
|
),
|
|
('ip', 'hotspot', 'user'): APIData(
|
|
unknown_mechanism=True,
|
|
# primary_keys=('default', ),
|
|
fields={
|
|
'default': KeyInfo(),
|
|
'comment': KeyInfo(can_disable=True, remove_value=''),
|
|
'disabled': KeyInfo(),
|
|
'name': KeyInfo(),
|
|
},
|
|
),
|
|
('ip', 'ipsec', 'settings'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'accounting': KeyInfo(default=True),
|
|
'interim-update': KeyInfo(default='0s'),
|
|
'xauth-use-radius': KeyInfo(default=False),
|
|
},
|
|
),
|
|
('ip', 'proxy'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'always-from-cache': KeyInfo(default=False),
|
|
'anonymous': KeyInfo(default=False),
|
|
'cache-administrator': KeyInfo(default='webmaster'),
|
|
'cache-hit-dscp': KeyInfo(default=4),
|
|
'cache-on-disk': KeyInfo(default=False),
|
|
'cache-path': KeyInfo(default='web-proxy'),
|
|
'enabled': KeyInfo(default=False),
|
|
'max-cache-object-size': KeyInfo(default='2048KiB'),
|
|
'max-cache-size': KeyInfo(default='unlimited'),
|
|
'max-client-connections': KeyInfo(default=600),
|
|
'max-fresh-time': KeyInfo(default='3d'),
|
|
'max-server-connections': KeyInfo(default=600),
|
|
'parent-proxy': KeyInfo(default='::'),
|
|
'parent-proxy-port': KeyInfo(default=0),
|
|
'port': KeyInfo(default=8080),
|
|
'serialize-connections': KeyInfo(default=False),
|
|
'src-address': KeyInfo(default='::'),
|
|
},
|
|
),
|
|
('ip', 'smb'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'allow-guests': KeyInfo(default=True),
|
|
'comment': KeyInfo(default='MikrotikSMB'),
|
|
'domain': KeyInfo(default='MSHOME'),
|
|
'enabled': KeyInfo(default=False),
|
|
'interfaces': KeyInfo(default='all'),
|
|
},
|
|
),
|
|
('ip', 'smb', 'shares'): APIData(
|
|
unknown_mechanism=True,
|
|
# primary_keys=('default', ),
|
|
fields={
|
|
'default': KeyInfo(),
|
|
'comment': KeyInfo(can_disable=True, remove_value=''),
|
|
'directory': KeyInfo(),
|
|
'disabled': KeyInfo(),
|
|
'max-sessions': KeyInfo(),
|
|
'name': KeyInfo(),
|
|
},
|
|
),
|
|
('ip', 'smb', 'users'): APIData(
|
|
unknown_mechanism=True,
|
|
# primary_keys=('default', ),
|
|
fields={
|
|
'default': KeyInfo(),
|
|
'disabled': KeyInfo(),
|
|
'name': KeyInfo(),
|
|
'password': KeyInfo(),
|
|
'read-only': KeyInfo(),
|
|
},
|
|
),
|
|
('ip', 'socks'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'auth-method': KeyInfo(default='none'),
|
|
'connection-idle-timeout': KeyInfo(default='2m'),
|
|
'enabled': KeyInfo(default=False),
|
|
'max-connections': KeyInfo(default=200),
|
|
'port': KeyInfo(default=1080),
|
|
'version': KeyInfo(default=4),
|
|
},
|
|
),
|
|
('ip', 'ssh'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'allow-none-crypto': KeyInfo(default=False),
|
|
'always-allow-password-login': KeyInfo(default=False),
|
|
'forwarding-enabled': KeyInfo(default=False),
|
|
'host-key-size': KeyInfo(default=2048),
|
|
'strong-crypto': KeyInfo(default=False),
|
|
},
|
|
),
|
|
('ip', 'tftp', 'settings'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'max-block-size': KeyInfo(default=4096),
|
|
},
|
|
),
|
|
('ip', 'traffic-flow'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'active-flow-timeout': KeyInfo(default='30m'),
|
|
'cache-entries': KeyInfo(default='32k'),
|
|
'enabled': KeyInfo(default=False),
|
|
'inactive-flow-timeout': KeyInfo(default='15s'),
|
|
'interfaces': KeyInfo(default='all'),
|
|
'packet-sampling': KeyInfo(default=False),
|
|
'sampling-interval': KeyInfo(default=0),
|
|
'sampling-space': KeyInfo(default=0),
|
|
},
|
|
),
|
|
('ip', 'traffic-flow', 'ipfix'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'bytes': KeyInfo(default=True),
|
|
'dst-address': KeyInfo(default=True),
|
|
'dst-address-mask': KeyInfo(default=True),
|
|
'dst-mac-address': KeyInfo(default=True),
|
|
'dst-port': KeyInfo(default=True),
|
|
'first-forwarded': KeyInfo(default=True),
|
|
'gateway': KeyInfo(default=True),
|
|
'icmp-code': KeyInfo(default=True),
|
|
'icmp-type': KeyInfo(default=True),
|
|
'igmp-type': KeyInfo(default=True),
|
|
'in-interface': KeyInfo(default=True),
|
|
'ip-header-length': KeyInfo(default=True),
|
|
'ip-total-length': KeyInfo(default=True),
|
|
'ipv6-flow-label': KeyInfo(default=True),
|
|
'is-multicast': KeyInfo(default=True),
|
|
'last-forwarded': KeyInfo(default=True),
|
|
'nat-dst-address': KeyInfo(default=True),
|
|
'nat-dst-port': KeyInfo(default=True),
|
|
'nat-events': KeyInfo(default=False),
|
|
'nat-src-address': KeyInfo(default=True),
|
|
'nat-src-port': KeyInfo(default=True),
|
|
'out-interface': KeyInfo(default=True),
|
|
'packets': KeyInfo(default=True),
|
|
'protocol': KeyInfo(default=True),
|
|
'src-address': KeyInfo(default=True),
|
|
'src-address-mask': KeyInfo(default=True),
|
|
'src-mac-address': KeyInfo(default=True),
|
|
'src-port': KeyInfo(default=True),
|
|
'sys-init-time': KeyInfo(default=True),
|
|
'tcp-ack-num': KeyInfo(default=True),
|
|
'tcp-flags': KeyInfo(default=True),
|
|
'tcp-seq-num': KeyInfo(default=True),
|
|
'tcp-window-size': KeyInfo(default=True),
|
|
'tos': KeyInfo(default=True),
|
|
'ttl': KeyInfo(default=True),
|
|
'udp-length': KeyInfo(default=True),
|
|
},
|
|
),
|
|
('ip', 'upnp'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'allow-disable-external-interface': KeyInfo(default=False),
|
|
'enabled': KeyInfo(default=False),
|
|
'show-dummy-rule': KeyInfo(default=True),
|
|
},
|
|
),
|
|
('ipv6', 'dhcp-client'): APIData(
|
|
fully_understood=True,
|
|
primary_keys=('interface', 'request'),
|
|
fields={
|
|
'add-default-route': KeyInfo(default=False),
|
|
'comment': KeyInfo(can_disable=True, remove_value=''),
|
|
'default-route-distance': KeyInfo(default=1),
|
|
'dhcp-options': KeyInfo(default=''),
|
|
'disabled': KeyInfo(default=False),
|
|
'interface': KeyInfo(),
|
|
'pool-name': KeyInfo(required=True),
|
|
'pool-prefix-length': KeyInfo(default=64),
|
|
'prefix-hint': KeyInfo(default='::/0'),
|
|
'request': KeyInfo(),
|
|
'use-peer-dns': KeyInfo(default=True),
|
|
},
|
|
),
|
|
('ipv6', 'firewall', 'address-list'): APIData(
|
|
fully_understood=True,
|
|
primary_keys=('address', 'list', ),
|
|
fields={
|
|
'address': KeyInfo(),
|
|
'disabled': KeyInfo(default=False),
|
|
'dynamic': KeyInfo(default=False),
|
|
'list': KeyInfo(),
|
|
},
|
|
),
|
|
('ipv6', 'firewall', 'filter'): APIData(
|
|
fully_understood=True,
|
|
stratify_keys=('chain', ),
|
|
fields={
|
|
'action': KeyInfo(),
|
|
'chain': KeyInfo(),
|
|
'comment': KeyInfo(can_disable=True, remove_value=''),
|
|
'connection-bytes': KeyInfo(can_disable=True),
|
|
'connection-limit': KeyInfo(can_disable=True),
|
|
'connection-mark': KeyInfo(can_disable=True),
|
|
'connection-rate': KeyInfo(can_disable=True),
|
|
'connection-state': KeyInfo(can_disable=True),
|
|
'connection-type': KeyInfo(can_disable=True),
|
|
'content': KeyInfo(can_disable=True),
|
|
'disabled': KeyInfo(),
|
|
'dscp': KeyInfo(can_disable=True),
|
|
'dst-address': KeyInfo(can_disable=True),
|
|
'dst-address-list': KeyInfo(can_disable=True),
|
|
'dst-address-type': KeyInfo(can_disable=True),
|
|
'dst-limit': KeyInfo(can_disable=True),
|
|
'dst-port': KeyInfo(can_disable=True),
|
|
'headers': KeyInfo(can_disable=True),
|
|
'hop-limit': KeyInfo(can_disable=True),
|
|
'icmp-options': KeyInfo(can_disable=True),
|
|
'in-bridge-port': KeyInfo(can_disable=True),
|
|
'in-bridge-port-list': KeyInfo(can_disable=True),
|
|
'in-interface': KeyInfo(can_disable=True),
|
|
'in-interface-list': KeyInfo(can_disable=True),
|
|
'ingress-priority': KeyInfo(can_disable=True),
|
|
'ipsec-policy': KeyInfo(can_disable=True),
|
|
'limit': KeyInfo(can_disable=True),
|
|
'log': KeyInfo(),
|
|
'log-prefix': KeyInfo(),
|
|
'nth': KeyInfo(can_disable=True),
|
|
'out-bridge-port': KeyInfo(can_disable=True),
|
|
'out-bridge-port-list': KeyInfo(can_disable=True),
|
|
'out-interface': KeyInfo(can_disable=True),
|
|
'out-interface-list': KeyInfo(can_disable=True),
|
|
'packet-mark': KeyInfo(can_disable=True),
|
|
'packet-size': KeyInfo(can_disable=True),
|
|
'per-connection-classifier': KeyInfo(can_disable=True),
|
|
'port': KeyInfo(can_disable=True),
|
|
'priority': KeyInfo(can_disable=True),
|
|
'protocol': KeyInfo(can_disable=True),
|
|
'random': KeyInfo(can_disable=True),
|
|
'src-address': KeyInfo(can_disable=True),
|
|
'src-address-list': KeyInfo(can_disable=True),
|
|
'src-address-type': KeyInfo(can_disable=True),
|
|
'src-mac-address': KeyInfo(can_disable=True),
|
|
'src-port': KeyInfo(can_disable=True),
|
|
'tcp-flags': KeyInfo(can_disable=True),
|
|
'tcp-mss': KeyInfo(can_disable=True),
|
|
'time': KeyInfo(can_disable=True),
|
|
},
|
|
),
|
|
('ipv6', 'nd'): APIData(
|
|
unknown_mechanism=True,
|
|
# primary_keys=('default', ),
|
|
fields={
|
|
'default': KeyInfo(),
|
|
'advertise-dns': KeyInfo(),
|
|
'advertise-mac-address': KeyInfo(),
|
|
'disabled': KeyInfo(),
|
|
'hop-limit': KeyInfo(),
|
|
'interface': KeyInfo(),
|
|
'managed-address-configuration': KeyInfo(),
|
|
'mtu': KeyInfo(),
|
|
'other-configuration': KeyInfo(),
|
|
'ra-delay': KeyInfo(),
|
|
'ra-interval': KeyInfo(),
|
|
'ra-lifetime': KeyInfo(),
|
|
'reachable-time': KeyInfo(),
|
|
'retransmit-interval': KeyInfo(),
|
|
},
|
|
),
|
|
('ipv6', 'nd', 'prefix', 'default'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'autonomous': KeyInfo(default=True),
|
|
'preferred-lifetime': KeyInfo(default='1w'),
|
|
'valid-lifetime': KeyInfo(default='4w2d'),
|
|
},
|
|
),
|
|
('ipv6', 'route'): APIData(
|
|
fields={
|
|
'bgp-as-path': KeyInfo(can_disable=True),
|
|
'bgp-atomic-aggregate': KeyInfo(can_disable=True),
|
|
'bgp-communities': KeyInfo(can_disable=True),
|
|
'bgp-local-pref': KeyInfo(can_disable=True),
|
|
'bgp-med': KeyInfo(can_disable=True),
|
|
'bgp-origin': KeyInfo(can_disable=True),
|
|
'bgp-prepend': KeyInfo(can_disable=True),
|
|
'check-gateway': KeyInfo(can_disable=True),
|
|
'disabled': KeyInfo(),
|
|
'distance': KeyInfo(),
|
|
'dst-address': KeyInfo(),
|
|
'gateway': KeyInfo(),
|
|
'route-tag': KeyInfo(can_disable=True),
|
|
'scope': KeyInfo(),
|
|
'target-scope': KeyInfo(),
|
|
},
|
|
),
|
|
('mpls', ): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'allow-fast-path': KeyInfo(default=True),
|
|
'dynamic-label-range': KeyInfo(default='16-1048575'),
|
|
'propagate-ttl': KeyInfo(default=True),
|
|
},
|
|
),
|
|
('mpls', 'interface'): APIData(
|
|
unknown_mechanism=True,
|
|
# primary_keys=('default', ),
|
|
fields={
|
|
'default': KeyInfo(),
|
|
'disabled': KeyInfo(),
|
|
'interface': KeyInfo(),
|
|
'mpls-mtu': KeyInfo(),
|
|
},
|
|
),
|
|
('mpls', 'ldp'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'distribute-for-default-route': KeyInfo(default=False),
|
|
'enabled': KeyInfo(default=False),
|
|
'hop-limit': KeyInfo(default=255),
|
|
'loop-detect': KeyInfo(default=False),
|
|
'lsr-id': KeyInfo(default='0.0.0.0'),
|
|
'path-vector-limit': KeyInfo(default=255),
|
|
'transport-address': KeyInfo(default='0.0.0.0'),
|
|
'use-explicit-null': KeyInfo(default=False),
|
|
},
|
|
),
|
|
('port', 'firmware'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'directory': KeyInfo(default='firmware'),
|
|
'ignore-directip-modem': KeyInfo(default=False),
|
|
},
|
|
),
|
|
('ppp', 'aaa'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'accounting': KeyInfo(default=True),
|
|
'interim-update': KeyInfo(default='0s'),
|
|
'use-circuit-id-in-nas-port-id': KeyInfo(default=False),
|
|
'use-radius': KeyInfo(default=False),
|
|
},
|
|
),
|
|
('radius', 'incoming'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'accept': KeyInfo(default=False),
|
|
'port': KeyInfo(default=3799),
|
|
},
|
|
),
|
|
('routing', 'bfd', 'interface'): APIData(
|
|
unknown_mechanism=True,
|
|
# primary_keys=('default', ),
|
|
fields={
|
|
'default': KeyInfo(),
|
|
'disabled': KeyInfo(),
|
|
'interface': KeyInfo(),
|
|
'interval': KeyInfo(),
|
|
'min-rx': KeyInfo(),
|
|
'multiplier': KeyInfo(),
|
|
},
|
|
),
|
|
('routing', 'mme'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'bidirectional-timeout': KeyInfo(default=2),
|
|
'gateway-class': KeyInfo(default='none'),
|
|
'gateway-keepalive': KeyInfo(default='1m'),
|
|
'gateway-selection': KeyInfo(default='no-gateway'),
|
|
'origination-interval': KeyInfo(default='5s'),
|
|
'preferred-gateway': KeyInfo(default='0.0.0.0'),
|
|
'timeout': KeyInfo(default='1m'),
|
|
'ttl': KeyInfo(default=50),
|
|
},
|
|
),
|
|
('routing', 'rip'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'distribute-default': KeyInfo(default='never'),
|
|
'garbage-timer': KeyInfo(default='2m'),
|
|
'metric-bgp': KeyInfo(default=1),
|
|
'metric-connected': KeyInfo(default=1),
|
|
'metric-default': KeyInfo(default=1),
|
|
'metric-ospf': KeyInfo(default=1),
|
|
'metric-static': KeyInfo(default=1),
|
|
'redistribute-bgp': KeyInfo(default=False),
|
|
'redistribute-connected': KeyInfo(default=False),
|
|
'redistribute-ospf': KeyInfo(default=False),
|
|
'redistribute-static': KeyInfo(default=False),
|
|
'routing-table': KeyInfo(default='main'),
|
|
'timeout-timer': KeyInfo(default='3m'),
|
|
'update-timer': KeyInfo(default='30s'),
|
|
},
|
|
),
|
|
('routing', 'ripng'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'distribute-default': KeyInfo(default='never'),
|
|
'garbage-timer': KeyInfo(default='2m'),
|
|
'metric-bgp': KeyInfo(default=1),
|
|
'metric-connected': KeyInfo(default=1),
|
|
'metric-default': KeyInfo(default=1),
|
|
'metric-ospf': KeyInfo(default=1),
|
|
'metric-static': KeyInfo(default=1),
|
|
'redistribute-bgp': KeyInfo(default=False),
|
|
'redistribute-connected': KeyInfo(default=False),
|
|
'redistribute-ospf': KeyInfo(default=False),
|
|
'redistribute-static': KeyInfo(default=False),
|
|
'timeout-timer': KeyInfo(default='3m'),
|
|
'update-timer': KeyInfo(default='30s'),
|
|
},
|
|
),
|
|
('snmp', ): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'contact': KeyInfo(default=''),
|
|
'enabled': KeyInfo(default=False),
|
|
'engine-id': KeyInfo(default=''),
|
|
'location': KeyInfo(default=''),
|
|
'src-address': KeyInfo(default='::'),
|
|
'trap-community': KeyInfo(default='public'),
|
|
'trap-generators': KeyInfo(default='temp-exception'),
|
|
'trap-target': KeyInfo(default=''),
|
|
'trap-version': KeyInfo(default=1),
|
|
},
|
|
),
|
|
('system', 'clock'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'time-zone-autodetect': KeyInfo(default=True),
|
|
'time-zone-name': KeyInfo(default='manual'),
|
|
},
|
|
),
|
|
('system', 'clock', 'manual'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'dst-delta': KeyInfo(default='00:00'),
|
|
'dst-end': KeyInfo(default='jan/01/1970 00:00:00'),
|
|
'dst-start': KeyInfo(default='jan/01/1970 00:00:00'),
|
|
'time-zone': KeyInfo(default='+00:00'),
|
|
},
|
|
),
|
|
('system', 'identity'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'name': KeyInfo(default='Mikrotik'),
|
|
},
|
|
),
|
|
('system', 'leds', 'settings'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'all-leds-off': KeyInfo(default='never'),
|
|
},
|
|
),
|
|
('system', 'note'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'note': KeyInfo(default=''),
|
|
'show-at-login': KeyInfo(default=True),
|
|
},
|
|
),
|
|
('system', 'ntp', 'client'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'enabled': KeyInfo(default=False),
|
|
'primary-ntp': KeyInfo(default='0.0.0.0'),
|
|
'secondary-ntp': KeyInfo(default='0.0.0.0'),
|
|
'server-dns-names': KeyInfo(default=''),
|
|
'servers': KeyInfo(default=''),
|
|
'mode': KeyInfo(default='unicast'),
|
|
'vrf': KeyInfo(default='main'),
|
|
},
|
|
),
|
|
('system', 'ntp', 'client', 'servers'): APIData(
|
|
primary_keys=('address', ),
|
|
fully_understood=True,
|
|
fields={
|
|
'comment': KeyInfo(can_disable=True, remove_value=''),
|
|
'disabled': KeyInfo(default=False),
|
|
'address': KeyInfo(),
|
|
'auth-key': KeyInfo(default='none'),
|
|
'iburst': KeyInfo(default=True),
|
|
'max-poll': KeyInfo(default=10),
|
|
'min-poll': KeyInfo(default=6),
|
|
},
|
|
),
|
|
('system', 'ntp', 'server'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'auth-key': KeyInfo(default='none'),
|
|
'broadcast': KeyInfo(default=False),
|
|
'broadcast-addresses': KeyInfo(default=''),
|
|
'enabled': KeyInfo(default=False),
|
|
'local-clock-stratum': KeyInfo(default=5),
|
|
'manycast': KeyInfo(default=False),
|
|
'multicast': KeyInfo(default=False),
|
|
'use-local-clock': KeyInfo(default=False),
|
|
'vrf': KeyInfo(default='main'),
|
|
},
|
|
),
|
|
('system', 'package', 'update'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'channel': KeyInfo(default='stable'),
|
|
},
|
|
),
|
|
('system', 'routerboard', 'settings'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'auto-upgrade': KeyInfo(default=False),
|
|
'baud-rate': KeyInfo(default=115200),
|
|
'boot-delay': KeyInfo(default='2s'),
|
|
'boot-device': KeyInfo(default='nand-if-fail-then-ethernet'),
|
|
'boot-protocol': KeyInfo(default='bootp'),
|
|
'enable-jumper-reset': KeyInfo(default=True),
|
|
'enter-setup-on': KeyInfo(default='any-key'),
|
|
'force-backup-booter': KeyInfo(default=False),
|
|
'protected-routerboot': KeyInfo(default='disabled'),
|
|
'reformat-hold-button': KeyInfo(default='20s'),
|
|
'reformat-hold-button-max': KeyInfo(default='10m'),
|
|
'silent-boot': KeyInfo(default=False),
|
|
},
|
|
),
|
|
('system', 'upgrade', 'mirror'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'check-interval': KeyInfo(default='1d'),
|
|
'enabled': KeyInfo(default=False),
|
|
'primary-server': KeyInfo(default='0.0.0.0'),
|
|
'secondary-server': KeyInfo(default='0.0.0.0'),
|
|
'user': KeyInfo(default=''),
|
|
},
|
|
),
|
|
('system', 'watchdog'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'auto-send-supout': KeyInfo(default=False),
|
|
'automatic-supout': KeyInfo(default=True),
|
|
'ping-start-after-boot': KeyInfo(default='5m'),
|
|
'ping-timeout': KeyInfo(default='1m'),
|
|
'watch-address': KeyInfo(default='none'),
|
|
'watchdog-timer': KeyInfo(default=True),
|
|
},
|
|
),
|
|
('tool', 'bandwidth-server'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'allocate-udp-ports-from': KeyInfo(default=2000),
|
|
'authenticate': KeyInfo(default=True),
|
|
'enabled': KeyInfo(default=True),
|
|
'max-sessions': KeyInfo(default=100),
|
|
},
|
|
),
|
|
('tool', 'e-mail'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'address': KeyInfo(default='0.0.0.0'),
|
|
'from': KeyInfo(default='<>'),
|
|
'password': KeyInfo(default=''),
|
|
'port': KeyInfo(default=25),
|
|
'start-tls': KeyInfo(default=False),
|
|
'user': KeyInfo(default=''),
|
|
},
|
|
),
|
|
('tool', 'graphing'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'page-refresh': KeyInfo(default=300),
|
|
'store-every': KeyInfo(default='5min'),
|
|
},
|
|
),
|
|
('tool', 'mac-server'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'allowed-interface-list': KeyInfo(),
|
|
},
|
|
),
|
|
('tool', 'mac-server', 'mac-winbox'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'allowed-interface-list': KeyInfo(),
|
|
},
|
|
),
|
|
('tool', 'mac-server', 'ping'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'enabled': KeyInfo(default=True),
|
|
},
|
|
),
|
|
('tool', 'romon'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'enabled': KeyInfo(default=False),
|
|
'id': KeyInfo(default='00:00:00:00:00:00'),
|
|
'secrets': KeyInfo(default=''),
|
|
},
|
|
),
|
|
('tool', 'romon', 'port'): APIData(
|
|
fields={
|
|
'cost': KeyInfo(),
|
|
'disabled': KeyInfo(),
|
|
'forbid': KeyInfo(),
|
|
'interface': KeyInfo(),
|
|
'secrets': KeyInfo(),
|
|
},
|
|
),
|
|
('tool', 'sms'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'allowed-number': KeyInfo(default=''),
|
|
'auto-erase': KeyInfo(default=False),
|
|
'channel': KeyInfo(default=0),
|
|
'port': KeyInfo(default='none'),
|
|
'receive-enabled': KeyInfo(default=False),
|
|
'secret': KeyInfo(default=''),
|
|
'sim-pin': KeyInfo(default=''),
|
|
},
|
|
),
|
|
('tool', 'sniffer'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'file-limit': KeyInfo(default='1000KiB'),
|
|
'file-name': KeyInfo(default=''),
|
|
'filter-cpu': KeyInfo(default=''),
|
|
'filter-direction': KeyInfo(default='any'),
|
|
'filter-interface': KeyInfo(default=''),
|
|
'filter-ip-address': KeyInfo(default=''),
|
|
'filter-ip-protocol': KeyInfo(default=''),
|
|
'filter-ipv6-address': KeyInfo(default=''),
|
|
'filter-mac-address': KeyInfo(default=''),
|
|
'filter-mac-protocol': KeyInfo(default=''),
|
|
'filter-operator-between-entries': KeyInfo(default='or'),
|
|
'filter-port': KeyInfo(default=''),
|
|
'filter-size': KeyInfo(default=''),
|
|
'filter-stream': KeyInfo(default=False),
|
|
'memory-limit': KeyInfo(default='100KiB'),
|
|
'memory-scroll': KeyInfo(default=True),
|
|
'only-headers': KeyInfo(default=False),
|
|
'streaming-enabled': KeyInfo(default=False),
|
|
'streaming-server': KeyInfo(default='0.0.0.0:37008'),
|
|
},
|
|
),
|
|
('tool', 'traffic-generator'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'latency-distribution-max': KeyInfo(default='100us'),
|
|
'measure-out-of-order': KeyInfo(default=True),
|
|
'stats-samples-to-keep': KeyInfo(default=100),
|
|
'test-id': KeyInfo(default=0),
|
|
},
|
|
),
|
|
('user', 'aaa'): APIData(
|
|
single_value=True,
|
|
fully_understood=True,
|
|
fields={
|
|
'accounting': KeyInfo(default=True),
|
|
'default-group': KeyInfo(default='read'),
|
|
'exclude-groups': KeyInfo(default=''),
|
|
'interim-update': KeyInfo(default='0s'),
|
|
'use-radius': KeyInfo(default=False),
|
|
},
|
|
),
|
|
('queue', 'interface'): APIData(
|
|
primary_keys=('name', ),
|
|
fully_understood=True,
|
|
fields={
|
|
'name': KeyInfo(required=True),
|
|
'queue': KeyInfo(required=True),
|
|
},
|
|
),
|
|
('interface', 'ethernet', 'switch'): APIData(
|
|
fixed_entries=True,
|
|
primary_keys=('name', ),
|
|
fully_understood=True,
|
|
fields={
|
|
'cpu-flow-control': KeyInfo(default=True),
|
|
'mirror-source': KeyInfo(default='none'),
|
|
'mirror-target': KeyInfo(default='none'),
|
|
'name': KeyInfo(),
|
|
},
|
|
),
|
|
('interface', 'ethernet', 'switch', 'port'): APIData(
|
|
fixed_entries=True,
|
|
primary_keys=('name', ),
|
|
fully_understood=True,
|
|
fields={
|
|
'default-vlan-id': KeyInfo(),
|
|
'name': KeyInfo(),
|
|
'vlan-header': KeyInfo(default='leave-as-is'),
|
|
'vlan-mode': KeyInfo(default='disabled'),
|
|
},
|
|
),
|
|
('ip', 'dhcp-client', 'option'): APIData(
|
|
fixed_entries=True,
|
|
primary_keys=('name', ),
|
|
fully_understood=True,
|
|
fields={
|
|
'code': KeyInfo(),
|
|
'name': KeyInfo(),
|
|
'value': KeyInfo(),
|
|
},
|
|
),
|
|
('ppp', 'profile'): APIData(
|
|
has_identifier=True,
|
|
fields={
|
|
'address-list': KeyInfo(),
|
|
'bridge': KeyInfo(can_disable=True),
|
|
'bridge-horizon': KeyInfo(can_disable=True),
|
|
'bridge-learning': KeyInfo(),
|
|
'bridge-path-cost': KeyInfo(can_disable=True),
|
|
'bridge-port-priority': KeyInfo(can_disable=True),
|
|
'change-tcp-mss': KeyInfo(),
|
|
'dns-server': KeyInfo(can_disable=True),
|
|
'idle-timeout': KeyInfo(can_disable=True),
|
|
'incoming-filter': KeyInfo(can_disable=True),
|
|
'insert-queue-before': KeyInfo(can_disable=True),
|
|
'interface-list': KeyInfo(can_disable=True),
|
|
'local-address': KeyInfo(can_disable=True),
|
|
'name': KeyInfo(),
|
|
'on-down': KeyInfo(),
|
|
'on-up': KeyInfo(),
|
|
'only-one': KeyInfo(),
|
|
'outgoing-filter': KeyInfo(can_disable=True),
|
|
'parent-queue': KeyInfo(can_disable=True),
|
|
'queue-type': KeyInfo(can_disable=True),
|
|
'rate-limit': KeyInfo(can_disable=True),
|
|
'remote-address': KeyInfo(can_disable=True),
|
|
'session-timeout': KeyInfo(can_disable=True),
|
|
'use-compression': KeyInfo(),
|
|
'use-encryption': KeyInfo(),
|
|
'use-ipv6': KeyInfo(),
|
|
'use-mpls': KeyInfo(),
|
|
'use-upnp': KeyInfo(),
|
|
'wins-server': KeyInfo(can_disable=True),
|
|
},
|
|
),
|
|
('queue', 'type'): APIData(
|
|
has_identifier=True,
|
|
fields={
|
|
'kind': KeyInfo(),
|
|
'mq-pfifo-limit': KeyInfo(),
|
|
'name': KeyInfo(),
|
|
'pcq-burst-rate': KeyInfo(),
|
|
'pcq-burst-threshold': KeyInfo(),
|
|
'pcq-burst-time': KeyInfo(),
|
|
'pcq-classifier': KeyInfo(),
|
|
'pcq-dst-address-mask': KeyInfo(),
|
|
'pcq-dst-address6-mask': KeyInfo(),
|
|
'pcq-limit': KeyInfo(),
|
|
'pcq-rate': KeyInfo(),
|
|
'pcq-src-address-mask': KeyInfo(),
|
|
'pcq-src-address6-mask': KeyInfo(),
|
|
'pcq-total-limit': KeyInfo(),
|
|
'pfifo-limit': KeyInfo(),
|
|
'red-avg-packet': KeyInfo(),
|
|
'red-burst': KeyInfo(),
|
|
'red-limit': KeyInfo(),
|
|
'red-max-threshold': KeyInfo(),
|
|
'red-min-threshold': KeyInfo(),
|
|
'sfq-allot': KeyInfo(),
|
|
'sfq-perturb': KeyInfo(),
|
|
},
|
|
),
|
|
('routing', 'bgp', 'instance'): APIData(
|
|
fixed_entries=True,
|
|
primary_keys=('name', ),
|
|
fully_understood=True,
|
|
fields={
|
|
'as': KeyInfo(),
|
|
'client-to-client-reflection': KeyInfo(),
|
|
'cluster-id': KeyInfo(can_disable=True),
|
|
'confederation': KeyInfo(can_disable=True),
|
|
'disabled': KeyInfo(),
|
|
'ignore-as-path-len': KeyInfo(),
|
|
'name': KeyInfo(),
|
|
'out-filter': KeyInfo(),
|
|
'redistribute-connected': KeyInfo(),
|
|
'redistribute-ospf': KeyInfo(),
|
|
'redistribute-other-bgp': KeyInfo(),
|
|
'redistribute-rip': KeyInfo(),
|
|
'redistribute-static': KeyInfo(),
|
|
'router-id': KeyInfo(),
|
|
'routing-table': KeyInfo(),
|
|
},
|
|
),
|
|
('system', 'logging', 'action'): APIData(
|
|
has_identifier=True,
|
|
fields={
|
|
'bsd-syslog': KeyInfo(),
|
|
'disk-file-count': KeyInfo(),
|
|
'disk-file-name': KeyInfo(),
|
|
'disk-lines-per-file': KeyInfo(),
|
|
'disk-stop-on-full': KeyInfo(),
|
|
'memory-lines': KeyInfo(),
|
|
'memory-stop-on-full': KeyInfo(),
|
|
'name': KeyInfo(),
|
|
'remember': KeyInfo(),
|
|
'remote': KeyInfo(),
|
|
'remote-port': KeyInfo(),
|
|
'src-address': KeyInfo(),
|
|
'syslog-facility': KeyInfo(),
|
|
'syslog-severity': KeyInfo(),
|
|
'syslog-time-format': KeyInfo(),
|
|
'target': KeyInfo(),
|
|
},
|
|
),
|
|
('user', 'group'): APIData(
|
|
fixed_entries=True,
|
|
primary_keys=('name', ),
|
|
fully_understood=True,
|
|
fields={
|
|
'name': KeyInfo(),
|
|
'policy': KeyInfo(),
|
|
'skin': KeyInfo(default='default'),
|
|
},
|
|
),
|
|
('caps-man', 'manager'): APIData(
|
|
single_value=True,
|
|
fields={
|
|
'ca-certificate': KeyInfo(default='none'),
|
|
'certificate': KeyInfo(default='none'),
|
|
'enabled': KeyInfo(default=False),
|
|
'package-path': KeyInfo(default=''),
|
|
'require-peer-certificate': KeyInfo(default=False),
|
|
'upgrade-policy': KeyInfo(default='none'),
|
|
},
|
|
),
|
|
('ip', 'firewall', 'service-port'): APIData(
|
|
primary_keys=('name', ),
|
|
fully_understood=True,
|
|
fields={
|
|
'disabled': KeyInfo(default=False),
|
|
'name': KeyInfo(),
|
|
'ports': KeyInfo(),
|
|
'sip-direct-media': KeyInfo(),
|
|
'sip-timeout': KeyInfo(),
|
|
},
|
|
),
|
|
('ip', 'hotspot', 'service-port'): APIData(
|
|
fixed_entries=True,
|
|
primary_keys=('name', ),
|
|
fully_understood=True,
|
|
fields={
|
|
'disabled': KeyInfo(default=False),
|
|
'name': KeyInfo(),
|
|
'ports': KeyInfo(),
|
|
},
|
|
),
|
|
('ip', 'ipsec', 'policy'): APIData(
|
|
has_identifier=True,
|
|
fields={
|
|
'disabled': KeyInfo(),
|
|
'dst-address': KeyInfo(),
|
|
'group': KeyInfo(),
|
|
'proposal': KeyInfo(),
|
|
'protocol': KeyInfo(),
|
|
'src-address': KeyInfo(),
|
|
'template': KeyInfo(),
|
|
},
|
|
),
|
|
('ip', 'service'): APIData(
|
|
fixed_entries=True,
|
|
primary_keys=('name', ),
|
|
fully_understood=True,
|
|
fields={
|
|
'address': KeyInfo(),
|
|
'certificate': KeyInfo(),
|
|
'disabled': KeyInfo(default=False),
|
|
'name': KeyInfo(),
|
|
'port': KeyInfo(),
|
|
'tls-version': KeyInfo(),
|
|
},
|
|
),
|
|
('system', 'logging'): APIData(
|
|
has_identifier=True,
|
|
fields={
|
|
'action': KeyInfo(),
|
|
'disabled': KeyInfo(),
|
|
'prefix': KeyInfo(),
|
|
'topics': KeyInfo(),
|
|
},
|
|
),
|
|
('system', 'resource', 'irq'): APIData(
|
|
has_identifier=True,
|
|
fields={
|
|
'cpu': KeyInfo(),
|
|
},
|
|
),
|
|
}
|