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 * `ListRecoveryPointsByBackupVault` request with `BackupVaultName` injected
8 * from the bound {@link BackupVault}.
9 */
10export interface ListRecoveryPointsByBackupVaultRequest extends Omit<
11 backup.ListRecoveryPointsByBackupVaultInput,
12 "BackupVaultName"
13> {}
14
15/**
16 * Runtime binding for the `ListRecoveryPointsByBackupVault` operation (IAM
17 * action `backup:ListRecoveryPointsByBackupVault`, scoped to the vault ARN).
18 *
19 * Lists the recovery points stored in the bound {@link BackupVault}, with
20 * optional filters (resource ARN, resource type, plan, time window). Provide
21 * the implementation with
22 * `Effect.provide(AWS.Backup.ListRecoveryPointsByBackupVaultHttp)`.
23 * ### Recovery Points
24 * **Example:** List A Vault's Recovery Points
25 * ```typescript
26 * const listRecoveryPoints =
27 * yield* AWS.Backup.ListRecoveryPointsByBackupVault(vault);
28 *
29 * const page = yield* listRecoveryPoints({ MaxResults: 25 });
30 * ```
31 *
32 * @binding
33 */
34export interface ListRecoveryPointsByBackupVault extends Binding.Service<
35 ListRecoveryPointsByBackupVault,
36 "AWS.Backup.ListRecoveryPointsByBackupVault",
37 (
38 vault: BackupVault,
39 ) => Effect.Effect<
40 (
41 request?: ListRecoveryPointsByBackupVaultRequest,
42 ) => Effect.Effect<
43 backup.ListRecoveryPointsByBackupVaultOutput,
44 backup.ListRecoveryPointsByBackupVaultError
45 >
46 >
47> {}
48export const ListRecoveryPointsByBackupVault =
49 Binding.Service<ListRecoveryPointsByBackupVault>(
50 "AWS.Backup.ListRecoveryPointsByBackupVault",
51 );