package vrrp import "time" // VRRPInstance represents a Virtual Router Redundancy Protocol configuration type VRRPInstance struct { ID string `json:"id"` Name string `json:"name"` // e.g. "vrrp-lan", "vrrp1" Interface string `json:"interface"` // e.g. "bridge1", "eth0", "vlan10" VRID int `json:"vrid"` // 1 - 255 Priority int `json:"priority"` // 1 - 255 (default 100) Interval int `json:"interval"` // advertisement interval in seconds (default 1) Preempt bool `json:"preempt"` // true = master preemption active Version int `json:"version"` // 2 or 3 (default 3) VirtualIPs []string `json:"virtual_ips"` // e.g. ["192.168.88.254/24"] AuthType string `json:"auth_type"` // "none", "pass" AuthPassword string `json:"auth_password,omitempty"` Disabled bool `json:"disabled"` // true = disabled Comment string `json:"comment,omitempty"` // Runtime status State string `json:"state"` // "MASTER", "BACKUP", "FAULT", "DISABLED" Running bool `json:"running"` // true if Master or Backup (daemon active) VirtualMAC string `json:"virtual_mac"` // e.g. "00:00:5E:00:01:0A" LastTransition time.Time `json:"last_transition,omitempty"` } // VRRPSummary provides aggregated status for KPI cards type VRRPSummary struct { TotalInstances int `json:"total_instances"` MasterInstances int `json:"master_instances"` BackupInstances int `json:"backup_instances"` FaultInstances int `json:"fault_instances"` } // VRRPConfigStore wraps persistent storage type VRRPConfigStore struct { Instances []VRRPInstance `json:"instances"` }