@usex/mikrotik-mcp 3.18.0 → 3.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@usex/mikrotik-mcp",
3
- "version": "3.18.0",
3
+ "version": "3.20.0",
4
4
  "description": "MCP server for MikroTik RouterOS — 660+ tools over SSH for firewall, NAT, routing, DHCP, DNS, WireGuard, wireless, QoS and more.",
5
5
  "keywords": [
6
6
  "ai",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "version": "3.16.0",
3
+ "version": "3.19.0",
4
4
  "generated": "by scripts/gen-schemas.ts — do not edit by hand",
5
5
  "toolCount": 721,
6
6
  "tools": [
@@ -10179,11 +10179,34 @@
10179
10179
  "type": "string"
10180
10180
  },
10181
10181
  "in_interface": {
10182
+ "description": "Negatable, e.g. \"!ether1\"",
10182
10183
  "type": "string"
10183
10184
  },
10184
10185
  "out_interface": {
10185
10186
  "type": "string"
10186
10187
  },
10188
+ "in_interface_list": {
10189
+ "description": "Interface list, e.g. \"WAN\" or \"!LAN\"",
10190
+ "type": "string"
10191
+ },
10192
+ "out_interface_list": {
10193
+ "type": "string"
10194
+ },
10195
+ "src_address_list": {
10196
+ "description": "Match src in a named list; negate \"!name\"",
10197
+ "type": "string"
10198
+ },
10199
+ "dst_address_list": {
10200
+ "description": "Match dst in a named list; negate \"!name\"",
10201
+ "type": "string"
10202
+ },
10203
+ "connection_mark": {
10204
+ "type": "string"
10205
+ },
10206
+ "connection_nat_state": {
10207
+ "description": "\"srcnat\" / \"dstnat\" / \"!dstnat\"",
10208
+ "type": "string"
10209
+ },
10187
10210
  "to_addresses": {
10188
10211
  "description": "Single IP or range e.g. \"10.0.0.1\" or \"10.0.0.1-10.0.0.10\"",
10189
10212
  "type": "string"
@@ -10327,6 +10350,26 @@
10327
10350
  "out_interface": {
10328
10351
  "type": "string"
10329
10352
  },
10353
+ "in_interface_list": {
10354
+ "type": "string"
10355
+ },
10356
+ "out_interface_list": {
10357
+ "type": "string"
10358
+ },
10359
+ "src_address_list": {
10360
+ "description": "Negate with \"!name\"",
10361
+ "type": "string"
10362
+ },
10363
+ "dst_address_list": {
10364
+ "description": "Negate with \"!name\"",
10365
+ "type": "string"
10366
+ },
10367
+ "connection_mark": {
10368
+ "type": "string"
10369
+ },
10370
+ "connection_nat_state": {
10371
+ "type": "string"
10372
+ },
10330
10373
  "to_addresses": {
10331
10374
  "type": "string"
10332
10375
  },
@@ -10452,7 +10495,7 @@
10452
10495
  "destructiveHint": false,
10453
10496
  "openWorldHint": false
10454
10497
  },
10455
- "description": "Creates an IPv4 mangle rule (`/ip firewall mangle add`) — the packet-marking and header-modification table, used to mark connections/packets/routing (for policy routing, QoS and per-connection classification) or to change DSCP/TTL/MSS. For accept/drop decisions use create_filter_rule; for address translation use create_nat_rule; for IPv6 mangle use create_ipv6_mangle_rule. chain: prerouting/input/forward/output/postrouting. action: mark-connection/mark-packet/mark-routing/change-dscp/change-ttl/change-mss/add-src-to-address-list/add-dst-to-address-list/fasttrack-connection/route/set-priority/accept/etc. Set the matching new-*-mark field for mark-* actions and keep passthrough=true so later rules can also match the same packet; for add-*-to-address-list set address_list (and optionally address_list_timeout). place_before accepts a rule number or ID (*N) to control insertion position. Returns the created rule's detail including its `.id`.",
10498
+ "description": "Creates an IPv4 mangle rule (`/ip firewall mangle add`) — the packet-marking and header-modification table, used to mark connections/packets/routing (for policy routing, QoS and per-connection classification) or to change DSCP/TTL/MSS. For accept/drop decisions use create_filter_rule; for address translation use create_nat_rule; for IPv6 mangle use create_ipv6_mangle_rule. chain: prerouting/input/forward/output/postrouting. action: mark-connection/mark-packet/mark-routing/change-dscp/change-ttl/change-mss/add-src-to-address-list/add-dst-to-address-list/fasttrack-connection/route/set-priority/accept/etc. Set the matching new-*-mark field for mark-* actions and keep passthrough=true so later rules can also match the same packet; for add-*-to-address-list set address_list (and optionally address_list_timeout). Full match surface: address-lists (src_address_list/dst_address_list — negate with a leading '!', e.g. dst_address_list='!IR' to route traffic NOT bound for a list), interface-lists, per_connection_classifier (PCC load-balancing), connection_nat_state, tcp_flags, dscp, layer7_protocol, time, and more. Typical policy-routing rule: chain=prerouting, src_address=<lan>, dst_address_list='!IR', action=mark-routing, new_routing_mark=<table>, then a routing rule/route uses that table. place_before accepts a rule number or ID (*N) to control insertion position. Returns the created rule's detail including its `.id`.",
10456
10499
  "inputSchema": {
10457
10500
  "$schema": "https://json-schema.org/draft/2020-12/schema",
10458
10501
  "type": "object",
@@ -10502,11 +10545,34 @@
10502
10545
  "type": "string"
10503
10546
  },
10504
10547
  "in_interface": {
10548
+ "description": "Negatable, e.g. \"!ether1\"",
10505
10549
  "type": "string"
10506
10550
  },
10507
10551
  "out_interface": {
10508
10552
  "type": "string"
10509
10553
  },
10554
+ "in_interface_list": {
10555
+ "description": "Interface list, negatable e.g. \"!WAN\"",
10556
+ "type": "string"
10557
+ },
10558
+ "out_interface_list": {
10559
+ "type": "string"
10560
+ },
10561
+ "src_address_list": {
10562
+ "description": "Match src in a named list; negate \"!name\"",
10563
+ "type": "string"
10564
+ },
10565
+ "dst_address_list": {
10566
+ "description": "Match dst in a named list; negate \"!name\" (e.g. \"!IR\" routes foreign traffic)",
10567
+ "type": "string"
10568
+ },
10569
+ "src_address_type": {
10570
+ "description": "e.g. \"local\", \"unicast\", \"!local\"",
10571
+ "type": "string"
10572
+ },
10573
+ "dst_address_type": {
10574
+ "type": "string"
10575
+ },
10510
10576
  "connection_mark": {
10511
10577
  "type": "string"
10512
10578
  },
@@ -10517,7 +10583,74 @@
10517
10583
  "type": "string"
10518
10584
  },
