// Loki 部署域 API import { http, buildQuery, type ListParams, type RequestOptions } from '../http'; import type { PageData, LokiDeployment, DeploymentLog, DashboardStats, CreateDeploymentRequest, } from '@/types'; export type DeploymentUpdateInput = Partial; export const deploymentApi = { list: (params: ListParams = {}, options?: RequestOptions) => http.get>(`/deployments${buildQuery(params)}`, options), get: (id: number) => http.get(`/deployments/${id}`), create: (data: CreateDeploymentRequest) => http.post('/deployments', data), update: (id: number, data: DeploymentUpdateInput) => http.put<{ message: string }>(`/deployments/${id}`, data), remove: (id: number) => http.delete<{ message: string }>(`/deployments/${id}`), deploy: (id: number) => http.post<{ message: string }>(`/deployments/${id}/deploy`), stop: (id: number) => http.post<{ message: string }>(`/deployments/${id}/stop`), restart: (id: number) => http.post<{ message: string }>(`/deployments/${id}/restart`), logs: (id: number, params: ListParams = {}) => http.get>( `/deployments/${id}/logs${buildQuery({ page: 1, pageSize: 50, ...params })}` ), stats: () => http.get('/deployments/stats'), // 部署就绪探测(经自动注册数据源访问 Loki /ready) ready: (id: number) => http.get<{ ready: boolean; message: string }>(`/deployments/${id}/ready`), // 支持的 Loki 版本列表(部署表单版本下拉数据源) versions: () => http.get<{ versions: string[] }>('/deployments/versions'), // 向导预检:聚合存储/集群/主机/Loki/采集器状态(状态推导式向导数据源) preflight: () => http.get<{ hasStorage: boolean defaultStorage: string hasActiveCluster: boolean clusterNames: string[] hasActiveHost: boolean hostNames: string[] runningLoki: null | { id: number name: string mode: string endpoint: string namespace: string grafana: boolean } activeCollectors: number grafanaReady: boolean }>('/deployments/preflight'), };