UNPKG

@cloudverse/cli

Version:

CloudVerse.ai CLI - Developer-native FinOps cost Optimization AI Agent

97 lines 2.86 kB
import type { CloudProvider } from '../types.js'; export interface EstimateRequest { files: Record<string, string>; provider?: CloudProvider; region?: string; } export interface EstimateResponse { estimate?: { id: number; provider: CloudProvider; region: string; totalMonthlyCost: string; resourceCount: number; }; resources?: Array<{ resourceId: string; resourceType: string; region: string; monthlyCost: string; skuBreakdown: any[]; status: string; }>; violations?: any[]; recommendations?: OptimizationRecommendation[]; } export interface OptimizationRecommendation { id: string; resourceId: string; resourceType: string; title: string; description: string; potentialMonthlySavings: number; potentialAnnualSavings: number; effortRequired: 'low' | 'medium' | 'high'; estimatedImplementationTime: number; performanceImpact: 'positive' | 'neutral' | 'negative' | 'unknown'; riskLevel: 'low' | 'medium' | 'high'; currentCost: number; optimizedCost: number; provider: string; isPrimary?: boolean; actions: Array<{ type: string; description: string; codeSnippet: string; }>; } export interface AnalyzeResponse { provider: CloudProvider; totalCost: number; resources: Array<{ resourceId: string; resourceType: string; region: string; monthlyCost: number; skuBreakdown: Array<{ sku: string; unit: string; quantity: number; unitPrice: number; cost: number; }>; status: string; }>; summary: { resourceCount: number; byType: Record<string, number>; byCost: Record<string, number>; }; recommendations?: OptimizationRecommendation[]; } export declare class CloudVerseAPI { private client; private baseURL; private apiKey?; constructor(baseURL?: string, apiKey?: string); estimate(request: EstimateRequest): Promise<EstimateResponse>; analyze(files: Record<string, string>, options?: { provider?: CloudProvider; region?: string; }): Promise<AnalyzeResponse>; getRecommendations(estimateId: number): Promise<OptimizationRecommendation[]>; getEstimate(id: number): Promise<any>; listEstimates(): Promise<any[]>; deleteEstimate(id: number): Promise<void>; /** * Analyze a Helm chart * @param chartYaml Chart.yaml content * @param valuesYaml values.yaml content * @param templates Array of template files */ analyzeHelm(chartYaml: string, valuesYaml: string, templates: Array<{ name: string; content: string; }>): Promise<AnalyzeResponse>; } //# sourceMappingURL=api-client.d.ts.map