10519
10585
  "connection_state": {
10520
- "description": "e.g. \"new\", \"established,related\", \"invalid\"",
10586
+ "description": "e.g. \"new\", \"established,related\", \"!invalid\"",
10587
+ "type": "string"
10588
+ },
10589
+ "connection_nat_state": {
10590
+ "description": "\"srcnat\" / \"dstnat\" / \"!dstnat\"",
10591
+ "type": "string"
10592
+ },
10593
+ "connection_type": {
10594
+ "description": "Helper, e.g. \"sip\", \"ftp\"",
10595
+ "type": "string"
10596
+ },
10597
+ "connection_bytes": {
10598
+ "description": "e.g. \"1000000-0\" (>1 MB connections)",
10599
+ "type": "string"
10600
+ },
10601
+ "connection_limit": {
10602
+ "description": "e.g. \"100,32\"",
10603
+ "type": "string"
10604
+ },
10605
+ "connection_rate": {
10606
+ "description": "e.g. \"100k-1M\"",
10607
+ "type": "string"
10608
+ },
10609
+ "per_connection_classifier": {
10610
+ "description": "PCC for load balancing, e.g. \"both-addresses:2/0\"",
10611
+ "type": "string"
10612
+ },
10613
+ "tcp_flags": {
10614
+ "description": "RouterOS flag expression e.g. \"syn,!ack\"",
10615
+ "type": "string"
10616
+ },
10617
+ "dscp": {
10618
+ "description": "Match incoming DSCP (0-63)",
10619
+ "type": "string"
10620
+ },
10621
+ "priority": {
10622
+ "description": "Match packet/queue priority (0-63)",
10623
+ "type": "string"
10624
+ },
10625
+ "packet_size": {
10626
+ "description": "e.g. \"1500\" or \"0-500\"",
10627
+ "type": "string"
10628
+ },
10629
+ "layer7_protocol": {
10630
+ "description": "Name of an /ip firewall layer7-protocol regex",
10631
+ "type": "string"
10632
+ },
10633
+ "ipsec_policy": {
10634
+ "description": "e.g. \"in,ipsec\" or \"out,none\"",
10635
+ "type": "string"
10636
+ },
10637
+ "nth": {
10638
+ "description": "e.g. \"2,1\" — every 2nd packet",
10639
+ "type": "string"
10640
+ },
10641
+ "random": {
10642
+ "description": "Match a random N% of packets (1-99)",
10643
+ "type": "string"
10644
+ },
10645
+ "time": {
10646
+ "description": "e.g. \"8h-16h,mon,tue,wed,thu,fri\"",
10647
+ "type": "string"
10648
+ },
10649
+ "hotspot": {
10650
+ "description": "e.g. \"auth\", \"!auth\", \"from-client\"",
10651
+ "type": "string"
10652
+ },
10653
+ "p2p": {
10521
10654
  "type": "string"
10522
10655
  },
