1import type * as backup from "@distilled.cloud/aws/backup";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { BackupVault } from "./BackupVault.ts";
5
6/**
7 * `DescribeRecoveryPoint` request with `BackupVaultName` injected from the
8 * bound {@link BackupVault}.
9 */
10export interface DescribeRecoveryPointRequest extends Omit<
11 backup.DescribeRecoveryPointInput,
12 "BackupVaultName"
13> {}
14
15/**
16 * Runtime binding for the `DescribeRecoveryPoint` operation (IAM action
17 * `backup:DescribeRecoveryPoint`).
18 *
19 * Returns metadata for a recovery point stored in the bound
20 * {@link BackupVault} — status, lifecycle, size, and restorability. Provide
21 * the implementation with
22 * `Effect.provide(AWS.Backup.DescribeRecoveryPointHttp)`.
23 * ### Recovery Points
24 * **Example:** Inspect A Recovery Point
25 * ```typescript
26 * const describeRecoveryPoint = yield* AWS.Backup.DescribeRecoveryPoint(vault);
27 *
28 * const point = yield* describeRecoveryPoint({
29 * RecoveryPointArn: recoveryPointArn,
30 * });
31 * yield* Effect.log(`status: ${point.Status}`);
32 * ```
33 *
34 * @binding
35 */
36export interface DescribeRecoveryPoint extends Binding.Service<
37 DescribeRecoveryPoint,
38 "AWS.Backup.DescribeRecoveryPoint",
39 (
40 vault: BackupVault,
41 ) => Effect.Effect<
42 (
43 request: DescribeRecoveryPointRequest,
44 ) => Effect.Effect<
45 backup.DescribeRecoveryPointOutput,
46 backup.DescribeRecoveryPointError
47 >
48 >
49> {}
50export const DescribeRecoveryPoint = Binding.Service<DescribeRecoveryPoint>(
51 "AWS.Backup.DescribeRecoveryPoint",
52);