/** * Network Controller API interfaces * Base URL: https://{host}/api or https://{host}/proxy/network/api */ /** * Network site */ export interface INetworkSite { /** Site ID (e.g., 'default') */ _id: string; /** Site name */ name: string; /** Site description */ desc?: string; /** Whether anonymous ID is enabled */ anonymous_id?: string; /** Role for the site */ role?: string; /** Attribute for hidden ID */ attr_hidden_id?: string; /** Attribute for hidden and no delete */ attr_no_delete?: boolean; } /** * Network device (switch, AP, gateway, etc.) */ export interface INetworkDevice { /** Device ID */ _id: string; /** Device MAC address */ mac: string; /** Device model */ model: string; /** Device type (ugw, usw, uap, etc.) */ type: string; /** Device name */ name?: string; /** Site ID */ site_id: string; /** Whether device is adopted */ adopted: boolean; /** Device IP address */ ip: string; /** Device state (0=offline, 1=connected, etc.) */ state: number; /** Serial number */ serial?: string; /** Firmware version */ version?: string; /** Uptime in seconds */ uptime?: number; /** Last seen timestamp */ last_seen?: number; /** Whether device is upgradable */ upgradable?: boolean; /** Available upgrade version */ upgrade_to_firmware?: string; /** Device configuration */ config_network?: { type?: string; ip?: string; }; /** Device ethernet table */ ethernet_table?: Array<{ name: string; mac: string; num_port?: number; }>; /** Port overrides configuration */ port_overrides?: Array<{ port_idx: number; name?: string; poe_mode?: string; }>; /** System stats */ sys_stats?: { loadavg_1?: number; loadavg_5?: number; loadavg_15?: number; mem_total?: number; mem_used?: number; }; /** LED override */ led_override?: string; /** LED override color */ led_override_color?: string; /** LED override brightness */ led_override_color_brightness?: number; } /** * Network client (connected device) */ export interface INetworkClient { /** Client ID */ _id: string; /** MAC address */ mac: string; /** Site ID */ site_id: string; /** Whether client is authorized (for guest network) */ is_guest?: boolean; /** Whether client is wired */ is_wired: boolean; /** First seen timestamp */ first_seen?: number; /** Last seen timestamp */ last_seen?: number; /** Hostname */ hostname?: string; /** Client name (user-assigned) */ name?: string; /** Client IP address */ ip?: string; /** Network ID */ network_id?: string; /** Uplink MAC (AP or switch) */ uplink_mac?: string; /** Connected AP name */ ap_name?: string; /** SSID if wireless */ essid?: string; /** BSSID if wireless */ bssid?: string; /** Channel if wireless */ channel?: number; /** Radio protocol (ng, na, ac, ax) */ radio_proto?: string; /** Signal strength */ signal?: number; /** TX rate */ tx_rate?: number; /** RX rate */ rx_rate?: number; /** TX bytes */ tx_bytes?: number; /** RX bytes */ rx_bytes?: number; /** TX packets */ tx_packets?: number; /** RX packets */ rx_packets?: number; /** Connected switch port */ sw_port?: number; /** User group ID */ usergroup_id?: string; /** OUI (device manufacturer) */ oui?: string; /** Noted status */ noted?: boolean; /** User ID if fixed IP */ user_id?: string; /** Fingerprint data */ fingerprint_source?: number; /** Device fingerprint */ dev_cat?: number; dev_family?: number; dev_vendor?: number; dev_id?: number; /** OS name */ os_name?: number; /** Satisfaction score */ satisfaction?: number; /** Anomalies count */ anomalies?: number; } /** * Network WLAN configuration */ export interface INetworkWlan { /** WLAN ID */ _id: string; /** WLAN name */ name: string; /** Site ID */ site_id: string; /** SSID */ x_passphrase?: string; /** Whether WLAN is enabled */ enabled: boolean; /** Security mode */ security?: string; /** WPA mode */ wpa_mode?: string; /** WPA encryption */ wpa_enc?: string; /** VLAN ID */ networkconf_id?: string; /** User group ID */ usergroup_id?: string; /** Whether hidden */ hide_ssid?: boolean; /** Whether PMF is enabled */ pmf_mode?: string; /** Group rekey interval */ group_rekey?: number; } /** * Network configuration (VLAN/subnet) */ export interface INetworkConfig { /** Config ID */ _id: string; /** Name */ name: string; /** Site ID */ site_id: string; /** Purpose (corporate, guest, wan, etc.) */ purpose: string; /** VLAN ID */ vlan?: number; /** VLAN enabled */ vlan_enabled?: boolean; /** Subnet */ ip_subnet?: string; /** DHCP enabled */ dhcpd_enabled?: boolean; /** DHCP start */ dhcpd_start?: string; /** DHCP stop */ dhcpd_stop?: string; /** Domain name */ domain_name?: string; /** Whether this is the default network */ is_nat?: boolean; /** Network group */ networkgroup?: string; /** IGMP snooping */ igmp_snooping?: boolean; } /** * Device port configuration */ export interface IPortConfig { port_idx: number; name?: string; poe_mode?: string; port_poe?: boolean; portconf_id?: string; speed_caps?: number; op_mode?: string; autoneg?: boolean; } /** * Auth response from controller */ export interface INetworkAuthResponse { /** Response code */ rc: string; /** Session token/unique ID */ unique_id?: string; /** First name */ first_name?: string; /** Last name */ last_name?: string; /** Full name */ full_name?: string; /** Email */ email?: string; /** Is super admin */ is_super?: boolean; /** Device ID */ device_id?: string; /** UI settings */ ui_settings?: Record; }