1import type * as memorydb from "@distilled.cloud/aws/memorydb";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for the `DeleteSnapshot` operation (IAM action
7 * `memorydb:DeleteSnapshot` on the snapshot ARN wildcard — snapshot names
8 * are runtime data).
9 *
10 * Deletes a snapshot by name — e.g. pruning old on-demand backups from a
11 * scheduled cleanup Lambda. Provide the implementation with
12 * `Effect.provide(AWS.MemoryDB.DeleteSnapshotHttp)`.
13 * ### Managing Snapshots
14 * **Example:** Delete an Old Snapshot
15 * ```typescript
16 * const deleteSnapshot = yield* MemoryDB.DeleteSnapshot();
17 *
18 * yield* deleteSnapshot({ SnapshotName: "pre-migration" }).pipe(
19 * Effect.catchTag("SnapshotNotFoundFault", () => Effect.void),
20 * );
21 * ```
22 *
23 * @binding
24 */
25export interface DeleteSnapshot extends Binding.Service<
26 DeleteSnapshot,
27 "AWS.MemoryDB.DeleteSnapshot",
28 () => Effect.Effect<
29 (
30 request: memorydb.DeleteSnapshotRequest,
31 ) => Effect.Effect<
32 memorydb.DeleteSnapshotResponse,
33 memorydb.DeleteSnapshotError
34 >
35 >
36> {}
37export const DeleteSnapshot = Binding.Service<DeleteSnapshot>(
38 "AWS.MemoryDB.DeleteSnapshot",
39);