/** * Tunnels API client for SSH and Dashboard tunnel management. */ import client from './client' const tunnelsApi = { /** * Enable tunnel for device and create session * @param {number} deviceId - Device numeric ID * @param {string} tunnelType - "ssh" or "dashboard" * @returns {Promise<{session_uuid: string, device_id: string, tunnel_type: string, status: string}>} */ async enableTunnel(deviceId, tunnelType) { const { data } = await client.post( `/superadmin/tunnels/devices/${deviceId}/${tunnelType}` ) return data }, /** * Get tunnel session status * @param {string} sessionUuid - Session UUID * @returns {Promise<{session_uuid: string, status: string, device_tunnel_port?: number, ttyd_port?: number, tunnel_url?: string}>} */ async getSessionStatus(sessionUuid) { const { data } = await client.get( `/superadmin/tunnels/sessions/${sessionUuid}/status` ) return data }, /** * Send heartbeat to keep session alive * @param {string} sessionUuid - Session UUID * @returns {Promise<{success: boolean}>} */ async sendHeartbeat(sessionUuid) { const { data } = await client.post( `/superadmin/tunnels/sessions/${sessionUuid}/heartbeat` ) return data } } export default tunnelsApi