unifi

package
v1.9.0 Latest Latest
Warning

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

Go to latest
Published: Oct 2, 2020 License: MPL-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

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"`               // ^[^"' ]+$
	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"`
}

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"`
}

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}
}

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}).*$
}

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
}

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"`
}

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}
}

type Client

type Client struct {
	// contains filtered or unexported fields
}

func (*Client) BlockUserByMAC

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

func (*Client) CreateAccount

func (c *Client) CreateAccount(ctx context.Context, site string, d *Account) (*Account, 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) 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) 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) 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) 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) 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) GetAccount

func (c *Client) GetAccount(ctx context.Context, site, id string) (*Account, 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) 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) 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) ListAccount

func (c *Client) ListAccount(ctx context.Context, site string) ([]Account, 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) 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) 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) 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) 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) 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)

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)$
}

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"`
}

type DashboardModules

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

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"`

	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"`
	EthernetOverrides          []DeviceEthernetOverrides `json:"ethernet_overrides,omitempty"`
	FlowctrlEnabled            bool                      `json:"flowctrl_enabled,omitempty"`
	HeightInMeters             float64                   `json:"heightInMeters,omitempty"`
	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"`
	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"`
	LteApn                     string                    `json:"lte_apn,omitempty"` // .{1,128}
	LteExtAnt                  bool                      `json:"lte_ext_ant,omitempty"`
	LtePoe                     bool                      `json:"lte_poe,omitempty"`
	LteSimPin                  int                       `json:"lte_sim_pin,omitempty"`
	LteSoftLimit               int                       `json:"lte_soft_limit,omitempty"`
	MapID                      string                    `json:"map_id,omitempty"`
	MeshStaVapEnabled          bool                      `json:"mesh_sta_vap_enabled,omitempty"`
	MgmtNetworkID              string                    `json:"mgmt_network_id,omitempty"`       // [\d\w]+
	Name                       string                    `json:"name,omitempty"`                  // .{1,128}
	OutdoorModeOverride        string                    `json:"outdoor_mode_override,omitempty"` // default|on|off
	OutletEnabled              bool                      `json:"outlet_enabled,omitempty"`
	OutletOverrides            []DeviceOutletOverrides   `json:"outlet_overrides,omitempty"`
	PortOverrides              []DevicePortOverrides     `json:"port_overrides,omitempty"`
	PowerSourceCtrl            string                    `json:"power_source_ctrl,omitempty"` // auto|8023af|8023at|8023bt-type3|8023bt-type4|pasv24|poe-injector|ac|adapter|dc|rps
	PowerSourceCtrlEnabled     bool                      `json:"power_source_ctrl_enabled,omitempty"`
	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}
	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"`
	UbbPairName                string                    `json:"ubb_pair_name,omitempty"` // .{1,128}
	Volume                     int                       `json:"volume,omitempty"`        // [0-9]|[1-9][0-9]|100
	WLANOverrides              []DeviceWLANOverrides     `json:"wlan_overrides,omitempty"`
	X                          float64                   `json:"x,omitempty"`
	XBaresipPassword           string                    `json:"x_baresip_password,omitempty"` // ^[a-zA-Z0-9_.\-!~*'()]*
	Y                          float64                   `json:"y,omitempty"`
}

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
}

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]?
}

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"`
}

type DevicePortOverrides

