Documentation
¶
Overview ¶
Package unifi provides a set of types to unload (unmarshal) Ubiquiti UniFi controller data. Also provided are methods to easily get data for devices - things like access points and switches, and for clients - the things connected to those access points and switches. As a bonus, each device and client type provided has an attached method to create InfluxDB datapoints.
Index ¶
- Constants
- func DiscardLogs(msg string, v ...interface{})
- type Ap
- type Client
- type Clients
- type Config
- type Devices
- type FlexBool
- type FlexInt
- type Gw
- type IDS
- type IDSList
- type Logger
- type Port
- type Site
- type Sites
- type SpeedtestStatus
- type Sw
- type SysStats
- type SystemStats
- type UAP
- type UAPStat
- type UDM
- type UDMStat
- type USG
- type USGStat
- type USW
- type USWStat
- type Unifi
- func (u *Unifi) GetClients(sites Sites) (Clients, error)
- func (u *Unifi) GetData(methodPath string, v interface{}) error
- func (u *Unifi) GetDevices(sites Sites) (*Devices, error)
- func (u *Unifi) GetIDS(sites Sites, from, to time.Time) ([]*IDS, error)
- func (u *Unifi) GetJSON(apiPath string) ([]byte, error)
- func (u *Unifi) GetServerData() error
- func (u *Unifi) GetSiteIDS(site *Site, from, to time.Time) ([]*IDS, error)
- func (u *Unifi) GetSites() (Sites, error)
- func (u *Unifi) Login() error
- func (u *Unifi) UniReq(apiPath string, params string) (req *http.Request, err error)
- type Uplink
- type Wan
Constants ¶
const ( // StatusPath shows Controller version. StatusPath string = "/status" // SiteList is the path to the api site list. SiteList string = "/api/stat/sites" // ClientPath is Unifi Clients API Path ClientPath string = "/api/s/%s/stat/sta" // DevicePath is where we get data about Unifi devices. DevicePath string = "/api/s/%s/stat/device" // NetworkPath contains network-configuration data. Not really graphable. NetworkPath string = "/api/s/%s/rest/networkconf" // UserGroupPath contains usergroup configurations. UserGroupPath string = "/api/s/%s/rest/usergroup" // LoginPath is Unifi Controller Login API Path LoginPath string = "/api/login" // IPSEvents returns Intrusion Detection Systems Events IPSEvents string = "/api/s/%s/stat/ips/event" )
This is a list of unifi API paths. The %s in each string must be replaced with a Site.Name.
Variables ¶
This section is empty.
Functions ¶
func DiscardLogs ¶
func DiscardLogs(msg string, v ...interface{})
DiscardLogs is the default debug logger.
Types ¶
type Ap ¶
type Ap struct { SiteID string `json:"site_id"` O string `json:"o"` Oid string `json:"oid"` Ap string `json:"ap"` Time FlexInt `json:"time"` Datetime time.Time `json:"datetime"` GuestWifi0RxPackets FlexInt `json:"guest-wifi0-rx_packets"` GuestWifi1RxPackets FlexInt `json:"guest-wifi1-rx_packets"` UserWifi1RxPackets FlexInt `json:"user-wifi1-rx_packets"` UserWifi0RxPackets FlexInt `json:"user-wifi0-rx_packets"` UserRxPackets FlexInt `json:"user-rx_packets"` GuestRxPackets FlexInt `json:"guest-rx_packets"` Wifi0RxPackets FlexInt `json:"wifi0-rx_packets"` Wifi1RxPackets FlexInt `json:"wifi1-rx_packets"` RxPackets FlexInt `json:"rx_packets"` GuestWifi0RxBytes FlexInt `json:"guest-wifi0-rx_bytes"` GuestWifi1RxBytes FlexInt `json:"guest-wifi1-rx_bytes"` UserWifi1RxBytes FlexInt `json:"user-wifi1-rx_bytes"` UserWifi0RxBytes FlexInt `json:"user-wifi0-rx_bytes"` UserRxBytes FlexInt `json:"user-rx_bytes"` GuestRxBytes FlexInt `json:"guest-rx_bytes"` Wifi0RxBytes FlexInt `json:"wifi0-rx_bytes"` Wifi1RxBytes FlexInt `json:"wifi1-rx_bytes"` RxBytes FlexInt `json:"rx_bytes"` GuestWifi0RxErrors FlexInt `json:"guest-wifi0-rx_errors"` GuestWifi1RxErrors FlexInt `json:"guest-wifi1-rx_errors"` UserWifi1RxErrors FlexInt `json:"user-wifi1-rx_errors"` UserWifi0RxErrors FlexInt `json:"user-wifi0-rx_errors"` UserRxErrors FlexInt `json:"user-rx_errors"` GuestRxErrors FlexInt `json:"guest-rx_errors"` Wifi0RxErrors FlexInt `json:"wifi0-rx_errors"` Wifi1RxErrors FlexInt `json:"wifi1-rx_errors"` RxErrors FlexInt `json:"rx_errors"` GuestWifi0RxDropped FlexInt `json:"guest-wifi0-rx_dropped"` GuestWifi1RxDropped FlexInt `json:"guest-wifi1-rx_dropped"` UserWifi1RxDropped FlexInt `json:"user-wifi1-rx_dropped"` UserWifi0RxDropped FlexInt `json:"user-wifi0-rx_dropped"` UserRxDropped FlexInt `json:"user-rx_dropped"` GuestRxDropped FlexInt `json:"guest-rx_dropped"` Wifi0RxDropped FlexInt `json:"wifi0-rx_dropped"` Wifi1RxDropped FlexInt `json:"wifi1-rx_dropped"` RxDropped FlexInt `json:"rx_dropped"` GuestWifi0RxCrypts FlexInt `json:"guest-wifi0-rx_crypts"` GuestWifi1RxCrypts FlexInt `json:"guest-wifi1-rx_crypts"` UserWifi1RxCrypts FlexInt `json:"user-wifi1-rx_crypts"` UserWifi0RxCrypts FlexInt `json:"user-wifi0-rx_crypts"` UserRxCrypts FlexInt `json:"user-rx_crypts"` GuestRxCrypts FlexInt `json:"guest-rx_crypts"` Wifi0RxCrypts FlexInt `json:"wifi0-rx_crypts"` Wifi1RxCrypts FlexInt `json:"wifi1-rx_crypts"` RxCrypts FlexInt `json:"rx_crypts"` GuestWifi0RxFrags FlexInt `json:"guest-wifi0-rx_frags"` GuestWifi1RxFrags FlexInt `json:"guest-wifi1-rx_frags"` UserWifi1RxFrags FlexInt `json:"user-wifi1-rx_frags"` UserWifi0RxFrags FlexInt `json:"user-wifi0-rx_frags"` UserRxFrags FlexInt `json:"user-rx_frags"` GuestRxFrags FlexInt `json:"guest-rx_frags"` Wifi0RxFrags FlexInt `json:"wifi0-rx_frags"` Wifi1RxFrags FlexInt `json:"wifi1-rx_frags"` RxFrags FlexInt `json:"rx_frags"` GuestWifi0TxPackets FlexInt `json:"guest-wifi0-tx_packets"` GuestWifi1TxPackets FlexInt `json:"guest-wifi1-tx_packets"` UserWifi1TxPackets FlexInt `json:"user-wifi1-tx_packets"` UserWifi0TxPackets FlexInt `json:"user-wifi0-tx_packets"` UserTxPackets FlexInt `json:"user-tx_packets"` GuestTxPackets FlexInt `json:"guest-tx_packets"` Wifi0TxPackets FlexInt `json:"wifi0-tx_packets"` Wifi1TxPackets FlexInt `json:"wifi1-tx_packets"` TxPackets FlexInt `json:"tx_packets"` GuestWifi0TxBytes FlexInt `json:"guest-wifi0-tx_bytes"` GuestWifi1TxBytes FlexInt `json:"guest-wifi1-tx_bytes"` UserWifi1TxBytes FlexInt `json:"user-wifi1-tx_bytes"` UserWifi0TxBytes FlexInt `json:"user-wifi0-tx_bytes"` UserTxBytes FlexInt `json:"user-tx_bytes"` GuestTxBytes FlexInt `json:"guest-tx_bytes"` Wifi0TxBytes FlexInt `json:"wifi0-tx_bytes"` Wifi1TxBytes FlexInt `json:"wifi1-tx_bytes"` TxBytes FlexInt `json:"tx_bytes"` GuestWifi0TxErrors FlexInt `json:"guest-wifi0-tx_errors"` GuestWifi1TxErrors FlexInt `json:"guest-wifi1-tx_errors"` UserWifi1TxErrors FlexInt `json:"user-wifi1-tx_errors"` UserWifi0TxErrors FlexInt `json:"user-wifi0-tx_errors"` UserTxErrors FlexInt `json:"user-tx_errors"` GuestTxErrors FlexInt `json:"guest-tx_errors"` Wifi0TxErrors FlexInt `json:"wifi0-tx_errors"` Wifi1TxErrors FlexInt `json:"wifi1-tx_errors"` TxErrors FlexInt `json:"tx_errors"` GuestWifi0TxDropped FlexInt `json:"guest-wifi0-tx_dropped"` GuestWifi1TxDropped FlexInt `json:"guest-wifi1-tx_dropped"` UserWifi1TxDropped FlexInt `json:"user-wifi1-tx_dropped"` UserWifi0TxDropped FlexInt `json:"user-wifi0-tx_dropped"` UserTxDropped FlexInt `json:"user-tx_dropped"` GuestTxDropped FlexInt `json:"guest-tx_dropped"` Wifi0TxDropped FlexInt `json:"wifi0-tx_dropped"` Wifi1TxDropped FlexInt `json:"wifi1-tx_dropped"` TxDropped FlexInt `json:"tx_dropped"` GuestWifi0TxRetries FlexInt `json:"guest-wifi0-tx_retries"` GuestWifi1TxRetries FlexInt `json:"guest-wifi1-tx_retries"` UserWifi1TxRetries FlexInt `json:"user-wifi1-tx_retries"` UserWifi0TxRetries FlexInt `json:"user-wifi0-tx_retries"` UserTxRetries FlexInt `json:"user-tx_retries"` GuestTxRetries FlexInt `json:"guest-tx_retries"` Wifi0TxRetries FlexInt `json:"wifi0-tx_retries"` Wifi1TxRetries FlexInt `json:"wifi1-tx_retries"` TxRetries FlexInt `json:"tx_retries"` GuestWifi0MacFilterRejections FlexInt `json:"guest-wifi0-mac_filter_rejections"` GuestWifi1MacFilterRejections FlexInt `json:"guest-wifi1-mac_filter_rejections"` UserWifi1MacFilterRejections FlexInt `json:"user-wifi1-mac_filter_rejections"` UserWifi0MacFilterRejections FlexInt `json:"user-wifi0-mac_filter_rejections"` UserMacFilterRejections FlexInt `json:"user-mac_filter_rejections"` GuestMacFilterRejections FlexInt `json:"guest-mac_filter_rejections"` Wifi0MacFilterRejections FlexInt `json:"wifi0-mac_filter_rejections"` Wifi1MacFilterRejections FlexInt `json:"wifi1-mac_filter_rejections"` MacFilterRejections FlexInt `json:"mac_filter_rejections"` GuestWifi0WifiTxAttempts FlexInt `json:"guest-wifi0-wifi_tx_attempts"` GuestWifi1WifiTxAttempts FlexInt `json:"guest-wifi1-wifi_tx_attempts"` UserWifi1WifiTxAttempts FlexInt `json:"user-wifi1-wifi_tx_attempts"` UserWifi0WifiTxAttempts FlexInt `json:"user-wifi0-wifi_tx_attempts"` UserWifiTxAttempts FlexInt `json:"user-wifi_tx_attempts"` GuestWifiTxAttempts FlexInt `json:"guest-wifi_tx_attempts"` Wifi0WifiTxAttempts FlexInt `json:"wifi0-wifi_tx_attempts"` Wifi1WifiTxAttempts FlexInt `json:"wifi1-wifi_tx_attempts"` WifiTxAttempts FlexInt `json:"wifi_tx_attempts"` GuestWifi0WifiTxDropped FlexInt `json:"guest-wifi0-wifi_tx_dropped"` GuestWifi1WifiTxDropped FlexInt `json:"guest-wifi1-wifi_tx_dropped"` UserWifi1WifiTxDropped FlexInt `json:"user-wifi1-wifi_tx_dropped"` UserWifi0WifiTxDropped FlexInt `json:"user-wifi0-wifi_tx_dropped"` UserWifiTxDropped FlexInt `json:"user-wifi_tx_dropped"` GuestWifiTxDropped FlexInt `json:"guest-wifi_tx_dropped"` Wifi0WifiTxDropped FlexInt `json:"wifi0-wifi_tx_dropped"` Wifi1WifiTxDropped FlexInt `json:"wifi1-wifi_tx_dropped"` WifiTxDropped FlexInt `json:"wifi_tx_dropped"` Bytes FlexInt `json:"bytes"` Duration FlexInt `json:"duration"` }
Ap is a subtype of UAPStat to make unmarshalling of different controller versions possible.
type Client ¶
type Client struct { Anomalies int64 `json:"anomalies,omitempty"` ApMac string `json:"ap_mac"` ApName string `json:"-"` AssocTime int64 `json:"assoc_time"` Blocked bool `json:"blocked,omitempty"` Bssid string `json:"bssid"` BytesR int64 `json:"bytes-r"` Ccq int64 `json:"ccq"` Channel FlexInt `json:"channel"` DevCat FlexInt `json:"dev_cat"` DevFamily FlexInt `json:"dev_family"` DevID FlexInt `json:"dev_id"` DevVendor FlexInt `json:"dev_vendor,omitempty"` DhcpendTime int `json:"dhcpend_time,omitempty"` DpiStats struct { App FlexInt Cat FlexInt RxBytes FlexInt RxPackets FlexInt TxBytes FlexInt TxPackets FlexInt } `json:"dpi_stats"` DpiStatsLastUpdated int64 `json:"dpi_stats_last_updated"` Essid string `json:"essid"` FirstSeen int64 `json:"first_seen"` FixedIP string `json:"fixed_ip"` GwMac string `json:"gw_mac"` GwName string `json:"-"` Hostname string `json:"hostname"` ID string `json:"_id"` IP string `json:"ip"` IdleTime int64 `json:"idle_time"` Is11R FlexBool `json:"is_11r"` IsGuest FlexBool `json:"is_guest"` IsGuestByUAP FlexBool `json:"_is_guest_by_uap"` IsGuestByUGW FlexBool `json:"_is_guest_by_ugw"` IsGuestByUSW FlexBool `json:"_is_guest_by_usw"` IsWired FlexBool `json:"is_wired"` LastSeen int64 `json:"last_seen"` LastSeenByUAP int64 `json:"_last_seen_by_uap"` LastSeenByUGW int64 `json:"_last_seen_by_ugw"` LastSeenByUSW int64 `json:"_last_seen_by_usw"` LatestAssocTime int64 `json:"latest_assoc_time"` Mac string `json:"mac"` Name string `json:"name"` Network string `json:"network"` NetworkID string `json:"network_id"` Noise int64 `json:"noise"` Note string `json:"note"` Noted FlexBool `json:"noted"` OsClass FlexInt `json:"os_class"` OsName FlexInt `json:"os_name"` Oui string `json:"oui"` PowersaveEnabled FlexBool `json:"powersave_enabled"` QosPolicyApplied FlexBool `json:"qos_policy_applied"` Radio string `json:"radio"` RadioName string `json:"radio_name"` RadioProto string `json:"radio_proto"` RoamCount int64 `json:"roam_count"` Rssi int64 `json:"rssi"` RxBytes int64 `json:"rx_bytes"` RxBytesR int64 `json:"rx_bytes-r"` RxPackets int64 `json:"rx_packets"` RxRate int64 `json:"rx_rate"` Signal int64 `json:"signal"` SiteID string `json:"site_id"` SiteName string `json:"-"` SwDepth int `json:"sw_depth"` SwMac string `json:"sw_mac"` SwName string `json:"-"` SwPort FlexInt `json:"sw_port"` TxBytes int64 `json:"tx_bytes"` TxBytesR int64 `json:"tx_bytes-r"` TxPackets int64 `json:"tx_packets"` TxPower int64 `json:"tx_power"` TxRate int64 `json:"tx_rate"` Uptime int64 `json:"uptime"` UptimeByUAP int64 `json:"_uptime_by_uap"` UptimeByUGW int64 `json:"_uptime_by_ugw"` UptimeByUSW int64 `json:"_uptime_by_usw"` UseFixedIP FlexBool `json:"use_fixedip"` UserGroupID string `json:"usergroup_id"` UserID string `json:"user_id"` Vlan FlexInt `json:"vlan"` WifiTxAttempts int64 `json:"wifi_tx_attempts"` WiredRxBytes int64 `json:"wired-rx_bytes"` WiredRxBytesR int64 `json:"wired-rx_bytes-r"` WiredRxPackets int64 `json:"wired-rx_packets"` WiredTxBytes int64 `json:"wired-tx_bytes"` WiredTxBytesR int64 `json:"wired-tx_bytes-r"` WiredTxPackets int64 `json:"wired-tx_packets"` }
Client defines all the data a connected-network client contains.
type Clients ¶
type Clients []*Client
Clients contains a list that contains all of the unifi clients from a controller.
type Config ¶
type Config struct { User string Pass string URL string VerifySSL bool ErrorLog Logger DebugLog Logger }
Config is the data passed into our library. This configures things and allows us to connect to a controller and write log messages.
type Devices ¶
Devices contains a list of all the unifi devices from a controller. Contains Access points, security gateways and switches.
type FlexBool ¶ added in v1.0.1
FlexBool provides a container and unmarshalling for fields that may be boolean or strings in the Unifi API.
func (*FlexBool) UnmarshalJSON ¶ added in v1.0.1
UnmarshalJSON method converts armed/disarmed, yes/no, active/inactive or 0/1 to true/false. Really it converts ready, ok, up, t, armed, yes, active, enabled, 1, true to true. Anything else is false.
type FlexInt ¶
FlexInt provides a container and unmarshalling for fields that may be numbers or strings in the Unifi API.
func (*FlexInt) UnmarshalJSON ¶
UnmarshalJSON converts a string or number to an integer. Generally, do call this directly, it's used in the json interface.
type Gw ¶
type Gw struct { SiteID string `json:"site_id"` O string `json:"o"` Oid string `json:"oid"` Gw string `json:"gw"` Time FlexInt `json:"time"` Datetime time.Time `json:"datetime"` Duration FlexInt `json:"duration"` WanRxPackets FlexInt `json:"wan-rx_packets"` WanRxBytes FlexInt `json:"wan-rx_bytes"` WanRxDropped FlexInt `json:"wan-rx_dropped"` WanTxPackets FlexInt `json:"wan-tx_packets"` WanTxBytes FlexInt `json:"wan-tx_bytes"` LanRxPackets FlexInt `json:"lan-rx_packets"` LanRxBytes FlexInt `json:"lan-rx_bytes"` LanTxPackets FlexInt `json:"lan-tx_packets"` LanTxBytes FlexInt `json:"lan-tx_bytes"` LanRxDropped FlexInt `json:"lan-rx_dropped"` WanRxErrors FlexInt `json:"wan-rx_errors,omitempty"` }
Gw is a subtype of USGStat to make unmarshalling of different controller versions possible.
type IDS ¶
type IDS struct { ID string `json:"_id"` Archived FlexBool `json:"archived"` Timestamp int64 `json:"timestamp"` FlowID int64 `json:"flow_id"` InIface string `json:"in_iface"` EventType string `json:"event_type"` SrcIP string `json:"src_ip"` SrcMac string `json:"src_mac"` SrcPort int `json:"src_port,omitempty"` DestIP string `json:"dest_ip"` DstMac string `json:"dst_mac"` DestPort int `json:"dest_port,omitempty"` Proto string `json:"proto"` AppProto string `json:"app_proto,omitempty"` Host string `json:"host"` Usgip string `json:"usgip"` UniqueAlertid string `json:"unique_alertid"` SrcipCountry string `json:"srcipCountry"` DstipCountry FlexBool `json:"dstipCountry"` UsgipCountry string `json:"usgipCountry"` SrcipGeo struct { ContinentCode string `json:"continent_code"` CountryCode string `json:"country_code"` CountryCode3 string `json:"country_code3"` CountryName string `json:"country_name"` Region string `json:"region"` City string `json:"city"` PostalCode string `json:"postal_code"` Latitude float64 `json:"latitude"` Longitude float64 `json:"longitude"` DmaCode int64 `json:"dma_code"` AreaCode int64 `json:"area_code"` } `json:"srcipGeo"` DstipGeo bool `json:"dstipGeo"` UsgipGeo struct { ContinentCode string `json:"continent_code"` CountryCode string `json:"country_code"` CountryCode3 string `json:"country_code3"` CountryName string `json:"country_name"` Region string `json:"region"` City string `json:"city"` PostalCode string `json:"postal_code"` Latitude float64 `json:"latitude"` Longitude float64 `json:"longitude"` DmaCode int64 `json:"dma_code"` AreaCode int64 `json:"area_code"` } `json:"usgipGeo"` SrcipASN string `json:"srcipASN"` DstipASN string `json:"dstipASN"` UsgipASN string `json:"usgipASN"` Catname string `json:"catname"` InnerAlertAction string `json:"inner_alert_action"` InnerAlertGid int64 `json:"inner_alert_gid"` InnerAlertSignatureID int64 `json:"inner_alert_signature_id"` InnerAlertRev int64 `json:"inner_alert_rev"` InnerAlertSignature string `json:"inner_alert_signature"` InnerAlertCategory string `json:"inner_alert_category"` InnerAlertSeverity int64 `json:"inner_alert_severity"` Key string `json:"key"` Subsystem string `json:"subsystem"` SiteID string `json:"site_id"` SiteName string `json:"-"` Time int64 `json:"time"` Datetime time.Time `json:"datetime"` Msg string `json:"msg"` IcmpType int64 `json:"icmp_type,omitempty"` IcmpCode int64 `json:"icmp_code,omitempty"` }
IDS holds an Intrusion Prevention System Event.
type IDSList ¶
type IDSList []*IDS
IDSList contains a list that contains all of the IDS Events on a controller.
type Logger ¶
type Logger func(msg string, fmt ...interface{})
Logger is a base type to deal with changing log outputs. Create a logger that matches this interface to capture debug and error logs.
type Port ¶
type Port struct { AggregatedBy FlexBool `json:"aggregated_by"` Autoneg FlexBool `json:"autoneg,omitempty"` BytesR FlexInt `json:"bytes-r"` DNS []string `json:"dns,omitempty"` Dot1XMode string `json:"dot1x_mode"` Dot1XStatus string `json:"dot1x_status"` Enable FlexBool `json:"enable"` FlowctrlRx FlexBool `json:"flowctrl_rx"` FlowctrlTx FlexBool `json:"flowctrl_tx"` FullDuplex FlexBool `json:"full_duplex"` IP string `json:"ip,omitempty"` Ifname string `json:"ifname,omitempty"` IsUplink FlexBool `json:"is_uplink"` Mac string `json:"mac,omitempty"` Jumbo FlexBool `json:"jumbo,omitempty"` Masked FlexBool `json:"masked"` Media string `json:"media"` Name string `json:"name"` NetworkName string `json:"network_name,omitempty"` NumPort int `json:"num_port,omitempty"` OpMode string `json:"op_mode"` PoeCaps FlexInt `json:"poe_caps"` PoeClass string `json:"poe_class,omitempty"` PoeCurrent FlexInt `json:"poe_current,omitempty"` PoeEnable FlexBool `json:"poe_enable,omitempty"` PoeGood FlexBool `json:"poe_good,omitempty"` PoeMode string `json:"poe_mode,omitempty"` PoePower FlexInt `json:"poe_power,omitempty"` PoeVoltage FlexInt `json:"poe_voltage,omitempty"` PortDelta struct { TimeDelta int64 `json:"time_delta"` } `json:"port_delta,omitempty"` PortIdx FlexInt `json:"port_idx"` PortPoe FlexBool `json:"port_poe"` PortconfID string `json:"portconf_id"` RxBroadcast FlexInt `json:"rx_broadcast"` RxBytes FlexInt `json:"rx_bytes"` RxBytesR FlexInt `json:"rx_bytes-r"` RxDropped FlexInt `json:"rx_dropped"` RxErrors FlexInt `json:"rx_errors"` RxMulticast FlexInt `json:"rx_multicast"` RxPackets FlexInt `json:"rx_packets"` Satisfaction FlexInt `json:"satisfaction,omitempty"` SfpFound FlexBool `json:"sfp_found,omitempty"` Speed FlexInt `json:"speed"` SpeedCaps FlexInt `json:"speed_caps"` StpPathcost FlexInt `json:"stp_pathcost"` StpState string `json:"stp_state"` TxBroadcast FlexInt `json:"tx_broadcast"` TxBytes FlexInt `json:"tx_bytes"` TxBytesR FlexInt `json:"tx_bytes-r"` TxDropped FlexInt `json:"tx_dropped"` TxErrors FlexInt `json:"tx_errors"` TxMulticast FlexInt `json:"tx_multicast"` TxPackets FlexInt `json:"tx_packets"` Type string `json:"type,omitempty"` Up FlexBool `json:"up"` }
Port is a physical connection on a USW or UDM.
type Site ¶
type Site struct { ID string `json:"_id"` Name string `json:"name"` Desc string `json:"desc"` SiteName string `json:"-"` AttrHiddenID string `json:"attr_hidden_id"` AttrNoDelete FlexBool `json:"attr_no_delete"` Health []struct { Subsystem string `json:"subsystem"` NumUser FlexInt `json:"num_user,omitempty"` NumGuest FlexInt `json:"num_guest,omitempty"` NumIot FlexInt `json:"num_iot,omitempty"` TxBytesR FlexInt `json:"tx_bytes-r,omitempty"` RxBytesR FlexInt `json:"rx_bytes-r,omitempty"` Status string `json:"status"` NumAp FlexInt `json:"num_ap,omitempty"` NumAdopted FlexInt `json:"num_adopted,omitempty"` NumDisabled FlexInt `json:"num_disabled,omitempty"` NumDisconnected FlexInt `json:"num_disconnected,omitempty"` NumPending FlexInt `json:"num_pending,omitempty"` NumGw FlexInt `json:"num_gw,omitempty"` WanIP string `json:"wan_ip,omitempty"` Gateways []string `json:"gateways,omitempty"` Netmask string `json:"netmask,omitempty"` Nameservers []string `json:"nameservers,omitempty"` NumSta FlexInt `json:"num_sta,omitempty"` GwMac string `json:"gw_mac,omitempty"` GwName string `json:"gw_name,omitempty"` GwSystemStats struct { CPU FlexInt `json:"cpu"` Mem FlexInt `json:"mem"` Uptime FlexInt `json:"uptime"` } `json:"gw_system-stats,omitempty"` GwVersion string `json:"gw_version,omitempty"` Latency FlexInt `json:"latency,omitempty"` Uptime FlexInt `json:"uptime,omitempty"` Drops FlexInt `json:"drops,omitempty"` XputUp FlexInt `json:"xput_up,omitempty"` XputDown FlexInt `json:"xput_down,omitempty"` SpeedtestStatus string `json:"speedtest_status,omitempty"` SpeedtestLastrun FlexInt `json:"speedtest_lastrun,omitempty"` SpeedtestPing FlexInt `json:"speedtest_ping,omitempty"` LanIP string `json:"lan_ip,omitempty"` NumSw FlexInt `json:"num_sw,omitempty"` RemoteUserEnabled FlexBool `json:"remote_user_enabled,omitempty"` RemoteUserNumActive FlexInt `json:"remote_user_num_active,omitempty"` RemoteUserNumInactive FlexInt `json:"remote_user_num_inactive,omitempty"` RemoteUserRxBytes FlexInt `json:"remote_user_rx_bytes,omitempty"` RemoteUserTxBytes FlexInt `json:"remote_user_tx_bytes,omitempty"` RemoteUserRxPackets FlexInt `json:"remote_user_rx_packets,omitempty"` RemoteUserTxPackets FlexInt `json:"remote_user_tx_packets,omitempty"` SiteToSiteEnabled FlexBool `json:"site_to_site_enabled,omitempty"` } `json:"health"` NumNewAlarms FlexInt `json:"num_new_alarms"` }
Site represents a site's data.
type SpeedtestStatus ¶
type SpeedtestStatus struct { Latency FlexInt `json:"latency"` Rundate FlexInt `json:"rundate"` Runtime FlexInt `json:"runtime"` ServerDesc string `json:"server_desc,omitempty"` StatusDownload FlexInt `json:"status_download"` StatusPing FlexInt `json:"status_ping"` StatusSummary FlexInt `json:"status_summary"` StatusUpload FlexInt `json:"status_upload"` XputDownload FlexInt `json:"xput_download"` XputUpload FlexInt `json:"xput_upload"` }
SpeedtestStatus is the speed test info on a USG or UDM.
type Sw ¶
type Sw struct { SiteID string `json:"site_id"` O string `json:"o"` Oid string `json:"oid"` Sw string `json:"sw"` Time FlexInt `json:"time"` Datetime time.Time `json:"datetime"` RxPackets FlexInt `json:"rx_packets"` RxBytes FlexInt `json:"rx_bytes"` RxErrors FlexInt `json:"rx_errors"` RxDropped FlexInt `json:"rx_dropped"` RxCrypts FlexInt `json:"rx_crypts"` RxFrags FlexInt `json:"rx_frags"` TxPackets FlexInt `json:"tx_packets"` TxBytes FlexInt `json:"tx_bytes"` TxErrors FlexInt `json:"tx_errors"` TxDropped FlexInt `json:"tx_dropped"` TxRetries FlexInt `json:"tx_retries"` RxMulticast FlexInt `json:"rx_multicast"` RxBroadcast FlexInt `json:"rx_broadcast"` TxMulticast FlexInt `json:"tx_multicast"` TxBroadcast FlexInt `json:"tx_broadcast"` Bytes FlexInt `json:"bytes"` Duration FlexInt `json:"duration"` Port1RxPackets FlexInt `json:"port_1-rx_packets,omitempty"` Port1RxBytes FlexInt `json:"port_1-rx_bytes,omitempty"` Port1TxPackets FlexInt `json:"port_1-tx_packets,omitempty"` Port1TxBytes FlexInt `json:"port_1-tx_bytes,omitempty"` Port1TxMulticast FlexInt `json:"port_1-tx_multicast"` Port1TxBroadcast FlexInt `json:"port_1-tx_broadcast"` Port3RxPackets FlexInt `json:"port_3-rx_packets,omitempty"` Port3RxBytes FlexInt `json:"port_3-rx_bytes,omitempty"` Port3TxPackets FlexInt `json:"port_3-tx_packets,omitempty"` Port3TxBytes FlexInt `json:"port_3-tx_bytes,omitempty"` Port3RxBroadcast FlexInt `json:"port_3-rx_broadcast"` Port3TxMulticast FlexInt `json:"port_3-tx_multicast"` Port3TxBroadcast FlexInt `json:"port_3-tx_broadcast"` Port6RxPackets FlexInt `json:"port_6-rx_packets,omitempty"` Port6RxBytes FlexInt `json:"port_6-rx_bytes,omitempty"` Port6TxPackets FlexInt `json:"port_6-tx_packets,omitempty"` Port6TxBytes FlexInt `json:"port_6-tx_bytes,omitempty"` Port6RxMulticast FlexInt `json:"port_6-rx_multicast"` Port6TxMulticast FlexInt `json:"port_6-tx_multicast"` Port6TxBroadcast FlexInt `json:"port_6-tx_broadcast"` Port7RxPackets FlexInt `json:"port_7-rx_packets,omitempty"` Port7RxBytes FlexInt `json:"port_7-rx_bytes,omitempty"` Port7TxPackets FlexInt `json:"port_7-tx_packets,omitempty"` Port7TxBytes FlexInt `json:"port_7-tx_bytes,omitempty"` Port7TxMulticast FlexInt `json:"port_7-tx_multicast"` Port7TxBroadcast FlexInt `json:"port_7-tx_broadcast"` Port9RxPackets FlexInt `json:"port_9-rx_packets,omitempty"` Port9RxBytes FlexInt `json:"port_9-rx_bytes,omitempty"` Port9TxPackets FlexInt `json:"port_9-tx_packets,omitempty"` Port9TxBytes FlexInt `json:"port_9-tx_bytes,omitempty"` Port9TxMulticast FlexInt `json:"port_9-tx_multicast"` Port9TxBroadcast FlexInt `json:"port_9-tx_broadcast"` Port10RxPackets FlexInt `json:"port_10-rx_packets,omitempty"` Port10RxBytes FlexInt `json:"port_10-rx_bytes,omitempty"` Port10TxPackets FlexInt `json:"port_10-tx_packets,omitempty"` Port10TxBytes FlexInt `json:"port_10-tx_bytes,omitempty"` Port10RxMulticast FlexInt `json:"port_10-rx_multicast"` Port10TxMulticast FlexInt `json:"port_10-tx_multicast"` Port10TxBroadcast FlexInt `json:"port_10-tx_broadcast"` Port11RxPackets FlexInt `json:"port_11-rx_packets,omitempty"` Port11RxBytes FlexInt `json:"port_11-rx_bytes,omitempty"` Port11TxPackets FlexInt `json:"port_11-tx_packets,omitempty"` Port11TxBytes FlexInt `json:"port_11-tx_bytes,omitempty"` Port11TxMulticast FlexInt `json:"port_11-tx_multicast"` Port11TxBroadcast FlexInt `json:"port_11-tx_broadcast"` Port12RxPackets FlexInt `json:"port_12-rx_packets,omitempty"` Port12RxBytes FlexInt `json:"port_12-rx_bytes,omitempty"` Port12TxPackets FlexInt `json:"port_12-tx_packets,omitempty"` Port12TxBytes FlexInt `json:"port_12-tx_bytes,omitempty"` Port12TxMulticast FlexInt `json:"port_12-tx_multicast"` Port12TxBroadcast FlexInt `json:"port_12-tx_broadcast"` Port13RxPackets FlexInt `json:"port_13-rx_packets,omitempty"` Port13RxBytes FlexInt `json:"port_13-rx_bytes,omitempty"` Port13TxPackets FlexInt `json:"port_13-tx_packets,omitempty"` Port13TxBytes FlexInt `json:"port_13-tx_bytes,omitempty"` Port13RxMulticast FlexInt `json:"port_13-rx_multicast"` Port13RxBroadcast FlexInt `json:"port_13-rx_broadcast"` Port13TxMulticast FlexInt `json:"port_13-tx_multicast"` Port13TxBroadcast FlexInt `json:"port_13-tx_broadcast"` Port15RxPackets FlexInt `json:"port_15-rx_packets,omitempty"` Port15RxBytes FlexInt `json:"port_15-rx_bytes,omitempty"` Port15TxPackets FlexInt `json:"port_15-tx_packets,omitempty"` Port15TxBytes FlexInt `json:"port_15-tx_bytes,omitempty"` Port15RxBroadcast FlexInt `json:"port_15-rx_broadcast"` Port15TxMulticast FlexInt `json:"port_15-tx_multicast"` Port15TxBroadcast FlexInt `json:"port_15-tx_broadcast"` Port16RxPackets FlexInt `json:"port_16-rx_packets,omitempty"` Port16RxBytes FlexInt `json:"port_16-rx_bytes,omitempty"` Port16TxPackets FlexInt `json:"port_16-tx_packets,omitempty"` Port16TxBytes FlexInt `json:"port_16-tx_bytes,omitempty"` Port16TxMulticast FlexInt `json:"port_16-tx_multicast"` Port16TxBroadcast FlexInt `json:"port_16-tx_broadcast"` Port17RxPackets FlexInt `json:"port_17-rx_packets,omitempty"` Port17RxBytes FlexInt `json:"port_17-rx_bytes,omitempty"` Port17TxPackets FlexInt `json:"port_17-tx_packets,omitempty"` Port17TxBytes FlexInt `json:"port_17-tx_bytes,omitempty"` Port17TxMulticast FlexInt `json:"port_17-tx_multicast"` Port17TxBroadcast FlexInt `json:"port_17-tx_broadcast"` Port18RxPackets FlexInt `json:"port_18-rx_packets,omitempty"` Port18RxBytes FlexInt `json:"port_18-rx_bytes,omitempty"` Port18TxPackets FlexInt `json:"port_18-tx_packets,omitempty"` Port18TxBytes FlexInt `json:"port_18-tx_bytes,omitempty"` Port18RxMulticast FlexInt `json:"port_18-rx_multicast"` Port18TxMulticast FlexInt `json:"port_18-tx_multicast"` Port18TxBroadcast FlexInt `json:"port_18-tx_broadcast"` Port19RxPackets FlexInt `json:"port_19-rx_packets,omitempty"` Port19RxBytes FlexInt `json:"port_19-rx_bytes,omitempty"` Port19TxPackets FlexInt `json:"port_19-tx_packets,omitempty"` Port19TxBytes FlexInt `json:"port_19-tx_bytes,omitempty"` Port19TxMulticast FlexInt `json:"port_19-tx_multicast"` Port19TxBroadcast FlexInt `json:"port_19-tx_broadcast"` Port21RxPackets FlexInt `json:"port_21-rx_packets,omitempty"` Port21RxBytes FlexInt `json:"port_21-rx_bytes,omitempty"` Port21TxPackets FlexInt `json:"port_21-tx_packets,omitempty"` Port21TxBytes FlexInt `json:"port_21-tx_bytes,omitempty"` Port21RxBroadcast FlexInt `json:"port_21-rx_broadcast"` Port21TxMulticast FlexInt `json:"port_21-tx_multicast"` Port21TxBroadcast FlexInt `json:"port_21-tx_broadcast"` Port22RxPackets FlexInt `json:"port_22-rx_packets,omitempty"` Port22RxBytes FlexInt `json:"port_22-rx_bytes,omitempty"` Port22TxPackets FlexInt `json:"port_22-tx_packets,omitempty"` Port22TxBytes FlexInt `json:"port_22-tx_bytes,omitempty"` Port22RxMulticast FlexInt `json:"port_22-rx_multicast"` Port22TxMulticast FlexInt `json:"port_22-tx_multicast"` Port22TxBroadcast FlexInt `json:"port_22-tx_broadcast"` Port23RxPackets FlexInt `json:"port_23-rx_packets,omitempty"` Port23RxBytes FlexInt `json:"port_23-rx_bytes,omitempty"` Port23RxDropped FlexInt `json:"port_23-rx_dropped"` Port23TxPackets FlexInt `json:"port_23-tx_packets,omitempty"` Port23TxBytes FlexInt `json:"port_23-tx_bytes,omitempty"` Port23RxMulticast FlexInt `json:"port_23-rx_multicast"` Port23RxBroadcast FlexInt `json:"port_23-rx_broadcast"` Port23TxMulticast FlexInt `json:"port_23-tx_multicast"` Port23TxBroadcast FlexInt `json:"port_23-tx_broadcast"` Port24RxPackets FlexInt `json:"port_24-rx_packets,omitempty"` Port24RxBytes FlexInt `json:"port_24-rx_bytes,omitempty"` Port24TxPackets FlexInt `json:"port_24-tx_packets,omitempty"` Port24TxBytes FlexInt `json:"port_24-tx_bytes,omitempty"` Port24RxMulticast FlexInt `json:"port_24-rx_multicast"` Port24TxMulticast FlexInt `json:"port_24-tx_multicast"` Port24TxBroadcast FlexInt `json:"port_24-tx_broadcast"` Port1RxMulticast FlexInt `json:"port_1-rx_multicast"` Port3RxDropped FlexInt `json:"port_3-rx_dropped"` Port3RxMulticast FlexInt `json:"port_3-rx_multicast"` Port6RxDropped FlexInt `json:"port_6-rx_dropped"` Port7RxDropped FlexInt `json:"port_7-rx_dropped"` Port7RxMulticast FlexInt `json:"port_7-rx_multicast"` Port9RxDropped FlexInt `json:"port_9-rx_dropped"` Port9RxMulticast FlexInt `json:"port_9-rx_multicast"` Port9RxBroadcast FlexInt `json:"port_9-rx_broadcast"` Port10RxBroadcast FlexInt `json:"port_10-rx_broadcast"` Port12RxDropped FlexInt `json:"port_12-rx_dropped"` Port12RxMulticast FlexInt `json:"port_12-rx_multicast"` Port13RxDropped FlexInt `json:"port_13-rx_dropped"` Port17RxDropped FlexInt `json:"port_17-rx_dropped"` Port17RxMulticast FlexInt `json:"port_17-rx_multicast"` Port17RxBroadcast FlexInt `json:"port_17-rx_broadcast"` Port19RxDropped FlexInt `json:"port_19-rx_dropped"` Port19RxMulticast FlexInt `json:"port_19-rx_multicast"` Port19RxBroadcast FlexInt `json:"port_19-rx_broadcast"` Port21RxDropped FlexInt `json:"port_21-rx_dropped"` Port21RxMulticast FlexInt `json:"port_21-rx_multicast"` Port7RxBroadcast FlexInt `json:"port_7-rx_broadcast"` Port18RxBroadcast FlexInt `json:"port_18-rx_broadcast"` Port16RxMulticast FlexInt `json:"port_16-rx_multicast"` Port15RxDropped FlexInt `json:"port_15-rx_dropped"` Port15RxMulticast FlexInt `json:"port_15-rx_multicast"` Port16RxBroadcast FlexInt `json:"port_16-rx_broadcast"` Port11RxBroadcast FlexInt `json:"port_11-rx_broadcast"` Port12RxBroadcast FlexInt `json:"port_12-rx_broadcast"` Port6RxBroadcast FlexInt `json:"port_6-rx_broadcast"` Port24RxBroadcast FlexInt `json:"port_24-rx_broadcast"` Port22RxBroadcast FlexInt `json:"port_22-rx_broadcast"` Port10TxDropped FlexInt `json:"port_10-tx_dropped"` Port16TxDropped FlexInt `json:"port_16-tx_dropped"` Port1RxBroadcast FlexInt `json:"port_1-rx_broadcast"` Port4RxPackets FlexInt `json:"port_4-rx_packets,omitempty"` Port4RxBytes FlexInt `json:"port_4-rx_bytes,omitempty"` Port4RxDropped FlexInt `json:"port_4-rx_dropped"` Port4TxPackets FlexInt `json:"port_4-tx_packets,omitempty"` Port4TxBytes FlexInt `json:"port_4-tx_bytes,omitempty"` Port4TxDropped FlexInt `json:"port_4-tx_dropped"` Port4RxMulticast FlexInt `json:"port_4-rx_multicast"` Port4RxBroadcast FlexInt `json:"port_4-rx_broadcast"` Port4TxMulticast FlexInt `json:"port_4-tx_multicast"` Port4TxBroadcast FlexInt `json:"port_4-tx_broadcast"` }
Sw is a subtype of USWStat to make unmarshalling of different controller versions possible.
type SysStats ¶
type SysStats struct { Loadavg1 FlexInt `json:"loadavg_1"` Loadavg15 FlexInt `json:"loadavg_15"` Loadavg5 FlexInt `json:"loadavg_5"` MemBuffer FlexInt `json:"mem_buffer"` MemTotal FlexInt `json:"mem_total"` MemUsed FlexInt `json:"mem_used"` }
SysStats is load info for a UDM, USG, USW.
type SystemStats ¶
type SystemStats struct { CPU FlexInt `json:"cpu"` Mem FlexInt `json:"mem"` Uptime FlexInt `json:"uptime"` }
SystemStats is system info for a UDM, USG, USW.
type UAP ¶
type UAP struct { /* This was auto generated and then slowly edited by hand to get all the data types right and graphable. */ ID string `json:"_id"` Adopted FlexBool `json:"adopted"` AntennaTable []struct { Default FlexBool `json:"default"` ID FlexInt `json:"id"` Name string `json:"name"` Wifi0Gain FlexInt `json:"wifi0_gain"` Wifi1Gain FlexInt `json:"wifi1_gain"` } `json:"antenna_table"` BandsteeringMode string `json:"bandsteering_mode,omitempty"` BoardRev int `json:"board_rev"` Cfgversion string `json:"cfgversion"` ConfigNetwork struct { Type string `json:"type"` IP string `json:"ip"` } `json:"config_network"` CountrycodeTable []int `json:"countrycode_table"` EthernetTable []struct { Mac string `json:"mac"` NumPort FlexInt `json:"num_port"` Name string `json:"name"` } `json:"ethernet_table"` FwCaps int `json:"fw_caps"` HasEth1 FlexBool `json:"has_eth1"` HasSpeaker FlexBool `json:"has_speaker"` InformIP string `json:"inform_ip"` InformURL string `json:"inform_url"` IP string `json:"ip"` LedOverride string `json:"led_override"` Mac string `json:"mac"` MeshStaVapEnabled FlexBool `json:"mesh_sta_vap_enabled"` Model string `json:"model"` Name string `json:"name"` OutdoorModeOverride string `json:"outdoor_mode_override"` PortTable []Port `json:"port_table"` RadioTable []struct { Radio string `json:"radio"` Name string `json:"name"` Channel FlexInt `json:"channel"` Ht string `json:"ht"` TxPowerMode string `json:"tx_power_mode"` TxPower FlexInt `json:"tx_power"` MaxTxpower FlexInt `json:"max_txpower"` MinTxpower FlexInt `json:"min_txpower"` Nss FlexInt `json:"nss"` MinRssiEnabled FlexBool `json:"min_rssi_enabled"` BuiltinAntenna FlexBool `json:"builtin_antenna"` BuiltinAntGain FlexInt `json:"builtin_ant_gain"` CurrentAntennaGain FlexInt `json:"current_antenna_gain"` RadioCaps FlexInt `json:"radio_caps"` WlangroupID string `json:"wlangroup_id"` Is11Ac FlexBool `json:"is_11ac,omitempty"` HasDfs FlexBool `json:"has_dfs,omitempty"` HasFccdfs FlexBool `json:"has_fccdfs,omitempty"` } `json:"radio_table"` ScanRadioTable []interface{} `json:"scan_radio_table"` Serial string `json:"serial"` SiteID string `json:"site_id"` SiteName string `json:"-"` Type string `json:"type"` Version string `json:"version"` VwireTable []interface{} `json:"vwire_table"` WifiCaps int `json:"wifi_caps"` WlangroupIDNa string `json:"wlangroup_id_na"` WlangroupIDNg string `json:"wlangroup_id_ng"` RequiredVersion string `json:"required_version"` HwCaps int `json:"hw_caps"` Unsupported FlexBool `json:"unsupported"` UnsupportedReason FlexInt `json:"unsupported_reason"` SysErrorCaps int `json:"sys_error_caps"` HasFan FlexBool `json:"has_fan"` HasTemperature FlexBool `json:"has_temperature"` DeviceID string `json:"device_id"` State int `json:"state"` LastSeen FlexInt `json:"last_seen"` Upgradable FlexBool `json:"upgradable"` AdoptableWhenUpgraded FlexBool `json:"adoptable_when_upgraded"` Rollupgrade FlexBool `json:"rollupgrade"` KnownCfgversion string `json:"known_cfgversion"` Uptime FlexInt `json:"uptime"` UUptime FlexInt `json:"_uptime"` Locating FlexBool `json:"locating"` ConnectRequestIP string `json:"connect_request_ip"` ConnectRequestPort string `json:"connect_request_port"` SysStats SysStats `json:"sys_stats"` SystemStats SystemStats `json:"system-stats"` SSHSessionTable []interface{} `json:"ssh_session_table"` Scanning FlexBool `json:"scanning"` SpectrumScanning FlexBool `json:"spectrum_scanning"` GuestToken string `json:"guest_token"` Meshv3PeerMac string `json:"meshv3_peer_mac"` Satisfaction FlexInt `json:"satisfaction"` Isolated FlexBool `json:"isolated"` RadioTableStats []struct { Name string `json:"name"` Channel FlexInt `json:"channel"` Radio string `json:"radio"` AstTxto interface{} `json:"ast_txto"` AstCst interface{} `json:"ast_cst"` AstBeXmit FlexInt `json:"ast_be_xmit"` CuTotal FlexInt `json:"cu_total"` CuSelfRx FlexInt `json:"cu_self_rx"` CuSelfTx FlexInt `json:"cu_self_tx"` Gain FlexInt `json:"gain"` State string `json:"state"` Extchannel FlexInt `json:"extchannel"` TxPower FlexInt `json:"tx_power"` TxPackets FlexInt `json:"tx_packets"` TxRetries FlexInt `json:"tx_retries"` NumSta FlexInt `json:"num_sta"` GuestNumSta FlexInt `json:"guest-num_sta"` UserNumSta FlexInt `json:"user-num_sta"` } `json:"radio_table_stats"` Uplink struct { FullDuplex FlexBool `json:"full_duplex"` IP string `json:"ip"` Mac string `json:"mac"` MaxVlan int `json:"max_vlan"` Name string `json:"name"` Netmask string `json:"netmask"` NumPort int `json:"num_port"` RxBytes FlexInt `json:"rx_bytes"` RxDropped FlexInt `json:"rx_dropped"` RxErrors FlexInt `json:"rx_errors"` RxMulticast FlexInt `json:"rx_multicast"` RxPackets FlexInt `json:"rx_packets"` Speed FlexInt `json:"speed"` TxBytes FlexInt `json:"tx_bytes"` TxDropped FlexInt `json:"tx_dropped"` TxErrors FlexInt `json:"tx_errors"` TxPackets FlexInt `json:"tx_packets"` Up FlexBool `json:"up"` MaxSpeed FlexInt `json:"max_speed"` Type string `json:"type"` TxBytesR FlexInt `json:"tx_bytes-r"` RxBytesR FlexInt `json:"rx_bytes-r"` UplinkMac string `json:"uplink_mac"` UplinkRemotePort int `json:"uplink_remote_port"` } `json:"uplink"` VapTable []struct { AnomaliesBarChart struct { HighTCPLatency FlexInt `json:"high_tcp_latency"` HighTCPPacketLoss FlexInt `json:"high_tcp_packet_loss"` HighWifiLatency FlexInt `json:"high_wifi_latency"` HighWifiRetries FlexInt `json:"high_wifi_retries"` LowPhyRate FlexInt `json:"low_phy_rate"` PoorStreamEff FlexInt `json:"poor_stream_eff"` SleepyClient FlexInt `json:"sleepy_client"` StaArpTimeout FlexInt `json:"sta_arp_timeout"` StaDNSTimeout FlexInt `json:"sta_dns_timeout"` StaIPTimeout FlexInt `json:"sta_ip_timeout"` WeakSignal FlexInt `json:"weak_signal"` } `json:"anomalies_bar_chart"` AnomaliesBarChartNow struct { HighTCPLatency FlexInt `json:"high_tcp_latency"` HighTCPPacketLoss FlexInt `json:"high_tcp_packet_loss"` HighWifiLatency FlexInt `json:"high_wifi_latency"` HighWifiRetries FlexInt `json:"high_wifi_retries"` LowPhyRate FlexInt `json:"low_phy_rate"` PoorStreamEff FlexInt `json:"poor_stream_eff"` SleepyClient FlexInt `json:"sleepy_client"` StaArpTimeout FlexInt `json:"sta_arp_timeout"` StaDNSTimeout FlexInt `json:"sta_dns_timeout"` StaIPTimeout FlexInt `json:"sta_ip_timeout"` WeakSignal FlexInt `json:"weak_signal"` } `json:"anomalies_bar_chart_now"` AvgClientSignal FlexInt `json:"avg_client_signal"` Bssid string `json:"bssid"` Ccq int `json:"ccq"` Channel int `json:"channel"` Essid string `json:"essid"` Extchannel int `json:"extchannel"` ID string `json:"id"` MacFilterRejections int `json:"mac_filter_rejections"` Name string `json:"name"` NumSatisfactionSta FlexInt `json:"num_satisfaction_sta"` NumSta int `json:"num_sta"` Radio string `json:"radio"` RadioName string `json:"radio_name"` ReasonsBarChart struct { PhyRate FlexInt `json:"phy_rate"` Signal FlexInt `json:"signal"` SleepyClient FlexInt `json:"sleepy_client"` StaArpTimeout FlexInt `json:"sta_arp_timeout"` StaDNSTimeout FlexInt `json:"sta_dns_timeout"` StaIPTimeout FlexInt `json:"sta_ip_timeout"` StreamEff FlexInt `json:"stream_eff"` TCPLatency FlexInt `json:"tcp_latency"` TCPPacketLoss FlexInt `json:"tcp_packet_loss"` WifiLatency FlexInt `json:"wifi_latency"` WifiRetries FlexInt `json:"wifi_retries"` } `json:"reasons_bar_chart"` ReasonsBarChartNow struct { PhyRate FlexInt `json:"phy_rate"` Signal FlexInt `json:"signal"` SleepyClient FlexInt `json:"sleepy_client"` StaArpTimeout FlexInt `json:"sta_arp_timeout"` StaDNSTimeout FlexInt `json:"sta_dns_timeout"` StaIPTimeout FlexInt `json:"sta_ip_timeout"` StreamEff FlexInt `json:"stream_eff"` TCPLatency FlexInt `json:"tcp_latency"` TCPPacketLoss FlexInt `json:"tcp_packet_loss"` WifiLatency FlexInt `json:"wifi_latency"` WifiRetries FlexInt `json:"wifi_retries"` } `json:"reasons_bar_chart_now"` RxBytes FlexInt `json:"rx_bytes"` RxCrypts FlexInt `json:"rx_crypts"` RxDropped FlexInt `json:"rx_dropped"` RxErrors FlexInt `json:"rx_errors"` RxFrags FlexInt `json:"rx_frags"` RxNwids FlexInt `json:"rx_nwids"` RxPackets FlexInt `json:"rx_packets"` RxTCPStats struct { Goodbytes FlexInt `json:"goodbytes"` LatAvg FlexInt `json:"lat_avg"` LatMax FlexInt `json:"lat_max"` LatMin FlexInt `json:"lat_min"` Stalls FlexInt `json:"stalls"` } `json:"rx_tcp_stats"` Satisfaction FlexInt `json:"satisfaction"` SatisfactionNow FlexInt `json:"satisfaction_now"` State string `json:"state"` TxBytes FlexInt `json:"tx_bytes"` TxCombinedRetries FlexInt `json:"tx_combined_retries"` TxDataMpduBytes FlexInt `json:"tx_data_mpdu_bytes"` TxDropped FlexInt `json:"tx_dropped"` TxErrors FlexInt `json:"tx_errors"` TxPackets FlexInt `json:"tx_packets"` TxPower FlexInt `json:"tx_power"` TxRetries FlexInt `json:"tx_retries"` TxRtsRetries FlexInt `json:"tx_rts_retries"` TxSuccess FlexInt `json:"tx_success"` TxTCPStats struct { Goodbytes FlexInt `json:"goodbytes"` LatAvg FlexInt `json:"lat_avg"` LatMax FlexInt `json:"lat_max"` LatMin FlexInt `json:"lat_min"` Stalls FlexInt `json:"stalls"` } `json:"tx_tcp_stats"` TxTotal FlexInt `json:"tx_total"` Up FlexBool `json:"up"` Usage string `json:"usage"` WifiTxAttempts FlexInt `json:"wifi_tx_attempts"` WifiTxDropped FlexInt `json:"wifi_tx_dropped"` WifiTxLatencyMov struct { Avg FlexInt `json:"avg"` Max FlexInt `json:"max"` Min FlexInt `json:"min"` Total FlexInt `json:"total"` TotalCount FlexInt `json:"total_count"` } `json:"wifi_tx_latency_mov"` T string `json:"t"` WlanconfID string `json:"wlanconf_id"` IsGuest FlexBool `json:"is_guest"` IsWep FlexBool `json:"is_wep"` ApMac string `json:"ap_mac"` MapID interface{} `json:"map_id"` SiteID string `json:"site_id"` } `json:"vap_table"` DownlinkTable []interface{} `json:"downlink_table"` VwireVapTable []interface{} `json:"vwire_vap_table"` BytesD FlexInt `json:"bytes-d"` TxBytesD FlexInt `json:"tx_bytes-d"` RxBytesD FlexInt `json:"rx_bytes-d"` BytesR FlexInt `json:"bytes-r"` LastUplink struct { UplinkMac string `json:"uplink_mac"` UplinkRemotePort int `json:"uplink_remote_port"` } `json:"last_uplink"` Stat UAPStat `json:"stat"` TxBytes FlexInt `json:"tx_bytes"` RxBytes FlexInt `json:"rx_bytes"` Bytes FlexInt `json:"bytes"` VwireEnabled FlexBool `json:"vwireEnabled"` UplinkTable []interface{} `json:"uplink_table"` NumSta int `json:"num_sta"` UserNumSta int `json:"user-num_sta"` GuestNumSta int `json:"guest-num_sta"` TwoPhaseAdopt FlexBool `json:"two_phase_adopt,omitempty"` }
UAP represents all the data from the Ubiquiti Controller for a Unifi Access Point.
type UAPStat ¶
type UAPStat struct {
*Ap
}
UAPStat holds the "stat" data for an access point. This is split out because of a JSON data format change from 5.10 to 5.11.
func (*UAPStat) UnmarshalJSON ¶
UnmarshalJSON unmarshalls 5.10 or 5.11 formatted Access Point Stat data.
type UDM ¶
type UDM struct { SiteID string `json:"site_id"` SiteName string `json:"-"` Mac string `json:"mac"` Adopted FlexBool `json:"adopted"` Serial string `json:"serial"` IP string `json:"ip"` Uptime FlexInt `json:"uptime"` Model string `json:"model"` Version string `json:"version"` Name string `json:"name"` Default FlexBool `json:"default"` Locating FlexBool `json:"locating"` Type string `json:"type"` Unsupported FlexBool `json:"unsupported"` UnsupportedReason FlexInt `json:"unsupported_reason"` DiscoveredVia string `json:"discovered_via"` AdoptIP string `json:"adopt_ip"` AdoptURL string `json:"adopt_url"` State FlexInt `json:"state"` AdoptStatus FlexInt `json:"adopt_status"` UpgradeState FlexInt `json:"upgrade_state"` LastSeen FlexInt `json:"last_seen"` AdoptableWhenUpgraded FlexBool `json:"adoptable_when_upgraded"` Cfgversion string `json:"cfgversion"` ConfigNetwork struct { Type string `json:"type"` IP string `json:"ip"` } `json:"config_network"` VwireTable []interface{} `json:"vwire_table"` Dot1XPortctrlEnabled FlexBool `json:"dot1x_portctrl_enabled"` JumboframeEnabled FlexBool `json:"jumboframe_enabled"` FlowctrlEnabled FlexBool `json:"flowctrl_enabled"` StpVersion string `json:"stp_version"` StpPriority string `json:"stp_priority"` PowerSourceCtrlEnabled FlexBool `json:"power_source_ctrl_enabled"` LicenseState string `json:"license_state"` ID string `json:"_id"` DeviceID string `json:"device_id"` AdoptState FlexInt `json:"adopt_state"` AdoptTries FlexInt `json:"adopt_tries"` AdoptManual FlexBool `json:"adopt_manual"` InformURL string `json:"inform_url"` InformIP string `json:"inform_ip"` RequiredVersion string `json:"required_version"` BoardRev FlexInt `json:"board_rev"` EthernetTable []struct { Mac string `json:"mac"` NumPort FlexInt `json:"num_port"` Name string `json:"name"` } `json:"ethernet_table"` PortTable []Port `json:"port_table"` EthernetOverrides []struct { Ifname string `json:"ifname"` Networkgroup string `json:"networkgroup"` } `json:"ethernet_overrides"` UsgCaps FlexInt `json:"usg_caps"` HasSpeaker FlexBool `json:"has_speaker"` HasEth1 FlexBool `json:"has_eth1"` FwCaps FlexInt `json:"fw_caps"` HwCaps FlexInt `json:"hw_caps"` SwitchCaps struct { MaxMirrorSessions FlexInt `json:"max_mirror_sessions"` MaxAggregateSessions FlexInt `json:"max_aggregate_sessions"` } `json:"switch_caps"` HasFan FlexBool `json:"has_fan"` HasTemperature FlexBool `json:"has_temperature"` RulesetInterfaces struct { Br0 string `json:"br0"` Eth8 string `json:"eth8"` Eth9 string `json:"eth9"` } `json:"ruleset_interfaces"` KnownCfgversion string `json:"known_cfgversion"` SysStats SysStats `json:"sys_stats"` SystemStats SystemStats `json:"system-stats"` GuestToken string `json:"guest_token"` Overheating FlexBool `json:"overheating"` SpeedtestStatus SpeedtestStatus `json:"speedtest-status"` SpeedtestStatusSaved FlexBool `json:"speedtest-status-saved"` Wan1 Wan `json:"wan1"` Wan2 Wan `json:"wan2"` Uplink Uplink `json:"uplink"` ConnectRequestIP string `json:"connect_request_ip"` ConnectRequestPort string `json:"connect_request_port"` DownlinkTable []interface{} `json:"downlink_table"` NetworkTable []struct { ID string `json:"_id"` AttrNoDelete FlexBool `json:"attr_no_delete"` AttrHiddenID string `json:"attr_hidden_id"` Name string `json:"name"` SiteID string `json:"site_id"` VlanEnabled FlexBool `json:"vlan_enabled"` Purpose string `json:"purpose"` IPSubnet string `json:"ip_subnet"` Ipv6InterfaceType string `json:"ipv6_interface_type"` DomainName string `json:"domain_name"` IsNat FlexBool `json:"is_nat"` DhcpdEnabled FlexBool `json:"dhcpd_enabled"` DhcpdStart string `json:"dhcpd_start"` DhcpdStop string `json:"dhcpd_stop"` Dhcpdv6Enabled FlexBool `json:"dhcpdv6_enabled"` Ipv6RaEnabled FlexBool `json:"ipv6_ra_enabled"` LteLanEnabled FlexBool `json:"lte_lan_enabled"` Networkgroup string `json:"networkgroup"` DhcpdLeasetime FlexInt `json:"dhcpd_leasetime"` DhcpdDNSEnabled FlexBool `json:"dhcpd_dns_enabled"` DhcpdGatewayEnabled FlexBool `json:"dhcpd_gateway_enabled"` DhcpdTimeOffsetEnabled FlexBool `json:"dhcpd_time_offset_enabled"` Ipv6PdStart string `json:"ipv6_pd_start"` Ipv6PdStop string `json:"ipv6_pd_stop"` DhcpdDNS1 string `json:"dhcpd_dns_1"` DhcpdDNS2 string `json:"dhcpd_dns_2"` DhcpdDNS3 string `json:"dhcpd_dns_3"` DhcpdDNS4 string `json:"dhcpd_dns_4"` Enabled FlexBool `json:"enabled"` DhcpRelayEnabled FlexBool `json:"dhcp_relay_enabled"` Mac string `json:"mac"` IsGuest FlexBool `json:"is_guest"` IP string `json:"ip"` Up FlexBool `json:"up"` DpistatsTable struct { LastUpdated FlexInt `json:"last_updated"` ByCat []struct { Cat FlexInt `json:"cat"` Apps []FlexInt `json:"apps"` RxBytes FlexInt `json:"rx_bytes"` TxBytes FlexInt `json:"tx_bytes"` RxPackets FlexInt `json:"rx_packets"` TxPackets FlexInt `json:"tx_packets"` } `json:"by_cat"` ByApp []struct { App FlexInt `json:"app"` Cat FlexInt `json:"cat"` Clients []struct { Mac string `json:"mac"` RxBytes FlexInt `json:"rx_bytes"` TxBytes FlexInt `json:"tx_bytes"` RxPackets FlexInt `json:"rx_packets"` TxPackets FlexInt `json:"tx_packets"` } `json:"clients"` KnownClients FlexInt `json:"known_clients"` RxBytes FlexInt `json:"rx_bytes"` TxBytes FlexInt `json:"tx_bytes"` RxPackets FlexInt `json:"rx_packets"` TxPackets FlexInt `json:"tx_packets"` } `json:"by_app"` } `json:"dpistats_table,omitempty"` NumSta FlexInt `json:"num_sta"` RxBytes FlexInt `json:"rx_bytes"` RxPackets FlexInt `json:"rx_packets"` TxBytes FlexInt `json:"tx_bytes"` TxPackets FlexInt `json:"tx_packets"` } `json:"network_table"` PortOverrides []struct { PortIdx FlexInt `json:"port_idx"` PortconfID string `json:"portconf_id"` } `json:"port_overrides"` Stat UDMStat `json:"stat"` TxBytes FlexInt `json:"tx_bytes"` RxBytes FlexInt `json:"rx_bytes"` Bytes FlexInt `json:"bytes"` NumSta FlexInt `json:"num_sta"` WlanNumSta FlexInt `json:"wlan-num_sta"` LanNumSta FlexInt `json:"lan-num_sta"` UserWlanNumSta FlexInt `json:"user-wlan-num_sta"` UserLanNumSta FlexInt `json:"user-lan-num_sta"` UserNumSta FlexInt `json:"user-num_sta"` GuestWlanNumSta FlexInt `json:"guest-wlan-num_sta"` GuestLanNumSta FlexInt `json:"guest-lan-num_sta"` GuestNumSta FlexInt `json:"guest-num_sta"` NumDesktop FlexInt `json:"num_desktop"` NumMobile FlexInt `json:"num_mobile"` NumHandheld FlexInt `json:"num_handheld"` }
UDM represents all the data from the Ubiquiti Controller for a Unifi Dream Machine. The UDM shares several structs/type-data with USW and USG.
type UDMStat ¶
UDMStat holds the "stat" data for a dream machine. A dream machine is a USG + USW + Controller
type USG ¶
type USG struct { ID string `json:"_id"` Adopted FlexBool `json:"adopted"` Cfgversion string `json:"cfgversion"` ConfigNetwork struct { Type string `json:"type"` IP string `json:"ip"` } `json:"config_network"` EthernetTable []struct { Mac string `json:"mac"` NumPort FlexInt `json:"num_port"` Name string `json:"name"` } `json:"ethernet_table"` FwCaps FlexInt `json:"fw_caps"` InformIP string `json:"inform_ip"` InformURL string `json:"inform_url"` IP string `json:"ip"` LedOverride string `json:"led_override"` LicenseState string `json:"license_state"` Mac string `json:"mac"` Model string `json:"model"` Name string `json:"name"` OutdoorModeOverride string `json:"outdoor_mode_override"` Serial string `json:"serial"` SiteID string `json:"site_id"` SiteName string `json:"-"` Type string `json:"type"` UsgCaps FlexInt `json:"usg_caps"` Version string `json:"version"` RequiredVersion string `json:"required_version"` EthernetOverrides []struct { Ifname string `json:"ifname"` Networkgroup string `json:"networkgroup"` } `json:"ethernet_overrides"` HwCaps FlexInt `json:"hw_caps"` BoardRev FlexInt `json:"board_rev"` Unsupported FlexBool `json:"unsupported"` UnsupportedReason FlexInt `json:"unsupported_reason"` DeviceID string `json:"device_id"` State FlexInt `json:"state"` LastSeen FlexInt `json:"last_seen"` Upgradable FlexBool `json:"upgradable"` AdoptableWhenUpgraded FlexBool `json:"adoptable_when_upgraded"` Rollupgrade FlexBool `json:"rollupgrade"` KnownCfgversion string `json:"known_cfgversion"` Uptime FlexInt `json:"uptime"` Locating FlexBool `json:"locating"` ConnectRequestIP string `json:"connect_request_ip"` ConnectRequestPort string `json:"connect_request_port"` SysStats SysStats `json:"sys_stats"` SystemStats SystemStats `json:"system-stats"` GuestToken string `json:"guest_token"` SpeedtestStatus SpeedtestStatus `json:"speedtest-status"` SpeedtestStatusSaved FlexBool `json:"speedtest-status-saved"` Wan1 Wan `json:"wan1"` Wan2 Wan `json:"wan2"` PortTable []struct { Name string `json:"name"` Ifname string `json:"ifname"` IP string `json:"ip"` Netmask string `json:"netmask"` Mac string `json:"mac"` Up FlexBool `json:"up"` Speed FlexInt `json:"speed"` FullDuplex FlexBool `json:"full_duplex"` RxBytes FlexInt `json:"rx_bytes"` RxDropped FlexInt `json:"rx_dropped"` RxErrors FlexInt `json:"rx_errors"` RxPackets FlexInt `json:"rx_packets"` TxBytes FlexInt `json:"tx_bytes"` TxDropped FlexInt `json:"tx_dropped"` TxErrors FlexInt `json:"tx_errors"` TxPackets FlexInt `json:"tx_packets"` RxMulticast FlexInt `json:"rx_multicast"` Enable FlexBool `json:"enable"` DNS []string `json:"dns,omitempty"` Gateway string `json:"gateway,omitempty"` } `json:"port_table"` NetworkTable []struct { ID string `json:"_id"` IsNat FlexBool `json:"is_nat"` DhcpdDNSEnabled FlexBool `json:"dhcpd_dns_enabled"` Purpose string `json:"purpose"` DhcpdLeasetime FlexInt `json:"dhcpd_leasetime"` IgmpSnooping FlexBool `json:"igmp_snooping"` DhcpguardEnabled FlexBool `json:"dhcpguard_enabled,omitempty"` DhcpdStart string `json:"dhcpd_start"` Enabled FlexBool `json:"enabled"` DhcpdStop string `json:"dhcpd_stop"` DhcpdWinsEnabled FlexBool `json:"dhcpd_wins_enabled,omitempty"` DomainName string `json:"domain_name"` DhcpdEnabled FlexBool `json:"dhcpd_enabled"` IPSubnet string `json:"ip_subnet"` Vlan FlexInt `json:"vlan,omitempty"` Networkgroup string `json:"networkgroup"` Name string `json:"name"` SiteID string `json:"site_id"` DhcpdIP1 string `json:"dhcpd_ip_1,omitempty"` VlanEnabled FlexBool `json:"vlan_enabled"` DhcpdGatewayEnabled FlexBool `json:"dhcpd_gateway_enabled"` DhcpdTimeOffsetEnabled FlexBool `json:"dhcpd_time_offset_enabled"` Ipv6InterfaceType string `json:"ipv6_interface_type"` DhcpRelayEnabled FlexBool `json:"dhcp_relay_enabled"` Mac string `json:"mac"` IsGuest FlexBool `json:"is_guest"` IP string `json:"ip"` Up FlexBool `json:"up"` NumSta FlexInt `json:"num_sta"` RxBytes FlexInt `json:"rx_bytes"` RxPackets FlexInt `json:"rx_packets"` TxBytes FlexInt `json:"tx_bytes"` TxPackets FlexInt `json:"tx_packets"` DhcpdNtp1 string `json:"dhcpd_ntp_1,omitempty"` DhcpdNtpEnabled FlexBool `json:"dhcpd_ntp_enabled,omitempty"` DhcpdUnifiController string `json:"dhcpd_unifi_controller,omitempty"` UpnpLanEnabled FlexBool `json:"upnp_lan_enabled,omitempty"` AttrNoDelete FlexBool `json:"attr_no_delete,omitempty"` AttrHiddenID string `json:"attr_hidden_id,omitempty"` } `json:"network_table"` Uplink Uplink `json:"uplink"` Stat USGStat `json:"stat"` TxBytes FlexInt `json:"tx_bytes"` RxBytes FlexInt `json:"rx_bytes"` Bytes FlexInt `json:"bytes"` NumSta FlexInt `json:"num_sta"` UserNumSta FlexInt `json:"user-num_sta"` GuestNumSta FlexInt `json:"guest-num_sta"` NumDesktop FlexInt `json:"num_desktop"` NumMobile FlexInt `json:"num_mobile"` NumHandheld FlexInt `json:"num_handheld"` }
USG represents all the data from the Ubiquiti Controller for a Unifi Security Gateway.
type USGStat ¶
type USGStat struct {
*Gw
}
USGStat holds the "stat" data for a gateway. This is split out because of a JSON data format change from 5.10 to 5.11.
func (*USGStat) UnmarshalJSON ¶
UnmarshalJSON unmarshalls 5.10 or 5.11 formatted Gateway Stat data.
type USW ¶
type USW struct { SiteName string `json:"-"` ID string `json:"_id"` Adopted FlexBool `json:"adopted"` BoardRev FlexInt `json:"board_rev"` Cfgversion string `json:"cfgversion"` ConfigNetwork struct { Type string `json:"type"` IP string `json:"ip"` } `json:"config_network"` Dot1XPortctrlEnabled FlexBool `json:"dot1x_portctrl_enabled"` EthernetTable []struct { Mac string `json:"mac"` NumPort FlexInt `json:"num_port,omitempty"` Name string `json:"name"` } `json:"ethernet_table"` FlowctrlEnabled FlexBool `json:"flowctrl_enabled"` FwCaps FlexInt `json:"fw_caps"` HasFan FlexBool `json:"has_fan"` HasTemperature FlexBool `json:"has_temperature"` InformIP string `json:"inform_ip"` InformURL string `json:"inform_url"` IP string `json:"ip"` JumboframeEnabled FlexBool `json:"jumboframe_enabled"` LedOverride string `json:"led_override"` LicenseState string `json:"license_state"` Mac string `json:"mac"` Model string `json:"model"` Name string `json:"name"` OutdoorModeOverride string `json:"outdoor_mode_override"` PortOverrides []struct { Name string `json:"name,omitempty"` PoeMode string `json:"poe_mode,omitempty"` PortIdx FlexInt `json:"port_idx"` PortconfID string `json:"portconf_id"` } `json:"port_overrides"` PortTable []Port `json:"port_table"` Serial string `json:"serial"` SiteID string `json:"site_id"` StpPriority string `json:"stp_priority"` StpVersion string `json:"stp_version"` Type string `json:"type"` Version string `json:"version"` RequiredVersion string `json:"required_version"` SwitchCaps struct { FeatureCaps FlexInt `json:"feature_caps"` MaxMirrorSessions FlexInt `json:"max_mirror_sessions"` MaxAggregateSessions FlexInt `json:"max_aggregate_sessions"` } `json:"switch_caps"` HwCaps FlexInt `json:"hw_caps"` Unsupported FlexBool `json:"unsupported"` UnsupportedReason FlexInt `json:"unsupported_reason"` SysErrorCaps FlexInt `json:"sys_error_caps"` DeviceID string `json:"device_id"` State FlexInt `json:"state"` LastSeen FlexInt `json:"last_seen"` Upgradable FlexBool `json:"upgradable,omitempty"` AdoptableWhenUpgraded FlexBool `json:"adoptable_when_upgraded,omitempty"` Rollupgrade FlexBool `json:"rollupgrade,omitempty"` KnownCfgversion string `json:"known_cfgversion"` Uptime FlexInt `json:"uptime"` Locating FlexBool `json:"locating"` ConnectRequestIP string `json:"connect_request_ip"` ConnectRequestPort string `json:"connect_request_port"` SysStats SysStats `json:"sys_stats"` SystemStats SystemStats `json:"system-stats"` FanLevel FlexInt `json:"fan_level"` GeneralTemperature FlexInt `json:"general_temperature"` Overheating FlexBool `json:"overheating"` TotalMaxPower FlexInt `json:"total_max_power"` DownlinkTable []struct { PortIdx FlexInt `json:"port_idx"` Speed FlexInt `json:"speed"` FullDuplex FlexBool `json:"full_duplex"` Mac string `json:"mac"` } `json:"downlink_table"` Uplink Uplink `json:"uplink"` LastUplink struct { UplinkMac string `json:"uplink_mac"` } `json:"last_uplink"` UplinkDepth FlexInt `json:"uplink_depth"` Stat USWStat `json:"stat"` TxBytes FlexInt `json:"tx_bytes"` RxBytes FlexInt `json:"rx_bytes"` Bytes FlexInt `json:"bytes"` NumSta FlexInt `json:"num_sta"` UserNumSta FlexInt `json:"user-num_sta"` GuestNumSta FlexInt `json:"guest-num_sta"` }
USW represents all the data from the Ubiquiti Controller for a Unifi Switch.
type USWStat ¶
type USWStat struct {
*Sw
}
USWStat holds the "stat" data for a switch. This is split out because of a JSON data format change from 5.10 to 5.11.
func (*USWStat) UnmarshalJSON ¶
UnmarshalJSON unmarshalls 5.10 or 5.11 formatted Switch Stat data.
type Unifi ¶
Unifi is what you get in return for providing a password! Unifi represents a controller that you can make authenticated requests to. Use this to make additional requests for devices, clients or other custom data. Do not set the loggers to nil. Set them to DiscardLogs if you want no logs.
func NewUnifi ¶
NewUnifi creates a http.Client with authenticated cookies. Used to make additional, authenticated requests to the APIs. Start here.
func (*Unifi) GetClients ¶
GetClients returns a response full of clients' data from the UniFi Controller.
func (*Unifi) GetData ¶
GetData makes a unifi request and unmarshal the response into a provided pointer.
func (*Unifi) GetDevices ¶
GetDevices returns a response full of devices' data from the UniFi Controller.
func (*Unifi) GetIDS ¶
GetIDS returns Intrusion Detection Systems events. Returns all events that happened in site between from and to.
func (*Unifi) GetServerData ¶
GetServerData sets the controller's version and UUID. Only call this if you previously called Login and suspect the controller version has changed.
func (*Unifi) GetSiteIDS ¶
GetSiteIDS is a helper to offload the for-loop work. This method retreives the Intrusion Detection System Data for 1 Site.
func (*Unifi) Login ¶
Login is a helper method. It can be called to grab a new authentication cookie.
type Uplink ¶
type Uplink struct { BytesR FlexInt `json:"bytes-r"` Drops FlexInt `json:"drops"` Enable FlexBool `json:"enable,omitempty"` FullDuplex FlexBool `json:"full_duplex"` Gateways []string `json:"gateways,omitempty"` IP string `json:"ip"` Latency FlexInt `json:"latency"` Mac string `json:"mac,omitempty"` MaxSpeed FlexInt `json:"max_speed"` Name string `json:"name"` Nameservers []string `json:"nameservers"` Netmask string `json:"netmask"` NumPort FlexInt `json:"num_port"` RxBytes FlexInt `json:"rx_bytes"` RxBytesR FlexInt `json:"rx_bytes-r"` RxDropped FlexInt `json:"rx_dropped"` RxErrors FlexInt `json:"rx_errors"` RxMulticast FlexInt `json:"rx_multicast"` RxPackets FlexInt `json:"rx_packets"` Speed FlexInt `json:"speed"` SpeedtestLastrun FlexInt `json:"speedtest_lastrun,omitempty"` SpeedtestPing FlexInt `json:"speedtest_ping,omitempty"` SpeedtestStatus string `json:"speedtest_status,omitempty"` TxBytes FlexInt `json:"tx_bytes"` TxBytesR FlexInt `json:"tx_bytes-r"` TxDropped FlexInt `json:"tx_dropped"` TxErrors FlexInt `json:"tx_errors"` TxPackets FlexInt `json:"tx_packets"` Type string `json:"type"` Up FlexBool `json:"up"` Uptime FlexInt `json:"uptime"` XputDown FlexInt `json:"xput_down,omitempty"` XputUp FlexInt `json:"xput_up,omitempty"` }
Uplink is the Internet connection (or uplink) on a UniFi device.
type Wan ¶
type Wan struct { Autoneg FlexBool `json:"autoneg"` BytesR FlexInt `json:"bytes-r"` DNS []string `json:"dns"` Enable FlexBool `json:"enable"` FlowctrlRx FlexBool `json:"flowctrl_rx"` FlowctrlTx FlexBool `json:"flowctrl_tx"` FullDuplex FlexBool `json:"full_duplex"` Gateway string `json:"gateway"` // may be deprecated IP string `json:"ip"` Ifname string `json:"ifname"` IsUplink FlexBool `json:"is_uplink"` Mac string `json:"mac"` MaxSpeed FlexInt `json:"max_speed"` Media string `json:"media"` Name string `json:"name"` Netmask string `json:"netmask"` // may be deprecated NumPort int `json:"num_port"` PortIdx int `json:"port_idx"` PortPoe FlexBool `json:"port_poe"` RxBroadcast FlexInt `json:"rx_broadcast"` RxBytes FlexInt `json:"rx_bytes"` RxBytesR FlexInt `json:"rx_bytes-r"` RxDropped FlexInt `json:"rx_dropped"` RxErrors FlexInt `json:"rx_errors"` RxMulticast FlexInt `json:"rx_multicast"` RxPackets FlexInt `json:"rx_packets"` Speed FlexInt `json:"speed"` TxBroadcast FlexInt `json:"tx_broadcast"` TxBytes FlexInt `json:"tx_bytes"` TxBytesR FlexInt `json:"tx_bytes-r"` TxDropped FlexInt `json:"tx_dropped"` TxErrors FlexInt `json:"tx_errors"` TxMulticast FlexInt `json:"tx_multicast"` TxPackets FlexInt `json:"tx_packets"` Type string `json:"type"` Up FlexBool `json:"up"` }
Wan is a Wan interface on a USG or UDM.