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:GetSession` — reads an interactive session of the bound cluster — state, engine configuration, and timeline.
8 * ### Interactive Sessions
9 * **Example:** Poll a Session's State
10 * ```typescript
11 * const getSession = yield* AWS.EMR.GetSession(cluster);
12 *
13 * const { Session } = yield* getSession({ SessionId: sessionId });
14 * // Session.State: SUBMITTED | STARTING | IDLE | BUSY | …
15 * ```
16 *
17 * @binding
18 */
19export interface GetSession extends Binding.Service<
20 GetSession,
21 "AWS.EMR.GetSession",
22 <C extends Cluster>(
23 cluster: C,
24 ) => Effect.Effect<
25 (
26 request: Omit<SVC.GetSessionInput, "ClusterId">,
27 ) => Effect.Effect<SVC.GetSessionOutput, SVC.GetSessionError>
28 >
29> {}
30export const GetSession = Binding.Service<GetSession>("AWS.EMR.GetSession");