1import type * as cloudhsm from "@distilled.cloud/aws/cloudhsm-v2";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for the `DeleteBackup` operation (IAM action
7 * `cloudhsm:DeleteBackup`).
8 *
9 * Marks a CloudHSM backup for deletion — it enters `PENDING_DELETION` and
10 * can still be recovered with `RestoreBackup` for 7 days. Pair with
11 * `DescribeBackups` to build a backup-pruning job. Provide the
12 * implementation with `Effect.provide(AWS.CloudHSMV2.DeleteBackupHttp)`.
13 * ### Managing Backups
14 * **Example:** Prune A Backup
15 * ```typescript
16 * const deleteBackup = yield* AWS.CloudHSMV2.DeleteBackup();
17 *
18 * const deleted = yield* deleteBackup({ BackupId: backupId });
19 * // deleted.Backup?.BackupState === "PENDING_DELETION"
20 * ```
21 *
22 * @binding
23 */
24export interface DeleteBackup extends Binding.Service<
25 DeleteBackup,
26 "AWS.CloudHSMV2.DeleteBackup",
27 () => Effect.Effect<
28 (
29 request: cloudhsm.DeleteBackupRequest,
30 ) => Effect.Effect<
31 cloudhsm.DeleteBackupResponse,
32 cloudhsm.DeleteBackupError
33 >
34 >
35> {}
36export const DeleteBackup = Binding.Service<DeleteBackup>(
37 "AWS.CloudHSMV2.DeleteBackup",
38);