type DevicePortOverrides struct {
	AggregateNumPorts            int      `json:"aggregate_num_ports,omitempty"` // [2-6]
	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"`
	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-2]
	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-2]
	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})$
	PortconfID                   string   `json:"portconf_id,omitempty"`               // [\d\w]+
	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
	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"`
}

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         int    `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               int    `json:"channel,omitempty"`        // [0-9]|[1][0-4]|4.5|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
	HardNoiseFloorEnabled bool   `json:"hard_noise_floor_enabled,omitempty"`
	Ht                    string `json:"ht,omitempty"`       // 20|40|80|160|1080|2160
	MinRssi               int    `json:"min_rssi,omitempty"` // ^-([1-9]|[1-8][0-9]|9[0-4])$
	MinRssiEnabled        bool   `json:"min_rssi_enabled,omitempty"`
	Name                  string `json:"name,omitempty"`
	Radio                 string `json:"radio,omitempty"`      // ng|na|ad
	SensLevel             int    `json:"sens_level,omitempty"` // ^-([5-8][0-9]|90)$
	SensLevelEnabled      bool   `json:"sens_level_enabled,omitempty"`
	TxPower               int    `json:"tx_power,omitempty"`      // [\d]+|auto
	TxPowerMode           string `json:"tx_power_mode,omitempty"` // auto|medium|high|low|custom
	VwireEnabled          bool   `json:"vwire_enabled,omitempty"`
	WLANGroupID           string `json:"wlangroup_id,omitempty"` // [\d\w]+
}

type DeviceRpsOverride

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

type DeviceRpsPortTable

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

type DeviceWLANOverrides

type DeviceWLANOverrides struct {
	Enabled            bool   `json:"enabled,omitempty"`
	Name               string `json:"name,omitempty"` // .{1,32}
	NameCombineEnabled bool   `json:"name_combine_enabled,omitempty"`
	NameCombineSuffix  string `json:"name_combine_suffix,omitempty"` // .{0,8}
	Radio              string `json:"radio,omitempty"`               // ng|na
	RadioName          string `json:"radio_name,omitempty"`
	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,omitempty"`
	WLANID             string `json:"wlan_id,omitempty"`      // [\d\w]+
	XPassphrase        string `json:"x_passphrase,omitempty"` // [\x20-\x7E]{8,63}|[0-9a-fA-F]{64}
}

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
}

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}
}

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|dnspark|dslreports|dyndns|easydns|googledomains|namecheap|noip|sitelutions|zoneedit|custom
	XPassword     string   `json:"x_password,omitempty"`     // ^[^"' ]+$
}

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}
}

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
	Contiguous            bool     `json:"contiguous"`
	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"`
	MonthDays             string   `json:"monthdays"` // ^$|^(([1-9]|[12][0-9]|3[01])(,([1-9]|[12][0-9]|3[01])){0,30})$
	MonthDaysNegate       bool     `json:"monthdays_negate"`
	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[0-9]{3}
	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
	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"`
	StartDate             string   `json:"startdate"` // ^$|^(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])$
	StartTime             string   `json:"starttime"` // ^$|^(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9])$
	StateEstablished      bool     `json:"state_established"`
	StateInvalid          bool     `json:"state_invalid"`
	StateNew              bool     `json:"state_new"`
	StateRelated          bool     `json:"state_related"`
	StopDate              string   `json:"stopdate"` // ^$|^(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])$
	StopTime              string   `json:"stoptime"` // ^$|^(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9])$
	UTC                   bool     `json:"utc"`
	Weekdays              string   `json:"weekdays"` // ^$|^((Mon|Tue|Wed|Thu|Fri|Sat|Sun)(,(Mon|Tue|Wed|Thu|Fri|Sat|Sun)){0,6})$
	WeekdaysNegate        bool     `json:"weekdays_negate"`
}

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
}

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"`
}

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
}

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
}

type Hotspot2ConfCellularNetworkList

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

type Hotspot2ConfDescription

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

type Hotspot2ConfFriendlyName

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

type Hotspot2ConfIcon

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

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"`
}

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"`
}

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"`
}

type Hotspot2ConfQOSMapDcsp

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

type Hotspot2ConfQOSMapExceptions

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

type Hotspot2ConfRoamingConsortiumList

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

type Hotspot2ConfVenueName

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

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}
}

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"`
	PaymentFieldsCountryDefault    string  `json:"payment_fields_country_default,omitempty"`
	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"`
	TrialReset                     float64 `json:"trial_reset,omitempty"`
}

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"`
}

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"`
}

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"`

	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}|^$
	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])$|^$
	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"`
	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|^$
	IGMPQuerier             string                  `json:"igmp_querier"`                   // ^(([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])$|^$
	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
	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
	IPSecInterface          string                  `json:"ipsec_interface,omitempty"`    // wan|wan2
	IPSecKeyExchange        string                  `json:"ipsec_key_exchange,omitempty"` // ikev1|ikev2
	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"`      // ^(([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])$
	IPSecPfs                bool                    `json:"ipsec_pfs"`
	IPSecProfile            string                  `json:"ipsec_profile,omitempty"`       // customized|azure_dynamic|azure_static
	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]|30)$
	IPV6InterfaceType       string                  `json:"ipv6_interface_type,omitempty"` // static|pd|none
	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)$|^$
	IPV6Subnet              string                  `json:"ipv6_subnet,omitempty"`
	IsNAT                   bool                    `json:"is_nat"`
	L2TpInterface           string                  `json:"l2tp_interface,omitempty"` // wan|wan2
	LteLanEnabled           bool                    `json:"lte_lan_enabled"`
	NATOutboundIP           string                  `json:"nat_outbound_ip,omitempty"`
	Name                    string                  `json:"name,omitempty"`                   // .{1,128}
	NetworkGroup            string                  `json:"networkgroup,omitempty"`           // LAN[2-8]?
	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])$
	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])$
	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)$|^$
	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]|30)$|^$
	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]$|^$
	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]|^$
	VLANEnabled             bool                    `json:"vlan_enabled"`
	VPNClientDefaultRoute   bool                    `json:"vpn_client_default_route"`
	VPNClientPullDNS        bool                    `json:"vpn_client_pull_dns"`
	VPNType                 string                  `json:"vpn_type,omitempty"` // auto|ipsec-vpn|openvpn-vpn|pptp-client|l2tp-server|pptp-server|uid-server
	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])$|^$
	WANEgressQOS            int                     `json:"wan_egress_qos,omitempty"`          // [1-7]|^$
	WANGateway              string                  `json:"wan_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])$|^$
	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])$
	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]))$|^$
	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
	WANPrefixlen            int                     `json:"wan_prefixlen,omitempty"`           // ^([1-9]|[1-8][0-9]|9[0-9]|1[01][0-9]|12[0-8])$|^$
	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
	WANTypeV6               string                  `json:"wan_type_v6,omitempty"`        // disabled|dhcpv6|static
	WANUsername             string                  `json:"wan_username,omitempty"`       // [^"' ]+
	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"`
	XIPSecPreSharedKey      string                  `json:"x_ipsec_pre_shared_key,omitempty"`      // [^\"\' ]+
	XOpenVPNSharedSecretKey string                  `json:"x_openvpn_shared_secret_key,omitempty"` // [0-9A-Fa-f]{512}
	XPptpcPassword          string                  `json:"x_pptpc_password,omitempty"`            // [^\"\' ]+
	XWANPassword            string                  `json:"x_wan_password,omitempty"`              // [^"' ]+
}

