1import type * as elasticache from "@distilled.cloud/aws/elasticache";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for the `DescribeServerlessCaches` operation (IAM action
7 * `elasticache:DescribeServerlessCaches`).
8 *
9 * Reads the current status, endpoint, and configuration of the account's
10 * serverless caches — e.g. an operational health check that verifies a cache
11 * is `available` before routing traffic. Provide the implementation with
12 * `Effect.provide(AWS.ElastiCache.DescribeServerlessCachesHttp)`.
13 * ### Monitoring Caches
14 * **Example:** Check a Cache's Status
15 * ```typescript
16 * const describeCaches = yield* ElastiCache.DescribeServerlessCaches();
17 *
18 * const result = yield* describeCaches({ ServerlessCacheName: name });
19 * // result.ServerlessCaches?.[0]?.Status → "available"
20 * ```
21 *
22 * @binding
23 */
24export interface DescribeServerlessCaches extends Binding.Service<
25 DescribeServerlessCaches,
26 "AWS.ElastiCache.DescribeServerlessCaches",
27 () => Effect.Effect<
28 (
29 request?: elasticache.DescribeServerlessCachesRequest,
30 ) => Effect.Effect<
31 elasticache.DescribeServerlessCachesResponse,
32 elasticache.DescribeServerlessCachesError
33 >
34 >
35> {}
36export const DescribeServerlessCaches =
37 Binding.Service<DescribeServerlessCaches>(
38 "AWS.ElastiCache.DescribeServerlessCaches",
39 );