10523
10656
  "new_connection_mark": {
@@ -10689,6 +10822,26 @@
10689
10822
  "out_interface": {
10690
10823
  "type": "string"
10691
10824
  },
10825
+ "in_interface_list": {
10826
+ "type": "string"
10827
+ },
10828
+ "out_interface_list": {
10829
+ "type": "string"
10830
+ },
10831
+ "src_address_list": {
10832
+ "description": "Negate with \"!name\" (e.g. \"!IR\")",
10833
+ "type": "string"
10834
+ },
10835
+ "dst_address_list": {
10836
+ "description": "Negate with \"!name\" (e.g. \"!IR\")",
10837
+ "type": "string"
10838
+ },
10839
+ "src_address_type": {
10840
+ "type": "string"
10841
+ },
10842
+ "dst_address_type": {
10843
+ "type": "string"
10844
+ },
10692
10845
  "connection_mark": {
10693
10846
  "type": "string"
10694
10847
  },
@@ -10701,6 +10854,57 @@
10701
10854
  "connection_state": {
10702
10855
  "type": "string"
10703
10856
  },
10857
+ "connection_nat_state": {
10858
+ "type": "string"
10859
+ },
10860
+ "connection_type": {
10861
+ "type": "string"
10862
+ },
10863
+ "connection_bytes": {
10864
+ "type": "string"
10865
+ },
10866
+ "connection_limit": {
10867
+ "type": "string"
10868
+ },
10869
+ "connection_rate": {
10870
+ "type": "string"
10871
+ },
10872
+ "per_connection_classifier": {
10873
+ "type": "string"
10874
+ },
10875
+ "tcp_flags": {
10876
+ "type": "string"
10877
+ },
10878
+ "dscp": {
10879
+ "type": "string"
10880
+ },
10881
+ "priority": {
10882
+ "type": "string"
10883
+ },
10884
+ "packet_size": {
10885
+ "type": "string"
10886
+ },
10887
+ "layer7_protocol": {
10888
+ "type": "string"
10889
+ },
10890
+ "ipsec_policy": {
10891
+ "type": "string"
10892
+ },
10893
+ "nth": {
10894
+ "type": "string"
10895
+ },
10896
+ "random": {
10897
+ "type": "string"
10898
+ },
10899
+ "time": {
10900
+ "type": "string"
10901
+ },
10902
+ "hotspot": {
10903
+ "type": "string"
10904
+ },
10905
+ "p2p": {
10906
+ "type": "string"
10907
+ },
10704
10908
  "new_connection_mark": {
10705
10909
  "type": "string"
10706
10910
  },
@@ -21290,7 +21494,7 @@
21290
21494
  "idempotentHint": true,
21291
21495
  "openWorldHint": false
21292
21496
  },
