1import type * as fsx from "@distilled.cloud/aws/fsx";
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 * `fsx:DeleteBackup` on `*` — runtime-created backups have ARNs unknowable
8 * at deploy time).
9 *
10 * Deletes an FSx backup by id — the teardown half of a runtime backup
11 * rotation built with {@link CreateBackup}. Deleting an already-deleted
12 * backup surfaces the typed `BackupNotFound`. Provide the implementation
13 * with `Effect.provide(AWS.FSx.DeleteBackupHttp)`.
14 * ### Managing Backups at Runtime
15 * **Example:** Rotate out an expired backup
16 * ```typescript
17 * const deleteBackup = yield* AWS.FSx.DeleteBackup();
18 *
19 * yield* deleteBackup({ BackupId: expired.BackupId! }).pipe(
20 * Effect.catchTag("BackupNotFound", () => Effect.void),
21 * );
22 * ```
23 *
24 * @binding
25 */
26export interface DeleteBackup extends Binding.Service<
27 DeleteBackup,
28 "AWS.FSx.DeleteBackup",
29 () => Effect.Effect<
30 (
31 request: fsx.DeleteBackupRequest,
32 ) => Effect.Effect<fsx.DeleteBackupResponse, fsx.DeleteBackupError>
33 >
34> {}
35export const DeleteBackup = Binding.Service<DeleteBackup>(
36 "AWS.FSx.DeleteBackup",
37);