1import type * as serverless from "@distilled.cloud/aws/redshift-serverless";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { Namespace } from "./Namespace.ts";
5
6/**
7 * Runtime binding for the `RestoreFromRecoveryPoint` operation (IAM actions
8 * `redshift-serverless:RestoreFromRecoveryPoint`).
9 *
10 * Restores the bound {@link Namespace} from an automatic recovery point —
11 * point-in-time recovery within the last 24 hours. Provide the implementation with
12 * `Effect.provide(AWS.RedshiftServerless.RestoreFromRecoveryPointHttp)`.
13 * ### Restoring Data
14 * **Example:** Restore a Namespace from a Recovery Point
15 * ```typescript
16 * // init — resolve the runtime client
17 * const restore = yield* AWS.RedshiftServerless.RestoreFromRecoveryPoint(namespace);
18 *
19 * yield* restore({ workgroupName, recoveryPointId });
20 * ```
21 *
22 * @binding
23 */
24export interface RestoreFromRecoveryPoint extends Binding.Service<
25 RestoreFromRecoveryPoint,
26 "AWS.RedshiftServerless.RestoreFromRecoveryPoint",
27 (
28 namespace: Namespace,
29 ) => Effect.Effect<
30 (
31 request: Omit<
32 serverless.RestoreFromRecoveryPointRequest,
33 "namespaceName"
34 >,
35 ) => Effect.Effect<
36 serverless.RestoreFromRecoveryPointResponse,
37 serverless.RestoreFromRecoveryPointError
38 >
39 >
40> {}
41export const RestoreFromRecoveryPoint =
42 Binding.Service<RestoreFromRecoveryPoint>(
43 "AWS.RedshiftServerless.RestoreFromRecoveryPoint",
44 );