package model // SNATRule is a source-NAT / masquerade intent. Source is a zone or CIDR; Egress // is a zone (resolved per device to its egress interface via bindings). Address // and Probability support load-balanced SNAT. type SNATRule struct { ID int64 `json:"id"` Action string `json:"action"` // masquerade | snat Source string `json:"source"` Egress string `json:"egress"` Address string `json:"address,omitempty"` Probability *float64 `json:"probability,omitempty"` Comment string `json:"comment,omitempty"` } // NetmapRule maps one network to another, anchored at a device+zone or interface. type NetmapRule struct { ID int64 `json:"id"` Type string `json:"type"` // dnat | snat FromNet string `json:"from_net"` ToNet string `json:"to_net"` Anchor string `json:"anchor"` Comment string `json:"comment,omitempty"` } // NATRule is a one-to-one static NAT bound to the device owning the external IP. type NATRule struct { ID int64 `json:"id"` Device string `json:"device"` External string `json:"external"` Internal string `json:"internal"` Interface string `json:"interface,omitempty"` Comment string `json:"comment,omitempty"` }