1import type * as neptune from "@distilled.cloud/aws/neptune";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for the `CopyDBClusterSnapshot` operation (IAM action
7 * `rds:CopyDBClusterSnapshot`).
8 *
9 * Copies a Neptune cluster snapshot — e.g. archive a nightly snapshot under
10 * a retention prefix, or copy it for cross-region disaster recovery. Provide
11 * the implementation with
12 * `Effect.provide(AWS.Neptune.CopyDBClusterSnapshotHttp)`.
13 * ### Managing Snapshots
14 * **Example:** Archive a Snapshot
15 * ```typescript
16 * const copyDBClusterSnapshot = yield* AWS.Neptune.CopyDBClusterSnapshot();
17 *
18 * yield* copyDBClusterSnapshot({
19 * SourceDBClusterSnapshotIdentifier: snapshotId,
20 * TargetDBClusterSnapshotIdentifier: `${snapshotId}-archive`,
21 * });
22 * ```
23 *
24 * @binding
25 */
26export interface CopyDBClusterSnapshot extends Binding.Service<
27 CopyDBClusterSnapshot,
28 "AWS.Neptune.CopyDBClusterSnapshot",
29 () => Effect.Effect<
30 (
31 request?: neptune.CopyDBClusterSnapshotMessage,
32 ) => Effect.Effect<
33 neptune.CopyDBClusterSnapshotResult,
34 neptune.CopyDBClusterSnapshotError
35 >
36 >
37> {}
38export const CopyDBClusterSnapshot = Binding.Service<CopyDBClusterSnapshot>(
39 "AWS.Neptune.CopyDBClusterSnapshot",
40);