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:DescribeStep` — reads one step of the bound cluster — status, config, and failure details.
8 * ### Running Steps
9 * **Example:** Poll a Step's State
10 * ```typescript
11 * const describeStep = yield* AWS.EMR.DescribeStep(cluster);
12 *
13 * const { Step } = yield* describeStep({ StepId: stepId });
14 * // Step.Status.State: PENDING | RUNNING | COMPLETED | FAILED | …
15 * ```
16 *
17 * @binding
18 */
19export interface DescribeStep extends Binding.Service<
20 DescribeStep,
21 "AWS.EMR.DescribeStep",
22 <C extends Cluster>(
23 cluster: C,
24 ) => Effect.Effect<
25 (
26 request: Omit<SVC.DescribeStepInput, "ClusterId">,
27 ) => Effect.Effect<SVC.DescribeStepOutput, SVC.DescribeStepError>
28 >
29> {}
30export const DescribeStep = Binding.Service<DescribeStep>(
31 "AWS.EMR.DescribeStep",
32);