21293
- "description": "Exports the complete device configuration to a `.rsc` plain-text script file (`/export file=<name>`), re-applicable via `import_configuration`. Unlike `create_backup`, the result is human-readable plain text — not a binary snapshot — and passwords are hidden by default (`hide_sensitive=true`). `file_format` changes only the file extension used when looking up the saved file — no `format=` flag is ever sent to RouterOS, so the content is always RouterOS script text regardless of the chosen extension; selecting `json` or `xml` will also cause the post-export file lookup to fail because RouterOS saves the file as `.rsc`. Use the `compact` boolean to omit default values, or `verbose` to include all parameters; `export_type` only controls where the `file=` argument is positioned in the command and does not independently drive compactness or verbosity. For a single subsection only use `export_section`. Returns file details of the created export file.",
21497
+ "description": "Exports the complete device configuration to a `.rsc` plain-text script file (`/export file=<name>`), re-applicable via `import_configuration`. Unlike `create_backup`, the result is human-readable plain text — not a binary snapshot — and passwords are hidden by default (`hide_sensitive=true`). `file_format` changes only the file extension used when looking up the saved file — no `format=` flag is ever sent to RouterOS, so the content is always RouterOS script text regardless of the chosen extension; selecting `json` or `xml` will also cause the post-export file lookup to fail because RouterOS saves the file as `.rsc`. ALWAYS default to a FULL configuration export: leave `compact` and `verbose` off (the plain full export) unless the user explicitly asks for less or more. Set `compact` ONLY when the user wants a smaller diff that omits default values, or `verbose` ONLY when they want every parameter (including defaults). `export_type` only controls where the `file=` argument is positioned in the command and does not independently drive compactness or verbosity. For a single subsection only use `export_section`. Returns file details of the created export file.",
21294
21498
  "inputSchema": {
21295
21499
  "$schema": "https://json-schema.org/draft/2020-12/schema",
21296
21500
  "type": "object",
@@ -21830,7 +22034,7 @@
21830
22034
  "destructiveHint": false,
21831
22035
  "openWorldHint": false
21832
22036
  },
