unifi

package
v1.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 10, 2024 License: MPL-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const UnifiVersion = "8.5.6"

Variables

This section is empty.

Functions

This section is empty.

Types

type APGroup

type APGroup struct {
	ID string `json:"_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Name       string   `json:"name"`
	DeviceMACs []string `json:"device_macs"`
}

type APIError

type APIError struct {
	RC      string
	Message string
}

func (*APIError) Error

func (err *APIError) Error() string

type Account

type Account struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	IP               string `json:"ip,omitempty"`   // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^$
	Name             string `json:"name,omitempty"` // ^[^"' ]+$
	NetworkID        string `json:"networkconf_id,omitempty"`
	TunnelConfigType string `json:"tunnel_config_type,omitempty"` // vpn|802.1x|custom
	TunnelMediumType int    `json:"tunnel_medium_type,omitempty"` // [1-9]|1[0-5]|^$
	TunnelType       int    `json:"tunnel_type,omitempty"`        // [1-9]|1[0-3]|^$
	VLAN             int    `json:"vlan,omitempty"`               // [2-9]|[1-9][0-9]{1,2}|[1-3][0-9]{3}|400[0-9]|^$
	XPassword        string `json:"x_password,omitempty"`
}

func (*Account) MarshalJSON

func (dst *Account) MarshalJSON() ([]byte, error)

func (*Account) UnmarshalJSON

func (dst *Account) UnmarshalJSON(b []byte) error

type BroadcastGroup

type BroadcastGroup struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	MemberTable []string `json:"member_table,omitempty"`
	Name        string   `json:"name,omitempty"`
}

func (*BroadcastGroup) UnmarshalJSON

func (dst *BroadcastGroup) UnmarshalJSON(b []byte) error

type ChannelPlan

type ChannelPlan struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	ApBlacklistedChannels   []ChannelPlanApBlacklistedChannels   `json:"ap_blacklisted_channels,omitempty"`
	ConfSource              string                               `json:"conf_source,omitempty"` // manual|radio-ai
	Coupling                []ChannelPlanCoupling                `json:"coupling,omitempty"`
	Date                    string                               `json:"date"` // ^$|^(20[0-9]{2}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9])Z?$
	Fitness                 float64                              `json:"fitness,omitempty"`
	Note                    string                               `json:"note,omitempty"`  // .{0,1024}
	Radio                   string                               `json:"radio,omitempty"` // na|ng|ng\+na
	RadioTable              []ChannelPlanRadioTable              `json:"radio_table,omitempty"`
	Satisfaction            float64                              `json:"satisfaction,omitempty"`
	SatisfactionTable       []ChannelPlanSatisfactionTable       `json:"satisfaction_table,omitempty"`
	SiteBlacklistedChannels []ChannelPlanSiteBlacklistedChannels `json:"site_blacklisted_channels,omitempty"`
}

func (*ChannelPlan) UnmarshalJSON

func (dst *ChannelPlan) UnmarshalJSON(b []byte) error

type ChannelPlanApBlacklistedChannels

type ChannelPlanApBlacklistedChannels struct {
	Channel   int    `json:"channel,omitempty"`   // 36|38|40|42|44|46|48|52|56|60|64|100|104|108|112|116|120|124|128|132|136|140|144|149|153|157|161|165|183|184|185|187|188|189|192|196
	MAC       string `json:"mac,omitempty"`       // ^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})$
	Timestamp int    `json:"timestamp,omitempty"` // [1-9][0-9]{12}
}

func (*ChannelPlanApBlacklistedChannels) UnmarshalJSON

func (dst *ChannelPlanApBlacklistedChannels) UnmarshalJSON(b []byte) error

type ChannelPlanCoupling

type ChannelPlanCoupling struct {
	Rssi   int    `json:"rssi,omitempty"`
	Source string `json:"source,omitempty"` // ^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2}).*$
	Target string `json:"target,omitempty"` // ^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2}).*$
}

func (*ChannelPlanCoupling) UnmarshalJSON

func (dst *ChannelPlanCoupling) UnmarshalJSON(b []byte) error

type ChannelPlanRadioTable

type ChannelPlanRadioTable struct {
	BackupChannel string `json:"backup_channel,omitempty"` // [0-9]|[1][0-4]|16|34|36|38|40|42|44|46|48|52|56|60|64|100|104|108|112|116|120|124|128|132|136|140|144|149|153|157|161|165|183|184|185|187|188|189|192|196|auto
	Channel       string `json:"channel,omitempty"`        // [0-9]|[1][0-4]|16|34|36|38|40|42|44|46|48|52|56|60|64|100|104|108|112|116|120|124|128|132|136|140|144|149|153|157|161|165|183|184|185|187|188|189|192|196|auto
	DeviceMAC     string `json:"device_mac,omitempty"`     // ^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})$
	Name          string `json:"name,omitempty"`           // [a-z]*[0-9]*
	TxPower       string `json:"tx_power,omitempty"`       // [\d]+|auto
	TxPowerMode   string `json:"tx_power_mode,omitempty"`  // auto|medium|high|low|custom
	Width         int    `json:"width,omitempty"`          // 20|40|80|160
}

func (*ChannelPlanRadioTable) UnmarshalJSON

func (dst *ChannelPlanRadioTable) UnmarshalJSON(b []byte) error

type ChannelPlanSatisfactionTable

type ChannelPlanSatisfactionTable struct {
	DeviceMAC    string  `json:"device_mac,omitempty"` // ^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})$
	Satisfaction float64 `json:"satisfaction,omitempty"`
}

func (*ChannelPlanSatisfactionTable) UnmarshalJSON

func (dst *ChannelPlanSatisfactionTable) UnmarshalJSON(b []byte) error

type ChannelPlanSiteBlacklistedChannels

type ChannelPlanSiteBlacklistedChannels struct {
	Channel   int `json:"channel,omitempty"`   // 36|38|40|42|44|46|48|52|56|60|64|100|104|108|112|116|120|124|128|132|136|140|144|149|153|157|161|165|183|184|185|187|188|189|192|196
	Timestamp int `json:"timestamp,omitempty"` // [1-9][0-9]{12}
}

func (*ChannelPlanSiteBlacklistedChannels) UnmarshalJSON

func (dst *ChannelPlanSiteBlacklistedChannels) UnmarshalJSON(b []byte) error

type Client

type Client struct {
	// single thread client calls for CSRF, etc.
	sync.Mutex
	// contains filtered or unexported fields
}

func (*Client) AdoptDevice

func (c *Client) AdoptDevice(ctx context.Context, site, mac string) error

func (*Client) BlockUserByMAC

func (c *Client) BlockUserByMAC(ctx context.Context, site, mac string) error

func (*Client) CSRFToken

func (c *Client) CSRFToken() string

func (*Client) CreateAPGroup

func (c *Client) CreateAPGroup(ctx context.Context, site string, d *APGroup) (*APGroup, error)

func (*Client) CreateAccount

func (c *Client) CreateAccount(ctx context.Context, site string, d *Account) (*Account, error)

func (*Client) CreateDevice

func (c *Client) CreateDevice(ctx context.Context, site string, d *Device) (*Device, error)

func (*Client) CreateDynamicDNS

func (c *Client) CreateDynamicDNS(ctx context.Context, site string, d *DynamicDNS) (*DynamicDNS, error)

func (*Client) CreateFirewallGroup

func (c *Client) CreateFirewallGroup(ctx context.Context, site string, d *FirewallGroup) (*FirewallGroup, error)

func (*Client) CreateFirewallRule

func (c *Client) CreateFirewallRule(ctx context.Context, site string, d *FirewallRule) (*FirewallRule, error)

func (*Client) CreateNetwork

func (c *Client) CreateNetwork(ctx context.Context, site string, d *Network) (*Network, error)

func (*Client) CreatePortForward

func (c *Client) CreatePortForward(ctx context.Context, site string, d *PortForward) (*PortForward, error)

func (*Client) CreatePortProfile

func (c *Client) CreatePortProfile(ctx context.Context, site string, d *PortProfile) (*PortProfile, error)

func (*Client) CreateRADIUSProfile

func (c *Client) CreateRADIUSProfile(ctx context.Context, site string, d *RADIUSProfile) (*RADIUSProfile, error)

func (*Client) CreateRouting

func (c *Client) CreateRouting(ctx context.Context, site string, d *Routing) (*Routing, error)

func (*Client) CreateSite

func (c *Client) CreateSite(ctx context.Context, description string) ([]Site, error)

func (*Client) CreateUser

func (c *Client) CreateUser(ctx context.Context, site string, d *User) (*User, error)

func (*Client) CreateUserGroup

func (c *Client) CreateUserGroup(ctx context.Context, site string, d *UserGroup) (*UserGroup, error)

func (*Client) CreateWLAN

func (c *Client) CreateWLAN(ctx context.Context, site string, d *WLAN) (*WLAN, error)

func (*Client) CreateWLANGroup

func (c *Client) CreateWLANGroup(ctx context.Context, site string, d *WLANGroup) (*WLANGroup, error)

func (*Client) DeleteAccount

func (c *Client) DeleteAccount(ctx context.Context, site, id string) error

func (*Client) DeleteDevice

func (c *Client) DeleteDevice(ctx context.Context, site, id string) error

func (*Client) DeleteDynamicDNS

func (c *Client) DeleteDynamicDNS(ctx context.Context, site, id string) error

func (*Client) DeleteFirewallGroup

func (c *Client) DeleteFirewallGroup(ctx context.Context, site, id string) error

func (*Client) DeleteFirewallRule

func (c *Client) DeleteFirewallRule(ctx context.Context, site, id string) error

func (*Client) DeleteNetwork

func (c *Client) DeleteNetwork(ctx context.Context, site, id, name string) error

func (*Client) DeletePortForward

func (c *Client) DeletePortForward(ctx context.Context, site, id string) error

func (*Client) DeletePortProfile

func (c *Client) DeletePortProfile(ctx context.Context, site, id string) error

func (*Client) DeleteRADIUSProfile

func (c *Client) DeleteRADIUSProfile(ctx context.Context, site, id string) error

func (*Client) DeleteRouting

func (c *Client) DeleteRouting(ctx context.Context, site, id string) error

func (*Client) DeleteSite

func (c *Client) DeleteSite(ctx context.Context, id string) ([]Site, error)

func (*Client) DeleteUserByMAC

func (c *Client) DeleteUserByMAC(ctx context.Context, site, mac string) error

func (*Client) DeleteUserGroup

func (c *Client) DeleteUserGroup(ctx context.Context, site, id string) error

func (*Client) DeleteWLAN

func (c *Client) DeleteWLAN(ctx context.Context, site, id string) error

func (*Client) DeleteWLANGroup

func (c *Client) DeleteWLANGroup(ctx context.Context, site, id string) error

func (*Client) ForgetDevice

func (c *Client) ForgetDevice(ctx context.Context, site, mac string) error

func (*Client) GetAccount

func (c *Client) GetAccount(ctx context.Context, site, id string) (*Account, error)

func (*Client) GetDevice

func (c *Client) GetDevice(ctx context.Context, site, id string) (*Device, error)

func (*Client) GetDeviceByMAC

func (c *Client) GetDeviceByMAC(ctx context.Context, site, mac string) (*Device, error)

func (*Client) GetDynamicDNS

func (c *Client) GetDynamicDNS(ctx context.Context, site, id string) (*DynamicDNS, error)

func (*Client) GetFirewallGroup

func (c *Client) GetFirewallGroup(ctx context.Context, site, id string) (*FirewallGroup, error)

func (*Client) GetFirewallRule

func (c *Client) GetFirewallRule(ctx context.Context, site, id string) (*FirewallRule, error)

func (*Client) GetNetwork

func (c *Client) GetNetwork(ctx context.Context, site, id string) (*Network, error)

func (*Client) GetPortForward

func (c *Client) GetPortForward(ctx context.Context, site, id string) (*PortForward, error)

func (*Client) GetPortProfile

func (c *Client) GetPortProfile(ctx context.Context, site, id string) (*PortProfile, error)

func (*Client) GetRADIUSProfile

func (c *Client) GetRADIUSProfile(ctx context.Context, site, id string) (*RADIUSProfile, error)

func (*Client) GetRouting

func (c *Client) GetRouting(ctx context.Context, site, id string) (*Routing, error)

func (*Client) GetSetting

func (c *Client) GetSetting(ctx context.Context, site, key string) (*Setting, interface{}, error)

func (*Client) GetSettingMgmt

func (c *Client) GetSettingMgmt(ctx context.Context, site string) (*SettingMgmt, error)

func (*Client) GetSettingRadius

func (c *Client) GetSettingRadius(ctx context.Context, site string) (*SettingRadius, error)

func (*Client) GetSettingUsg

func (c *Client) GetSettingUsg(ctx context.Context, site string) (*SettingUsg, error)

func (*Client) GetSite

func (c *Client) GetSite(ctx context.Context, id string) (*Site, error)

func (*Client) GetUser

func (c *Client) GetUser(ctx context.Context, site, id string) (*User, error)

GetUser returns information about a user from the REST endpoint. The GetUserByMAC method returns slightly different information (for example the IP) as it uses a different endpoint.

func (*Client) GetUserByMAC

func (c *Client) GetUserByMAC(ctx context.Context, site, mac string) (*User, error)

GetUserByMAC returns slightly different information than GetUser, as they use separate endpoints for their lookups. Specifically IP is only returned by this method.

func (*Client) GetUserGroup

func (c *Client) GetUserGroup(ctx context.Context, site, id string) (*UserGroup, error)

func (*Client) GetWLAN

func (c *Client) GetWLAN(ctx context.Context, site, id string) (*WLAN, error)

func (*Client) GetWLANGroup

func (c *Client) GetWLANGroup(ctx context.Context, site, id string) (*WLANGroup, error)

func (*Client) KickUserByMAC

func (c *Client) KickUserByMAC(ctx context.Context, site, mac string) error

func (*Client) ListAPGroup

func (c *Client) ListAPGroup(ctx context.Context, site string) ([]APGroup, error)

func (*Client) ListAccount

func (c *Client) ListAccount(ctx context.Context, site string) ([]Account, error)

func (*Client) ListDevice

func (c *Client) ListDevice(ctx context.Context, site string) ([]Device, error)

func (*Client) ListDynamicDNS

func (c *Client) ListDynamicDNS(ctx context.Context, site string) ([]DynamicDNS, error)

func (*Client) ListFirewallGroup

func (c *Client) ListFirewallGroup(ctx context.Context, site string) ([]FirewallGroup, error)

func (*Client) ListFirewallRule

func (c *Client) ListFirewallRule(ctx context.Context, site string) ([]FirewallRule, error)

func (*Client) ListNetwork

func (c *Client) ListNetwork(ctx context.Context, site string) ([]Network, error)

func (*Client) ListPortForward

func (c *Client) ListPortForward(ctx context.Context, site string) ([]PortForward, error)

func (*Client) ListPortProfile

func (c *Client) ListPortProfile(ctx context.Context, site string) ([]PortProfile, error)

func (*Client) ListRADIUSProfile

func (c *Client) ListRADIUSProfile(ctx context.Context, site string) ([]RADIUSProfile, error)

func (*Client) ListRouting

func (c *Client) ListRouting(ctx context.Context, site string) ([]Routing, error)

func (*Client) ListSites

func (c *Client) ListSites(ctx context.Context) ([]Site, error)

func (*Client) ListUser

func (c *Client) ListUser(ctx context.Context, site string) ([]User, error)

func (*Client) ListUserGroup

func (c *Client) ListUserGroup(ctx context.Context, site string) ([]UserGroup, error)

func (*Client) ListWLAN

func (c *Client) ListWLAN(ctx context.Context, site string) ([]WLAN, error)

func (*Client) ListWLANGroup

func (c *Client) ListWLANGroup(ctx context.Context, site string) ([]WLANGroup, error)

func (*Client) Login

func (c *Client) Login(ctx context.Context, user, pass string) error

func (*Client) OverrideUserFingerprint

func (c *Client) OverrideUserFingerprint(ctx context.Context, site, mac string, devIdOveride int) error

func (*Client) ReorderFirewallRules

func (c *Client) ReorderFirewallRules(ctx context.Context, site, ruleset string, reorder []FirewallRuleIndexUpdate) error

func (*Client) SetBaseURL

func (c *Client) SetBaseURL(base string) error

func (*Client) SetHTTPClient

func (c *Client) SetHTTPClient(hc *http.Client) error

func (*Client) UnblockUserByMAC

func (c *Client) UnblockUserByMAC(ctx context.Context, site, mac string) error

func (*Client) UpdateAccount

func (c *Client) UpdateAccount(ctx context.Context, site string, d *Account) (*Account, error)

func (*Client) UpdateDevice

func (c *Client) UpdateDevice(ctx context.Context, site string, d *Device) (*Device, error)

func (*Client) UpdateDynamicDNS

func (c *Client) UpdateDynamicDNS(ctx context.Context, site string, d *DynamicDNS) (*DynamicDNS, error)

func (*Client) UpdateFirewallGroup

func (c *Client) UpdateFirewallGroup(ctx context.Context, site string, d *FirewallGroup) (*FirewallGroup, error)

func (*Client) UpdateFirewallRule

func (c *Client) UpdateFirewallRule(ctx context.Context, site string, d *FirewallRule) (*FirewallRule, error)

func (*Client) UpdateNetwork

func (c *Client) UpdateNetwork(ctx context.Context, site string, d *Network) (*Network, error)

func (*Client) UpdatePortForward

func (c *Client) UpdatePortForward(ctx context.Context, site string, d *PortForward) (*PortForward, error)

func (*Client) UpdatePortProfile

func (c *Client) UpdatePortProfile(ctx context.Context, site string, d *PortProfile) (*PortProfile, error)

func (*Client) UpdateRADIUSProfile

func (c *Client) UpdateRADIUSProfile(ctx context.Context, site string, d *RADIUSProfile) (*RADIUSProfile, error)

func (*Client) UpdateRouting

func (c *Client) UpdateRouting(ctx context.Context, site string, d *Routing) (*Routing, error)

func (*Client) UpdateSettingMgmt

func (c *Client) UpdateSettingMgmt(ctx context.Context, site string, d *SettingMgmt) (*SettingMgmt, error)

func (*Client) UpdateSettingRadius

func (c *Client) UpdateSettingRadius(ctx context.Context, site string, d *SettingRadius) (*SettingRadius, error)

func (*Client) UpdateSettingUsg

func (c *Client) UpdateSettingUsg(ctx context.Context, site string, d *SettingUsg) (*SettingUsg, error)

func (*Client) UpdateSite

func (c *Client) UpdateSite(ctx context.Context, name, description string) ([]Site, error)

func (*Client) UpdateUser

func (c *Client) UpdateUser(ctx context.Context, site string, d *User) (*User, error)

func (*Client) UpdateUserGroup

func (c *Client) UpdateUserGroup(ctx context.Context, site string, d *UserGroup) (*UserGroup, error)

func (*Client) UpdateWLAN

func (c *Client) UpdateWLAN(ctx context.Context, site string, d *WLAN) (*WLAN, error)

func (*Client) UpdateWLANGroup

func (c *Client) UpdateWLANGroup(ctx context.Context, site string, d *WLANGroup) (*WLANGroup, error)

func (*Client) Version

func (c *Client) Version() string

type DHCPOption

type DHCPOption struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Code   string `json:"code,omitempty"` // ^(?!(?:15|42|43|44|51|66|67|252)$)([7-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])$
	Name   string `json:"name,omitempty"` // ^[A-Za-z0-9-_]{1,25}$
	Signed bool   `json:"signed"`
	Type   string `json:"type,omitempty"`  // ^(boolean|hexarray|integer|ipaddress|macaddress|text)$
	Width  int    `json:"width,omitempty"` // ^(8|16|32)$
}

func (*DHCPOption) UnmarshalJSON

func (dst *DHCPOption) UnmarshalJSON(b []byte) error

type Dashboard

type Dashboard struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	ControllerVersion string             `json:"controller_version,omitempty"`
	Desc              string             `json:"desc,omitempty"`
	IsPublic          bool               `json:"is_public"`
	Modules           []DashboardModules `json:"modules,omitempty"`
	Name              string             `json:"name,omitempty"`
}

func (*Dashboard) UnmarshalJSON

func (dst *Dashboard) UnmarshalJSON(b []byte) error

type DashboardModules

type DashboardModules struct {
	Config       string `json:"config,omitempty"`
	ID           string `json:"id"`
	ModuleID     string `json:"module_id"`
	Restrictions string `json:"restrictions,omitempty"`
}

func (*DashboardModules) UnmarshalJSON

func (dst *DashboardModules) UnmarshalJSON(b []byte) error

type Device

type Device struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	MAC string `json:"mac,omitempty"`

	Adopted                     bool                      `json:"adopted"`
	AtfEnabled                  bool                      `json:"atf_enabled,omitempty"`
	BandsteeringMode            string                    `json:"bandsteering_mode,omitempty"` // off|equal|prefer_5g
	BaresipAuthUser             string                    `json:"baresip_auth_user,omitempty"` // ^\+?[a-zA-Z0-9_.\-!~*'()]*
	BaresipEnabled              bool                      `json:"baresip_enabled,omitempty"`
	BaresipExtension            string                    `json:"baresip_extension,omitempty"` // ^\+?[a-zA-Z0-9_.\-!~*'()]*
	ConfigNetwork               DeviceConfigNetwork       `json:"config_network,omitempty"`
	DPIEnabled                  bool                      `json:"dpi_enabled,omitempty"`
	Disabled                    bool                      `json:"disabled,omitempty"`
	Dot1XFallbackNetworkID      string                    `json:"dot1x_fallback_networkconf_id,omitempty"` // [\d\w]+|
	Dot1XPortctrlEnabled        bool                      `json:"dot1x_portctrl_enabled,omitempty"`
	EtherLighting               DeviceEtherLighting       `json:"ether_lighting,omitempty"`
	EthernetOverrides           []DeviceEthernetOverrides `json:"ethernet_overrides,omitempty"`
	FlowctrlEnabled             bool                      `json:"flowctrl_enabled,omitempty"`
	GatewayVrrpMode             string                    `json:"gateway_vrrp_mode,omitempty"`     // primary|secondary
	GatewayVrrpPriority         int                       `json:"gateway_vrrp_priority,omitempty"` // [1-9][0-9]|[1-9][0-9][0-9]
	GreenApEnabled              bool                      `json:"green_ap_enabled,omitempty"`
	HeightInMeters              float64                   `json:"heightInMeters,omitempty"`
	Hostname                    string                    `json:"hostname,omitempty"` // .{1,128}
	JumboframeEnabled           bool                      `json:"jumboframe_enabled,omitempty"`
	LcmBrightness               int                       `json:"lcm_brightness,omitempty"` // [1-9]|[1-9][0-9]|100
	LcmBrightnessOverride       bool                      `json:"lcm_brightness_override,omitempty"`
	LcmIDleTimeout              int                       `json:"lcm_idle_timeout,omitempty"` // [1-9][0-9]|[1-9][0-9][0-9]|[1-2][0-9][0-9][0-9]|3[0-5][0-9][0-9]|3600
	LcmIDleTimeoutOverride      bool                      `json:"lcm_idle_timeout_override,omitempty"`
	LcmNightModeBegins          string                    `json:"lcm_night_mode_begins,omitempty"`    // (^$)|(^(0[1-9])|(1[0-9])|(2[0-3])):([0-5][0-9]$)
	LcmNightModeEnds            string                    `json:"lcm_night_mode_ends,omitempty"`      // (^$)|(^(0[1-9])|(1[0-9])|(2[0-3])):([0-5][0-9]$)
	LcmOrientationOverride      int                       `json:"lcm_orientation_override,omitempty"` // 0|90|180|270
	LcmSettingsRestrictedAccess bool                      `json:"lcm_settings_restricted_access,omitempty"`
	LcmTrackerEnabled           bool                      `json:"lcm_tracker_enabled,omitempty"`
	LcmTrackerSeed              string                    `json:"lcm_tracker_seed,omitempty"`              // .{0,50}
	LedOverride                 string                    `json:"led_override,omitempty"`                  // default|on|off
	LedOverrideColor            string                    `json:"led_override_color,omitempty"`            // ^#(?:[0-9a-fA-F]{3}){1,2}$
	LedOverrideColorBrightness  int                       `json:"led_override_color_brightness,omitempty"` // ^[0-9][0-9]?$|^100$
	Locked                      bool                      `json:"locked,omitempty"`
	LowpfmodeOverride           bool                      `json:"lowpfmode_override,omitempty"`
	LteApn                      string                    `json:"lte_apn,omitempty"`       // .{1,128}
	LteAuthType                 string                    `json:"lte_auth_type,omitempty"` // PAP|CHAP|PAP-CHAP|NONE
	LteDataLimitEnabled         bool                      `json:"lte_data_limit_enabled,omitempty"`
	LteDataWarningEnabled       bool                      `json:"lte_data_warning_enabled,omitempty"`
	LteExtAnt                   bool                      `json:"lte_ext_ant,omitempty"`
	LteHardLimit                int                       `json:"lte_hard_limit,omitempty"`
	LtePassword                 string                    `json:"lte_password,omitempty"`
	LtePoe                      bool                      `json:"lte_poe,omitempty"`
	LteRoamingAllowed           bool                      `json:"lte_roaming_allowed,omitempty"`
	LteSimPin                   int                       `json:"lte_sim_pin,omitempty"`
	LteSoftLimit                int                       `json:"lte_soft_limit,omitempty"`
	LteUsername                 string                    `json:"lte_username,omitempty"`
	MapID                       string                    `json:"map_id,omitempty"`
	MeshStaVapEnabled           bool                      `json:"mesh_sta_vap_enabled,omitempty"`
	MgmtNetworkID               string                    `json:"mgmt_network_id,omitempty"` // [\d\w]+
	Model                       string                    `json:"model,omitempty"`
	Name                        string                    `json:"name,omitempty"`                  // .{0,128}
	OutdoorModeOverride         string                    `json:"outdoor_mode_override,omitempty"` // default|on|off
	OutletEnabled               bool                      `json:"outlet_enabled,omitempty"`
	OutletOverrides             []DeviceOutletOverrides   `json:"outlet_overrides,omitempty"`
	OutletPowerCycleEnabled     bool                      `json:"outlet_power_cycle_enabled,omitempty"`
	PeerToPeerMode              string                    `json:"peer_to_peer_mode,omitempty"` // ap|sta
	PoeMode                     string                    `json:"poe_mode,omitempty"`          // auto|pasv24|passthrough|off
	PortOverrides               []DevicePortOverrides     `json:"port_overrides"`
	PowerSourceCtrl             string                    `json:"power_source_ctrl,omitempty"`        // auto|8023af|8023at|8023bt-type3|8023bt-type4|pasv24|poe-injector|ac|adapter|dc|rps
	PowerSourceCtrlBudget       int                       `json:"power_source_ctrl_budget,omitempty"` // [0-9]|[1-9][0-9]|[1-9][0-9][0-9]
	PowerSourceCtrlEnabled      bool                      `json:"power_source_ctrl_enabled,omitempty"`
	PtpApMAC                    string                    `json:"ptp_ap_mac,omitempty"` // ^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$
	RADIUSProfileID             string                    `json:"radiusprofile_id,omitempty"`
	RadioTable                  []DeviceRadioTable        `json:"radio_table,omitempty"`
	ResetbtnEnabled             string                    `json:"resetbtn_enabled,omitempty"` // on|off
	RpsOverride                 DeviceRpsOverride         `json:"rps_override,omitempty"`
	SnmpContact                 string                    `json:"snmp_contact,omitempty"`  // .{0,255}
	SnmpLocation                string                    `json:"snmp_location,omitempty"` // .{0,255}
	State                       DeviceState               `json:"state"`
	StationMode                 string                    `json:"station_mode,omitempty"` // ptp|wifi
	StpPriority                 string                    `json:"stp_priority,omitempty"` // 0|4096|8192|12288|16384|20480|24576|28672|32768|36864|40960|45056|49152|53248|57344|61440
	StpVersion                  string                    `json:"stp_version,omitempty"`  // stp|rstp|disabled
	SwitchVLANEnabled           bool                      `json:"switch_vlan_enabled,omitempty"`
	Type                        string                    `json:"type,omitempty"`
	UbbPairName                 string                    `json:"ubb_pair_name,omitempty"` // .{1,128}
	Volume                      int                       `json:"volume,omitempty"`        // [0-9]|[1-9][0-9]|100
	X                           float64                   `json:"x,omitempty"`
	XBaresipPassword            string                    `json:"x_baresip_password,omitempty"` // ^[a-zA-Z0-9_.\-!~*'()]*
	Y                           float64                   `json:"y,omitempty"`
}

func (*Device) UnmarshalJSON

func (dst *Device) UnmarshalJSON(b []byte) error

type DeviceConfigNetwork

type DeviceConfigNetwork struct {
	BondingEnabled bool   `json:"bonding_enabled,omitempty"`
	DNS1           string `json:"dns1,omitempty"` // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$|^$
	DNS2           string `json:"dns2,omitempty"` // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$|^$
	DNSsuffix      string `json:"dnssuffix,omitempty"`
	Gateway        string `json:"gateway,omitempty"` // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^$
	IP             string `json:"ip,omitempty"`      // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$
	Netmask        string `json:"netmask,omitempty"` // ^((128|192|224|240|248|252|254)\.0\.0\.0)|(255\.(((0|128|192|224|240|248|252|254)\.0\.0)|(255\.(((0|128|192|224|240|248|252|254)\.0)|255\.(0|128|192|224|240|248|252|254)))))$
	Type           string `json:"type,omitempty"`    // dhcp|static
}

func (*DeviceConfigNetwork) UnmarshalJSON

func (dst *DeviceConfigNetwork) UnmarshalJSON(b []byte) error

type DeviceEtherLighting

type DeviceEtherLighting struct {
	Behavior   string `json:"behavior,omitempty"`   // breath|steady
	Brightness int    `json:"brightness,omitempty"` // [1-9]|[1-9][0-9]|100
	Mode       string `json:"mode,omitempty"`       // speed|network
}

func (*DeviceEtherLighting) UnmarshalJSON

func (dst *DeviceEtherLighting) UnmarshalJSON(b []byte) error

type DeviceEthernetOverrides

type DeviceEthernetOverrides struct {
	Ifname       string `json:"ifname,omitempty"`       // eth[0-9]{1,2}
	NetworkGroup string `json:"networkgroup,omitempty"` // LAN[2-8]?|WAN[2]?
}

func (*DeviceEthernetOverrides) UnmarshalJSON

func (dst *DeviceEthernetOverrides) UnmarshalJSON(b []byte) error

type DeviceOutletOverrides

type DeviceOutletOverrides struct {
	CycleEnabled bool   `json:"cycle_enabled,omitempty"`
	Index        int    `json:"index,omitempty"`
	Name         string `json:"name,omitempty"` // .{0,128}
	RelayState   bool   `json:"relay_state,omitempty"`
}

func (*DeviceOutletOverrides) UnmarshalJSON

func (dst *DeviceOutletOverrides) UnmarshalJSON(b []byte) error

type DevicePortOverrides

type DevicePortOverrides struct {
	AggregateNumPorts            int              `json:"aggregate_num_ports,omitempty"` // [1-8]
	Autoneg                      bool             `json:"autoneg,omitempty"`
	Dot1XCtrl                    string           `json:"dot1x_ctrl,omitempty"`             // auto|force_authorized|force_unauthorized|mac_based|multi_host
	Dot1XIDleTimeout             int              `json:"dot1x_idle_timeout,omitempty"`     // [0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]
	EgressRateLimitKbps          int              `json:"egress_rate_limit_kbps,omitempty"` // 6[4-9]|[7-9][0-9]|[1-9][0-9]{2,6}
	EgressRateLimitKbpsEnabled   bool             `json:"egress_rate_limit_kbps_enabled,omitempty"`
	ExcludedNetworkIDs           []string         `json:"excluded_networkconf_ids,omitempty"`
	FecMode                      string           `json:"fec_mode,omitempty"` // rs-fec|fc-fec|default|disabled
	Forward                      string           `json:"forward,omitempty"`  // all|native|customize|disabled
	FullDuplex                   bool             `json:"full_duplex,omitempty"`
	Isolation                    bool             `json:"isolation,omitempty"`
	LldpmedEnabled               bool             `json:"lldpmed_enabled,omitempty"`
	LldpmedNotifyEnabled         bool             `json:"lldpmed_notify_enabled,omitempty"`
	MirrorPortIDX                int              `json:"mirror_port_idx,omitempty"` // [1-9]|[1-4][0-9]|5[0-6]
	MulticastRouterNetworkIDs    []string         `json:"multicast_router_networkconf_ids,omitempty"`
	NATiveNetworkID              string           `json:"native_networkconf_id,omitempty"`
	Name                         string           `json:"name,omitempty"`     // .{0,128}
	OpMode                       string           `json:"op_mode,omitempty"`  // switch|mirror|aggregate
	PoeMode                      string           `json:"poe_mode,omitempty"` // auto|pasv24|passthrough|off
	PortIDX                      int              `json:"port_idx,omitempty"` // [1-9]|[1-4][0-9]|5[0-6]
	PortKeepaliveEnabled         bool             `json:"port_keepalive_enabled,omitempty"`
	PortProfileID                string           `json:"portconf_id,omitempty"` // [\d\w]+
	PortSecurityEnabled          bool             `json:"port_security_enabled,omitempty"`
	PortSecurityMACAddress       []string         `json:"port_security_mac_address,omitempty"` // ^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$
	PriorityQueue1Level          int              `json:"priority_queue1_level,omitempty"`     // [0-9]|[1-9][0-9]|100
	PriorityQueue2Level          int              `json:"priority_queue2_level,omitempty"`     // [0-9]|[1-9][0-9]|100
	PriorityQueue3Level          int              `json:"priority_queue3_level,omitempty"`     // [0-9]|[1-9][0-9]|100
	PriorityQueue4Level          int              `json:"priority_queue4_level,omitempty"`     // [0-9]|[1-9][0-9]|100
	QOSProfile                   DeviceQOSProfile `json:"qos_profile,omitempty"`
	SettingPreference            string           `json:"setting_preference,omitempty"` // auto|manual
	Speed                        int              `json:"speed,omitempty"`              // 10|100|1000|2500|5000|10000|20000|25000|40000|50000|100000
	StormctrlBroadcastastEnabled bool             `json:"stormctrl_bcast_enabled,omitempty"`
	StormctrlBroadcastastLevel   int              `json:"stormctrl_bcast_level,omitempty"` // [0-9]|[1-9][0-9]|100
	StormctrlBroadcastastRate    int              `json:"stormctrl_bcast_rate,omitempty"`  // [0-9]|[1-9][0-9]{1,6}|1[0-3][0-9]{6}|14[0-7][0-9]{5}|148[0-7][0-9]{4}|14880000
	StormctrlMcastEnabled        bool             `json:"stormctrl_mcast_enabled,omitempty"`
	StormctrlMcastLevel          int              `json:"stormctrl_mcast_level,omitempty"` // [0-9]|[1-9][0-9]|100
	StormctrlMcastRate           int              `json:"stormctrl_mcast_rate,omitempty"`  // [0-9]|[1-9][0-9]{1,6}|1[0-3][0-9]{6}|14[0-7][0-9]{5}|148[0-7][0-9]{4}|14880000
	StormctrlType                string           `json:"stormctrl_type,omitempty"`        // level|rate
	StormctrlUcastEnabled        bool             `json:"stormctrl_ucast_enabled,omitempty"`
	StormctrlUcastLevel          int              `json:"stormctrl_ucast_level,omitempty"` // [0-9]|[1-9][0-9]|100
	StormctrlUcastRate           int              `json:"stormctrl_ucast_rate,omitempty"`  // [0-9]|[1-9][0-9]{1,6}|1[0-3][0-9]{6}|14[0-7][0-9]{5}|148[0-7][0-9]{4}|14880000
	StpPortMode                  bool             `json:"stp_port_mode,omitempty"`
	TaggedVLANMgmt               string           `json:"tagged_vlan_mgmt,omitempty"` // auto|block_all|custom
	VoiceNetworkID               string           `json:"voice_networkconf_id,omitempty"`
}

func (*DevicePortOverrides) UnmarshalJSON

func (dst *DevicePortOverrides) UnmarshalJSON(b []byte) error

type DeviceQOSMarking

type DeviceQOSMarking struct {
	CosCode          int `json:"cos_code,omitempty"`           // [0-7]
	DscpCode         int `json:"dscp_code,omitempty"`          // 0|8|16|24|32|40|48|56|10|12|14|18|20|22|26|28|30|34|36|38|44|46
	IPPrecedenceCode int `json:"ip_precedence_code,omitempty"` // [0-7]
	Queue            int `json:"queue,omitempty"`              // [0-7]
}

func (*DeviceQOSMarking) UnmarshalJSON

func (dst *DeviceQOSMarking) UnmarshalJSON(b []byte) error

type DeviceQOSMatching

type DeviceQOSMatching struct {
	CosCode          int    `json:"cos_code,omitempty"`           // [0-7]
	DscpCode         int    `json:"dscp_code,omitempty"`          // [0-9]|[1-5][0-9]|6[0-3]
	DstPort          int    `json:"dst_port,omitempty"`           // [0-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-4]|65535
	IPPrecedenceCode int    `json:"ip_precedence_code,omitempty"` // [0-7]
	Protocol         string `json:"protocol,omitempty"`           // ([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|ah|ax.25|dccp|ddp|egp|eigrp|encap|esp|etherip|fc|ggp|gre|hip|hmp|icmp|idpr-cmtp|idrp|igmp|igp|ip|ipcomp|ipencap|ipip|ipv6|ipv6-frag|ipv6-icmp|ipv6-nonxt|ipv6-opts|ipv6-route|isis|iso-tp4|l2tp|manet|mobility-header|mpls-in-ip|ospf|pim|pup|rdp|rohc|rspf|rsvp|sctp|shim6|skip|st|tcp|udp|udplite|vmtp|vrrp|wesp|xns-idp|xtp
	SrcPort          int    `json:"src_port,omitempty"`           // [0-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-4]|65535
}

func (*DeviceQOSMatching) UnmarshalJSON

func (dst *DeviceQOSMatching) UnmarshalJSON(b []byte) error

type DeviceQOSPolicies

type DeviceQOSPolicies struct {
	QOSMarking  DeviceQOSMarking  `json:"qos_marking,omitempty"`
	QOSMatching DeviceQOSMatching `json:"qos_matching,omitempty"`
}

func (*DeviceQOSPolicies) UnmarshalJSON

func (dst *DeviceQOSPolicies) UnmarshalJSON(b []byte) error

type DeviceQOSProfile

type DeviceQOSProfile struct {
	QOSPolicies    []DeviceQOSPolicies `json:"qos_policies,omitempty"`
	QOSProfileMode string              `json:"qos_profile_mode,omitempty"` // custom|unifi_play|aes67_audio|crestron_audio_video|dante_audio|ndi_aes67_audio|ndi_dante_audio|qsys_audio_video|qsys_video_dante_audio|sdvoe_aes67_audio|sdvoe_dante_audio|shure_audio
}

func (*DeviceQOSProfile) UnmarshalJSON

func (dst *DeviceQOSProfile) UnmarshalJSON(b []byte) error

type DeviceRadioIDentifiers

type DeviceRadioIDentifiers struct {
	DeviceID  string `json:"device_id,omitempty"`
	RadioName string `json:"radio_name,omitempty"`
}

func (*DeviceRadioIDentifiers) UnmarshalJSON

func (dst *DeviceRadioIDentifiers) UnmarshalJSON(b []byte) error

type DeviceRadioTable

type DeviceRadioTable struct {
	AntennaGain                int                      `json:"antenna_gain,omitempty"`   // ^-?([0-9]|[1-9][0-9])
	AntennaID                  int                      `json:"antenna_id,omitempty"`     // -1|[0-9]
	BackupChannel              string                   `json:"backup_channel,omitempty"` // [0-9]|[1][0-4]|4.5|5|16|17|21|25|29|33|34|36|37|38|40|41|42|44|45|46|48|49|52|53|56|57|60|61|64|65|69|73|77|81|85|89|93|97|100|101|104|105|108|109|112|113|117|116|120|121|124|125|128|129|132|133|136|137|140|141|144|145|149|153|157|161|165|169|173|177|181|183|184|185|187|188|189|192|193|196|197|201|205|209|213|217|221|225|229|233|auto
	Channel                    string                   `json:"channel,omitempty"`        // [0-9]|[1][0-4]|4.5|5|16|17|21|25|29|33|34|36|37|38|40|41|42|44|45|46|48|49|52|53|56|57|60|61|64|65|69|73|77|81|85|89|93|97|100|101|104|105|108|109|112|113|117|116|120|121|124|125|128|129|132|133|136|137|140|141|144|145|149|153|157|161|165|169|173|177|181|183|184|185|187|188|189|192|193|196|197|201|205|209|213|217|221|225|229|233|auto
	ChannelOptimizationEnabled bool                     `json:"channel_optimization_enabled,omitempty"`
	HardNoiseFloorEnabled      bool                     `json:"hard_noise_floor_enabled,omitempty"`
	Ht                         int                      `json:"ht,omitempty"` // 20|40|80|160|240|320|1080|2160|4320
	LoadbalanceEnabled         bool                     `json:"loadbalance_enabled,omitempty"`
	Maxsta                     int                      `json:"maxsta,omitempty"`   // [1-9]|[1-9][0-9]|1[0-9]{2}|200|^$
	MinRssi                    int                      `json:"min_rssi,omitempty"` // ^-(6[7-9]|[7-8][0-9]|90)$
	MinRssiEnabled             bool                     `json:"min_rssi_enabled,omitempty"`
	Name                       string                   `json:"name,omitempty"`
	Radio                      string                   `json:"radio,omitempty"` // ng|na|ad|6e
	RadioIDentifiers           []DeviceRadioIDentifiers `json:"radio_identifiers,omitempty"`
	SensLevel                  int                      `json:"sens_level,omitempty"` // ^-([5-8][0-9]|90)$
	SensLevelEnabled           bool                     `json:"sens_level_enabled,omitempty"`
	TxPower                    string                   `json:"tx_power,omitempty"`      // [\d]+|auto
	TxPowerMode                string                   `json:"tx_power_mode,omitempty"` // auto|medium|high|low|custom
	VwireEnabled               bool                     `json:"vwire_enabled,omitempty"`
}

func (*DeviceRadioTable) UnmarshalJSON

func (dst *DeviceRadioTable) UnmarshalJSON(b []byte) error

type DeviceRpsOverride

type DeviceRpsOverride struct {
	PowerManagementMode string               `json:"power_management_mode,omitempty"` // dynamic|static
	RpsPortTable        []DeviceRpsPortTable `json:"rps_port_table,omitempty"`
}

func (*DeviceRpsOverride) UnmarshalJSON

func (dst *DeviceRpsOverride) UnmarshalJSON(b []byte) error

type DeviceRpsPortTable

type DeviceRpsPortTable struct {
	Name     string `json:"name,omitempty"`      // .{0,32}
	PortIDX  int    `json:"port_idx,omitempty"`  // [1-8]
	PortMode string `json:"port_mode,omitempty"` // auto|force_active|manual|disabled
}

func (*DeviceRpsPortTable) UnmarshalJSON

func (dst *DeviceRpsPortTable) UnmarshalJSON(b []byte) error

type DeviceState

type DeviceState int
const (
	DeviceStateUnknown          DeviceState = 0
	DeviceStateConnected        DeviceState = 1
	DeviceStatePending          DeviceState = 2
	DeviceStateFirmwareMismatch DeviceState = 3
	DeviceStateUpgrading        DeviceState = 4
	DeviceStateProvisioning     DeviceState = 5
	DeviceStateHeartbeatMissed  DeviceState = 6
	DeviceStateAdopting         DeviceState = 7
	DeviceStateDeleting         DeviceState = 8
	DeviceStateInformError      DeviceState = 9
	DeviceStateAdoptFailed      DeviceState = 10
	DeviceStateIsolated         DeviceState = 11
)

func (DeviceState) String

func (i DeviceState) String() string

type DpiApp

type DpiApp struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Apps           []int  `json:"apps,omitempty"`
	Blocked        bool   `json:"blocked"`
	Cats           []int  `json:"cats,omitempty"`
	Enabled        bool   `json:"enabled"`
	Log            bool   `json:"log"`
	Name           string `json:"name,omitempty"`              // .{1,128}
	QOSRateMaxDown int    `json:"qos_rate_max_down,omitempty"` // -1|[2-9]|[1-9][0-9]{1,4}|100000|10[0-1][0-9]{3}|102[0-3][0-9]{2}|102400
	QOSRateMaxUp   int    `json:"qos_rate_max_up,omitempty"`   // -1|[2-9]|[1-9][0-9]{1,4}|100000|10[0-1][0-9]{3}|102[0-3][0-9]{2}|102400
}

func (*DpiApp) UnmarshalJSON

func (dst *DpiApp) UnmarshalJSON(b []byte) error

type DpiGroup

type DpiGroup struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	DPIappIDs []string `json:"dpiapp_ids,omitempty"` // [\d\w]+
	Enabled   bool     `json:"enabled"`
	Name      string   `json:"name,omitempty"` // .{1,128}
}

func (*DpiGroup) UnmarshalJSON

func (dst *DpiGroup) UnmarshalJSON(b []byte) error

type DynamicDNS

type DynamicDNS struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	CustomService string   `json:"custom_service,omitempty"` // ^[^"' ]+$
	HostName      string   `json:"host_name,omitempty"`      // ^[^"' ]+$
	Interface     string   `json:"interface,omitempty"`      // wan|wan2
	Login         string   `json:"login,omitempty"`          // ^[^"' ]+$
	Options       []string `json:"options,omitempty"`        // ^[^"' ]+$
	Server        string   `json:"server"`                   // ^[^"' ]+$|^$
	Service       string   `json:"service,omitempty"`        // afraid|changeip|cloudflare|cloudxns|ddnss|dhis|dnsexit|dnsomatic|dnspark|dnspod|dslreports|dtdns|duckdns|duiadns|dyn|dyndns|dynv6|easydns|freemyip|googledomains|loopia|namecheap|noip|nsupdate|ovh|sitelutions|spdyn|strato|tunnelbroker|zoneedit|custom
	XPassword     string   `json:"x_password,omitempty"`     // ^[^"' ]+$
}

func (*DynamicDNS) UnmarshalJSON

func (dst *DynamicDNS) UnmarshalJSON(b []byte) error

type FirewallGroup

type FirewallGroup struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	GroupMembers []string `json:"group_members,omitempty"`
	GroupType    string   `json:"group_type,omitempty"` // address-group|port-group|ipv6-address-group
	Name         string   `json:"name,omitempty"`       // .{1,64}
}

func (*FirewallGroup) UnmarshalJSON

func (dst *FirewallGroup) UnmarshalJSON(b []byte) error

type FirewallRule

type FirewallRule struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Action                string   `json:"action,omitempty"` // drop|reject|accept
	DstAddress            string   `json:"dst_address,omitempty"`
	DstAddressIPV6        string   `json:"dst_address_ipv6,omitempty"`
	DstFirewallGroupIDs   []string `json:"dst_firewallgroup_ids,omitempty"` // [\d\w]+
	DstNetworkID          string   `json:"dst_networkconf_id"`              // [\d\w]+|^$
	DstNetworkType        string   `json:"dst_networkconf_type,omitempty"`  // ADDRv4|NETv4
	DstPort               string   `json:"dst_port,omitempty"`
	Enabled               bool     `json:"enabled"`
	ICMPTypename          string   `json:"icmp_typename"`   // ^$|address-mask-reply|address-mask-request|any|communication-prohibited|destination-unreachable|echo-reply|echo-request|fragmentation-needed|host-precedence-violation|host-prohibited|host-redirect|host-unknown|host-unreachable|ip-header-bad|network-prohibited|network-redirect|network-unknown|network-unreachable|parameter-problem|port-unreachable|precedence-cutoff|protocol-unreachable|redirect|required-option-missing|router-advertisement|router-solicitation|source-quench|source-route-failed|time-exceeded|timestamp-reply|timestamp-request|TOS-host-redirect|TOS-host-unreachable|TOS-network-redirect|TOS-network-unreachable|ttl-zero-during-reassembly|ttl-zero-during-transit
	ICMPv6Typename        string   `json:"icmpv6_typename"` // ^$|address-unreachable|bad-header|beyond-scope|communication-prohibited|destination-unreachable|echo-reply|echo-request|failed-policy|neighbor-advertisement|neighbor-solicitation|no-route|packet-too-big|parameter-problem|port-unreachable|redirect|reject-route|router-advertisement|router-solicitation|time-exceeded|ttl-zero-during-reassembly|ttl-zero-during-transit|unknown-header-type|unknown-option
	IPSec                 string   `json:"ipsec"`           // match-ipsec|match-none|^$
	Logging               bool     `json:"logging"`
	Name                  string   `json:"name,omitempty"` // .{1,128}
	Protocol              string   `json:"protocol"`       // ^$|all|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|tcp_udp|ah|ax.25|dccp|ddp|egp|eigrp|encap|esp|etherip|fc|ggp|gre|hip|hmp|icmp|idpr-cmtp|idrp|igmp|igp|ip|ipcomp|ipencap|ipip|ipv6|ipv6-frag|ipv6-icmp|ipv6-nonxt|ipv6-opts|ipv6-route|isis|iso-tp4|l2tp|manet|mobility-header|mpls-in-ip|ospf|pim|pup|rdp|rohc|rspf|rsvp|sctp|shim6|skip|st|tcp|udp|udplite|vmtp|vrrp|wesp|xns-idp|xtp
	ProtocolMatchExcepted bool     `json:"protocol_match_excepted"`
	ProtocolV6            string   `json:"protocol_v6"`                  // ^$|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|ah|all|dccp|eigrp|esp|gre|icmpv6|ipcomp|ipv6|ipv6-frag|ipv6-icmp|ipv6-nonxt|ipv6-opts|ipv6-route|isis|l2tp|manet|mobility-header|mpls-in-ip|ospf|pim|rsvp|sctp|shim6|tcp|tcp_udp|udp|vrrp
	RuleIndex             int      `json:"rule_index,omitempty"`         // 2[0-9]{3,4}|4[0-9]{3,4}
	Ruleset               string   `json:"ruleset,omitempty"`            // WAN_IN|WAN_OUT|WAN_LOCAL|LAN_IN|LAN_OUT|LAN_LOCAL|GUEST_IN|GUEST_OUT|GUEST_LOCAL|WANv6_IN|WANv6_OUT|WANv6_LOCAL|LANv6_IN|LANv6_OUT|LANv6_LOCAL|GUESTv6_IN|GUESTv6_OUT|GUESTv6_LOCAL
	SettingPreference     string   `json:"setting_preference,omitempty"` // auto|manual
	SrcAddress            string   `json:"src_address,omitempty"`
	SrcAddressIPV6        string   `json:"src_address_ipv6,omitempty"`
	SrcFirewallGroupIDs   []string `json:"src_firewallgroup_ids,omitempty"` // [\d\w]+
	SrcMACAddress         string   `json:"src_mac_address"`                 // ^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})$|^$
	SrcNetworkID          string   `json:"src_networkconf_id"`              // [\d\w]+|^$
	SrcNetworkType        string   `json:"src_networkconf_type,omitempty"`  // ADDRv4|NETv4
	SrcPort               string   `json:"src_port,omitempty"`
	StateEstablished      bool     `json:"state_established"`
	StateInvalid          bool     `json:"state_invalid"`
	StateNew              bool     `json:"state_new"`
	StateRelated          bool     `json:"state_related"`
}

func (*FirewallRule) UnmarshalJSON

func (dst *FirewallRule) UnmarshalJSON(b []byte) error

type FirewallRuleIndexUpdate

type FirewallRuleIndexUpdate struct {
	ID        string `json:"_id"`
	RuleIndex int    `json:"rule_index,string"`
}

type HeatMap

type HeatMap struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Description string `json:"description,omitempty"`
	MapID       string `json:"map_id"`
	Name        string `json:"name,omitempty"` // .*[^\s]+.*
	Type        string `json:"type,omitempty"` // download|upload
}

func (*HeatMap) UnmarshalJSON

func (dst *HeatMap) UnmarshalJSON(b []byte) error

type HeatMapPoint

type HeatMapPoint struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	DownloadSpeed float64 `json:"download_speed,omitempty"`
	HeatmapID     string  `json:"heatmap_id"`
	UploadSpeed   float64 `json:"upload_speed,omitempty"`
	X             float64 `json:"x,omitempty"`
	Y             float64 `json:"y,omitempty"`
}

func (*HeatMapPoint) UnmarshalJSON

func (dst *HeatMapPoint) UnmarshalJSON(b []byte) error

type Hotspot2Conf

type Hotspot2Conf struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	AnqpDomainID            int                                 `json:"anqp_domain_id,omitempty"` // ^0|[1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]|$
	Capab                   []Hotspot2ConfCapab                 `json:"capab,omitempty"`
	CellularNetworkList     []Hotspot2ConfCellularNetworkList   `json:"cellular_network_list,omitempty"`
	DeauthReqTimeout        int                                 `json:"deauth_req_timeout,omitempty"` // [1-9][0-9]|[1-9][0-9][0-9]|[1-2][0-9][0-9][0-9]|3[0-5][0-9][0-9]|3600
	DisableDgaf             bool                                `json:"disable_dgaf"`
	DomainNameList          []string                            `json:"domain_name_list,omitempty"` // .{1,128}
	FriendlyName            []Hotspot2ConfFriendlyName          `json:"friendly_name,omitempty"`
	GasAdvanced             bool                                `json:"gas_advanced"`
	GasComebackDelay        int                                 `json:"gas_comeback_delay,omitempty"`
	GasFragLimit            int                                 `json:"gas_frag_limit,omitempty"`
	Hessid                  string                              `json:"hessid"` // ^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})$|^$
	HessidUsed              bool                                `json:"hessid_used"`
	IPaddrTypeAvailV4       int                                 `json:"ipaddr_type_avail_v4,omitempty"` // 0|1|2|3|4|5|6|7
	IPaddrTypeAvailV6       int                                 `json:"ipaddr_type_avail_v6,omitempty"` // 0|1|2
	Icons                   []Hotspot2ConfIcons                 `json:"icons,omitempty"`
	MetricsDownlinkLoad     int                                 `json:"metrics_downlink_load,omitempty"`
	MetricsDownlinkLoadSet  bool                                `json:"metrics_downlink_load_set"`
	MetricsDownlinkSpeed    int                                 `json:"metrics_downlink_speed,omitempty"`
	MetricsDownlinkSpeedSet bool                                `json:"metrics_downlink_speed_set"`
	MetricsInfoAtCapacity   bool                                `json:"metrics_info_at_capacity"`
	MetricsInfoLinkStatus   string                              `json:"metrics_info_link_status,omitempty"` // up|down|test
	MetricsInfoSymmetric    bool                                `json:"metrics_info_symmetric"`
	MetricsMeasurement      int                                 `json:"metrics_measurement,omitempty"`
	MetricsMeasurementSet   bool                                `json:"metrics_measurement_set"`
	MetricsStatus           bool                                `json:"metrics_status"`
	MetricsUplinkLoad       int                                 `json:"metrics_uplink_load,omitempty"`
	MetricsUplinkLoadSet    bool                                `json:"metrics_uplink_load_set"`
	MetricsUplinkSpeed      int                                 `json:"metrics_uplink_speed,omitempty"`
	MetricsUplinkSpeedSet   bool                                `json:"metrics_uplink_speed_set"`
	NaiRealmList            []Hotspot2ConfNaiRealmList          `json:"nai_realm_list,omitempty"`
	Name                    string                              `json:"name,omitempty"` // .{1,128}
	NetworkAccessAsra       bool                                `json:"network_access_asra"`
	NetworkAccessEsr        bool                                `json:"network_access_esr"`
	NetworkAccessInternet   bool                                `json:"network_access_internet"`
	NetworkAccessUesa       bool                                `json:"network_access_uesa"`
	NetworkAuthType         int                                 `json:"network_auth_type,omitempty"` // -1|0|1|2|3
	NetworkAuthUrl          string                              `json:"network_auth_url,omitempty"`
	NetworkType             int                                 `json:"network_type,omitempty"` // 0|1|2|3|4|5|14|15
	Osu                     []Hotspot2ConfOsu                   `json:"osu,omitempty"`
	OsuSSID                 string                              `json:"osu_ssid"`
	QOSMapDcsp              []Hotspot2ConfQOSMapDcsp            `json:"qos_map_dcsp,omitempty"`
	QOSMapExceptions        []Hotspot2ConfQOSMapExceptions      `json:"qos_map_exceptions,omitempty"`
	QOSMapStatus            bool                                `json:"qos_map_status"`
	RoamingConsortiumList   []Hotspot2ConfRoamingConsortiumList `json:"roaming_consortium_list,omitempty"`
	SaveTimestamp           string                              `json:"save_timestamp,omitempty"`
	TCFilename              string                              `json:"t_c_filename,omitempty"` // .{1,256}
	TCTimestamp             int                                 `json:"t_c_timestamp,omitempty"`
	VenueGroup              int                                 `json:"venue_group,omitempty"` // 0|1|2|3|4|5|6|7|8|9|10|11
	VenueName               []Hotspot2ConfVenueName             `json:"venue_name,omitempty"`
	VenueType               int                                 `json:"venue_type,omitempty"` // 0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15
}

func (*Hotspot2Conf) UnmarshalJSON

func (dst *Hotspot2Conf) UnmarshalJSON(b []byte) error

type Hotspot2ConfCapab

type Hotspot2ConfCapab struct {
	Port     int    `json:"port,omitempty"`     // ^(0|[1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])|$
	Protocol string `json:"protocol,omitempty"` // icmp|tcp_udp|tcp|udp|esp
	Status   string `json:"status,omitempty"`   // closed|open|unknown
}

func (*Hotspot2ConfCapab) UnmarshalJSON

func (dst *Hotspot2ConfCapab) UnmarshalJSON(b []byte) error

type Hotspot2ConfCellularNetworkList

type Hotspot2ConfCellularNetworkList struct {
	Mcc  int    `json:"mcc,omitempty"`
	Mnc  int    `json:"mnc,omitempty"`
	Name string `json:"name,omitempty"` // .{1,128}
}

func (*Hotspot2ConfCellularNetworkList) UnmarshalJSON

func (dst *Hotspot2ConfCellularNetworkList) UnmarshalJSON(b []byte) error

type Hotspot2ConfDescription

type Hotspot2ConfDescription struct {
	Language string `json:"language,omitempty"` // [a-z]{3}
	Text     string `json:"text,omitempty"`     // .{1,128}
}

func (*Hotspot2ConfDescription) UnmarshalJSON

func (dst *Hotspot2ConfDescription) UnmarshalJSON(b []byte) error

type Hotspot2ConfFriendlyName

type Hotspot2ConfFriendlyName struct {
	Language string `json:"language,omitempty"` // [a-z]{3}
	Text     string `json:"text,omitempty"`     // .{1,128}
}

func (*Hotspot2ConfFriendlyName) UnmarshalJSON

func (dst *Hotspot2ConfFriendlyName) UnmarshalJSON(b []byte) error

type Hotspot2ConfIcon

type Hotspot2ConfIcon struct {
	Name string `json:"name,omitempty"` // .{1,128}
}

func (*Hotspot2ConfIcon) UnmarshalJSON

func (dst *Hotspot2ConfIcon) UnmarshalJSON(b []byte) error

type Hotspot2ConfIcons

type Hotspot2ConfIcons struct {
	Data     string `json:"data,omitempty"`
	Filename string `json:"filename,omitempty"` // .{1,256}
	Height   int    `json:"height,omitempty"`
	Language string `json:"language,omitempty"` // [a-z]{3}
	Media    string `json:"media,omitempty"`    // .{1,256}
	Name     string `json:"name,omitempty"`     // .{1,256}
	Size     int    `json:"size,omitempty"`
	Width    int    `json:"width,omitempty"`
}

func (*Hotspot2ConfIcons) UnmarshalJSON

func (dst *Hotspot2ConfIcons) UnmarshalJSON(b []byte) error

type Hotspot2ConfNaiRealmList

type Hotspot2ConfNaiRealmList struct {
	AuthIDs   string `json:"auth_ids,omitempty"`
	AuthVals  string `json:"auth_vals,omitempty"`
	EapMethod int    `json:"eap_method,omitempty"` // 13|21|18|23|50
	Encoding  int    `json:"encoding,omitempty"`   // 0|1
	Name      string `json:"name,omitempty"`       // .{1,128}
	Status    bool   `json:"status"`
}

func (*Hotspot2ConfNaiRealmList) UnmarshalJSON

func (dst *Hotspot2ConfNaiRealmList) UnmarshalJSON(b []byte) error

type Hotspot2ConfOsu

type Hotspot2ConfOsu struct {
	Description      []Hotspot2ConfDescription  `json:"description,omitempty"`
	FriendlyName     []Hotspot2ConfFriendlyName `json:"friendly_name,omitempty"`
	Icon             []Hotspot2ConfIcon         `json:"icon,omitempty"`
	MethodOmaDm      bool                       `json:"method_oma_dm"`
	MethodSoapXmlSpp bool                       `json:"method_soap_xml_spp"`
	Nai              string                     `json:"nai,omitempty"`
	Nai2             string                     `json:"nai2,omitempty"`
	OperatingClass   string                     `json:"operating_class,omitempty"` // [0-9A-Fa-f]{12}
	ServerUri        string                     `json:"server_uri,omitempty"`
}

func (*Hotspot2ConfOsu) UnmarshalJSON

func (dst *Hotspot2ConfOsu) UnmarshalJSON(b []byte) error

type Hotspot2ConfQOSMapDcsp

type Hotspot2ConfQOSMapDcsp struct {
	High int `json:"high,omitempty"`
	Low  int `json:"low,omitempty"`
}

func (*Hotspot2ConfQOSMapDcsp) UnmarshalJSON

func (dst *Hotspot2ConfQOSMapDcsp) UnmarshalJSON(b []byte) error

type Hotspot2ConfQOSMapExceptions

type Hotspot2ConfQOSMapExceptions struct {
	Dcsp int `json:"dcsp,omitempty"`
	Up   int `json:"up,omitempty"` // [0-7]
}

func (*Hotspot2ConfQOSMapExceptions) UnmarshalJSON

func (dst *Hotspot2ConfQOSMapExceptions) UnmarshalJSON(b []byte) error

type Hotspot2ConfRoamingConsortiumList

type Hotspot2ConfRoamingConsortiumList struct {
	Name string `json:"name,omitempty"` // .{1,128}
	Oid  string `json:"oid,omitempty"`  // .{1,128}
}

func (*Hotspot2ConfRoamingConsortiumList) UnmarshalJSON

func (dst *Hotspot2ConfRoamingConsortiumList) UnmarshalJSON(b []byte) error

type Hotspot2ConfVenueName

type Hotspot2ConfVenueName struct {
	Language string `json:"language,omitempty"` // [a-z]{3}
	Name     string `json:"name,omitempty"`
	Url      string `json:"url,omitempty"`
}

func (*Hotspot2ConfVenueName) UnmarshalJSON

func (dst *Hotspot2ConfVenueName) UnmarshalJSON(b []byte) error

type HotspotOp

type HotspotOp struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Name      string `json:"name,omitempty"` // .{1,256}
	Note      string `json:"note,omitempty"`
	XPassword string `json:"x_password,omitempty"` // .{1,256}
}

func (*HotspotOp) UnmarshalJSON

func (dst *HotspotOp) UnmarshalJSON(b []byte) error

type HotspotPackage

type HotspotPackage struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Amount                         float64 `json:"amount,omitempty"`
	ChargedAs                      string  `json:"charged_as,omitempty"`
	Currency                       string  `json:"currency,omitempty"` // [A-Z]{3}
	CustomPaymentFieldsEnabled     bool    `json:"custom_payment_fields_enabled"`
	Hours                          int     `json:"hours,omitempty"`
	Index                          int     `json:"index,omitempty"`
	LimitDown                      int     `json:"limit_down,omitempty"`
	LimitOverwrite                 bool    `json:"limit_overwrite"`
	LimitQuota                     int     `json:"limit_quota,omitempty"`
	LimitUp                        int     `json:"limit_up,omitempty"`
	Name                           string  `json:"name,omitempty"`
	PaymentFieldsAddressEnabled    bool    `json:"payment_fields_address_enabled"`
	PaymentFieldsAddressRequired   bool    `json:"payment_fields_address_required"`
	PaymentFieldsCityEnabled       bool    `json:"payment_fields_city_enabled"`
	PaymentFieldsCityRequired      bool    `json:"payment_fields_city_required"`
	PaymentFieldsCountryEnabled    bool    `json:"payment_fields_country_enabled"`
	PaymentFieldsCountryRequired   bool    `json:"payment_fields_country_required"`
	PaymentFieldsEmailEnabled      bool    `json:"payment_fields_email_enabled"`
	PaymentFieldsEmailRequired     bool    `json:"payment_fields_email_required"`
	PaymentFieldsFirstNameEnabled  bool    `json:"payment_fields_first_name_enabled"`
	PaymentFieldsFirstNameRequired bool    `json:"payment_fields_first_name_required"`
	PaymentFieldsLastNameEnabled   bool    `json:"payment_fields_last_name_enabled"`
	PaymentFieldsLastNameRequired  bool    `json:"payment_fields_last_name_required"`
	PaymentFieldsStateEnabled      bool    `json:"payment_fields_state_enabled"`
	PaymentFieldsStateRequired     bool    `json:"payment_fields_state_required"`
	PaymentFieldsZipEnabled        bool    `json:"payment_fields_zip_enabled"`
	PaymentFieldsZipRequired       bool    `json:"payment_fields_zip_required"`
	TrialDurationMinutes           int     `json:"trial_duration_minutes,omitempty"`
	TrialReset                     float64 `json:"trial_reset,omitempty"`
}

func (*HotspotPackage) UnmarshalJSON

func (dst *HotspotPackage) UnmarshalJSON(b []byte) error

type Map

type Map struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Lat        string  `json:"lat,omitempty"` // ^([-]?[\d]+[.]?[\d]*([eE][-+]?[\d]+)?)$
	Lng        string  `json:"lng,omitempty"` // ^([-]?[\d]+[.]?[\d]*([eE][-+]?[\d]+)?)$
	MapTypeID  string  `json:"mapTypeId"`     // satellite|roadmap|hybrid|terrain
	Name       string  `json:"name,omitempty"`
	OffsetLeft float64 `json:"offset_left,omitempty"`
	OffsetTop  float64 `json:"offset_top,omitempty"`
	Opacity    float64 `json:"opacity,omitempty"` // ^(0(\.[\d]{1,2})?|1)$|^$
	Selected   bool    `json:"selected"`
	Tilt       int     `json:"tilt,omitempty"`
	Type       string  `json:"type,omitempty"` // designerMap|imageMap|googleMap
	Unit       string  `json:"unit,omitempty"` // m|f
	Upp        float64 `json:"upp,omitempty"`
	Zoom       int     `json:"zoom,omitempty"`
}

func (*Map) UnmarshalJSON

func (dst *Map) UnmarshalJSON(b []byte) error

type MediaFile

type MediaFile struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Name string `json:"name,omitempty"`
}

func (*MediaFile) UnmarshalJSON

func (dst *MediaFile) UnmarshalJSON(b []byte) error

type Network

type Network struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	AutoScaleEnabled                              bool                            `json:"auto_scale_enabled"`
	DHCPDBootEnabled                              bool                            `json:"dhcpd_boot_enabled"`
	DHCPDBootFilename                             string                          `json:"dhcpd_boot_filename,omitempty"` // .{1,256}
	DHCPDBootServer                               string                          `json:"dhcpd_boot_server"`             // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^$|(?=^.{3,253}$)(^((?!-)[a-zA-Z0-9-]{1,63}(?<!-)\.)+[a-zA-Z]{2,63}$)|[a-zA-Z0-9-]{1,63}|^$
	DHCPDConflictChecking                         bool                            `json:"dhcpd_conflict_checking"`
	DHCPDDNS1                                     string                          `json:"dhcpd_dns_1"` // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^$
	DHCPDDNS2                                     string                          `json:"dhcpd_dns_2"` // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^$
	DHCPDDNS3                                     string                          `json:"dhcpd_dns_3"` // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^$
	DHCPDDNS4                                     string                          `json:"dhcpd_dns_4"` // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^$
	DHCPDDNSEnabled                               bool                            `json:"dhcpd_dns_enabled"`
	DHCPDEnabled                                  bool                            `json:"dhcpd_enabled"`
	DHCPDGateway                                  string                          `json:"dhcpd_gateway"` // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^$
	DHCPDGatewayEnabled                           bool                            `json:"dhcpd_gateway_enabled"`
	DHCPDIP1                                      string                          `json:"dhcpd_ip_1"` // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^$
	DHCPDIP2                                      string                          `json:"dhcpd_ip_2"` // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^$
	DHCPDIP3                                      string                          `json:"dhcpd_ip_3"` // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^$
	DHCPDLeaseTime                                int                             `json:"dhcpd_leasetime,omitempty"`
	DHCPDMAC1                                     string                          `json:"dhcpd_mac_1"` // (^$|^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})$)
	DHCPDMAC2                                     string                          `json:"dhcpd_mac_2"` // (^$|^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})$)
	DHCPDMAC3                                     string                          `json:"dhcpd_mac_3"` // (^$|^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})$)
	DHCPDNtp1                                     string                          `json:"dhcpd_ntp_1"` // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^$
	DHCPDNtp2                                     string                          `json:"dhcpd_ntp_2"` // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^$
	DHCPDNtpEnabled                               bool                            `json:"dhcpd_ntp_enabled"`
	DHCPDStart                                    string                          `json:"dhcpd_start"` // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^$
	DHCPDStop                                     string                          `json:"dhcpd_stop"`  // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^$
	DHCPDTFTPServer                               string                          `json:"dhcpd_tftp_server,omitempty"`
	DHCPDTimeOffset                               int                             `json:"dhcpd_time_offset,omitempty"` // ^0$|^-?([1-9]([0-9]{1,3})?|[1-7][0-9]{4}|[8][0-5][0-9]{3}|86[0-3][0-9]{2}|86400)$
	DHCPDTimeOffsetEnabled                        bool                            `json:"dhcpd_time_offset_enabled"`
	DHCPDUnifiController                          string                          `json:"dhcpd_unifi_controller"` // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^$
	DHCPDV6AllowSlaac                             bool                            `json:"dhcpdv6_allow_slaac"`
	DHCPDV6DNS1                                   string                          `json:"dhcpdv6_dns_1,omitempty"`
	DHCPDV6DNS2                                   string                          `json:"dhcpdv6_dns_2,omitempty"`
	DHCPDV6DNS3                                   string                          `json:"dhcpdv6_dns_3,omitempty"`
	DHCPDV6DNS4                                   string                          `json:"dhcpdv6_dns_4,omitempty"`
	DHCPDV6DNSAuto                                bool                            `json:"dhcpdv6_dns_auto"`
	DHCPDV6Enabled                                bool                            `json:"dhcpdv6_enabled"`
	DHCPDV6LeaseTime                              int                             `json:"dhcpdv6_leasetime,omitempty"`
	DHCPDV6Start                                  string                          `json:"dhcpdv6_start,omitempty"`
	DHCPDV6Stop                                   string                          `json:"dhcpdv6_stop,omitempty"`
	DHCPDWPAdUrl                                  string                          `json:"dhcpd_wpad_url,omitempty"`
	DHCPDWins1                                    string                          `json:"dhcpd_wins_1"` // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^$
	DHCPDWins2                                    string                          `json:"dhcpd_wins_2"` // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^$
	DHCPDWinsEnabled                              bool                            `json:"dhcpd_wins_enabled"`
	DHCPRelayEnabled                              bool                            `json:"dhcp_relay_enabled"`
	DHCPguardEnabled                              bool                            `json:"dhcpguard_enabled"`
	DPIEnabled                                    bool                            `json:"dpi_enabled"`
	DPIgroupID                                    string                          `json:"dpigroup_id"` // [\d\w]+|^$
	DomainName                                    string                          `json:"domain_name"` // (?=^.{3,253}$)(^((?!-)[a-zA-Z0-9-]{1,63}(?<!-)\.)+[a-zA-Z]{2,63}$)|^$|[a-zA-Z0-9-]{1,63}
	Enabled                                       bool                            `json:"enabled"`
	ExposedToSiteVPN                              bool                            `json:"exposed_to_site_vpn"`
	GatewayDevice                                 string                          `json:"gateway_device"`         // (^$|^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})$)
	GatewayType                                   string                          `json:"gateway_type,omitempty"` // default|switch
	IGMPFastleave                                 bool                            `json:"igmp_fastleave"`
	IGMPForwardUnknownMulticast                   bool                            `json:"igmp_forward_unknown_multicast"`
	IGMPGroupmembership                           int                             `json:"igmp_groupmembership,omitempty"` // [2-9]|[1-9][0-9]{1,2}|[1-2][0-9]{3}|3[0-5][0-9]{2}|3600|^$
	IGMPMaxresponse                               int                             `json:"igmp_maxresponse,omitempty"`     // [1-9]|1[0-9]|2[0-5]|^$
	IGMPMcrtrexpiretime                           int                             `json:"igmp_mcrtrexpiretime,omitempty"` // [0-9]|[1-9][0-9]{1,2}|[1-2][0-9]{3}|3[0-5][0-9]{2}|3600|^$
	IGMPProxyDownstreamNetworkIDs                 []string                        `json:"igmp_proxy_downstream_networkconf_ids,omitempty"`
	IGMPProxyFor                                  string                          `json:"igmp_proxy_for,omitempty"` // all|some|none
	IGMPProxyUpstream                             bool                            `json:"igmp_proxy_upstream"`
	IGMPQuerierSwitches                           []NetworkIGMPQuerierSwitches    `json:"igmp_querier_switches,omitempty"`
	IGMPSnooping                                  bool                            `json:"igmp_snooping"`
	IGMPSupression                                bool                            `json:"igmp_supression"`
	IPSecDhGroup                                  int                             `json:"ipsec_dh_group,omitempty"` // 2|5|14|15|16|19|20|21|25|26
	IPSecDynamicRouting                           bool                            `json:"ipsec_dynamic_routing"`
	IPSecEncryption                               string                          `json:"ipsec_encryption,omitempty"`     // aes128|aes192|aes256|3des
	IPSecEspDhGroup                               int                             `json:"ipsec_esp_dh_group,omitempty"`   // 1|2|5|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32
	IPSecEspEncryption                            string                          `json:"ipsec_esp_encryption,omitempty"` // aes128|aes192|aes256|3des
	IPSecEspHash                                  string                          `json:"ipsec_esp_hash,omitempty"`       // sha1|md5|sha256|sha384|sha512
	IPSecEspLifetime                              string                          `json:"ipsec_esp_lifetime,omitempty"`   // ^(?:3[0-9]|[4-9][0-9]|[1-9][0-9]{2,3}|[1-7][0-9]{4}|8[0-5][0-9]{3}|86[0-3][0-9]{2}|86400)$
	IPSecHash                                     string                          `json:"ipsec_hash,omitempty"`           // sha1|md5|sha256|sha384|sha512
	IPSecIkeDhGroup                               int                             `json:"ipsec_ike_dh_group,omitempty"`   // 1|2|5|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32
	IPSecIkeEncryption                            string                          `json:"ipsec_ike_encryption,omitempty"` // aes128|aes192|aes256|3des
	IPSecIkeHash                                  string                          `json:"ipsec_ike_hash,omitempty"`       // sha1|md5|sha256|sha384|sha512
	IPSecIkeLifetime                              string                          `json:"ipsec_ike_lifetime,omitempty"`   // ^(?:3[0-9]|[4-9][0-9]|[1-9][0-9]{2,3}|[1-7][0-9]{4}|8[0-5][0-9]{3}|86[0-3][0-9]{2}|86400)$
	IPSecInterface                                string                          `json:"ipsec_interface,omitempty"`      // wan|wan2
	IPSecKeyExchange                              string                          `json:"ipsec_key_exchange,omitempty"`   // ikev1|ikev2
	IPSecLocalIDentifier                          string                          `json:"ipsec_local_identifier,omitempty"`
	IPSecLocalIDentifierEnabled                   bool                            `json:"ipsec_local_identifier_enabled"`
	IPSecLocalIP                                  string                          `json:"ipsec_local_ip,omitempty"` // ^any$|^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$
	IPSecPeerIP                                   string                          `json:"ipsec_peer_ip,omitempty"`
	IPSecPfs                                      bool                            `json:"ipsec_pfs"`
	IPSecProfile                                  string                          `json:"ipsec_profile,omitempty"` // customized|azure_dynamic|azure_static
	IPSecRemoteIDentifier                         string                          `json:"ipsec_remote_identifier,omitempty"`
	IPSecRemoteIDentifierEnabled                  bool                            `json:"ipsec_remote_identifier_enabled"`
	IPSecSeparateIkev2Networks                    bool                            `json:"ipsec_separate_ikev2_networks"`
	IPSecTunnelIP                                 string                          `json:"ipsec_tunnel_ip,omitempty"` // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\/([1-9]|[1-2][0-9]|3[0-2])$
	IPSecTunnelIPEnabled                          bool                            `json:"ipsec_tunnel_ip_enabled"`
	IPSubnet                                      string                          `json:"ip_subnet,omitempty"`                      // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\/([1-9]|[1-2][0-9]|3[0-2])$
	IPV6ClientAddressAssignment                   string                          `json:"ipv6_client_address_assignment,omitempty"` // slaac|dhcpv6
	IPV6InterfaceType                             string                          `json:"ipv6_interface_type,omitempty"`            // static|pd|single_network|none
	IPV6PDAutoPrefixidEnabled                     bool                            `json:"ipv6_pd_auto_prefixid_enabled"`
	IPV6PDInterface                               string                          `json:"ipv6_pd_interface,omitempty"` // wan|wan2
	IPV6PDPrefixid                                string                          `json:"ipv6_pd_prefixid"`            // ^$|[a-fA-F0-9]{1,4}
	IPV6PDStart                                   string                          `json:"ipv6_pd_start,omitempty"`
	IPV6PDStop                                    string                          `json:"ipv6_pd_stop,omitempty"`
	IPV6RaEnabled                                 bool                            `json:"ipv6_ra_enabled"`
	IPV6RaPreferredLifetime                       int                             `json:"ipv6_ra_preferred_lifetime,omitempty"` // ^([0-9]|[1-8][0-9]|9[0-9]|[1-8][0-9]{2}|9[0-8][0-9]|99[0-9]|[1-8][0-9]{3}|9[0-8][0-9]{2}|99[0-8][0-9]|999[0-9]|[1-8][0-9]{4}|9[0-8][0-9]{3}|99[0-8][0-9]{2}|999[0-8][0-9]|9999[0-9]|[1-8][0-9]{5}|9[0-8][0-9]{4}|99[0-8][0-9]{3}|999[0-8][0-9]{2}|9999[0-8][0-9]|99999[0-9]|[1-8][0-9]{6}|9[0-8][0-9]{5}|99[0-8][0-9]{4}|999[0-8][0-9]{3}|9999[0-8][0-9]{2}|99999[0-8][0-9]|999999[0-9]|[12][0-9]{7}|30[0-9]{6}|31[0-4][0-9]{5}|315[0-2][0-9]{4}|3153[0-5][0-9]{3}|31536000)$|^$
	IPV6RaPriority                                string                          `json:"ipv6_ra_priority,omitempty"`           // high|medium|low
	IPV6RaValidLifetime                           int                             `json:"ipv6_ra_valid_lifetime,omitempty"`     // ^([0-9]|[1-8][0-9]|9[0-9]|[1-8][0-9]{2}|9[0-8][0-9]|99[0-9]|[1-8][0-9]{3}|9[0-8][0-9]{2}|99[0-8][0-9]|999[0-9]|[1-8][0-9]{4}|9[0-8][0-9]{3}|99[0-8][0-9]{2}|999[0-8][0-9]|9999[0-9]|[1-8][0-9]{5}|9[0-8][0-9]{4}|99[0-8][0-9]{3}|999[0-8][0-9]{2}|9999[0-8][0-9]|99999[0-9]|[1-8][0-9]{6}|9[0-8][0-9]{5}|99[0-8][0-9]{4}|999[0-8][0-9]{3}|9999[0-8][0-9]{2}|99999[0-8][0-9]|999999[0-9]|[12][0-9]{7}|30[0-9]{6}|31[0-4][0-9]{5}|315[0-2][0-9]{4}|3153[0-5][0-9]{3}|31536000)$|^$
	IPV6SettingPreference                         string                          `json:"ipv6_setting_preference,omitempty"`    // auto|manual
	IPV6SingleNetworkInterface                    string                          `json:"ipv6_single_network_interface,omitempty"`
	IPV6Subnet                                    string                          `json:"ipv6_subnet,omitempty"`
	IPV6WANDelegationType                         string                          `json:"ipv6_wan_delegation_type,omitempty"` // pd|single_network|none
	InterfaceMtu                                  int                             `json:"interface_mtu,omitempty"`            // ^(6[89]|[7-9][0-9]|[1-9][0-9]{2,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|65500)$
	InterfaceMtuEnabled                           bool                            `json:"interface_mtu_enabled"`
	InternetAccessEnabled                         bool                            `json:"internet_access_enabled"`
	IsNAT                                         bool                            `json:"is_nat"`
	L2TpAllowWeakCiphers                          bool                            `json:"l2tp_allow_weak_ciphers"`
	L2TpInterface                                 string                          `json:"l2tp_interface,omitempty"`    // wan|wan2
	L2TpLocalWANIP                                string                          `json:"l2tp_local_wan_ip,omitempty"` // ^any$|^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$
	LocalPort                                     int                             `json:"local_port,omitempty"`        // ^([1-9][0-9]{0,3}|[1-5][0-9]{4}|[6][0-4][0-9]{3}|[6][5][0-4][0-9]{2}|[6][5][5][0-2][0-9]|[6][5][5][3][0-5])$
	LteLanEnabled                                 bool                            `json:"lte_lan_enabled"`
	MACOverride                                   string                          `json:"mac_override"` // (^$|^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})$)
	MACOverrideEnabled                            bool                            `json:"mac_override_enabled"`
	MdnsEnabled                                   bool                            `json:"mdns_enabled"`
	NATOutboundIPAddresses                        []NetworkNATOutboundIPAddresses `json:"nat_outbound_ip_addresses,omitempty"`
	Name                                          string                          `json:"name,omitempty"`         // .{1,128}
	NetworkGroup                                  string                          `json:"networkgroup,omitempty"` // LAN[2-8]?
	NetworkIsolationEnabled                       bool                            `json:"network_isolation_enabled"`
	OpenVPNConfiguration                          string                          `json:"openvpn_configuration,omitempty"`
	OpenVPNConfigurationFilename                  string                          `json:"openvpn_configuration_filename,omitempty"`
	OpenVPNEncryptionCipher                       string                          `json:"openvpn_encryption_cipher,omitempty"` // AES_256_GCM|AES_256_CBC|BF_CBC
	OpenVPNInterface                              string                          `json:"openvpn_interface,omitempty"`         // wan|wan2
	OpenVPNLocalAddress                           string                          `json:"openvpn_local_address,omitempty"`     // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$
	OpenVPNLocalPort                              int                             `json:"openvpn_local_port,omitempty"`        // ^([1-9][0-9]{0,3}|[1-5][0-9]{4}|[6][0-4][0-9]{3}|[6][5][0-4][0-9]{2}|[6][5][5][0-2][0-9]|[6][5][5][3][0-5])$
	OpenVPNLocalWANIP                             string                          `json:"openvpn_local_wan_ip,omitempty"`      // ^any$|^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$
	OpenVPNMode                                   string                          `json:"openvpn_mode,omitempty"`              // site-to-site|client|server
	OpenVPNRemoteAddress                          string                          `json:"openvpn_remote_address,omitempty"`    // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$
	OpenVPNRemoteHost                             string                          `json:"openvpn_remote_host,omitempty"`       // [^\"\' ]+|^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$
	OpenVPNRemotePort                             int                             `json:"openvpn_remote_port,omitempty"`       // ^([1-9][0-9]{0,3}|[1-5][0-9]{4}|[6][0-4][0-9]{3}|[6][5][0-4][0-9]{2}|[6][5][5][0-2][0-9]|[6][5][5][3][0-5])$
	OpenVPNUsername                               string                          `json:"openvpn_username,omitempty"`
	PptpcRequireMppe                              bool                            `json:"pptpc_require_mppe"`
	PptpcRouteDistance                            int                             `json:"pptpc_route_distance,omitempty"` // ^[1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]$|^$
	PptpcServerIP                                 string                          `json:"pptpc_server_ip,omitempty"`      // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|(?=^.{3,253}$)(^((?!-)[a-zA-Z0-9-]{1,63}(?<!-)\.)+[a-zA-Z]{2,63}$)|^[a-zA-Z0-9-]{1,63}$
	PptpcUsername                                 string                          `json:"pptpc_username,omitempty"`       // [^\"\' ]+
	Priority                                      int                             `json:"priority,omitempty"`             // [1-4]
	Purpose                                       string                          `json:"purpose,omitempty"`              // corporate|guest|remote-user-vpn|site-vpn|vlan-only|vpn-client|wan
	RADIUSProfileID                               string                          `json:"radiusprofile_id"`
	RemoteSiteID                                  string                          `json:"remote_site_id"`
	RemoteSiteSubnets                             []string                        `json:"remote_site_subnets,omitempty"` // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\/([1-9]|[1-2][0-9]|30)$|^$
	RemoteVPNDynamicSubnetsEnabled                bool                            `json:"remote_vpn_dynamic_subnets_enabled"`
	RemoteVPNSubnets                              []string                        `json:"remote_vpn_subnets,omitempty"` // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\/([1-9]|[1-2][0-9]|3[0-2])$|^$
	ReportWANEvent                                bool                            `json:"report_wan_event"`
	RequireMschapv2                               bool                            `json:"require_mschapv2"`
	RouteDistance                                 int                             `json:"route_distance,omitempty"`     // ^[1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]$|^$
	SettingPreference                             string                          `json:"setting_preference,omitempty"` // auto|manual
	SingleNetworkLan                              string                          `json:"single_network_lan,omitempty"`
	UidPolicyEnabled                              bool                            `json:"uid_policy_enabled"`
	UidPolicyName                                 string                          `json:"uid_policy_name,omitempty"`
	UidPublicGatewayPort                          int                             `json:"uid_public_gateway_port,omitempty"` // ^([1-9][0-9]{0,3}|[1-5][0-9]{4}|[6][0-4][0-9]{3}|[6][5][0-4][0-9]{2}|[6][5][5][0-2][0-9]|[6][5][5][3][0-5])$
	UidTrafficRulesAllowedIPsAndHostnames         []string                        `json:"uid_traffic_rules_allowed_ips_and_hostnames,omitempty"`
	UidTrafficRulesEnabled                        bool                            `json:"uid_traffic_rules_enabled"`
	UidVPNCustomRouting                           []string                        `json:"uid_vpn_custom_routing,omitempty"` // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\/([1-9]|[1-2][0-9]|3[0-2])$
	UidVPNDefaultDNSSuffix                        string                          `json:"uid_vpn_default_dns_suffix,omitempty"`
	UidVPNMasqueradeEnabled                       bool                            `json:"uid_vpn_masquerade_enabled"`
	UidVPNMaxConnectionTimeSeconds                int                             `json:"uid_vpn_max_connection_time_seconds,omitempty"` // ^[1-9][0-9]*$
	UidVPNSyncPublicIP                            bool                            `json:"uid_vpn_sync_public_ip"`
	UidVPNType                                    string                          `json:"uid_vpn_type,omitempty"` // openvpn|wireguard
	UidWorkspaceUrl                               string                          `json:"uid_workspace_url,omitempty"`
	UpnpLanEnabled                                bool                            `json:"upnp_lan_enabled"`
	UserGroupID                                   string                          `json:"usergroup_id"`
	VLAN                                          int                             `json:"vlan,omitempty"` // [2-9]|[1-9][0-9]{1,2}|[1-3][0-9]{3}|400[0-9]|401[0-8]|^$
	VLANEnabled                                   bool                            `json:"vlan_enabled"`
	VPNClientConfigurationRemoteIPOverride        string                          `json:"vpn_client_configuration_remote_ip_override,omitempty"`
	VPNClientConfigurationRemoteIPOverrideEnabled bool                            `json:"vpn_client_configuration_remote_ip_override_enabled"`
	VPNClientDefaultRoute                         bool                            `json:"vpn_client_default_route"`
	VPNClientPullDNS                              bool                            `json:"vpn_client_pull_dns"`
	VPNProtocol                                   string                          `json:"vpn_protocol,omitempty"`       // TCP|UDP
	VPNType                                       string                          `json:"vpn_type,omitempty"`           // auto|ipsec-vpn|openvpn-client|openvpn-server|openvpn-vpn|pptp-client|l2tp-server|pptp-server|uid-server|wireguard-server|wireguard-client
	VrrpIPSubnetGw1                               string                          `json:"vrrp_ip_subnet_gw1,omitempty"` // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\/([1-9]|[1-2][0-9]|30)$
	VrrpIPSubnetGw2                               string                          `json:"vrrp_ip_subnet_gw2,omitempty"` // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\/([1-9]|[1-2][0-9]|30)$
	VrrpVrid                                      int                             `json:"vrrp_vrid,omitempty"`          // [1-9]|[1-9][0-9]
	WANDHCPCos                                    int                             `json:"wan_dhcp_cos,omitempty"`       // [0-7]|^$
	WANDHCPOptions                                []NetworkWANDHCPOptions         `json:"wan_dhcp_options,omitempty"`
	WANDHCPv6PDSize                               int                             `json:"wan_dhcpv6_pd_size,omitempty"` // ^(4[89]|5[0-9]|6[0-4])$|^$
	WANDNS1                                       string                          `json:"wan_dns1"`                     // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^$
	WANDNS2                                       string                          `json:"wan_dns2"`                     // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^$
	WANDNS3                                       string                          `json:"wan_dns3"`                     // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^$
	WANDNS4                                       string                          `json:"wan_dns4"`                     // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^$
	WANDNSPreference                              string                          `json:"wan_dns_preference,omitempty"` // auto|manual
	WANDsliteRemoteHost                           string                          `json:"wan_dslite_remote_host,omitempty"`
	WANEgressQOS                                  int                             `json:"wan_egress_qos,omitempty"`          // [1-7]|^$
	WANGateway                                    string                          `json:"wan_gateway,omitempty"`             // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$
	WANGatewayV6                                  string                          `json:"wan_gateway_v6"`                    // ^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$|^$
	WANIP                                         string                          `json:"wan_ip,omitempty"`                  // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$
	WANIPAliases                                  []string                        `json:"wan_ip_aliases,omitempty"`          // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\/([8-9]|[1-2][0-9]|3[0-2])$|^$
	WANIPV6                                       string                          `json:"wan_ipv6"`                          // ^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$|^$
	WANIPV6DNS1                                   string                          `json:"wan_ipv6_dns1"`                     // ^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$|^$
	WANIPV6DNS2                                   string                          `json:"wan_ipv6_dns2"`                     // ^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$|^$
	WANIPV6DNSPreference                          string                          `json:"wan_ipv6_dns_preference,omitempty"` // auto|manual
	WANLoadBalanceType                            string                          `json:"wan_load_balance_type,omitempty"`   // failover-only|weighted
	WANLoadBalanceWeight                          int                             `json:"wan_load_balance_weight,omitempty"` // ^$|[1-9]|[1-9][0-9]
	WANNetmask                                    string                          `json:"wan_netmask,omitempty"`             // ^((128|192|224|240|248|252|254)\.0\.0\.0)|(255\.(((0|128|192|224|240|248|252|254)\.0\.0)|(255\.(((0|128|192|224|240|248|252|254)\.0)|255\.(0|128|192|224|240|248|252|254)))))$
	WANNetworkGroup                               string                          `json:"wan_networkgroup,omitempty"`        // WAN[2]?|WAN_LTE_FAILOVER
	WANPppoePasswordEnabled                       bool                            `json:"wan_pppoe_password_enabled"`
	WANPppoeUsernameEnabled                       bool                            `json:"wan_pppoe_username_enabled"`
	WANPrefixlen                                  int                             `json:"wan_prefixlen,omitempty"` // ^([1-9]|[1-8][0-9]|9[0-9]|1[01][0-9]|12[0-8])$|^$
	WANProviderCapabilities                       NetworkWANProviderCapabilities  `json:"wan_provider_capabilities,omitempty"`
	WANSmartqDownRate                             int                             `json:"wan_smartq_down_rate,omitempty"` // [0-9]{1,6}|1000000
	WANSmartqEnabled                              bool                            `json:"wan_smartq_enabled"`
	WANSmartqUpRate                               int                             `json:"wan_smartq_up_rate,omitempty"` // [0-9]{1,6}|1000000
	WANType                                       string                          `json:"wan_type,omitempty"`           // disabled|dhcp|static|pppoe|dslite
	WANTypeV6                                     string                          `json:"wan_type_v6,omitempty"`        // disabled|slaac|dhcpv6|static
	WANUsername                                   string                          `json:"wan_username"`                 // [^"' ]+|^$
	WANVLAN                                       int                             `json:"wan_vlan,omitempty"`           // [0-9]|[1-9][0-9]{1,2}|[1-3][0-9]{3}|40[0-8][0-9]|409[0-4]|^$
	WANVLANEnabled                                bool                            `json:"wan_vlan_enabled"`
	WireguardClientConfigurationFile              string                          `json:"wireguard_client_configuration_file,omitempty"`
	WireguardClientConfigurationFilename          string                          `json:"wireguard_client_configuration_filename,omitempty"`
	WireguardClientMode                           string                          `json:"wireguard_client_mode,omitempty"` // file|manual
	WireguardClientPeerIP                         string                          `json:"wireguard_client_peer_ip,omitempty"`
	WireguardClientPeerPort                       int                             `json:"wireguard_client_peer_port,omitempty"` // ^([1-9][0-9]{0,3}|[1-5][0-9]{4}|[6][0-4][0-9]{3}|[6][5][0-4][0-9]{2}|[6][5][5][0-2][0-9]|[6][5][5][3][0-5])$
	WireguardClientPeerPublicKey                  string                          `json:"wireguard_client_peer_public_key,omitempty"`
	WireguardClientPresharedKey                   string                          `json:"wireguard_client_preshared_key,omitempty"`
	WireguardClientPresharedKeyEnabled            bool                            `json:"wireguard_client_preshared_key_enabled"`
	WireguardInterface                            string                          `json:"wireguard_interface,omitempty"`    // wan|wan2
	WireguardLocalWANIP                           string                          `json:"wireguard_local_wan_ip,omitempty"` // ^any$|^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$
	WireguardPublicKey                            string                          `json:"wireguard_public_key,omitempty"`
	XAuthKey                                      string                          `json:"x_auth_key,omitempty"`
	XCaCrt                                        string                          `json:"x_ca_crt,omitempty"`
	XCaKey                                        string                          `json:"x_ca_key,omitempty"`
	XDhKey                                        string                          `json:"x_dh_key,omitempty"`
	XIPSecPreSharedKey                            string                          `json:"x_ipsec_pre_shared_key,omitempty"` // [^\"\' ]+
	XOpenVPNPassword                              string                          `json:"x_openvpn_password,omitempty"`
	XOpenVPNSharedSecretKey                       string                          `json:"x_openvpn_shared_secret_key,omitempty"` // [0-9A-Fa-f]{512}
	XPptpcPassword                                string                          `json:"x_pptpc_password,omitempty"`            // [^\"\' ]+
	XServerCrt                                    string                          `json:"x_server_crt,omitempty"`
	XServerKey                                    string                          `json:"x_server_key,omitempty"`
	XSharedClientCrt                              string                          `json:"x_shared_client_crt,omitempty"`
	XSharedClientKey                              string                          `json:"x_shared_client_key,omitempty"`
	XWANPassword                                  string                          `json:"x_wan_password"` // [^"' ]+|^$
	XWireguardPrivateKey                          string                          `json:"x_wireguard_private_key,omitempty"`
}

func (*Network) MarshalJSON

func (dst *Network) MarshalJSON() ([]byte, error)

func (*Network) UnmarshalJSON

func (dst *Network) UnmarshalJSON(b []byte) error

type NetworkIGMPQuerierSwitches added in v1.0.1

type NetworkIGMPQuerierSwitches struct {
	QuerierAddress string `json:"querier_address"`      // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^$
	SwitchMAC      string `json:"switch_mac,omitempty"` // ^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$
}

func (*NetworkIGMPQuerierSwitches) UnmarshalJSON added in v1.0.1

func (dst *NetworkIGMPQuerierSwitches) UnmarshalJSON(b []byte) error

type NetworkNATOutboundIPAddresses

type NetworkNATOutboundIPAddresses struct {
	IPAddress       string   `json:"ip_address"`                  // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^$
	IPAddressPool   []string `json:"ip_address_pool,omitempty"`   // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])-(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$
	Mode            string   `json:"mode,omitempty"`              // all|ip_address|ip_address_pool
	WANNetworkGroup string   `json:"wan_network_group,omitempty"` // WAN|WAN2
}

func (*NetworkNATOutboundIPAddresses) UnmarshalJSON

func (dst *NetworkNATOutboundIPAddresses) UnmarshalJSON(b []byte) error

type NetworkWANDHCPOptions

type NetworkWANDHCPOptions struct {
	OptionNumber int    `json:"optionNumber,omitempty"` // ([1-9]|[1-8][0-9]|9[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-4])
	Value        string `json:"value,omitempty"`
}

func (*NetworkWANDHCPOptions) UnmarshalJSON

func (dst *NetworkWANDHCPOptions) UnmarshalJSON(b []byte) error

type NetworkWANProviderCapabilities

type NetworkWANProviderCapabilities struct {
	DownloadKilobitsPerSecond int `json:"download_kilobits_per_second,omitempty"` // ^[1-9][0-9]*$
	UploadKilobitsPerSecond   int `json:"upload_kilobits_per_second,omitempty"`   // ^[1-9][0-9]*$
}

func (*NetworkWANProviderCapabilities) UnmarshalJSON

func (dst *NetworkWANProviderCapabilities) UnmarshalJSON(b []byte) error

type NotFoundError

type NotFoundError struct{}

func (*NotFoundError) Error

func (err *NotFoundError) Error() string

type PortForward

type PortForward struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	DestinationIP      string                      `json:"destination_ip,omitempty"` // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^any$
	DestinationIPs     []PortForwardDestinationIPs `json:"destination_ips,omitempty"`
	DstPort            string                      `json:"dst_port,omitempty"` // (([1-9][0-9]{0,3}|[1-5][0-9]{4}|[6][0-4][0-9]{3}|[6][5][0-4][0-9]{2}|[6][5][5][0-2][0-9]|[6][5][5][3][0-5])|([1-9][0-9]{0,3}|[1-5][0-9]{4}|[6][0-4][0-9]{3}|[6][5][0-4][0-9]{2}|[6][5][5][0-2][0-9]|[6][5][5][3][0-5])-([1-9][0-9]{0,3}|[1-5][0-9]{4}|[6][0-4][0-9]{3}|[6][5][0-4][0-9]{2}|[6][5][5][0-2][0-9]|[6][5][5][3][0-5]))+(,([1-9][0-9]{0,3}|[1-5][0-9]{4}|[6][0-4][0-9]{3}|[6][5][0-4][0-9]{2}|[6][5][5][0-2][0-9]|[6][5][5][3][0-5])|,([1-9][0-9]{0,3}|[1-5][0-9]{4}|[6][0-4][0-9]{3}|[6][5][0-4][0-9]{2}|[6][5][5][0-2][0-9]|[6][5][5][3][0-5])-([1-9][0-9]{0,3}|[1-5][0-9]{4}|[6][0-4][0-9]{3}|[6][5][0-4][0-9]{2}|[6][5][5][0-2][0-9]|[6][5][5][3][0-5])){0,14}
	Enabled            bool                        `json:"enabled"`
	Fwd                string                      `json:"fwd,omitempty"`      // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$
	FwdPort            string                      `json:"fwd_port,omitempty"` // (([1-9][0-9]{0,3}|[1-5][0-9]{4}|[6][0-4][0-9]{3}|[6][5][0-4][0-9]{2}|[6][5][5][0-2][0-9]|[6][5][5][3][0-5])|([1-9][0-9]{0,3}|[1-5][0-9]{4}|[6][0-4][0-9]{3}|[6][5][0-4][0-9]{2}|[6][5][5][0-2][0-9]|[6][5][5][3][0-5])-([1-9][0-9]{0,3}|[1-5][0-9]{4}|[6][0-4][0-9]{3}|[6][5][0-4][0-9]{2}|[6][5][5][0-2][0-9]|[6][5][5][3][0-5]))+(,([1-9][0-9]{0,3}|[1-5][0-9]{4}|[6][0-4][0-9]{3}|[6][5][0-4][0-9]{2}|[6][5][5][0-2][0-9]|[6][5][5][3][0-5])|,([1-9][0-9]{0,3}|[1-5][0-9]{4}|[6][0-4][0-9]{3}|[6][5][0-4][0-9]{2}|[6][5][5][0-2][0-9]|[6][5][5][3][0-5])-([1-9][0-9]{0,3}|[1-5][0-9]{4}|[6][0-4][0-9]{3}|[6][5][0-4][0-9]{2}|[6][5][5][0-2][0-9]|[6][5][5][3][0-5])){0,14}
	Log                bool                        `json:"log"`
	Name               string                      `json:"name,omitempty"`           // .{1,128}
	PfwdInterface      string                      `json:"pfwd_interface,omitempty"` // wan|wan2|both|all
	Proto              string                      `json:"proto,omitempty"`          // tcp_udp|tcp|udp
	Src                string                      `json:"src,omitempty"`            // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])-(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/([0-9]|[1-2][0-9]|3[0-2])$|^!(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^!(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])-(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^!(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/([0-9]|[1-2][0-9]|3[0-2])$|^any$
	SrcFirewallGroupID string                      `json:"src_firewall_group_id"`
	SrcLimitingEnabled bool                        `json:"src_limiting_enabled"`
	SrcLimitingType    string                      `json:"src_limiting_type,omitempty"` // ip|firewall_group
}

func (*PortForward) UnmarshalJSON

func (dst *PortForward) UnmarshalJSON(b []byte) error

type PortForwardDestinationIPs

type PortForwardDestinationIPs struct {
	DestinationIP string `json:"destination_ip,omitempty"` // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^any$
	Interface     string `json:"interface,omitempty"`      // wan|wan2
}

func (*PortForwardDestinationIPs) UnmarshalJSON

func (dst *PortForwardDestinationIPs) UnmarshalJSON(b []byte) error

type PortProfile

type PortProfile struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Autoneg                      bool                  `json:"autoneg"`
	Dot1XCtrl                    string                `json:"dot1x_ctrl,omitempty"`             // auto|force_authorized|force_unauthorized|mac_based|multi_host
	Dot1XIDleTimeout             int                   `json:"dot1x_idle_timeout,omitempty"`     // [0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]
	EgressRateLimitKbps          int                   `json:"egress_rate_limit_kbps,omitempty"` // 6[4-9]|[7-9][0-9]|[1-9][0-9]{2,6}
	EgressRateLimitKbpsEnabled   bool                  `json:"egress_rate_limit_kbps_enabled"`
	ExcludedNetworkIDs           []string              `json:"excluded_networkconf_ids,omitempty"`
	FecMode                      string                `json:"fec_mode,omitempty"` // rs-fec|fc-fec|default|disabled
	Forward                      string                `json:"forward,omitempty"`  // all|native|customize|disabled
	FullDuplex                   bool                  `json:"full_duplex"`
	Isolation                    bool                  `json:"isolation"`
	LldpmedEnabled               bool                  `json:"lldpmed_enabled"`
	LldpmedNotifyEnabled         bool                  `json:"lldpmed_notify_enabled"`
	MulticastRouterNetworkIDs    []string              `json:"multicast_router_networkconf_ids,omitempty"`
	NATiveNetworkID              string                `json:"native_networkconf_id"`
	Name                         string                `json:"name,omitempty"`
	OpMode                       string                `json:"op_mode,omitempty"`  // switch
	PoeMode                      string                `json:"poe_mode,omitempty"` // auto|off
	PortKeepaliveEnabled         bool                  `json:"port_keepalive_enabled"`
	PortSecurityEnabled          bool                  `json:"port_security_enabled"`
	PortSecurityMACAddress       []string              `json:"port_security_mac_address,omitempty"` // ^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$
	PriorityQueue1Level          int                   `json:"priority_queue1_level,omitempty"`     // [0-9]|[1-9][0-9]|100
	PriorityQueue2Level          int                   `json:"priority_queue2_level,omitempty"`     // [0-9]|[1-9][0-9]|100
	PriorityQueue3Level          int                   `json:"priority_queue3_level,omitempty"`     // [0-9]|[1-9][0-9]|100
	PriorityQueue4Level          int                   `json:"priority_queue4_level,omitempty"`     // [0-9]|[1-9][0-9]|100
	QOSProfile                   PortProfileQOSProfile `json:"qos_profile,omitempty"`
	SettingPreference            string                `json:"setting_preference,omitempty"` // auto|manual
	Speed                        int                   `json:"speed,omitempty"`              // 10|100|1000|2500|5000|10000|20000|25000|40000|50000|100000
	StormctrlBroadcastastEnabled bool                  `json:"stormctrl_bcast_enabled"`
	StormctrlBroadcastastLevel   int                   `json:"stormctrl_bcast_level,omitempty"` // [0-9]|[1-9][0-9]|100
	StormctrlBroadcastastRate    int                   `json:"stormctrl_bcast_rate,omitempty"`  // [0-9]|[1-9][0-9]{1,6}|1[0-3][0-9]{6}|14[0-7][0-9]{5}|148[0-7][0-9]{4}|14880000
	StormctrlMcastEnabled        bool                  `json:"stormctrl_mcast_enabled"`
	StormctrlMcastLevel          int                   `json:"stormctrl_mcast_level,omitempty"` // [0-9]|[1-9][0-9]|100
	StormctrlMcastRate           int                   `json:"stormctrl_mcast_rate,omitempty"`  // [0-9]|[1-9][0-9]{1,6}|1[0-3][0-9]{6}|14[0-7][0-9]{5}|148[0-7][0-9]{4}|14880000
	StormctrlType                string                `json:"stormctrl_type,omitempty"`        // level|rate
	StormctrlUcastEnabled        bool                  `json:"stormctrl_ucast_enabled"`
	StormctrlUcastLevel          int                   `json:"stormctrl_ucast_level,omitempty"` // [0-9]|[1-9][0-9]|100
	StormctrlUcastRate           int                   `json:"stormctrl_ucast_rate,omitempty"`  // [0-9]|[1-9][0-9]{1,6}|1[0-3][0-9]{6}|14[0-7][0-9]{5}|148[0-7][0-9]{4}|14880000
	StpPortMode                  bool                  `json:"stp_port_mode"`
	TaggedVLANMgmt               string                `json:"tagged_vlan_mgmt,omitempty"` // auto|block_all|custom
	VoiceNetworkID               string                `json:"voice_networkconf_id"`
}

func (*PortProfile) UnmarshalJSON

func (dst *PortProfile) UnmarshalJSON(b []byte) error

type PortProfileQOSMarking

type PortProfileQOSMarking struct {
	CosCode          int `json:"cos_code,omitempty"`           // [0-7]
	DscpCode         int `json:"dscp_code,omitempty"`          // 0|8|16|24|32|40|48|56|10|12|14|18|20|22|26|28|30|34|36|38|44|46
	IPPrecedenceCode int `json:"ip_precedence_code,omitempty"` // [0-7]
	Queue            int `json:"queue,omitempty"`              // [0-7]
}

func (*PortProfileQOSMarking) UnmarshalJSON

func (dst *PortProfileQOSMarking) UnmarshalJSON(b []byte) error

type PortProfileQOSMatching

type PortProfileQOSMatching struct {
	CosCode          int    `json:"cos_code,omitempty"`           // [0-7]
	DscpCode         int    `json:"dscp_code,omitempty"`          // [0-9]|[1-5][0-9]|6[0-3]
	DstPort          int    `json:"dst_port,omitempty"`           // [0-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-4]|65535
	IPPrecedenceCode int    `json:"ip_precedence_code,omitempty"` // [0-7]
	Protocol         string `json:"protocol,omitempty"`           // ([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|ah|ax.25|dccp|ddp|egp|eigrp|encap|esp|etherip|fc|ggp|gre|hip|hmp|icmp|idpr-cmtp|idrp|igmp|igp|ip|ipcomp|ipencap|ipip|ipv6|ipv6-frag|ipv6-icmp|ipv6-nonxt|ipv6-opts|ipv6-route|isis|iso-tp4|l2tp|manet|mobility-header|mpls-in-ip|ospf|pim|pup|rdp|rohc|rspf|rsvp|sctp|shim6|skip|st|tcp|udp|udplite|vmtp|vrrp|wesp|xns-idp|xtp
	SrcPort          int    `json:"src_port,omitempty"`           // [0-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-4]|65535
}

func (*PortProfileQOSMatching) UnmarshalJSON

func (dst *PortProfileQOSMatching) UnmarshalJSON(b []byte) error

type PortProfileQOSPolicies

type PortProfileQOSPolicies struct {
	QOSMarking  PortProfileQOSMarking  `json:"qos_marking,omitempty"`
	QOSMatching PortProfileQOSMatching `json:"qos_matching,omitempty"`
}

func (*PortProfileQOSPolicies) UnmarshalJSON

func (dst *PortProfileQOSPolicies) UnmarshalJSON(b []byte) error

type PortProfileQOSProfile

type PortProfileQOSProfile struct {
	QOSPolicies    []PortProfileQOSPolicies `json:"qos_policies,omitempty"`
	QOSProfileMode string                   `json:"qos_profile_mode,omitempty"` // custom|unifi_play|aes67_audio|crestron_audio_video|dante_audio|ndi_aes67_audio|ndi_dante_audio|qsys_audio_video|qsys_video_dante_audio|sdvoe_aes67_audio|sdvoe_dante_audio|shure_audio
}

func (*PortProfileQOSProfile) UnmarshalJSON

func (dst *PortProfileQOSProfile) UnmarshalJSON(b []byte) error

type RADIUSProfile

type RADIUSProfile struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	AccountingEnabled         bool                       `json:"accounting_enabled"`
	AcctServers               []RADIUSProfileAcctServers `json:"acct_servers,omitempty"`
	AuthServers               []RADIUSProfileAuthServers `json:"auth_servers,omitempty"`
	InterimUpdateEnabled      bool                       `json:"interim_update_enabled"`
	InterimUpdateInterval     int                        `json:"interim_update_interval,omitempty"` // ^([6-9][0-9]|[1-9][0-9]{2,3}|[1-7][0-9]{4}|8[0-5][0-9]{3}|86[0-3][0-9][0-9]|86400)$
	Name                      string                     `json:"name,omitempty"`                    // .{1,128}
	TlsEnabled                bool                       `json:"tls_enabled"`
	UseUsgAcctServer          bool                       `json:"use_usg_acct_server"`
	UseUsgAuthServer          bool                       `json:"use_usg_auth_server"`
	VLANEnabled               bool                       `json:"vlan_enabled"`
	VLANWLANMode              string                     `json:"vlan_wlan_mode,omitempty"` // disabled|optional|required
	XCaCrts                   []RADIUSProfileXCaCrts     `json:"x_ca_crts,omitempty"`
	XClientCrt                string                     `json:"x_client_crt,omitempty"`
	XClientCrtFilename        string                     `json:"x_client_crt_filename,omitempty"`
	XClientPrivateKey         string                     `json:"x_client_private_key,omitempty"`
	XClientPrivateKeyFilename string                     `json:"x_client_private_key_filename,omitempty"`
	XClientPrivateKeyPassword string                     `json:"x_client_private_key_password,omitempty"`
}

func (*RADIUSProfile) UnmarshalJSON

func (dst *RADIUSProfile) UnmarshalJSON(b []byte) error

type RADIUSProfileAcctServers

type RADIUSProfileAcctServers struct {
	IP      string `json:"ip,omitempty"`   // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$
	Port    int    `json:"port,omitempty"` // ^([1-9][0-9]{0,3}|[1-5][0-9]{4}|[6][0-4][0-9]{3}|[6][5][0-4][0-9]{2}|[6][5][5][0-2][0-9]|[6][5][5][3][0-5])$|^$
	XSecret string `json:"x_secret,omitempty"`
}

func (*RADIUSProfileAcctServers) UnmarshalJSON

func (dst *RADIUSProfileAcctServers) UnmarshalJSON(b []byte) error

type RADIUSProfileAuthServers

type RADIUSProfileAuthServers struct {
	IP      string `json:"ip,omitempty"`   // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$
	Port    int    `json:"port,omitempty"` // ^([1-9][0-9]{0,3}|[1-5][0-9]{4}|[6][0-4][0-9]{3}|[6][5][0-4][0-9]{2}|[6][5][5][0-2][0-9]|[6][5][5][3][0-5])$|^$
	XSecret string `json:"x_secret,omitempty"`
}

func (*RADIUSProfileAuthServers) UnmarshalJSON

func (dst *RADIUSProfileAuthServers) UnmarshalJSON(b []byte) error

type RADIUSProfileXCaCrts added in v1.0.2

type RADIUSProfileXCaCrts struct {
	Filename string `json:"filename,omitempty"`
	XCaCrt   string `json:"x_ca_crt,omitempty"`
}

func (*RADIUSProfileXCaCrts) UnmarshalJSON added in v1.0.2

func (dst *RADIUSProfileXCaCrts) UnmarshalJSON(b []byte) error

type Routing

type Routing struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Enabled              bool   `json:"enabled"`
	GatewayDevice        string `json:"gateway_device,omitempty"`        // ^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$
	GatewayType          string `json:"gateway_type,omitempty"`          // default|switch
	Name                 string `json:"name,omitempty"`                  // .{1,128}
	StaticRouteDistance  int    `json:"static-route_distance,omitempty"` // ^[1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]$|^$
	StaticRouteInterface string `json:"static-route_interface"`          // WAN1|WAN2|[\d\w]+|^$
	StaticRouteNetwork   string `json:"static-route_network,omitempty"`  // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\/([1-9]|[1-2][0-9]|3[0-2])$|^([a-fA-F0-9:]+\/(([1-9]|[1-8][0-9]|9[0-9]|1[01][0-9]|12[0-8])))$
	StaticRouteNexthop   string `json:"static-route_nexthop"`            // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^([a-fA-F0-9:]+)$|^$
	StaticRouteType      string `json:"static-route_type,omitempty"`     // nexthop-route|interface-route|blackhole
	Type                 string `json:"type,omitempty"`                  // static-route
}

func (*Routing) UnmarshalJSON

func (dst *Routing) UnmarshalJSON(b []byte) error

type ScheduleTask

type ScheduleTask struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Action          string                       `json:"action,omitempty"` // upgrade
	CronExpr        string                       `json:"cron_expr,omitempty"`
	ExecuteOnlyOnce bool                         `json:"execute_only_once"`
	Name            string                       `json:"name,omitempty"`
	UpgradeTargets  []ScheduleTaskUpgradeTargets `json:"upgrade_targets,omitempty"`
}

func (*ScheduleTask) UnmarshalJSON

func (dst *ScheduleTask) UnmarshalJSON(b []byte) error

type ScheduleTaskUpgradeTargets

type ScheduleTaskUpgradeTargets struct {
	MAC string `json:"mac,omitempty"` // ^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})$
}

func (*ScheduleTaskUpgradeTargets) UnmarshalJSON

func (dst *ScheduleTaskUpgradeTargets) UnmarshalJSON(b []byte) error

type Setting

type Setting struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`
	Key    string `json:"key"`
}

