1import type * as SVC from "@distilled.cloud/aws/kinesis-analytics-v2";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { Application } from "./Application.ts";
5
6export interface DeleteApplicationSnapshotRequest extends Omit<
7 SVC.DeleteApplicationSnapshotRequest,
8 "ApplicationName"
9> {}
10
11/**
12 * Runtime binding for `kinesisanalytics:DeleteApplicationSnapshot` —
13 * deletes a snapshot of the bound application, e.g. pruning old savepoints
14 * on a retention schedule. The `SnapshotCreationTimestamp` acts as a
15 * compare-and-set token; read it fresh with
16 * {@link DescribeApplicationSnapshot} or {@link ListApplicationSnapshots}.
17 * ### Managing Snapshots
18 * **Example:** Prune a snapshot
19 * ```typescript
20 * const describeSnapshot = yield* AWS.KinesisAnalyticsV2.DescribeApplicationSnapshot(app);
21 * const deleteSnapshot = yield* AWS.KinesisAnalyticsV2.DeleteApplicationSnapshot(app);
22 *
23 * const { SnapshotDetails } = yield* describeSnapshot({ SnapshotName: "old" });
24 * yield* deleteSnapshot({
25 * SnapshotName: "old",
26 * SnapshotCreationTimestamp: SnapshotDetails.SnapshotCreationTimestamp!,
27 * });
28 * ```
29 *
30 * @binding
31 */
32export interface DeleteApplicationSnapshot extends Binding.Service<
33 DeleteApplicationSnapshot,
34 "AWS.KinesisAnalyticsV2.DeleteApplicationSnapshot",
35 <A extends Application>(
36 application: A,
37 ) => Effect.Effect<
38 (
39 request: DeleteApplicationSnapshotRequest,
40 ) => Effect.Effect<
41 SVC.DeleteApplicationSnapshotResponse,
42 SVC.DeleteApplicationSnapshotError
43 >
44 >
45> {}
46export const DeleteApplicationSnapshot =
47 Binding.Service<DeleteApplicationSnapshot>(
48 "AWS.KinesisAnalyticsV2.DeleteApplicationSnapshot",
49 );