21833
- "description": "Captures the device's full configuration with `/export` and saves it as a timestamped plain-text `.rsc` file in the MCP server's LOCAL backup vault (default `~/.mikrotik-mcp/backups/`, override with the `MIKROTIK_BACKUP_DIR` env var) — NOT on the device and NOT in S3. The filename is `<device>_<date_time>.rsc` stamped in the device's local clock (24-hour; Jalali for the Tehran timezone, Gregorian otherwise). This is a host-side, human-readable, diffable copy you can restore later with restore_local_backup. Compare: create_backup makes a binary `/system backup` file ON the device; capture_config_snapshot stores an export in the local snapshot database; upload_backup_to_s3 pushes to S3. show_sensitive=true includes secrets (keys/passwords) in the export. Returns the saved filename, byte size and vault path.",
22037
+ "description": "Captures the device's full configuration with `/export` and saves it as a timestamped plain-text `.rsc` file in the MCP server's LOCAL backup vault (default `~/.mikrotik-mcp/backups/`, override with the `MIKROTIK_BACKUP_DIR` env var) — NOT on the device and NOT in S3. The filename is `<device-slug>_<date_time>.rsc` — the device name is slugified (spaces/underscores/etc → dash) — stamped in the device's local clock (24-hour; Jalali for the Tehran timezone, Gregorian otherwise). This is a host-side, human-readable, diffable copy you can restore later with restore_local_backup. Compare: create_backup makes a binary `/system backup` file ON the device; capture_config_snapshot stores an export in the local snapshot database; upload_backup_to_s3 pushes to S3. ALWAYS default to a FULL backup of the complete configuration: call this with no option flags (the bare `/export`) unless the user explicitly asks for less or more. Narrow it ONLY on request — set compact to drop default values, or use export_section for a single subsection. Broaden it ONLY on request — set verbose to include every parameter (even defaults), show_sensitive to include secrets (keys/passwords), or use create_backup for a binary full-system snapshot. terse just changes the text to one machine-readable line per item. Returns the saved filename, byte size and vault path.",
21834
22038
  "inputSchema": {
21835
22039
  "$schema": "https://json-schema.org/draft/2020-12/schema",
21836
22040
  "type": "object",
@@ -21843,9 +22047,24 @@
21843
22047
  "default": false,
21844
22048
  "description": "Include secrets (keys/passwords) in the export. Default false.",
21845
22049
  "type": "boolean"
22050
+ },
22051
+ "verbose": {
22052
+ "default": false,
22053
+ "description": "Include every parameter, even defaults (RouterOS `verbose`).",
22054
+ "type": "boolean"
22055
+ },
22056
+ "compact": {
22057
+ "default": false,
22058
+ "description": "Export only non-default values (RouterOS `compact`; ignored if verbose).",
22059
+ "type": "boolean"
22060
+ },
22061
+ "terse": {
22062
+ "default": false,
22063
+ "description": "One self-contained, machine-readable line per item (RouterOS `terse`).",
22064
+ "type": "boolean"
21846
22065
  }
21847
22066
  },
21848
- "required": ["show_sensitive"],
22067
+ "required": ["show_sensitive", "verbose", "compact", "terse"],
21849
22068
  "additionalProperties": false
21850
22069
  }
21851
22070
  },
@@ -11,8 +11,23 @@
11
11
  "default": false,
12
12
  "description": "Include secrets (keys/passwords) in the export. Default false.",
13
13
  "type": "boolean"
14
+ },
15
+ "verbose": {
16
+ "default": false,
17
+ "description": "Include every parameter, even defaults (RouterOS `verbose`).",
18
+ "type": "boolean"
19
+ },
20
+ "compact": {
21
+ "default": false,
22
+ "description": "Export only non-default values (RouterOS `compact`; ignored if verbose).",
23
+ "type": "boolean"
24
+ },
25
+ "terse": {
26
+ "default": false,
27
+ "description": "One self-contained, machine-readable line per item (RouterOS `terse`).",
28
+ "type": "boolean"
14
29
  }
15
30
  },
16
- "required": ["show_sensitive"],
31
+ "required": ["show_sensitive", "verbose", "compact", "terse"],
17
32
  "additionalProperties": false
18
33
  }
@@ -48,11 +48,34 @@
48
48
  "type": "string"
49
49
  },
50
50
  "in_interface": {
51
+ "description": "Negatable, e.g. \"!ether1\"",
51
52
  "type": "string"
52
53
  },
53
54
  "out_interface": {
54
55
  "type": "string"
55
56
  },