type SettingAutoSpeedtest

type SettingAutoSpeedtest struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	CronExpr string `json:"cron_expr,omitempty"`
	Enabled  bool   `json:"enabled"`
}

func (*SettingAutoSpeedtest) UnmarshalJSON

func (dst *SettingAutoSpeedtest) UnmarshalJSON(b []byte) error

type SettingBaresip

type SettingBaresip struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	Enabled       bool   `json:"enabled"`
	OutboundProxy string `json:"outbound_proxy,omitempty"`
	PackageUrl    string `json:"package_url,omitempty"`
	Server        string `json:"server,omitempty"`
}

func (*SettingBaresip) UnmarshalJSON

func (dst *SettingBaresip) UnmarshalJSON(b []byte) error

type SettingBroadcast

type SettingBroadcast struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	SoundAfterEnabled   bool   `json:"sound_after_enabled"`
	SoundAfterResource  string `json:"sound_after_resource,omitempty"`
	SoundAfterType      string `json:"sound_after_type,omitempty"` // sample|media
	SoundBeforeEnabled  bool   `json:"sound_before_enabled"`
	SoundBeforeResource string `json:"sound_before_resource,omitempty"`
	SoundBeforeType     string `json:"sound_before_type,omitempty"` // sample|media
}

func (*SettingBroadcast) UnmarshalJSON

