/** * Multicloud Customer API client * * Provides a client for customer-facing operations only. * This is a subset of the full MulticloudRestClient focused on customer operations. * * IMPORTANT: This is for server-side use only - never expose to client/browser! */ import { MulticloudConnectionParams } from './config'; export interface Job { id?: number; name: string; displayName?: string; owner?: string; status?: string; state?: string; targetInstanceCount?: number; availability?: number; priority?: number; envVars?: { [key: string]: string; }; command?: string; image?: string; longRunning?: boolean; orchestration?: string; sdnUniqueNamePerTask?: boolean; volumes?: any[]; services?: any[]; upstreams?: any[]; locationRules?: any[]; constraints?: any; schedulingMetadata?: any; lastRun?: string; cronSchedule?: string; capabilities?: string; options?: string; hostname?: string; network?: string; networkAliases?: string[]; [key: string]: any; } export interface Task { id?: number; jobId: number; serverId: number; status: string; sequence?: number; expires?: string; since?: string; memLimitMb?: number; upstreams?: any[]; ipLease?: any; extra?: { [key: string]: string; }; statsCpu?: number; statsMemUsage?: number; statsMemLimit?: number; statsNetIn?: number; statsNetOut?: number; statsBlockIn?: number; statsBlockOut?: number; statsCpuUsageRaw?: number; statsSystemCpuUsageRaw?: number; [key: string]: any; } export interface Cluster { id: number; name: string; enabled: boolean; minServers?: number; maxServers?: number; minZones?: number; minNodeMemory?: string; minMultiCoreBench?: number; minBootDiskSize?: string; dnsRecord?: string; affinity?: string; maxCostPerHour?: number; locationRules?: any[]; [key: string]: any; } export interface Response { success: boolean; message?: string; data?: any; [key: string]: any; } /** * Multicloud Customer API client * * Provides only customer-facing operations with limited field exposure. */ export declare class MulticloudCustomerClient { private params; private debug; constructor(params: MulticloudConnectionParams, debug?: boolean); /** * Make an authenticated request to the Multicloud API */ private makeRequest; /** * Test connection to the Multicloud server */ testConnection(): Promise; /** * Health check endpoint for customer API */ pingCustomer(): Promise; /** * Customer-facing endpoint to get jobs for authenticated users */ getCustomerJobs(applicationId: string | number, clusterId?: string | number): Promise; /** * Customer-facing endpoint to get clusters for authenticated users */ getCustomerClusters(applicationId: string | number, clusterId?: string | number): Promise; /** * Customer-facing endpoint to get basic server information for authenticated users */ getCustomerServers(applicationId: string | number, clusterId?: string | number): Promise; /** * Customer-facing endpoint to get tasks for authenticated users */ getCustomerTasks(applicationId: string | number, jobIds?: Set, clusterId?: string | number): Promise; /** * Customer-facing endpoint to get cluster locations (different from admin endpoint) */ getCustomerClusterLocations(applicationId: string | number, clusterId: string | number): Promise; /** * Customer-facing endpoint to add jobs to a cluster (different from coordinator endpoint) */ addCustomerJobs(jobDescs: Partial[], applicationId: string | number, clusterId: string | number): Promise; /** * Customer-facing endpoint to perform job actions (different from coordinator endpoint) */ customerJobAction(jobId: string | number, action: string, applicationId: string | number, clusterId: string | number, scaleBy?: number): Promise; /** * Delete a job (legacy - for migration from Job to Pod system) */ deleteJob(jobId: string | number): Promise; } //# sourceMappingURL=customer-client.d.ts.map