57
+ "in_interface_list": {
58
+ "description": "Interface list, negatable e.g. \"!WAN\"",
59
+ "type": "string"
60
+ },
61
+ "out_interface_list": {
62
+ "type": "string"
63
+ },
64
+ "src_address_list": {
65
+ "description": "Match src in a named list; negate \"!name\"",
66
+ "type": "string"
67
+ },
68
+ "dst_address_list": {
69
+ "description": "Match dst in a named list; negate \"!name\" (e.g. \"!IR\" routes foreign traffic)",
70
+ "type": "string"
71
+ },
72
+ "src_address_type": {
73
+ "description": "e.g. \"local\", \"unicast\", \"!local\"",
74
+ "type": "string"
75
+ },
76
+ "dst_address_type": {
77
+ "type": "string"
78
+ },
56
79
  "connection_mark": {
57
80
  "type": "string"
58
81
  },
@@ -63,7 +86,74 @@
63
86
  "type": "string"
64
87
  },
65
88
  "connection_state": {
66
- "description": "e.g. \"new\", \"established,related\", \"invalid\"",
89
+ "description": "e.g. \"new\", \"established,related\", \"!invalid\"",
90
+ "type": "string"
91
+ },
92
+ "connection_nat_state": {
93
+ "description": "\"srcnat\" / \"dstnat\" / \"!dstnat\"",
94
+ "type": "string"
95
+ },
96
+ "connection_type": {
97
+ "description": "Helper, e.g. \"sip\", \"ftp\"",
98
+ "type": "string"
99
+ },
100
+ "connection_bytes": {
101
+ "description": "e.g. \"1000000-0\" (>1 MB connections)",
102
+ "type": "string"
103
+ },
104
+ "connection_limit": {
105
+ "description": "e.g. \"100,32\"",
106
+ "type": "string"
107
+ },
108
+ "connection_rate": {
109
+ "description": "e.g. \"100k-1M\"",
110
+ "type": "string"
111
+ },
112
+ "per_connection_classifier": {
113
+ "description": "PCC for load balancing, e.g. \"both-addresses:2/0\"",
114
+ "type": "string"
115
+ },
116
+ "tcp_flags": {
117
+ "description": "RouterOS flag expression e.g. \"syn,!ack\"",
118
+ "type": "string"
119
+ },
120
+ "dscp": {
121
+ "description": "Match incoming DSCP (0-63)",
122
+ "type": "string"
123
+ },
124
+ "priority": {
125
+ "description": "Match packet/queue priority (0-63)",
126
+ "type": "string"
127
+ },
128
+ "packet_size": {
129
+ "description": "e.g. \"1500\" or \"0-500\"",
130
+ "type": "string"
131
+ },
132
+ "layer7_protocol": {
133
+ "description": "Name of an /ip firewall layer7-protocol regex",
134
+ "type": "string"
135
+ },
136
+ "ipsec_policy": {
137
+ "description": "e.g. \"in,ipsec\" or \"out,none\"",
138
+ "type": "string"
139
+ },
140
+ "nth": {
141
+ "description": "e.g. \"2,1\" — every 2nd packet",
142
+ "type": "string"
143
+ },
144
+ "random": {
145
+ "description": "Match a random N% of packets (1-99)",
146
+ "type": "string"
147
+ },
148
+ "time": {
149
+ "description": "e.g. \"8h-16h,mon,tue,wed,thu,fri\"",
150
+ "type": "string"
151
+ },
152
+ "hotspot": {
153
+ "description": "e.g. \"auth\", \"!auth\", \"from-client\"",
154
+ "type": "string"
155
+ },
156
+ "p2p": {
67
157
  "type": "string"
68
158
  },
69
159
  "new_connection_mark": {
@@ -26,11 +26,34 @@
26
26
  "type": "string"
27
27
  },
28
28
  "in_interface": {
29
+ "description": "Negatable, e.g. \"!ether1\"",
29
30
  "type": "string"
30
31
  },
31
32
  "out_interface": {
32
33
  "type": "string"
33
34
  },
