├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── ci-pipeline-issue.md │ ├── documentation-update.md │ └── feature_request.md ├── dependabot.yml ├── scripts │ ├── setup_routeros.go │ └── setup_routeros.py └── workflows │ ├── go-mod-cache.yml │ ├── module_testing.yml │ └── release.yml ├── .gitignore ├── .goreleaser.yml ├── .releaserc ├── CHANGELOG.md ├── CODEOWNERS ├── LICENSE.md ├── Makefile ├── README.md ├── docs ├── data-sources │ ├── files.md │ ├── firewall.md │ ├── interface_bridge_filter.md │ ├── interfaces.md │ ├── ip_addresses.md │ ├── ip_arp.md │ ├── ip_dhcp_server_leases.md │ ├── ip_firewall.md │ ├── ip_routes.md │ ├── ip_services.md │ ├── ipv6_addresses.md │ ├── ipv6_firewall.md │ ├── system_resource.md │ ├── system_routerboard.md │ ├── wifi_easy_connect.md │ └── x509.md ├── guides │ ├── certificate_rotation.md │ ├── easy_import.md │ └── install_package.md ├── index.md └── resources │ ├── bridge.md │ ├── bridge_mlag.md │ ├── bridge_port.md │ ├── bridge_vlan.md │ ├── capsman_aaa.md │ ├── capsman_access_list.md │ ├── capsman_channel.md │ ├── capsman_configuration.md │ ├── capsman_datapath.md │ ├── capsman_interface.md │ ├── capsman_manager.md │ ├── capsman_manager_interface.md │ ├── capsman_provisioning.md │ ├── capsman_rates.md │ ├── capsman_security.md │ ├── certificate_scep_server.md │ ├── container.md │ ├── container_config.md │ ├── container_envs.md │ ├── container_mounts.md │ ├── dhcp_client.md │ ├── dhcp_client_option.md │ ├── dhcp_server.md │ ├── dhcp_server_lease.md │ ├── dhcp_server_network.md │ ├── disk_settings.md │ ├── dns.md │ ├── dns_record.md │ ├── file.md │ ├── firewall_addr_list.md │ ├── firewall_filter.md │ ├── firewall_mangle.md │ ├── firewall_nat.md │ ├── gre.md │ ├── identity.md │ ├── interface_6to4.md │ ├── interface_bonding.md │ ├── interface_bridge.md │ ├── interface_bridge_filter.md │ ├── interface_bridge_port.md │ ├── interface_bridge_settings.md │ ├── interface_bridge_vlan.md │ ├── interface_dot1x_client.md │ ├── interface_dot1x_server.md │ ├── interface_eoip.md │ ├── interface_ethernet.md │ ├── interface_ethernet_switch.md │ ├── interface_ethernet_switch_host.md │ ├── interface_ethernet_switch_port.md │ ├── interface_ethernet_switch_port_isolation.md │ ├── interface_ethernet_switch_rule.md │ ├── interface_ethernet_switch_vlan.md │ ├── interface_gre.md │ ├── interface_gre6.md │ ├── interface_ipip.md │ ├── interface_l2tp_client.md │ ├── interface_list.md │ ├── interface_list_member.md │ ├── interface_lte.md │ ├── interface_lte_apn.md │ ├── interface_macvlan.md │ ├── interface_ovpn_client.md │ ├── interface_ovpn_server.md │ ├── interface_pppoe_client.md │ ├── interface_pppoe_server.md │ ├── interface_sstp_client.md │ ├── interface_sstp_server.md │ ├── interface_veth.md │ ├── interface_vlan.md │ ├── interface_vrrp.md │ ├── interface_vxlan.md │ ├── interface_vxlan_vteps.md │ ├── interface_w60g.md │ ├── interface_w60g_station.md │ ├── interface_wireguard.md │ ├── interface_wireguard_peer.md │ ├── interface_wireless.md │ ├── interface_wireless_access_list.md │ ├── interface_wireless_cap.md │ ├── interface_wireless_connect_list.md │ ├── interface_wireless_security_profiles.md │ ├── ip_address.md │ ├── ip_cloud.md │ ├── ip_cloud_advanced.md │ ├── ip_dhcp_client.md │ ├── ip_dhcp_client_option.md │ ├── ip_dhcp_relay.md │ ├── ip_dhcp_server.md │ ├── ip_dhcp_server_config.md │ ├── ip_dhcp_server_lease.md │ ├── ip_dhcp_server_network.md │ ├── ip_dhcp_server_option.md │ ├── ip_dhcp_server_option_set.md │ ├── ip_dns.md │ ├── ip_dns_adlist.md │ ├── ip_dns_record.md │ ├── ip_firewall_addr_list.md │ ├── ip_firewall_connection_tracking.md │ ├── ip_firewall_filter.md │ ├── ip_firewall_mangle.md │ ├── ip_firewall_nat.md │ ├── ip_firewall_raw.md │ ├── ip_hotspot.md │ ├── ip_hotspot_ip_binding.md │ ├── ip_hotspot_profile.md │ ├── ip_hotspot_service_port.md │ ├── ip_hotspot_user.md │ ├── ip_hotspot_user_profile.md │ ├── ip_hotspot_walled_garden.md │ ├── ip_hotspot_walled_garden_ip.md │ ├── ip_ipsec_identity.md │ ├── ip_ipsec_key.md │ ├── ip_ipsec_mode_config.md │ ├── ip_ipsec_peer.md │ ├── ip_ipsec_policy.md │ ├── ip_ipsec_policy_group.md │ ├── ip_ipsec_profile.md │ ├── ip_ipsec_proposal.md │ ├── ip_ipsec_settings.md │ ├── ip_neighbor_discovery_settings.md │ ├── ip_pool.md │ ├── ip_route.md │ ├── ip_service.md │ ├── ip_settings.md │ ├── ip_smb.md │ ├── ip_ssh_server.md │ ├── ip_upnp.md │ ├── ip_upnp_interfaces.md │ ├── ip_vrf.md │ ├── ipip.md │ ├── ipv6_address.md │ ├── ipv6_dhcp_client.md │ ├── ipv6_dhcp_client_option.md │ ├── ipv6_dhcp_server.md │ ├── ipv6_dhcp_server_option.md │ ├── ipv6_dhcp_server_option_sets.md │ ├── ipv6_firewall_addr_list.md │ ├── ipv6_firewall_filter.md │ ├── ipv6_firewall_mangle.md │ ├── ipv6_firewall_nat.md │ ├── ipv6_nd_prefix.md │ ├── ipv6_neighbor_discovery.md │ ├── ipv6_pool.md │ ├── ipv6_route.md │ ├── ipv6_settings.md │ ├── move_items.md │ ├── ovpn_server.md │ ├── ppp_aaa.md │ ├── ppp_profile.md │ ├── ppp_secret.md │ ├── queue_simple.md │ ├── queue_tree.md │ ├── queue_type.md │ ├── radius.md │ ├── radius_incoming.md │ ├── routing_bgp_connection.md │ ├── routing_bgp_template.md │ ├── routing_filter_rule.md │ ├── routing_ospf_area.md │ ├── routing_ospf_instance.md │ ├── routing_ospf_interface_template.md │ ├── routing_rule.md │ ├── routing_table.md │ ├── scheduler.md │ ├── snmp.md │ ├── snmp_community.md │ ├── system_certificate.md │ ├── system_certificate_scep_server.md │ ├── system_clock.md │ ├── system_identity.md │ ├── system_led.md │ ├── system_led_settings.md │ ├── system_logging.md │ ├── system_logging_action.md │ ├── system_note.md │ ├── system_ntp_client.md │ ├── system_ntp_server.md │ ├── system_routerboard_button_mode.md │ ├── system_routerboard_button_reset.md │ ├── system_routerboard_button_wps.md │ ├── system_routerboard_settings.md │ ├── system_routerboard_usb.md │ ├── system_scheduler.md │ ├── system_script.md │ ├── system_user.md │ ├── system_user_aaa.md │ ├── system_user_group.md │ ├── system_user_settings.md │ ├── system_user_sshkeys.md │ ├── tool_bandwidth_server.md │ ├── tool_email.md │ ├── tool_graphing_interface.md │ ├── tool_graphing_queue.md │ ├── tool_graphing_resource.md │ ├── tool_mac_server.md │ ├── tool_mac_server_ping.md │ ├── tool_mac_server_winbox.md │ ├── tool_netwatch.md │ ├── tool_sniffer.md │ ├── user_manager_advanced.md │ ├── user_manager_attribute.md │ ├── user_manager_database.md │ ├── user_manager_limitation.md │ ├── user_manager_profile.md │ ├── user_manager_profile_limitation.md │ ├── user_manager_router.md │ ├── user_manager_settings.md │ ├── user_manager_user.md │ ├── user_manager_user_group.md │ ├── user_manager_user_profile.md │ ├── vlan.md │ ├── vrrp.md │ ├── wifi.md │ ├── wifi_aaa.md │ ├── wifi_access_list.md │ ├── wifi_cap.md │ ├── wifi_capsman.md │ ├── wifi_channel.md │ ├── wifi_configuration.md │ ├── wifi_datapath.md │ ├── wifi_interworking.md │ ├── wifi_provisioning.md │ ├── wifi_security.md │ ├── wifi_security_multi_passphrase.md │ ├── wifi_steering.md │ ├── wireguard.md │ ├── wireguard_keys.md │ ├── wireguard_peer.md │ ├── zerotier.md │ ├── zerotier_controller.md │ └── zerotier_interface.md ├── examples ├── data-sources │ ├── routeros_files │ │ └── data-source.tf │ ├── routeros_interface_bridge_filter │ │ └── data-source.tf │ ├── routeros_interfaces │ │ └── data-source.tf │ ├── routeros_ip_addresses │ │ └── data-source.tf │ ├── routeros_ip_arp │ │ └── data-source.tf │ ├── routeros_ip_dhcp_server_leases │ │ └── data-source.tf │ ├── routeros_ip_firewall │ │ └── data-source.tf │ ├── routeros_ip_routes │ │ └── data-source.tf │ ├── routeros_ip_services │ │ └── data-source.tf │ ├── routeros_ipv6_addresses │ │ └── data-source.tf │ ├── routeros_system_resource │ │ └── data-source.tf │ ├── routeros_system_routerboard │ │ └── data-source.tf │ ├── routeros_wifi_easy_connect │ │ └── data-source.tf │ └── routeros_x509 │ │ └── data-source.tf ├── provider │ └── provider.tf └── resources │ ├── routeros_bgp_connection │ ├── import.sh │ └── resource.tf │ ├── routeros_bgp_template │ ├── import.sh │ └── resource.tf │ ├── routeros_bridge_mlag │ ├── import.sh │ └── resource.tf │ ├── routeros_capsman_aaa │ ├── import.sh │ └── resource.tf │ ├── routeros_capsman_access_list │ ├── import.sh │ └── resource.tf │ ├── routeros_capsman_channel │ ├── import.sh │ └── resource.tf │ ├── routeros_capsman_configuration │ ├── import.sh │ └── resource.tf │ ├── routeros_capsman_datapath │ ├── import.sh │ └── resource.tf │ ├── routeros_capsman_interface │ ├── import.sh │ └── resource.tf │ ├── routeros_capsman_manager │ ├── import.sh │ └── resource.tf │ ├── routeros_capsman_manager_interface │ ├── import.sh │ └── resource.tf │ ├── routeros_capsman_provisioning │ ├── import.sh │ └── resource.tf │ ├── routeros_capsman_rates │ ├── import.sh │ └── resource.tf │ ├── routeros_capsman_security │ ├── import.sh │ └── resource.tf │ ├── routeros_container │ ├── import.sh │ └── resource.tf │ ├── routeros_container_config │ ├── import.sh │ └── resource.tf │ ├── routeros_container_envs │ ├── import.sh │ └── resource.tf │ ├── routeros_container_mounts │ ├── import.sh │ └── resource.tf │ ├── routeros_disk_settings │ ├── import.sh │ └── resource.tf │ ├── routeros_file │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_6to4 │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_bonding │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_bridge │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_bridge_filter │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_bridge_port │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_bridge_settings │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_bridge_vlan │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_dot1x_client │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_dot1x_server │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_eoip │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_ethernet │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_ethernet_switch │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_ethernet_switch_host │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_ethernet_switch_port │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_ethernet_switch_port_isolation │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_ethernet_switch_rule │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_ethernet_switch_vlan │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_gre │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_gre6 │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_ipip │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_l2tp_client │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_list │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_list_member │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_lte │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_lte_apn │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_macvlan │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_ovpn_server │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_pppoe_client │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_pppoe_server │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_veth │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_vlan │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_vrrp │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_vxlan │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_vxlan_vteps │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_w60g │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_w60g_station │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_wireguard │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_wireguard_peer │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_wireless │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_wireless_access_list │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_wireless_cap │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_wireless_connect_list │ ├── import.sh │ └── resource.tf │ ├── routeros_interface_wireless_security_profiles │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_address │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_cloud │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_cloud_advanced │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_dhcp_client │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_dhcp_client_option │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_dhcp_relay │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_dhcp_server │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_dhcp_server_config │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_dhcp_server_lease │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_dhcp_server_network │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_dhcp_server_option │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_dhcp_server_option_set │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_dns │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_dns_adlist │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_dns_record │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_firewall_addr_list │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_firewall_connection_tracking │ └── resource.tf │ ├── routeros_ip_firewall_filter │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_firewall_mangle │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_firewall_nat │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_hotspot │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_hotspot_ip_binding │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_hotspot_profile │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_hotspot_service_port │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_hotspot_user │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_hotspot_user_profile │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_hotspot_walled_garden │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_hotspot_walled_garden_ip │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_ipsec_identity │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_ipsec_key │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_ipsec_mode_config │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_ipsec_peer │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_ipsec_policy │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_ipsec_policy_group │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_ipsec_profile │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_ipsec_proposal │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_ipsec_settings │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_neighbor_discovery_settings │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_pool │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_route │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_service │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_settings │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_smb │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_ssh_server │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_upnp │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_upnp_interfaces │ ├── import.sh │ └── resource.tf │ ├── routeros_ip_vrf │ ├── import.sh │ └── resource.tf │ ├── routeros_ipv6_address │ ├── import.sh │ └── resource.tf │ ├── routeros_ipv6_dhcp_client │ ├── import.sh │ └── resource.tf │ ├── routeros_ipv6_dhcp_client_option │ ├── import.sh │ └── resource.tf │ ├── routeros_ipv6_dhcp_server │ ├── import.sh │ └── resource.tf │ ├── routeros_ipv6_dhcp_server_option │ ├── import.sh │ └── resource.tf │ ├── routeros_ipv6_dhcp_server_option_sets │ ├── import.sh │ └── resource.tf │ ├── routeros_ipv6_firewall_addr_list │ ├── import.sh │ └── resource.tf │ ├── routeros_ipv6_firewall_filter │ ├── import.sh │ └── resource.tf │ ├── routeros_ipv6_firewall_mangle │ ├── import.sh │ └── resource.tf │ ├── routeros_ipv6_firewall_nat │ ├── import.sh │ └── resource.tf │ ├── routeros_ipv6_nd_prefix │ ├── import.sh │ └── resource.tf │ ├── routeros_ipv6_neighbor_discovery │ ├── import.sh │ └── resource.tf │ ├── routeros_ipv6_pool │ ├── import.sh │ └── resource.tf │ ├── routeros_ipv6_route │ ├── import.sh │ └── resource.tf │ ├── routeros_ipv6_settings │ ├── import.sh │ └── resource.tf │ ├── routeros_move_items │ └── resource.tf │ ├── routeros_ovpn_server │ ├── import.sh │ └── resource.tf │ ├── routeros_ppp_aaa │ ├── import.sh │ └── resource.tf │ ├── routeros_ppp_profile │ ├── import.sh │ └── resource.tf │ ├── routeros_ppp_secret │ ├── import.sh │ └── resource.tf │ ├── routeros_queue_simple │ ├── import.sh │ └── resource.tf │ ├── routeros_queue_tree │ ├── import.sh │ └── resource.tf │ ├── routeros_queue_type │ ├── import.sh │ └── resource.tf │ ├── routeros_radius │ ├── import.sh │ └── resource.tf │ ├── routeros_radius_incoming │ ├── import.sh │ └── resource.tf │ ├── routeros_routing_filter_rule │ ├── import.sh │ └── resource.tf │ ├── routeros_routing_ospf_area │ ├── import.sh │ └── resource.tf │ ├── routeros_routing_ospf_instance │ ├── import.sh │ └── resource.tf │ ├── routeros_routing_ospf_interface_template │ ├── import.sh │ └── resource.tf │ ├── routeros_routing_rule │ ├── import.sh │ └── resource.tf │ ├── routeros_routing_table │ ├── import.sh │ └── resource.tf │ ├── routeros_snmp │ ├── import.sh │ └── resource.tf │ ├── routeros_snmp_community │ ├── import.sh │ └── resource.tf │ ├── routeros_system_certificate │ ├── import.sh │ └── resource.tf │ ├── routeros_system_certificate_scep_server │ ├── import.sh │ └── resource.tf │ ├── routeros_system_clock │ ├── import.sh │ └── resource.tf │ ├── routeros_system_identity │ ├── import.sh │ └── resource.tf │ ├── routeros_system_led │ ├── import.sh │ └── resource.tf │ ├── routeros_system_led_settings │ ├── import.sh │ └── resource.tf │ ├── routeros_system_logging │ ├── import.sh │ └── resource.tf │ ├── routeros_system_note │ ├── import.sh │ └── resource.tf │ ├── routeros_system_ntp_client │ ├── import.sh │ └── resource.tf │ ├── routeros_system_ntp_server │ ├── import.sh │ └── resource.tf │ ├── routeros_system_routerboard_button_mode │ ├── import.sh │ └── resource.tf │ ├── routeros_system_routerboard_button_reset │ ├── import.sh │ └── resource.tf │ ├── routeros_system_routerboard_button_wps │ ├── import.sh │ └── resource.tf │ ├── routeros_system_routerboard_settings │ ├── import.sh │ └── resource.tf │ ├── routeros_system_routerboard_usb │ ├── import.sh │ └── resource.tf │ ├── routeros_system_scheduler │ ├── import.sh │ └── resource.tf │ ├── routeros_system_script │ ├── import.sh │ └── resource.tf │ ├── routeros_system_user │ ├── import.sh │ └── resource.tf │ ├── routeros_system_user_aaa │ ├── import.sh │ └── resource.tf │ ├── routeros_system_user_group │ ├── import.sh │ └── resource.tf │ ├── routeros_system_user_settings │ ├── import.sh │ └── resource.tf │ ├── routeros_system_user_sshkeys │ ├── import.sh │ └── resource.tf │ ├── routeros_tool_bandwidth_server │ ├── import.sh │ └── resource.tf │ ├── routeros_tool_graphing_interface │ ├── import.sh │ └── resource.tf │ ├── routeros_tool_graphing_queue │ ├── import.sh │ └── resource.tf │ ├── routeros_tool_graphing_resource │ ├── import.sh │ └── resource.tf │ ├── routeros_tool_mac_server │ ├── import.sh │ └── resource.tf │ ├── routeros_tool_mac_server_ping │ ├── import.sh │ └── resource.tf │ ├── routeros_tool_mac_server_winbox │ ├── import.sh │ └── resource.tf │ ├── routeros_tool_netwatch │ ├── import.sh │ └── resource.tf │ ├── routeros_tool_sniffer │ ├── import.sh │ └── resource.tf │ ├── routeros_user_manager_advanced │ ├── import.sh │ └── resource.tf │ ├── routeros_user_manager_attribute │ ├── import.sh │ └── resource.tf │ ├── routeros_user_manager_database │ ├── import.sh │ └── resource.tf │ ├── routeros_user_manager_limitation │ ├── import.sh │ └── resource.tf │ ├── routeros_user_manager_profile │ ├── import.sh │ └── resource.tf │ ├── routeros_user_manager_profile_limitation │ ├── import.sh │ └── resource.tf │ ├── routeros_user_manager_router │ ├── import.sh │ └── resource.tf │ ├── routeros_user_manager_settings │ ├── import.sh │ └── resource.tf │ ├── routeros_user_manager_user │ ├── import.sh │ └── resource.tf │ ├── routeros_user_manager_user_group │ ├── import.sh │ └── resource.tf │ ├── routeros_user_manager_user_profile │ ├── import.sh │ └── resource.tf │ ├── routeros_wifi │ ├── import.sh │ └── resource.tf │ ├── routeros_wifi_aaa │ ├── import.sh │ └── resource.tf │ ├── routeros_wifi_access_list │ ├── import.sh │ └── resource.tf │ ├── routeros_wifi_cap │ ├── import.sh │ └── resource.tf │ ├── routeros_wifi_capsman │ ├── import.sh │ └── resource.tf │ ├── routeros_wifi_channel │ ├── import.sh │ └── resource.tf │ ├── routeros_wifi_configuration │ ├── import.sh │ └── resource.tf │ ├── routeros_wifi_datapath │ ├── import.sh │ └── resource.tf │ ├── routeros_wifi_interworking │ ├── import.sh │ └── resource.tf │ ├── routeros_wifi_provisioning │ ├── import.sh │ └── resource.tf │ ├── routeros_wifi_security │ ├── import.sh │ └── resource.tf │ ├── routeros_wifi_security_multi_passphrase │ ├── import.sh │ └── resource.tf │ ├── routeros_wifi_steering │ ├── import.sh │ └── resource.tf │ ├── routeros_wireguard_keys │ └── resource.tf │ ├── routeros_zerotier │ ├── import.sh │ └── resource.tf │ ├── routeros_zerotier_controller │ ├── import.sh │ └── resource.tf │ └── routeros_zerotier_interface │ ├── import.sh │ └── resource.tf ├── go.mod ├── go.sum ├── main.go ├── package.json ├── routeros ├── datasource_files.go ├── datasource_files_test.go ├── datasource_interface_bridge_filter.go ├── datasource_interface_bridge_filter_test.go ├── datasource_interfaces.go ├── datasource_interfaces_test.go ├── datasource_ip_address_test.go ├── datasource_ip_addresses.go ├── datasource_ip_arp.go ├── datasource_ip_arp_test.go ├── datasource_ip_dhcp_server_leases.go ├── datasource_ip_firewall.go ├── datasource_ip_firewall_addr_list.go ├── datasource_ip_firewall_filter.go ├── datasource_ip_firewall_mangle.go ├── datasource_ip_firewall_nat.go ├── datasource_ip_firewall_test.go ├── datasource_ip_routes.go ├── datasource_ip_routes_test.go ├── datasource_ip_services.go ├── datasource_ipv6_addresses.go ├── datasource_ipv6_addresses_test.go ├── datasource_ipv6_firewall.go ├── datasource_ipv6_firewall_filter.go ├── datasource_ipv6_firewall_mangle.go ├── datasource_ipv6_firewall_nat.go ├── datasource_ipv6_firewall_test.go ├── datasource_system_resource.go ├── datasource_system_resource_test.go ├── datasource_system_routerboard.go ├── datasource_system_routerboard_test.go ├── datasource_wifi_easy_connect.go ├── datasource_wifi_easy_connect_test.go ├── datasource_x509.go ├── datasource_x509_test.go ├── log.go ├── mikrotik.go ├── mikrotik_client.go ├── mikrotik_client_api.go ├── mikrotik_client_rest.go ├── mikrotik_client_transport_test.go ├── mikrotik_crud.go ├── mikrotik_resource_drift.go ├── mikrotik_resource_drift.yaml ├── mikrotik_resource_drift_implementation.go ├── mikrotik_serialize.go ├── mikrotik_serialize_test.go ├── mikrotik_test.go ├── parse_data_information_units.go ├── parse_data_information_units_test.go ├── parse_duration.go ├── parse_duration_test.go ├── parse_iprange.go ├── parse_iprange_test.go ├── provider.go ├── provider_resource_state_migration.go ├── provider_schema_helpers.go ├── provider_schema_helpers_test.go ├── provider_test.go ├── resource_actions.go ├── resource_actions_default.go ├── resource_actions_default_system.go ├── resource_actions_test.go ├── resource_bgp_connection.go ├── resource_bgp_connection_test.go ├── resource_bgp_template.go ├── resource_bgp_template_test.go ├── resource_capsman_access_list.go ├── resource_capsman_channel.go ├── resource_capsman_channel_test.go ├── resource_capsman_channel_v0.go ├── resource_capsman_channel_v1.go ├── resource_capsman_configuration.go ├── resource_capsman_configuration_test.go ├── resource_capsman_configuration_v0.go ├── resource_capsman_datapath.go ├── resource_capsman_datapath_test.go ├── resource_capsman_datapath_v0.go ├── resource_capsman_interface.go ├── resource_capsman_manager.go ├── resource_capsman_manager_test.go ├── resource_capsman_provisioning.go ├── resource_capsman_provisioning_test.go ├── resource_capsman_provisioning_v0.go ├── resource_capsman_rates.go ├── resource_capsman_rates_test.go ├── resource_capsman_rates_v0.go ├── resource_capsman_security.go ├── resource_capsman_security_test.go ├── resource_capsman_security_v0.go ├── resource_container.go ├── resource_container_config.go ├── resource_container_envs.go ├── resource_container_mounts.go ├── resource_disk_settings.go ├── resource_disk_settings_test.go ├── resource_file.go ├── resource_file_test.go ├── resource_interface_6to4.go ├── resource_interface_6to4_test.go ├── resource_interface_bonding.go ├── resource_interface_bonding_test.go ├── resource_interface_bridge.go ├── resource_interface_bridge_filter.go ├── resource_interface_bridge_filter_test.go ├── resource_interface_bridge_mlag _test.go ├── resource_interface_bridge_mlag.go ├── resource_interface_bridge_port.go ├── resource_interface_bridge_port_test.go ├── resource_interface_bridge_settings.go ├── resource_interface_bridge_settings_test.go ├── resource_interface_bridge_test.go ├── resource_interface_bridge_v0.go ├── resource_interface_bridge_vlan.go ├── resource_interface_bridge_vlan_test.go ├── resource_interface_bridge_vlan_v0.go ├── resource_interface_dot1x.go ├── resource_interface_dot1x_v0.go ├── resource_interface_eoip.go ├── resource_interface_eoip_v0.go ├── resource_interface_ethernet.go ├── resource_interface_ethernet_switch.go ├── resource_interface_ethernet_switch_host.go ├── resource_interface_ethernet_switch_host_test.go ├── resource_interface_ethernet_switch_port.go ├── resource_interface_ethernet_switch_port_isolation.go ├── resource_interface_ethernet_switch_port_isolation_test.go ├── resource_interface_ethernet_switch_port_test.go ├── resource_interface_ethernet_switch_rule.go ├── resource_interface_ethernet_switch_rule_test.go ├── resource_interface_ethernet_switch_test.go ├── resource_interface_ethernet_switch_vlan.go ├── resource_interface_ethernet_switch_vlan_test.go ├── resource_interface_ethernet_test.go ├── resource_interface_gre.go ├── resource_interface_gre6.go ├── resource_interface_gre6_test.go ├── resource_interface_gre_test.go ├── resource_interface_gre_v0.go ├── resource_interface_ipip.go ├── resource_interface_ipip_test.go ├── resource_interface_l2tp_client.go ├── resource_interface_l2tp_client_test.go ├── resource_interface_list.go ├── resource_interface_list_member.go ├── resource_interface_list_member_test.go ├── resource_interface_list_test.go ├── resource_interface_list_v0.go ├── resource_interface_lte.go ├── resource_interface_lte_apn.go ├── resource_interface_lte_apn_test.go ├── resource_interface_macvlan.go ├── resource_interface_macvlan_test.go ├── resource_interface_ovpn_server.go ├── resource_interface_pppoe_client.go ├── resource_interface_pppoe_client_test.go ├── resource_interface_pppoe_server.go ├── resource_interface_pppoe_server_test.go ├── resource_interface_sstp_client.go ├── resource_interface_sstp_server.go ├── resource_interface_veth.go ├── resource_interface_veth_test.go ├── resource_interface_vlan.go ├── resource_interface_vlan_test.go ├── resource_interface_vlan_v0.go ├── resource_interface_vrrp.go ├── resource_interface_vrrp_test.go ├── resource_interface_vrrp_v0.go ├── resource_interface_vxlan.go ├── resource_interface_vxlan_test.go ├── resource_interface_vxlan_vteps.go ├── resource_interface_vxlan_vteps_test.go ├── resource_interface_w60g.go ├── resource_interface_w60g_station.go ├── resource_interface_w60g_station_test.go ├── resource_interface_w60g_test.go ├── resource_interface_wireguard.go ├── resource_interface_wireguard_peer.go ├── resource_interface_wireguard_peer_test.go ├── resource_interface_wireguard_test.go ├── resource_interface_wireguard_v0.go ├── resource_interface_wireless.go ├── resource_interface_wireless_access_list.go ├── resource_interface_wireless_access_list_test.go ├── resource_interface_wireless_cap.go ├── resource_interface_wireless_connect_list.go ├── resource_interface_wireless_security_profiles.go ├── resource_interface_wireless_security_profiles_test.go ├── resource_interface_wireless_test.go ├── resource_ip_address.go ├── resource_ip_address_test.go ├── resource_ip_cloud.go ├── resource_ip_cloud_advanced.go ├── resource_ip_cloud_advanced_test.go ├── resource_ip_cloud_test.go ├── resource_ip_dhcp_client.go ├── resource_ip_dhcp_client_option.go ├── resource_ip_dhcp_client_option_test.go ├── resource_ip_dhcp_client_test.go ├── resource_ip_dhcp_relay.go ├── resource_ip_dhcp_relay_test.go ├── resource_ip_dhcp_server.go ├── resource_ip_dhcp_server_config.go ├── resource_ip_dhcp_server_lease.go ├── resource_ip_dhcp_server_lease_test.go ├── resource_ip_dhcp_server_network.go ├── resource_ip_dhcp_server_network_test.go ├── resource_ip_dhcp_server_network_v0.go ├── resource_ip_dhcp_server_option.go ├── resource_ip_dhcp_server_option_sets.go ├── resource_ip_dhcp_server_option_sets_test.go ├── resource_ip_dhcp_server_option_test.go ├── resource_ip_dhcp_server_test.go ├── resource_ip_dhcp_server_v0.go ├── resource_ip_dns.go ├── resource_ip_dns_adlist.go ├── resource_ip_dns_adlist_test.go ├── resource_ip_dns_record.go ├── resource_ip_dns_record_test.go ├── resource_ip_dns_test.go ├── resource_ip_dns_v0.go ├── resource_ip_firewall_addr_list.go ├── resource_ip_firewall_addr_list_test.go ├── resource_ip_firewall_connection_tracking.go ├── resource_ip_firewall_connection_tracking_test.go ├── resource_ip_firewall_filter.go ├── resource_ip_firewall_filter_test.go ├── resource_ip_firewall_mangle.go ├── resource_ip_firewall_mangle_test.go ├── resource_ip_firewall_nat.go ├── resource_ip_firewall_nat_test.go ├── resource_ip_firewall_raw.go ├── resource_ip_firewall_raw_test.go ├── resource_ip_hotspot.go ├── resource_ip_hotspot_ip_binding.go ├── resource_ip_hotspot_ip_binding_test.go ├── resource_ip_hotspot_profile.go ├── resource_ip_hotspot_profile_test.go ├── resource_ip_hotspot_service_port.go ├── resource_ip_hotspot_service_port_test.go ├── resource_ip_hotspot_test.go ├── resource_ip_hotspot_user.go ├── resource_ip_hotspot_user_profile.go ├── resource_ip_hotspot_user_profile_test.go ├── resource_ip_hotspot_user_test.go ├── resource_ip_hotspot_walled_garden.go ├── resource_ip_hotspot_walled_garden_ip.go ├── resource_ip_hotspot_walled_garden_ip_test.go ├── resource_ip_hotspot_walled_garden_test.go ├── resource_ip_ipsec_identity.go ├── resource_ip_ipsec_identity_test.go ├── resource_ip_ipsec_key.go ├── resource_ip_ipsec_key_test.go ├── resource_ip_ipsec_mode_config.go ├── resource_ip_ipsec_mode_config_test.go ├── resource_ip_ipsec_peer.go ├── resource_ip_ipsec_peer_test.go ├── resource_ip_ipsec_policy.go ├── resource_ip_ipsec_policy_group.go ├── resource_ip_ipsec_policy_group_test.go ├── resource_ip_ipsec_policy_test.go ├── resource_ip_ipsec_profile.go ├── resource_ip_ipsec_profile_test.go ├── resource_ip_ipsec_proposal.go ├── resource_ip_ipsec_proposal_test.go ├── resource_ip_ipsec_settings.go ├── resource_ip_ipsec_settings_test.go ├── resource_ip_neighbor_discovery.go ├── resource_ip_neighbor_discovery_test.go ├── resource_ip_pool.go ├── resource_ip_pool_test.go ├── resource_ip_pool_v0.go ├── resource_ip_route.go ├── resource_ip_route_test.go ├── resource_ip_service.go ├── resource_ip_service_test.go ├── resource_ip_settings.go ├── resource_ip_settings_test.go ├── resource_ip_smb.go ├── resource_ip_smb_test.go ├── resource_ip_ssh_server.go ├── resource_ip_ssh_server_test.go ├── resource_ip_upnp.go ├── resource_ip_upnp_interfaces.go ├── resource_ip_upnp_interfaces_test.go ├── resource_ip_upnp_test.go ├── resource_ip_vrf.go ├── resource_ip_vrf_test.go ├── resource_ipv6_address.go ├── resource_ipv6_address_test.go ├── resource_ipv6_dhcp_client.go ├── resource_ipv6_dhcp_client_option.go ├── resource_ipv6_dhcp_client_option_test.go ├── resource_ipv6_dhcp_client_test.go ├── resource_ipv6_dhcp_server.go ├── resource_ipv6_dhcp_server_option.go ├── resource_ipv6_dhcp_server_option_sets.go ├── resource_ipv6_dhcp_server_option_sets_test.go ├── resource_ipv6_dhcp_server_option_test.go ├── resource_ipv6_dhcp_server_test.go ├── resource_ipv6_firewall_addr_list.go ├── resource_ipv6_firewall_addr_list_test.go ├── resource_ipv6_firewall_filter.go ├── resource_ipv6_firewall_filter_test.go ├── resource_ipv6_firewall_mangle.go ├── resource_ipv6_firewall_mangle_test.go ├── resource_ipv6_firewall_nat.go ├── resource_ipv6_firewall_nat_test.go ├── resource_ipv6_nd_prefix.go ├── resource_ipv6_nd_prefix_test.go ├── resource_ipv6_neighbor_discovery.go ├── resource_ipv6_neighbor_discovery_test.go ├── resource_ipv6_pool.go ├── resource_ipv6_pool_test.go ├── resource_ipv6_route.go ├── resource_ipv6_route_test.go ├── resource_ipv6_settings.go ├── resource_ipv6_settings_test.go ├── resource_move.go ├── resource_ovpn_client.go ├── resource_ovpn_client_test.go ├── resource_ovpn_server.go ├── resource_ovpn_server_test.go ├── resource_ovpn_server_v0.go ├── resource_ppp_aaa.go ├── resource_ppp_aaa_test.go ├── resource_ppp_profile.go ├── resource_ppp_profile_test.go ├── resource_ppp_secret.go ├── resource_ppp_secret_test.go ├── resource_queue_simple.go ├── resource_queue_simple_test.go ├── resource_queue_tree.go ├── resource_queue_tree_test.go ├── resource_queue_type.go ├── resource_queue_type_test.go ├── resource_radius.go ├── resource_radius_v0.go ├── resource_routing_filter_rule.go ├── resource_routing_filter_rule_test.go ├── resource_routing_ospf_area.go ├── resource_routing_ospf_area_test.go ├── resource_routing_ospf_instance.go ├── resource_routing_ospf_instance_test.go ├── resource_routing_ospf_interface_template.go ├── resource_routing_ospf_interface_template_test.go ├── resource_routing_ospf_interface_template_v0.go ├── resource_routing_rule.go ├── resource_routing_rule_test.go ├── resource_routing_table.go ├── resource_routing_table_test.go ├── resource_snmp.go ├── resource_snmp_community.go ├── resource_snmp_community_test.go ├── resource_snmp_community_v0.go ├── resource_snmp_test.go ├── resource_system_certificate.go ├── resource_system_certificate_import_test.go ├── resource_system_certificate_scep_server.go ├── resource_system_certificate_scep_server_test.go ├── resource_system_certificate_test.go ├── resource_system_clock.go ├── resource_system_clock_test.go ├── resource_system_identity.go ├── resource_system_identity_test.go ├── resource_system_led.go ├── resource_system_led_settings.go ├── resource_system_logging.go ├── resource_system_logging_actions.go ├── resource_system_logging_actions_test.go ├── resource_system_logging_test.go ├── resource_system_note.go ├── resource_system_note_test.go ├── resource_system_ntp_client.go ├── resource_system_ntp_client_test.go ├── resource_system_ntp_server.go ├── resource_system_ntp_server_test.go ├── resource_system_routerboard_button_mode.go ├── resource_system_routerboard_button_reset.go ├── resource_system_routerboard_button_wps.go ├── resource_system_routerboard_settings.go ├── resource_system_routerboard_usb.go ├── resource_system_scheduler.go ├── resource_system_scheduler_test.go ├── resource_system_scheduler_v0.go ├── resource_system_script.go ├── resource_system_script_test.go ├── resource_system_user.go ├── resource_system_user_aaa.go ├── resource_system_user_aaa_test.go ├── resource_system_user_group.go ├── resource_system_user_group_test.go ├── resource_system_user_settings.go ├── resource_system_user_settings_test.go ├── resource_system_user_sshkeys.go ├── resource_system_user_sshkeys_test.go ├── resource_system_user_test.go ├── resource_testing_helper.go ├── resource_tool_bandwidth_server.go ├── resource_tool_bandwidth_server_test.go ├── resource_tool_email.go ├── resource_tool_email_test.go ├── resource_tool_graphing.go ├── resource_tool_graphing_test.go ├── resource_tool_mac_server.go ├── resource_tool_mac_server_test.go ├── resource_tool_netwatch.go ├── resource_tool_netwatch_test.go ├── resource_tool_sniffer.go ├── resource_tool_sniffer_test.go ├── resource_user_manager_advanced.go ├── resource_user_manager_attribute.go ├── resource_user_manager_database.go ├── resource_user_manager_limitation.go ├── resource_user_manager_profile.go ├── resource_user_manager_profile_limitation.go ├── resource_user_manager_router.go ├── resource_user_manager_settings.go ├── resource_user_manager_user.go ├── resource_user_manager_user_group.go ├── resource_user_manager_user_profile.go ├── resource_wifi.go ├── resource_wifi_aaa.go ├── resource_wifi_access_list.go ├── resource_wifi_cap.go ├── resource_wifi_capsman.go ├── resource_wifi_channel.go ├── resource_wifi_configuration.go ├── resource_wifi_datapath.go ├── resource_wifi_interworking.go ├── resource_wifi_provisioning.go ├── resource_wifi_security.go ├── resource_wifi_security_multi_passphrase.go ├── resource_wifi_steering.go ├── resource_wireguard_keys.go ├── resource_wireguard_keys_test.go ├── resource_zerotier.go ├── resource_zerotier_controller.go └── resource_zerotier_interface.go ├── templates ├── data-sources.md.tmpl ├── data-sources │ └── firewall.md.tmpl ├── guides │ ├── certificate_rotation.md │ ├── easy_import.md │ └── install_package.md ├── index.md.tmpl ├── resources.md.tmpl └── resources │ ├── bridge.md.tmpl │ ├── bridge_port.md.tmpl │ ├── bridge_vlan.md.tmpl │ ├── certificate_scep_server.md.tmpl │ ├── dhcp_client.md.tmpl │ ├── dhcp_server.md.tmpl │ ├── dhcp_server_lease.md.tmpl │ ├── dhcp_server_network.md.tmpl │ ├── dns.md.tmpl │ ├── dns_record.md.tmpl │ ├── firewall_addr_list.md.tmpl │ ├── firewall_filter.md.tmpl │ ├── firewall_mangle.md.tmpl │ ├── firewall_nat.md.tmpl │ ├── gre.md.tmpl │ ├── identity.md.tmpl │ ├── scheduler.md.tmpl │ ├── system_certificate.md.tmpl │ ├── vlan.md.tmpl │ ├── vrrp.md.tmpl │ ├── wireguard.md.tmpl │ └── wireguard_peer.md.tmpl └── tools ├── boilerplate └── main.go ├── drift └── main.go └── tools.go /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: bug 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior and the problem section from the TF file, without sensitive information. 15 | 16 | **Expected behavior** 17 | A clear and concise description of what you expected to happen. 18 | 19 | **Debug Information** 20 | If needed, be ready to publish debug output of the provider (green lines after executing `TF_LOG=debug ROS_LOG_COLOR=1 terraform `). 21 | 22 | **Stack Trace** 23 | If applicable, add the stack trace the crash produced. 24 | 25 | **Additional context** 26 | Add any other context about the problem here. 27 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/ci-pipeline-issue.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: CI Pipeline issue 3 | about: Bugs with the CI pipeline, either release or testing 4 | title: '' 5 | labels: Non-functional 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Which pipeline fails?:** 11 | 12 | **What job does the pipeline fail on?:** 13 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/documentation-update.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Documentation Update 3 | about: Updates and modifications to the documentation 4 | title: '' 5 | labels: documentation, Non-functional 6 | assignees: '' 7 | 8 | --- 9 | 10 | **What documentation needs updating?:** 11 | For example: 12 | - README 13 | - CHANGELOG 14 | - Provider 15 | 16 | 17 | **What needs to be added to the documentation?:** 18 | For example: 19 | Resource `routeros_interface_wireguard` needs to show how to set a public key. 20 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: enhancement 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Documentation** 17 | If there is [documentation](https://help.mikrotik.com/docs/display/ROS/RouterOS) describing the new resource, add it. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: "github-actions" 4 | directory: "/" 5 | schedule: 6 | interval: "daily" 7 | time: "03:00" 8 | labels: 9 | - "dependencies" 10 | - package-ecosystem: gomod 11 | directory: / 12 | schedule: 13 | interval: daily 14 | labels: 15 | - "dependencies" 16 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .vscode/* 2 | .idea 3 | pkg/* 4 | issues/* 5 | terraform-provider-routeros* 6 | terraform.tfstate* 7 | node_modules 8 | tools/boilerplate/examples/** 9 | tools/boilerplate/routeros/** 10 | tools/boilerplate/*.csv -------------------------------------------------------------------------------- /CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @terraform-routeros/provider-developers -------------------------------------------------------------------------------- /docs/data-sources/files.md: -------------------------------------------------------------------------------- 1 | # routeros_files (Data Source) 2 | 3 | 4 | ## Example Usage 5 | ```terraform 6 | data "routeros_files" "files" {} 7 | ``` 8 | 9 | 10 | ## Schema 11 | 12 | ### Optional 13 | 14 | - `filter` (Map of String) Additional request filtering options. 15 | 16 | ### Read-Only 17 | 18 | - `files` (List of Object) (see [below for nested schema](#nestedatt--files)) 19 | - `id` (String) The ID of this resource. 20 | 21 | 22 | ### Nested Schema for `files` 23 | 24 | Read-Only: 25 | 26 | - `contents` (String) 27 | - `creation_time` (String) 28 | - `id` (String) 29 | - `name` (String) 30 | - `package_architecture` (String) 31 | - `package_built_time` (String) 32 | - `package_name` (String) 33 | - `package_version` (String) 34 | - `size` (Number) 35 | - `type` (String) 36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/data-sources/firewall.md: -------------------------------------------------------------------------------- 1 | # routeros_firewall (Data Source) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_ip_firewall](ip_firewall.md) 6 | -------------------------------------------------------------------------------- /docs/data-sources/interface_bridge_filter.md: -------------------------------------------------------------------------------- 1 | # routeros_interface_bridge_filter (Data Source) 2 | 3 | 4 | ## Example Usage 5 | ```terraform 6 | data "routeros_interface_bridge_filter" "rules" {} 7 | ``` 8 | 9 | 10 | ## Schema 11 | 12 | ### Optional 13 | 14 | - `filter` (Map of String) Additional request filtering options. 15 | 16 | ### Read-Only 17 | 18 | - `filters` (List of Object) (see [below for nested schema](#nestedatt--filters)) 19 | - `id` (String) The ID of this resource. 20 | 21 | 22 | ### Nested Schema for `filters` 23 | 24 | Read-Only: 25 | 26 | - `action` (String) 27 | - `bytes` (Number) 28 | - `chain` (String) 29 | - `comment` (String) 30 | - `dynamic` (Boolean) 31 | - `id` (String) 32 | - `in_interface` (String) 33 | - `invalid` (Boolean) 34 | - `mac_protocol` (String) 35 | - `packets` (Number) 36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/data-sources/ip_addresses.md: -------------------------------------------------------------------------------- 1 | # routeros_ip_addresses (Data Source) 2 | 3 | 4 | ## Example Usage 5 | ```terraform 6 | data "routeros_ip_addresses" "ip_addresses" {} 7 | ``` 8 | 9 | 10 | ## Schema 11 | 12 | ### Optional 13 | 14 | - `filter` (Map of String) Additional request filtering options. 15 | 16 | ### Read-Only 17 | 18 | - `addresses` (List of Object) (see [below for nested schema](#nestedatt--addresses)) 19 | - `id` (String) The ID of this resource. 20 | 21 | 22 | ### Nested Schema for `addresses` 23 | 24 | Read-Only: 25 | 26 | - `actual_interface` (String) 27 | - `address` (String) 28 | - `comment` (String) 29 | - `disabled` (Boolean) 30 | - `dynamic` (Boolean) 31 | - `id` (String) 32 | - `interface` (String) 33 | - `invalid` (Boolean) 34 | - `network` (String) 35 | - `slave` (Boolean) 36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/data-sources/ip_arp.md: -------------------------------------------------------------------------------- 1 | # routeros_ip_arp (Data Source) 2 | 3 | 4 | ## Example Usage 5 | ```terraform 6 | data "routeros_ip_arp" "data" {} 7 | ``` 8 | 9 | 10 | ## Schema 11 | 12 | ### Optional 13 | 14 | - `filter` (Map of String) Additional request filtering options. 15 | 16 | ### Read-Only 17 | 18 | - `data` (List of Object) (see [below for nested schema](#nestedatt--data)) 19 | - `id` (String) The ID of this resource. 20 | 21 | 22 | ### Nested Schema for `data` 23 | 24 | Read-Only: 25 | 26 | - `address` (String) 27 | - `complete` (Boolean) 28 | - `dhcp` (Boolean) 29 | - `disabled` (Boolean) 30 | - `dynamic` (Boolean) 31 | - `id` (String) 32 | - `interface` (String) 33 | - `invalid` (Boolean) 34 | - `mac_address` (String) 35 | - `published` (Boolean) 36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/data-sources/system_resource.md: -------------------------------------------------------------------------------- 1 | # routeros_system_resource (Data Source) 2 | 3 | 4 | ## Example Usage 5 | ```terraform 6 | data "routeros_system_resource" "data" {} 7 | ``` 8 | 9 | 10 | ## Schema 11 | 12 | ### Optional 13 | 14 | 15 | ### Read-Only 16 | 17 | - `architecture_name` (String) 18 | - `board_name` (String) 19 | - `build_time` (String) 20 | - `cpu` (String) 21 | - `cpu_count` (Number) 22 | - `factory_software` (String) 23 | - `id` (String) The ID of this resource. 24 | - `platform` (String) 25 | - `total_hdd_space` (Number) 26 | - `total_memory` (Number) 27 | - `version` (String) 28 | 29 | 30 | -------------------------------------------------------------------------------- /docs/data-sources/system_routerboard.md: -------------------------------------------------------------------------------- 1 | # routeros_system_routerboard (Data Source) 2 | 3 | 4 | ## Example Usage 5 | ```terraform 6 | data "routeros_system_routerboard" "data" {} 7 | ``` 8 | 9 | 10 | ## Schema 11 | 12 | ### Optional 13 | 14 | 15 | ### Read-Only 16 | 17 | - `current_firmware` (String) 18 | - `factory_firmware` (String) 19 | - `firmware_type` (String) 20 | - `id` (String) The ID of this resource. 21 | - `model` (String) 22 | - `revision` (String) 23 | - `routerboard` (Boolean) 24 | - `serial_number` (String) 25 | - `upgrade_firmware` (String) 26 | 27 | 28 | -------------------------------------------------------------------------------- /docs/resources/bridge.md: -------------------------------------------------------------------------------- 1 | # routeros_bridge (Resource) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_interface_bridge](interface_bridge.md) 6 | -------------------------------------------------------------------------------- /docs/resources/bridge_mlag.md: -------------------------------------------------------------------------------- 1 | # routeros_bridge_mlag (Resource) 2 | 3 | 4 | ## Example Usage 5 | ```terraform 6 | resource "routeros_bridge_mlag" "mlag" { 7 | bridge = "bridge1" 8 | peer_port = "stack-link" 9 | } 10 | ``` 11 | 12 | 13 | ## Schema 14 | 15 | ### Required 16 | 17 | - `bridge` (String) The bridge interface where MLAG is being created. 18 | - `peer_port` (String) An interface that will be used as a peer port. Both peer devices are using inter-chassis communication over these peer ports to establish MLAG and update the host table. Peer port should be isolated on a different untagged VLAN using a pvid setting. Peer port can be configured as a bonding interface. 19 | 20 | ### Optional 21 | 22 | 23 | ### Read-Only 24 | 25 | - `id` (String) The ID of this resource. 26 | 27 | ## Import 28 | Import is supported using the following syntax: 29 | ```shell 30 | terraform import routeros_bridge_mlag.mlag . 31 | ``` 32 | -------------------------------------------------------------------------------- /docs/resources/bridge_port.md: -------------------------------------------------------------------------------- 1 | # routeros_bridge_port (Resource) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_interface_bridge_port](interface_bridge_port.md) 6 | -------------------------------------------------------------------------------- /docs/resources/bridge_vlan.md: -------------------------------------------------------------------------------- 1 | # routeros_bridge_vlan (Resource) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_interface_bridge_vlan](interface_bridge_vlan.md) 6 | -------------------------------------------------------------------------------- /docs/resources/certificate_scep_server.md: -------------------------------------------------------------------------------- 1 | # routeros_certificate_scep_server (Resource) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_system_certificate_scep_server](system_certificate_scep_server.md) 6 | -------------------------------------------------------------------------------- /docs/resources/container_envs.md: -------------------------------------------------------------------------------- 1 | # routeros_container_envs (Resource) 2 | 3 | 4 | ## Example Usage 5 | ```terraform 6 | resource "routeros_container_envs" "test_envs" { 7 | name = "test_envs" 8 | key = "TZ" 9 | value = "UTC" 10 | } 11 | ``` 12 | 13 | 14 | ## Schema 15 | 16 | ### Required 17 | 18 | - `key` (String) Key of the environment variable. 19 | - `name` (String) Name of the environment variables list. 20 | - `value` (String) Value of the environment variable. 21 | 22 | ### Optional 23 | 24 | 25 | ### Read-Only 26 | 27 | - `id` (String) The ID of this resource. 28 | 29 | ## Import 30 | Import is supported using the following syntax: 31 | ```shell 32 | #The ID can be found via API or the terminal 33 | #The command for the terminal is -> :put [/container/envs get [print show-ids]] 34 | terraform import routeros_container_envs.test_envs "*1" 35 | ``` 36 | -------------------------------------------------------------------------------- /docs/resources/container_mounts.md: -------------------------------------------------------------------------------- 1 | # routeros_container_mounts (Resource) 2 | 3 | 4 | ## Example Usage 5 | ```terraform 6 | resource "routeros_container_mounts" "caddyfile" { 7 | name = "Caddyfile" 8 | src = "/usb1-part1/containers/caddy/Caddyfile" 9 | dst = "/etc/caddy/Caddyfile" 10 | } 11 | ``` 12 | 13 | 14 | ## Schema 15 | 16 | ### Required 17 | 18 | - `dst` (String) Specifies destination path of the mount, which points to defined location in container 19 | - `name` (String) Name of the mount. 20 | - `src` (String) Specifies source path of the mount, which points to a RouterOS location 21 | 22 | ### Optional 23 | 24 | 25 | ### Read-Only 26 | 27 | - `id` (String) The ID of this resource. 28 | 29 | ## Import 30 | Import is supported using the following syntax: 31 | ```shell 32 | # Import with the name of the container mount in case of the example use Caddyfile 33 | terraform import routeros_container_mounts.caddyfile Caddyfile 34 | ``` 35 | -------------------------------------------------------------------------------- /docs/resources/dhcp_client.md: -------------------------------------------------------------------------------- 1 | # routeros_dhcp_client (Resource) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_ip_dhcp_client](ip_dhcp_client.md) 6 | -------------------------------------------------------------------------------- /docs/resources/dhcp_client_option.md: -------------------------------------------------------------------------------- 1 | # routeros_dhcp_client_option (Resource) 2 | 3 | 4 | 5 | 6 | 7 | ## Schema 8 | 9 | ### Required 10 | 11 | - `code` (Number) The dhcp-client option code. 12 | - `name` (String) The name that will be used in dhcp-client. 13 | 14 | ### Optional 15 | 16 | - `raw_value` (String) raw_value is computed from value. 17 | - `value` (String) The dhcp-client option 18 | 19 | ### Read-Only 20 | 21 | - `id` (String) The ID of this resource. 22 | 23 | 24 | -------------------------------------------------------------------------------- /docs/resources/dhcp_server.md: -------------------------------------------------------------------------------- 1 | # routeros_dhcp_server (Resource) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_ip_dhcp_server](ip_dhcp_server.md) 6 | -------------------------------------------------------------------------------- /docs/resources/dhcp_server_lease.md: -------------------------------------------------------------------------------- 1 | # routeros_dhcp_server_lease (Resource) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_ip_dhcp_server_lease](ip_dhcp_server_lease.md) 6 | -------------------------------------------------------------------------------- /docs/resources/dhcp_server_network.md: -------------------------------------------------------------------------------- 1 | # routeros_dhcp_server_network (Resource) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_ip_dhcp_server_network](ip_dhcp_server_network.md) 6 | -------------------------------------------------------------------------------- /docs/resources/dns.md: -------------------------------------------------------------------------------- 1 | # routeros_dns (Resource) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_ip_dns](ip_dns.md) 6 | -------------------------------------------------------------------------------- /docs/resources/dns_record.md: -------------------------------------------------------------------------------- 1 | # routeros_dns_record (Resource) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_ip_dns_record](ip_dns_record.md) 6 | -------------------------------------------------------------------------------- /docs/resources/firewall_addr_list.md: -------------------------------------------------------------------------------- 1 | # routeros_firewall_addr_list (Resource) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_ip_firewall_addr_list](ip_firewall_addr_list.md) 6 | -------------------------------------------------------------------------------- /docs/resources/firewall_filter.md: -------------------------------------------------------------------------------- 1 | # routeros_firewall_filter (Resource) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_ip_firewall_filter](ip_firewall_filter.md) 6 | -------------------------------------------------------------------------------- /docs/resources/firewall_mangle.md: -------------------------------------------------------------------------------- 1 | # routeros_firewall_mangle (Resource) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_ip_firewall_mangle](ip_firewall_mangle.md) 6 | -------------------------------------------------------------------------------- /docs/resources/firewall_nat.md: -------------------------------------------------------------------------------- 1 | # routeros_firewall_nat (Resource) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_ip_firewall_nat](ip_firewall_nat.md) 6 | -------------------------------------------------------------------------------- /docs/resources/gre.md: -------------------------------------------------------------------------------- 1 | # routeros_gre (Resource) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_interface_gre](interface_gre.md) 6 | -------------------------------------------------------------------------------- /docs/resources/identity.md: -------------------------------------------------------------------------------- 1 | # routeros_identity (Resource) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_system_identity](system_identity.md) 6 | -------------------------------------------------------------------------------- /docs/resources/interface_list_member.md: -------------------------------------------------------------------------------- 1 | # routeros_interface_list_member (Resource) 2 | 3 | 4 | ## Example Usage 5 | ```terraform 6 | resource "routeros_interface_list_member" "list_member" { 7 | interface = "ether1" 8 | list = "my-list" 9 | } 10 | ``` 11 | 12 | 13 | ## Schema 14 | 15 | ### Required 16 | 17 | - `interface` (String) 18 | - `list` (String) 19 | 20 | ### Optional 21 | 22 | - `comment` (String) 23 | - `disabled` (Boolean) 24 | 25 | ### Read-Only 26 | 27 | - `dynamic` (Boolean) 28 | - `id` (String) The ID of this resource. 29 | 30 | ## Import 31 | Import is supported using the following syntax: 32 | ```shell 33 | #The ID can be found via API or the terminal 34 | #The command for the terminal is -> :put [/interface/list/member get [print show-ids]] 35 | terraform import routeros_interface_list_member.list_member "*0" 36 | ``` 37 | -------------------------------------------------------------------------------- /docs/resources/ip_cloud_advanced.md: -------------------------------------------------------------------------------- 1 | # routeros_ip_cloud_advanced (Resource) 2 | 3 | 4 | ## Example Usage 5 | ```terraform 6 | resource "routeros_ip_cloud_advanced" "settings" { 7 | use_local_address = true 8 | } 9 | ``` 10 | 11 | 12 | ## Schema 13 | 14 | ### Optional 15 | 16 | - `use_local_address` (Boolean) An option whether to assign an internal router address to the dynamic DNS name. 17 | 18 | ### Read-Only 19 | 20 | - `id` (String) The ID of this resource. 21 | 22 | ## Import 23 | Import is supported using the following syntax: 24 | ```shell 25 | terraform import routeros_ip_cloud_advanced.settings . 26 | ``` 27 | -------------------------------------------------------------------------------- /docs/resources/ip_dhcp_client_option.md: -------------------------------------------------------------------------------- 1 | # routeros_ip_dhcp_client_option (Resource) 2 | 3 | 4 | ## Example Usage 5 | ```terraform 6 | resource "routeros_ip_dhcp_client_option" "option" { 7 | name = "my-dhcp-option" 8 | code = 60 9 | } 10 | ``` 11 | 12 | 13 | ## Schema 14 | 15 | ### Required 16 | 17 | - `code` (Number) The dhcp-client option code. 18 | - `name` (String) The name that will be used in dhcp-client. 19 | 20 | ### Optional 21 | 22 | - `raw_value` (String) raw_value is computed from value. 23 | - `value` (String) The dhcp-client option 24 | 25 | ### Read-Only 26 | 27 | - `id` (String) The ID of this resource. 28 | 29 | ## Import 30 | Import is supported using the following syntax: 31 | ```shell 32 | #The ID can be found via API or the terminal 33 | #The command for the terminal is -> :put [/ip/dhcp-client/option get [print show-ids]] 34 | terraform import routeros_ip_dhcp_client_option.option "*0" 35 | ``` 36 | -------------------------------------------------------------------------------- /docs/resources/ip_hotspot_service_port.md: -------------------------------------------------------------------------------- 1 | # routeros_ip_hotspot_service_port (Resource) 2 | 3 | 4 | ## Example Usage 5 | ```terraform 6 | resource "routeros_ip_hotspot_service_port" "test" { 7 | name = "ftp" 8 | disabled = true 9 | } 10 | ``` 11 | 12 | 13 | ## Schema 14 | 15 | ### Required 16 | 17 | - `name` (String) Service name. 18 | 19 | ### Optional 20 | 21 | - `disabled` (Boolean) 22 | 23 | ### Read-Only 24 | 25 | - `id` (String) The ID of this resource. 26 | - `ports` (String) 27 | 28 | ## Import 29 | Import is supported using the following syntax: 30 | ```shell 31 | #The ID can be found via API or the terminal 32 | #The command for the terminal is -> :put [/ip/hotspot/service-port get [print show-ids]] 33 | terraform import routeros_ip_hotspot_service_port.test *1 34 | ``` 35 | -------------------------------------------------------------------------------- /docs/resources/ip_ipsec_key.md: -------------------------------------------------------------------------------- 1 | # routeros_ip_ipsec_key (Resource) 2 | 3 | 4 | ## Example Usage 5 | ```terraform 6 | resource "routeros_ip_ipsec_key" "test" { 7 | name = "test-key" 8 | key_size = 2048 9 | } 10 | ``` 11 | 12 | 13 | ## Schema 14 | 15 | ### Required 16 | 17 | - `key_size` (Number) Size of this key. 18 | - `name` (String) 19 | 20 | ### Optional 21 | 22 | 23 | ### Read-Only 24 | 25 | - `id` (String) The ID of this resource. 26 | 27 | ## Import 28 | Import is supported using the following syntax: 29 | ```shell 30 | #The ID can be found via API or the terminal 31 | #The command for the terminal is -> :put [/ip/ipsec/key get [print show-ids]] 32 | terraform import routeros_ip_ipsec_key.test *3 33 | #Or you can import a resource using one of its attributes 34 | terraform import routeros_ip_ipsec_key.test "name=test-key" 35 | ``` 36 | -------------------------------------------------------------------------------- /docs/resources/ip_ipsec_policy_group.md: -------------------------------------------------------------------------------- 1 | # routeros_ip_ipsec_policy_group (Resource) 2 | 3 | 4 | ## Example Usage 5 | ```terraform 6 | resource "routeros_ip_ipsec_policy_group" "test" { 7 | name = "test-group" 8 | } 9 | ``` 10 | 11 | 12 | ## Schema 13 | 14 | ### Required 15 | 16 | - `name` (String) 17 | 18 | ### Optional 19 | 20 | - `comment` (String) 21 | 22 | ### Read-Only 23 | 24 | - `default` (Boolean) It's the default item. 25 | - `id` (String) The ID of this resource. 26 | 27 | ## Import 28 | Import is supported using the following syntax: 29 | ```shell 30 | #The ID can be found via API or the terminal 31 | #The command for the terminal is -> :put [/ip/ipsec/policy/group get [print show-ids]] 32 | terraform import routeros_ip_ipsec_policy_group.test *3 33 | #Or you can import a resource using one of its attributes 34 | terraform import routeros_ip_ipsec_policy_group.test "name=test-group" 35 | ``` 36 | -------------------------------------------------------------------------------- /docs/resources/ip_smb.md: -------------------------------------------------------------------------------- 1 | # routeros_ip_smb (Resource) 2 | 3 | 4 | ## Example Usage 5 | ```terraform 6 | resource "routeros_ip_smb" "test" { 7 | enabled = "auto" 8 | domain = "MSHOME" 9 | comment = "MikrotikSMB" 10 | interfaces = ["all"] 11 | } 12 | ``` 13 | 14 | 15 | ## Schema 16 | 17 | ### Optional 18 | 19 | - `comment` (String) Set comment for the server. 20 | - `domain` (String) Name of Windows Workgroup. 21 | - `enabled` (String) The default value is 'auto'. This means that the SMB server will automatically be enabled when the first non-disabled SMB share is configured under '/ip smb share'. 22 | - `interfaces` (Set of String) List of interfaces on which SMB service will be running. 23 | 24 | ### Read-Only 25 | 26 | - `id` (String) The ID of this resource. 27 | - `status` (String) 28 | 29 | ## Import 30 | Import is supported using the following syntax: 31 | ```shell 32 | terraform import routeros_ip_smb.test . 33 | ``` 34 | -------------------------------------------------------------------------------- /docs/resources/ipv6_dhcp_client_option.md: -------------------------------------------------------------------------------- 1 | # routeros_ipv6_dhcp_client_option (Resource) 2 | 3 | 4 | ## Example Usage 5 | ```terraform 6 | resource "routeros_ipv6_dhcp_client_option" "option" { 7 | name = "my-dhcp-option" 8 | code = 60 9 | } 10 | ``` 11 | 12 | 13 | ## Schema 14 | 15 | ### Required 16 | 17 | - `code` (Number) The dhcp-client option code. 18 | - `name` (String) The name that will be used in dhcp-client. 19 | 20 | ### Optional 21 | 22 | - `value` (String) The dhcp-client option 23 | 24 | ### Read-Only 25 | 26 | - `id` (String) The ID of this resource. 27 | - `raw_value` (String) raw_value is computed from value. 28 | 29 | ## Import 30 | Import is supported using the following syntax: 31 | ```shell 32 | #The ID can be found via API or the terminal 33 | #The command for the terminal is -> :put [/ipv6/dhcp-client/option get [print show-ids]] 34 | terraform import routeros_ipv6_dhcp_client_option.option "*0" 35 | ``` 36 | -------------------------------------------------------------------------------- /docs/resources/ppp_aaa.md: -------------------------------------------------------------------------------- 1 | # routeros_ppp_aaa (Resource) 2 | 3 | 4 | ## Example Usage 5 | ```terraform 6 | resource "routeros_ppp_aaa" "settings" { 7 | use_radius = true 8 | } 9 | ``` 10 | 11 | 12 | ## Schema 13 | 14 | ### Optional 15 | 16 | - `accounting` (Boolean) An option that enables accounting for users. 17 | - `enable_ipv6_accounting` (Boolean) An option that enables IPv6 separate accounting. 18 | - `interim_update` (String) Interval between scheduled RADIUS Interim-Update messages. 19 | - `use_circuit_id_in_nas_port_id` (Boolean) 20 | - `use_radius` (Boolean) An option whether to use RADIUS server. 21 | 22 | ### Read-Only 23 | 24 | - `id` (String) The ID of this resource. 25 | 26 | ## Import 27 | Import is supported using the following syntax: 28 | ```shell 29 | terraform import routeros_ppp_aaa.settings . 30 | ``` 31 | -------------------------------------------------------------------------------- /docs/resources/radius_incoming.md: -------------------------------------------------------------------------------- 1 | # routeros_radius_incoming (Resource) 2 | 3 | 4 | ## Example Usage 5 | ```terraform 6 | resource "routeros_radius_incoming" "settings" { 7 | accept = true 8 | } 9 | ``` 10 | 11 | 12 | ## Schema 13 | 14 | ### Optional 15 | 16 | - `accept` (Boolean) An option whether to accept the unsolicited messages. 17 | - `port` (Number) The port number to listen for the requests on. 18 | - `vrf` (String) VRF on which service is listening for incoming connections. This option is available in RouterOS starting from version 7.4. 19 | 20 | ### Read-Only 21 | 22 | - `id` (String) The ID of this resource. 23 | 24 | ## Import 25 | Import is supported using the following syntax: 26 | ```shell 27 | terraform import routeros_radius_incoming.settings . 28 | ``` 29 | -------------------------------------------------------------------------------- /docs/resources/scheduler.md: -------------------------------------------------------------------------------- 1 | # routeros_scheduler (Resource) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_system_scheduler](system_scheduler.md) 6 | -------------------------------------------------------------------------------- /docs/resources/system_identity.md: -------------------------------------------------------------------------------- 1 | # routeros_system_identity (Resource) 2 | 3 | 4 | ## Example Usage 5 | ```terraform 6 | resource "routeros_system_identity" "identity" { 7 | name = "My Router" 8 | } 9 | ``` 10 | 11 | 12 | ## Schema 13 | 14 | ### Required 15 | 16 | - `name` (String) Device name. 17 | 18 | ### Optional 19 | 20 | 21 | ### Read-Only 22 | 23 | - `id` (String) The ID of this resource. 24 | 25 | ## Import 26 | Import is supported using the following syntax: 27 | ```shell 28 | terraform import routeros_system_identity.identity . 29 | ``` 30 | -------------------------------------------------------------------------------- /docs/resources/system_led_settings.md: -------------------------------------------------------------------------------- 1 | # routeros_system_led_settings (Resource) 2 | 3 | 4 | ## Example Usage 5 | ```terraform 6 | resource "routeros_system_led_settings" "settings" { 7 | all_leds_off = "immediate" 8 | } 9 | ``` 10 | 11 | 12 | ## Schema 13 | 14 | ### Optional 15 | 16 | - `all_leds_off` (String) An option to set when all LEDs should be turned off. Possible values: `after-1h`, `after-1min`, `immediate`, `never`. 17 | 18 | ### Read-Only 19 | 20 | - `id` (String) The ID of this resource. 21 | 22 | ## Import 23 | Import is supported using the following syntax: 24 | ```shell 25 | terraform import routeros_system_led_settings.settings . 26 | ``` 27 | -------------------------------------------------------------------------------- /docs/resources/system_note.md: -------------------------------------------------------------------------------- 1 | # routeros_system_note (Resource) 2 | 3 | 4 | ## Example Usage 5 | ```terraform 6 | resource "routeros_system_note" "test" { 7 | note = "For authorized use only." 8 | show_at_login = true 9 | show_at_cli_login = true 10 | } 11 | ``` 12 | 13 | 14 | ## Schema 15 | 16 | ### Required 17 | 18 | - `note` (String) Note that will be displayed. 19 | 20 | ### Optional 21 | 22 | - `show_at_cli_login` (Boolean) Whether to show system note before telnet login prompt. 23 | - `show_at_login` (Boolean) Whether to show system note on each login. 24 | 25 | ### Read-Only 26 | 27 | - `id` (String) The ID of this resource. 28 | 29 | ## Import 30 | Import is supported using the following syntax: 31 | ```shell 32 | terraform import routeros_system_note.test . 33 | ``` 34 | -------------------------------------------------------------------------------- /docs/resources/system_routerboard_usb.md: -------------------------------------------------------------------------------- 1 | # routeros_system_routerboard_usb (Resource) 2 | 3 | 4 | ## Example Usage 5 | ```terraform 6 | resource "routeros_system_routerboard_usb" "settings" { 7 | type = "auto" 8 | } 9 | ``` 10 | 11 | 12 | ## Schema 13 | 14 | ### Optional 15 | 16 | - `type` (String) An option to set the type of the USB port. Possible value: `auto`, `mini-PCIe`, `USB-type-A`. 17 | - `usb_mode` (String) An option to set the USB port mode. Possible values: `automatic`, `force-host`. 18 | 19 | ### Read-Only 20 | 21 | - `id` (String) The ID of this resource. 22 | 23 | ## Import 24 | Import is supported using the following syntax: 25 | ```shell 26 | terraform import routeros_system_routerboard_usb.settings . 27 | ``` 28 | -------------------------------------------------------------------------------- /docs/resources/system_user_aaa.md: -------------------------------------------------------------------------------- 1 | # routeros_system_user_aaa (Resource) 2 | 3 | 4 | ## Example Usage 5 | ```terraform 6 | resource "routeros_system_user_aaa" "settings" { 7 | use_radius = true 8 | } 9 | ``` 10 | 11 | 12 | ## Schema 13 | 14 | ### Optional 15 | 16 | - `accounting` (Boolean) An option that enables accounting for users. 17 | - `default_group` (String) The user group that is used by default for users authenticated via a RADIUS server. 18 | - `exclude_groups` (Set of String) A set of groups that are not allowed for users authenticated by RADIUS. 19 | - `interim_update` (String) Interval between scheduled RADIUS Interim-Update messages. 20 | - `use_radius` (Boolean) An option whether to use RADIUS server. 21 | 22 | ### Read-Only 23 | 24 | - `id` (String) The ID of this resource. 25 | 26 | ## Import 27 | Import is supported using the following syntax: 28 | ```shell 29 | terraform import routeros_system_user_aaa.settings . 30 | ``` 31 | -------------------------------------------------------------------------------- /docs/resources/system_user_settings.md: -------------------------------------------------------------------------------- 1 | # routeros_system_user_settings (Resource) 2 | 3 | 4 | ## Example Usage 5 | ```terraform 6 | resource "routeros_system_user_settings" "settings" { 7 | minimum_categories = 2 8 | minimum_password_length = 8 9 | } 10 | ``` 11 | 12 | 13 | ## Schema 14 | 15 | ### Optional 16 | 17 | - `minimum_categories` (Number) An option specifies the complexity requirements of the password, with categories being uppercase, lowercase, digit, and symbol. 18 | - `minimum_password_length` (Number) An option specifies the minimum length of the password. 19 | 20 | ### Read-Only 21 | 22 | - `id` (String) The ID of this resource. 23 | 24 | ## Import 25 | Import is supported using the following syntax: 26 | ```shell 27 | terraform import routeros_system_user_settings.settings . 28 | ``` 29 | -------------------------------------------------------------------------------- /docs/resources/tool_email.md: -------------------------------------------------------------------------------- 1 | # routeros_tool_email (Resource) 2 | 3 | 4 | 5 | 6 | 7 | ## Schema 8 | 9 | ### Optional 10 | 11 | - `from` (String) Name or email address that will be shown as a receiver. 12 | - `password` (String, Sensitive) Password used for authenticating to an SMTP server. 13 | - `port` (String) SMTP server's port. 14 | - `server` (String) SMTP server's IP address. 15 | - `tls` (String) Whether to use TLS encryption: 16 | * yes - sends STARTTLS and drops the session if TLS is not available on the server 17 | * no - do not send STARTTLS 18 | * starttls - sends STARTTLS and continue without TLS if a server responds that TLS is not available 19 | - `user` (String) The username used for authenticating to an SMTP server. 20 | - `vrf` (String) The VRF table this resource operates on. 21 | 22 | ### Read-Only 23 | 24 | - `id` (String) The ID of this resource. 25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/resources/tool_graphing_resource.md: -------------------------------------------------------------------------------- 1 | # routeros_tool_graphing_resource (Resource) 2 | 3 | 4 | ## Example Usage 5 | ```terraform 6 | resource "routeros_tool_graphing_resource" "test" {} 7 | ``` 8 | 9 | 10 | ## Schema 11 | 12 | ### Optional 13 | 14 | - `allow_address` (String) IP address range from which is allowed to access graphing information. 15 | - `disabled` (Boolean) 16 | - `store_on_disk` (Boolean) Defines whether to store collected information on system drive. 17 | 18 | ### Read-Only 19 | 20 | - `id` (String) The ID of this resource. 21 | 22 | ## Import 23 | Import is supported using the following syntax: 24 | ```shell 25 | #The ID can be found via API or the terminal 26 | #The command for the terminal is -> :put [/tool/graphing/resource get [print show-ids]] 27 | terraform import routeros_tool_graphing_resource.test "*0" 28 | ``` 29 | -------------------------------------------------------------------------------- /docs/resources/tool_mac_server.md: -------------------------------------------------------------------------------- 1 | # routeros_tool_mac_server (Resource) 2 | 3 | 4 | ## Example Usage 5 | ```terraform 6 | resource "routeros_tool_mac_server" "test" { 7 | allowed_interface_list = "LAN" 8 | } 9 | ``` 10 | 11 | 12 | ## Schema 13 | 14 | ### Required 15 | 16 | - `allowed_interface_list` (String) List of interfaces for MAC Telnet access. 17 | 18 | ### Optional 19 | 20 | 21 | ### Read-Only 22 | 23 | - `id` (String) The ID of this resource. 24 | 25 | ## Import 26 | Import is supported using the following syntax: 27 | ```shell 28 | terraform import routeros_tool_mac_server.test . 29 | ``` 30 | -------------------------------------------------------------------------------- /docs/resources/tool_mac_server_ping.md: -------------------------------------------------------------------------------- 1 | # routeros_tool_mac_server_ping (Resource) 2 | 3 | 4 | ## Example Usage 5 | ```terraform 6 | resource "routeros_tool_mac_server_ping" "test" { 7 | enabled = false 8 | } 9 | ``` 10 | 11 | 12 | ## Schema 13 | 14 | ### Optional 15 | 16 | - `enabled` (Boolean) Whether to enable the MAC Ping server. 17 | 18 | ### Read-Only 19 | 20 | - `id` (String) The ID of this resource. 21 | 22 | ## Import 23 | Import is supported using the following syntax: 24 | ```shell 25 | terraform import routeros_tool_mac_server_ping.test . 26 | ``` 27 | -------------------------------------------------------------------------------- /docs/resources/tool_mac_server_winbox.md: -------------------------------------------------------------------------------- 1 | # routeros_tool_mac_server_winbox (Resource) 2 | 3 | 4 | ## Example Usage 5 | ```terraform 6 | resource "routeros_tool_mac_server_winbox" "test" { 7 | allowed_interface_list = "LAN" 8 | } 9 | ``` 10 | 11 | 12 | ## Schema 13 | 14 | ### Required 15 | 16 | - `allowed_interface_list` (String) List of interfaces for MAC WinBox access. 17 | 18 | ### Optional 19 | 20 | 21 | ### Read-Only 22 | 23 | - `id` (String) The ID of this resource. 24 | 25 | ## Import 26 | Import is supported using the following syntax: 27 | ```shell 28 | terraform import routeros_tool_mac_server_winbox.test . 29 | ``` 30 | -------------------------------------------------------------------------------- /docs/resources/user_manager_database.md: -------------------------------------------------------------------------------- 1 | # routeros_user_manager_database (Resource) 2 | 3 | 4 | ## Example Usage 5 | ```terraform 6 | resource "routeros_user_manager_database" "settings" { 7 | db_path = "/flash/user-manager5" 8 | } 9 | ``` 10 | 11 | 12 | ## Schema 13 | 14 | ### Required 15 | 16 | - `db_path` (String) Path to the location where database files will be stored. 17 | 18 | ### Optional 19 | 20 | 21 | ### Read-Only 22 | 23 | - `id` (String) The ID of this resource. 24 | 25 | ## Import 26 | Import is supported using the following syntax: 27 | ```shell 28 | terraform import routeros_user_manager_database.settings . 29 | ``` 30 | -------------------------------------------------------------------------------- /docs/resources/vlan.md: -------------------------------------------------------------------------------- 1 | # routeros_vlan (Resource) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_interface_vlan](interface_vlan.md) 6 | -------------------------------------------------------------------------------- /docs/resources/vrrp.md: -------------------------------------------------------------------------------- 1 | # routeros_vrrp (Resource) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_interface_vrrp](interface_vrrp.md) 6 | -------------------------------------------------------------------------------- /docs/resources/wireguard.md: -------------------------------------------------------------------------------- 1 | # routeros_wireguard (Resource) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_interface_wireguard](interface_wireguard.md) 6 | -------------------------------------------------------------------------------- /docs/resources/wireguard_keys.md: -------------------------------------------------------------------------------- 1 | # routeros_wireguard_keys (Resource) 2 | Creating key sets for WireGuard tunnels. 3 | 4 | ## Example Usage 5 | ```terraform 6 | resource "routeros_wireguard_keys" "wgk" { 7 | number = 3 8 | } 9 | 10 | output "wg_keys" { 11 | value = routeros_wireguard_keys.wgk.keys[*] 12 | sensitive = true 13 | } 14 | 15 | output "wg_key" { 16 | value = nonsensitive(routeros_wireguard_keys.wgk.keys[1].public) 17 | } 18 | ``` 19 | 20 | 21 | ## Schema 22 | 23 | ### Optional 24 | 25 | - `number` (Number) The number of key sets. 26 | 27 | ### Read-Only 28 | 29 | - `id` (String) The ID of this resource. 30 | - `keys` (List of Object, Sensitive) (see [below for nested schema](#nestedatt--keys)) 31 | 32 | 33 | ### Nested Schema for `keys` 34 | 35 | Read-Only: 36 | 37 | - `preshared` (String) 38 | - `private` (String) 39 | - `public` (String) 40 | 41 | 42 | -------------------------------------------------------------------------------- /docs/resources/wireguard_peer.md: -------------------------------------------------------------------------------- 1 | # routeros_wireguard_peer (Resource) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_interface_wireguard_peer](interface_wireguard_peer.md) 6 | -------------------------------------------------------------------------------- /examples/data-sources/routeros_files/data-source.tf: -------------------------------------------------------------------------------- 1 | data "routeros_files" "files" {} -------------------------------------------------------------------------------- /examples/data-sources/routeros_interface_bridge_filter/data-source.tf: -------------------------------------------------------------------------------- 1 | data "routeros_interface_bridge_filter" "rules" {} 2 | -------------------------------------------------------------------------------- /examples/data-sources/routeros_interfaces/data-source.tf: -------------------------------------------------------------------------------- 1 | data "routeros_interfaces" "interfaces" {} -------------------------------------------------------------------------------- /examples/data-sources/routeros_ip_addresses/data-source.tf: -------------------------------------------------------------------------------- 1 | data "routeros_ip_addresses" "ip_addresses" {} -------------------------------------------------------------------------------- /examples/data-sources/routeros_ip_arp/data-source.tf: -------------------------------------------------------------------------------- 1 | data "routeros_ip_arp" "data" {} -------------------------------------------------------------------------------- /examples/data-sources/routeros_ip_dhcp_server_leases/data-source.tf: -------------------------------------------------------------------------------- 1 | data "routeros_ip_dhcp_server_leases" "data" {} -------------------------------------------------------------------------------- /examples/data-sources/routeros_ip_firewall/data-source.tf: -------------------------------------------------------------------------------- 1 | data "routeros_ip_firewall" "fw" { 2 | rules { 3 | filter = { 4 | chain = "input" 5 | comment = "rule_2" 6 | } 7 | } 8 | 9 | rules { 10 | filter = { 11 | chain = "forward" 12 | } 13 | } 14 | 15 | nat {} 16 | } 17 | 18 | output "rules" { 19 | value = [for value in data.routeros_ip_firewall.fw.rules : [value.id, value.src_address]] 20 | } 21 | 22 | output "nat" { 23 | value = [for value in data.routeros_ip_firewall.fw.nat : [value.id, value.comment]] 24 | } 25 | 26 | resource "routeros_ip_firewall" "rule_3" { 27 | action = "accept" 28 | chain = "input" 29 | comment = "rule_3" 30 | src_address = "192.168.0.5" 31 | place_before = data.routeros_ip_firewall_filter.fw.rules[0].id 32 | } 33 | -------------------------------------------------------------------------------- /examples/data-sources/routeros_ip_routes/data-source.tf: -------------------------------------------------------------------------------- 1 | data "routeros_ip_routes" "ip_routes" {} -------------------------------------------------------------------------------- /examples/data-sources/routeros_ip_services/data-source.tf: -------------------------------------------------------------------------------- 1 | data "routeros_ip_services" "router" { 2 | provider = routeros.router 3 | } 4 | 5 | resource "routeros_ip_service" "router-disabled" { 6 | provider = routeros.router 7 | for_each = { for s in data.routeros_ip_services.router.services : s.name => s if s.name != "www-ssl" } 8 | 9 | disabled = true 10 | numbers = each.value.name 11 | port = each.value.port 12 | } -------------------------------------------------------------------------------- /examples/data-sources/routeros_ipv6_addresses/data-source.tf: -------------------------------------------------------------------------------- 1 | data "routeros_ipv6_addresses" "addresses" {} -------------------------------------------------------------------------------- /examples/data-sources/routeros_system_resource/data-source.tf: -------------------------------------------------------------------------------- 1 | data "routeros_system_resource" "data" {} -------------------------------------------------------------------------------- /examples/data-sources/routeros_system_routerboard/data-source.tf: -------------------------------------------------------------------------------- 1 | data "routeros_system_routerboard" "data" {} -------------------------------------------------------------------------------- /examples/data-sources/routeros_wifi_easy_connect/data-source.tf: -------------------------------------------------------------------------------- 1 | data "routeros_wifi_easy_connect" "test" { 2 | type = "WPA2" 3 | ssid = "test" 4 | password = "password12345" 5 | } 6 | 7 | output "qrcode" { 8 | value = data.routeros_wifi_easy_connect.test.qr_code 9 | } 10 | 11 | # We can disable the QR code output and view it in the state file if needed. 12 | # terraform.exe state show data.routeros_wifi_easy_connect.test 13 | -------------------------------------------------------------------------------- /examples/data-sources/routeros_x509/data-source.tf: -------------------------------------------------------------------------------- 1 | # You can keep indents in front of the content lines of the certificate. 2 | # The normalized certificate is available through the `pem` attribute 3 | data "routeros_x509" "cert" { 4 | data = < :put [/routing/bgp/connection get [print show-ids]] 3 | terraform import routeros_bgp_connection.test *3 -------------------------------------------------------------------------------- /examples/resources/routeros_bgp_connection/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_bgp_connection" "test" { 2 | name = "neighbor-test" 3 | as = "65550/5" 4 | as_override = true 5 | add_path_out = "none" 6 | remote { 7 | address = "172.17.0.1" 8 | as = "12345/5" 9 | } 10 | local { 11 | role = "ebgp" 12 | } 13 | } -------------------------------------------------------------------------------- /examples/resources/routeros_bgp_template/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/routing/bgp/template get [print show-ids]] 3 | terraform import routeros_bgp_template.test *3 -------------------------------------------------------------------------------- /examples/resources/routeros_bgp_template/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_bgp_template" "test" { 2 | name = "test-template" 3 | as = 65521 4 | input { 5 | limit_process_routes_ipv4 = 5 6 | limit_process_routes_ipv6 = 5 7 | } 8 | output { 9 | affinity = "alone" 10 | keep_sent_attributes = true 11 | default_originate = "never" 12 | } 13 | // save_to = "bgp.dump" 14 | } -------------------------------------------------------------------------------- /examples/resources/routeros_bridge_mlag/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_bridge_mlag.mlag . 2 | -------------------------------------------------------------------------------- /examples/resources/routeros_bridge_mlag/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_bridge_mlag" "mlag" { 2 | bridge = "bridge1" 3 | peer_port = "stack-link" 4 | } -------------------------------------------------------------------------------- /examples/resources/routeros_capsman_aaa/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_capsman_aaa.test_3a . -------------------------------------------------------------------------------- /examples/resources/routeros_capsman_aaa/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_capsman_aaa" "test_3a" { 2 | called_format = "ssid" 3 | mac_mode = "as-username-and-password" 4 | } -------------------------------------------------------------------------------- /examples/resources/routeros_capsman_access_list/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/caps-man/access-list get [print show-ids]] 3 | terraform import routeros_capsman_access_list.test_rule "*1" 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_capsman_access_list/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_capsman_datapath" "test_rule" { 2 | comment = "Catch-all" 3 | interface = "cap1" 4 | signal_range = "-120..-85" 5 | allow_signal_out_of_range = "20s" 6 | action = "reject" 7 | } 8 | -------------------------------------------------------------------------------- /examples/resources/routeros_capsman_channel/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/caps-man/channel get [print show-ids]] 3 | terraform import routeros_capsman_channel.test_channel "*1" -------------------------------------------------------------------------------- /examples/resources/routeros_capsman_channel/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_capsman_channel" "test_channel" { 2 | name = "test_channel" 3 | comment = "test_channel" 4 | band = "2ghz-b/g/n" 5 | control_channel_width = "10mhz" 6 | extension_channel = "eCee" 7 | frequency = [2412] 8 | reselect_interval = "1h" 9 | save_selected = true 10 | secondary_frequency = ["disabled"] 11 | skip_dfs_channels = true 12 | tx_power = 20 13 | } 14 | -------------------------------------------------------------------------------- /examples/resources/routeros_capsman_configuration/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/caps-man/configuration get [print show-ids]] 3 | terraform import routeros_capsman_configuration.test_configuration_2 "*1" -------------------------------------------------------------------------------- /examples/resources/routeros_capsman_datapath/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/caps-man/datapath get [print show-ids]] 3 | terraform import routeros_capsman_datapath.test_datapath "*1" 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_capsman_datapath/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_capsman_datapath" "test_datapath" { 2 | name = "test_datapath" 3 | comment = "test_datapath" 4 | arp = "local-proxy-arp" 5 | bridge = "bridge" 6 | bridge_cost = 100 7 | bridge_horizon = 200 8 | client_to_client_forwarding = true 9 | interface_list = "static" 10 | l2mtu = 1450 11 | local_forwarding = true 12 | mtu = 1500 13 | vlan_id = 101 14 | vlan_mode = "no-tag" 15 | // openflow_switch = "aaa" 16 | } -------------------------------------------------------------------------------- /examples/resources/routeros_capsman_interface/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/caps-man/interface get [print show-ids]] 3 | terraform import routeros_capsman_interface.cap1 '*1' 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_capsman_interface/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_capsman_channel" "channel1" { 2 | name = "1" 3 | band = "2ghz-g/n" 4 | frequency = [2412] 5 | } 6 | 7 | resource "routeros_capsman_interface" "cap1" { 8 | name = "cap1" 9 | 10 | channel = { 11 | config = routeros_capsman_channel.channel1.name 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /examples/resources/routeros_capsman_manager/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_capsman_manager.test_manager . -------------------------------------------------------------------------------- /examples/resources/routeros_capsman_manager/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_capsman_manager" "test_manager" { 2 | enabled = true 3 | upgrade_policy = "require-same-version" 4 | } -------------------------------------------------------------------------------- /examples/resources/routeros_capsman_manager_interface/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/caps-man/manager/interface get [print show-ids]] 3 | terraform import routeros_capsman_manager_interface.test_manager_interface "*6" -------------------------------------------------------------------------------- /examples/resources/routeros_capsman_manager_interface/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_capsman_manager_interface" "test_manager_interface" { 2 | interface = "ether1" 3 | forbid = true 4 | } -------------------------------------------------------------------------------- /examples/resources/routeros_capsman_provisioning/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/caps-man/provisioning get [print show-ids]] 3 | terraform import routeros_capsman_provisioning.test_provisioning "*B" -------------------------------------------------------------------------------- /examples/resources/routeros_capsman_provisioning/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_capsman_configuration" "test_configuration" { 2 | name = "cfg1" 3 | } 4 | 5 | resource "routeros_capsman_provisioning" "test_provisioning" { 6 | master_configuration = "cfg1" 7 | action = "create-disabled" 8 | name_prefix = "cap-" 9 | 10 | depends_on = [ 11 | routeros_capsman_configuration.test_configuration, 12 | ] 13 | } -------------------------------------------------------------------------------- /examples/resources/routeros_capsman_rates/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/caps-man/rates get [print show-ids]] 3 | terraform import routeros_capsman_rates.test_rates "*1" -------------------------------------------------------------------------------- /examples/resources/routeros_capsman_rates/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_capsman_rates" "test_rates" { 2 | name = "test_rates" 3 | comment = "test_rates" 4 | basic = ["1Mbps", "5.5Mbps", "6Mbps", "18Mbps", "36Mbps", "54Mbps"] 5 | ht_basic_mcs = ["mcs-0", "mcs-7", "mcs-11", "mcs-14", "mcs-16", "mcs-21"] 6 | ht_supported_mcs = ["mcs-3", "mcs-8", "mcs-10", "mcs-13", "mcs-17", "mcs-18"] 7 | supported = ["2Mbps", "11Mbps", "9Mbps", "12Mbps", "24Mbps", "48Mbps"] 8 | vht_basic_mcs = "none" 9 | vht_supported_mcs = "mcs0-9,mcs0-7" 10 | } -------------------------------------------------------------------------------- /examples/resources/routeros_capsman_security/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/caps-man/security get [print show-ids]] 3 | terraform import routeros_capsman_security.test_security "*1" -------------------------------------------------------------------------------- /examples/resources/routeros_capsman_security/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_capsman_security" "test_security" { 2 | name = "test_security" 3 | comment = "test_security" 4 | authentication_types = ["wpa-psk", "wpa-eap", "wpa2-psk"] 5 | disable_pmkid = true 6 | eap_methods = "eap-tls,passthrough" 7 | eap_radius_accounting = true 8 | encryption = ["tkip", "aes-ccm"] 9 | group_encryption = "aes-ccm" 10 | group_key_update = "1h" 11 | passphrase = "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDE" 12 | tls_certificate = "none" 13 | tls_mode = "verify-certificate" 14 | } -------------------------------------------------------------------------------- /examples/resources/routeros_container/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/container get [print show-ids]] 3 | terraform import routeros_container.busybox "*1" -------------------------------------------------------------------------------- /examples/resources/routeros_container/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_container" "busybox" { 2 | remote_image = "library/busybox:1.35.0" 3 | cmd = "/bin/httpd -f -p 8080" 4 | interface = routeros_interface_veth.busybox.name 5 | logging = true 6 | root_dir = "/usb1-part1/containers/busybox/root" 7 | start_on_boot = true 8 | } 9 | -------------------------------------------------------------------------------- /examples/resources/routeros_container_config/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_container_config.config . -------------------------------------------------------------------------------- /examples/resources/routeros_container_config/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_container_config" "config" { 2 | registry_url = "https://registry-1.docker.io" 3 | ram_high = "0" 4 | tmpdir = "/usb1-part1/containers/tmp" 5 | layer_dir = "/usb1-part1/containers/layers" 6 | } 7 | -------------------------------------------------------------------------------- /examples/resources/routeros_container_envs/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/container/envs get [print show-ids]] 3 | terraform import routeros_container_envs.test_envs "*1" -------------------------------------------------------------------------------- /examples/resources/routeros_container_envs/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_container_envs" "test_envs" { 2 | name = "test_envs" 3 | key = "TZ" 4 | value = "UTC" 5 | } 6 | -------------------------------------------------------------------------------- /examples/resources/routeros_container_mounts/import.sh: -------------------------------------------------------------------------------- 1 | # Import with the name of the container mount in case of the example use Caddyfile 2 | terraform import routeros_container_mounts.caddyfile Caddyfile -------------------------------------------------------------------------------- /examples/resources/routeros_container_mounts/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_container_mounts" "caddyfile" { 2 | name = "Caddyfile" 3 | src = "/usb1-part1/containers/caddy/Caddyfile" 4 | dst = "/etc/caddy/Caddyfile" 5 | } 6 | -------------------------------------------------------------------------------- /examples/resources/routeros_disk_settings/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_disk_settings.test . 2 | -------------------------------------------------------------------------------- /examples/resources/routeros_disk_settings/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_disk_settings" "test" { 2 | auto_smb_sharing = false 3 | auto_smb_user = "guest" 4 | auto_media_sharing = false 5 | auto_media_interface = "lo" 6 | } 7 | -------------------------------------------------------------------------------- /examples/resources/routeros_file/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/file get [print show-ids]] 3 | terraform import routeros_file.test "*1" -------------------------------------------------------------------------------- /examples/resources/routeros_file/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_file" "test" { 2 | name = "test" 3 | contents = "This is a test" 4 | } 5 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_6to4/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/6to4 get [print show-ids]] 3 | terraform import routeros_interface_6to4.test *3 4 | #Or you can import a resource using one of its attributes 5 | terraform import routeros_interface_6to4.test "name=6to4-tunnel1" -------------------------------------------------------------------------------- /examples/resources/routeros_interface_6to4/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_6to4" "test" { 2 | name = "6to4-tunnel1" 3 | keepalive = "10,10" 4 | } 5 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_bonding/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/bonding get [print show-ids]] 3 | terraform import routeros_interface_bonding.test "*0" 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_bonding/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_bonding" "test" { 2 | name = "bonding-test" 3 | slaves = ["ether3", "ether4"] 4 | } -------------------------------------------------------------------------------- /examples/resources/routeros_interface_bridge/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/bridge get [print show-ids]] 3 | terraform import routeros_interface_bridge.bridge "*1" 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_bridge/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_bridge" "bridge" { 2 | name = "bridge" 3 | vlan_filtering = true 4 | } -------------------------------------------------------------------------------- /examples/resources/routeros_interface_bridge_filter/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/bridge/filter get [print show-ids]] 3 | terraform import routeros_interface_bridge_filter.rule "*0" 4 | #Or you can import a resource using one of its attributes 5 | terraform import routeros_interface_bridge_filter.rule "dst_address=224.0.0.251/32" -------------------------------------------------------------------------------- /examples/resources/routeros_interface_bridge_port/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/bridge/port get [print show-ids]] 3 | terraform import routeros_interface_bridge_port.bridge_port "*0" -------------------------------------------------------------------------------- /examples/resources/routeros_interface_bridge_port/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_bridge_port" "bridge_port" { 2 | bridge = "bridge" 3 | interface = "ether5" 4 | pvid = "50" 5 | } -------------------------------------------------------------------------------- /examples/resources/routeros_interface_bridge_settings/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_interface_bridge_settings.settings . 2 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_bridge_settings/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_bridge_settings" "settings" { 2 | use_ip_firewall = true 3 | } 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_bridge_vlan/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/bridge/vlan get [print show-ids]] 3 | terraform import routeros_interface_bridge_vlan.bridge_vlan "*0" -------------------------------------------------------------------------------- /examples/resources/routeros_interface_bridge_vlan/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_bridge_vlan" "bridge_vlan" { 2 | bridge = "bridge" 3 | vlan_ids = ["50"] 4 | tagged = [ 5 | "bridge", 6 | "ether1" 7 | ] 8 | untagged = [ 9 | "ether5" 10 | ] 11 | } 12 | 13 | resource "routeros_interface_bridge_vlan" "bridge_vlan" { 14 | bridge = "bridge" 15 | vlan_ids = ["4", "10", "20", "50", "100", "101", "102", "103", "112", "201", "202", "220", "254"] 16 | } 17 | 18 | resource "routeros_interface_bridge_vlan" "bridge_vlan" { 19 | bridge = "bridge" 20 | vlan_ids = ["4", "10", "20", "50", "100-103", "112", "201", "202", "220", "254"] 21 | } 22 | 23 | resource "routeros_interface_bridge_vlan" "bridge_vlan" { 24 | bridge = "bridge" 25 | vlan_ids = ["100-115", "120", "122", "128-130"] 26 | } 27 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_dot1x_client/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/dot1x/client get [print show-ids]] 3 | terraform import routeros_interface_dot1x_client.ether2 *1 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_dot1x_client/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_dot1x_client" "ether2" { 2 | eap_methods = ["eap-peap", "eap-mschapv2"] 3 | identity = "router" 4 | interface = "ether2" 5 | } 6 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_dot1x_server/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/dot1x/server get [print show-ids]] 3 | terraform import routeros_interface_dot1x_server.ether2 *1 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_dot1x_server/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_dot1x_server" "ether2" { 2 | auth_types = ["mac-auth"] 3 | interface = "ether2" 4 | } 5 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_eoip/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/eoip get [print show-ids]] 3 | terraform import routeros_interface_eoip.eoip_tunnel1 *B -------------------------------------------------------------------------------- /examples/resources/routeros_interface_eoip/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_eoip" "eoip_tunnel1" { 2 | name = "eoip-tunnel1" 3 | local_address = "192.168.88.1" 4 | remote_address = "192.168.88.2" 5 | disabled = true 6 | } 7 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_ethernet/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/ethernet get [print show-ids]] 3 | terraform import routeros_interface_ethernet.test "*0" 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_ethernet/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_ethernet" "test" { 2 | factory_name = "sfp-sfpplus8" 3 | name = "swtich-eth0" 4 | mtu = 9000 5 | } 6 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_ethernet_switch/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/ethernet/switch get [print show-ids]] 3 | terraform import routeros_interface_ethernet_switch.sw0 *0 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_ethernet_switch/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_ethernet_switch" "sw0" { 2 | switch_id = 0 # Optional 3 | name = "new switch" 4 | } -------------------------------------------------------------------------------- /examples/resources/routeros_interface_ethernet_switch_host/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/ethernet/switch/host get [print show-ids]] 3 | terraform import routeros_interface_ethernet_switch_host.test *0 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_ethernet_switch_host/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_ethernet_switch_host" "test" { 2 | switch = "switch1" 3 | mac_address = "00:00:00:00:00:00" 4 | ports = ["ether1"] 5 | mirror = true 6 | } -------------------------------------------------------------------------------- /examples/resources/routeros_interface_ethernet_switch_port/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/ethernet/switch/port get [print show-ids]] 3 | terraform import routeros_interface_ethernet_switch_port.test *1 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_ethernet_switch_port/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_ethernet_switch_port" "test" { 2 | name = "ether1" 3 | vlan_mode = "check" 4 | } 5 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_ethernet_switch_port_isolation/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/ethernet/switch/port-isolation get [print show-ids]] 3 | terraform import routeros_interface_ethernet_switch_port_isolation.test *1 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_ethernet_switch_port_isolation/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_ethernet_switch_port_isolation" "test" { 2 | name = "ether1" 3 | forwarding_override = "ether1" 4 | } 5 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_ethernet_switch_rule/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/ethernet/switch/rule get [print show-ids]] 3 | terraform import routeros_interface_ethernet_switch_rule.test *0 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_ethernet_switch_rule/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_ethernet_switch_rule" "test" { 2 | switch = "switch1" 3 | ports = ["ether1"] 4 | copy_to_cpu = true 5 | } 6 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_ethernet_switch_vlan/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/ethernet/switch/vlan get [print show-ids]] 3 | terraform import routeros_interface_ethernet_switch_vlan.test *0 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_ethernet_switch_vlan/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_ethernet_switch_vlan" "test" { 2 | switch = "switch1" 3 | ports = ["ether1"] 4 | vlan_id = 10 5 | independent_learning = true 6 | } -------------------------------------------------------------------------------- /examples/resources/routeros_interface_gre/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/gre get [print show-ids]] 3 | terraform import routeros_interface_gre.gre_hq "*1" 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_gre/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_gre" "gre_hq" { 2 | name = "gre-hq-1" 3 | remote_address = "10.77.3.26" 4 | disabled = true 5 | } 6 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_gre6/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/gre6 get [print show-ids]] 3 | terraform import routeros_interface_gre6.gre_hq "*1" 4 | #Or you can import a resource using one of its attributes 5 | terraform import routeros_interface_gre6.gre_hq "name=gre-hq-ipv6" -------------------------------------------------------------------------------- /examples/resources/routeros_interface_gre6/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_gre6" "gre_hq" { 2 | name = "gre-hq-ipv6" 3 | remote_address = "2a02::2" 4 | disabled = true 5 | } 6 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_ipip/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/ipip get [print show-ids]] 3 | terraform import routeros_interface_ipip.ipip_hq "*1" 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_ipip/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_ipip" "ipip_hq" { 2 | name = "ipip-hq-1" 3 | remote_address = "10.77.3.26" 4 | disabled = true 5 | } 6 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_l2tp_client/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/l2tp/client get [print show-ids]] 3 | terraform import routeros_interface_l2tp_client.test *3 4 | #Or you can import a resource using one of its attributes 5 | terraform import routeros_interface_l2tp_client.test "name=xxx" -------------------------------------------------------------------------------- /examples/resources/routeros_interface_l2tp_client/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_l2tp_client" "test" { 2 | name = "l2tp-test-out" 3 | connect_to = "127.0.0.1" 4 | user = "aaa" 5 | password = "bbb" 6 | } 7 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_list/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/list get [print show-ids]] 3 | terraform import routeros_interface_list.list "*2000010" -------------------------------------------------------------------------------- /examples/resources/routeros_interface_list/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_list" "list" { 2 | name = "my-list" 3 | } -------------------------------------------------------------------------------- /examples/resources/routeros_interface_list_member/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/list/member get [print show-ids]] 3 | terraform import routeros_interface_list_member.list_member "*0" -------------------------------------------------------------------------------- /examples/resources/routeros_interface_list_member/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_list_member" "list_member" { 2 | interface = "ether1" 3 | list = "my-list" 4 | } -------------------------------------------------------------------------------- /examples/resources/routeros_interface_lte/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ get [print show-ids]] 3 | terraform import routeros_interface_lte.test *3 -------------------------------------------------------------------------------- /examples/resources/routeros_interface_lte/resource.tf: -------------------------------------------------------------------------------- 1 | 2 | resource "routeros_interface_lte" "test" { 3 | allow_roaming = false 4 | apn_profiles = "default" 5 | band = [] 6 | default_name = "lte1" 7 | disabled = false 8 | mtu = "1500" 9 | name = "lte1" 10 | network_mode = ["3g", "lte"] 11 | sms_protocol = null 12 | } -------------------------------------------------------------------------------- /examples/resources/routeros_interface_lte_apn/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ get [print show-ids]] 3 | terraform import routeros_interface_lte_apn.test *3 -------------------------------------------------------------------------------- /examples/resources/routeros_interface_lte_apn/resource.tf: -------------------------------------------------------------------------------- 1 | 2 | resource "routeros_interface_lte_apn" "test" { 3 | name = "apn1" 4 | apn = "internet" 5 | authentication = "pap" 6 | } -------------------------------------------------------------------------------- /examples/resources/routeros_interface_macvlan/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/macvlan get [print show-ids]] 3 | terraform import routeros_interface_macvlan.test "*0" 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_macvlan/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_macvlan" "test" { 2 | interface = "ether1" 3 | name = "macvlan1" 4 | disabled = false 5 | } -------------------------------------------------------------------------------- /examples/resources/routeros_interface_ovpn_server/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/ovpn-server get [print show-ids]] 3 | terraform import routeros_interface_ovpn_server.user1 *29 -------------------------------------------------------------------------------- /examples/resources/routeros_interface_ovpn_server/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_ovpn_server" "user1" { 2 | name = "ovpn-in1" 3 | user = "user1" 4 | depends_on = [routeros_ovpn_server.server] 5 | } 6 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_pppoe_client/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/pppoe-client get [print show-ids]] 3 | terraform import routeros_interface_pppoe_client.test "*0" 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_pppoe_client/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_pppoe_client" "test" { 2 | interface = "ether1" 3 | password = "StrongPass" 4 | service_name = "pppoeservice" 5 | name = "PPPoE-Out" 6 | disabled = false 7 | user = "MT-User" 8 | } -------------------------------------------------------------------------------- /examples/resources/routeros_interface_pppoe_server/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/pppoe/server get [print show-ids]] 3 | terraform import routeros_interface_pppoe_server.test *3 4 | #Or you can import a resource using one of its attributes 5 | terraform import routeros_interface_pppoe_server.test "name=xxx" -------------------------------------------------------------------------------- /examples/resources/routeros_interface_pppoe_server/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_pppoe_server" "test" { 2 | comment = "comment" 3 | disabled = true 4 | name = "pppoe-in1" 5 | user = "" 6 | service = "" 7 | } 8 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_veth/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/veth get [print show-ids]] 3 | terraform import routeros_interface_veth.test "*0" 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_veth/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_veth" "test" { 2 | name = "veth-test" 3 | address = "192.168.120.2/24" 4 | gateway = "192.168.120.1" 5 | comment = "Virtual interface" 6 | } 7 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_vlan/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/vlan get [print show-ids]] 3 | terraform import routeros_interface_vlan.interface_vlan "*1" -------------------------------------------------------------------------------- /examples/resources/routeros_interface_vlan/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_vlan" "interface_vlan" { 2 | interface = "bridge" 3 | name = "VLAN_TEST" 4 | vlan_id = 50 5 | } -------------------------------------------------------------------------------- /examples/resources/routeros_interface_vrrp/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/vrrp get [print show-ids]] 3 | terraform import routeros_interface_vrrp.interface_vrrp "*0" -------------------------------------------------------------------------------- /examples/resources/routeros_interface_vrrp/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_vrrp" "interface_vrrp" { 2 | interface = "bridge" 3 | name = "lan_vrrp" 4 | } -------------------------------------------------------------------------------- /examples/resources/routeros_interface_vxlan/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/vxlan get [print show-ids]] 3 | terraform import routeros_interface_vxlan.test *3 4 | #Or you can import a resource using one of its attributes 5 | terraform import routeros_interface_vxlan.test "name=vxlan1" -------------------------------------------------------------------------------- /examples/resources/routeros_interface_vxlan/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_vxlan" "test" { 2 | name = "vxlan1-test" 3 | vni = 10 4 | } 5 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_vxlan_vteps/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/vxlan/vteps get [print show-ids]] 3 | terraform import routeros_interface_vxlan_vteps.test *3 4 | #Or you can import a resource using one of its attributes 5 | terraform import routeros_interface_vxlan_vteps.test "interface=vxlan2-test" -------------------------------------------------------------------------------- /examples/resources/routeros_interface_vxlan_vteps/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_vxlan" "test-2" { 2 | name = "vxlan2-test" 3 | vni = 11 4 | } 5 | 6 | resource "routeros_interface_vxlan_vteps" "test" { 7 | interface = routeros_interface_vxlan.test-2.name 8 | remote_ip = "192.168.10.10" 9 | } 10 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_w60g/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/w60g get [print show-ids]] 3 | terraform import routeros_interface_w60g.test *3 4 | #Or you can import a resource using one of its attributes 5 | terraform import routeros_interface_w60g.test "name=xxx" -------------------------------------------------------------------------------- /examples/resources/routeros_interface_w60g/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_w60g" "test" { 2 | make = "wlan60-1" 3 | password = "put_your_safe_password_here" 4 | ssid = "put_your_new_ssid_here" 5 | disabled = false 6 | mode = "ap-bridge" 7 | } 8 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_w60g_station/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/w60g/station get [print show-ids]] 3 | terraform import routeros_interface_w60g_station.test *3 4 | #Or you can import a resource using one of its attributes 5 | terraform import routeros_interface_w60g_station.test "name=xxx" -------------------------------------------------------------------------------- /examples/resources/routeros_interface_w60g_station/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_w60g_station" "test" { 2 | name = "wlan60-station-1" 3 | parent = "wlan60-1" 4 | remote-address = "AA:AA:AA:AA:AA:AA" 5 | put-in-bridge = "parent" 6 | } 7 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_wireguard/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/wireguard get [print show-ids]] 3 | terraform import routeros_interface_wireguard.test_wg_interface "*1" -------------------------------------------------------------------------------- /examples/resources/routeros_interface_wireguard/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_wireguard" "test_wg_interface" { 2 | name = "test_wg_interface" 3 | listen_port = "13231" 4 | } -------------------------------------------------------------------------------- /examples/resources/routeros_interface_wireguard_peer/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/wireguard/peers get [print show-ids]] 3 | terraform import routeros_interface_wireguard_peer.wg_peer "*0" -------------------------------------------------------------------------------- /examples/resources/routeros_interface_wireguard_peer/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_wireguard" "test_wg_interface" { 2 | name = "test_wg_interface" 3 | listen_port = "13231" 4 | } 5 | 6 | resource "routeros_interface_wireguard_peer" "wg_peer" { 7 | interface = routeros_interface_wireguard.test_wg_interface.name 8 | public_key = "MY_BASE_64_PUBLIC_KEY" 9 | allowed_address = [ 10 | "192.168.0.0/16", 11 | "172.16.0.0/12", 12 | "10.0.0.0/8", 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_wireless/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/wireless get [print show-ids]] 3 | terraform import routeros_interface_wireless.test *3 -------------------------------------------------------------------------------- /examples/resources/routeros_interface_wireless_access_list/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/wireless/access-list get [print show-ids]] 3 | terraform import routeros_interface_wireless_access_list.test *3 -------------------------------------------------------------------------------- /examples/resources/routeros_interface_wireless_access_list/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_wireless_access_list" "test" { 2 | signal_range = "-100..100" 3 | time = "3h3m-5h,mon,tue,wed,thu,fri" 4 | mac_address = "00:AA:BB:CC:DD:EE" 5 | } -------------------------------------------------------------------------------- /examples/resources/routeros_interface_wireless_cap/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_interface_wireless_cap.settings . 2 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_wireless_cap/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_wireless_cap" "settings" { 2 | discovery_interfaces = ["bridge1"] 3 | enabled = true 4 | interfaces = ["wlan1", "wlan2"] 5 | } 6 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_wireless_connect_list/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/wireless/connect-list get [print show-ids]] 3 | terraform import routeros_interface_wireless_connect_list.test *3 4 | #Or you can import a resource using one of its attributes 5 | terraform import routeros_interface_wireless_connect_list.test "name=xxx" -------------------------------------------------------------------------------- /examples/resources/routeros_interface_wireless_connect_list/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_wireless_connect_list" "test" { 2 | interface = "wlan0" 3 | security_profile = "test-secp" 4 | } 5 | -------------------------------------------------------------------------------- /examples/resources/routeros_interface_wireless_security_profiles/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/wireless/security-profiles get [print show-ids]] 3 | terraform import routeros_interface_wireless_security_profiles.test *3 -------------------------------------------------------------------------------- /examples/resources/routeros_interface_wireless_security_profiles/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_wireless_security_profiles" "test" { 2 | name = "test-profile" 3 | mode = "dynamic-keys" 4 | authentication_types = ["wpa-psk", "wpa2-psk"] 5 | wpa_pre_shared_key = "wpa_psk_key" 6 | wpa2_pre_shared_key = "wpa2_psk_key" 7 | } -------------------------------------------------------------------------------- /examples/resources/routeros_ip_address/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ip/address get [print show-ids]] 3 | terraform import routeros_ip_address.address "*0" -------------------------------------------------------------------------------- /examples/resources/routeros_ip_address/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_address" "address" { 2 | address = "10.0.0.1/24" 3 | interface = "bridge" 4 | network = "10.0.0.0" 5 | } -------------------------------------------------------------------------------- /examples/resources/routeros_ip_cloud/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_ip_cloud.test . 2 | -------------------------------------------------------------------------------- /examples/resources/routeros_ip_cloud/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_cloud" "test" { 2 | ddns_enabled = true 3 | update_time = false 4 | ddns_update_interval = "11m" 5 | } -------------------------------------------------------------------------------- /examples/resources/routeros_ip_cloud_advanced/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_ip_cloud_advanced.settings . 2 | -------------------------------------------------------------------------------- /examples/resources/routeros_ip_cloud_advanced/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_cloud_advanced" "settings" { 2 | use_local_address = true 3 | } 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_ip_dhcp_client/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ip/dhcp-client get [print show-ids]] 3 | terraform import routeros_ip_dhcp_client.client "*0" -------------------------------------------------------------------------------- /examples/resources/routeros_ip_dhcp_client/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_dhcp_client" "client" { 2 | interface = "bridge" 3 | } -------------------------------------------------------------------------------- /examples/resources/routeros_ip_dhcp_client_option/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ip/dhcp-client/option get [print show-ids]] 3 | terraform import routeros_ip_dhcp_client_option.option "*0" -------------------------------------------------------------------------------- /examples/resources/routeros_ip_dhcp_client_option/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_dhcp_client_option" "option" { 2 | name = "my-dhcp-option" 3 | code = 60 4 | } -------------------------------------------------------------------------------- /examples/resources/routeros_ip_dhcp_relay/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ip/dhcp-relay get [print show-ids]] 3 | terraform import routeros_ip_dhcp_relay.relay "*0" -------------------------------------------------------------------------------- /examples/resources/routeros_ip_dhcp_relay/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_dhcp_relay" "relay" { 2 | name = "test relay" 3 | interface = "ether1" 4 | dhcp_server = "0.0.0.1" 5 | } -------------------------------------------------------------------------------- /examples/resources/routeros_ip_dhcp_server/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ip/dhcp-server get [print show-ids]] 3 | terraform import routeros_ip_dhcp_server.server "*1" -------------------------------------------------------------------------------- /examples/resources/routeros_ip_dhcp_server/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_dhcp_server" "server" { 2 | address_pool = "my_address_pool" 3 | interface = "bridge" 4 | name = "bridge_dhcp" 5 | } -------------------------------------------------------------------------------- /examples/resources/routeros_ip_dhcp_server_config/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_ip_dhcp_server_config.settings . 2 | -------------------------------------------------------------------------------- /examples/resources/routeros_ip_dhcp_server_config/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_dhcp_server_config" "settings" { 2 | accounting = true 3 | interim_update = "1m" 4 | radius_password = "same-as-user" 5 | store_leases_disk = "10m" 6 | } 7 | -------------------------------------------------------------------------------- /examples/resources/routeros_ip_dhcp_server_lease/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ip/dhcp-server/lease get [print show-ids]] 3 | terraform import routeros_ip_dhcp_server_lease.dhcp_lease "*0" -------------------------------------------------------------------------------- /examples/resources/routeros_ip_dhcp_server_lease/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_dhcp_server_lease" "dhcp_lease" { 2 | address = "10.0.0.2" 3 | mac_address = "AA:BB:CC:DD:11:22" 4 | } -------------------------------------------------------------------------------- /examples/resources/routeros_ip_dhcp_server_network/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ip/dhcp-server/network get [print show-ids]] 3 | terraform import routeros_ip_dhcp_server_network.dhcp_server_network "*0" -------------------------------------------------------------------------------- /examples/resources/routeros_ip_dhcp_server_network/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_dhcp_server_network" "dhcp_server_network" { 2 | address = "10.0.0.0/24" 3 | gateway = "10.0.0.1" 4 | dns_server = ["1.1.1.1"] 5 | } -------------------------------------------------------------------------------- /examples/resources/routeros_ip_dhcp_server_option/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ip/dhcp-server/option/get [print show-ids]] 3 | terraform import routeros_ip_dhcp_server_option.tftp_option "*1" -------------------------------------------------------------------------------- /examples/resources/routeros_ip_dhcp_server_option/resource.tf: -------------------------------------------------------------------------------- 1 | 2 | resource "routeros_ip_dhcp_server_option" "jumbo_frame_opt" { 3 | code = 77 4 | name = "jumbo-mtu-opt" 5 | value = "0x2336" 6 | } 7 | 8 | resource "routeros_ip_dhcp_server_option" "tftp_option" { 9 | code = 66 10 | name = "tftpserver-66" 11 | value = "s'10.10.10.22'" 12 | } 13 | -------------------------------------------------------------------------------- /examples/resources/routeros_ip_dhcp_server_option_set/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ip/dhcp-server/option/sets/get [print show-ids]] 3 | terraform import routeros_ip_dhcp_server_option_set.lan_option_set "*1" -------------------------------------------------------------------------------- /examples/resources/routeros_ip_dhcp_server_option_set/resource.tf: -------------------------------------------------------------------------------- 1 | 2 | resource "routeros_ip_dhcp_server_option" "jumbo_frame_opt" { 3 | code = 77 4 | name = "jumbo-mtu-opt" 5 | value = "0x2336" 6 | } 7 | 8 | resource "routeros_ip_dhcp_server_option" "tftp_option" { 9 | code = 66 10 | name = "tftpserver-66" 11 | value = "s'10.10.10.22'" 12 | } 13 | 14 | resource "routeros_ip_dhcp_server_option_set" "lan_option_set" { 15 | name = "lan-option-set" 16 | options = join(",", [routeros_ip_dhcp_server_option.jumbo_frame_opt.name, routeros_ip_dhcp_server_option.tftp_option.name]) 17 | } -------------------------------------------------------------------------------- /examples/resources/routeros_ip_dns/import.sh: -------------------------------------------------------------------------------- 1 | #The DNS Settings can not be imported. 2 | #Terraform will ignore the current settings and will overwrite the current settings with the settings defined in Terraform. -------------------------------------------------------------------------------- /examples/resources/routeros_ip_dns/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_dns" "dns-server" { 2 | allow_remote_requests = true 3 | servers = [ 4 | "2606:4700:4700::1111,1.1.1.1", 5 | "2606:4700:4700::1001,1.0.0.1", 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /examples/resources/routeros_ip_dns_adlist/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ip/dns/adlist get [print show-ids]] 3 | terraform import routeros_ip_dns_adlist.test "*0" -------------------------------------------------------------------------------- /examples/resources/routeros_ip_dns_adlist/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_dns_adlist" "test" { 2 | url = "https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts" 3 | ssl_verify = false 4 | } 5 | -------------------------------------------------------------------------------- /examples/resources/routeros_ip_dns_record/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ip/dns/static get [print show-ids]] 3 | terraform import routeros_ip_dns_record.name_record "*0" -------------------------------------------------------------------------------- /examples/resources/routeros_ip_firewall_addr_list/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ip/firewall/address-list get [print show-ids]] 3 | terraform import routeros_ip_firewall_addr_list.example_list "*0" -------------------------------------------------------------------------------- /examples/resources/routeros_ip_firewall_addr_list/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_firewall_addr_list" "example_list" { 2 | address = "1.1.1.1" 3 | list = "Example List" 4 | } -------------------------------------------------------------------------------- /examples/resources/routeros_ip_firewall_connection_tracking/resource.tf: -------------------------------------------------------------------------------- 1 | 2 | resource "routeros_ip_firewall_connection_tracking" "data" { 3 | enabled = "yes" 4 | generic_timeout = "3m" 5 | icmp_timeout = "3m" 6 | loose_tcp_tracking = "false" 7 | tcp_close_timeout = "3m" 8 | tcp_close_wait_timeout = "3m" 9 | tcp_established_timeout = "3m" 10 | tcp_fin_wait_timeout = "3m" 11 | tcp_last_ack_timeout = "3m" 12 | tcp_max_retrans_timeout = "3m" 13 | tcp_syn_received_timeout = "3m" 14 | tcp_syn_sent_timeout = "3m" 15 | tcp_time_wait_timeout = "3m" 16 | tcp_unacked_timeout = "3m" 17 | udp_stream_timeout = "3m" 18 | udp_timeout = "3m" 19 | } -------------------------------------------------------------------------------- /examples/resources/routeros_ip_firewall_filter/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ip/firewall/filter get [print show-ids]] 3 | terraform import routeros_ip_firewall_filter.rule "*0" -------------------------------------------------------------------------------- /examples/resources/routeros_ip_firewall_filter/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_firewall_filter" "rule" { 2 | action = "accept" 3 | chain = "forward" 4 | src_address = "10.0.0.1" 5 | dst_address = "10.0.1.1" 6 | dst_port = "443" 7 | protocol = "tcp" 8 | } -------------------------------------------------------------------------------- /examples/resources/routeros_ip_firewall_mangle/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ip/firewall/mangle get [print show-ids]] 3 | terraform import routeros_ip_firewall_mangle.rule "*0" -------------------------------------------------------------------------------- /examples/resources/routeros_ip_firewall_mangle/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_firewall_mangle" "rule" { 2 | action = "change-mss" 3 | chain = "forward" 4 | out_interface = "pppoe-out" 5 | protocol = "tcp" 6 | tcp_flags = "syn" 7 | new_mss = "1130" 8 | tcp_mss = "1301-65535" 9 | } -------------------------------------------------------------------------------- /examples/resources/routeros_ip_firewall_nat/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ip/firewall/nat get [print show-ids]] 3 | terraform import routeros_ip_firewall_nat.rule "*0" -------------------------------------------------------------------------------- /examples/resources/routeros_ip_firewall_nat/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_firewall_nat" "rule" { 2 | action = "masquerade" 3 | chain = "srcnat" 4 | out_interface = "ether16" 5 | } -------------------------------------------------------------------------------- /examples/resources/routeros_ip_hotspot/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ip/hotspot get [print show-ids]] 3 | terraform import routeros_ip_hotspot.test *3 -------------------------------------------------------------------------------- /examples/resources/routeros_ip_hotspot/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_hotspot" "test" { 2 | name = "server-1" 3 | interface = "ether2" 4 | } 5 | -------------------------------------------------------------------------------- /examples/resources/routeros_ip_hotspot_ip_binding/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ip/hotspot/ip-binding get [print show-ids]] 3 | terraform import routeros_ip_hotspot_ip_binding.test *3 -------------------------------------------------------------------------------- /examples/resources/routeros_ip_hotspot_ip_binding/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_hotspot_ip_binding" "test" { 2 | address = "0.0.0.1" 3 | comment = "comment" 4 | mac_address = "00:00:00:00:01:10" 5 | to_address = "0.0.0.2" 6 | } 7 | -------------------------------------------------------------------------------- /examples/resources/routeros_ip_hotspot_profile/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ip/hotspot/profile get [print show-ids]] 3 | terraform import routeros_ip_hotspot_profile.test *3 -------------------------------------------------------------------------------- /examples/resources/routeros_ip_hotspot_profile/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_hotspot_profile" "test" { 2 | name = "hsprof-1" 3 | login_by = ["mac", "https", "trial"] 4 | use_radius = true 5 | } 6 | -------------------------------------------------------------------------------- /examples/resources/routeros_ip_hotspot_service_port/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ip/hotspot/service-port get [print show-ids]] 3 | terraform import routeros_ip_hotspot_service_port.test *1 -------------------------------------------------------------------------------- /examples/resources/routeros_ip_hotspot_service_port/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_hotspot_service_port" "test" { 2 | name = "ftp" 3 | disabled = true 4 | } 5 | -------------------------------------------------------------------------------- /examples/resources/routeros_ip_hotspot_user/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ip/hotspot/user get [print show-ids]] 3 | terraform import routeros_ip_hotspot_user.test *3 -------------------------------------------------------------------------------- /examples/resources/routeros_ip_hotspot_user/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_hotspot_user" "test" { 2 | name = "user-1" 3 | } -------------------------------------------------------------------------------- /examples/resources/routeros_ip_hotspot_user_profile/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ip/hotspot/user/profile get [print show-ids]] 3 | terraform import routeros_ip_hotspot_user_profile.test *3 -------------------------------------------------------------------------------- /examples/resources/routeros_ip_hotspot_user_profile/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_hotspot_user_profile" "test" { 2 | add_mac_cookie = true 3 | address_list = "list-1" 4 | idle_timeout = "none" 5 | keepalive_timeout = "2m" 6 | mac_cookie_timeout = "3d" 7 | name = "new-profile" 8 | shared_users = 3 9 | status_autorefresh = "2m" 10 | transparent_proxy = true 11 | advertise = true 12 | } 13 | -------------------------------------------------------------------------------- /examples/resources/routeros_ip_hotspot_walled_garden/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ip/hotspot/walled-garden get [print show-ids]] 3 | terraform import routeros_ip_hotspot_walled_garden.test *3 -------------------------------------------------------------------------------- /examples/resources/routeros_ip_hotspot_walled_garden/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_hotspot_walled_garden" "test" { 2 | action = "deny" 3 | dst_host = "1.2.3.4" 4 | dst_port = "!443" 5 | } -------------------------------------------------------------------------------- /examples/resources/routeros_ip_hotspot_walled_garden_ip/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ip/hotspot/walled-garden/ip get [print show-ids]] 3 | terraform import routeros_ip_hotspot_walled_garden_ip.test *3 -------------------------------------------------------------------------------- /examples/resources/routeros_ip_hotspot_walled_garden_ip/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_hotspot_walled_garden_ip" "test" { 2 | action = "reject" 3 | dst_address = "!0.0.0.0" 4 | dst_address_list = "dlist" 5 | dst_port = "0-65535" 6 | protocol = "tcp" 7 | src_address = "0.0.0.0" 8 | src_address_list = "slist" 9 | } 10 | -------------------------------------------------------------------------------- /examples/resources/routeros_ip_ipsec_identity/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ip/ipsec/identity get [print show-ids]] 3 | terraform import routeros_ip_ipsec_identity.test *3 4 | #Or you can import a resource using one of its attributes 5 | terraform import routeros_ip_ipsec_identity.test "peer=NordVPN" -------------------------------------------------------------------------------- /examples/resources/routeros_ip_ipsec_identity/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_ipsec_mode_config" "test" { 2 | name = "NordVPN" 3 | responder = false 4 | } 5 | 6 | resource "routeros_ip_ipsec_peer" "test" { 7 | address = "lv20.nordvpn.com" 8 | exchange_mode = "ike2" 9 | name = "NordVPN" 10 | } 11 | 12 | resource "routeros_ip_ipsec_identity" "test" { 13 | auth-method = "eap" 14 | certificate = "" 15 | eap-methods = "eap-mschapv2" 16 | generate-policy = "port-strict" 17 | mode-config = routeros_ip_ipsec_mode_config.test.name 18 | peer = routeros_ip_ipsec_peer.test.name 19 | username = "support@mikrotik.com" 20 | password = "secret" 21 | } 22 | -------------------------------------------------------------------------------- /examples/resources/routeros_ip_ipsec_key/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ip/ipsec/key get [print show-ids]] 3 | terraform import routeros_ip_ipsec_key.test *3 4 | #Or you can import a resource using one of its attributes 5 | terraform import routeros_ip_ipsec_key.test "name=test-key" -------------------------------------------------------------------------------- /examples/resources/routeros_ip_ipsec_key/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_ipsec_key" "test" { 2 | name = "test-key" 3 | key_size = 2048 4 | } 5 | -------------------------------------------------------------------------------- /examples/resources/routeros_ip_ipsec_mode_config/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ip/ipsec/mode/config get [print show-ids]] 3 | terraform import routeros_ip_ipsec_mode_config.test *3 4 | #Or you can import a resource using one of its attributes 5 | terraform import routeros_ip_ipsec_mode_config.test "address=1.2.3.4" -------------------------------------------------------------------------------- /examples/resources/routeros_ip_ipsec_mode_config/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_ipsec_mode_config" "test" { 2 | name = "test-cfg" 3 | address = "1.2.3.4" 4 | split_include = ["0.0.0.0/0"] 5 | split_dns = ["1.1.1.1"] 6 | } 7 | -------------------------------------------------------------------------------- /examples/resources/routeros_ip_ipsec_peer/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ip/ipsec/peer get [print show-ids]] 3 | terraform import routeros_ip_ipsec_peer.test *3 4 | #Or you can import a resource using one of its attributes 5 | terraform import routeros_ip_ipsec_peer.test "name=NordVPN" -------------------------------------------------------------------------------- /examples/resources/routeros_ip_ipsec_peer/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_ipsec_peer" "test" { 2 | address = "lv20.nordvpn.com" 3 | exchange_mode = "ike2" 4 | name = "NordVPN" 5 | } 6 | -------------------------------------------------------------------------------- /examples/resources/routeros_ip_ipsec_policy/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ip/ipsec/policy get [print show-ids]] 3 | terraform import routeros_ip_ipsec_policy.test *3 4 | #Or you can import a resource using one of its attributes 5 | terraform import routeros_ip_ipsec_policy.test "group=test-group" -------------------------------------------------------------------------------- /examples/resources/routeros_ip_ipsec_policy/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_ipsec_policy_group" "group-for-policy" { 2 | name = "test-group" 3 | } 4 | 5 | resource "routeros_ip_ipsec_policy" "policy" { 6 | dst_address = "0.0.0.0/0" 7 | group = routeros_ip_ipsec_policy_group.group-for-policy.name 8 | proposal = "NordVPN" 9 | src_address = "0.0.0.0/0" 10 | template = true 11 | } 12 | -------------------------------------------------------------------------------- /examples/resources/routeros_ip_ipsec_policy_group/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ip/ipsec/policy/group get [print show-ids]] 3 | terraform import routeros_ip_ipsec_policy_group.test *3 4 | #Or you can import a resource using one of its attributes 5 | terraform import routeros_ip_ipsec_policy_group.test "name=test-group" -------------------------------------------------------------------------------- /examples/resources/routeros_ip_ipsec_policy_group/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_ipsec_policy_group" "test" { 2 | name = "test-group" 3 | } -------------------------------------------------------------------------------- /examples/resources/routeros_ip_ipsec_profile/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ip/ipsec/profile get [print show-ids]] 3 | terraform import routeros_ip_ipsec_profile.test *3 4 | #Or you can import a resource using one of its attributes 5 | terraform import routeros_ip_ipsec_profile.test "name=test-profile" -------------------------------------------------------------------------------- /examples/resources/routeros_ip_ipsec_profile/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_ipsec_profile" "test" { 2 | name = "test-profile" 3 | hash_algorithm = "sha256" 4 | enc_algorithm = ["aes-192", "aes-256"] 5 | dh_group = ["ecp384", "ecp521"] 6 | nat_traversal = false 7 | } -------------------------------------------------------------------------------- /examples/resources/routeros_ip_ipsec_proposal/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ip/ipsec/proposal get [print show-ids]] 3 | terraform import routeros_ip_ipsec_proposal.test *3 4 | #Or you can import a resource using one of its attributes 5 | terraform import routeros_ip_ipsec_proposal.test "name=NordVPN" -------------------------------------------------------------------------------- /examples/resources/routeros_ip_ipsec_proposal/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_ipsec_proposal" "test" { 2 | name = "NordVPN" 3 | pfs_group = "none" 4 | lifetime = "45m10s" 5 | } 6 | -------------------------------------------------------------------------------- /examples/resources/routeros_ip_ipsec_settings/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_ip_ipsec_settings.test . -------------------------------------------------------------------------------- /examples/resources/routeros_ip_ipsec_settings/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_ipsec_settings" "test" { 2 | xauth_use_radius = true 3 | interim_update = "60s" 4 | } -------------------------------------------------------------------------------- /examples/resources/routeros_ip_neighbor_discovery_settings/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_ip_neighbor_discovery_settings.test . -------------------------------------------------------------------------------- /examples/resources/routeros_ip_neighbor_discovery_settings/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_neighbor_discovery_settings" "test" { 2 | discover_interface_list = "static" 3 | lldp_med_net_policy_vlan = "1" 4 | mode = "tx-and-rx" 5 | protocol = [] 6 | } 7 | -------------------------------------------------------------------------------- /examples/resources/routeros_ip_pool/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ip/pool get [print show-ids]] 3 | terraform import routeros_ip_pool.pool "*1" -------------------------------------------------------------------------------- /examples/resources/routeros_ip_pool/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_pool" "pool" { 2 | name = "my_ip_pool" 3 | ranges = ["10.0.0.100-10.0.0.200"] 4 | } -------------------------------------------------------------------------------- /examples/resources/routeros_ip_route/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ip/route get [print show-ids]] 3 | terraform import routeros_ip_route.a_route "*0" -------------------------------------------------------------------------------- /examples/resources/routeros_ip_route/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_route" "a_route" { 2 | dst_address = "0.0.0.0/0" 3 | gateway = "10.0.0.1" 4 | } -------------------------------------------------------------------------------- /examples/resources/routeros_ip_service/import.sh: -------------------------------------------------------------------------------- 1 | # Import with the name of the ip service in case of the example use www-ssl 2 | terraform import routeros_ip_service.www_ssl www-ssl -------------------------------------------------------------------------------- /examples/resources/routeros_ip_settings/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_ip_settings.settings . -------------------------------------------------------------------------------- /examples/resources/routeros_ip_settings/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_settings" "settings" { 2 | ipv4_multipath_hash_policy = "l3-inner" 3 | } 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_ip_smb/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_ip_smb.test . 2 | -------------------------------------------------------------------------------- /examples/resources/routeros_ip_smb/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_smb" "test" { 2 | enabled = "auto" 3 | domain = "MSHOME" 4 | comment = "MikrotikSMB" 5 | interfaces = ["all"] 6 | } 7 | -------------------------------------------------------------------------------- /examples/resources/routeros_ip_ssh_server/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_ip_ssh_server.test . -------------------------------------------------------------------------------- /examples/resources/routeros_ip_ssh_server/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_ssh_server" "test" { 2 | strong_crypto = true 3 | forwarding_enabled = "local" 4 | host_key_size = 4096 5 | } 6 | -------------------------------------------------------------------------------- /examples/resources/routeros_ip_upnp/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_ip_upnp.test . -------------------------------------------------------------------------------- /examples/resources/routeros_ip_upnp/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_upnp" "test" { 2 | allow_disable_external_interface = true 3 | enabled = true 4 | show_dummy_rule = true 5 | } -------------------------------------------------------------------------------- /examples/resources/routeros_ip_upnp_interfaces/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ip/upnp/interfaces get [print show-ids]] 3 | terraform import routeros_ip_upnp_interfaces.test '*1' 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_ip_upnp_interfaces/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ip_upnp_interfaces" "test" { 2 | interface = "ether1" 3 | type = "external" 4 | forced_external_ip = "0.0.0.0" 5 | } -------------------------------------------------------------------------------- /examples/resources/routeros_ip_vrf/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ip/vrf get [print show-ids]] 3 | terraform import routeros_ip_vrf.test_vrf_a "*0" 4 | # or 5 | terraform import routeros_ip_vrf.test_vrf_a "vrf_1" 6 | # or 7 | terraform import routeros_ip_vrf.test_vrf_a `"comment=Custom routing"` -------------------------------------------------------------------------------- /examples/resources/routeros_ip_vrf/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_interface_veth" "veth1" { 2 | name = "veth1" 3 | } 4 | 5 | resource "routeros_interface_veth" "veth2" { 6 | name = "veth2" 7 | } 8 | 9 | resource "routeros_ip_vrf" "test_vrf_a" { 10 | disabled = true 11 | name = "vrf_1" 12 | comment = "Custom routing" 13 | interfaces = ["veth1", "veth2"] 14 | depends_on = [routeros_interface_veth.veth1, routeros_interface_veth.veth2] 15 | } -------------------------------------------------------------------------------- /examples/resources/routeros_ipv6_address/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ipv6/address get [print show-ids]] 3 | terraform import routeros_ipv6_address.ipv6_address "*0" -------------------------------------------------------------------------------- /examples/resources/routeros_ipv6_address/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ipv6_address" "ipv6_address" { 2 | address = "fd55::1/64" 3 | interface = "ether1" 4 | disabled = false 5 | } 6 | -------------------------------------------------------------------------------- /examples/resources/routeros_ipv6_dhcp_client/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ipv6/dhcp-client/ get [print show-ids]] 3 | terraform import routeros_ipv6_dhcp_client.inet_provider "*1" -------------------------------------------------------------------------------- /examples/resources/routeros_ipv6_dhcp_client/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ipv6_dhcp_client" "inet_provider" { 2 | pool_name = "pub-add-pool" 3 | interface = "ether1" 4 | add_default_route = true 5 | pool_prefix_length = 64 6 | request = ["prefix"] 7 | disabled = false 8 | } 9 | 10 | resource "routeros_ipv6_dhcp_client" "client" { 11 | pool_name = "pub-add-pool" 12 | interface = "ether1" 13 | add_default_route = true 14 | pool_prefix_length = 64 15 | request = ["prefix"] 16 | } 17 | -------------------------------------------------------------------------------- /examples/resources/routeros_ipv6_dhcp_client_option/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ipv6/dhcp-client/option get [print show-ids]] 3 | terraform import routeros_ipv6_dhcp_client_option.option "*0" -------------------------------------------------------------------------------- /examples/resources/routeros_ipv6_dhcp_client_option/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ipv6_dhcp_client_option" "option" { 2 | name = "my-dhcp-option" 3 | code = 60 4 | } 5 | -------------------------------------------------------------------------------- /examples/resources/routeros_ipv6_dhcp_server/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ipv6/dhcp/server get [print show-ids]] 3 | terraform import routeros_ipv6_dhcp_server.test *3 4 | #Or you can import a resource using one of its attributes 5 | terraform import routeros_ipv6_dhcp_server.test "name=test-dhcpv6" -------------------------------------------------------------------------------- /examples/resources/routeros_ipv6_dhcp_server/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ipv6_pool" "pool-0" { 2 | name = "test-pool-0" 3 | prefix = "2001:db8:40::/48" 4 | prefix_length = 64 5 | } 6 | 7 | resource "routeros_ipv6_dhcp_server" "test" { 8 | address_pool = routeros_ipv6_pool.pool-0.name 9 | interface = "bridge" 10 | lease_time = "1m" 11 | name = "test-dhcpv6" 12 | preference = 128 13 | } 14 | -------------------------------------------------------------------------------- /examples/resources/routeros_ipv6_dhcp_server_option/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ipv6/dhcp/server/option get [print show-ids]] 3 | terraform import routeros_ipv6_dhcp_server_option.test *3 4 | #Or you can import a resource using one of its attributes 5 | terraform import routeros_ipv6_dhcp_server_option.test "name=domain-search" -------------------------------------------------------------------------------- /examples/resources/routeros_ipv6_dhcp_server_option/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ipv6_dhcp_server_option" "test" { 2 | name = "domain-search" 3 | code = 24 4 | value = "0x07'example'0x05'local'0x00" 5 | } -------------------------------------------------------------------------------- /examples/resources/routeros_ipv6_dhcp_server_option_sets/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ipv6/dhcp/server/option/sets get [print show-ids]] 3 | terraform import routeros_ipv6_dhcp_server_option_sets.test *3 4 | #Or you can import a resource using one of its attributes 5 | terraform import routeros_ipv6_dhcp_server_option_sets.test "name=test-set" -------------------------------------------------------------------------------- /examples/resources/routeros_ipv6_dhcp_server_option_sets/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ipv6_dhcp_server_option" "domain-search" { 2 | name = "domain-search" 3 | code = 24 4 | value = "0x07'example'0x05'local'0x00" 5 | } 6 | 7 | resource "routeros_ipv6_dhcp_server_option_sets" "test" { 8 | name = "test-set" 9 | options = [routeros_ipv6_dhcp_server_option.domain-search.name] 10 | } 11 | -------------------------------------------------------------------------------- /examples/resources/routeros_ipv6_firewall_addr_list/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ipv6/firewall/address-list get [print show-ids]] 3 | terraform import routeros_ipv6_firewall_addr_list.example_list "*0" -------------------------------------------------------------------------------- /examples/resources/routeros_ipv6_firewall_addr_list/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ipv6_firewall_addr_list" "example_list" { 2 | address = "123:dead:beaf::/64" 3 | list = "Example List" 4 | } -------------------------------------------------------------------------------- /examples/resources/routeros_ipv6_firewall_filter/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ipv6/firewall/filter get [print show-ids]] 3 | terraform import routeros_ipv6_firewall_filter.rule "*0" -------------------------------------------------------------------------------- /examples/resources/routeros_ipv6_firewall_filter/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ipv6_firewall_filter" "rule" { 2 | action = "accept" 3 | chain = "forward" 4 | src_address = "2001:DB8:1000::1" 5 | dst_address = "2001:DB8:2000::1" 6 | dst_port = "443" 7 | protocol = "tcp" 8 | } -------------------------------------------------------------------------------- /examples/resources/routeros_ipv6_firewall_mangle/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ipv6/firewall/mangle get [print show-ids]] 3 | terraform import routeros_ipv6_firewall_mangle.rule "*0" -------------------------------------------------------------------------------- /examples/resources/routeros_ipv6_firewall_mangle/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ipv6_firewall_mangle" "rule" { 2 | action = "change-mss" 3 | chain = "forward" 4 | out_interface = "pppoe-out" 5 | protocol = "tcp" 6 | tcp_flags = "syn" 7 | new_mss = "1130" 8 | tcp_mss = "1301-65535" 9 | } -------------------------------------------------------------------------------- /examples/resources/routeros_ipv6_firewall_nat/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ipv6/firewall/nat get [print show-ids]] 3 | terraform import routeros_ipv6_firewall_nat.rule "*0" -------------------------------------------------------------------------------- /examples/resources/routeros_ipv6_firewall_nat/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ipv6_firewall_nat" "rule" { 2 | action = "masquerade" 3 | chain = "srcnat" 4 | out_interface = "ether16" 5 | } -------------------------------------------------------------------------------- /examples/resources/routeros_ipv6_nd_prefix/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ipv6/nd/prefix get [print show-ids]] 3 | terraform import routeros_ipv6_nd_prefix.test *3 4 | #Or you can import a resource using one of its attributes 5 | terraform import routeros_ipv6_nd_prefix.test "prefix=xxx" -------------------------------------------------------------------------------- /examples/resources/routeros_ipv6_nd_prefix/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ipv6_nd_prefix" "test" { 2 | prefix = "fd55::/64" 3 | interface = "ether1" 4 | preferred_lifetime = "6d24h" 5 | } -------------------------------------------------------------------------------- /examples/resources/routeros_ipv6_neighbor_discovery/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ipv6/nd get [print show-ids]] 3 | terraform import routeros_ipv6_neighbor_discovery.ndether1 "*0" -------------------------------------------------------------------------------- /examples/resources/routeros_ipv6_neighbor_discovery/resource.tf: -------------------------------------------------------------------------------- 1 | 2 | resource "routeros_ipv6_neighbor_discovery" "test" { 3 | interface = "ether1" 4 | hop_limit = 33 5 | advertise_dns = false 6 | advertise_mac_address = true 7 | disabled = false 8 | managed_address_configuration = true 9 | mtu = 9000 10 | other_configuration = true 11 | pref64_prefixes = [] 12 | ra_delay = "3s" 13 | ra_interval = "3m20s-10m" 14 | ra_lifetime = "30m" 15 | ra_preference = "high" 16 | reachable_time = "10m" 17 | retransmit_interval = "12m" 18 | } -------------------------------------------------------------------------------- /examples/resources/routeros_ipv6_pool/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ipv6/pool get [print show-ids]] 3 | terraform import routeros_ipv6_pool.test *3 4 | #Or you can import a resource using one of its attributes 5 | terraform import routeros_ipv6_pool.test "name=test-pool" -------------------------------------------------------------------------------- /examples/resources/routeros_ipv6_pool/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ipv6_pool" "test" { 2 | name = "test-pool" 3 | prefix = "2001:db8:12::/48" 4 | prefix_length = 64 5 | } 6 | -------------------------------------------------------------------------------- /examples/resources/routeros_ipv6_route/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ipv6/route get [print show-ids]] 3 | terraform import routeros_ipv6_route.a_route "*0" -------------------------------------------------------------------------------- /examples/resources/routeros_ipv6_route/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ipv6_route" "a_route" { 2 | dst_address = "::/0" 3 | gateway = "2001:DB8:1000::1" 4 | } -------------------------------------------------------------------------------- /examples/resources/routeros_ipv6_settings/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_ipv6_settings.settings . -------------------------------------------------------------------------------- /examples/resources/routeros_ipv6_settings/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ipv6_settings" "settings" { 2 | accept_redirects = "no" 3 | } 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_ovpn_server/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_openvpn_server.server . -------------------------------------------------------------------------------- /examples/resources/routeros_ppp_aaa/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_ppp_aaa.settings . 2 | -------------------------------------------------------------------------------- /examples/resources/routeros_ppp_aaa/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ppp_aaa" "settings" { 2 | use_radius = true 3 | } 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_ppp_profile/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ppp/profile get [print show-ids]] 3 | terraform import routeros_ppp_profile.test *6 -------------------------------------------------------------------------------- /examples/resources/routeros_ppp_profile/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ppp_profile" "test" { 2 | name = "ovpn" 3 | local_address = "192.168.77.1" 4 | remote_address = "ovpn-pool" 5 | use_upnp = "no" 6 | } -------------------------------------------------------------------------------- /examples/resources/routeros_ppp_secret/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/ppp/secret get [print show-ids]] 3 | terraform import routeros_ppp_secret.test *6 -------------------------------------------------------------------------------- /examples/resources/routeros_ppp_secret/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_ppp_secret" "test" { 2 | name = "user-test" 3 | password = "123" 4 | profile = "default" 5 | } 6 | -------------------------------------------------------------------------------- /examples/resources/routeros_queue_simple/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/queue/simple get [print show-ids]] 3 | terraform import routeros_queue_simple.test *3 4 | #Or you can import a resource using one of its attributes 5 | terraform import routeros_queue_simple.test "name=server" -------------------------------------------------------------------------------- /examples/resources/routeros_queue_simple/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_queue_simple" "test" { 2 | name = "server" 3 | target = ["10.1.1.1/32"] 4 | max_limit = "0/0" 5 | } 6 | -------------------------------------------------------------------------------- /examples/resources/routeros_queue_tree/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/queue/tree get [print show-ids]] 3 | terraform import routeros_queue_tree.test *1000000 4 | #Or you can import a resource using one of its attributes 5 | terraform import routeros_queue_tree.test "name=server" 6 | -------------------------------------------------------------------------------- /examples/resources/routeros_queue_tree/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_queue_tree" "test" { 2 | name = "server" 3 | parent = "global" 4 | max_limit = "10M" 5 | packet_mark = ["pmark-server"] 6 | } 7 | -------------------------------------------------------------------------------- /examples/resources/routeros_queue_type/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/queue/type get [print show-ids]] 3 | terraform import routeros_queue_type.test *3 4 | #Or you can import a resource using one of its attributes 5 | terraform import routeros_queue_type.test "name=pcq-test" -------------------------------------------------------------------------------- /examples/resources/routeros_queue_type/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_queue_type" "test" { 2 | name = "pcq-test" 3 | kind = "pcq" 4 | pcq_rate = 0 5 | pcq_limit = 50 6 | pcq_classifier = ["dst-address"] 7 | } 8 | -------------------------------------------------------------------------------- /examples/resources/routeros_radius/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/radius get [print show-ids]] 3 | terraform import routeros_radius.user_manager *1 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_radius/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_radius" "user_manager" { 2 | address = "127.0.0.1" 3 | service = ["ppp", "login"] 4 | } 5 | -------------------------------------------------------------------------------- /examples/resources/routeros_radius_incoming/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_radius_incoming.settings . 2 | -------------------------------------------------------------------------------- /examples/resources/routeros_radius_incoming/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_radius_incoming" "settings" { 2 | accept = true 3 | } 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_routing_filter_rule/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> /routing/filter/rule/print show-ids 3 | terraform import routeros_routing_filter_rule.test "*0" -------------------------------------------------------------------------------- /examples/resources/routeros_routing_filter_rule/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_routing_filter_rule" "test" { 2 | chain = "testChain" 3 | rule = "if (dst in 192.168.1.0/24 && dst-len>24) {set distance +1; accept} else {set distance -1; accept}" 4 | comment = "comment" 5 | disabled = true 6 | } -------------------------------------------------------------------------------- /examples/resources/routeros_routing_ospf_area/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> /routing/ospf/area/print show-ids 3 | terraform import routeros_routing_ospf_area.test_routing_ospf_area "*0" -------------------------------------------------------------------------------- /examples/resources/routeros_routing_ospf_area/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_routing_ospf_instance" "test_routing_ospf_instance" { 2 | name = "test_routing_ospf_instance" 3 | } 4 | 5 | resource "routeros_routing_ospf_area" "test_routing_ospf_area" { 6 | name = "test_routing_ospf_area" 7 | instance = routeros_routing_ospf_instance.test_routing_ospf_instance.name 8 | } -------------------------------------------------------------------------------- /examples/resources/routeros_routing_ospf_instance/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> /routing/ospf/instance/print show-ids 3 | terraform import routeros_routing_ospf_instance.test_routing_ospf_instance "*0" -------------------------------------------------------------------------------- /examples/resources/routeros_routing_ospf_instance/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_routing_ospf_instance" "test_routing_ospf_instance" { 2 | name = "test_routing_ospf_instance" 3 | } -------------------------------------------------------------------------------- /examples/resources/routeros_routing_ospf_interface_template/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> /routing/ospf/interface-template/print show-ids 3 | terraform import routeros_routing_ospf_interface_template.test_routing_ospf_interface_template "*0" 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_routing_ospf_interface_template/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_routing_ospf_instance" "test_routing_ospf_instance" { 2 | name = "test_routing_ospf_instance" 3 | } 4 | 5 | resource "routeros_routing_ospf_area" "test_routing_ospf_area" { 6 | name = "test_routing_ospf_area" 7 | instance = routeros_routing_ospf_instance.test_routing_ospf_instance.name 8 | } 9 | 10 | resource "routeros_routing_ospf_interface_template" "test_routing_ospf_interface_template" { 11 | area = routeros_routing_ospf_area.test_routing_ospf_area.name 12 | } -------------------------------------------------------------------------------- /examples/resources/routeros_routing_rule/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/routing/rule get [print show-ids]] 3 | terraform import routeros_routing_rule.test *3 -------------------------------------------------------------------------------- /examples/resources/routeros_routing_rule/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_routing_rule" "test" { 2 | dst_address = "192.168.1.0/24" 3 | action = "lookup-only-in-table" 4 | interface = "ether1" 5 | } -------------------------------------------------------------------------------- /examples/resources/routeros_routing_table/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/routing/table get [print show-ids]] 3 | terraform import routeros_routing_table.test_table "*0" -------------------------------------------------------------------------------- /examples/resources/routeros_routing_table/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_routing_table" "test_table" { 2 | name = "to_ISP1" 3 | fib = false 4 | } -------------------------------------------------------------------------------- /examples/resources/routeros_snmp/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_snmp.test . -------------------------------------------------------------------------------- /examples/resources/routeros_snmp/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_snmp" "test" { 2 | contact = "John D." 3 | enabled = true 4 | engine_id_suffix = "8a3c" 5 | location = "Backyard" 6 | trap_community = "private" 7 | trap_generators = "start-trap" 8 | trap_version = 3 9 | } 10 | -------------------------------------------------------------------------------- /examples/resources/routeros_snmp_community/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/snmp/community get [print show-ids]] 3 | terraform import routeros_snmp_community.test "*0" 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_snmp_community/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_snmp_community" "test" { 2 | authentication_password = "authpasswd" 3 | authentication_protocol = "MD5" 4 | comment = "Comment" 5 | disabled = true 6 | encryption_password = "encpassword" 7 | encryption_protocol = "DES" 8 | name = "private" 9 | read_access = true 10 | security = "private" 11 | write_access = true 12 | } 13 | 14 | resource "routeros_snmp_community" "mything" { 15 | addresses = ["10.0.1.12", "10.10.0.129"] 16 | name = "mything" 17 | } 18 | -------------------------------------------------------------------------------- /examples/resources/routeros_system_certificate/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/certificate get [print show-ids]] 3 | #If you plan to manipulate the certificate requiring signing, you need to correctly fill in the sign{} section. 4 | #Changes in the sign{} section will not cause changes in the certificate. It's not a bug, it's a feature! 5 | terraform import routeros_system_certificate.client *9D -------------------------------------------------------------------------------- /examples/resources/routeros_system_certificate_scep_server/import.sh: -------------------------------------------------------------------------------- 1 | # The ID can be found via API or the terminal 2 | # The command for the terminal is -> /certificate/scep-server/print show-ids 3 | terraform import routeros_system_certificate_scep_server.example_scep_server "*1" 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_system_certificate_scep_server/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_system_certificate" "example_root_ca" { 2 | name = "example_root_ca" 3 | common_name = "Example Root CA" 4 | key_usage = ["key-cert-sign", "crl-sign"] 5 | trusted = true 6 | sign { 7 | } 8 | } 9 | 10 | # You can also use the alias "routeros_certificate_scep_server" 11 | resource "routeros_system_certificate_scep_server" "example_scep_server" { 12 | ca_cert = routeros_system_certificate.example_root_ca.name 13 | path = "/scep/example_scep_server" 14 | days_valid = 30 15 | } 16 | -------------------------------------------------------------------------------- /examples/resources/routeros_system_clock/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_system_clock.set . -------------------------------------------------------------------------------- /examples/resources/routeros_system_clock/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_system_clock" "set" { 2 | date = "2024-05-15" 3 | time = "17:58:11" 4 | time_zone_name = "EST" 5 | } -------------------------------------------------------------------------------- /examples/resources/routeros_system_identity/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_system_identity.identity . -------------------------------------------------------------------------------- /examples/resources/routeros_system_identity/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_system_identity" "identity" { 2 | name = "My Router" 3 | } -------------------------------------------------------------------------------- /examples/resources/routeros_system_led/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/system/leds get [print show-ids]] 3 | terraform import routeros_system_led.sfp1 '*1' 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_system_led/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_system_led" "sfp1" { 2 | interface = "sfp1" 3 | leds = ["sfp-led"] 4 | type = "interface-activity" 5 | } 6 | -------------------------------------------------------------------------------- /examples/resources/routeros_system_led_settings/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_system_led_settings.settings . 2 | -------------------------------------------------------------------------------- /examples/resources/routeros_system_led_settings/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_system_led_settings" "settings" { 2 | all_leds_off = "immediate" 3 | } 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_system_logging/import.sh: -------------------------------------------------------------------------------- 1 | # The ID can be found via API or the terminal 2 | # The command for the terminal is -> :put [/system/logging/print get [print show-ids]] 3 | 4 | terraform import routeros_system_logging.log_snmp_disk "*4" -------------------------------------------------------------------------------- /examples/resources/routeros_system_logging/resource.tf: -------------------------------------------------------------------------------- 1 | 2 | resource "routeros_system_logging" "log_snmp_disk" { 3 | action = "disk" 4 | topics = ["snmp"] 5 | } -------------------------------------------------------------------------------- /examples/resources/routeros_system_note/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_system_note.test . 2 | -------------------------------------------------------------------------------- /examples/resources/routeros_system_note/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_system_note" "test" { 2 | note = "For authorized use only." 3 | show_at_login = true 4 | show_at_cli_login = true 5 | } 6 | -------------------------------------------------------------------------------- /examples/resources/routeros_system_ntp_client/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_system_ntp_client.test . -------------------------------------------------------------------------------- /examples/resources/routeros_system_ntp_client/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_system_ntp_client" "test" { 2 | enabled = true 3 | mode = "unicast" 4 | servers = ["146.59.35.38", "167.235.201.139"] 5 | } -------------------------------------------------------------------------------- /examples/resources/routeros_system_ntp_server/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_system_ntp_server.test . -------------------------------------------------------------------------------- /examples/resources/routeros_system_ntp_server/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_system_ntp_server" "test" { 2 | enabled = true 3 | broadcast = true 4 | multicast = true 5 | manycast = true 6 | use_local_clock = true 7 | local_clock_stratum = 3 8 | } -------------------------------------------------------------------------------- /examples/resources/routeros_system_routerboard_button_mode/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_system_routerboard_button_mode.settings . 2 | -------------------------------------------------------------------------------- /examples/resources/routeros_system_routerboard_button_mode/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_system_script" "mode_button" { 2 | name = "mode-button" 3 | source = < :put [/system/scheduler get [print show-ids]] 3 | terraform import routeros_system_scheduler.schedule1 "*0" -------------------------------------------------------------------------------- /examples/resources/routeros_system_scheduler/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_system_scheduler" "schedule1" { 2 | name = "schedule1" 3 | on_event = "script name" 4 | } -------------------------------------------------------------------------------- /examples/resources/routeros_system_script/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/system/script get [print show-ids]] 3 | terraform import routeros_system_script.script "*0" -------------------------------------------------------------------------------- /examples/resources/routeros_system_script/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_system_script" "script" { 2 | name = "my_script" 3 | source = < :put [/user get [print show-ids]] 3 | terraform import routeros_system_user.test *1 -------------------------------------------------------------------------------- /examples/resources/routeros_system_user/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_system_user" "test" { 2 | name = "test-user-1" 3 | address = "0.0.0.0/0" 4 | group = "read" 5 | password = "secret" 6 | comment = "Test User" 7 | } 8 | -------------------------------------------------------------------------------- /examples/resources/routeros_system_user_aaa/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_system_user_aaa.settings . 2 | -------------------------------------------------------------------------------- /examples/resources/routeros_system_user_aaa/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_system_user_aaa" "settings" { 2 | use_radius = true 3 | } 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_system_user_group/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/user/group get [print show-ids]] 3 | terraform import routeros_system_user_group.terraform *1 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_system_user_group/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_system_user_group" "terraform" { 2 | name = "terraform" 3 | policy = ["api", "!ftp", "!local", "password", "policy", "read", "!reboot", "!rest-api", "!romon", "sensitive", "!sniff", "!ssh", "!telnet", "!test", "!web", "!winbox", "write"] 4 | } 5 | -------------------------------------------------------------------------------- /examples/resources/routeros_system_user_settings/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_system_user_settings.settings . 2 | -------------------------------------------------------------------------------- /examples/resources/routeros_system_user_settings/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_system_user_settings" "settings" { 2 | minimum_categories = 2 3 | minimum_password_length = 8 4 | } 5 | -------------------------------------------------------------------------------- /examples/resources/routeros_system_user_sshkeys/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/user/ssh-keys get [print show-ids]] 3 | terraform import routeros_system_user_sshkeys.test *1 -------------------------------------------------------------------------------- /examples/resources/routeros_system_user_sshkeys/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_system_user_sshkeys" "test" { 2 | user = "test-user-1" 3 | key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCyJ1EvW98veNVzR3VamNgmu0xOd/JK9YNvP/pa4WC5eT90UbX4TN7dKEK/x2FCwnnG9u0FQhzG2qa/Cg8meUvlfydn6uxc0/WCeXTKSu6sT63noPO6m4fHY7gu3Zt+fOc/WYGch9sBeWjZlCS1mA2lajkWhM3J8TFWCFm2Zk4/S3s5mt6VLbwpQnH2LhE41+azzDEVhcR6i3FfdgOF/J+j2fYYHJsBEKoQA5zUac2zWmz7X4Rv/g11ZBRqdMpHSD58o5F9lBb13antu5GcEs5RXpXp08OyXuRV9qhFpDBC8DOMALSOgT3vnu8uJLgo8QIulERofj/cRXbLCsmvMbpioBuGFXWx3ha4Ntd6z07kUh2KVbaIQLd/629UHNvgIhoBLlREJ8E5vllsX+jh8hRITHcCiEwXcDO+gG3hvJt0+jm8S8SObE/IHk8VuwWdhIsSku5vd+wVlxm8VeJzjc0cjdIiytvsq8VpLudKEUiqR0f2tHcoq8H+xcJv3Ycu1i8=" 4 | comment = "Test User" 5 | } 6 | -------------------------------------------------------------------------------- /examples/resources/routeros_tool_bandwidth_server/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_tool_bandwidth_server.test . -------------------------------------------------------------------------------- /examples/resources/routeros_tool_bandwidth_server/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_tool_bandwidth_server" "test" { 2 | enabled = true 3 | authenticate = false 4 | max_sessions = 100 5 | allocate_udp_ports_from = 2000 6 | } 7 | -------------------------------------------------------------------------------- /examples/resources/routeros_tool_graphing_interface/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/tool/graphing/interface get [print show-ids]] 3 | terraform import routeros_tool_graphing_interface.test "*0" 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_tool_graphing_interface/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_tool_graphing_interface" "test" { 2 | interface = "all" 3 | } 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_tool_graphing_queue/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/tool/graphing/queue get [print show-ids]] 3 | terraform import routeros_tool_graphing_queue.test "*0" 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_tool_graphing_queue/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_tool_graphing_queue" "test" { 2 | simple_queue = "all" 3 | } 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_tool_graphing_resource/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/tool/graphing/resource get [print show-ids]] 3 | terraform import routeros_tool_graphing_resource.test "*0" 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_tool_graphing_resource/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_tool_graphing_resource" "test" {} 2 | -------------------------------------------------------------------------------- /examples/resources/routeros_tool_mac_server/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_tool_mac_server.test . -------------------------------------------------------------------------------- /examples/resources/routeros_tool_mac_server/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_tool_mac_server" "test" { 2 | allowed_interface_list = "LAN" 3 | } 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_tool_mac_server_ping/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_tool_mac_server_ping.test . 2 | -------------------------------------------------------------------------------- /examples/resources/routeros_tool_mac_server_ping/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_tool_mac_server_ping" "test" { 2 | enabled = false 3 | } 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_tool_mac_server_winbox/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_tool_mac_server_winbox.test . -------------------------------------------------------------------------------- /examples/resources/routeros_tool_mac_server_winbox/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_tool_mac_server_winbox" "test" { 2 | allowed_interface_list = "LAN" 3 | } 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_tool_netwatch/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/tool/netwatch get [print show-ids]] 3 | terraform import routeros_tool_netwatch.test *3 -------------------------------------------------------------------------------- /examples/resources/routeros_tool_netwatch/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_tool_netwatch" "test" { 2 | name = "watch-google-pdns" 3 | type = "icmp" 4 | host = "8.8.8.8" 5 | interval = "30s" 6 | up_script = ":log info \"Ping to 8.8.8.8 successful\"" 7 | thr_max = "400ms" 8 | } 9 | -------------------------------------------------------------------------------- /examples/resources/routeros_tool_sniffer/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_tool_sniffer.test . -------------------------------------------------------------------------------- /examples/resources/routeros_tool_sniffer/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_tool_sniffer" "test" { 2 | enabled = true 3 | 4 | streaming_enabled = true 5 | streaming_server = "192.168.88.5:37008" 6 | filter_stream = true 7 | 8 | filter_interface = ["ether2"] 9 | filter_direction = "rx" 10 | filter_operator_between_entries = "and" 11 | } 12 | -------------------------------------------------------------------------------- /examples/resources/routeros_user_manager_advanced/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_user_manager_advanced.settings . 2 | -------------------------------------------------------------------------------- /examples/resources/routeros_user_manager_advanced/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_user_manager_advanced" "settings" { 2 | web_private_password = "password" 3 | web_private_username = "admin" 4 | } 5 | -------------------------------------------------------------------------------- /examples/resources/routeros_user_manager_attribute/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/user-manager/attribute get [print show-ids]] 3 | terraform routeros_user_manager_attribute.mikrotik_wireless_comment '*1' 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_user_manager_attribute/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_user_manager_attribute" "mikrotik_wireless_comment" { 2 | name = "Mikrotik-Wireless-Comment" 3 | packet_types = ["access-accept"] 4 | type_id = 21 5 | value_type = "string" 6 | } 7 | -------------------------------------------------------------------------------- /examples/resources/routeros_user_manager_database/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_user_manager_database.settings . 2 | -------------------------------------------------------------------------------- /examples/resources/routeros_user_manager_database/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_user_manager_database" "settings" { 2 | db_path = "/flash/user-manager5" 3 | } 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_user_manager_limitation/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/user-manager/limitation get [print show-ids]] 3 | terraform import routeros_user_manager_limitation.test '*1' 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_user_manager_limitation/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_user_manager_limitation" "test" { 2 | name = "test" 3 | download_limit = 1024 4 | upload_limit = 1024 5 | uptime_limit = "10d" 6 | } 7 | -------------------------------------------------------------------------------- /examples/resources/routeros_user_manager_profile/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/user-manager/profile get [print show-ids]] 3 | terraform import routeros_user_manager_profile.test '*1' 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_user_manager_profile/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_user_manager_profile" "test" { 2 | name = "test" 3 | name_for_users = "Test" 4 | price = 0.02 5 | } 6 | -------------------------------------------------------------------------------- /examples/resources/routeros_user_manager_profile_limitation/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/user-manager/profile-limitation get [print show-ids]] 3 | terraform import routeros_user_manager_profile_limitation.weekend_night '*1' 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_user_manager_profile_limitation/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_user_manager_limitation" "test" { 2 | name = "test" 3 | download_limit = 1024 4 | upload_limit = 1024 5 | uptime_limit = "10d" 6 | } 7 | 8 | resource "routeros_user_manager_profile" "test" { 9 | name = "test" 10 | name_for_users = "Test" 11 | price = 0.02 12 | } 13 | 14 | resource "routeros_user_manager_profile_limitation" "weekend_night" { 15 | limitation = routeros_user_manager_limitation.test.name 16 | profile = routeros_user_manager_profile.test.name 17 | from_time = "0s" 18 | till_time = "6h" 19 | weekdays = [ 20 | "sunday", 21 | "saturday", 22 | ] 23 | } 24 | -------------------------------------------------------------------------------- /examples/resources/routeros_user_manager_router/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/user-manager/router get [print show-ids]] 3 | terraform import routeros_user_manager_router.test '*1' 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_user_manager_router/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_user_manager_router" "test" { 2 | address = "127.0.0.1" 3 | name = "test" 4 | shared_secret = "password" 5 | } 6 | -------------------------------------------------------------------------------- /examples/resources/routeros_user_manager_settings/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_user_manager_settings.settings . 2 | -------------------------------------------------------------------------------- /examples/resources/routeros_user_manager_settings/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_user_manager_settings" "settings" { 2 | enabled = true 3 | } 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_user_manager_user/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/user-manager/user get [print show-ids]] 3 | terraform import routeros_user_manager_user.test '*1' 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_user_manager_user/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_user_manager_attribute" "mikrotik_wireless_comment" { 2 | name = "Mikrotik-Wireless-Comment" 3 | type_id = 21 4 | value_type = "string" 5 | } 6 | 7 | resource "routeros_user_manager_attribute" "mikrotik_wireless_vlanid" { 8 | name = "Mikrotik-Wireless-VLANID" 9 | type_id = 26 10 | value_type = "uint32" 11 | } 12 | 13 | resource "routeros_user_manager_user_group" "test" { 14 | name = "test" 15 | } 16 | 17 | resource "routeros_user_manager_user" "test" { 18 | attributes = [ 19 | "${routeros_user_manager_attribute.mikrotik_wireless_comment.name}:Test Group", 20 | "${routeros_user_manager_attribute.mikrotik_wireless_vlanid.name}:100", 21 | ] 22 | group = routeros_user_manager_user_group.test.name 23 | name = "test" 24 | password = "password" 25 | } 26 | -------------------------------------------------------------------------------- /examples/resources/routeros_user_manager_user_group/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/user-manager/user/group get [print show-ids]] 3 | terraform import routeros_user_manager_user_group.test '*1' 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_user_manager_user_group/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_user_manager_attribute" "mikrotik_wireless_comment" { 2 | name = "Mikrotik-Wireless-Comment" 3 | type_id = 21 4 | value_type = "string" 5 | } 6 | 7 | resource "routeros_user_manager_attribute" "mikrotik_wireless_vlanid" { 8 | name = "Mikrotik-Wireless-VLANID" 9 | type_id = 26 10 | value_type = "uint32" 11 | } 12 | 13 | resource "routeros_user_manager_user_group" "test" { 14 | name = "test" 15 | attributes = [ 16 | "${routeros_user_manager_attribute.mikrotik_wireless_comment.name}:Test Group", 17 | "${routeros_user_manager_attribute.mikrotik_wireless_vlanid.name}:100", 18 | ] 19 | inner_auths = [ 20 | "ttls-chap", 21 | "ttls-pap", 22 | ] 23 | outer_auths = [ 24 | "chap", 25 | "pap", 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /examples/resources/routeros_user_manager_user_profile/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/user-manager/user-profile get [print show-ids]] 3 | terraform import routeros_user_manager_user_profile.test '*1' 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_user_manager_user_profile/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_user_manager_profile" "test" { 2 | name = "test" 3 | } 4 | 5 | resource "routeros_user_manager_user" "test" { 6 | name = "test" 7 | } 8 | 9 | resource "routeros_user_manager_user_profile" "test" { 10 | profile = routeros_user_manager_profile.test.name 11 | user = routeros_user_manager_user.test.name 12 | } 13 | -------------------------------------------------------------------------------- /examples/resources/routeros_wifi/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/wifi get [print show-ids]] 3 | terraform import routeros_wifi.wifi1 '*1' 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_wifi/resource.tf: -------------------------------------------------------------------------------- 1 | # If you need to add a reference to an existing configuration, each inline section contains a `config` parameter 2 | # where you can specify the name of the actual resource. 3 | # configuration = { 4 | # config = routeros_wifi_configuration.my-config.name 5 | # } 6 | resource "routeros_wifi" "wifi1" { 7 | configuration = { 8 | manager = "capsman" 9 | } 10 | name = "wifi1" 11 | } 12 | -------------------------------------------------------------------------------- /examples/resources/routeros_wifi_aaa/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/wifi/aaa get [print show-ids]] 3 | terraform import routeros_wifi_aaa.aaa1 '*1' 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_wifi_aaa/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_wifi_aaa" "aaa1" { 2 | called_format = "S" 3 | name = "aaa1" 4 | password_format = "" 5 | username_format = "AA:AA:AA:AA:AA:AA" 6 | } 7 | -------------------------------------------------------------------------------- /examples/resources/routeros_wifi_access_list/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/wifi/access-list get [print show-ids]] 3 | terraform import routeros_wifi_access_list.radius '*1' 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_wifi_access_list/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_wifi_access_list" "radius" { 2 | action = "query-radius" 3 | comment = "RADIUS" 4 | radius_accounting = true 5 | } 6 | -------------------------------------------------------------------------------- /examples/resources/routeros_wifi_cap/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_wifi_cap.settings . 2 | -------------------------------------------------------------------------------- /examples/resources/routeros_wifi_cap/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_wifi_cap" "settings" { 2 | enabled = true 3 | discovery_interfaces = ["bridge1"] 4 | } 5 | -------------------------------------------------------------------------------- /examples/resources/routeros_wifi_capsman/import.sh: -------------------------------------------------------------------------------- 1 | terraform import routeros_wifi_capsman.settings . 2 | -------------------------------------------------------------------------------- /examples/resources/routeros_wifi_capsman/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_wifi_capsman" "settings" { 2 | enabled = true 3 | interfaces = ["bridge1"] 4 | upgrade_policy = "suggest-same-version" 5 | } 6 | -------------------------------------------------------------------------------- /examples/resources/routeros_wifi_channel/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/wifi/channel get [print show-ids]] 3 | terraform import routeros_wifi_channel.channel1 '*1' 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_wifi_channel/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_wifi_channel" "channel1" { 2 | name = "1" 3 | band = "2ghz-n" 4 | frequency = [2412] 5 | secondary_frequency = ["disabled"] 6 | skip_dfs_channels = "disabled" 7 | width = "20mhz" 8 | } 9 | -------------------------------------------------------------------------------- /examples/resources/routeros_wifi_configuration/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/wifi/configuration get [print show-ids]] 3 | terraform import routeros_wifi_configuration.configuration1 '*1' 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_wifi_datapath/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/wifi/datapath get [print show-ids]] 3 | terraform import routeros_wifi_datapath.datapath1 '*1' 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_wifi_datapath/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_wifi_datapath" "datapath1" { 2 | name = "datapath1" 3 | bridge = "bridge1" 4 | client_isolation = false 5 | } 6 | -------------------------------------------------------------------------------- /examples/resources/routeros_wifi_interworking/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/wifi/interworking get [print show-ids]] 3 | terraform import routeros_wifi_interworking.interworking1 '*1' 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_wifi_interworking/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_wifi_interworking" "interworking1" { 2 | name = "interworking1" 3 | internet = true 4 | } 5 | -------------------------------------------------------------------------------- /examples/resources/routeros_wifi_provisioning/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/wifi/provisioning get [print show-ids]] 3 | terraform import routeros_wifi_provisioning.provisioning1 '*1' 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_wifi_provisioning/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_wifi_configuration" "configuration1" { 2 | country = "Netherlands" 3 | manager = "capsman" 4 | mode = "ap" 5 | name = "configuration1" 6 | ssid = "my-network" 7 | } 8 | 9 | resource "routeros_wifi_provisioning" "provisioning1" { 10 | action = "create-enabled" 11 | master_configuration = routeros_wifi_configuration.configuration1.name 12 | name_format = "cap1:" 13 | radio_mac = "00:11:22:33:44:55" 14 | } 15 | -------------------------------------------------------------------------------- /examples/resources/routeros_wifi_security/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/wifi/security get [print show-ids]] 3 | terraform import routeros_wifi_security.security1 '*1' 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_wifi_security/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_wifi_security" "security1" { 2 | name = "security1" 3 | authentication_types = ["wpa2-psk", "wpa3-psk"] 4 | ft = true 5 | ft_preserve_vlanid = true 6 | passphrase = "password" 7 | } 8 | -------------------------------------------------------------------------------- /examples/resources/routeros_wifi_security_multi_passphrase/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/wifi/security/multi/passphrase get [print show-ids]] 3 | terraform import routeros_wifi_security_multi_passphrase.test *3 4 | #Or you can import a resource using one of its attributes 5 | terraform import routeros_wifi_security_multi_passphrase.test "comment=xxx" -------------------------------------------------------------------------------- /examples/resources/routeros_wifi_security_multi_passphrase/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_wifi_security_multi_passphrase" "test" { 2 | group = "gr-123" 3 | passphrase = data.vault_kv_secret_v2.wifi_security.data["test"] 4 | } 5 | -------------------------------------------------------------------------------- /examples/resources/routeros_wifi_steering/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/interface/wifi/steering get [print show-ids]] 3 | terraform import routeros_wifi_steering.steering1 '*1' 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_wifi_steering/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_wifi_steering" "steering1" { 2 | name = "steering1" 3 | neighbor_group = ["something"] 4 | } 5 | -------------------------------------------------------------------------------- /examples/resources/routeros_wireguard_keys/resource.tf: -------------------------------------------------------------------------------- 1 | resource "routeros_wireguard_keys" "wgk" { 2 | number = 3 3 | } 4 | 5 | output "wg_keys" { 6 | value = routeros_wireguard_keys.wgk.keys[*] 7 | sensitive = true 8 | } 9 | 10 | output "wg_key" { 11 | value = nonsensitive(routeros_wireguard_keys.wgk.keys[1].public) 12 | } -------------------------------------------------------------------------------- /examples/resources/routeros_zerotier/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/zerotier get [print show-ids]] 3 | terraform import routeros_zerotier.zt1 '*1' 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_zerotier/resource.tf: -------------------------------------------------------------------------------- 1 | resource "zerotier_identity" "identity" {} 2 | 3 | resource "routeros_zerotier" "zt1" { 4 | comment = "ZeroTier Central" 5 | identity = zerotier_identity.identity.private_key 6 | interfaces = ["all"] 7 | name = "zt1" 8 | } 9 | -------------------------------------------------------------------------------- /examples/resources/routeros_zerotier_controller/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/zerotier/controller get [print show-ids]] 3 | terraform import routeros_zerotier_controller.test '*1' 4 | -------------------------------------------------------------------------------- /examples/resources/routeros_zerotier_controller/resource.tf: -------------------------------------------------------------------------------- 1 | resource "zerotier_identity" "identity" {} 2 | 3 | resource "routeros_zerotier" "zt1" { 4 | comment = "ZeroTier Central" 5 | identity = zerotier_identity.identity.private_key 6 | interfaces = ["all"] 7 | name = "zt1" 8 | } 9 | 10 | resource "routeros_zerotier_controller" "test" { 11 | instance = routeros_zerotier.zt1.name 12 | name = "test" 13 | network = "1234567812345678" 14 | private = true 15 | } 16 | -------------------------------------------------------------------------------- /examples/resources/routeros_zerotier_interface/import.sh: -------------------------------------------------------------------------------- 1 | #The ID can be found via API or the terminal 2 | #The command for the terminal is -> :put [/zerotier/interface get [print show-ids]] 3 | terraform import routeros_zerotier_interface.zerotier1 '*1' 4 | -------------------------------------------------------------------------------- /main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "flag" 5 | 6 | "github.com/hashicorp/terraform-plugin-sdk/v2/plugin" 7 | "github.com/terraform-routeros/terraform-provider-routeros/routeros" 8 | ) 9 | 10 | // Generate the Terraform provider documentation using `tfplugindocs`: 11 | //go:generate go run github.com/hashicorp/terraform-plugin-docs/cmd/tfplugindocs 12 | 13 | func main() { 14 | var debug bool 15 | 16 | // https://github.com/hashicorp/terraform-docs-common/blob/main/website/docs/plugin/debugging.mdx 17 | // https://developer.hashicorp.com/terraform/plugin/debugging 18 | flag.BoolVar(&debug, "debug", false, "set to true to run the provider with support for debuggers like delve") 19 | flag.Parse() 20 | 21 | plugin.Serve(&plugin.ServeOpts{ 22 | ProviderAddr: "terraform-routeros/routeros", 23 | ProviderFunc: routeros.NewProvider, 24 | Debug: debug, 25 | }) 26 | } 27 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "terraform-provider-routeros", 3 | "version": "1.85.1", 4 | "repository": { 5 | "type": "git", 6 | "url": "https://github.com/terraform-routeros/terraform-provider-routeros" 7 | }, 8 | "dependencies": { 9 | "@semantic-release/changelog": "^6.0.2", 10 | "@semantic-release/commit-analyzer": "^9.0.2", 11 | "@semantic-release/exec": "^6.0.3", 12 | "@semantic-release/git": "^10.0.1", 13 | "@semantic-release/github": "^8.0.7", 14 | "conventional-changelog-conventionalcommits": ">= 8.0.0" 15 | }, 16 | "devDependencies": { 17 | "semantic-release": "^19.0.5" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /routeros/datasource_files_test.go: -------------------------------------------------------------------------------- 1 | package routeros 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/hashicorp/terraform-plugin-testing/helper/resource" 7 | ) 8 | 9 | const testDatasourceFiles = "data.routeros_files.files" 10 | 11 | func TestAccDatasourceFilesTest_basic(t *testing.T) { 12 | for _, name := range testNames { 13 | t.Run(name, func(t *testing.T) { 14 | resource.Test(t, resource.TestCase{ 15 | PreCheck: func() { 16 | testAccPreCheck(t) 17 | testSetTransportEnv(t, name) 18 | }, 19 | ProviderFactories: testAccProviderFactories, 20 | Steps: []resource.TestStep{ 21 | { 22 | Config: testAccDatasourceFilesConfig(), 23 | Check: resource.ComposeTestCheckFunc( 24 | testResourcePrimaryInstanceId(testDatasourceFiles), 25 | ), 26 | }, 27 | }, 28 | }) 29 | 30 | }) 31 | } 32 | } 33 | 34 | func testAccDatasourceFilesConfig() string { 35 | return providerConfig + ` 36 | 37 | data "routeros_files" "files" {} 38 | ` 39 | } 40 | -------------------------------------------------------------------------------- /routeros/datasource_ip_arp_test.go: -------------------------------------------------------------------------------- 1 | package routeros 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/hashicorp/terraform-plugin-testing/helper/resource" 7 | ) 8 | 9 | const testDatasourceIpArp = "data.routeros_ip_arp.data" 10 | 11 | func TestAccDatasourceIpArpTest_basic(t *testing.T) { 12 | for _, name := range testNames { 13 | t.Run(name, func(t *testing.T) { 14 | resource.Test(t, resource.TestCase{ 15 | PreCheck: func() { 16 | testAccPreCheck(t) 17 | testSetTransportEnv(t, name) 18 | }, 19 | ProviderFactories: testAccProviderFactories, 20 | Steps: []resource.TestStep{ 21 | { 22 | Config: testAccDatasourceIpArpConfig(), 23 | Check: resource.ComposeTestCheckFunc( 24 | testResourcePrimaryInstanceId(testDatasourceIpArp), 25 | ), 26 | }, 27 | }, 28 | }) 29 | 30 | }) 31 | } 32 | } 33 | 34 | func testAccDatasourceIpArpConfig() string { 35 | return providerConfig + ` 36 | 37 | data "routeros_ip_arp" "data" {} 38 | ` 39 | } 40 | -------------------------------------------------------------------------------- /routeros/mikrotik_resource_drift.go: -------------------------------------------------------------------------------- 1 | // Code generated by "tools/drift/main.go"; DO NOT EDIT. 2 | package routeros 3 | 4 | func init() { 5 | driftAttributeSlice.Add("7.1", "/ip/dhcp-server", "src_address", "server-address") 6 | driftAttributeSlice.Add("7.1", "/routing/ospf/area", "nssa_translate", "nssa-translator") 7 | driftAttributeSlice.Add("7.17", "/interface/wireguard/peers", "is_responder", "responder") 8 | driftAttributeSlice.Add("7.18", "/container", "tag", "repo") 9 | driftAttributeSlice.SortDesc() 10 | } 11 | -------------------------------------------------------------------------------- /routeros/mikrotik_resource_drift.yaml: -------------------------------------------------------------------------------- 1 | 7.1: 2 | /ip/dhcp-server: 3 | - tf: src_address 4 | mt: server-address 5 | /routing/ospf/area: 6 | - tf: nssa_translate 7 | mt: nssa-translator 8 | 7.17: 9 | /interface/wireguard/peers: 10 | - tf: is_responder 11 | mt: responder 12 | 7.18: 13 | /container: 14 | - tf: tag 15 | mt: repo -------------------------------------------------------------------------------- /routeros/parse_iprange_test.go: -------------------------------------------------------------------------------- 1 | package routeros 2 | 3 | import "testing" 4 | 5 | func TestIpRangeToCIDR(t *testing.T) { 6 | type args struct { 7 | ip1 string 8 | ip2 string 9 | } 10 | tests := []struct { 11 | name string 12 | args args 13 | want string 14 | wantErr bool 15 | }{ 16 | {"Solid range", args{"192.168.0.0", "192.168.1.255"}, "192.168.0.0/23", false}, 17 | {"Non-solid range", args{"192.168.0.0", "192.168.1.254"}, "192.168.0.0-192.168.1.254", false}, 18 | {"Wrong range", args{"192.168.2.0", "192.168.1.255"}, "", true}, 19 | } 20 | for _, tt := range tests { 21 | t.Run(tt.name, func(t *testing.T) { 22 | got, err := IpRangeToCIDR(tt.args.ip1, tt.args.ip2) 23 | if (err != nil) != tt.wantErr { 24 | t.Errorf("IpRangeToCIDR() error = %v, wantErr %v", err, tt.wantErr) 25 | return 26 | } 27 | if got != tt.want { 28 | t.Errorf("IpRangeToCIDR() got = %v, want %v", got, tt.want) 29 | } 30 | }) 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /routeros/resource_interface_bridge_mlag _test.go: -------------------------------------------------------------------------------- 1 | package routeros 2 | 3 | import ( 4 | "testing" 5 | ) 6 | 7 | func TestAccInterfaceBridgeMlagTest_basic(t *testing.T) { 8 | t.Log("Test skipped, The test is skipped, the resource is only available on real hardware.") 9 | } 10 | -------------------------------------------------------------------------------- /routeros/resource_interface_ethernet_switch_host_test.go: -------------------------------------------------------------------------------- 1 | package routeros 2 | 3 | import ( 4 | "testing" 5 | ) 6 | 7 | func TestAccInterfaceEthernetSwitchHost_basic(t *testing.T) { 8 | t.Log("Test skipped, The test is skipped, the resource is only available on real hardware.") 9 | } 10 | -------------------------------------------------------------------------------- /routeros/resource_interface_ethernet_switch_port_isolation_test.go: -------------------------------------------------------------------------------- 1 | package routeros 2 | 3 | import ( 4 | "testing" 5 | ) 6 | 7 | func TestAccInterfaceEthernetSwitchPortIsolationTest_basic(t *testing.T) { 8 | t.Log("Test skipped, The test is skipped, the resource is only available on real hardware.") 9 | } 10 | -------------------------------------------------------------------------------- /routeros/resource_interface_ethernet_switch_port_test.go: -------------------------------------------------------------------------------- 1 | package routeros 2 | 3 | import ( 4 | "testing" 5 | ) 6 | 7 | func TestAccInterfaceEthernetSwitchPortTest_basic(t *testing.T) { 8 | t.Log("Test skipped, The test is skipped, the resource is only available on real hardware.") 9 | } 10 | -------------------------------------------------------------------------------- /routeros/resource_interface_ethernet_switch_rule_test.go: -------------------------------------------------------------------------------- 1 | package routeros 2 | 3 | import ( 4 | "testing" 5 | ) 6 | 7 | func TestAccInterfaceEthernetSwitchRule_basic(t *testing.T) { 8 | t.Log("Test skipped, The test is skipped, the resource is only available on real hardware.") 9 | } 10 | -------------------------------------------------------------------------------- /routeros/resource_interface_ethernet_switch_test.go: -------------------------------------------------------------------------------- 1 | package routeros 2 | 3 | import ( 4 | "testing" 5 | ) 6 | 7 | func TestAccInterfaceEthernetSwitchTest_basic(t *testing.T) { 8 | t.Log("Test skipped, The test is skipped, the resource is only available on real hardware.") 9 | } 10 | -------------------------------------------------------------------------------- /routeros/resource_interface_ethernet_switch_vlan_test.go: -------------------------------------------------------------------------------- 1 | package routeros 2 | 3 | import ( 4 | "testing" 5 | ) 6 | 7 | func TestAccInterfaceEthernetSwitchVlan_basic(t *testing.T) { 8 | t.Log("Test skipped, The test is skipped, the resource is only available on real hardware.") 9 | } 10 | -------------------------------------------------------------------------------- /routeros/resource_interface_list_v0.go: -------------------------------------------------------------------------------- 1 | package routeros 2 | 3 | import ( 4 | "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" 5 | ) 6 | 7 | func ResourceInterfaceListV0() *schema.Resource { 8 | return &schema.Resource{ 9 | Schema: map[string]*schema.Schema{ 10 | MetaResourcePath: PropResourcePath("/interface/list"), 11 | MetaId: PropId(Name), 12 | 13 | "builtin": { 14 | Type: schema.TypeBool, 15 | Computed: true, 16 | }, 17 | "comment": PropCommentRw, 18 | "dynamic": PropDynamicRo, 19 | "exclude": { 20 | Type: schema.TypeString, 21 | Optional: true, 22 | }, 23 | "include": { 24 | Type: schema.TypeString, 25 | Optional: true, 26 | }, 27 | "name": PropNameForceNewRw, 28 | }, 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /routeros/resource_interface_w60g_station_test.go: -------------------------------------------------------------------------------- 1 | package routeros 2 | 3 | import ( 4 | "testing" 5 | ) 6 | 7 | func TestAccInterfaceW60gStationTest_basic(t *testing.T) { 8 | t.Log("The test is skipped, the resource is only available on real hardware.") 9 | } 10 | -------------------------------------------------------------------------------- /routeros/resource_interface_w60g_test.go: -------------------------------------------------------------------------------- 1 | package routeros 2 | 3 | import ( 4 | "testing" 5 | ) 6 | 7 | func TestAccInterfaceW60gTest_basic(t *testing.T) { 8 | t.Log("The test is skipped, the resource is only available on real hardware.") 9 | } 10 | -------------------------------------------------------------------------------- /routeros/resource_system_identity.go: -------------------------------------------------------------------------------- 1 | package routeros 2 | 3 | import ( 4 | "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" 5 | ) 6 | 7 | /* {"name":"MikroTik"} */ 8 | 9 | func ResourceSystemIdentity() *schema.Resource { 10 | resSchema := map[string]*schema.Schema{ 11 | MetaResourcePath: PropResourcePath("/system/identity"), 12 | MetaId: PropId(Name), 13 | 14 | KeyName: PropName("Device name."), 15 | } 16 | 17 | return &schema.Resource{ 18 | CreateContext: DefaultSystemCreate(resSchema), 19 | ReadContext: DefaultSystemRead(resSchema), 20 | UpdateContext: DefaultSystemUpdate(resSchema), 21 | DeleteContext: DefaultSystemDelete(resSchema), 22 | 23 | Importer: &schema.ResourceImporter{ 24 | StateContext: schema.ImportStatePassthroughContext, 25 | }, 26 | 27 | Schema: resSchema, 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /templates/data-sources.md.tmpl: -------------------------------------------------------------------------------- 1 | # {{.Name}} ({{.Type}}) 2 | {{ .Description | trimspace }} 3 | 4 | {{ if .HasExample -}} 5 | ## Example Usage 6 | {{ tffile .ExampleFile }} 7 | {{- end }} 8 | 9 | {{ .SchemaMarkdown | trimspace }} 10 | 11 | {{ if .HasImport -}} 12 | ## Import 13 | Import is supported using the following syntax: 14 | {{ codefile "shell" .ImportFile }} 15 | {{- end }} 16 | -------------------------------------------------------------------------------- /templates/data-sources/firewall.md.tmpl: -------------------------------------------------------------------------------- 1 | # {{.Name}} ({{.Type}}) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_ip_firewall](ip_firewall.md) 6 | -------------------------------------------------------------------------------- /templates/index.md.tmpl: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "RouterOS Provider" 4 | subcategory: "" 5 | description: |- 6 | A provider to integrate with the REST API introduced in RouterOS v7 7 | 8 | --- 9 | 10 | # RouterOS Provider 11 | 12 | To get started with the provider, you first need to enable the REST API on your router. [You can follow the Mikrotik documentation on this](https://help.mikrotik.com/docs/display/ROS/REST+API), but the gist is to create an SSL cert (in `/system/certificates`) and enable the `web-ssl` service (in `/ip/services`) which uses that certificate. 13 | 14 | 15 | ## Example Usage 16 | 17 | {{tffile "examples/provider/provider.tf"}} 18 | 19 | {{ .SchemaMarkdown | trimspace }} -------------------------------------------------------------------------------- /templates/resources.md.tmpl: -------------------------------------------------------------------------------- 1 | # {{.Name}} ({{.Type}}) 2 | {{ .Description | trimspace }} 3 | 4 | {{ if .HasExample -}} 5 | ## Example Usage 6 | {{ tffile .ExampleFile }} 7 | {{- end }} 8 | 9 | {{ .SchemaMarkdown | trimspace }} 10 | 11 | {{ if .HasImport -}} 12 | ## Import 13 | Import is supported using the following syntax: 14 | {{ codefile "shell" .ImportFile }} 15 | {{- end }} 16 | -------------------------------------------------------------------------------- /templates/resources/bridge.md.tmpl: -------------------------------------------------------------------------------- 1 | # {{.Name}} ({{.Type}}) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_interface_bridge](interface_bridge.md) 6 | -------------------------------------------------------------------------------- /templates/resources/bridge_port.md.tmpl: -------------------------------------------------------------------------------- 1 | # {{.Name}} ({{.Type}}) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_interface_bridge_port](interface_bridge_port.md) 6 | -------------------------------------------------------------------------------- /templates/resources/bridge_vlan.md.tmpl: -------------------------------------------------------------------------------- 1 | # {{.Name}} ({{.Type}}) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_interface_bridge_vlan](interface_bridge_vlan.md) 6 | -------------------------------------------------------------------------------- /templates/resources/certificate_scep_server.md.tmpl: -------------------------------------------------------------------------------- 1 | # {{.Name}} ({{.Type}}) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_system_certificate_scep_server](system_certificate_scep_server.md) 6 | -------------------------------------------------------------------------------- /templates/resources/dhcp_client.md.tmpl: -------------------------------------------------------------------------------- 1 | # {{.Name}} ({{.Type}}) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_ip_dhcp_client](ip_dhcp_client.md) 6 | -------------------------------------------------------------------------------- /templates/resources/dhcp_server.md.tmpl: -------------------------------------------------------------------------------- 1 | # {{.Name}} ({{.Type}}) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_ip_dhcp_server](ip_dhcp_server.md) 6 | -------------------------------------------------------------------------------- /templates/resources/dhcp_server_lease.md.tmpl: -------------------------------------------------------------------------------- 1 | # {{.Name}} ({{.Type}}) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_ip_dhcp_server_lease](ip_dhcp_server_lease.md) 6 | -------------------------------------------------------------------------------- /templates/resources/dhcp_server_network.md.tmpl: -------------------------------------------------------------------------------- 1 | # {{.Name}} ({{.Type}}) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_ip_dhcp_server_network](ip_dhcp_server_network.md) 6 | -------------------------------------------------------------------------------- /templates/resources/dns.md.tmpl: -------------------------------------------------------------------------------- 1 | # {{.Name}} ({{.Type}}) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_ip_dns](ip_dns.md) 6 | -------------------------------------------------------------------------------- /templates/resources/dns_record.md.tmpl: -------------------------------------------------------------------------------- 1 | # {{.Name}} ({{.Type}}) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_ip_dns_record](ip_dns_record.md) 6 | -------------------------------------------------------------------------------- /templates/resources/firewall_addr_list.md.tmpl: -------------------------------------------------------------------------------- 1 | # {{.Name}} ({{.Type}}) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_ip_firewall_addr_list](ip_firewall_addr_list.md) 6 | -------------------------------------------------------------------------------- /templates/resources/firewall_filter.md.tmpl: -------------------------------------------------------------------------------- 1 | # {{.Name}} ({{.Type}}) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_ip_firewall_filter](ip_firewall_filter.md) 6 | -------------------------------------------------------------------------------- /templates/resources/firewall_mangle.md.tmpl: -------------------------------------------------------------------------------- 1 | # {{.Name}} ({{.Type}}) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_ip_firewall_mangle](ip_firewall_mangle.md) 6 | -------------------------------------------------------------------------------- /templates/resources/firewall_nat.md.tmpl: -------------------------------------------------------------------------------- 1 | # {{.Name}} ({{.Type}}) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_ip_firewall_nat](ip_firewall_nat.md) 6 | -------------------------------------------------------------------------------- /templates/resources/gre.md.tmpl: -------------------------------------------------------------------------------- 1 | # {{.Name}} ({{.Type}}) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_interface_gre](interface_gre.md) 6 | -------------------------------------------------------------------------------- /templates/resources/identity.md.tmpl: -------------------------------------------------------------------------------- 1 | # {{.Name}} ({{.Type}}) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_system_identity](system_identity.md) 6 | -------------------------------------------------------------------------------- /templates/resources/scheduler.md.tmpl: -------------------------------------------------------------------------------- 1 | # {{.Name}} ({{.Type}}) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_system_scheduler](system_scheduler.md) 6 | -------------------------------------------------------------------------------- /templates/resources/vlan.md.tmpl: -------------------------------------------------------------------------------- 1 | # {{.Name}} ({{.Type}}) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_interface_vlan](interface_vlan.md) 6 | -------------------------------------------------------------------------------- /templates/resources/vrrp.md.tmpl: -------------------------------------------------------------------------------- 1 | # {{.Name}} ({{.Type}}) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_interface_vrrp](interface_vrrp.md) 6 | -------------------------------------------------------------------------------- /templates/resources/wireguard.md.tmpl: -------------------------------------------------------------------------------- 1 | # {{.Name}} ({{.Type}}) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_interface_wireguard](interface_wireguard.md) 6 | -------------------------------------------------------------------------------- /templates/resources/wireguard_peer.md.tmpl: -------------------------------------------------------------------------------- 1 | # {{.Name}} ({{.Type}}) 2 | --- 3 | 4 | #### This is an alias for backwards compatibility between plugin versions. 5 | Please see documentation for [routeros_interface_wireguard_peer](interface_wireguard_peer.md) 6 | -------------------------------------------------------------------------------- /tools/tools.go: -------------------------------------------------------------------------------- 1 | //go:build tools 2 | // +build tools 3 | 4 | package tools 5 | 6 | import ( 7 | _ "github.com/hashicorp/terraform-plugin-docs/cmd/tfplugindocs" 8 | ) 9 | --------------------------------------------------------------------------------