1import type * as redshift from "@distilled.cloud/aws/redshift";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for the `DeleteClusterSnapshot` operation (IAM action
7 * `redshift:DeleteClusterSnapshot`).
8 *
9 * Deletes a manual cluster snapshot by identifier — the cleanup half of a
10 * snapshot-rotation job (automated snapshots cannot be deleted; they expire
11 * with the retention period). Provide the implementation with
12 * `Effect.provide(AWS.Redshift.DeleteClusterSnapshotHttp)`.
13 * ### Managing Snapshots
14 * **Example:** Delete an Expired Manual Snapshot
15 * ```typescript
16 * const deleteClusterSnapshot = yield* AWS.Redshift.DeleteClusterSnapshot();
17 *
18 * yield* deleteClusterSnapshot({
19 * SnapshotIdentifier: expired.SnapshotIdentifier!,
20 * });
21 * ```
22 *
23 * @binding
24 */
25export interface DeleteClusterSnapshot extends Binding.Service<
26 DeleteClusterSnapshot,
27 "AWS.Redshift.DeleteClusterSnapshot",
28 () => Effect.Effect<
29 (
30 request: redshift.DeleteClusterSnapshotMessage,
31 ) => Effect.Effect<
32 redshift.DeleteClusterSnapshotResult,
33 redshift.DeleteClusterSnapshotError
34 >
35 >
36> {}
37export const DeleteClusterSnapshot = Binding.Service<DeleteClusterSnapshot>(
38 "AWS.Redshift.DeleteClusterSnapshot",
39);