func (dst *SettingBroadcast) UnmarshalJSON(b []byte) error

type SettingConnectivity

type SettingConnectivity struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	EnableIsolatedWLAN bool   `json:"enable_isolated_wlan"`
	Enabled            bool   `json:"enabled"`
	UplinkHost         string `json:"uplink_host,omitempty"`
	UplinkType         string `json:"uplink_type,omitempty"`
	XMeshEssid         string `json:"x_mesh_essid,omitempty"`
	XMeshPsk           string `json:"x_mesh_psk,omitempty"`
}

func (*SettingConnectivity) UnmarshalJSON

func (dst *SettingConnectivity) UnmarshalJSON(b []byte) error

type SettingCountry

type SettingCountry struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	Code int `json:"code,omitempty"`
}

func (*SettingCountry) UnmarshalJSON

func (dst *SettingCountry) UnmarshalJSON(b []byte) error

type SettingDashboard

type SettingDashboard struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	LayoutPreference string                    `json:"layout_preference,omitempty"` // auto|manual
	Widgets          []SettingDashboardWidgets `json:"widgets,omitempty"`
}

func (*SettingDashboard) UnmarshalJSON

func (dst *SettingDashboard) UnmarshalJSON(b []byte) error

type SettingDashboardWidgets

type SettingDashboardWidgets struct {
	Name string `json:"name,omitempty"` // traffic_identification|connection_types|wifi_technology|most_active_clients|most_active_aps|meshing|network_activity|wireless_experience|internet|wifi_activity|wifi_channels|wifi_client_experience|wifi_tx_retries|admin_activity|device_client_count|server_ip|speed_test|device_capacity|connectivity_status|system_status|wan|gateway|ap_density|most_active_apps_aps_clients|most_active_apps_clients|most_active_aps_clients|most_active_apps_aps|most_active_apps|v2_most_active_aps|v2_most_active_clients|wifi_connectivity|next_ai|wan_history
}

