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:ListJobParameterDefinitions`.
8 *
9 * Lists the parameter definitions a job's Open Job Description template
10 * declares (name, type, default, allowed values) for a job in the bound
11 * {@link Queue} — useful to introspect what a resubmission would accept.
12 * The queue's `farmId`/`queueId` are injected from the binding. Provide the
13 * implementation with
14 * `Effect.provide(AWS.Deadline.ListJobParameterDefinitionsHttp)`.
15 * ### Monitoring Jobs
16 * **Example:** Introspect A Job's Parameters
17 * ```typescript
18 * // init — bind the operation to the queue
19 * const listJobParameterDefinitions =
20 * yield* AWS.Deadline.ListJobParameterDefinitions(queue);
21 *
22 * // runtime
23 * const { jobParameterDefinitions } =
24 * yield* listJobParameterDefinitions({ jobId });
25 * ```
26 *
27 * @binding
28 */
29export interface ListJobParameterDefinitions extends Binding.Service<
30 ListJobParameterDefinitions,
31 "AWS.Deadline.ListJobParameterDefinitions",
32 (
33 queue: Queue,
34 ) => Effect.Effect<
35 (
36 request: Omit<
37 deadline.ListJobParameterDefinitionsRequest,
38 "farmId" | "queueId"
39 >,
40 ) => Effect.Effect<
41 deadline.ListJobParameterDefinitionsResponse,
42 deadline.ListJobParameterDefinitionsError
43 >
44 >
45> {}
46export const ListJobParameterDefinitions =
47 Binding.Service<ListJobParameterDefinitions>(
48 "AWS.Deadline.ListJobParameterDefinitions",
49 );