35
+ "in_interface_list": {
36
+ "description": "Interface list, e.g. \"WAN\" or \"!LAN\"",
37
+ "type": "string"
38
+ },
39
+ "out_interface_list": {
40
+ "type": "string"
41
+ },
42
+ "src_address_list": {
43
+ "description": "Match src in a named list; negate \"!name\"",
44
+ "type": "string"
45
+ },
46
+ "dst_address_list": {
47
+ "description": "Match dst in a named list; negate \"!name\"",
48
+ "type": "string"
49
+ },
50
+ "connection_mark": {
51
+ "type": "string"
52
+ },
53
+ "connection_nat_state": {
54
+ "description": "\"srcnat\" / \"dstnat\" / \"!dstnat\"",
55
+ "type": "string"
56
+ },
34
57
  "to_addresses": {
35
58
  "description": "Single IP or range e.g. \"10.0.0.1\" or \"10.0.0.1-10.0.0.10\"",
36
59
  "type": "string"
@@ -33,6 +33,26 @@
33
33
  "out_interface": {
34
34
  "type": "string"
35
35
  },
36
+ "in_interface_list": {
37
+ "type": "string"
38
+ },
39
+ "out_interface_list": {
40
+ "type": "string"
41
+ },
42
+ "src_address_list": {
43
+ "description": "Negate with \"!name\" (e.g. \"!IR\")",
44
+ "type": "string"
45
+ },
46
+ "dst_address_list": {
47
+ "description": "Negate with \"!name\" (e.g. \"!IR\")",
48
+ "type": "string"
49
+ },
50
+ "src_address_type": {
51
+ "type": "string"
52
+ },
53
+ "dst_address_type": {
54
+ "type": "string"
55
+ },
36
56
  "connection_mark": {
37
57
  "type": "string"
38
58
  },
@@ -45,6 +65,57 @@
45
65
  "connection_state": {
46
66
  "type": "string"
47
67
  },
68
+ "connection_nat_state": {
69
+ "type": "string"
70
+ },
71
+ "connection_type": {
72
+ "type": "string"
73
+ },
74
+ "connection_bytes": {
75
+ "type": "string"
76
+ },
77
+ "connection_limit": {
78
+ "type": "string"
79
+ },
80
+ "connection_rate": {
81
+ "type": "string"
82
+ },
83
+ "per_connection_classifier": {
84
+ "type": "string"
85
+ },
86
+ "tcp_flags": {
87
+ "type": "string"
88
+ },
89
+ "dscp": {
90
+ "type": "string"
91
+ },
92
+ "priority": {
93
+ "type": "string"
94
+ },
95
+ "packet_size": {
96
+ "type": "string"
97
+ },
98
+ "layer7_protocol": {
99
+ "type": "string"
100
+ },
101
+ "ipsec_policy": {
102
+ "type": "string"
103
+ },
104
+ "nth": {
105
+ "type": "string"
106
+ },
107
+ "random": {
108
+ "type": "string"
109
+ },
110
+ "time": {
111
+ "type": "string"
112
+ },
113
+ "hotspot": {
114
+ "type": "string"
115
+ },
116
+ "p2p": {
117
+ "type": "string"
118
+ },
48
119
  "new_connection_mark": {
49
120
  "type": "string"
50
121
  },
@@ -33,6 +33,26 @@
33
33
  "out_interface": {
34
34
  "type": "string"
35
35
  },
36
+ "in_interface_list": {
37
+ "type": "string"
38
+ },
39
+ "out_interface_list": {
40
+ "type": "string"
41
+ },
42
+ "src_address_list": {
43
+ "description": "Negate with \"!name\"",
44
+ "type": "string"
45
+ },
46
+ "dst_address_list": {
47
+ "description": "Negate with \"!name\"",
48
+ "type": "string"
49
+ },
50
+ "connection_mark": {
51
+ "type": "string"
52
+ },
53
+ "connection_nat_state": {
54
+ "type": "string"
55
+ },
36
56
  "to_addresses": {
37
57
  "type": "string"
38
58
  },