1import type * as sfn from "@distilled.cloud/aws/sfn";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { StateMachine } from "./StateMachine.ts";
5
6export interface DescribeMapRunRequest extends sfn.DescribeMapRunInput {}
7
8/**
9 * Runtime binding for `states:DescribeMapRun`.
10 *
11 * Returns a Distributed Map Run's status, item counts, and configuration.
12 * IAM access is scoped to Map Runs of the bound {@link StateMachine};
13 * obtain `mapRunArn`s from `ListMapRuns`.
14 * ### Distributed Map Runs
15 * **Example:** Inspect a Map Run's progress
16 * ```typescript
17 * const describeMapRun = yield* StepFunctions.DescribeMapRun(machine);
18 *
19 * const mapRun = yield* describeMapRun({ mapRunArn });
20 * // mapRun.status, mapRun.itemCounts.succeeded, ...
21 * ```
22 *
23 * @binding
24 */
25export interface DescribeMapRun extends Binding.Service<
26 DescribeMapRun,
27 "AWS.StepFunctions.DescribeMapRun",
28 (
29 stateMachine: StateMachine,
30 ) => Effect.Effect<
31 (
32 request: DescribeMapRunRequest,
33 ) => Effect.Effect<sfn.DescribeMapRunOutput, sfn.DescribeMapRunError>
34 >
35> {}
36export const DescribeMapRun = Binding.Service<DescribeMapRun>(
37 "AWS.StepFunctions.DescribeMapRun",
38);