import { apiClient } from './client'; import type { ClusterConfig, ClusterStatus, ClusterHealthResponse, KubeconfigResponse, TalosconfigResponse, OperationResponse, } from './types'; export const clusterApi = { async generateConfig(instanceName: string, config: ClusterConfig): Promise { return apiClient.post(`/api/v1/instances/${instanceName}/cluster/config/generate`, config); }, async bootstrap(instanceName: string, nodeName: string): Promise { return apiClient.post(`/api/v1/instances/${instanceName}/cluster/bootstrap`, { node_name: nodeName }); }, async configureEndpoints(instanceName: string, includeNodes = false): Promise { return apiClient.post(`/api/v1/instances/${instanceName}/cluster/endpoints`, { include_nodes: includeNodes }); }, async getStatus(instanceName: string): Promise { return apiClient.get(`/api/v1/instances/${instanceName}/cluster/status`); }, async getHealth(instanceName: string): Promise { return apiClient.get(`/api/v1/instances/${instanceName}/cluster/health`); }, async getKubeconfig(instanceName: string): Promise { return apiClient.get(`/api/v1/instances/${instanceName}/cluster/kubeconfig`); }, async generateKubeconfig(instanceName: string): Promise { return apiClient.post(`/api/v1/instances/${instanceName}/cluster/kubeconfig/generate`); }, async getTalosconfig(instanceName: string): Promise { return apiClient.get(`/api/v1/instances/${instanceName}/cluster/talosconfig`); }, async reset(instanceName: string, confirm: boolean): Promise { return apiClient.post(`/api/v1/instances/${instanceName}/cluster/reset`, { confirm }); }, };