Files

273 lines
5.7 KiB
TypeScript
Raw Permalink Normal View History

/**
* 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>;
}