import { apiClient } from './client'; import type { InstanceListResponse, CreateInstanceRequest, CreateInstanceResponse, DeleteInstanceResponse, GetInstanceResponse, } from './types'; export const instancesApi = { async list(): Promise { return apiClient.get('/api/v1/instances'); }, async get(name: string): Promise { return apiClient.get(`/api/v1/instances/${name}`); }, async create(data: CreateInstanceRequest): Promise { return apiClient.post('/api/v1/instances', data); }, async delete(name: string): Promise { return apiClient.delete(`/api/v1/instances/${name}`); }, // Config management async getConfig(instanceName: string): Promise> { return apiClient.get(`/api/v1/instances/${instanceName}/config`); }, async updateConfig(instanceName: string, config: Record): Promise<{ message: string }> { return apiClient.put(`/api/v1/instances/${instanceName}/config`, config); }, async batchUpdateConfig(instanceName: string, updates: Array<{path: string; value: unknown}>): Promise<{ message: string; updated?: number }> { return apiClient.patch(`/api/v1/instances/${instanceName}/config`, { updates }); }, // Secrets management async getSecrets(instanceName: string, raw = false): Promise> { const query = raw ? '?raw=true' : ''; return apiClient.get(`/api/v1/instances/${instanceName}/secrets${query}`); }, async updateSecrets(instanceName: string, secrets: Record): Promise<{ message: string }> { return apiClient.put(`/api/v1/instances/${instanceName}/secrets`, secrets); }, };