1import type * as serverless from "@distilled.cloud/aws/redshift-serverless";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for the `ListSnapshots` operation (IAM actions
7 * `redshift-serverless:ListSnapshots`).
8 *
9 * Lists snapshots in the account, optionally filtered by namespace or
10 * time window — the discovery half of snapshot-rotation and DR tooling. Provide the implementation with
11 * `Effect.provide(AWS.RedshiftServerless.ListSnapshotsHttp)`.
12 * ### Managing Snapshots
13 * **Example:** List Snapshots for a Namespace
14 * ```typescript
15 * // init — resolve the runtime client
16 * const listSnapshots = yield* AWS.RedshiftServerless.ListSnapshots();
17 *
18 * const { snapshots } = yield* listSnapshots({ namespaceName });
19 * ```
20 *
21 * @binding
22 */
23export interface ListSnapshots extends Binding.Service<
24 ListSnapshots,
25 "AWS.RedshiftServerless.ListSnapshots",
26 () => Effect.Effect<
27 (
28 request?: serverless.ListSnapshotsRequest,
29 ) => Effect.Effect<
30 serverless.ListSnapshotsResponse,
31 serverless.ListSnapshotsError
32 >
33 >
34> {}
35export const ListSnapshots = Binding.Service<ListSnapshots>(
36 "AWS.RedshiftServerless.ListSnapshots",
37);