From b7569b9dfd373f862a0f96da3749151cf45827db Mon Sep 17 00:00:00 2001 From: hansmi Date: Sat, 26 Aug 2023 11:23:00 +0200 Subject: [PATCH] Add support for "ipv6 firewall nat" (#204) RouterOS supports NAT for IPv6 under the `ipv6 firewall nat` path. Signed-off-by: Michael Hanselmann --- .../fragments/204-add-ipv6-firewall-nat.yml | 2 + plugins/module_utils/_api_data.py | 60 +++++++++++++++++++ plugins/modules/api_info.py | 1 + plugins/modules/api_modify.py | 1 + 4 files changed, 64 insertions(+) create mode 100644 changelogs/fragments/204-add-ipv6-firewall-nat.yml diff --git a/changelogs/fragments/204-add-ipv6-firewall-nat.yml b/changelogs/fragments/204-add-ipv6-firewall-nat.yml new file mode 100644 index 0000000..b61ef39 --- /dev/null +++ b/changelogs/fragments/204-add-ipv6-firewall-nat.yml @@ -0,0 +1,2 @@ +minor_changes: + - api_info, api_modify - add support for the ``ipv6 firewall nat`` path (https://github.com/ansible-collections/community.routeros/pull/204). diff --git a/plugins/module_utils/_api_data.py b/plugins/module_utils/_api_data.py index 2317b14..2a6f3f2 100644 --- a/plugins/module_utils/_api_data.py +++ b/plugins/module_utils/_api_data.py @@ -2228,6 +2228,66 @@ PATHS = { 'tls-host': KeyInfo(can_disable=True), } ), + ('ipv6', 'firewall', 'nat'): APIData( + fully_understood=True, + stratify_keys=('chain', ), + fields={ + 'action': KeyInfo(), + 'address-list': KeyInfo(), + 'address-list-timeout': 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), + '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), + 'jump-target': KeyInfo(), + 'layer7-protocol': KeyInfo(can_disable=True), + 'limit': KeyInfo(can_disable=True), + 'log': KeyInfo(), + 'log-prefix': KeyInfo(), + '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), + 'routing-mark': 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), + 'to-addresses': KeyInfo(can_disable=True), + 'to-ports': KeyInfo(can_disable=True), + }, + ), ('ipv6', 'firewall', 'raw'): APIData( fully_understood=True, stratify_keys=('chain',), diff --git a/plugins/modules/api_info.py b/plugins/modules/api_info.py index 0aa2702..11e3fb6 100644 --- a/plugins/modules/api_info.py +++ b/plugins/modules/api_info.py @@ -137,6 +137,7 @@ options: - ipv6 firewall address-list - ipv6 firewall filter - ipv6 firewall mangle + - ipv6 firewall nat - ipv6 firewall raw - ipv6 nd - ipv6 nd prefix default diff --git a/plugins/modules/api_modify.py b/plugins/modules/api_modify.py index 9965502..0b50437 100644 --- a/plugins/modules/api_modify.py +++ b/plugins/modules/api_modify.py @@ -142,6 +142,7 @@ options: - ipv6 firewall address-list - ipv6 firewall filter - ipv6 firewall mangle + - ipv6 firewall nat - ipv6 firewall raw - ipv6 nd - ipv6 nd prefix default