1import type * as emrc from "@distilled.cloud/aws/emr-containers";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { JobTemplate } from "./JobTemplate.ts";
5
6/**
7 * Runtime binding for `emr-containers:DescribeJobTemplate`.
8 *
9 * Reads the bound {@link JobTemplate}'s stored `StartJobRun` values — the
10 * execution role, release label, job driver, and parameter configuration.
11 * The template ID is injected from the binding. Provide the implementation
12 * with `Effect.provide(AWS.EMRContainers.DescribeJobTemplateHttp)`.
13 * ### Job Templates
14 * **Example:** Read The Bound Template
15 * ```typescript
16 * // init — bind the operation to the template
17 * const describeJobTemplate =
18 * yield* AWS.EMRContainers.DescribeJobTemplate(template);
19 *
20 * // runtime
21 * const { jobTemplate } = yield* describeJobTemplate();
22 * yield* Effect.log(
23 * `template targets ${jobTemplate?.jobTemplateData.releaseLabel}`,
24 * );
25 * ```
26 *
27 * @binding
28 */
29export interface DescribeJobTemplate extends Binding.Service<
30 DescribeJobTemplate,
31 "AWS.EMRContainers.DescribeJobTemplate",
32 (
33 template: JobTemplate,
34 ) => Effect.Effect<
35 () => Effect.Effect<
36 emrc.DescribeJobTemplateResponse,
37 emrc.DescribeJobTemplateError
38 >
39 >
40> {}
41export const DescribeJobTemplate = Binding.Service<DescribeJobTemplate>(
42 "AWS.EMRContainers.DescribeJobTemplate",
43);