func (*SettingDashboardWidgets) UnmarshalJSON

func (dst *SettingDashboardWidgets) UnmarshalJSON(b []byte) error

type SettingDoh

type SettingDoh struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	CustomServers []SettingDohCustomServers `json:"custom_servers,omitempty"`
	ServerNames   []string                  `json:"server_names,omitempty"`
	State         string                    `json:"state,omitempty"` // off|auto|manual|custom
}

func (*SettingDoh) UnmarshalJSON

func (dst *SettingDoh) UnmarshalJSON(b []byte) error

type SettingDohCustomServers added in v1.0.1

type SettingDohCustomServers struct {
	Enabled    bool   `json:"enabled"`
	SdnsStamp  string `json:"sdns_stamp,omitempty"`
	ServerName string `json:"server_name,omitempty"`
}

func (*SettingDohCustomServers) UnmarshalJSON added in v1.0.1

func (dst *SettingDohCustomServers) UnmarshalJSON(b []byte) error

type SettingDpi

type SettingDpi struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	Enabled               bool `json:"enabled"`
	FingerprintingEnabled bool `json:"fingerprintingEnabled"`
}

func (*SettingDpi) UnmarshalJSON

func (dst *SettingDpi) UnmarshalJSON(b []byte) error

type SettingElementAdopt

