/** * Centralized, date-aware registry of AWS managed-service version * deprecation / end-of-support schedules. * * WHY THIS EXISTS: AWS periodically ends "standard support" for Lambda * runtimes, RDS/Aurora database engine versions, and EKS Kubernetes * versions. For RDS/Aurora and EKS, AWS auto-enrolls unmigrated resources * in a paid "Extended Support" tier rather than just cutting them off — * this is an easy-to-miss, often-expensive cost. Lambda runtimes have no * direct AWS surcharge but stop receiving security patches on a schedule. * * MAINTENANCE: the dates/prices below are a point-in-time snapshot taken * from AWS's own published support schedules. AWS adds new versions and * schedules on an ongoing basis, so this file needs periodic manual * refreshes. Sources (re-check periodically): * - https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html * - https://docs.aws.amazon.com/AmazonRDS/latest/PostgreSQLReleaseNotes/postgresql-release-calendar.html * - https://endoflife.date/amazon-rds-mysql / amazon-rds-postgresql / aws-lambda / amazon-elasticache-redis / amazon-elasticsearch * - https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html * - https://docs.aws.amazon.com/documentdb/latest/devguide/support-charges.html * - https://aws.amazon.com/blogs/database/introducing-extended-support-for-amazon-elasticache-version-4-and-version-5-for-redis-oss/ * - https://docs.aws.amazon.com/opensearch-service/latest/developerguide/service-software.html (Extended Support timeline) * Last reviewed: 2026-09-15. */ export type DeprecationStatus = "current" | "deprecating-soon" | "deprecated"; export declare const LAMBDA_RUNTIME_SUPPORT: Record; export declare function getLambdaRuntimeStatus(runtime: string, now?: Date): { status: DeprecationStatus; date: string; daysUntil: number; } | null; interface RdsVersionSupport { /** Matches EngineVersion when it starts with this prefix (e.g. "8.0") */ versionPrefix: string; standardSupportEndDate: string; /** USD per vCPU-hour, Extended Support years 1-2 */ vcpuHourRateYears1to2: number; /** USD per vCPU-hour, Extended Support year 3 */ vcpuHourRateYear3: number; } export declare const RDS_ENGINE_VERSION_SUPPORT: Record; /** * Approximate vCPU count from an RDS instance class, using the standard * size-suffix doubling convention (large=2, xlarge=4, 2xlarge=8, ...). * Burstable t3/t4g micro/small/medium are 2 vCPUs (with CPU credits), same * as the modern-generation minimum. This is an approximation for cost * estimation, consistent with the hourly-price approximations already used * elsewhere in the rds module. */ export declare function estimateRdsInstanceVcpuCount(instanceClass: string): number; export declare function getRdsExtendedSupportStatus(engine: string | undefined, engineVersion: string | undefined, vcpuCount: number, now?: Date): { status: DeprecationStatus; date: string; daysUntil: number; estimatedMonthlySurchargeUsd: number; } | null; export declare const EKS_VERSION_SUPPORT: Record; export declare function getEksVersionStatus(version: string, now?: Date): { status: DeprecationStatus; date: string; daysUntil: number; estimatedMonthlySurchargeUsd: number; } | null; export declare const ELASTICACHE_ENGINE_VERSION_SUPPORT: Record; export declare function getElastiCacheEngineSupportStatus(engine: string | undefined, engineVersion: string | undefined, hourlyPricePerNode: number, numNodes: number, now?: Date): { status: DeprecationStatus; date: string; daysUntil: number; estimatedMonthlySurchargeUsd: number; } | null; interface OpenSearchVersionSupport { versionPrefix: string; standardSupportEndDate: string; } export declare const OPENSEARCH_ENGINE_VERSION_SUPPORT: Record; /** Parses "Elasticsearch_7.10" / "OpenSearch_2.11" into { engine, version } */ export declare function parseOpenSearchEngineVersion(engineVersion: string): { engine: string; version: string; } | null; export declare function getOpenSearchEngineSupportStatus(engineVersion: string | undefined, hourlyPricePerInstance: number, instanceCount: number, now?: Date): { status: DeprecationStatus; date: string; daysUntil: number; estimatedMonthlySurchargeUsd: number; } | null; export {};