1import type * as eks from "@distilled.cloud/aws/eks";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for `eks:ListClusters`.
7 *
8 * Enumerates the EKS cluster names in the caller's account and region.
9 * `eks:ListClusters` is granted on `*` — the operation is account-scoped and takes no resource.
10 * Provide the implementation with
11 * `Effect.provide(AWS.EKS.ListClustersHttp)`.
12 * ### Discovering Clusters
13 * **Example:** List All Clusters
14 * ```typescript
15 * // init
16 * const listClusters = yield* AWS.EKS.ListClusters();
17 *
18 * // runtime
19 * const { clusters } = yield* listClusters();
20 * ```
21 *
22 * @binding
23 */
24export interface ListClusters extends Binding.Service<
25 ListClusters,
26 "AWS.EKS.ListClusters",
27 () => Effect.Effect<
28 (
29 request?: eks.ListClustersRequest,
30 ) => Effect.Effect<eks.ListClustersResponse, eks.ListClustersError>
31 >
32> {}
33export const ListClusters = Binding.Service<ListClusters>(
34 "AWS.EKS.ListClusters",
35);