func (*Network) UnmarshalJSON

func (dst *Network) 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"`
}

type NotFoundError

type NotFoundError struct{}

func (*NotFoundError) Error

func (err *NotFoundError) Error() string

type PortConf

type PortConf 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"`
	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"`
	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|pasv24|passthrough|off
	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
	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"`
	TaggedNetworkIDs             []string `json:"tagged_networkconf_ids,omitempty"`
	VoiceNetworkID               string   `json:"voice_networkconf_id"`
}

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"`

	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
	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$
}

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}
	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
}

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"`
}

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"`
}

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"`
	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
}

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"` // stream|upgrade
	AdditionalSoundsEnabled bool                         `json:"additional_sounds_enabled"`
	BroadcastgroupID        string                       `json:"broadcastgroup_id"`
	CronExpr                string                       `json:"cron_expr,omitempty"`
	ExecuteOnlyOnce         bool                         `json:"execute_only_once"`
	MediafileID             string                       `json:"mediafile_id"`
	Name                    string                       `json:"name,omitempty"`
	SampleFilename          string                       `json:"sample_filename,omitempty"`
	StreamType              string                       `json:"stream_type,omitempty"` // media|sample
	UpgradeTargets          []ScheduleTaskUpgradeTargets `json:"upgrade_targets,omitempty"`
}

type ScheduleTaskUpgradeTargets

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

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"`

	Enabled  bool `json:"enabled"`
	Interval int  `json:"interval,omitempty"` // ^(1[2-9]|[2-9][0-9]|[1-9][0-9]{2,3})$
}

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"`
}

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
}

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"`
}

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"`
}

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"`
}

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"`
}

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|password|hotspot|facebook_wifi|custom
	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"`
	PaymentEnabled                         bool     `json:"payment_enabled"`
	PaypalUseSandbox                       bool     `json:"paypal_use_sandbox"`
	PortalCustomized                       bool     `json:"portal_customized"`
	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"`
	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$|^$
	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}$|^$
	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-Z]{2})*$
	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"`
	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"`
}

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"`

	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|spamhaus|emerging-sql|emerging-telnet|emerging-tftp|tor|emerging-trojan|emerging-useragent|emerging-voip|emerging-webapps|emerging-webclient|emerging-webserver|emerging-worm
	EndpointScanning    bool                   `json:"endpoint_scanning"`
	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"`
}

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
}

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|security|adult|family
	Name         string   `json:"name,omitempty"`
	NetworkID    string   `json:"network_id"`
	Version      string   `json:"version,omitempty"` // v4|v6
}

type SettingIpsHoneypot

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

