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 `GetClusterSnapshot` operation (IAM action
7 * `docdb-elastic:GetClusterSnapshot`).
8 *
9 * Reads one elastic-cluster snapshot by ARN — status, source cluster, and
10 * the network/encryption configuration captured at snapshot time. Snapshot
11 * ARNs embed server-generated UUIDs and are runtime data, so the grant spans
12 * the account's snapshots. Provide the implementation with
13 * `Effect.provide(AWS.DocDBElastic.GetClusterSnapshotHttp)`.
14 * ### Managing Snapshots
15 * **Example:** Poll a Snapshot Until Available
16 * ```typescript
17 * const getSnapshot = yield* DocDBElastic.GetClusterSnapshot();
18 *
19 * const result = yield* getSnapshot({ snapshotArn });
20 * // result.snapshot.status → "AVAILABLE"
21 * ```
22 *
23 * @binding
24 */
25export interface GetClusterSnapshot extends Binding.Service<
26 GetClusterSnapshot,
27 "AWS.DocDBElastic.GetClusterSnapshot",
28 () => Effect.Effect<
29 (
30 request: docdbelastic.GetClusterSnapshotInput,
31 ) => Effect.Effect<
32 docdbelastic.GetClusterSnapshotOutput,
33 docdbelastic.GetClusterSnapshotError
34 >
35 >
36> {}
37export const GetClusterSnapshot = Binding.Service<GetClusterSnapshot>(
38 "AWS.DocDBElastic.GetClusterSnapshot",
39);