UNPKG

unifi-client

Version:

NodeJs client for Unifi products (https://www.ui.com/)

226 lines (225 loc) 6.13 kB
import { ipV4Address, LANWAN, macAddress, timestampDate, timeZone, uuid } from '../../commons/types'; import { IApp, IEventController, IReleaseInformations, ISystem, releaseChannels } from '../Interfaces'; /** * only known events, open PR to add more */ export declare enum EUnifiControllerEvents { /** * check link to get data associated with this event * {@link IErrorEvent} */ ERROR = "ERROR", /** * check link to get data associated with this event * {@link ISystemEvent} */ SYSTEM = "SYSTEM", /** * check link to get data associated with this event * {@link IUpdateDeviceRestoreProgressEvent} */ UPDATE_DEVICE_RESTORE_PROGRESS = "UPDATE_DEVICE_RESTORE_PROGRESS", /** * check link to get data associated with this event * {@link IDeviceStateChangedEvent} */ DEVICE_STATE_CHANGED = "DEVICE_STATE_CHANGED" } export interface IControllerEvent { type: string; [key: string]: unknown; } export interface IErrorEvent extends IControllerEvent { type: 'ERROR'; message: string; } export interface ISystemEvent extends IControllerEvent { type: 'SYSTEM'; apps: { apps: Array<IApp>; controllers: Array<IEventController>; }; settings: { isSetup: boolean; location: { lat: number; long: number; radius: number; }; name: string; timezone: timeZone; sendDiagnostics: 'full'; setupType: unknown; setup_device_id: uuid; anonymous_device_id: uuid; country: number; encryptionKeyGenerated: boolean; encryptionKeyChecked: boolean; hasUCare: false; setupDuration: unknown; backupEnabled: boolean; backupSchedule: { frequency: 'daily' | string; day: number; hour: number; includeFirmware: boolean; includeControllers: boolean; }; setupStartTime: unknown; }; system: ISystem; firmware: { latest: IReleaseInformations; latestByChannel: Record<releaseChannels, IReleaseInformations>; progress: { state: string; url: string; progress: number; bytes: number; }; token: uuid; channels: Array<releaseChannels>; schedule: unknown; releaseChannel: releaseChannels; }; unadoptedUnifiOSDevices: Array<unknown>; } export interface IUpdateDeviceRestoreProgressEvent extends IControllerEvent { type: 'UPDATE_DEVICE_RESTORE_PROGRESS'; backup: { device: { restoreInfo: unknown; restoreInProgress: boolean; restoreProgress: number; restoreStarted: boolean; restoreCompleted: boolean; steps: Array<unknown>; }; controllers: { restoreInProgress: boolean; restoreFinished: boolean; }; }; } export interface IDeviceStateChangedEvent extends IControllerEvent { type: 'DEVICE_STATE_CHANGED'; system: ISystem; } export interface ISiteEvent { meta: { rc: string; message: string; product_line?: string; }; data: Array<unknown>; } export interface IEventDevice { site_id: string; assoc_time: timestampDate; latest_assoc_time: timestampDate; oui: string; user_id: string; _id: string; mac: macAddress; is_guest: boolean; first_seen: timestampDate; last_seen: timestampDate; is_wired: boolean; usergroup_id: string; name: string; noted: boolean; use_fixedip: boolean; network_id: string; fixed_ip: ipV4Address; fingerprint_override: boolean; dev_id_override: number; hostname: string; fingerprint_source: number; dev_cat: number; dev_family: number; dev_vendor: number; dev_id: number; device_name: string; fw_version: string; score: number; fingerprint_engine_version: string; _uptime_by_ugw: number; _last_seen_by_ugw: number; _is_guest_by_ugw: boolean; gw_mac: macAddress; network: LANWAN; uptime: number; tx_bytes: number; rx_bytes: number; tx_packets: number; tx_retries: number; wifi_tx_attempts: number; rx_packets: number; 'tx_bytes-r': number; 'rx_bytes-r': number; qos_policy_applied: boolean; _uptime_by_usw: number; _last_seen_by_usw: timestampDate; _is_guest_by_usw: boolean; sw_mac: macAddress; sw_depth: number; sw_port: number; wired_rate_mbps: number; ip: ipV4Address; anomalies: number; 'wired-tx_bytes': number; 'wired-rx_bytes': number; 'wired-tx_packets': number; 'wired-rx_packets': number; 'wired-tx_bytes-r': number; 'wired-rx_bytes-r': number; 'bytes-r': number; note: string; satisfaction?: number; os_name?: number; confidence?: number; _uptime_by_uap?: number; _last_seen_by_uap?: number; _is_guest_by_uap?: boolean; ap_mac: string; channel?: number; radio: string; radio_name: string; essid: string; bssid: string; powersave_enabled?: boolean; is_11r?: boolean; user_group_id_computed: string; ccq?: number; rssi?: number; noise?: number; signal?: number; tx_rate?: number; rx_rate?: number; tx_power?: number; idletime?: number; dhcpend_time?: number; anon_client_id: string; tx_mcs?: number; vlan?: number; radio_proto: string; blocked?: boolean; } export interface ISiteEventsEvent { meta: { rc: string; message: 'events'; }; data: Array<Record<string, unknown> & { key: string; }>; } export interface IStaSync extends ISiteEvent { meta: { rc: string; message: 'sta:sync'; }; data: Array<IEventDevice>; } export type unifiSiteEvents = ISiteEvent | ISiteEventsEvent | IStaSync; export type unifiControllerEvents = IControllerEvent | IErrorEvent | ISystemEvent | IUpdateDeviceRestoreProgressEvent | IDeviceStateChangedEvent;