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 `ConvertRecoveryPointToSnapshot` operation (IAM actions
7 * `redshift-serverless:ConvertRecoveryPointToSnapshot` +
8 * `redshift-serverless:TagResource`).
9 *
10 * Converts an automatic recovery point into a manual snapshot so it
11 * outlives the 24-hour recovery-point window. Provide the implementation with
12 * `Effect.provide(AWS.RedshiftServerless.ConvertRecoveryPointToSnapshotHttp)`.
13 * ### Working with Recovery Points
14 * **Example:** Preserve a Recovery Point as a Snapshot
15 * ```typescript
16 * // init — resolve the runtime client
17 * const convert = yield* AWS.RedshiftServerless.ConvertRecoveryPointToSnapshot();
18 *
19 * yield* convert({ recoveryPointId, snapshotName: `preserved-${runId}` });
20 * ```
21 *
22 * @binding
23 */
24export interface ConvertRecoveryPointToSnapshot extends Binding.Service<
25 ConvertRecoveryPointToSnapshot,
26 "AWS.RedshiftServerless.ConvertRecoveryPointToSnapshot",
27 () => Effect.Effect<
28 (
29 request: serverless.ConvertRecoveryPointToSnapshotRequest,
30 ) => Effect.Effect<
31 serverless.ConvertRecoveryPointToSnapshotResponse,
32 serverless.ConvertRecoveryPointToSnapshotError
33 >
34 >
35> {}
36export const ConvertRecoveryPointToSnapshot =
37 Binding.Service<ConvertRecoveryPointToSnapshot>(
38 "AWS.RedshiftServerless.ConvertRecoveryPointToSnapshot",
39 );