feat: support Zone-Based Firewalls (#33)

* feat: support Zone-Based Firewalls

* chore: add usage example of zone-based firewall

* chore: add note to readme to support unifi controller v2

* fix: invalid path for reordering firewall zone policies
This commit is contained in:
Mateusz Filipowicz
2025-02-20 18:48:04 +01:00
committed by GitHub
parent 16f71e7fe9
commit 637809c663
13 changed files with 703 additions and 0 deletions

View File

@@ -52,4 +52,46 @@ if err != nil {
log.Fatalf("Error updating guest access setting: %v", err)
}
// Use the updated setting
```
## Create a Firewall Zone
To create firewall zone:
```go
fz, err := c.CreateFirewallZone(ctx, "default", &unifi.FirewallZone{
Name: "my-zone",
NetworkIDs: []string{},
})
if err != nil {
fmt.Printf("Error: %v\n", err)
} else {
fmt.Printf("Firewall Zone created: %v\n", fz)
}
```
Then you can create a firewall zone policy (minimal example):
```go
fzp, err := c.CreateFirewallZonePolicy(ctx, "default", &unifi.FirewallZonePolicy{
Name: "my-zone-policy",
Action: "REJECT",
Enabled: true,
IPVersion: "BOTH",
Source: unifi.FirewallZonePolicySource{
ZoneID: fz.ID,
},
Destination: unifi.FirewallZonePolicyDestination{
ZoneID: fz.ID,
},
Schedule: unifi.FirewallZonePolicySchedule{
Mode: "ALWAYS",
},
})
if err != nil {
fmt.Printf("Error: %v\n", err)
return
} else {
fmt.Printf("Firewall Zone Policy created: %v\n", fzp)
}
```