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 DescribeApplicationSnapshotRequest extends Omit<
7 SVC.DescribeApplicationSnapshotRequest,
8 "ApplicationName"
9> {}
10
11/**
12 * Runtime binding for `kinesisanalytics:DescribeApplicationSnapshot` —
13 * reads a snapshot's status (`CREATING` → `READY` / `FAILED`), e.g. to poll
14 * a savepoint taken with {@link CreateApplicationSnapshot} to completion.
15 * ### Managing Snapshots
16 * **Example:** Poll a snapshot until READY
17 * ```typescript
18 * const describeSnapshot = yield* AWS.KinesisAnalyticsV2.DescribeApplicationSnapshot(app);
19 *
20 * const { SnapshotDetails } = yield* describeSnapshot({
21 * SnapshotName: "pre-deploy",
22 * });
23 * ```
24 *
25 * @binding
26 */
27export interface DescribeApplicationSnapshot extends Binding.Service<
28 DescribeApplicationSnapshot,
29 "AWS.KinesisAnalyticsV2.DescribeApplicationSnapshot",
30 <A extends Application>(
31 application: A,
32 ) => Effect.Effect<
33 (
34 request: DescribeApplicationSnapshotRequest,
35 ) => Effect.Effect<
36 SVC.DescribeApplicationSnapshotResponse,
37 SVC.DescribeApplicationSnapshotError
38 >
39 >
40> {}
41export const DescribeApplicationSnapshot =
42 Binding.Service<DescribeApplicationSnapshot>(
43 "AWS.KinesisAnalyticsV2.DescribeApplicationSnapshot",
44 );