273 lines
5.7 KiB
TypeScript
273 lines
5.7 KiB
TypeScript
/**
|
|
* 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<string, unknown>;
|
|
}
|