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 StartApplicationRequest extends Omit<
7 SVC.StartApplicationRequest,
8 "ApplicationName"
9> {}
10
11/**
12 * Runtime binding for `kinesisanalytics:StartApplication` — starts the
13 * bound Flink application, optionally restoring from a snapshot via
14 * `RunConfiguration`. The returned `OperationId` can be polled with
15 * {@link DescribeApplicationOperation}.
16 * ### Operating the Application
17 * **Example:** Start the Flink job from its latest snapshot
18 * ```typescript
19 * const startApplication = yield* AWS.KinesisAnalyticsV2.StartApplication(app);
20 *
21 * const { OperationId } = yield* startApplication({
22 * RunConfiguration: {
23 * ApplicationRestoreConfiguration: {
24 * ApplicationRestoreType: "RESTORE_FROM_LATEST_SNAPSHOT",
25 * },
26 * },
27 * });
28 * ```
29 *
30 * @binding
31 */
32export interface StartApplication extends Binding.Service<
33 StartApplication,
34 "AWS.KinesisAnalyticsV2.StartApplication",
35 <A extends Application>(
36 application: A,
37 ) => Effect.Effect<
38 (
39 request?: StartApplicationRequest,
40 ) => Effect.Effect<SVC.StartApplicationResponse, SVC.StartApplicationError>
41 >
42> {}
43export const StartApplication = Binding.Service<StartApplication>(
44 "AWS.KinesisAnalyticsV2.StartApplication",
45);