diff --git a/changelogs/fragments/266-interface-wifi.yml b/changelogs/fragments/266-interface-wifi.yml new file mode 100644 index 0000000..e593e81 --- /dev/null +++ b/changelogs/fragments/266-interface-wifi.yml @@ -0,0 +1,2 @@ +minor_changes: + - api_info, api_modify - added support for ``interface wifi`` and its sub-paths (https://github.com/ansible-collections/community.routeros/pull/266). diff --git a/plugins/module_utils/_api_data.py b/plugins/module_utils/_api_data.py index 1fd634e..a421cff 100644 --- a/plugins/module_utils/_api_data.py +++ b/plugins/module_utils/_api_data.py @@ -1533,6 +1533,395 @@ PATHS = { }, ), ), + ('interface', 'wifi'): APIData( + versioned=[ + ('7.13', '>=', VersionedAPIData( + fully_understood=True, + primary_keys=('name', ), + required_one_of=[['default-name', 'radio-mac', 'master-interface']], + fields={ + 'aaa.called-format': KeyInfo(can_disable=True), + 'aaa.calling-format': KeyInfo(can_disable=True), + 'aaa.interim-update': KeyInfo(can_disable=True), + 'aaa.mac-caching': KeyInfo(can_disable=True), + 'aaa.nas-identifier': KeyInfo(can_disable=True), + 'aaa.password-format': KeyInfo(can_disable=True), + 'aaa.username-format': KeyInfo(can_disable=True), + 'aaa': KeyInfo(can_disable=True), + 'arp-timeout': KeyInfo(default='auto'), + 'arp': KeyInfo(can_disable=True), + 'channel.band': KeyInfo(can_disable=True), + 'channel.frequency': KeyInfo(can_disable=True), + 'channel.secondary-frequency': KeyInfo(can_disable=True), + 'channel.skip-dfs-channels': KeyInfo(can_disable=True), + 'channel.width': KeyInfo(can_disable=True), + 'channel': KeyInfo(can_disable=True), + 'comment': KeyInfo(can_disable=True, remove_value=''), + 'configuration.antenna-gain': KeyInfo(can_disable=True), + 'configuration.beacon-interval': KeyInfo(can_disable=True), + 'configuration.chains': KeyInfo(can_disable=True), + 'configuration.country': KeyInfo(can_disable=True), + 'configuration.dtim-period': KeyInfo(can_disable=True), + 'configuration.hide-ssid': KeyInfo(can_disable=True), + 'configuration.manager': KeyInfo(can_disable=True), + 'configuration.mode': KeyInfo(can_disable=True), + 'configuration.multicast-enhance': KeyInfo(can_disable=True), + 'configuration.qos-classifier': KeyInfo(can_disable=True), + 'configuration.ssid': KeyInfo(can_disable=True), + 'configuration.tx-chain': KeyInfo(can_disable=True), + 'configuration.tx-power': KeyInfo(can_disable=True), + 'configuration': KeyInfo(can_disable=True), + 'datapath.bridge-cost': KeyInfo(can_disable=True), + 'datapath.bridge-horizon': KeyInfo(can_disable=True), + 'datapath.bridge': KeyInfo(can_disable=True), + 'datapath.client-isolation': KeyInfo(can_disable=True), + 'datapath.interface-list': KeyInfo(can_disable=True), + 'datapath.vlan-id': KeyInfo(can_disable=True), + 'datapath': KeyInfo(can_disable=True), + 'default-name': KeyInfo(), + 'disable-running-check': KeyInfo(can_disable=True), + 'disabled': KeyInfo(default=True), + 'interworking.3gpp-info': KeyInfo(can_disable=True), + 'interworking.authentication-types': KeyInfo(can_disable=True), + 'interworking.connection-capabilities': KeyInfo(can_disable=True), + 'interworking.domain-names': KeyInfo(can_disable=True), + 'interworking.esr': KeyInfo(can_disable=True), + 'interworking.hessid': KeyInfo(can_disable=True), + 'interworking.hotspot20-dgaf': KeyInfo(can_disable=True), + 'interworking.hotspot20': KeyInfo(can_disable=True), + 'interworking.internet': KeyInfo(can_disable=True), + 'interworking.ipv4-availability': KeyInfo(can_disable=True), + 'interworking.ipv6-availability': KeyInfo(can_disable=True), + 'interworking.network-type': KeyInfo(can_disable=True), + 'interworking.operational-classes': KeyInfo(can_disable=True), + 'interworking.operator-names': KeyInfo(can_disable=True), + 'interworking.realms': KeyInfo(can_disable=True), + 'interworking.roaming-ois': KeyInfo(can_disable=True), + 'interworking.uesa': KeyInfo(can_disable=True), + 'interworking.venue-names': KeyInfo(can_disable=True), + 'interworking.venue': KeyInfo(can_disable=True), + 'interworking.wan-at-capacity': KeyInfo(can_disable=True), + 'interworking.wan-downlink-load': KeyInfo(can_disable=True), + 'interworking.wan-downlink': KeyInfo(can_disable=True), + 'interworking.wan-measurement-duration': KeyInfo(can_disable=True), + 'interworking.wan-status': KeyInfo(can_disable=True), + 'interworking.wan-symmetric': KeyInfo(can_disable=True), + 'interworking.wan-uplink-load': KeyInfo(can_disable=True), + 'interworking.wan-uplink': KeyInfo(can_disable=True), + 'interworking': KeyInfo(can_disable=True), + 'l2mtu': KeyInfo(default=1560), + 'mac-address': KeyInfo(), + 'master-interface': KeyInfo(), + 'mtu': KeyInfo(default=1500), + 'name': KeyInfo(), + 'radio-mac': KeyInfo(), + 'security.authentication-types': KeyInfo(can_disable=True), + 'security.connect-group': KeyInfo(can_disable=True), + 'security.connect-priority': KeyInfo(can_disable=True), + 'security.dh-groups': KeyInfo(can_disable=True), + 'security.disable-pmkid': KeyInfo(can_disable=True), + 'security.eap-accounting': KeyInfo(can_disable=True), + 'security.eap-anonymous-identity': KeyInfo(can_disable=True), + 'security.eap-certificate-mode': KeyInfo(can_disable=True), + 'security.eap-methods': KeyInfo(can_disable=True), + 'security.eap-password': KeyInfo(can_disable=True), + 'security.eap-tls-certificate': KeyInfo(can_disable=True), + 'security.eap-username': KeyInfo(can_disable=True), + 'security.encryption': KeyInfo(can_disable=True), + 'security.ft-mobility-domain': KeyInfo(can_disable=True), + 'security.ft-nas-identifier': KeyInfo(can_disable=True), + 'security.ft-over-ds': KeyInfo(can_disable=True), + 'security.ft-preserve-vlanid': KeyInfo(can_disable=True), + 'security.ft-r0-key-lifetime': KeyInfo(can_disable=True), + 'security.ft-reassociation-deadline': KeyInfo(can_disable=True), + 'security.ft': KeyInfo(can_disable=True), + 'security.group-encryption': KeyInfo(can_disable=True), + 'security.group-key-update': KeyInfo(can_disable=True), + 'security.management-encryption': KeyInfo(can_disable=True), + 'security.management-protection': KeyInfo(can_disable=True), + 'security.owe-transition-interface': KeyInfo(can_disable=True), + 'security.passphrase': KeyInfo(can_disable=True), + 'security.sae-anti-clogging-threshold': KeyInfo(can_disable=True), + 'security.sae-max-failure-rate': KeyInfo(can_disable=True), + 'security.sae-pwe': KeyInfo(can_disable=True), + 'security.wps': KeyInfo(can_disable=True), + 'security': KeyInfo(can_disable=True), + 'steering.neighbor-group': KeyInfo(can_disable=True), + 'steering.rrm': KeyInfo(can_disable=True), + 'steering.wnm': KeyInfo(can_disable=True), + 'steering': KeyInfo(can_disable=True), + }, + )), + ], + ), + ('interface', 'wifi', 'aaa'): APIData( + versioned=[ + ('7.13', '>=', VersionedAPIData( + fully_understood=True, + primary_keys=('name', ), + fields={ + 'called-format': KeyInfo(can_disable=True), + 'calling-format': KeyInfo(can_disable=True), + 'comment': KeyInfo(can_disable=True, remove_value=''), + 'disabled': KeyInfo(default=False), + 'interim-update': KeyInfo(can_disable=True), + 'mac-caching': KeyInfo(can_disable=True), + 'name': KeyInfo(), + 'nas-identifier': KeyInfo(can_disable=True), + 'password-format': KeyInfo(can_disable=True), + 'username-format': KeyInfo(can_disable=True), + }, + )), + ], + ), + ('interface', 'wifi', 'access-list'): APIData( + versioned=[ + ('7.13', '>=', VersionedAPIData( + fully_understood=True, + fields={ + 'action': KeyInfo(default='accept'), + 'allow-signal-out-of-range': KeyInfo(can_disable=True), + 'client-isolation': KeyInfo(can_disable=True), + 'comment': KeyInfo(can_disable=True, remove_value=''), + 'disabled': KeyInfo(default=False), + 'interface': KeyInfo(can_disable=True), + 'mac-address-mask': KeyInfo(can_disable=True), + 'mac-address': KeyInfo(can_disable=True), + 'passphrase': KeyInfo(can_disable=True), + 'radius-accounting': KeyInfo(can_disable=True), + 'signal-range': KeyInfo(can_disable=True), + 'ssid-regexp': KeyInfo(can_disable=True), + 'time': KeyInfo(can_disable=True), + 'vlan-id': KeyInfo(can_disable=True), + }, + )), + ], + ), + ('interface', 'wifi', 'cap'): APIData( + versioned=[ + ('7.13', '>=', VersionedAPIData( + single_value=True, + fully_understood=True, + fields={ + '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), + 'lock-to-caps-man': KeyInfo(default=False), + 'slaves-datapath': KeyInfo(), + 'slaves-static': KeyInfo(), + }, + )), + ], + ), + ('interface', 'wifi', 'capsman'): APIData( + versioned=[ + ('7.13', '>=', VersionedAPIData( + single_value=True, + fully_understood=True, + fields={ + 'ca-certificate': KeyInfo(default=''), + 'certificate': KeyInfo(default='none'), + 'enabled': KeyInfo(default=False), + 'interfaces': KeyInfo(default=''), + 'package-path': KeyInfo(default=''), + 'require-peer-certificate': KeyInfo(default=False), + 'upgrade-policy': KeyInfo(default='none'), + }, + )), + ], + ), + ('interface', 'wifi', 'channel'): APIData( + versioned=[ + ('7.13', '>=', VersionedAPIData( + fully_understood=True, + primary_keys=('name', ), + fields={ + 'band': KeyInfo(can_disable=True), + 'comment': KeyInfo(can_disable=True, remove_value=''), + 'disabled': KeyInfo(default=False), + 'frequency': KeyInfo(can_disable=True), + 'name': KeyInfo(), + 'secondary-frequency': KeyInfo(can_disable=True), + 'skip-dfs-channels': KeyInfo(can_disable=True), + 'width': KeyInfo(can_disable=True), + }, + )), + ], + ), + ('interface', 'wifi', 'configuration'): APIData( + versioned=[ + ('7.13', '>=', VersionedAPIData( + fully_understood=True, + primary_keys=('name', ), + fields={ + 'aaa': KeyInfo(can_disable=True), + 'antenna-gain': KeyInfo(can_disable=True), + 'beacon-interval': KeyInfo(can_disable=True), + 'chains': KeyInfo(can_disable=True), + 'channel': KeyInfo(can_disable=True), + 'comment': KeyInfo(can_disable=True, remove_value=''), + 'country': KeyInfo(can_disable=True), + 'datapath': KeyInfo(can_disable=True), + 'disabled': KeyInfo(default=False), + 'dtim-period': KeyInfo(can_disable=True), + 'hide-ssid': KeyInfo(default=False), + 'interworking': KeyInfo(can_disable=True), + 'manager': KeyInfo(can_disable=True), + 'mode': KeyInfo(can_disable=True), + 'multicast-enhance': KeyInfo(can_disable=True), + 'name': KeyInfo(), + 'qos-classifier': KeyInfo(can_disable=True), + 'security': KeyInfo(can_disable=True), + 'ssid': KeyInfo(can_disable=True), + 'steering': KeyInfo(can_disable=True), + 'tx-chains': KeyInfo(can_disable=True), + 'tx-power': KeyInfo(can_disable=True), + }, + )), + ], + ), + ('interface', 'wifi', 'datapath'): APIData( + versioned=[ + ('7.13', '>=', VersionedAPIData( + fully_understood=True, + primary_keys=('name', ), + fields={ + 'bridge-cost': KeyInfo(can_disable=True), + 'bridge-horizon': KeyInfo(can_disable=True), + 'bridge': KeyInfo(can_disable=True), + 'client-isolation': KeyInfo(can_disable=True), + 'comment': KeyInfo(can_disable=True, remove_value=''), + 'disabled': KeyInfo(default=False), + 'interface-list': KeyInfo(can_disable=True), + 'name': KeyInfo(), + 'vlan-id': KeyInfo(can_disable=True), + }, + )), + ], + ), + ('interface', 'wifi', 'interworking'): APIData( + versioned=[ + ('7.13', '>=', VersionedAPIData( + fully_understood=True, + primary_keys=('name', ), + fields={ + '3gpp-info': KeyInfo(can_disable=True), + 'authentication-types': KeyInfo(can_disable=True), + 'comment': KeyInfo(can_disable=True, remove_value=''), + 'connection-capabilities': KeyInfo(can_disable=True), + 'disabled': KeyInfo(default=False), + 'domain-names': KeyInfo(can_disable=True), + 'esr': KeyInfo(can_disable=True), + 'hessid': KeyInfo(can_disable=True), + 'hotspot20-dgaf': KeyInfo(can_disable=True), + 'hotspot20': KeyInfo(can_disable=True), + 'internet': KeyInfo(can_disable=True), + 'ipv4-availability': KeyInfo(can_disable=True), + 'ipv6-availability': KeyInfo(can_disable=True), + 'name': KeyInfo(), + 'network-type': KeyInfo(can_disable=True), + 'operational-classes': KeyInfo(can_disable=True), + 'operator-names': KeyInfo(can_disable=True), + 'realms': KeyInfo(can_disable=True), + 'roaming-ois': KeyInfo(can_disable=True), + 'uesa': KeyInfo(can_disable=True), + 'venue-names': KeyInfo(can_disable=True), + 'venue': KeyInfo(can_disable=True), + 'wan-at-capacity': KeyInfo(can_disable=True), + 'wan-downlink-load': KeyInfo(can_disable=True), + 'wan-downlink': KeyInfo(can_disable=True), + 'wan-measurement-duration': KeyInfo(can_disable=True), + 'wan-status': KeyInfo(can_disable=True), + 'wan-symmetric': KeyInfo(can_disable=True), + 'wan-uplink-load': KeyInfo(can_disable=True), + 'wan-uplink': KeyInfo(can_disable=True), + }, + )), + ], + ), + ('interface', 'wifi', 'provisioning'): APIData( + versioned=[ + ('7.13', '>=', VersionedAPIData( + fully_understood=True, + primary_keys=('action', ), + fields={ + 'action': KeyInfo(default='none'), + 'address-ranges': KeyInfo(can_disable=True), + 'comment': KeyInfo(can_disable=True, remove_value=''), + 'common-name-regexp': KeyInfo(can_disable=True), + 'disabled': KeyInfo(default=False), + 'identity-regexp': KeyInfo(can_disable=True), + 'master-configuration': KeyInfo(can_disable=True), + 'name-format': KeyInfo(can_disable=True), + 'radio-mac': KeyInfo(can_disable=True), + 'slave-configurations': KeyInfo(can_disable=True), + 'supported-bands': KeyInfo(can_disable=True), + }, + )), + ], + ), + ('interface', 'wifi', 'security'): APIData( + versioned=[ + ('7.13', '>=', VersionedAPIData( + fully_understood=True, + primary_keys=('name', ), + fields={ + 'authentication-types': KeyInfo(can_disable=True), + 'comment': KeyInfo(can_disable=True, remove_value=''), + 'connect-group': KeyInfo(can_disable=True), + 'connect-priority': KeyInfo(can_disable=True), + 'dh-groups': KeyInfo(can_disable=True), + 'disable-pmkid': KeyInfo(can_disable=True), + 'disabled': KeyInfo(default=False), + 'eap-accounting': KeyInfo(can_disable=True), + 'eap-anonymous-identity': KeyInfo(can_disable=True), + 'eap-certificate-mode': KeyInfo(can_disable=True), + 'eap-methods': KeyInfo(can_disable=True), + 'eap-password': KeyInfo(can_disable=True), + 'eap-tls-certificate': KeyInfo(can_disable=True), + 'eap-username': KeyInfo(can_disable=True), + 'encryption': KeyInfo(can_disable=True), + 'ft-mobility-domain': KeyInfo(can_disable=True), + 'ft-nas-identifier': KeyInfo(can_disable=True), + 'ft-over-ds': KeyInfo(can_disable=True), + 'ft-preserve-vlanid': KeyInfo(can_disable=True), + 'ft-r0-key-lifetime': KeyInfo(can_disable=True), + 'ft-reassociation-deadline': KeyInfo(can_disable=True), + 'ft': KeyInfo(can_disable=True), + 'group-encryption': KeyInfo(can_disable=True), + 'group-key-update': KeyInfo(can_disable=True), + 'management-encryption': KeyInfo(can_disable=True), + 'management-protection': KeyInfo(can_disable=True), + 'name': KeyInfo(), + 'owe-transition-interface': KeyInfo(can_disable=True), + 'passphrase': KeyInfo(can_disable=True), + 'sae-anti-clogging-threshold': KeyInfo(can_disable=True), + 'sae-max-failure-rate': KeyInfo(can_disable=True), + 'sae-pwe': KeyInfo(can_disable=True), + 'wps': KeyInfo(can_disable=True), + }, + )), + ], + ), + ('interface', 'wifi', 'steering'): APIData( + versioned=[ + ('7.13', '>=', VersionedAPIData( + fully_understood=True, + primary_keys=('name', ), + fields={ + 'comment': KeyInfo(can_disable=True, remove_value=''), + 'disabled': KeyInfo(default=False), + 'name': KeyInfo(), + 'neighbor-group': KeyInfo(can_disable=True), + 'rrm': KeyInfo(can_disable=True), + 'wnm': KeyInfo(can_disable=True), + }, + )), + ], + ), ('interface', 'wifiwave2'): APIData( versioned=[ ('7.13', '>=', 'RouterOS 7.13 uses WiFi package'), diff --git a/plugins/modules/api_info.py b/plugins/modules/api_info.py index 216b2ab..f9a3946 100644 --- a/plugins/modules/api_info.py +++ b/plugins/modules/api_info.py @@ -79,6 +79,18 @@ options: - interface sstp-server server - interface vlan - interface vrrp + - interface wifi + - interface wifi aaa + - interface wifi access-list + - interface wifi cap + - interface wifi capsman + - interface wifi channel + - interface wifi configuration + - interface wifi datapath + - interface wifi interworking + - interface wifi provisioning + - interface wifi security + - interface wifi steering - interface wifiwave2 - interface wifiwave2 aaa - interface wifiwave2 access-list diff --git a/plugins/modules/api_modify.py b/plugins/modules/api_modify.py index d9104bf..d717500 100644 --- a/plugins/modules/api_modify.py +++ b/plugins/modules/api_modify.py @@ -88,6 +88,18 @@ options: - interface sstp-server server - interface vlan - interface vrrp + - interface wifi + - interface wifi aaa + - interface wifi access-list + - interface wifi cap + - interface wifi capsman + - interface wifi channel + - interface wifi configuration + - interface wifi datapath + - interface wifi interworking + - interface wifi provisioning + - interface wifi security + - interface wifi steering - interface wifiwave2 - interface wifiwave2 aaa - interface wifiwave2 access-list