@panoptic-it-solutions/unifi-api-client
Version:
A Node.js client library for the UniFi Controller API
188 lines (187 loc) • 6.74 kB
TypeScript
import { UniFiClientOptions } from './types';
import { EventEmitter } from 'events';
import { LogLevel } from './utils/logger';
import { DeviceEndpoints, ClientEndpoints, SiteEndpoints } from './endpoints';
import { ClientIdentifier, PaginationOptions, SortOptions } from './types/clients';
import { NetworkEndpoints } from './endpoints/networks';
import { Network, FirewallRule } from './types/network';
import { WirelessEndpoints, WlanConfig, RadioSettings } from './endpoints/wireless';
import { StatsOptions } from './endpoints/stats';
import { SystemEndpoints } from './endpoints/system';
import { SystemStatus, SystemSettings, SystemSettingsUpdate, BackupOptions, BackupResponse, RestoreOptions, RestoreResponse, FirmwareInfo, UpdateResponse, LogEntry, Alert } from './types';
export declare class UniFiClient extends EventEmitter {
private httpClient;
private auth;
private logger;
devices: DeviceEndpoints;
clients: ClientEndpoints;
sites: SiteEndpoints;
networks: NetworkEndpoints;
wireless: WirelessEndpoints;
private statsEndpoints;
systemEndpoints: SystemEndpoints;
private username?;
private password?;
constructor(controllerUrl: string, options?: UniFiClientOptions);
setLogLevel(level: LogLevel): void;
login(username?: string, password?: string): Promise<boolean>;
logout(): Promise<boolean>;
isLoggedIn(): boolean;
setSite(site: string): void;
getSite(): string;
request(method: 'get' | 'post' | 'put' | 'delete', path: string, data?: any, params?: any): Promise<any>;
/**
* List all active clients.
*/
getActiveClients(options?: PaginationOptions & SortOptions): Promise<import("./types").Client[]>;
/**
* List all clients (active and historical).
*/
getAllClients(options?: PaginationOptions & SortOptions): Promise<import("./types").Client[]>;
/**
* Get client details by identifier (MAC, IP, or name).
*/
getClientDetails(identifier: ClientIdentifier): Promise<import("./types").Client | null>;
/**
* Block a client by MAC address.
*/
blockClient(mac: string): Promise<boolean>;
/**
* Unblock a client by MAC address.
*/
unblockClient(mac: string): Promise<boolean>;
/**
* Reconnect (kick) a client by MAC address.
*/
reconnectClient(mac: string): Promise<boolean>;
/**
* Authorize a guest client for a given number of minutes.
*/
authorizeGuest(mac: string, minutes?: number): Promise<boolean>;
/**
* Unauthorize a guest client by MAC address.
*/
unauthorizeGuest(mac: string): Promise<boolean>;
/**
* List all networks.
*/
getNetworks(): Promise<Network[]>;
/**
* Create a new network.
*/
createNetwork(network: Network): Promise<Network>;
/**
* Update an existing network.
*/
updateNetwork(networkId: string, network: Partial<Network>): Promise<Network>;
/**
* Delete a network.
*/
deleteNetwork(networkId: string): Promise<boolean>;
/**
* List all firewall rules.
*/
getFirewallRules(): Promise<FirewallRule[]>;
/**
* Create a new firewall rule.
*/
createFirewallRule(rule: FirewallRule): Promise<FirewallRule>;
/**
* Update an existing firewall rule.
*/
updateFirewallRule(ruleId: string, rule: Partial<FirewallRule>): Promise<FirewallRule>;
/**
* Delete a firewall rule.
*/
deleteFirewallRule(ruleId: string): Promise<boolean>;
/**
* List all wireless networks (WLANs).
*/
getWlanConfigs(): Promise<WlanConfig[]>;
/**
* Create a new wireless network (WLAN).
*/
createWlanConfig(wlanConfig: WlanConfig): Promise<WlanConfig>;
/**
* Update an existing wireless network (WLAN).
*/
updateWlanConfig(wlanId: string, wlanConfig: Partial<WlanConfig>): Promise<WlanConfig>;
/**
* Delete a wireless network (WLAN).
*/
deleteWlanConfig(wlanId: string): Promise<boolean>;
/**
* Get radio settings for a device.
*/
getRadioSettings(deviceMac: string): Promise<RadioSettings[]>;
/**
* Update radio settings for a device.
*/
updateRadioSettings(deviceMac: string, radioSettings: Partial<RadioSettings>): Promise<boolean>;
/**
* Get wireless networks utilization statistics.
*/
getWlanUtilization(): Promise<any>;
getSiteStats(options?: StatsOptions): Promise<import("./types").SiteStats[]>;
getClientStats(options?: StatsOptions): Promise<import("./types").ClientStats[]>;
getDeviceStats(options?: StatsOptions): Promise<import("./types").DeviceStats[]>;
getSessions(options?: StatsOptions): Promise<import("./types/stats").SessionStats[]>;
getHourlySiteStats(options?: StatsOptions): Promise<import("./types").SiteStats[]>;
getTrafficStats(options?: StatsOptions): Promise<import("./types/stats").TrafficStats[]>;
getAllUsers(options?: StatsOptions): Promise<import("./types").ClientStats[]>;
get5MinuteSiteStats(options?: StatsOptions): Promise<import("./types").SiteStats[]>;
getGatewayStats(options?: StatsOptions): Promise<import("./types").DeviceStats[]>;
/**
* Get controller system status
*/
getSystemStatus(): Promise<SystemStatus>;
/**
* Get controller system settings
*/
getSystemSettings(): Promise<SystemSettings>;
/**
* Update controller system settings
*/
updateSystemSettings(settings: SystemSettingsUpdate): Promise<SystemSettings>;
/**
* Create a system backup
*/
createSystemBackup(options?: BackupOptions): Promise<BackupResponse>;
/**
* Restore a system backup
*/
restoreSystemBackup(backupId: string, options?: RestoreOptions): Promise<RestoreResponse>;
/**
* Get available firmware versions
*/
getAvailableFirmware(): Promise<FirmwareInfo[]>;
/**
* Update device firmware
*/
updateDeviceFirmware(deviceId: string, firmwareVersion: string): Promise<UpdateResponse>;
/**
* Reboot the controller
*/
rebootController(): Promise<boolean>;
/**
* Get system logs
*/
getSystemLogs(limit?: number): Promise<LogEntry[]>;
/**
* Get current system alerts
*/
getSystemAlerts(): Promise<Alert[]>;
/**
* Reboot the system (with confirmation)
*/
rebootSystem(confirm: boolean): Promise<boolean>;
/**
* Factory reset the system (destructive!)
*/
factoryReset(confirm: boolean): Promise<boolean>;
/**
* Export a site backup as a Buffer (binary .unf file)
* @returns {Promise<Buffer>} The backup file contents
*/
exportSiteBackup(): Promise<Buffer>;
}