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 DescribeApplicationRequest extends Omit<
7 SVC.DescribeApplicationRequest,
8 "ApplicationName"
9> {}
10
11/**
12 * Runtime binding for `kinesisanalytics:DescribeApplication` — reads the
13 * bound application's full detail (status, version, runtime environment,
14 * configuration), the building block of ops automation that reacts to the
15 * Flink job's lifecycle state.
16 * ### Observing the Application
17 * **Example:** Check whether the Flink job is running
18 * ```typescript
19 * const describeApplication = yield* AWS.KinesisAnalyticsV2.DescribeApplication(app);
20 *
21 * const { ApplicationDetail } = yield* describeApplication();
22 * const running = ApplicationDetail.ApplicationStatus === "RUNNING";
23 * ```
24 *
25 * @binding
26 */
27export interface DescribeApplication extends Binding.Service<
28 DescribeApplication,
29 "AWS.KinesisAnalyticsV2.DescribeApplication",
30 <A extends Application>(
31 application: A,
32 ) => Effect.Effect<
33 (
34 request?: DescribeApplicationRequest,
35 ) => Effect.Effect<
36 SVC.DescribeApplicationResponse,
37 SVC.DescribeApplicationError
38 >
39 >
40> {}
41export const DescribeApplication = Binding.Service<DescribeApplication>(
42 "AWS.KinesisAnalyticsV2.DescribeApplication",
43);