type SettingElementAdopt struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	Enabled       bool   `json:"enabled"`
	XElementEssid string `json:"x_element_essid,omitempty"`
	XElementPsk   string `json:"x_element_psk,omitempty"`
}

func (*SettingElementAdopt) UnmarshalJSON

func (dst *SettingElementAdopt) UnmarshalJSON(b []byte) error

type SettingEtherLighting

type SettingEtherLighting struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	NetworkOverrides []SettingEtherLightingNetworkOverrides `json:"network_overrides,omitempty"`
	SpeedOverrides   []SettingEtherLightingSpeedOverrides   `json:"speed_overrides,omitempty"`
}

func (*SettingEtherLighting) UnmarshalJSON

func (dst *SettingEtherLighting) UnmarshalJSON(b []byte) error

type SettingEtherLightingNetworkOverrides

type SettingEtherLightingNetworkOverrides struct {
	Key         string `json:"key,omitempty"`
	RawColorHex string `json:"raw_color_hex,omitempty"` // [0-9A-Fa-f]{6}
}

func (*SettingEtherLightingNetworkOverrides) UnmarshalJSON

func (dst *SettingEtherLightingNetworkOverrides) UnmarshalJSON(b []byte) error

type SettingEtherLightingSpeedOverrides

type SettingEtherLightingSpeedOverrides struct {
	Key         string `json:"key,omitempty"`           // FE|GbE|2.5GbE|5GbE|10GbE|25GbE|40GbE|100GbE
	RawColorHex string `json:"raw_color_hex,omitempty"` // [0-9A-Fa-f]{6}
}