type SettingIpsSuppression

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

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"`
}

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"`
}

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"`
}

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"`
}

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"`
	BootSound               bool     `json:"boot_sound"`
	LedEnabled              bool     `json:"led_enabled"`
	OutdoorModeEnabled      bool     `json:"outdoor_mode_enabled"`
	UnifiIDpEnabled         bool     `json:"unifi_idp_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                []string `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}$
}

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"`
}

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"`
}

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"`
}

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]*$
}

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"`

	ChannelsNa     []int    `json:"channels_na,omitempty"` // 36|40|44|48|52|56|60|64|100|104|108|112|116|120|124|128|132|136|140|144|149|153|157|161|165
	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
	UseXY          bool     `json:"useXY"`
}

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,128}
}

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"`

	Debug                       bool   `json:"debug"`
	Enabled                     bool   `json:"enabled"`
	IP                          string `json:"ip,omitempty"`
	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"`
}

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}
}

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"`
}

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"`
}

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"`
}

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"`
}

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
}

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"`
	DataRetentionTimeEnabled                 bool     `json:"data_retention_time_enabled"`
	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"`
	OverrideInformHost                       bool     `json:"override_inform_host"`
	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"`
}

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"`
	OauthAppID        string   `json:"oauth_app_id"`
	OauthEnabled      bool     `json:"oauth_enabled"`
	OauthRedirectUris []string `json:"oauth_redirect_uris,omitempty"`
	SsoLoginEnabled   string   `json:"sso_login_enabled,omitempty"`
	UbicUuid          string   `json:"ubic_uuid,omitempty"`
	XOauthAppSecret   string   `json:"x_oauth_app_secret,omitempty"`
}

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"`
}

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])$|^$
	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"`
	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
}

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"`
}

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}
}

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"`
}

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]+)$)
}

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"`
}

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"`

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

	Blocked     bool   `json:"blocked,omitempty"`
	FixedIP     string `json:"fixed_ip,omitempty"`
	Hostname    string `json:"hostname,omitempty"`
	LastSeen    int    `json:"last_seen,omitempty"`
	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"`
}

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
}

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"`
}

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"`

	AuthCache                 bool     `json:"auth_cache"`
	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]+|^$
	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"`
	Hotspot2ConfEnabled       bool     `json:"hotspot2conf_enabled"`
	Hotspot2ConfID            string   `json:"hotspot2conf_id"`
	IappEnabled               bool     `json:"iapp_enabled"`
	IsGuest                   bool     `json:"is_guest"`
	L2Isolation               bool     `json:"l2_isolation"`
	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"`
	MinrateNaBeaconRateKbps   int      `json:"minrate_na_beacon_rate_kbps,omitempty"`
	MinrateNaDataRateKbps     int      `json:"minrate_na_data_rate_kbps,omitempty"`
	MinrateNaEnabled          bool     `json:"minrate_na_enabled"`
	MinrateNaMgmtRateKbps     int      `json:"minrate_na_mgmt_rate_kbps,omitempty"`
	MinrateNgAdvertisingRates bool     `json:"minrate_ng_advertising_rates"`
	MinrateNgBeaconRateKbps   int      `json:"minrate_ng_beacon_rate_kbps,omitempty"`
	MinrateNgCckRatesEnabled  bool     `json:"minrate_ng_cck_rates_enabled"`
	MinrateNgDataRateKbps     int      `json:"minrate_ng_data_rate_kbps,omitempty"`
	MinrateNgEnabled          bool     `json:"minrate_ng_enabled"`
	MinrateNgMgmtRateKbps     int      `json:"minrate_ng_mgmt_rate_kbps,omitempty"`
	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}
	No2GhzOui                 bool     `json:"no2ghz_oui"`
	P2P                       bool     `json:"p2p"`
	P2PCrossConnect           bool     `json:"p2p_cross_connect"`
	Priority                  string   `json:"priority,omitempty"` // medium|high|low
	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"`
	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"`
	Security                  string   `json:"security,omitempty"` // open|wpapsk|wep|wpaeap|osen
	TdlsProhibit              bool     `json:"tdls_prohibit"`
	UapsdEnabled              bool     `json:"uapsd_enabled"`
	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]
	WLANGroupID               string   `json:"wlangroup_id"`
	WPAEnc                    string   `json:"wpa_enc,omitempty"`      // auto|ccmp
	WPAMode                   string   `json:"wpa_mode,omitempty"`     // auto|wpa1|wpa2
	XIappKey                  string   `json:"x_iapp_key,omitempty"`   // [0-9A-Fa-f]{32}
	XPassphrase               string   `json:"x_passphrase,omitempty"` // [\x20-\x7E]{8,63}|[0-9a-fA-F]{64}
	XWEP                      string   `json:"x_wep,omitempty"`
}

func (*WLAN) UnmarshalJSON

func (n *WLAN) 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"`

	BSupported         bool   `json:"b_supported"`
	LoadbalanceEnabled bool   `json:"loadbalance_enabled"`
	Maxsta             int    `json:"maxsta,omitempty"` // [1-9]|[1-9][0-9]|1[0-9]{2}|200|^$
	MinRSSI            string `json:"minrssi,omitempty"`
	MinRSSIEnabled     bool   `json:"minrssi_enabled"`
	Name               string `json:"name,omitempty"`     // .{1,128}
	PMFMode            string `json:"pmf_mode,omitempty"` // disabled|optional|required
}

func (*WLANGroup) UnmarshalJSON

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

Source Files

Jump to

Keyboard shortcuts

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