1import type * as docdbelastic from "@distilled.cloud/aws/docdb-elastic";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for the `ListClusterSnapshots` operation (IAM action
7 * `docdb-elastic:ListClusterSnapshots`).
8 *
9 * Lists the account's elastic-cluster snapshots (one page per call —
10 * `nextToken` continues), optionally filtered to one cluster's ARN or to
11 * `manual`/`automated` snapshots. Provide the implementation with
12 * `Effect.provide(AWS.DocDBElastic.ListClusterSnapshotsHttp)`.
13 * ### Managing Snapshots
14 * **Example:** List a Cluster's Manual Snapshots
15 * ```typescript
16 * const listSnapshots = yield* DocDBElastic.ListClusterSnapshots();
17 *
18 * const page = yield* listSnapshots({
19 * clusterArn: cluster.clusterArn,
20 * snapshotType: "manual",
21 * });
22 * for (const snapshot of page.snapshots ?? []) {
23 * yield* Effect.logInfo(`${snapshot.snapshotName}: ${snapshot.status}`);
24 * }
25 * ```
26 *
27 * @binding
28 */
29export interface ListClusterSnapshots extends Binding.Service<
30 ListClusterSnapshots,
31 "AWS.DocDBElastic.ListClusterSnapshots",
32 () => Effect.Effect<
33 (
34 request?: docdbelastic.ListClusterSnapshotsInput,
35 ) => Effect.Effect<
36 docdbelastic.ListClusterSnapshotsOutput,
37 docdbelastic.ListClusterSnapshotsError
38 >
39 >
40> {}
41export const ListClusterSnapshots = Binding.Service<ListClusterSnapshots>(
42 "AWS.DocDBElastic.ListClusterSnapshots",
43);