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 * `DeleteRecoveryPoint` request with `BackupVaultName` injected from the
8 * bound {@link BackupVault}.
9 */
10export interface DeleteRecoveryPointRequest extends Omit<
11 backup.DeleteRecoveryPointInput,
12 "BackupVaultName"
13> {}
14
15/**
16 * Runtime binding for the `DeleteRecoveryPoint` operation (IAM action
17 * `backup:DeleteRecoveryPoint`).
18 *
19 * Deletes a recovery point from the bound {@link BackupVault} — e.g. a
20 * retention janitor pruning on-demand backups. Provide the implementation
21 * with `Effect.provide(AWS.Backup.DeleteRecoveryPointHttp)`.
22 * ### Recovery Points
23 * **Example:** Prune A Recovery Point
24 * ```typescript
25 * const deleteRecoveryPoint = yield* AWS.Backup.DeleteRecoveryPoint(vault);
26 *
27 * yield* deleteRecoveryPoint({ RecoveryPointArn: recoveryPointArn });
28 * ```
29 *
30 * @binding
31 */
32export interface DeleteRecoveryPoint extends Binding.Service<
33 DeleteRecoveryPoint,
34 "AWS.Backup.DeleteRecoveryPoint",
35 (
36 vault: BackupVault,
37 ) => Effect.Effect<
38 (
39 request: DeleteRecoveryPointRequest,
40 ) => Effect.Effect<
41 backup.DeleteRecoveryPointResponse,
42 backup.DeleteRecoveryPointError
43 >
44 >
45> {}
46export const DeleteRecoveryPoint = Binding.Service<DeleteRecoveryPoint>(
47 "AWS.Backup.DeleteRecoveryPoint",
48);