func (*SettingEtherLightingSpeedOverrides) UnmarshalJSON

func (dst *SettingEtherLightingSpeedOverrides) UnmarshalJSON(b []byte) error

type SettingEvaluationScore

type SettingEvaluationScore struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	DismissedIDs []string `json:"dismissed_ids,omitempty"` // ^[a-zA-Z]{2}[0-9]{2,3}$|^$
}

func (*SettingEvaluationScore) UnmarshalJSON

func (dst *SettingEvaluationScore) UnmarshalJSON(b []byte) error

type SettingGlobalAp

type SettingGlobalAp struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	ApExclusions    []string `json:"ap_exclusions,omitempty"`    // ^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})$
	NaChannelSize   int      `json:"na_channel_size,omitempty"`  // 20|40|80|160
	NaTxPower       int      `json:"na_tx_power,omitempty"`      // [0-9]|[1-4][0-9]
	NaTxPowerMode   string   `json:"na_tx_power_mode,omitempty"` // auto|medium|high|low|custom
	NgChannelSize   int      `json:"ng_channel_size,omitempty"`  // 20|40
	NgTxPower       int      `json:"ng_tx_power,omitempty"`      // [0-9]|[1-4][0-9]
	NgTxPowerMode   string   `json:"ng_tx_power_mode,omitempty"` // auto|medium|high|low|custom
	SixEChannelSize int      `json:"6e_channel_size,omitempty"`  // 20|40|80|160
	SixETxPower     int      `json:"6e_tx_power,omitempty"`      // [0-9]|[1-4][0-9]
	SixETxPowerMode string   `json:"6e_tx_power_mode,omitempty"` // auto|medium|high|low|custom
}

func (*SettingGlobalAp) UnmarshalJSON

func (dst *SettingGlobalAp) UnmarshalJSON(b []byte) error

type SettingGlobalNat

type SettingGlobalNat struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	ExcludedNetworkIDs []string `json:"excluded_network_ids,omitempty"`
	Mode               string   `json:"mode,omitempty"` // auto|custom|off
}

func (*SettingGlobalNat) UnmarshalJSON

func (dst *SettingGlobalNat) UnmarshalJSON(b []byte) error

type SettingGlobalSwitch

type SettingGlobalSwitch struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	AclDeviceIsolation     []string                            `json:"acl_device_isolation,omitempty"`
	AclL3Isolation         []SettingGlobalSwitchAclL3Isolation `json:"acl_l3_isolation,omitempty"`
	DHCPSnoop              bool                                `json:"dhcp_snoop"`
	Dot1XFallbackNetworkID string                              `json:"dot1x_fallback_networkconf_id"` // [\d\w]+|
	Dot1XPortctrlEnabled   bool                                `json:"dot1x_portctrl_enabled"`
	FlowctrlEnabled        bool                                `json:"flowctrl_enabled"`
	JumboframeEnabled      bool                                `json:"jumboframe_enabled"`
	RADIUSProfileID        string                              `json:"radiusprofile_id"`
	StpVersion             string                              `json:"stp_version,omitempty"`       // stp|rstp|disabled
	SwitchExclusions       []string                            `json:"switch_exclusions,omitempty"` // ^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})$
}

func (*SettingGlobalSwitch) UnmarshalJSON

func (dst *SettingGlobalSwitch) UnmarshalJSON(b []byte) error

type SettingGlobalSwitchAclL3Isolation

type SettingGlobalSwitchAclL3Isolation struct {
	DestinationNetworks []string `json:"destination_networks,omitempty"`
	SourceNetwork       string   `json:"source_network,omitempty"`
}

func (*SettingGlobalSwitchAclL3Isolation) UnmarshalJSON

func (dst *SettingGlobalSwitchAclL3Isolation) UnmarshalJSON(b []byte) error

type SettingGuestAccess

type SettingGuestAccess struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	AllowedSubnet                          string   `json:"allowed_subnet_,omitempty"`
	Auth                                   string   `json:"auth,omitempty"` // none|hotspot|facebook_wifi|custom
	AuthUrl                                string   `json:"auth_url,omitempty"`
	AuthorizeUseSandbox                    bool     `json:"authorize_use_sandbox"`
	CustomIP                               string   `json:"custom_ip"` // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^$
	EcEnabled                              bool     `json:"ec_enabled"`
	Expire                                 string   `json:"expire,omitempty"`        // [\d]+|custom
	ExpireNumber                           int      `json:"expire_number,omitempty"` // ^[1-9][0-9]{0,5}|1000000$
	ExpireUnit                             int      `json:"expire_unit,omitempty"`   // 1|60|1440
	FacebookAppID                          string   `json:"facebook_app_id"`
	FacebookEnabled                        bool     `json:"facebook_enabled"`
	FacebookScopeEmail                     bool     `json:"facebook_scope_email"`
	FacebookWifiBlockHttps                 bool     `json:"facebook_wifi_block_https"`
	FacebookWifiGwID                       string   `json:"facebook_wifi_gw_id"`
	FacebookWifiGwName                     string   `json:"facebook_wifi_gw_name,omitempty"`
	Gateway                                string   `json:"gateway,omitempty"` // paypal|stripe|authorize|quickpay|merchantwarrior|ippay
	GoogleClientID                         string   `json:"google_client_id"`
	GoogleDomain                           string   `json:"google_domain,omitempty"`
	GoogleEnabled                          bool     `json:"google_enabled"`
	GoogleScopeEmail                       bool     `json:"google_scope_email"`
	IPpayUseSandbox                        bool     `json:"ippay_use_sandbox"`
	MerchantwarriorUseSandbox              bool     `json:"merchantwarrior_use_sandbox"`
	PasswordEnabled                        bool     `json:"password_enabled"`
	PaymentEnabled                         bool     `json:"payment_enabled"`
	PaypalUseSandbox                       bool     `json:"paypal_use_sandbox"`
	PortalCustomized                       bool     `json:"portal_customized"`
	PortalCustomizedAuthenticationText     string   `json:"portal_customized_authentication_text,omitempty"`
	PortalCustomizedBgColor                string   `json:"portal_customized_bg_color"` // ^#[a-zA-Z0-9]{6}$|^#[a-zA-Z0-9]{3}$|^$
	PortalCustomizedBgImageEnabled         bool     `json:"portal_customized_bg_image_enabled"`
	PortalCustomizedBgImageFilename        string   `json:"portal_customized_bg_image_filename,omitempty"`
	PortalCustomizedBgImageTile            bool     `json:"portal_customized_bg_image_tile"`
	PortalCustomizedBgType                 string   `json:"portal_customized_bg_type,omitempty"`     // color|image|gallery
	PortalCustomizedBoxColor               string   `json:"portal_customized_box_color"`             // ^#[a-zA-Z0-9]{6}$|^#[a-zA-Z0-9]{3}$|^$
	PortalCustomizedBoxLinkColor           string   `json:"portal_customized_box_link_color"`        // ^#[a-zA-Z0-9]{6}$|^#[a-zA-Z0-9]{3}$|^$
	PortalCustomizedBoxOpacity             int      `json:"portal_customized_box_opacity,omitempty"` // ^[1-9][0-9]?$|^100$|^$
	PortalCustomizedBoxRADIUS              int      `json:"portal_customized_box_radius,omitempty"`  // [0-9]|[1-4][0-9]|50
	PortalCustomizedBoxTextColor           string   `json:"portal_customized_box_text_color"`        // ^#[a-zA-Z0-9]{6}$|^#[a-zA-Z0-9]{3}$|^$
	PortalCustomizedButtonColor            string   `json:"portal_customized_button_color"`          // ^#[a-zA-Z0-9]{6}$|^#[a-zA-Z0-9]{3}$|^$
	PortalCustomizedButtonText             string   `json:"portal_customized_button_text,omitempty"`
	PortalCustomizedButtonTextColor        string   `json:"portal_customized_button_text_color"`   // ^#[a-zA-Z0-9]{6}$|^#[a-zA-Z0-9]{3}$|^$
	PortalCustomizedLanguages              []string `json:"portal_customized_languages,omitempty"` // ^[a-z]{2}([_-][a-zA-Z]{2,4})*$
	PortalCustomizedLinkColor              string   `json:"portal_customized_link_color"`          // ^#[a-zA-Z0-9]{6}$|^#[a-zA-Z0-9]{3}$|^$
	PortalCustomizedLogoEnabled            bool     `json:"portal_customized_logo_enabled"`
	PortalCustomizedLogoFilename           string   `json:"portal_customized_logo_filename,omitempty"`
	PortalCustomizedLogoPosition           string   `json:"portal_customized_logo_position,omitempty"` // left|center|right
	PortalCustomizedLogoSize               int      `json:"portal_customized_logo_size,omitempty"`     // 6[4-9]|[7-9][0-9]|1[0-8][0-9]|19[0-2]
	PortalCustomizedSuccessText            string   `json:"portal_customized_success_text,omitempty"`
	PortalCustomizedTextColor              string   `json:"portal_customized_text_color"` // ^#[a-zA-Z0-9]{6}$|^#[a-zA-Z0-9]{3}$|^$
	PortalCustomizedTitle                  string   `json:"portal_customized_title,omitempty"`
	PortalCustomizedTos                    string   `json:"portal_customized_tos,omitempty"`
	PortalCustomizedTosEnabled             bool     `json:"portal_customized_tos_enabled"`
	PortalCustomizedUnsplashAuthorName     string   `json:"portal_customized_unsplash_author_name,omitempty"`
	PortalCustomizedUnsplashAuthorUsername string   `json:"portal_customized_unsplash_author_username,omitempty"`
	PortalCustomizedWelcomeText            string   `json:"portal_customized_welcome_text,omitempty"`
	PortalCustomizedWelcomeTextEnabled     bool     `json:"portal_customized_welcome_text_enabled"`
	PortalCustomizedWelcomeTextPosition    string   `json:"portal_customized_welcome_text_position,omitempty"` // under_logo|above_boxes
	PortalEnabled                          bool     `json:"portal_enabled"`
	PortalHostname                         string   `json:"portal_hostname"` // ^[a-zA-Z0-9.-]+$|^$
	PortalUseHostname                      bool     `json:"portal_use_hostname"`
	QuickpayTestmode                       bool     `json:"quickpay_testmode"`
	RADIUSAuthType                         string   `json:"radius_auth_type,omitempty"` // chap|mschapv2
	RADIUSDisconnectEnabled                bool     `json:"radius_disconnect_enabled"`
	RADIUSDisconnectPort                   int      `json:"radius_disconnect_port,omitempty"` // [1-9][0-9]{0,3}|[1-5][0-9]{4}|[6][0-4][0-9]{3}|[6][5][0-4][0-9]{2}|[6][5][5][0-2][0-9]|[6][5][5][3][0-5]
	RADIUSEnabled                          bool     `json:"radius_enabled"`
	RADIUSProfileID                        string   `json:"radiusprofile_id"`
	RedirectEnabled                        bool     `json:"redirect_enabled"`
	RedirectHttps                          bool     `json:"redirect_https"`
	RedirectToHttps                        bool     `json:"redirect_to_https"`
	RedirectUrl                            string   `json:"redirect_url,omitempty"`
	RestrictedDNSEnabled                   bool     `json:"restricted_dns_enabled"`
	RestrictedDNSServers                   []string `json:"restricted_dns_servers,omitempty"` // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^$
	RestrictedSubnet                       string   `json:"restricted_subnet_,omitempty"`
	TemplateEngine                         string   `json:"template_engine,omitempty"` // jsp|angular
	VoucherCustomized                      bool     `json:"voucher_customized"`
	VoucherEnabled                         bool     `json:"voucher_enabled"`
	WechatAppID                            string   `json:"wechat_app_id"`
	WechatEnabled                          bool     `json:"wechat_enabled"`
	WechatShopID                           string   `json:"wechat_shop_id"`
	XAuthorizeLoginid                      string   `json:"x_authorize_loginid,omitempty"`
	XAuthorizeTransactionkey               string   `json:"x_authorize_transactionkey,omitempty"`
	XFacebookAppSecret                     string   `json:"x_facebook_app_secret,omitempty"`
	XFacebookWifiGwSecret                  string   `json:"x_facebook_wifi_gw_secret,omitempty"`
	XGoogleClientSecret                    string   `json:"x_google_client_secret,omitempty"`
	XIPpayTerminalid                       string   `json:"x_ippay_terminalid,omitempty"`
	XMerchantwarriorApikey                 string   `json:"x_merchantwarrior_apikey,omitempty"`
	XMerchantwarriorApipassphrase          string   `json:"x_merchantwarrior_apipassphrase,omitempty"`
	XMerchantwarriorMerchantuuid           string   `json:"x_merchantwarrior_merchantuuid,omitempty"`
	XPassword                              string   `json:"x_password,omitempty"`
	XPaypalPassword                        string   `json:"x_paypal_password,omitempty"`
	XPaypalSignature                       string   `json:"x_paypal_signature,omitempty"`
	XPaypalUsername                        string   `json:"x_paypal_username,omitempty"`
	XQuickpayAgreementid                   string   `json:"x_quickpay_agreementid,omitempty"`
	XQuickpayApikey                        string   `json:"x_quickpay_apikey,omitempty"`
	XQuickpayMerchantid                    string   `json:"x_quickpay_merchantid,omitempty"`
	XStripeApiKey                          string   `json:"x_stripe_api_key,omitempty"`
	XWechatAppSecret                       string   `json:"x_wechat_app_secret,omitempty"`
	XWechatSecretKey                       string   `json:"x_wechat_secret_key,omitempty"`
}

func (*SettingGuestAccess) UnmarshalJSON

func (dst *SettingGuestAccess) UnmarshalJSON(b []byte) error

type SettingIps

type SettingIps struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	AdBlockingConfigurations    []SettingIpsAdBlockingConfigurations `json:"ad_blocking_configurations,omitempty"`
	AdBlockingEnabled           bool                                 `json:"ad_blocking_enabled"`
	AdvancedFilteringPreference string                               `json:"advanced_filtering_preference,omitempty"` // |auto|manual|disabled
	DNSFiltering                bool                                 `json:"dns_filtering"`
	DNSFilters                  []SettingIpsDNSFilters               `json:"dns_filters,omitempty"`
	EnabledCategories           []string                             `json:"enabled_categories,omitempty"` // emerging-activex|emerging-attackresponse|botcc|emerging-chat|ciarmy|compromised|emerging-dns|emerging-dos|dshield|emerging-exploit|emerging-ftp|emerging-games|emerging-icmp|emerging-icmpinfo|emerging-imap|emerging-inappropriate|emerging-info|emerging-malware|emerging-misc|emerging-mobile|emerging-netbios|emerging-p2p|emerging-policy|emerging-pop3|emerging-rpc|emerging-scada|emerging-scan|emerging-shellcode|emerging-smtp|emerging-snmp|emerging-sql|emerging-telnet|emerging-tftp|tor|emerging-trojan|emerging-useragent|emerging-voip|emerging-webapps|emerging-webclient|emerging-webserver|emerging-worm|exploit-kit|adware-pup|botcc-portgrouped|phishing|threatview-cs-c2|3coresec|chat|coinminer|current-events|drop|hunting|icmp-info|inappropriate|info|ja3|policy|scada
	EnabledNetworks             []string                             `json:"enabled_networks,omitempty"`
	Honeypot                    []SettingIpsHoneypot                 `json:"honeypot,omitempty"`
	HoneypotEnabled             bool                                 `json:"honeypot_enabled"`
	IPsMode                     string                               `json:"ips_mode,omitempty"` // ids|ips|ipsInline|disabled
	RestrictIPAddresses         bool                                 `json:"restrict_ip_addresses"`
	RestrictTor                 bool                                 `json:"restrict_tor"`
	RestrictTorrents            bool                                 `json:"restrict_torrents"`
	Suppression                 SettingIpsSuppression                `json:"suppression,omitempty"`
}

func (*SettingIps) UnmarshalJSON

func (dst *SettingIps) UnmarshalJSON(b []byte) error

type SettingIpsAdBlockingConfigurations

type SettingIpsAdBlockingConfigurations struct {
	NetworkID string `json:"network_id"`
}

func (*SettingIpsAdBlockingConfigurations) UnmarshalJSON

func (dst *SettingIpsAdBlockingConfigurations) UnmarshalJSON(b []byte) error

type SettingIpsAlerts

type SettingIpsAlerts struct {
	Category  string               `json:"category,omitempty"`
	Gid       int                  `json:"gid,omitempty"`
	ID        int                  `json:"id,omitempty"`
	Signature string               `json:"signature,omitempty"`
	Tracking  []SettingIpsTracking `json:"tracking,omitempty"`
	Type      string               `json:"type,omitempty"` // all|track
}

func (*SettingIpsAlerts) UnmarshalJSON

func (dst *SettingIpsAlerts) UnmarshalJSON(b []byte) error

type SettingIpsDNSFilters

type SettingIpsDNSFilters struct {
	AllowedSites []string `json:"allowed_sites,omitempty"` // ^[a-zA-Z0-9.-]+$|^$
	BlockedSites []string `json:"blocked_sites,omitempty"` // ^[a-zA-Z0-9.-]+$|^$
	BlockedTld   []string `json:"blocked_tld,omitempty"`   // ^[a-zA-Z0-9.-]+$|^$
	Description  string   `json:"description,omitempty"`
	Filter       string   `json:"filter,omitempty"` // none|work|family
	Name         string   `json:"name,omitempty"`
	NetworkID    string   `json:"network_id"`
	Version      string   `json:"version,omitempty"` // v4|v6
}

func (*SettingIpsDNSFilters) UnmarshalJSON

func (dst *SettingIpsDNSFilters) UnmarshalJSON(b []byte) error

type SettingIpsHoneypot

type SettingIpsHoneypot struct {
	IPAddress string `json:"ip_address,omitempty"`
	NetworkID string `json:"network_id"`
	Version   string `json:"version,omitempty"` // v4|v6
}

func (*SettingIpsHoneypot) UnmarshalJSON

func (dst *SettingIpsHoneypot) UnmarshalJSON(b []byte) error

type SettingIpsSuppression

type SettingIpsSuppression struct {
	Alerts    []SettingIpsAlerts    `json:"alerts,omitempty"`
	Whitelist []SettingIpsWhitelist `json:"whitelist,omitempty"`
}

func (*SettingIpsSuppression) UnmarshalJSON

func (dst *SettingIpsSuppression) UnmarshalJSON(b []byte) error

type SettingIpsTracking

type SettingIpsTracking struct {
	Direction string `json:"direction,omitempty"` // both|src|dest
	Mode      string `json:"mode,omitempty"`      // ip|subnet|network
	Value     string `json:"value,omitempty"`
}

func (*SettingIpsTracking) UnmarshalJSON

func (dst *SettingIpsTracking) UnmarshalJSON(b []byte) error

type SettingIpsWhitelist

type SettingIpsWhitelist struct {
	Direction string `json:"direction,omitempty"` // both|src|dest
	Mode      string `json:"mode,omitempty"`      // ip|subnet|network
	Value     string `json:"value,omitempty"`
}

func (*SettingIpsWhitelist) UnmarshalJSON

func (dst *SettingIpsWhitelist) UnmarshalJSON(b []byte) error

type SettingLcm

