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:ListInstances` — lists the bound cluster's EC2 instances with state, private/public addresses, and group/fleet membership.
8 * ### Inspecting the Cluster
9 * **Example:** List Running Core Instances
10 * ```typescript
11 * const listInstances = yield* AWS.EMR.ListInstances(cluster);
12 *
13 * const { Instances } = yield* listInstances({
14 * InstanceGroupTypes: ["CORE"],
15 * InstanceStates: ["RUNNING"],
16 * });
17 * ```
18 *
19 * @binding
20 */
21export interface ListInstances extends Binding.Service<
22 ListInstances,
23 "AWS.EMR.ListInstances",
24 <C extends Cluster>(
25 cluster: C,
26 ) => Effect.Effect<
27 (
28 request?: Omit<SVC.ListInstancesInput, "ClusterId">,
29 ) => Effect.Effect<SVC.ListInstancesOutput, SVC.ListInstancesError>
30 >
31> {}
32export const ListInstances = Binding.Service<ListInstances>(
33 "AWS.EMR.ListInstances",
34);