46 lines
938 B
TypeScript
46 lines
938 B
TypeScript
/**
|
|
* A registered VPN client (secrets excluded from API responses).
|
|
*/
|
|
export interface IVpnClient {
|
|
clientId: string;
|
|
enabled: boolean;
|
|
serverDefinedClientTags?: string[];
|
|
description?: string;
|
|
assignedIp?: string;
|
|
createdAt: number;
|
|
updatedAt: number;
|
|
expiresAt?: string;
|
|
}
|
|
|
|
/**
|
|
* VPN server status.
|
|
*/
|
|
export interface IVpnServerStatus {
|
|
running: boolean;
|
|
forwardingMode: 'tun' | 'socket';
|
|
subnet: string;
|
|
wgListenPort: number;
|
|
serverPublicKeys: {
|
|
noisePublicKey: string;
|
|
wgPublicKey: string;
|
|
} | null;
|
|
registeredClients: number;
|
|
connectedClients: number;
|
|
}
|
|
|
|
/**
|
|
* VPN client telemetry data.
|
|
*/
|
|
export interface IVpnClientTelemetry {
|
|
clientId: string;
|
|
assignedIp: string;
|
|
bytesSent: number;
|
|
bytesReceived: number;
|
|
packetsDropped: number;
|
|
bytesDropped: number;
|
|
lastKeepaliveAt?: string;
|
|
keepalivesReceived: number;
|
|
rateLimitBytesPerSec?: number;
|
|
burstBytes?: number;
|
|
}
|