type SettingLcm struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	Brightness  int  `json:"brightness,omitempty"` // [1-9]|[1-9][0-9]|100
	Enabled     bool `json:"enabled"`
	IDleTimeout int  `json:"idle_timeout,omitempty"` // [1-9][0-9]|[1-9][0-9][0-9]|[1-2][0-9][0-9][0-9]|3[0-5][0-9][0-9]|3600
	Sync        bool `json:"sync"`
	TouchEvent  bool `json:"touch_event"`
}

func (*SettingLcm) UnmarshalJSON

func (dst *SettingLcm) UnmarshalJSON(b []byte) error

type SettingLocale

type SettingLocale struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	Timezone string `json:"timezone,omitempty"`
}

func (*SettingLocale) UnmarshalJSON

func (dst *SettingLocale) UnmarshalJSON(b []byte) error

type SettingMagicSiteToSiteVpn

type SettingMagicSiteToSiteVpn struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	Enabled bool `json:"enabled"`
}

func (*SettingMagicSiteToSiteVpn) UnmarshalJSON

func (dst *SettingMagicSiteToSiteVpn) UnmarshalJSON(b []byte) error

type SettingMgmt

type SettingMgmt struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	AdvancedFeatureEnabled  bool                  `json:"advanced_feature_enabled"`
	AlertEnabled            bool                  `json:"alert_enabled"`
	AutoUpgrade             bool                  `json:"auto_upgrade"`
	AutoUpgradeHour         int                   `json:"auto_upgrade_hour,omitempty"` // [0-9]|1[0-9]|2[0-3]|^$
	BootSound               bool                  `json:"boot_sound"`
	DebugToolsEnabled       bool                  `json:"debug_tools_enabled"`
	DirectConnectEnabled    bool                  `json:"direct_connect_enabled"`
	LedEnabled              bool                  `json:"led_enabled"`
	OutdoorModeEnabled      bool                  `json:"outdoor_mode_enabled"`
	UnifiIDpEnabled         bool                  `json:"unifi_idp_enabled"`
	WifimanEnabled          bool                  `json:"wifiman_enabled"`
	XMgmtKey                string                `json:"x_mgmt_key,omitempty"` // [0-9a-f]{32}
	XSshAuthPasswordEnabled bool                  `json:"x_ssh_auth_password_enabled"`
	XSshBindWildcard        bool                  `json:"x_ssh_bind_wildcard"`
	XSshEnabled             bool                  `json:"x_ssh_enabled"`
	XSshKeys                []SettingMgmtXSshKeys `json:"x_ssh_keys,omitempty"`
	XSshMd5Passwd           string                `json:"x_ssh_md5passwd,omitempty"`
	XSshPassword            string                `json:"x_ssh_password,omitempty"` // .{1,128}
	XSshSha512Passwd        string                `json:"x_ssh_sha512passwd,omitempty"`
	XSshUsername            string                `json:"x_ssh_username,omitempty"` // ^[_A-Za-z0-9][-_.A-Za-z0-9]{0,29}$
}

func (*SettingMgmt) UnmarshalJSON

func (dst *SettingMgmt) UnmarshalJSON(b []byte) error

type SettingMgmtXSshKeys

type SettingMgmtXSshKeys struct {
	Comment     string `json:"comment"`
	Date        string `json:"date"`
	Fingerprint string `json:"fingerprint"`
	Key         string `json:"key"`
	KeyType     string `json:"type"`
	Name        string `json:"name"`
}

func (*SettingMgmtXSshKeys) UnmarshalJSON

func (dst *SettingMgmtXSshKeys) UnmarshalJSON(b []byte) error

type SettingNetflow added in v1.0.2

type SettingNetflow struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	AutoEngineIDEnabled bool     `json:"auto_engine_id_enabled"`
	Enabled             bool     `json:"enabled"`
	EngineID            int      `json:"engine_id,omitempty"` // ^$|[1-9][0-9]*
	ExportFrequency     int      `json:"export_frequency,omitempty"`
	NetworkIDs          []string `json:"network_ids,omitempty"`
	Port                int      `json:"port,omitempty"` // [1-9][0-9]{0,3}|[1-5][0-9]{4}|[6][0-4][0-9]{3}|[6][5][0-4][0-9]{2}|[6][5][5][0-2][0-9]|[6][5][5][3][0-5]
	RefreshRate         int      `json:"refresh_rate,omitempty"`
	SamplingMode        string   `json:"sampling_mode,omitempty"` // off|hash|random|deterministic
	SamplingRate        int      `json:"sampling_rate,omitempty"` // [2-9]|[1-9][0-9]{1,3}|1[0-5][0-9]{3}|16[0-2][0-9]{2}|163[0-7][0-9]|1638[0-3]|^$
	Server              string   `json:"server,omitempty"`        // .{0,252}[^\.]$
	Version             int      `json:"version,omitempty"`       // 5|9|10
}

func (*SettingNetflow) UnmarshalJSON added in v1.0.2

func (dst *SettingNetflow) UnmarshalJSON(b []byte) error

type SettingNetworkOptimization

type SettingNetworkOptimization struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	Enabled bool `json:"enabled"`
}

func (*SettingNetworkOptimization) UnmarshalJSON

func (dst *SettingNetworkOptimization) UnmarshalJSON(b []byte) error

type SettingNtp

type SettingNtp struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	NtpServer1        string `json:"ntp_server_1,omitempty"`
	NtpServer2        string `json:"ntp_server_2,omitempty"`
	NtpServer3        string `json:"ntp_server_3,omitempty"`
	NtpServer4        string `json:"ntp_server_4,omitempty"`
	SettingPreference string `json:"setting_preference,omitempty"` // auto|manual
}

func (*SettingNtp) UnmarshalJSON

func (dst *SettingNtp) UnmarshalJSON(b []byte) error

type SettingPorta

type SettingPorta struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	Ugw3WAN2Enabled bool `json:"ugw3_wan2_enabled"`
}

func (*SettingPorta) UnmarshalJSON

func (dst *SettingPorta) UnmarshalJSON(b []byte) error

type SettingProviderCapabilities

type SettingProviderCapabilities struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	Download int  `json:"download,omitempty"` // ^[1-9][0-9]*$
	Enabled  bool `json:"enabled"`
	Upload   int  `json:"upload,omitempty"` // ^[1-9][0-9]*$
}

func (*SettingProviderCapabilities) UnmarshalJSON

func (dst *SettingProviderCapabilities) UnmarshalJSON(b []byte) error

type SettingRadioAi

type SettingRadioAi struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	AutoAdjustChannelsToCountry bool                              `json:"auto_adjust_channels_to_country"`
	Channels6E                  []int                             `json:"channels_6e,omitempty"` // [1-9]|[1-2][0-9]|3[3-9]|[4-5][0-9]|6[0-1]|6[5-9]|[7-8][0-9]|9[0-3]|9[7-9]|1[0-1][0-9]|12[0-5]|129|1[3-4][0-9]|15[0-7]|16[1-9]|1[7-8][0-9]|19[3-9]|2[0-1][0-9]|22[0-1]|22[5-9]|233
	ChannelsBlacklist           []SettingRadioAiChannelsBlacklist `json:"channels_blacklist,omitempty"`
	ChannelsNa                  []int                             `json:"channels_na,omitempty"` // 34|36|38|40|42|44|46|48|52|56|60|64|100|104|108|112|116|120|124|128|132|136|140|144|149|153|157|161|165|169
	ChannelsNg                  []int                             `json:"channels_ng,omitempty"` // 1|2|3|4|5|6|7|8|9|10|11|12|13|14
	CronExpr                    string                            `json:"cron_expr,omitempty"`
	Default                     bool                              `json:"default"`
	Enabled                     bool                              `json:"enabled"`
	ExcludeDevices              []string                          `json:"exclude_devices,omitempty"`    // ([0-9a-z]{2}:){5}[0-9a-z]{2}
	HtModesNa                   []int                             `json:"ht_modes_na,omitempty"`        // ^(20|40|80|160)$
	HtModesNg                   []int                             `json:"ht_modes_ng,omitempty"`        // ^(20|40)$
	Optimize                    []string                          `json:"optimize,omitempty"`           // channel|power
	Radios                      []string                          `json:"radios,omitempty"`             // na|ng
	SettingPreference           string                            `json:"setting_preference,omitempty"` // auto|manual
	UseXy                       bool                              `json:"useXY"`
}

func (*SettingRadioAi) UnmarshalJSON

func (dst *SettingRadioAi) UnmarshalJSON(b []byte) error

type SettingRadioAiChannelsBlacklist added in v1.0.1

type SettingRadioAiChannelsBlacklist struct {
	Channel      int    `json:"channel,omitempty"`       // [1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-9]|2[0-1][0-9]|22[0-1]|22[5-9]|233
	ChannelWidth int    `json:"channel_width,omitempty"` // 20|40|80|160|240|320
	Radio        string `json:"radio,omitempty"`         // na|ng|6e
}

func (*SettingRadioAiChannelsBlacklist) UnmarshalJSON added in v1.0.1

func (dst *SettingRadioAiChannelsBlacklist) UnmarshalJSON(b []byte) error

type SettingRadius

type SettingRadius struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	AccountingEnabled     bool   `json:"accounting_enabled"`
	AcctPort              int    `json:"acct_port,omitempty"` // [1-9][0-9]{0,3}|[1-5][0-9]{4}|[6][0-4][0-9]{3}|[6][5][0-4][0-9]{2}|[6][5][5][0-2][0-9]|[6][5][5][3][0-5]
	AuthPort              int    `json:"auth_port,omitempty"` // [1-9][0-9]{0,3}|[1-5][0-9]{4}|[6][0-4][0-9]{3}|[6][5][0-4][0-9]{2}|[6][5][5][0-2][0-9]|[6][5][5][3][0-5]
	ConfigureWholeNetwork bool   `json:"configure_whole_network"`
	Enabled               bool   `json:"enabled"`
	InterimUpdateInterval int    `json:"interim_update_interval,omitempty"` // ^([6-9][0-9]|[1-9][0-9]{2,3}|[1-7][0-9]{4}|8[0-5][0-9]{3}|86[0-3][0-9][0-9]|86400)$
	TunneledReply         bool   `json:"tunneled_reply"`
	XSecret               string `json:"x_secret,omitempty"` // ^[^\\"' ]{1,48}$
}

func (*SettingRadius) UnmarshalJSON

func (dst *SettingRadius) UnmarshalJSON(b []byte) error

type SettingRsyslogd

type SettingRsyslogd struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	Contents                    []string `json:"contents,omitempty"` // device|client|triggers|updates|admin_activity|critical|security_detections|vpn
	Debug                       bool     `json:"debug"`
	Enabled                     bool     `json:"enabled"`
	IP                          string   `json:"ip,omitempty"`
	LogAllContents              bool     `json:"log_all_contents"`
	NetconsoleEnabled           bool     `json:"netconsole_enabled"`
	NetconsoleHost              string   `json:"netconsole_host,omitempty"`
	NetconsolePort              int      `json:"netconsole_port,omitempty"` // [1-9][0-9]{0,3}|[1-5][0-9]{4}|[6][0-4][0-9]{3}|[6][5][0-4][0-9]{2}|[6][5][5][0-2][0-9]|[6][5][5][3][0-5]
	Port                        int      `json:"port,omitempty"`            // [1-9][0-9]{0,3}|[1-5][0-9]{4}|[6][0-4][0-9]{3}|[6][5][0-4][0-9]{2}|[6][5][5][0-2][0-9]|[6][5][5][3][0-5]
	ThisController              bool     `json:"this_controller"`
	ThisControllerEncryptedOnly bool     `json:"this_controller_encrypted_only"`
}

func (*SettingRsyslogd) UnmarshalJSON

func (dst *SettingRsyslogd) UnmarshalJSON(b []byte) error

type SettingSnmp

type SettingSnmp struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	Community string `json:"community,omitempty"` // .{1,256}
	Enabled   bool   `json:"enabled"`
	EnabledV3 bool   `json:"enabledV3"`
	Username  string `json:"username,omitempty"`   // [a-zA-Z0-9_-]{1,30}
	XPassword string `json:"x_password,omitempty"` // [^'"]{8,32}
}

func (*SettingSnmp) UnmarshalJSON

func (dst *SettingSnmp) UnmarshalJSON(b []byte) error

type SettingSslInspection

type SettingSslInspection struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	State string `json:"state,omitempty"` // off|simple|advanced
}

func (*SettingSslInspection) UnmarshalJSON

func (dst *SettingSslInspection) UnmarshalJSON(b []byte) error

type SettingSuperCloudaccess

type SettingSuperCloudaccess struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	DeviceAuth      string `json:"device_auth,omitempty"`
	DeviceID        string `json:"device_id"`
	Enabled         bool   `json:"enabled"`
	UbicUuid        string `json:"ubic_uuid,omitempty"`
	XCertificateArn string `json:"x_certificate_arn,omitempty"`
	XCertificatePem string `json:"x_certificate_pem,omitempty"`
	XPrivateKey     string `json:"x_private_key,omitempty"`
}

func (*SettingSuperCloudaccess) UnmarshalJSON

func (dst *SettingSuperCloudaccess) UnmarshalJSON(b []byte) error

type SettingSuperEvents

type SettingSuperEvents struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	Ignored string `json:"_ignored,omitempty"`
}

func (*SettingSuperEvents) UnmarshalJSON

func (dst *SettingSuperEvents) UnmarshalJSON(b []byte) error

type SettingSuperFwupdate

type SettingSuperFwupdate struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	ControllerChannel string `json:"controller_channel,omitempty"` // internal|alpha|beta|release-candidate|release
	FirmwareChannel   string `json:"firmware_channel,omitempty"`   // internal|alpha|beta|release-candidate|release
	SsoEnabled        bool   `json:"sso_enabled"`
}

func (*SettingSuperFwupdate) UnmarshalJSON

func (dst *SettingSuperFwupdate) UnmarshalJSON(b []byte) error

type SettingSuperIdentity

type SettingSuperIdentity struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	Hostname string `json:"hostname,omitempty"`
	Name     string `json:"name,omitempty"`
}

func (*SettingSuperIdentity) UnmarshalJSON

func (dst *SettingSuperIdentity) UnmarshalJSON(b []byte) error

type SettingSuperMail

type SettingSuperMail struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	Provider string `json:"provider,omitempty"` // smtp|cloud|disabled
}

func (*SettingSuperMail) UnmarshalJSON

func (dst *SettingSuperMail) UnmarshalJSON(b []byte) error

type SettingSuperMgmt

type SettingSuperMgmt struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	AnalyticsDisapprovedFor                  string   `json:"analytics_disapproved_for,omitempty"`
	AutoUpgrade                              bool     `json:"auto_upgrade"`
	AutobackupCronExpr                       string   `json:"autobackup_cron_expr,omitempty"`
	AutobackupDays                           int      `json:"autobackup_days,omitempty"`
	AutobackupEnabled                        bool     `json:"autobackup_enabled"`
	AutobackupGcsBucket                      string   `json:"autobackup_gcs_bucket,omitempty"`
	AutobackupGcsCertificatePath             string   `json:"autobackup_gcs_certificate_path,omitempty"`
	AutobackupLocalPath                      string   `json:"autobackup_local_path,omitempty"`
	AutobackupMaxFiles                       int      `json:"autobackup_max_files,omitempty"`
	AutobackupPostActions                    []string `json:"autobackup_post_actions,omitempty"` // copy_local|copy_s3|copy_gcs|copy_cloud
	AutobackupS3AccessKey                    string   `json:"autobackup_s3_access_key,omitempty"`
	AutobackupS3AccessSecret                 string   `json:"autobackup_s3_access_secret,omitempty"`
	AutobackupS3Bucket                       string   `json:"autobackup_s3_bucket,omitempty"`
	AutobackupTimezone                       string   `json:"autobackup_timezone,omitempty"`
	BackupToCloudEnabled                     bool     `json:"backup_to_cloud_enabled"`
	ContactInfoCity                          string   `json:"contact_info_city,omitempty"`
	ContactInfoCompanyName                   string   `json:"contact_info_company_name,omitempty"`
	ContactInfoCountry                       string   `json:"contact_info_country,omitempty"`
	ContactInfoFullName                      string   `json:"contact_info_full_name,omitempty"`
	ContactInfoPhoneNumber                   string   `json:"contact_info_phone_number,omitempty"`
	ContactInfoShippingAddress1              string   `json:"contact_info_shipping_address_1,omitempty"`
	ContactInfoShippingAddress2              string   `json:"contact_info_shipping_address_2,omitempty"`
	ContactInfoState                         string   `json:"contact_info_state,omitempty"`
	ContactInfoZip                           string   `json:"contact_info_zip,omitempty"`
	DataRetentionSettingPreference           string   `json:"data_retention_setting_preference,omitempty"` // auto|manual
	DataRetentionTimeInHoursFor5MinutesScale int      `json:"data_retention_time_in_hours_for_5minutes_scale,omitempty"`
	DataRetentionTimeInHoursForDailyScale    int      `json:"data_retention_time_in_hours_for_daily_scale,omitempty"`
	DataRetentionTimeInHoursForHourlyScale   int      `json:"data_retention_time_in_hours_for_hourly_scale,omitempty"`
	DataRetentionTimeInHoursForMonthlyScale  int      `json:"data_retention_time_in_hours_for_monthly_scale,omitempty"`
	DataRetentionTimeInHoursForOthers        int      `json:"data_retention_time_in_hours_for_others,omitempty"`
	DefaultSiteDeviceAuthPasswordAlert       string   `json:"default_site_device_auth_password_alert,omitempty"` // false
	Discoverable                             bool     `json:"discoverable"`
	EnableAnalytics                          bool     `json:"enable_analytics"`
	GoogleMapsApiKey                         string   `json:"google_maps_api_key,omitempty"`
	ImageMapsUseGoogleEngine                 bool     `json:"image_maps_use_google_engine"`
	LedEnabled                               bool     `json:"led_enabled"`
	LiveChat                                 string   `json:"live_chat,omitempty"`    // disabled|super-only|everyone
	LiveUpdates                              string   `json:"live_updates,omitempty"` // disabled|live|auto
	MinimumUsableHdSpace                     int      `json:"minimum_usable_hd_space,omitempty"`
	MinimumUsableSdSpace                     int      `json:"minimum_usable_sd_space,omitempty"`
	MultipleSitesEnabled                     bool     `json:"multiple_sites_enabled"`
	OverrideInformHost                       bool     `json:"override_inform_host"`
	OverrideInformHostLocation               string   `json:"override_inform_host_location,omitempty"`
	StoreEnabled                             string   `json:"store_enabled,omitempty"` // disabled|super-only|everyone
	TimeSeriesPerClientStatsEnabled          bool     `json:"time_series_per_client_stats_enabled"`
	XSshPassword                             string   `json:"x_ssh_password,omitempty"`
	XSshUsername                             string   `json:"x_ssh_username,omitempty"`
}

func (*SettingSuperMgmt) UnmarshalJSON

func (dst *SettingSuperMgmt) UnmarshalJSON(b []byte) error

type SettingSuperSdn

type SettingSuperSdn struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	AuthToken       string `json:"auth_token,omitempty"`
	DeviceID        string `json:"device_id"`
	Enabled         bool   `json:"enabled"`
	Migrated        bool   `json:"migrated"`
	SsoLoginEnabled string `json:"sso_login_enabled,omitempty"`
	UbicUuid        string `json:"ubic_uuid,omitempty"`
}

func (*SettingSuperSdn) UnmarshalJSON

func (dst *SettingSuperSdn) UnmarshalJSON(b []byte) error

type SettingSuperSmtp

type SettingSuperSmtp struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	Enabled   bool   `json:"enabled"`
	Host      string `json:"host,omitempty"`
	Port      int    `json:"port,omitempty"` // [1-9][0-9]{0,3}|[1-5][0-9]{4}|[6][0-4][0-9]{3}|[6][5][0-4][0-9]{2}|[6][5][5][0-2][0-9]|[6][5][5][3][0-5]|^$
	Sender    string `json:"sender,omitempty"`
	UseAuth   bool   `json:"use_auth"`
	UseSender bool   `json:"use_sender"`
	UseSsl    bool   `json:"use_ssl"`
	Username  string `json:"username,omitempty"`
	XPassword string `json:"x_password,omitempty"`
}

func (*SettingSuperSmtp) UnmarshalJSON

func (dst *SettingSuperSmtp) UnmarshalJSON(b []byte) error

type SettingTeleport

type SettingTeleport struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	Enabled    bool   `json:"enabled"`
	SubnetCidr string `json:"subnet_cidr"` // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\/([8-9]|[1-2][0-9]|3[0-2])$|^$
}

func (*SettingTeleport) UnmarshalJSON

func (dst *SettingTeleport) UnmarshalJSON(b []byte) error

type SettingUsg

type SettingUsg struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	ArpCacheBaseReachable          int                       `json:"arp_cache_base_reachable,omitempty"` // ^$|^[1-9]{1}[0-9]{0,4}$
	ArpCacheTimeout                string                    `json:"arp_cache_timeout,omitempty"`        // normal|min-dhcp-lease|custom
	BroadcastPing                  bool                      `json:"broadcast_ping"`
	DHCPDHostfileUpdate            bool                      `json:"dhcpd_hostfile_update"`
	DHCPDUseDNSmasq                bool                      `json:"dhcpd_use_dnsmasq"`
	DHCPRelayAgentsPackets         string                    `json:"dhcp_relay_agents_packets"`      // append|discard|forward|replace|^$
	DHCPRelayHopCount              int                       `json:"dhcp_relay_hop_count,omitempty"` // ([1-9]|[1-8][0-9]|9[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|^$
	DHCPRelayMaxSize               int                       `json:"dhcp_relay_max_size,omitempty"`  // (6[4-9]|[7-9][0-9]|[1-8][0-9]{2}|9[0-8][0-9]|99[0-9]|1[0-3][0-9]{2}|1400)|^$
	DHCPRelayPort                  int                       `json:"dhcp_relay_port,omitempty"`      // [1-9][0-9]{0,3}|[1-5][0-9]{4}|[6][0-4][0-9]{3}|[6][5][0-4][0-9]{2}|[6][5][5][0-2][0-9]|[6][5][5][3][0-5]|^$
	DHCPRelayServer1               string                    `json:"dhcp_relay_server_1"`            // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^$
	DHCPRelayServer2               string                    `json:"dhcp_relay_server_2"`            // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^$
	DHCPRelayServer3               string                    `json:"dhcp_relay_server_3"`            // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^$
	DHCPRelayServer4               string                    `json:"dhcp_relay_server_4"`            // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^$
	DHCPRelayServer5               string                    `json:"dhcp_relay_server_5"`            // ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^$
	DNSVerification                SettingUsgDNSVerification `json:"dns_verification,omitempty"`
	DNSmasqAllServers              bool                      `json:"dnsmasq_all_servers"`
	EchoServer                     string                    `json:"echo_server,omitempty"` // [^\"\' ]{1,255}
	FirewallGuestDefaultLog        bool                      `json:"firewall_guest_default_log"`
	FirewallLanDefaultLog          bool                      `json:"firewall_lan_default_log"`
	FirewallWANDefaultLog          bool                      `json:"firewall_wan_default_log"`
	FtpModule                      bool                      `json:"ftp_module"`
	GeoIPFilteringBlock            string                    `json:"geo_ip_filtering_block,omitempty"`     // block|allow
	GeoIPFilteringCountries        string                    `json:"geo_ip_filtering_countries,omitempty"` // ^([A-Z]{2})?(,[A-Z]{2}){0,149}$
	GeoIPFilteringEnabled          bool                      `json:"geo_ip_filtering_enabled"`
	GeoIPFilteringTrafficDirection string                    `json:"geo_ip_filtering_traffic_direction,omitempty"` // ^(both|ingress|egress)$
	GreModule                      bool                      `json:"gre_module"`
	H323Module                     bool                      `json:"h323_module"`
	ICMPTimeout                    int                       `json:"icmp_timeout,omitempty"`
	LldpEnableAll                  bool                      `json:"lldp_enable_all"`
	MdnsEnabled                    bool                      `json:"mdns_enabled"`
	MssClamp                       string                    `json:"mss_clamp,omitempty"`     // auto|custom|disabled
	MssClampMss                    int                       `json:"mss_clamp_mss,omitempty"` // [1-9][0-9]{2,3}
	OffloadAccounting              bool                      `json:"offload_accounting"`
	OffloadL2Blocking              bool                      `json:"offload_l2_blocking"`
	OffloadSch                     bool                      `json:"offload_sch"`
	OtherTimeout                   int                       `json:"other_timeout,omitempty"`
	PptpModule                     bool                      `json:"pptp_module"`
	ReceiveRedirects               bool                      `json:"receive_redirects"`
	SendRedirects                  bool                      `json:"send_redirects"`
	SipModule                      bool                      `json:"sip_module"`
	SynCookies                     bool                      `json:"syn_cookies"`
	TCPCloseTimeout                int                       `json:"tcp_close_timeout,omitempty"`
	TCPCloseWaitTimeout            int                       `json:"tcp_close_wait_timeout,omitempty"`
	TCPEstablishedTimeout          int                       `json:"tcp_established_timeout,omitempty"`
	TCPFinWaitTimeout              int                       `json:"tcp_fin_wait_timeout,omitempty"`
	TCPLastAckTimeout              int                       `json:"tcp_last_ack_timeout,omitempty"`
	TCPSynRecvTimeout              int                       `json:"tcp_syn_recv_timeout,omitempty"`
	TCPSynSentTimeout              int                       `json:"tcp_syn_sent_timeout,omitempty"`
	TCPTimeWaitTimeout             int                       `json:"tcp_time_wait_timeout,omitempty"`
	TFTPModule                     bool                      `json:"tftp_module"`
	TimeoutSettingPreference       string                    `json:"timeout_setting_preference,omitempty"` // auto|manual
	UDPOtherTimeout                int                       `json:"udp_other_timeout,omitempty"`
	UDPStreamTimeout               int                       `json:"udp_stream_timeout,omitempty"`
	UpnpEnabled                    bool                      `json:"upnp_enabled"`
	UpnpNATPmpEnabled              bool                      `json:"upnp_nat_pmp_enabled"`
	UpnpSecureMode                 bool                      `json:"upnp_secure_mode"`
	UpnpWANInterface               string                    `json:"upnp_wan_interface,omitempty"` // WAN|WAN2
}

