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:AddInstanceFleet` — adds a task instance fleet to the bound cluster (instance-fleet clusters only; TASK fleets can be added after launch).
8 * ### Scaling the Cluster
9 * **Example:** Add a Task Fleet
10 * ```typescript
11 * const addFleet = yield* AWS.EMR.AddInstanceFleet(cluster);
12 *
13 * const { InstanceFleetId } = yield* addFleet({
14 * InstanceFleet: {
15 * InstanceFleetType: "TASK",
16 * TargetSpotCapacity: 2,
17 * InstanceTypeConfigs: [{ InstanceType: "m5.xlarge" }],
18 * },
19 * });
20 * ```
21 *
22 * @binding
23 */
24export interface AddInstanceFleet extends Binding.Service<
25 AddInstanceFleet,
26 "AWS.EMR.AddInstanceFleet",
27 <C extends Cluster>(
28 cluster: C,
29 ) => Effect.Effect<
30 (
31 request: Omit<SVC.AddInstanceFleetInput, "ClusterId">,
32 ) => Effect.Effect<SVC.AddInstanceFleetOutput, SVC.AddInstanceFleetError>
33 >
34> {}
35export const AddInstanceFleet = Binding.Service<AddInstanceFleet>(
36 "AWS.EMR.AddInstanceFleet",
37);