UNPKG

unifi-client

Version:

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

873 lines (872 loc) 24.3 kB
import { dateInput, ipV4Address, ipv4CIDR, macAddress, netMask } from '../commons/types'; export interface IAccMeterStats { x: number; y: number; z: number; } export interface IAntennaTable { default: boolean; id: number; name: string; ra0_gain: number; rai0_gain: number; } export interface IConfigNetwork { type: EConfigNetworkType | string; ip: string; netmask?: netMask; gateway?: ipV4Address; dns1?: string; dns2?: string; dnssuffix?: string; } export declare enum EConfigNetworkType { DHCP = "dhcp", STATIC = "static" } export interface IConfigNetworkLAN { cidr: ipv4CIDR; dhcp_enabled: boolean; dhcp_range_start: string; dhcp_range_stop: string; vlan: number; } export declare enum EConnectionNetworkName { LAN = "LAN", WAN = "WAN", WaN2 = "WAN2" } export interface IDownlinkTable { mac: macAddress; port_idx: number; speed: number; full_duplex: boolean; } export interface IEthernetOverride { ifname: string; networkgroup: EConnectionNetworkName | string; } export interface IEthernetTable { mac: string; num_port?: number; name: string; } export interface IGeoInfo { WAN2?: IGeoInfoWAN; WAN?: IGeoInfoWAN; } export interface IGeoInfoWAN { accuracy: number; address: string; asn: number; city: string; continent_code: string; country_code: string; country_name: string; isp_name: string; isp_organization: string; latitude: number; longitude: number; timezone: string; } export interface ILastUplink { uplink_mac: string; uplink_remote_port: number; port_idx: number; type: ELastUplinkType | string; } export declare enum ELastUplinkType { WIRE = "wire" } export interface ILEDState { pattern: string; tempo: number; } export declare enum ELicenseState { Registered = "registered" } export interface ILldpTable { chassis_id: string; is_wired: boolean; local_port_idx: number; local_port_name: string; port_id: string; chassis_descr?: string; port_descr?: string; } export interface INetworkTable { _id: string; attr_no_delete?: boolean; attr_hidden_id?: EConnectionNetworkName | string; name: string; site_id: string; vlan_enabled: boolean; purpose: string; ip_subnet: string; ipv6_interface_type: string; domain_name?: string; is_nat: boolean; dhcpd_enabled: boolean; dhcpd_start: string; dhcpd_stop: string; dhcpdv6_enabled?: boolean; ipv6_ra_enabled?: boolean; lte_lan_enabled?: boolean; networkgroup: EConnectionNetworkName | string; dhcpd_leasetime: number; dhcpd_dns_enabled: boolean; dhcpd_gateway_enabled: boolean; dhcpd_time_offset_enabled: boolean; ipv6_pd_start?: string; ipv6_pd_stop?: string; gateway_type: string; dhcpd_dns_1?: string; dhcpd_dns_2?: string; dhcpd_unifi_controller?: string; enabled: boolean; dhcp_relay_enabled: boolean; ipv6_pd_interface?: EBr0; ipv6_ra_priority?: string; ipv6_ra_valid_lifetime?: number; ipv6_ra_preferred_lifetime?: number; dhcpdv6_leasetime?: number; dhcpdv6_dns_auto?: boolean; upnp_lan_enabled?: boolean; dhcpd_ntp_enabled?: boolean; dhcpd_ntp_1?: string; dhcpd_ntp_2?: string; ipv6_subnet?: string; dhcpdv6_start?: string; dhcpdv6_stop?: string; dhcpdv6_dns_1?: string; dhcpdv6_dns_2?: string; auto_scale_enabled?: boolean; dhcpd_boot_enabled?: boolean; dhcpd_tftp_server?: string; dhcpguard_enabled?: boolean; dhcpd_wpad_url?: string; igmp_snooping?: boolean; dhcpdv6_dns_4?: string; dhcpdv6_dns_3?: string; ipv6_pd_prefixid?: string; dhcpd_boot_server?: string; dhcpd_boot_filename?: string; nat_outbound_ip_addresses?: Array<unknown>; dhcpd_dns_3?: string; is_guest: boolean; ip: string; mac: string; up: boolean; active_dhcp_lease_count: number; gateway_interface_name: string; dpistats_table: IDpistatsTable; num_sta: number; rx_bytes: number; rx_packets: number; tx_bytes: number; tx_packets: number; vlan?: string; } export interface IDpistatsTable { last_updated: number; by_cat: Array<IByCat>; by_app: Array<IByApp>; } export interface IByApp { app: number; cat: number; clients: Array<IClient>; known_clients: number; rx_bytes: number; tx_bytes: number; rx_packets: number; tx_packets: number; } export interface IClient { mac: macAddress; rx_bytes: number; tx_bytes: number; rx_packets: number; tx_packets: number; } export interface IByCat { cat: number; apps: Array<number>; rx_bytes: number; tx_bytes: number; rx_packets: number; tx_packets: number; } export declare enum EBr0 { LAN = "lan", WAN = "wan", Wan2 = "wan2" } export interface IPortOverride { port_idx: number; portconf_id?: string; op_mode?: EOpMode; port_security_mac_address?: Array<unknown>; aggregate_num_ports?: number; autoneg?: boolean; } export declare enum EOpMode { AGGREGATE = "aggregate", MIRROR = "mirror", SWITCH = "switch" } export interface IPortTable { port_idx: number; media: EMedia | string; port_poe: boolean; speed_caps: number; op_mode: EOpMode | string; portconf_id: string; autoneg: boolean; enable: boolean; flowctrl_rx: boolean; flowctrl_tx: boolean; full_duplex: boolean; is_uplink: boolean; mac?: string; name: string; num_port?: number; rx_broadcast: number; rx_bytes: number; rx_dropped: number; rx_errors: number; rx_multicast: number; rx_packets: number; rx_rate?: number; 'rx_rate-max'?: number; speed: number; tx_broadcast: number; tx_bytes: number; tx_dropped: number; tx_errors: number; tx_multicast: number; tx_packets: number; tx_rate?: number; 'tx_rate-max'?: number; type?: EPortTableType | string; up: boolean; ifname?: string; 'tx_bytes-r': number; 'rx_bytes-r': number; 'bytes-r': number; port_delta?: IPortDelta; network_name?: EBr0 | string; masked: boolean; aggregated_by: boolean | number; mac_table?: Array<IMACTable>; ip?: string; netmask?: netMask; dns?: Array<string>; poe_caps?: number; dot1x_mode?: EDot1XMode | string; dot1x_status?: EDot1XStatus | string; jumbo?: boolean; satisfaction?: number; satisfaction_reason?: number; stp_pathcost?: number; stp_state?: EDot1XStatus | string; poe_mode?: string; poe_enable?: boolean; poe_voltage?: string; aggregate_num_ports?: number; anomalies?: number; lacp_state?: Array<ILACPState>; lag_member?: boolean; partner_system_id?: string; service_mac_table?: Array<IServiceMACTable>; port_security_mac_address?: Array<unknown>; sfp_found?: boolean; sfp_compliance?: string; sfp_current?: string; sfp_part?: string; sfp_rev?: string; sfp_rxfault?: boolean; sfp_rxpower?: string; sfp_serial?: string; sfp_temperature?: string; sfp_txfault?: boolean; sfp_txpower?: string; sfp_vendor?: string; sfp_voltage?: string; poe_class?: string; poe_current?: string; poe_good?: boolean; poe_power?: string; } export declare enum EDot1XMode { Unknown = "unknown" } export declare enum EDot1XStatus { Disabled = "disabled", Forwarding = "forwarding" } export interface ILACPState { active: boolean; member_port: number; speed: number; } export interface IMACTable { age: number; authorized: boolean; hostname: string; ip: ipV4Address; lastReachable: number; mac: macAddress; } export declare enum EMedia { GE = "GE", SFP = "SFP", SFP_PLUS = "SFP+" } export interface IPortDelta { time_delta: number; time_delta_activity: number; } export interface IServiceMACTable { mac: string; } export declare enum EPortTableType { Ethernet = "ethernet" } export interface IRadioTable { radio: string; name: string; channel?: number | string; ht?: string; tx_power_mode?: string; max_txpower: number; min_txpower: number; nss: number; min_rssi_enabled?: boolean; sens_level_enabled?: boolean; hard_noise_floor_enabled?: boolean; vwire_enabled?: boolean; radio_caps: number; radio_caps2: number; builtin_antenna: boolean; builtin_ant_gain: number; antenna_gain?: number; loadbalance_enabled?: boolean; current_antenna_gain: number; is_11ac?: boolean; has_dfs?: boolean; has_fccdfs?: boolean; has_ht160?: boolean; backup_channel?: number; is_11ax?: boolean; } export declare enum ERadio { Na = "na", Ng = "ng" } export interface IRadioTableStat { name: string; channel: number; radio: ERadio | string; ast_txto: null; ast_cst: null; ast_be_xmit: number | null; cu_total: number; cu_self_rx: number; cu_self_tx: number; gain: number; satisfaction: number; state: EState | string; extchannel: number; tx_power: number; tx_packets: number; tx_retries: number; num_sta: number; 'guest-num_sta': number; 'user-num_sta': number; } export declare enum EState { Run = "RUN" } export interface IRps { power_management_mode: string; rps_port_table: Array<IRpsPortTable>; } export interface IRpsPortTable { port_idx: number; name: string; port_mode: string; } export interface ISpeedtestStatus { latency: number; rundate: number; runtime: number; server: ISpeedTestServer; source_interface: string; status_download: number; status_ping: number; status_summary: number; status_upload: number; xput_download: number; xput_upload: number; } export interface ISpeedTestServer { cc: string; city: string; country: string; lat: number; lon: number; provider: string; provider_url: string; } export interface IStat { gw?: IGw; sw?: ISw; ap?: IApClass; } export interface IApClass { site_id: string; o: string; oid: string; ap: string; time: number; datetime: Date; 'user-rai0-rx_packets': number; 'user-ra0-rx_packets': number; 'user-rx_packets': number; 'guest-rx_packets': number; 'ra0-rx_packets': number; 'rai0-rx_packets': number; rx_packets: number; 'user-rai0-rx_bytes': number; 'user-ra0-rx_bytes': number; 'user-rx_bytes': number; 'guest-rx_bytes': number; 'ra0-rx_bytes': number; 'rai0-rx_bytes': number; rx_bytes: number; 'user-rai0-rx_errors': number; 'user-ra0-rx_errors': number; 'user-rx_errors': number; 'guest-rx_errors': number; 'ra0-rx_errors': number; 'rai0-rx_errors': number; rx_errors: number; 'user-rai0-rx_dropped': number; 'user-ra0-rx_dropped': number; 'user-rx_dropped': number; 'guest-rx_dropped': number; 'ra0-rx_dropped': number; 'rai0-rx_dropped': number; rx_dropped: number; 'user-rai0-rx_crypts': number; 'user-ra0-rx_crypts': number; 'user-rx_crypts': number; 'guest-rx_crypts': number; 'ra0-rx_crypts': number; 'rai0-rx_crypts': number; rx_crypts: number; 'user-rai0-rx_frags': number; 'user-ra0-rx_frags': number; 'user-rx_frags': number; 'guest-rx_frags': number; 'ra0-rx_frags': number; 'rai0-rx_frags': number; rx_frags: number; 'user-rai0-tx_packets': number; 'user-ra0-tx_packets': number; 'user-tx_packets': number; 'guest-tx_packets': number; 'ra0-tx_packets': number; 'rai0-tx_packets': number; tx_packets: number; 'user-rai0-tx_bytes': number; 'user-ra0-tx_bytes': number; 'user-tx_bytes': number; 'guest-tx_bytes': number; 'ra0-tx_bytes': number; 'rai0-tx_bytes': number; tx_bytes: number; 'user-rai0-tx_errors': number; 'user-ra0-tx_errors': number; 'user-tx_errors': number; 'guest-tx_errors': number; 'ra0-tx_errors': number; 'rai0-tx_errors': number; tx_errors: number; 'user-rai0-tx_dropped': number; 'user-ra0-tx_dropped': number; 'user-tx_dropped': number; 'guest-tx_dropped': number; 'ra0-tx_dropped': number; 'rai0-tx_dropped': number; tx_dropped: number; 'user-rai0-tx_retries': number; 'user-ra0-tx_retries': number; 'user-tx_retries': number; 'guest-tx_retries': number; 'ra0-tx_retries': number; 'rai0-tx_retries': number; tx_retries: number; 'user-rai0-mac_filter_rejections': number; 'user-ra0-mac_filter_rejections': number; 'user-mac_filter_rejections': number; 'guest-mac_filter_rejections': number; 'ra0-mac_filter_rejections': number; 'rai0-mac_filter_rejections': number; mac_filter_rejections: number; 'user-rai0-wifi_tx_attempts': number; 'user-ra0-wifi_tx_attempts': number; 'user-wifi_tx_attempts': number; 'guest-wifi_tx_attempts': number; 'ra0-wifi_tx_attempts': number; 'rai0-wifi_tx_attempts': number; wifi_tx_attempts: number; 'user-rai0-wifi_tx_dropped': number; 'user-ra0-wifi_tx_dropped': number; 'user-wifi_tx_dropped': number; 'guest-wifi_tx_dropped': number; 'ra0-wifi_tx_dropped': number; 'rai0-wifi_tx_dropped': number; wifi_tx_dropped: number; bytes: number; duration: number; 'user-ra0-ra0-5f494127055b2304e2505485-rx_packets'?: number; 'user-ra0-ra0-5f494127055b2304e2505485-rx_bytes'?: number; 'user-ra0-ra0-5f494127055b2304e2505485-tx_packets'?: number; 'user-ra0-ra0-5f494127055b2304e2505485-tx_bytes'?: number; 'user-ra0-ra0-5f494127055b2304e2505485-wifi_tx_attempts'?: number; 'user-ra0-ra0-5f494127055b2304e2505485-rx_dropped'?: number; 'user-rai0-rai1-5f497051055b2304e250598d-rx_packets'?: number; 'user-rai0-rai1-5f497051055b2304e250598d-rx_bytes'?: number; 'user-rai0-rai1-5f497051055b2304e250598d-tx_packets'?: number; 'user-rai0-rai1-5f497051055b2304e250598d-tx_bytes'?: number; 'user-rai0-rai1-5f497051055b2304e250598d-wifi_tx_attempts'?: number; 'user-rai0-rai0-5f494127055b2304e2505485-rx_packets'?: number; 'user-rai0-rai0-5f494127055b2304e2505485-rx_bytes'?: number; 'user-rai0-rai0-5f494127055b2304e2505485-rx_dropped'?: number; 'user-rai0-rai0-5f494127055b2304e2505485-tx_packets'?: number; 'user-rai0-rai0-5f494127055b2304e2505485-tx_bytes'?: number; 'user-rai0-rai0-5f494127055b2304e2505485-wifi_tx_attempts'?: number; 'user-rai0-rai1-5f497051055b2304e250598d-tx_retries'?: number; 'user-ra0-ra1-5f497051055b2304e250598d-rx_packets'?: number; 'user-ra0-ra1-5f497051055b2304e250598d-rx_bytes'?: number; 'user-ra0-ra1-5f497051055b2304e250598d-tx_packets'?: number; 'user-ra0-ra1-5f497051055b2304e250598d-tx_bytes'?: number; 'user-ra0-ra1-5f497051055b2304e250598d-wifi_tx_attempts'?: number; 'user-rai0-rai1-5f497051055b2304e250598d-wifi_tx_dropped'?: number; 'user-ra0-ra0-5f494127055b2304e2505485-rx_errors'?: number; 'user-rai0-rai0-5f494127055b2304e2505485-tx_retries'?: number; 'user-rai0-rai0-5f494127055b2304e2505485-wifi_tx_dropped'?: number; 'user-rai0-rai0-5f494127055b2304e2505485-rx_errors'?: number; 'user-rai0-rai0-6009620ed5d92e03f8d24bf3-rx_packets'?: number; 'user-rai0-rai0-6009620ed5d92e03f8d24bf3-rx_bytes'?: number; 'user-ra0-ra1-600962e0d5d92e03f8d24c20-rx_packets'?: number; 'user-ra0-ra1-600962e0d5d92e03f8d24c20-rx_bytes'?: number; 'user-ra0-ra1-600962e0d5d92e03f8d24c20-tx_packets'?: number; 'user-ra0-ra1-600962e0d5d92e03f8d24c20-tx_bytes'?: number; 'user-ra0-ra1-600962e0d5d92e03f8d24c20-wifi_tx_attempts'?: number; 'user-ra0-ra0-6009620ed5d92e03f8d24bf3-rx_packets'?: number; 'user-ra0-ra0-6009620ed5d92e03f8d24bf3-rx_bytes'?: number; 'user-ra0-ra0-6009620ed5d92e03f8d24bf3-rx_errors'?: number; 'user-rai0-rai0-6009620ed5d92e03f8d24bf3-tx_packets'?: number; 'user-rai0-rai0-6009620ed5d92e03f8d24bf3-tx_bytes'?: number; 'user-rai0-rai0-6009620ed5d92e03f8d24bf3-wifi_tx_attempts'?: number; 'user-ra0-ra0-6009620ed5d92e03f8d24bf3-tx_packets'?: number; 'user-ra0-ra0-6009620ed5d92e03f8d24bf3-tx_bytes'?: number; 'user-ra0-ra0-6009620ed5d92e03f8d24bf3-tx_retries'?: number; 'user-ra0-ra0-6009620ed5d92e03f8d24bf3-wifi_tx_attempts'?: number; 'user-ra0-ra0-6009620ed5d92e03f8d24bf3-wifi_tx_dropped'?: number; 'user-rai0-rai0-6009620ed5d92e03f8d24bf3-rx_errors'?: number; 'user-rai0-rai0-6009620ed5d92e03f8d24bf3-tx_retries'?: number; 'user-rai0-rai1-600962f9d5d92e03f8d24c21-rx_packets'?: number; 'user-rai0-rai1-600962f9d5d92e03f8d24c21-rx_bytes'?: number; 'user-rai0-rai1-600962f9d5d92e03f8d24c21-tx_packets'?: number; 'user-rai0-rai1-600962f9d5d92e03f8d24c21-tx_bytes'?: number; 'user-rai0-rai1-600962f9d5d92e03f8d24c21-wifi_tx_attempts'?: number; 'user-ra0-ra1-600962e0d5d92e03f8d24c20-tx_retries'?: number; 'user-ra0-ra1-600962e0d5d92e03f8d24c20-wifi_tx_dropped'?: number; 'user-rai0-rai2-60180460d5d92e03f8d48ac6-rx_packets'?: number; 'user-rai0-rai2-60180460d5d92e03f8d48ac6-rx_bytes'?: number; 'user-rai0-rai2-60180460d5d92e03f8d48ac6-tx_packets'?: number; 'user-rai0-rai2-60180460d5d92e03f8d48ac6-tx_bytes'?: number; 'user-rai0-rai2-60180460d5d92e03f8d48ac6-wifi_tx_attempts'?: number; 'user-rai0-rai2-60180460d5d92e03f8d48ac6-tx_retries'?: number; 'user-rai0-rai1-600962f9d5d92e03f8d24c21-tx_retries'?: number; 'user-rai0-rai0-6009620ed5d92e03f8d24bf3-wifi_tx_dropped'?: number; 'user-ra0-ra1-600962e0d5d92e03f8d24c20-rx_dropped'?: number; 'user-ra0-ra0-6009620ed5d92e03f8d24bf3-rx_dropped'?: number; 'user-rai0-rai0-6009620ed5d92e03f8d24bf3-rx_dropped'?: number; } export interface IGw { site_id: string; o: string; oid: string; gw: string; time: number; datetime: dateInput; duration: number; 'wan2-rx_packets': number; 'wan2-rx_bytes': number; 'wan2-tx_packets': number; 'wan2-tx_bytes': number; 'lan-rx_packets': number; 'lan-rx_bytes': number; 'lan-tx_packets': number; 'lan-tx_bytes': number; 'wan2-rx_errors'?: number; 'wan-rx_packets'?: number; 'wan-rx_bytes'?: number; 'wan-tx_packets'?: number; 'wan-tx_bytes'?: number; } export interface ISw { site_id: string; o: string; oid: string; sw: string; time: number; datetime: dateInput; rx_packets: number; rx_bytes: number; rx_errors: number; rx_dropped: number; rx_crypts: number; rx_frags: number; tx_packets: number; tx_bytes: number; tx_errors: number; tx_dropped: number; tx_retries: number; rx_multicast: number; rx_broadcast: number; tx_multicast: number; tx_broadcast: number; bytes: number; duration: number; 'port_1-rx_packets': number; 'port_1-rx_bytes': number; 'port_1-tx_packets': number; 'port_1-tx_bytes': number; 'port_1-rx_multicast'?: number; 'port_1-rx_broadcast'?: number; 'port_1-tx_multicast': number; 'port_1-tx_broadcast': number; 'port_1-tx_dropped'?: number; } export interface IStorage { mount_point: string; name: string; size: number; type: string; used: number; } export interface ISwitchCaps { max_mirror_sessions?: number; max_aggregate_sessions?: number; feature_caps?: number; max_l3_intf?: number; max_reserved_routes?: number; max_static_routes?: number; } export interface ISysStats { loadavg_1: string; loadavg_15: string; loadavg_5: string; mem_buffer: number; mem_total: number; mem_used: number; } export interface ISystemStats { cpu: string; mem: string; uptime: string; } export interface ITemperature { name: string; type: string; value: number; } export declare enum EWANDeviceType { Uap = "uap", Udm = "udm", Usw = "usw" } export interface IUnifiCare { state: string; registration: number; activation_end: null; activation_url: null; coverage_start: null; coverage_end: null; rma_url: null; tracking_url: null; activation_dismissed: null; } export interface IUplink { drops?: number; ip: string; latency?: number; name: string; nameservers?: Array<string>; netmask: netMask; num_port: number; rx_bytes: number; rx_dropped: number; rx_errors: number; rx_multicast: number; rx_packets: number; speedtest_lastrun?: number; speedtest_ping?: number; speedtest_status?: string; tx_bytes: number; tx_dropped: number; tx_errors: number; tx_packets: number; up?: boolean; uptime?: number; xput_down?: number; xput_up?: number; port_idx: number; media?: EMedia | string; speed: number; full_duplex: boolean; rx_rate?: number; tx_rate?: number; max_speed: number; type: ELastUplinkType | string; 'tx_bytes-r': number; 'rx_bytes-r': number; 'bytes-r'?: number; uplink_mac?: string; uplink_remote_port?: number; mac?: string; } export interface IUptimeStats { WAN: IUptimeStatsWAN; WAN2: IUptimeStatsWAN; } export interface IUptimeStatsWAN { downtime?: number; availability?: number; latency_average?: number; time_period?: number; } export interface IVapTable { anomalies_bar_chart: Record<string, number>; anomalies_bar_chart_now: Record<string, number>; avg_client_signal: number; bssid: string; bw: number; ccq: number; channel: number; dns_avg_latency: number; essid: string; extchannel?: number; icmp_avg_rtt: number; id: string; mac_filter_rejections: number; name: string; num_satisfaction_sta: number; num_sta: number; radio: ERadio | string; radio_name: string; reasons_bar_chart: Record<string, number>; reasons_bar_chart_now: Record<string, number>; rx_bytes: number; rx_crypts: number; rx_dropped: number; rx_errors: number; rx_frags: number; rx_nwids: number; rx_packets: number; rx_tcp_stats: IXTCPStats; satisfaction: number; state: EState | string; tx_bytes: number; tx_combined_retries: number; tx_data_mpdu_bytes: number; tx_dropped: number; tx_errors: number; tx_packets: number; tx_power: number; tx_retries: number; tx_rts_retries: number; tx_success: number; tx_tcp_stats: IXTCPStats; tx_total: number; up: boolean; usage: EUsage | string; wifi_tx_attempts: number; wifi_tx_dropped: number; t: string; wlanconf_id: string; is_guest: boolean; is_wep: boolean; ap_mac: macAddress; map_id: null; site_id: string; wifi_tx_latency_mov?: IWifiTxLatencyMOV; } export interface IXTCPStats { goodbytes: number; lat_avg: number; lat_max: number; lat_min: number; lat_samples: number; lat_sum: number; stalls: number; } export declare enum EUsage { User = "user" } export interface IWifiTxLatencyMOV { avg: number; max: number; min: number; total: number; total_count: number; } export interface IWAN { max_speed: number; type: EPortTableType | string; autoneg: boolean; enable: boolean; flowctrl_rx: boolean; flowctrl_tx: boolean; full_duplex: boolean; is_uplink: boolean; mac: string; media: EMedia | string; name: string; num_port: number; port_idx: number; port_poe: boolean; rx_broadcast: number; rx_bytes: number; rx_dropped: number; rx_errors: number; rx_multicast: number; rx_packets: number; 'rx_rate-max': number; speed: number; speed_caps: number; tx_broadcast: number; tx_bytes: number; tx_dropped: number; tx_errors: number; tx_multicast: number; tx_packets: number; tx_rate: number; 'tx_rate-max': number; up: boolean; ifname: string; 'tx_bytes-r': number; 'rx_bytes-r': number; 'bytes-r': number; mac_table?: Array<IMACTable>; rx_rate?: number; ip?: string; netmask?: netMask; dns?: Array<string>; }