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 `RestoreTableFromRecoveryPoint` operation (IAM actions
8 * `redshift-serverless:RestoreTableFromRecoveryPoint`).
9 *
10 * Restores a single table from an automatic recovery point into the bound
11 * {@link Namespace} under a new name. Provide the implementation with
12 * `Effect.provide(AWS.RedshiftServerless.RestoreTableFromRecoveryPointHttp)`.
13 * ### Restoring Data
14 * **Example:** Restore One Table from a Recovery Point
15 * ```typescript
16 * // init — resolve the runtime client
17 * const restoreTable = yield* AWS.RedshiftServerless.RestoreTableFromRecoveryPoint(namespace);
18 *
19 * yield* restoreTable({
20 * workgroupName,
21 * recoveryPointId,
22 * sourceDatabaseName: "dev",
23 * sourceTableName: "orders",
24 * newTableName: "orders_restored",
25 * });
26 * ```
27 *
28 * @binding
29 */
30export interface RestoreTableFromRecoveryPoint extends Binding.Service<
31 RestoreTableFromRecoveryPoint,
32 "AWS.RedshiftServerless.RestoreTableFromRecoveryPoint",
33 (
34 namespace: Namespace,
35 ) => Effect.Effect<
36 (
37 request: Omit<
38 serverless.RestoreTableFromRecoveryPointRequest,
39 "namespaceName"
40 >,
41 ) => Effect.Effect<
42 serverless.RestoreTableFromRecoveryPointResponse,
43 serverless.RestoreTableFromRecoveryPointError
44 >
45 >
46> {}
47export const RestoreTableFromRecoveryPoint =
48 Binding.Service<RestoreTableFromRecoveryPoint>(
49 "AWS.RedshiftServerless.RestoreTableFromRecoveryPoint",
50 );