func (*SettingUsg) UnmarshalJSON

func (dst *SettingUsg) UnmarshalJSON(b []byte) error

type SettingUsgDNSVerification added in v1.0.2

type SettingUsgDNSVerification struct {
	Domain             string `json:"domain,omitempty"`
	PrimaryDNSServer   string `json:"primary_dns_server,omitempty"`
	SecondaryDNSServer string `json:"secondary_dns_server,omitempty"`
	SettingPreference  string `json:"setting_preference,omitempty"` // auto|manual
}

func (*SettingUsgDNSVerification) UnmarshalJSON added in v1.0.2

func (dst *SettingUsgDNSVerification) UnmarshalJSON(b []byte) error

type SettingUsw

type SettingUsw struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Key string `json:"key"`

	DHCPSnoop bool `json:"dhcp_snoop"`
}

func (*SettingUsw) UnmarshalJSON

func (dst *SettingUsw) UnmarshalJSON(b []byte) error

type Site

type Site struct {
	ID string `json:"_id,omitempty"`

	Name        string `json:"name"`
	Description string `json:"desc"`
}

type SpatialRecord

type SpatialRecord struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Devices []SpatialRecordDevices `json:"devices,omitempty"`
	Name    string                 `json:"name,omitempty"` // .{1,128}
}

func (*SpatialRecord) UnmarshalJSON

func (dst *SpatialRecord) UnmarshalJSON(b []byte) error

type SpatialRecordDevices

type SpatialRecordDevices struct {
	MAC      string                `json:"mac,omitempty"` // ^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})$
	Position SpatialRecordPosition `json:"position,omitempty"`
}

func (*SpatialRecordDevices) UnmarshalJSON

func (dst *SpatialRecordDevices) UnmarshalJSON(b []byte) error

type SpatialRecordPosition

type SpatialRecordPosition struct {
	X float64 `json:"x,omitempty"` // (^([-]?[\d]+)$)|(^([-]?[\d]+[.]?[\d]+)$)
	Y float64 `json:"y,omitempty"` // (^([-]?[\d]+)$)|(^([-]?[\d]+[.]?[\d]+)$)
	Z float64 `json:"z,omitempty"` // (^([-]?[\d]+)$)|(^([-]?[\d]+[.]?[\d]+)$)
}

func (*SpatialRecordPosition) UnmarshalJSON

func (dst *SpatialRecordPosition) UnmarshalJSON(b []byte) error

type Tag

type Tag struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	MemberTable []string `json:"member_table,omitempty"`
	Name        string   `json:"name,omitempty"`
}

func (*Tag) UnmarshalJSON

func (dst *Tag) UnmarshalJSON(b []byte) error

type User

type User struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	DevIdOverride int    `json:"dev_id_override,omitempty"` // non-generated field
	IP            string `json:"ip,omitempty"`              // non-generated field

	Blocked                       bool   `json:"blocked,omitempty"`
	FixedApEnabled                bool   `json:"fixed_ap_enabled"`
	FixedApMAC                    string `json:"fixed_ap_mac,omitempty"` // ^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})$
	FixedIP                       string `json:"fixed_ip,omitempty"`
	Hostname                      string `json:"hostname,omitempty"`
	LastSeen                      int    `json:"last_seen,omitempty"`
	LocalDNSRecord                string `json:"local_dns_record,omitempty"`
	LocalDNSRecordEnabled         bool   `json:"local_dns_record_enabled"`
	MAC                           string `json:"mac,omitempty"` // ^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})$
	Name                          string `json:"name,omitempty"`
	NetworkID                     string `json:"network_id"`
	Note                          string `json:"note,omitempty"`
	UseFixedIP                    bool   `json:"use_fixedip"`
	UserGroupID                   string `json:"usergroup_id"`
	VirtualNetworkOverrideEnabled bool   `json:"virtual_network_override_enabled"`
	VirtualNetworkOverrideID      string `json:"virtual_network_override_id"`
}

func (*User) UnmarshalJSON

func (dst *User) UnmarshalJSON(b []byte) error

type UserGroup

type UserGroup struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Name           string `json:"name,omitempty"`              // .{1,128}
	QOSRateMaxDown int    `json:"qos_rate_max_down,omitempty"` // -1|[2-9]|[1-9][0-9]{1,4}|100000
	QOSRateMaxUp   int    `json:"qos_rate_max_up,omitempty"`   // -1|[2-9]|[1-9][0-9]{1,4}|100000
}

func (*UserGroup) UnmarshalJSON

func (dst *UserGroup) UnmarshalJSON(b []byte) error

type VirtualDevice

type VirtualDevice struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	HeightInMeters float64 `json:"heightInMeters,omitempty"`
	Locked         bool    `json:"locked"`
	MapID          string  `json:"map_id"`
	Type           string  `json:"type,omitempty"` // uap|usg|usw
	X              string  `json:"x,omitempty"`
	Y              string  `json:"y,omitempty"`
}

func (*VirtualDevice) UnmarshalJSON

func (dst *VirtualDevice) UnmarshalJSON(b []byte) error

type WLAN

type WLAN struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	ApGroupIDs                  []string                   `json:"ap_group_ids,omitempty"`
	ApGroupMode                 string                     `json:"ap_group_mode,omitempty"` // all|groups|devices
	AuthCache                   bool                       `json:"auth_cache"`
	BSupported                  bool                       `json:"b_supported"`
	BroadcastFilterEnabled      bool                       `json:"bc_filter_enabled"`
	BroadcastFilterList         []string                   `json:"bc_filter_list,omitempty"` // ^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})$
	BssTransition               bool                       `json:"bss_transition"`
	CountryBeacon               bool                       `json:"country_beacon"`
	DPIEnabled                  bool                       `json:"dpi_enabled"`
	DPIgroupID                  string                     `json:"dpigroup_id"`         // [\d\w]+|^$
	DTIM6E                      int                        `json:"dtim_6e,omitempty"`   // ^([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^$
	DTIMMode                    string                     `json:"dtim_mode,omitempty"` // default|custom
	DTIMNa                      int                        `json:"dtim_na,omitempty"`   // ^([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^$
	DTIMNg                      int                        `json:"dtim_ng,omitempty"`   // ^([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^$
	ElementAdopt                bool                       `json:"element_adopt"`
	Enabled                     bool                       `json:"enabled"`
	FastRoamingEnabled          bool                       `json:"fast_roaming_enabled"`
	GroupRekey                  int                        `json:"group_rekey,omitempty"` // ^(0|[6-9][0-9]|[1-9][0-9]{2,3}|[1-7][0-9]{4}|8[0-5][0-9]{3}|86[0-3][0-9][0-9]|86400)$
	HideSSID                    bool                       `json:"hide_ssid"`
	Hotspot2                    WLANHotspot2               `json:"hotspot2,omitempty"`
	Hotspot2ConfEnabled         bool                       `json:"hotspot2conf_enabled"`
	IappEnabled                 bool                       `json:"iapp_enabled"`
	IsGuest                     bool                       `json:"is_guest"`
	L2Isolation                 bool                       `json:"l2_isolation"`
	LogLevel                    string                     `json:"log_level,omitempty"`
	MACFilterEnabled            bool                       `json:"mac_filter_enabled"`
	MACFilterList               []string                   `json:"mac_filter_list,omitempty"`   // ^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})$
	MACFilterPolicy             string                     `json:"mac_filter_policy,omitempty"` // allow|deny
	MinrateNaAdvertisingRates   bool                       `json:"minrate_na_advertising_rates"`
	MinrateNaDataRateKbps       int                        `json:"minrate_na_data_rate_kbps,omitempty"`
	MinrateNaEnabled            bool                       `json:"minrate_na_enabled"`
	MinrateNgAdvertisingRates   bool                       `json:"minrate_ng_advertising_rates"`
	MinrateNgDataRateKbps       int                        `json:"minrate_ng_data_rate_kbps,omitempty"`
	MinrateNgEnabled            bool                       `json:"minrate_ng_enabled"`
	MinrateSettingPreference    string                     `json:"minrate_setting_preference,omitempty"` // auto|manual
	MloEnabled                  bool                       `json:"mlo_enabled"`
	MulticastEnhanceEnabled     bool                       `json:"mcastenhance_enabled"`
	Name                        string                     `json:"name,omitempty"` // .{1,32}
	NameCombineEnabled          bool                       `json:"name_combine_enabled"`
	NameCombineSuffix           string                     `json:"name_combine_suffix,omitempty"` // .{0,8}
	NasIDentifier               string                     `json:"nas_identifier,omitempty"`      // .{0,48}
	NasIDentifierType           string                     `json:"nas_identifier_type,omitempty"` // ap_name|ap_mac|bssid|site_name|custom
	NetworkID                   string                     `json:"networkconf_id"`
	No2GhzOui                   bool                       `json:"no2ghz_oui"`
	OptimizeIotWifiConnectivity bool                       `json:"optimize_iot_wifi_connectivity"`
	P2P                         bool                       `json:"p2p"`
	P2PCrossConnect             bool                       `json:"p2p_cross_connect"`
	PMFCipher                   string                     `json:"pmf_cipher,omitempty"` // auto|aes-128-cmac|bip-gmac-256
	PMFMode                     string                     `json:"pmf_mode,omitempty"`   // disabled|optional|required
	Priority                    string                     `json:"priority,omitempty"`   // medium|high|low
	PrivatePresharedKeys        []WLANPrivatePresharedKeys `json:"private_preshared_keys,omitempty"`
	PrivatePresharedKeysEnabled bool                       `json:"private_preshared_keys_enabled"`
	ProxyArp                    bool                       `json:"proxy_arp"`
	RADIUSDasEnabled            bool                       `json:"radius_das_enabled"`
	RADIUSMACAuthEnabled        bool                       `json:"radius_mac_auth_enabled"`
	RADIUSMACaclEmptyPassword   bool                       `json:"radius_macacl_empty_password"`
	RADIUSMACaclFormat          string                     `json:"radius_macacl_format,omitempty"` // none_lower|hyphen_lower|colon_lower|none_upper|hyphen_upper|colon_upper
	RADIUSProfileID             string                     `json:"radiusprofile_id"`
	RoamClusterID               int                        `json:"roam_cluster_id,omitempty"` // [0-9]|[1-2][0-9]|[3][0-1]|^$
	RrmEnabled                  bool                       `json:"rrm_enabled"`
	SaeAntiClogging             int                        `json:"sae_anti_clogging,omitempty"`
	SaeGroups                   []int                      `json:"sae_groups,omitempty"`
	SaePsk                      []WLANSaePsk               `json:"sae_psk,omitempty"`
	SaePskVLANRequired          bool                       `json:"sae_psk_vlan_required"`
	SaeSync                     int                        `json:"sae_sync,omitempty"`
	Schedule                    []string                   `json:"schedule,omitempty"` // (sun|mon|tue|wed|thu|fri|sat)(\-(sun|mon|tue|wed|thu|fri|sat))?\|([0-2][0-9][0-5][0-9])\-([0-2][0-9][0-5][0-9])
	ScheduleEnabled             bool                       `json:"schedule_enabled"`
	ScheduleReversed            bool                       `json:"schedule_reversed"`
	ScheduleWithDuration        []WLANScheduleWithDuration `json:"schedule_with_duration"`
	Security                    string                     `json:"security,omitempty"`           // open|wpapsk|wep|wpaeap|osen
	SettingPreference           string                     `json:"setting_preference,omitempty"` // auto|manual
	TdlsProhibit                bool                       `json:"tdls_prohibit"`
	UapsdEnabled                bool                       `json:"uapsd_enabled"`
	UidWorkspaceUrl             string                     `json:"uid_workspace_url,omitempty"`
	UserGroupID                 string                     `json:"usergroup_id"`
	VLAN                        int                        `json:"vlan,omitempty"` // [2-9]|[1-9][0-9]{1,2}|[1-3][0-9]{3}|40[0-8][0-9]|409[0-5]|^$
	VLANEnabled                 bool                       `json:"vlan_enabled"`
	WEPIDX                      int                        `json:"wep_idx,omitempty"`    // [1-4]
	WLANBand                    string                     `json:"wlan_band,omitempty"`  // 2g|5g|both
	WLANBands                   []string                   `json:"wlan_bands,omitempty"` // 2g|5g|6g
	WLANGroupID                 string                     `json:"wlangroup_id"`
	WPA3Enhanced192             bool                       `json:"wpa3_enhanced_192"`
	WPA3FastRoaming             bool                       `json:"wpa3_fast_roaming"`
	WPA3Support                 bool                       `json:"wpa3_support"`
	WPA3Transition              bool                       `json:"wpa3_transition"`
	WPAEnc                      string                     `json:"wpa_enc,omitempty"`        // auto|ccmp|gcmp|ccmp-256|gcmp-256
	WPAMode                     string                     `json:"wpa_mode,omitempty"`       // auto|wpa1|wpa2
	WPAPskRADIUS                string                     `json:"wpa_psk_radius,omitempty"` // disabled|optional|required
	XIappKey                    string                     `json:"x_iapp_key,omitempty"`     // [0-9A-Fa-f]{32}
	XPassphrase                 string                     `json:"x_passphrase,omitempty"`   // [\x20-\x7E]{8,255}|[0-9a-fA-F]{64}
	XWEP                        string                     `json:"x_wep,omitempty"`
}

func (*WLAN) UnmarshalJSON

func (dst *WLAN) UnmarshalJSON(b []byte) error

type WLANCapab added in v1.0.1

type WLANCapab struct {
	Port     int    `json:"port,omitempty"`     // ^(0|[1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])|$
	Protocol string `json:"protocol,omitempty"` // icmp|tcp_udp|tcp|udp|esp
	Status   string `json:"status,omitempty"`   // closed|open|unknown
}

func (*WLANCapab) UnmarshalJSON added in v1.0.1

func (dst *WLANCapab) UnmarshalJSON(b []byte) error

type WLANCellularNetworkList added in v1.0.1

type WLANCellularNetworkList struct {
	CountryCode int    `json:"country_code,omitempty"` // [1-9]{1}[0-9]{0,3}
	Mcc         int    `json:"mcc,omitempty"`
	Mnc         int    `json:"mnc,omitempty"`
	Name        string `json:"name,omitempty"` // .{1,128}
}

func (*WLANCellularNetworkList) UnmarshalJSON added in v1.0.1

func (dst *WLANCellularNetworkList) UnmarshalJSON(b []byte) error

type WLANFriendlyName added in v1.0.1

type WLANFriendlyName struct {
	Language string `json:"language,omitempty"` // [a-z]{3}
	Text     string `json:"text,omitempty"`     // .{1,128}
}

func (*WLANFriendlyName) UnmarshalJSON added in v1.0.1

func (dst *WLANFriendlyName) UnmarshalJSON(b []byte) error

type WLANGroup

type WLANGroup struct {
	ID     string `json:"_id,omitempty"`
	SiteID string `json:"site_id,omitempty"`

	Hidden   bool   `json:"attr_hidden,omitempty"`
	HiddenID string `json:"attr_hidden_id,omitempty"`
	NoDelete bool   `json:"attr_no_delete,omitempty"`
	NoEdit   bool   `json:"attr_no_edit,omitempty"`

	Name string `json:"name,omitempty"` // .{1,128}
}

func (*WLANGroup) UnmarshalJSON

func (dst *WLANGroup) UnmarshalJSON(b []byte) error

type WLANHotspot2 added in v1.0.1

type WLANHotspot2 struct {
	Capab                   []WLANCapab                 `json:"capab,omitempty"`
	CellularNetworkList     []WLANCellularNetworkList   `json:"cellular_network_list,omitempty"`
	DomainNameList          []string                    `json:"domain_name_list,omitempty"` // .{1,128}
	FriendlyName            []WLANFriendlyName          `json:"friendly_name,omitempty"`
	IPaddrTypeAvailV4       int                         `json:"ipaddr_type_avail_v4,omitempty"` // 0|1|2|3|4|5|6|7
	IPaddrTypeAvailV6       int                         `json:"ipaddr_type_avail_v6,omitempty"` // 0|1|2
	MetricsDownlinkLoad     int                         `json:"metrics_downlink_load,omitempty"`
	MetricsDownlinkLoadSet  bool                        `json:"metrics_downlink_load_set"`
	MetricsDownlinkSpeed    int                         `json:"metrics_downlink_speed,omitempty"`
	MetricsDownlinkSpeedSet bool                        `json:"metrics_downlink_speed_set"`
	MetricsInfoAtCapacity   bool                        `json:"metrics_info_at_capacity"`
	MetricsInfoLinkStatus   string                      `json:"metrics_info_link_status,omitempty"` // up|down|test
	MetricsInfoSymmetric    bool                        `json:"metrics_info_symmetric"`
	MetricsMeasurement      int                         `json:"metrics_measurement,omitempty"`
	MetricsMeasurementSet   bool                        `json:"metrics_measurement_set"`
	MetricsStatus           bool                        `json:"metrics_status"`
	MetricsUplinkLoad       int                         `json:"metrics_uplink_load,omitempty"`
	MetricsUplinkLoadSet    bool                        `json:"metrics_uplink_load_set"`
	MetricsUplinkSpeed      int                         `json:"metrics_uplink_speed,omitempty"`
	MetricsUplinkSpeedSet   bool                        `json:"metrics_uplink_speed_set"`
	NaiRealmList            []WLANNaiRealmList          `json:"nai_realm_list,omitempty"`
	NetworkType             int                         `json:"network_type,omitempty"` // 0|1|2|3|4|5|14|15
	RoamingConsortiumList   []WLANRoamingConsortiumList `json:"roaming_consortium_list,omitempty"`
	VenueGroup              int                         `json:"venue_group,omitempty"` // 0|1|2|3|4|5|6|7|8|9|10|11
	VenueName               []WLANVenueName             `json:"venue_name,omitempty"`
	VenueType               int                         `json:"venue_type,omitempty"` // 0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15
}

func (*WLANHotspot2) UnmarshalJSON added in v1.0.1

func (dst *WLANHotspot2) UnmarshalJSON(b []byte) error

type WLANNaiRealmList added in v1.0.1

type WLANNaiRealmList struct {
	AuthIDs   []int  `json:"auth_ids,omitempty"`   // 0|1|2|3|4|5
	AuthVals  []int  `json:"auth_vals,omitempty"`  // 0|1|2|3|4|5|6|7|8|9|10
	EapMethod int    `json:"eap_method,omitempty"` // 13|21|18|23|50
	Encoding  int    `json:"encoding,omitempty"`   // 0|1
	Name      string `json:"name,omitempty"`       // .{1,128}
	Status    bool   `json:"status"`
}

func (*WLANNaiRealmList) UnmarshalJSON added in v1.0.1

func (dst *WLANNaiRealmList) UnmarshalJSON(b []byte) error

type WLANPrivatePresharedKeys

type WLANPrivatePresharedKeys struct {
	NetworkID string `json:"networkconf_id"`
	Password  string `json:"password,omitempty"` // [\x20-\x7E]{8,255}
}

func (*WLANPrivatePresharedKeys) UnmarshalJSON

func (dst *WLANPrivatePresharedKeys) UnmarshalJSON(b []byte) error

type WLANRoamingConsortiumList added in v1.0.1

type WLANRoamingConsortiumList struct {
	Name string `json:"name,omitempty"` // .{1,128}
	Oid  string `json:"oid,omitempty"`  // .{1,128}
}

func (*WLANRoamingConsortiumList) UnmarshalJSON added in v1.0.1

func (dst *WLANRoamingConsortiumList) UnmarshalJSON(b []byte) error

type WLANSaePsk

type WLANSaePsk struct {
	ID   string `json:"id"`             // .{0,128}
	MAC  string `json:"mac,omitempty"`  // ^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})$
	Psk  string `json:"psk,omitempty"`  // [\x20-\x7E]{8,255}
	VLAN int    `json:"vlan,omitempty"` // [0-9]|[1-9][0-9]{1,2}|[1-3][0-9]{3}|40[0-8][0-9]|409[0-5]|^$
}

func (*WLANSaePsk) UnmarshalJSON

func (dst *WLANSaePsk) UnmarshalJSON(b []byte) error

type WLANScheduleWithDuration

type WLANScheduleWithDuration struct {
	DurationMinutes int      `json:"duration_minutes,omitempty"`   // ^[1-9][0-9]*$
	Name            string   `json:"name,omitempty"`               // .*
	StartDaysOfWeek []string `json:"start_days_of_week,omitempty"` // ^(sun|mon|tue|wed|thu|fri|sat)$
	StartHour       int      `json:"start_hour,omitempty"`         // ^(1?[0-9])|(2[0-3])$
	StartMinute     int      `json:"start_minute,omitempty"`       // ^[0-5]?[0-9]$
}

func (*WLANScheduleWithDuration) UnmarshalJSON

func (dst *WLANScheduleWithDuration) UnmarshalJSON(b []byte) error

type WLANVenueName added in v1.0.1

type WLANVenueName struct {
	Language string `json:"language,omitempty"` // [a-z]{0,3}
	Name     string `json:"name,omitempty"`
	Url      string `json:"url,omitempty"`
}

func (*WLANVenueName) UnmarshalJSON added in v1.0.1

func (dst *WLANVenueName) UnmarshalJSON(b []byte) error

Source Files

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL