1import type * as SVC from "@distilled.cloud/aws/emr";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { Cluster } from "./Cluster.ts";
5
6/**
7 * Runtime binding for `elasticmapreduce:GetSessionEndpoint` — resolves the Spark Connect endpoint URL and a time-limited auth token for an interactive session on the bound cluster. The returned `AuthToken` is `Redacted` — unwrap with `Redacted.value`.
8 * ### Interactive Sessions
9 * **Example:** Connect a Spark Client
10 * ```typescript
11 * const getEndpoint = yield* AWS.EMR.GetSessionEndpoint(cluster);
12 *
13 * const { Endpoint, AuthToken } = yield* getEndpoint({
14 * SessionId: sessionId,
15 * });
16 * ```
17 *
18 * @binding
19 */
20export interface GetSessionEndpoint extends Binding.Service<
21 GetSessionEndpoint,
22 "AWS.EMR.GetSessionEndpoint",
23 <C extends Cluster>(
24 cluster: C,
25 ) => Effect.Effect<
26 (
27 request: Omit<SVC.GetSessionEndpointInput, "ClusterId">,
28 ) => Effect.Effect<
29 SVC.GetSessionEndpointOutput,
30 SVC.GetSessionEndpointError
31 >
32 >
33> {}
34export const GetSessionEndpoint = Binding.Service<GetSessionEndpoint>(
35 "AWS.EMR.GetSessionEndpoint",
36);