1import type * as memorydb from "@distilled.cloud/aws/memorydb";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for the `DescribeEngineVersions` operation (IAM action
7 * `memorydb:DescribeEngineVersions`).
8 *
9 * Lists the engine versions MemoryDB supports (redis/valkey) and their
10 * parameter group families — e.g. upgrade automation that checks whether a
11 * newer engine version is available before scheduling a cluster update.
12 * Provide the implementation with
13 * `Effect.provide(AWS.MemoryDB.DescribeEngineVersionsHttp)`.
14 * ### Applying Service Updates
15 * **Example:** List Supported Valkey Versions
16 * ```typescript
17 * const describeEngineVersions = yield* MemoryDB.DescribeEngineVersions();
18 *
19 * const page = yield* describeEngineVersions({ Engine: "valkey" });
20 * // page.EngineVersions[0].EngineVersion
21 * ```
22 *
23 * @binding
24 */
25export interface DescribeEngineVersions extends Binding.Service<
26 DescribeEngineVersions,
27 "AWS.MemoryDB.DescribeEngineVersions",
28 () => Effect.Effect<
29 (
30 request?: memorydb.DescribeEngineVersionsRequest,
31 ) => Effect.Effect<
32 memorydb.DescribeEngineVersionsResponse,
33 memorydb.DescribeEngineVersionsError
34 >
35 >
36> {}
37export const DescribeEngineVersions = Binding.Service<DescribeEngineVersions>(
38 "AWS.MemoryDB.DescribeEngineVersions",
39);