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 CreateApplicationPresignedUrlRequest extends Omit<
7 SVC.CreateApplicationPresignedUrlRequest,
8 "ApplicationName"
9> {}
10
11/**
12 * Runtime binding for `kinesisanalytics:CreateApplicationPresignedUrl` —
13 * mints a short-lived URL to the bound application's extension (the Flink
14 * dashboard, or the Zeppelin UI of a Studio notebook), e.g. to hand an
15 * operator a dashboard link from an internal tool. The URL must be used
16 * within 3 minutes; the session it opens lives for
17 * `SessionExpirationDurationInSeconds` (default 12 hours).
18 * ### Operating the Application
19 * **Example:** Mint a Flink dashboard link
20 * ```typescript
21 * const createPresignedUrl = yield* AWS.KinesisAnalyticsV2.CreateApplicationPresignedUrl(app);
22 *
23 * const { AuthorizedUrl } = yield* createPresignedUrl({
24 * UrlType: "FLINK_DASHBOARD_URL",
25 * SessionExpirationDurationInSeconds: 1800,
26 * });
27 * ```
28 *
29 * @binding
30 */
31export interface CreateApplicationPresignedUrl extends Binding.Service<
32 CreateApplicationPresignedUrl,
33 "AWS.KinesisAnalyticsV2.CreateApplicationPresignedUrl",
34 <A extends Application>(
35 application: A,
36 ) => Effect.Effect<
37 (
38 request: CreateApplicationPresignedUrlRequest,
39 ) => Effect.Effect<
40 SVC.CreateApplicationPresignedUrlResponse,
41 SVC.CreateApplicationPresignedUrlError
42 >
43 >
44> {}
45export const CreateApplicationPresignedUrl =
46 Binding.Service<CreateApplicationPresignedUrl>(
47 "AWS.KinesisAnalyticsV2.CreateApplicationPresignedUrl",
48 );