214 Commits

Author SHA1 Message Date
shadyeip
61ff63c1d7 feat: add destination.network_ids support to firewall zone policy
- Add NetworkIDs and MatchOppositeNetworks to destination model
- Add schema attributes for destination.network_ids
- Handle NETWORK matching target in AsUnifiModel and mergeDestination
- Fix Port type conversion (int32 to string) for API compatibility
- Update go.mod to use local go-unifi with destination network support

Fixes: destination.network_ids silently ignored on update
2026-02-05 15:23:34 -05:00
shadyeip
8a8d180343 fix: handle empty network_group and ipv6_interface_type for WAN networks
WAN networks return empty values for these fields from the API, causing
perpetual drift against schema defaults. Now explicitly set defaults
when API returns empty for WAN networks.
2026-02-05 15:05:50 -05:00
shadyeip
4cbd40ac56 fix: make index field read-only in unifi_firewall_zone_policy
The UniFi API ignores index on create/update - ordering is controlled
via a separate batch-reorder endpoint. Making index computed-only
prevents "Provider produced inconsistent result after apply" errors.
2026-02-05 15:05:18 -05:00
Mateusz Filipowicz
b9284f7758 docs: improve documentation for 1.0.0 release (#75)
* docs: add examples and recreate TF documentation

* update readme

* add information about experimental support of firewall zones
2025-03-22 19:13:16 +01:00
Mateusz Filipowicz
a133383b43 feat: support customizing guest portal logo and background with unifi_portal_file and unifi_setting_guest_access resources (#74)
* feat: support customizing guest portal logo and background with `unifi_portal_file` and `unifi_setting_guest_access` resources

* ci: run acceptance tests on go.mod changes

* f
2025-03-22 17:31:30 +01:00
Mateusz Filipowicz
8dd4bfcb97 feat: support Firewall Zone Policy resources with unifi_firewall_zone_policy (#73)
* feat: support Firewall Zone Policy resources with `unifi_firewall_zone_policy`

* lint
2025-03-22 15:16:06 +01:00
Mateusz Filipowicz
cdc0254289 refactor: reorganize code to make it more readable (#71) 2025-03-21 11:52:55 +01:00
Mateusz Filipowicz
45ba7aace9 feat: support Firewall Zone resource and datasource (#70)
* feat: support Firewall Zone resource and datasource

* disable flaky test
2025-03-21 07:00:34 +01:00
Mateusz Filipowicz
ca21f79083 feat: support Guest Access settings with resource_setting_guest_access (#61)
* feat: support Guest Access settings with `resource_setting_guest_access`

* feat: add support for redirect after authentication in guest access settings

* feat: add support for Facebook authentication in guest access settings

* feat: add support for Google authentication in guest access settings

* feat: add support for RADIUS authentication in guest access settings

* feat: add support for Wechat authentication in guest access settings

* feat: add support for Facebook Wifi authentication in guest access settings

* feat: add support for restricted DNS servers

* feat: add support for guest portal UI customization

* feat: add support for restricted subnet in guest portal

* feat: retry client action on HTTP 401, but first attempt relogging in

* require controllr version 7.4 for several portal customization attributes

* enable acceptance tests workflow concurrency
2025-03-17 14:53:28 +01:00
Mateusz Filipowicz
28d28f17f6 feat: simplify unifi_setting_usg resource by making geo IP fitering and UPNP enabled fields only computed (#60)
* feat: simplify setting_usg resource by making geo IP fitering and UPNP enabled fields only computed

* rename block to mode
2025-03-16 23:56:32 +01:00
Mateusz Filipowicz
02d10929c9 feat: remove filter from dns_record datasource and use plain structure (#58) 2025-03-16 16:25:50 +01:00
Mateusz Filipowicz
ff14bd365f fix: user ip in user datasource is populated with localDnsRecord (#57)
* fix: user `ip` in user datasource is populated with `localDnsRecord`

* add test
2025-03-16 14:08:54 +01:00
Mateusz Filipowicz
e9600c6e06 feat: add support for Intrution Prevention System (IPS) settings with unifi_setting_ips resource (#56)
* feat: add support for Intrution Prevention System (IPS) settings with `unifi_setting_ips` resource

* require IPS features enabled on controller

* require version 7.4

* require version 7.5 for advanced_filtering_preference

* feat: use Remember Me to prolong session for user/pass authentication

* run some setting mgmt tests on 7.0+ due to auto_upgrade_hour not working until device is adopted and auto upgrade logic is different and not supported
2025-03-16 12:53:46 +01:00
Mateusz Filipowicz
8b6ff55a18 feat: completely support for all site-wide management settings in resource_setting_mgmt (#54)
* feat: completely support for all site-wide management settings in resource_setting_mgmt

* require controller version minimum 7.3 for debug_tools_enabled
2025-03-15 10:47:14 +01:00
Mateusz Filipowicz
fbb6296e9e refactor: migrate resource_setting_mgmt to Terraform Plugin Framework 2025-03-14 10:17:51 +01:00
Mateusz Filipowicz
7440febd10 feat: add support for UniFi Switch (USW) settings with unifi_setting_usw resource (#53) 2025-03-14 07:19:45 +01:00
Mateusz Filipowicz
34c495021f fix: invalid handling of site of DNS resource and datasources (#52) 2025-03-14 01:03:09 +01:00
Mateusz Filipowicz
5d1643ed80 refactor: move BaseSettingResource to reusable in broader scope GenericResource (#51) 2025-03-14 00:34:29 +01:00
Mateusz Filipowicz
9f2573d72c feat: add support for Remote Syslog settings with unifi_setting_rsyslog resource (#47)
* feat: add support for Remote Syslog settings with `unifi_setting_rsyslog` resource

* set controller version constraint on 8.5 for rsyslogd

* require controller version 7.2 for teleport

* fix: use dedicated site for USG setting tests to not interfere with other resources
2025-03-12 00:59:03 +01:00
Mateusz Filipowicz
f82bce6de0 feat: add support for Deep Packet Inspection (DPI) settings with unifi_setting_dpi resource (#45) 2025-03-11 11:33:43 +01:00
Mateusz Filipowicz
72dcdd03ce feat: add support for LCD Monitor (LCM) settings with unifi_setting_lcd_monitor resource (#46) 2025-03-11 11:07:45 +01:00
Mateusz Filipowicz
fcea1e0ba4 feat: support complete USG resource (#44)
* feat: add support for UPNP and Geo IP filtering to USG settings resource

* feat: support complete USG settings resource

* fix messages in required_together_if.go

* improve docs of USG resource

* tests: require version at least 9.0 for unbind_wan_monitors

* feat: require version at least 8.5 for dns_verification

* fix: use go-unifi 1.5.2 to fix NTP

* require 7.0 or later for timeout preference

* require 7.0 or later for geo IP filtering
2025-03-11 02:17:24 +01:00
Mateusz Filipowicz
35c74bf59d refactor: migrate USG setting resource to Terraform Plugin Framework (#42)
* refactor: migrate USG setting resource to Terraform Plugin Framework

* remove setting_usg from old provider

* add USG resource to provider v2
2025-03-05 12:38:44 +01:00
Mateusz Filipowicz
7856ec4764 feat: add Teleport support with unifi_setting_teleport resource (#39)
* feat: add Telepor support with `unifi_setting_teleport` resource

* add cidr validators

* fix teleport tests by specifying version constraints

* fix teleport version needed

* require version 7.1

* lint
2025-03-03 21:08:50 +01:00
Mateusz Filipowicz
5da978a5d3 feat: add SSL inspection resource support with unifi_setting_ssl_inspection resource (#38)
* feat: add SSL inspection resource support with `unifi_setting_ssl_inspection` resource

* add version contstraint
2025-03-02 20:46:49 +01:00
Mateusz Filipowicz
ef2221cab9 feat: add network optimization resource support with unifi_setting_network_optimization resource (#37)
* feat: add network optimization resource support with `unifi_setting_network_optimization` resource
2025-03-02 01:41:08 +01:00
Mateusz Filipowicz
8b5ed14d8d feat: add NTP setting resource support with unifi_setting_ntp resource (#36)
* feat: add NTP setting resource support with `unifi_setting_ntp` resource

* linting

* fix missing method

* add missing validators
2025-03-02 01:10:41 +01:00
Mateusz Filipowicz
a78667e669 feat: add magic site-to-site VPN setting resource support with unifi_setting_magic_site_to_site_vpn resource (#35)
* feat: add magic site-to-site VPN setting resource support with `unifi_setting_magic_site_to_site_vpn` resource

* do not use default

* require controller version >=7.4 for magic site to site vpn tests
2025-03-01 23:12:06 +01:00
Mateusz Filipowicz
f815ffef79 feat: add locale setting resource support with unifi_setting_locale resource (#34)
* feat: add locale setting resource support with `unifi_setting_locale` resource

* lint
2025-03-01 18:03:58 +01:00
Mateusz Filipowicz
273d0daddd feat: add automatic speedtest setting resource support with unifi_setting_auto_speedtest resource (#32)
* feat: add automatic speedtest setting resource support with `unifi_setting_auto_speedtest` resource

* restore lowered test paralellism

* refactoring and fixes

* fix speedtest after refactor

* run speedtest test on versions [7.2,7.4.156), cause later it was removed from USG which is used in tests
2025-03-01 15:38:17 +01:00
Mateusz Filipowicz
a36940b019 feat: add country setting resource support with unifi_setting_country resource (#31)
* feat: add country setting resource support with `unifi_setting_country` resource

* linting
2025-02-27 02:56:07 +01:00
Mateusz Filipowicz
b1688313c0 docs: improve provider documentation (#29)
* docs: improve provider documentation

* fix accidentally changed type of stormctrl_ucast_rate

* docs: add badges and plans to readme
2025-02-26 18:56:45 +01:00
Mateusz Filipowicz
e5e50f98c0 chore: support locking in tests (#28) 2025-02-26 10:33:55 +01:00
Mateusz Filipowicz
af1aa62b3f feat: retry forgetting device when device is busy (#26) 2025-02-26 09:31:32 +01:00
Mateusz Filipowicz
e7164c0460 feat: add DNS record resource and datasources (#25)
* add DNS record

* revamp tests

* lint

* cleanup

* feat dns test

* chore: add DNS Record tests

* linting

* f
2025-02-26 01:17:59 +01:00
Mateusz Filipowicz
325d7b7f20 feat: initialize Terraform Plugin Framework (#23)
* feat: initialize Terraform Plugin Framework

* fix docker-compose path for tests

* fix: ensure documentation can be generated with old provider SDK and new plugin framework

* lint
2025-02-24 00:11:41 +01:00
Mateusz Filipowicz
b7fe359f6c feat: support API Key authentication to UniFi controller (#22) 2025-02-23 19:51:18 +01:00
Mateusz Filipowicz
f5bd8ebb15 feat: switch to filipowm/go-unifi UniFi SDK client (#20)
* feat: switch to filipowm/go-unifi UniFi SDK client

* disable validation in tests

* replace usage of APIError by ServerError

* bump go-unifi to 1.4.0
2025-02-23 17:07:03 +01:00
Mateusz Filipowicz
7c8724bc5c feat: support excluded_network_ids on port profile resource 2025-02-07 11:16:00 +01:00
Mateusz Filipowicz
4c3d5830ad feat: remove unused firewall properties from settings usg 2025-02-07 01:09:36 +01:00
Mateusz Filipowicz
b19314bc6e use filipowm/go-unifi instead of paultyng/go-unifi 2025-02-07 01:09:36 +01:00
Mateusz Filipowicz
0d5de4a4cf feat: add validation on wifi name 2025-02-07 01:09:36 +01:00
Mateusz Filipowicz
708d73eb6b feat: add enabled flag 2025-02-07 01:09:36 +01:00
Mateusz Filipowicz
5e4894c114 chore: tidying up dependencies 2025-02-07 01:09:36 +01:00
Mateusz Filipowicz
0cf84ee1df feat: support updated port profile API 2025-02-07 01:09:36 +01:00
Mateusz Filipowicz
7e222cb061 feat: add network_isolation_enabled and deprecate intra_network_access_enabled 2025-02-07 01:09:36 +01:00
Mateusz Filipowicz
6e6991d227 chore: set test parallelism to 2 from 4 due to too high parallelism causing "text file busy" issue 2025-01-21 11:50:04 +01:00
Mateusz Filipowicz
5b20ec9132 chore: make tests less flaky due to random naming of resources
Refers #480
2025-01-09 00:21:28 +01:00
Mateusz Filipowicz
5ba683fdad fix: flaky TestAccSite_basic and TestAccDataAccount_mac tests (#481)
* fix: temporarily disable CheckDestroy in TestAccSite_basic causing test flakiness

References #480

* fix: generate random name and mac in TestAccDataAccount_default and TestAccDataAccount_mac respectively to fix flakiness

References #480

* chore: disable linter on testAccCheckSiteResourceDestroy
2025-01-07 20:01:50 +11:00
Joshua Spence
60b7295c10 Update supported versions (#462)
* Update supported versions

* Fixes

* Set default for `dhcp_v6_enabled`

* Update resource_network_test.go

* Format

* Undo

* fixme

* Add back older versions

* Format

* FIXME
2024-11-22 13:23:12 +11:00