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 RollbackApplicationRequest extends Omit<
7 SVC.RollbackApplicationRequest,
8 "ApplicationName"
9> {}
10
11/**
12 * Runtime binding for `kinesisanalytics:RollbackApplication` — reverts the
13 * bound application to its previous running version (with the state from
14 * the latest snapshot when available), e.g. an automated bad-deploy
15 * remediation. The `CurrentApplicationVersionId` acts as a compare-and-set
16 * token; read it fresh with {@link DescribeApplication}.
17 * ### Operating the Application
18 * **Example:** Roll back a bad configuration update
19 * ```typescript
20 * const describeApplication = yield* AWS.KinesisAnalyticsV2.DescribeApplication(app);
21 * const rollbackApplication = yield* AWS.KinesisAnalyticsV2.RollbackApplication(app);
22 *
23 * const { ApplicationDetail } = yield* describeApplication();
24 * yield* rollbackApplication({
25 * CurrentApplicationVersionId: ApplicationDetail.ApplicationVersionId,
26 * });
27 * ```
28 *
29 * @binding
30 */
31export interface RollbackApplication extends Binding.Service<
32 RollbackApplication,
33 "AWS.KinesisAnalyticsV2.RollbackApplication",
34 <A extends Application>(
35 application: A,
36 ) => Effect.Effect<
37 (
38 request: RollbackApplicationRequest,
39 ) => Effect.Effect<
40 SVC.RollbackApplicationResponse,
41 SVC.RollbackApplicationError
42 >
43 >
44> {}
45export const RollbackApplication = Binding.Service<RollbackApplication>(
46 "AWS.KinesisAnalyticsV2.RollbackApplication",
47);