UNPKG

@panoptic-it-solutions/unifi-api-client

Version:

A Node.js client library for the UniFi Controller API

188 lines (187 loc) 6.74 kB
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>; }