1import type * as deadline from "@distilled.cloud/aws/deadline";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { Queue } from "./Queue.ts";
5
6/**
7 * Runtime binding for `deadline:ListSessionActions`.
8 *
9 * Lists the session actions (environment enter/exit, task runs, attachment
10 * syncs) recorded for a job in the bound {@link Queue}, optionally filtered
11 * by `sessionId` or `taskId`. The queue's `farmId`/`queueId` are injected
12 * from the binding. Provide the implementation with
13 * `Effect.provide(AWS.Deadline.ListSessionActionsHttp)`.
14 * ### Monitoring Sessions
15 * **Example:** List A Job's Session Actions
16 * ```typescript
17 * // init — bind the operation to the queue
18 * const listSessionActions = yield* AWS.Deadline.ListSessionActions(queue);
19 *
20 * // runtime
21 * const { sessionActions } = yield* listSessionActions({ jobId });
22 * ```
23 *
24 * @binding
25 */
26export interface ListSessionActions extends Binding.Service<
27 ListSessionActions,
28 "AWS.Deadline.ListSessionActions",
29 (
30 queue: Queue,
31 ) => Effect.Effect<
32 (
33 request: Omit<deadline.ListSessionActionsRequest, "farmId" | "queueId">,
34 ) => Effect.Effect<
35 deadline.ListSessionActionsResponse,
36 deadline.ListSessionActionsError
37 >
38 >
39> {}
40export const ListSessionActions = Binding.Service<ListSessionActions>(
41 "AWS.Deadline.ListSessionActions",
42);