Documentation
¶
Index ¶
- Constants
- Variables
- func CompareMACAddresses(macAddress1 net.HardwareAddr, macAddress2 net.HardwareAddr) bool
- func ParseMACAddress(macAddress string) (net.HardwareAddr, error)
- func ValidateAlias(alias string) error
- func ValidateConfigFileName(configFileName string) error
- func ValidateDNSLabel(dnsLabel string) error
- func ValidateDomain(domain string) error
- func ValidateIPAddress(addr string, addrFamily string) error
- func ValidateIPAddressPort(addrPort string) error
- func ValidateInterface(iface string) error
- func ValidateMACAddress(macAddress string) error
- func ValidateNetwork(network string) error
- func ValidatePort(port string) error
- func ValidatePortRange(portRange string) error
- type Client
- func (pf *Client) ApplyDHCPv4Changes(ctx context.Context, iface string) error
- func (pf *Client) ApplyDNSResolverChanges(ctx context.Context) error
- func (pf *Client) CreateDHCPv4StaticMapping(ctx context.Context, staticMappingReq DHCPv4StaticMapping) (*DHCPv4StaticMapping, error)
- func (pf *Client) CreateDNSResolverConfigFile(ctx context.Context, configFileReq ConfigFile) (*ConfigFile, error)
- func (pf *Client) CreateDNSResolverDomainOverride(ctx context.Context, domainOverrideReq DomainOverride) (*DomainOverride, error)
- func (pf *Client) CreateDNSResolverHostOverride(ctx context.Context, hostOverrideReq HostOverride) (*HostOverride, error)
- func (pf *Client) CreateFirewallIPAlias(ctx context.Context, ipAliasReq FirewallIPAlias) (*FirewallIPAlias, error)
- func (pf *Client) CreateFirewallPortAlias(ctx context.Context, portAliasReq FirewallPortAlias) (*FirewallPortAlias, error)
- func (pf *Client) DeleteDHCPv4StaticMapping(ctx context.Context, iface string, macAddress net.HardwareAddr) error
- func (pf *Client) DeleteDNSResolverConfigFile(ctx context.Context, name string) error
- func (pf *Client) DeleteDNSResolverDomainOverride(ctx context.Context, domain string) error
- func (pf *Client) DeleteDNSResolverHostOverride(ctx context.Context, fqdn string) error
- func (pf *Client) DeleteFirewallIPAlias(ctx context.Context, name string) error
- func (pf *Client) DeleteFirewallPortAlias(ctx context.Context, name string) error
- func (pf *Client) ExecutePHPCommand(ctx context.Context, command string, crud string) (any, error)
- func (pf *Client) GetDHCPv4StaticMapping(ctx context.Context, iface string, macAddress net.HardwareAddr) (*DHCPv4StaticMapping, error)
- func (pf *Client) GetDHCPv4StaticMappings(ctx context.Context, iface string) (*DHCPv4StaticMappings, error)
- func (pf *Client) GetDNSResolverConfigFile(ctx context.Context, name string) (*ConfigFile, error)
- func (pf *Client) GetDNSResolverConfigFiles(ctx context.Context) (*ConfigFiles, error)
- func (pf *Client) GetDNSResolverDomainOverride(ctx context.Context, domain string) (*DomainOverride, error)
- func (pf *Client) GetDNSResolverDomainOverrides(ctx context.Context) (*DomainOverrides, error)
- func (pf *Client) GetDNSResolverHostOverride(ctx context.Context, fqdn string) (*HostOverride, error)
- func (pf *Client) GetDNSResolverHostOverrides(ctx context.Context) (*HostOverrides, error)
- func (pf *Client) GetFirewallIPAlias(ctx context.Context, name string) (*FirewallIPAlias, error)
- func (pf *Client) GetFirewallIPAliases(ctx context.Context) (*FirewallIPAliases, error)
- func (pf *Client) GetFirewallPortAlias(ctx context.Context, name string) (*FirewallPortAlias, error)
- func (pf *Client) GetFirewallPortAliases(ctx context.Context) (*FirewallPortAliases, error)
- func (pf *Client) GetSystemVersion(ctx context.Context) (*SystemVersion, error)
- func (pf *Client) ReloadFirewallFilter(ctx context.Context) error
- func (pf *Client) UpdateDHCPv4StaticMapping(ctx context.Context, staticMappingReq DHCPv4StaticMapping) (*DHCPv4StaticMapping, error)
- func (pf *Client) UpdateDNSResolverConfigFile(ctx context.Context, configFileReq ConfigFile) (*ConfigFile, error)
- func (pf *Client) UpdateDNSResolverDomainOverride(ctx context.Context, domainOverrideReq DomainOverride) (*DomainOverride, error)
- func (pf *Client) UpdateDNSResolverHostOverride(ctx context.Context, hostOverrideReq HostOverride) (*HostOverride, error)
- func (pf *Client) UpdateFirewallIPAlias(ctx context.Context, ipAliasReq FirewallIPAlias) (*FirewallIPAlias, error)
- func (pf *Client) UpdateFirewallPortAlias(ctx context.Context, portAliasReq FirewallPortAlias) (*FirewallPortAlias, error)
- type ConfigFile
- type ConfigFiles
- type DHCPv4StaticMapping
- func (sm *DHCPv4StaticMapping) SetARPTableStaticEntry(arpTableStaticEntry bool) error
- func (sm *DHCPv4StaticMapping) SetClientIdentifier(clientIdentifier string) error
- func (sm *DHCPv4StaticMapping) SetDNSServers(dnsServers []string) error
- func (sm *DHCPv4StaticMapping) SetDefaultLeaseTime(defaultLeaseTime string) error
- func (sm *DHCPv4StaticMapping) SetDescription(description string) error
- func (sm *DHCPv4StaticMapping) SetDomainName(domainName string) error
- func (sm *DHCPv4StaticMapping) SetDomainSearchList(domainSearchList []string) error
- func (sm *DHCPv4StaticMapping) SetGateway(gateway string) error
- func (sm *DHCPv4StaticMapping) SetHostname(hostname string) error
- func (sm *DHCPv4StaticMapping) SetIPAddress(ipAddress string) error
- func (sm *DHCPv4StaticMapping) SetInterface(iface string) error
- func (sm *DHCPv4StaticMapping) SetMACAddress(macAddress string) error
- func (sm *DHCPv4StaticMapping) SetMaximumLeaseTime(maximumLeaseTime string) error
- func (sm *DHCPv4StaticMapping) SetWINSServers(winsServers []string) error
- func (sm DHCPv4StaticMapping) StringifyDNSServers() []string
- func (sm DHCPv4StaticMapping) StringifyGateway() string
- func (sm DHCPv4StaticMapping) StringifyIPAddress() string
- func (sm DHCPv4StaticMapping) StringifyWINSServers() []string
- type DHCPv4StaticMappings
- type DomainOverride
- func (do *DomainOverride) SetDescription(description string) error
- func (do *DomainOverride) SetDomain(domain string) error
- func (do *DomainOverride) SetIPAddress(ipAddress string) error
- func (do *DomainOverride) SetTLSHostname(hostname string) error
- func (do *DomainOverride) SetTLSQueries(value bool) error
- func (do DomainOverride) StringifyIPAddress() string
- type DomainOverrides
- type FirewallIPAlias
- type FirewallIPAliasEntry
- type FirewallIPAliases
- type FirewallPortAlias
- type FirewallPortAliasEntry
- type FirewallPortAliases
- type HostOverride
- func (ho HostOverride) FQDN() string
- func (ho *HostOverride) SetDescription(description string) error
- func (ho *HostOverride) SetDomain(domain string) error
- func (ho *HostOverride) SetHost(host string) error
- func (ho *HostOverride) SetIPAddresses(ipAddresses []string) error
- func (ho HostOverride) StringifyIPAddresses() []string
- type HostOverrideAlias
- type HostOverrides
- type Options
- type SystemVersion
- type ValidAddrStringer
Constants ¶
View Source
const ( DefaultURL = "https://192.168.1.1" DefaultUsername = "admin" DefaultTLSSkipVerify = false DefaultRetryMinWait = time.Second DefaultRetryMaxWait = 5 * time.Second DefaultMaxAttempts = 3 DefaultConcurrentWrites = false StaticMappingMaxWINSServers = 2 StaticMappingMaxDNSServers = 4 )
View Source
const ( DefaultDNSPort = 53 DefaultTLSDNSPort = 853 )
View Source
const MAC48Length = 6
Variables ¶
View Source
var ( ErrFailedRequest = errors.New("failed request") ErrHTTPStatus = errors.New("http status") ErrLoginFailed = errors.New("login failed") ErrNotFound = errors.New("not found") ErrUnableToParse = errors.New("unable to parse") ErrUnableToScrapeHTML = errors.New("unable to scrape HTML") ErrClientValidation = errors.New("client validation") ErrServerValidation = errors.New("server validation") ErrApplyOperationFailed = errors.New("failed to apply") ErrGetOperationFailed = errors.New("failed to get") ErrCreateOperationFailed = errors.New("failed to create") ErrUpdateOperationFailed = errors.New("failed to update") ErrDeleteOperationFailed = errors.New("failed to delete") )
Functions ¶
func CompareMACAddresses ¶
func CompareMACAddresses(macAddress1 net.HardwareAddr, macAddress2 net.HardwareAddr) bool
func ParseMACAddress ¶
func ParseMACAddress(macAddress string) (net.HardwareAddr, error)
func ValidateAlias ¶
func ValidateConfigFileName ¶
func ValidateDNSLabel ¶
used for hostname and host override name.
func ValidateDomain ¶
used for FQDN, domain search list, domains, etc note: this validation is fairly loose to align with pfSense
func ValidateIPAddress ¶
func ValidateIPAddressPort ¶
func ValidateInterface ¶
func ValidateMACAddress ¶
func ValidateNetwork ¶
func ValidatePort ¶
func ValidatePortRange ¶
Types ¶
type Client ¶
type Client struct {
Options *Options
// contains filtered or unexported fields
}
func (*Client) ApplyDHCPv4Changes ¶
func (*Client) ApplyDNSResolverChanges ¶
func (*Client) CreateDHCPv4StaticMapping ¶
func (pf *Client) CreateDHCPv4StaticMapping(ctx context.Context, staticMappingReq DHCPv4StaticMapping) (*DHCPv4StaticMapping, error)
func (*Client) CreateDNSResolverConfigFile ¶
func (pf *Client) CreateDNSResolverConfigFile(ctx context.Context, configFileReq ConfigFile) (*ConfigFile, error)
func (*Client) CreateDNSResolverDomainOverride ¶
func (pf *Client) CreateDNSResolverDomainOverride(ctx context.Context, domainOverrideReq DomainOverride) (*DomainOverride, error)
func (*Client) CreateDNSResolverHostOverride ¶
func (pf *Client) CreateDNSResolverHostOverride(ctx context.Context, hostOverrideReq HostOverride) (*HostOverride, error)
func (*Client) CreateFirewallIPAlias ¶
func (pf *Client) CreateFirewallIPAlias(ctx context.Context, ipAliasReq FirewallIPAlias) (*FirewallIPAlias, error)
func (*Client) CreateFirewallPortAlias ¶
func (pf *Client) CreateFirewallPortAlias(ctx context.Context, portAliasReq FirewallPortAlias) (*FirewallPortAlias, error)
func (*Client) DeleteDHCPv4StaticMapping ¶
func (*Client) DeleteDNSResolverConfigFile ¶
func (*Client) DeleteDNSResolverDomainOverride ¶
func (*Client) DeleteDNSResolverHostOverride ¶
func (*Client) DeleteFirewallIPAlias ¶
func (*Client) DeleteFirewallPortAlias ¶
func (*Client) ExecutePHPCommand ¶
func (*Client) GetDHCPv4StaticMapping ¶
func (pf *Client) GetDHCPv4StaticMapping(ctx context.Context, iface string, macAddress net.HardwareAddr) (*DHCPv4StaticMapping, error)
func (*Client) GetDHCPv4StaticMappings ¶
func (*Client) GetDNSResolverConfigFile ¶
func (*Client) GetDNSResolverConfigFiles ¶
func (pf *Client) GetDNSResolverConfigFiles(ctx context.Context) (*ConfigFiles, error)
func (*Client) GetDNSResolverDomainOverride ¶
func (*Client) GetDNSResolverDomainOverrides ¶
func (pf *Client) GetDNSResolverDomainOverrides(ctx context.Context) (*DomainOverrides, error)
func (*Client) GetDNSResolverHostOverride ¶
func (*Client) GetDNSResolverHostOverrides ¶
func (pf *Client) GetDNSResolverHostOverrides(ctx context.Context) (*HostOverrides, error)
func (*Client) GetFirewallIPAlias ¶
func (*Client) GetFirewallIPAliases ¶
func (pf *Client) GetFirewallIPAliases(ctx context.Context) (*FirewallIPAliases, error)
func (*Client) GetFirewallPortAlias ¶
func (*Client) GetFirewallPortAliases ¶
func (pf *Client) GetFirewallPortAliases(ctx context.Context) (*FirewallPortAliases, error)
func (*Client) GetSystemVersion ¶
func (pf *Client) GetSystemVersion(ctx context.Context) (*SystemVersion, error)
func (*Client) ReloadFirewallFilter ¶
func (*Client) UpdateDHCPv4StaticMapping ¶
func (pf *Client) UpdateDHCPv4StaticMapping(ctx context.Context, staticMappingReq DHCPv4StaticMapping) (*DHCPv4StaticMapping, error)
func (*Client) UpdateDNSResolverConfigFile ¶
func (pf *Client) UpdateDNSResolverConfigFile(ctx context.Context, configFileReq ConfigFile) (*ConfigFile, error)
func (*Client) UpdateDNSResolverDomainOverride ¶
func (pf *Client) UpdateDNSResolverDomainOverride(ctx context.Context, domainOverrideReq DomainOverride) (*DomainOverride, error)
func (*Client) UpdateDNSResolverHostOverride ¶
func (pf *Client) UpdateDNSResolverHostOverride(ctx context.Context, hostOverrideReq HostOverride) (*HostOverride, error)
func (*Client) UpdateFirewallIPAlias ¶
func (pf *Client) UpdateFirewallIPAlias(ctx context.Context, ipAliasReq FirewallIPAlias) (*FirewallIPAlias, error)
func (*Client) UpdateFirewallPortAlias ¶
func (pf *Client) UpdateFirewallPortAlias(ctx context.Context, portAliasReq FirewallPortAlias) (*FirewallPortAlias, error)
type ConfigFile ¶
func (*ConfigFile) SetContent ¶
func (cf *ConfigFile) SetContent(content string) error
func (*ConfigFile) SetName ¶
func (cf *ConfigFile) SetName(name string) error
type ConfigFiles ¶
type ConfigFiles []ConfigFile
func (ConfigFiles) GetByName ¶
func (cfs ConfigFiles) GetByName(name string) (*ConfigFile, error)
type DHCPv4StaticMapping ¶
type DHCPv4StaticMapping struct {
Interface string
MACAddress net.HardwareAddr
ClientIdentifier string
IPAddress netip.Addr
ARPTableStaticEntry bool
Hostname string
Description string
WINSServers []netip.Addr
DNSServers []netip.Addr
Gateway netip.Addr
DomainName string
DomainSearchList []string
DefaultLeaseTime time.Duration
MaximumLeaseTime time.Duration
}
func (*DHCPv4StaticMapping) SetARPTableStaticEntry ¶
func (sm *DHCPv4StaticMapping) SetARPTableStaticEntry(arpTableStaticEntry bool) error
func (*DHCPv4StaticMapping) SetClientIdentifier ¶
func (sm *DHCPv4StaticMapping) SetClientIdentifier(clientIdentifier string) error
func (*DHCPv4StaticMapping) SetDNSServers ¶
func (sm *DHCPv4StaticMapping) SetDNSServers(dnsServers []string) error
func (*DHCPv4StaticMapping) SetDefaultLeaseTime ¶
func (sm *DHCPv4StaticMapping) SetDefaultLeaseTime(defaultLeaseTime string) error
func (*DHCPv4StaticMapping) SetDescription ¶
func (sm *DHCPv4StaticMapping) SetDescription(description string) error
func (*DHCPv4StaticMapping) SetDomainName ¶
func (sm *DHCPv4StaticMapping) SetDomainName(domainName string) error
func (*DHCPv4StaticMapping) SetDomainSearchList ¶
func (sm *DHCPv4StaticMapping) SetDomainSearchList(domainSearchList []string) error
func (*DHCPv4StaticMapping) SetGateway ¶
func (sm *DHCPv4StaticMapping) SetGateway(gateway string) error
func (*DHCPv4StaticMapping) SetHostname ¶
func (sm *DHCPv4StaticMapping) SetHostname(hostname string) error
func (*DHCPv4StaticMapping) SetIPAddress ¶
func (sm *DHCPv4StaticMapping) SetIPAddress(ipAddress string) error
func (*DHCPv4StaticMapping) SetInterface ¶
func (sm *DHCPv4StaticMapping) SetInterface(iface string) error
func (*DHCPv4StaticMapping) SetMACAddress ¶
func (sm *DHCPv4StaticMapping) SetMACAddress(macAddress string) error
func (*DHCPv4StaticMapping) SetMaximumLeaseTime ¶
func (sm *DHCPv4StaticMapping) SetMaximumLeaseTime(maximumLeaseTime string) error
func (*DHCPv4StaticMapping) SetWINSServers ¶
func (sm *DHCPv4StaticMapping) SetWINSServers(winsServers []string) error
func (DHCPv4StaticMapping) StringifyDNSServers ¶
func (sm DHCPv4StaticMapping) StringifyDNSServers() []string
func (DHCPv4StaticMapping) StringifyGateway ¶
func (sm DHCPv4StaticMapping) StringifyGateway() string
func (DHCPv4StaticMapping) StringifyIPAddress ¶
func (sm DHCPv4StaticMapping) StringifyIPAddress() string
func (DHCPv4StaticMapping) StringifyWINSServers ¶
func (sm DHCPv4StaticMapping) StringifyWINSServers() []string
type DHCPv4StaticMappings ¶
type DHCPv4StaticMappings []DHCPv4StaticMapping
func (DHCPv4StaticMappings) GetByMACAddress ¶
func (sms DHCPv4StaticMappings) GetByMACAddress(macAddress net.HardwareAddr) (*DHCPv4StaticMapping, error)
func (DHCPv4StaticMappings) GetControlIDByMACAddress ¶
func (sms DHCPv4StaticMappings) GetControlIDByMACAddress(macAddress net.HardwareAddr) (*int, error)
type DomainOverride ¶
type DomainOverride struct {
Domain string
IPAddress netip.AddrPort
TLSQueries bool
TLSHostname string
Description string
}
func (*DomainOverride) SetDescription ¶
func (do *DomainOverride) SetDescription(description string) error
func (*DomainOverride) SetDomain ¶
func (do *DomainOverride) SetDomain(domain string) error
func (*DomainOverride) SetIPAddress ¶
func (do *DomainOverride) SetIPAddress(ipAddress string) error
TODO support address without port specified (default to 53/853).
func (*DomainOverride) SetTLSHostname ¶
func (do *DomainOverride) SetTLSHostname(hostname string) error
func (*DomainOverride) SetTLSQueries ¶
func (do *DomainOverride) SetTLSQueries(value bool) error
func (DomainOverride) StringifyIPAddress ¶
func (do DomainOverride) StringifyIPAddress() string
type DomainOverrides ¶
type DomainOverrides []DomainOverride
func (DomainOverrides) GetByDomain ¶
func (dos DomainOverrides) GetByDomain(domain string) (*DomainOverride, error)
func (DomainOverrides) GetControlIDByDomain ¶
func (dos DomainOverrides) GetControlIDByDomain(domain string) (*int, error)
type FirewallIPAlias ¶
type FirewallIPAlias struct {
Name string
Description string
Type string
Entries []FirewallIPAliasEntry
// contains filtered or unexported fields
}
func (*FirewallIPAlias) SetDescription ¶
func (ipAlias *FirewallIPAlias) SetDescription(description string) error
func (*FirewallIPAlias) SetName ¶
func (ipAlias *FirewallIPAlias) SetName(name string) error
func (*FirewallIPAlias) SetType ¶
func (ipAlias *FirewallIPAlias) SetType(t string) error
func (FirewallIPAlias) Types ¶
func (FirewallIPAlias) Types() []string
type FirewallIPAliasEntry ¶
func (*FirewallIPAliasEntry) SetDescription ¶
func (entry *FirewallIPAliasEntry) SetDescription(description string) error
func (*FirewallIPAliasEntry) SetIP ¶
func (entry *FirewallIPAliasEntry) SetIP(ip string) error
type FirewallIPAliases ¶
type FirewallIPAliases []FirewallIPAlias
func (FirewallIPAliases) GetByName ¶
func (ipAliases FirewallIPAliases) GetByName(name string) (*FirewallIPAlias, error)
func (FirewallIPAliases) GetControlIDByName ¶
func (ipAliases FirewallIPAliases) GetControlIDByName(name string) (*int, error)
type FirewallPortAlias ¶
type FirewallPortAlias struct {
Name string
Description string
Entries []FirewallPortAliasEntry
// contains filtered or unexported fields
}
func (*FirewallPortAlias) SetDescription ¶
func (portAlias *FirewallPortAlias) SetDescription(description string) error
func (*FirewallPortAlias) SetName ¶
func (portAlias *FirewallPortAlias) SetName(name string) error
type FirewallPortAliasEntry ¶
func (*FirewallPortAliasEntry) SetDescription ¶
func (entry *FirewallPortAliasEntry) SetDescription(description string) error
func (*FirewallPortAliasEntry) SetPort ¶
func (entry *FirewallPortAliasEntry) SetPort(port string) error
type FirewallPortAliases ¶
type FirewallPortAliases []FirewallPortAlias
func (FirewallPortAliases) GetByName ¶
func (portAliases FirewallPortAliases) GetByName(name string) (*FirewallPortAlias, error)
func (FirewallPortAliases) GetControlIDByName ¶
func (portAliases FirewallPortAliases) GetControlIDByName(name string) (*int, error)
type HostOverride ¶
type HostOverride struct {
Host string
Domain string
IPAddresses []netip.Addr
Description string
Aliases []HostOverrideAlias
}
func (HostOverride) FQDN ¶
func (ho HostOverride) FQDN() string
func (*HostOverride) SetDescription ¶
func (ho *HostOverride) SetDescription(description string) error
func (*HostOverride) SetDomain ¶
func (ho *HostOverride) SetDomain(domain string) error
func (*HostOverride) SetHost ¶
func (ho *HostOverride) SetHost(host string) error
func (*HostOverride) SetIPAddresses ¶
func (ho *HostOverride) SetIPAddresses(ipAddresses []string) error
func (HostOverride) StringifyIPAddresses ¶
func (ho HostOverride) StringifyIPAddresses() []string
TODO replace with Terraform custom type for netip.Addr.
type HostOverrideAlias ¶
func (HostOverrideAlias) FQDN ¶
func (hoa HostOverrideAlias) FQDN() string
func (*HostOverrideAlias) SetDescription ¶
func (hoa *HostOverrideAlias) SetDescription(description string) error
func (*HostOverrideAlias) SetDomain ¶
func (hoa *HostOverrideAlias) SetDomain(domain string) error
func (*HostOverrideAlias) SetHost ¶
func (hoa *HostOverrideAlias) SetHost(host string) error
type HostOverrides ¶
type HostOverrides []HostOverride
func (HostOverrides) GetByFQDN ¶
func (hos HostOverrides) GetByFQDN(fqdn string) (*HostOverride, error)
func (HostOverrides) GetControlIDByFQDN ¶
func (hos HostOverrides) GetControlIDByFQDN(fqdn string) (*int, error)
type SystemVersion ¶
type ValidAddrStringer ¶
Source Files
¶
- client.go
- dhcpv4_apply.go
- dhcpv4_staticmapping.go
- dnsresolver_apply.go
- dnsresolver_configfile.go
- dnsresolver_domainoverride.go
- dnsresolver_hostoverride.go
- errors.go
- execute_php_command.go
- firewall_alias.go
- firewall_ip_alias.go
- firewall_port_alias.go
- firewall_reload_filter.go
- html.go
- http.go
- system_version.go
- utils.go
- validation.go
Click to show internal directories.
Click to hide internal directories.