export type LambdaConnectionStatus = 'connected' | 'disconnected'; export type LambdaConnectionPhase = | 'finish_installation' | 'config_mount' | 'config_connect'; export type LambdaConnectionErrorCode = | 'MISSING_AUTH_SECRET' | 'INVALID_URL' | 'NETWORK' | 'TIMEOUT' | 'HTTP' | 'INVALID_JSON' | 'UNEXPECTED_RESPONSE'; export type LambdaConnectionState = { status: LambdaConnectionStatus; endpoint: string; lastCheckedAt: string; lastCheckPhase: LambdaConnectionPhase; errorCode?: LambdaConnectionErrorCode; errorMessage?: string; httpStatus?: number; responseSnippet?: string; }; export type ConnectionValidationMode = 'health'; export type BackupCadence = 'daily' | 'weekly' | 'biweekly' | 'monthly'; export type BackupExecutionMode = 'lambda_cron'; export type BackupScheduleConfig = { version: 1; enabledCadences: BackupCadence[]; timezone: string; anchorLocalDate: string; updatedAt: string; }; export type AutomaticBackupsScheduleState = { lastRunLocalDateByCadence?: Partial>; lastRunAtByCadence?: Partial>; lastManagedEnvironmentIdByCadence?: Partial>; lastExecutionModeByCadence?: Partial< Record >; lastErrorByCadence?: Partial>; dailyLastRunDate?: string; weeklyLastRunKey?: string; lastDailyRunAt?: string; lastWeeklyRunAt?: string; lastDailyManagedEnvironmentId?: string; lastWeeklyManagedEnvironmentId?: string; lastDailyError?: string; lastWeeklyError?: string; } & Record; export type LambdaSchedulerProvider = | 'vercel' | 'netlify' | 'cloudflare' | 'unknown'; export type LambdaSchedulerCadence = 'hourly' | 'daily'; export type LambdaBackupStatusSlot = { scope: BackupCadence; executionMode: 'lambda_cron'; lastBackupAt: string | null; nextBackupAt: string | null; }; export type LambdaBackupStatus = { scheduler: { provider: LambdaSchedulerProvider; cadence: LambdaSchedulerCadence; }; slots: Partial> & { daily: LambdaBackupStatusSlot; weekly: LambdaBackupStatusSlot; }; checkedAt: string; }; export type BackupOverviewRow = { scope: BackupCadence; lastBackup: string; nextBackup: string; environmentName: string; environmentLinked: boolean; environmentStatusNote?: string; };