host.ts
1 import request from './request'; 2 import type { ApiResponse, Agent, DashboardStats, TagVO, Job, MetricSnapshot, HostSoftwareInventory } from '../types'; 3 4 export function getHostList(): Promise<ApiResponse<Agent[]>> { 5 return request.get('/v1/host/list'); 6 } 7 8 export function getHostDetail(agentId: string): Promise<ApiResponse<Agent>> { 9 return request.get(`/v1/host/${agentId}`); 10 } 11 12 export function getDashboardStats(): Promise<ApiResponse<DashboardStats>> { 13 return request.get('/v1/host/dashboard/stats'); 14 } 15 16 export function getAgentTags(agentId: string): Promise<ApiResponse<TagVO[]>> { 17 return request.get(`/v1/host/${agentId}/tags`); 18 } 19 20 export function getAgentJobs(agentId: string): Promise<ApiResponse<Job[]>> { 21 return request.get(`/v1/task/agent/${agentId}/jobs`); 22 } 23 24 export function getAgentMetrics(agentId: string, range: string): Promise<ApiResponse<MetricSnapshot[]>> { 25 return request.get(`/v1/host/${agentId}/metrics`, { params: { range } }); 26 } 27 28 export function triggerDetection(agentId: string): Promise<ApiResponse<string>> { 29 return request.post(`/v1/hosts/${agentId}/detect`); 30 } 31 32 export function parseDetection(agentId: string, taskId: string): Promise<ApiResponse<HostSoftwareInventory[]>> { 33 return request.post(`/v1/hosts/${agentId}/detect/${taskId}/parse`); 34 } 35 36 export function getHostSoftware(agentId: string): Promise<ApiResponse<HostSoftwareInventory[]>> { 37 return request.get(`/v1/hosts/${agentId}/software`); 38 } 39 40 export function getDockerContainers(agentId: string): Promise<ApiResponse<HostSoftwareInventory[]>> { 41 return request.get(`/v1/hosts/${agentId}/docker/containers`); 42 } 43 44 export function getHostInventory(agentId: string): Promise<ApiResponse<HostSoftwareInventory[]>> { 45 return request.get(`/v1/hosts/${agentId}/inventory`); 46 } 47 48 49 export function deleteHost(agentId: string): Promise<ApiResponse<void>> { 50 return request.delete(`/v1/host/${agentId}`); 51 } 52 53 export function deleteCredential(id: number): Promise<ApiResponse<void>> { 54 return request.delete(`/v1/host/credential/${id}`); 55 }