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:ModifyInstanceFleet` — retargets the bound cluster's instance fleet (on-demand/spot capacities, resize specifications).
8 * ### Scaling the Cluster
9 * **Example:** Retarget a Fleet
10 * ```typescript
11 * const modifyFleet = yield* AWS.EMR.ModifyInstanceFleet(cluster);
12 *
13 * yield* modifyFleet({
14 * InstanceFleet: {
15 * InstanceFleetId: fleetId,
16 * TargetOnDemandCapacity: 4,
17 * },
18 * });
19 * ```
20 *
21 * @binding
22 */
23export interface ModifyInstanceFleet extends Binding.Service<
24 ModifyInstanceFleet,
25 "AWS.EMR.ModifyInstanceFleet",
26 <C extends Cluster>(
27 cluster: C,
28 ) => Effect.Effect<
29 (
30 request: Omit<SVC.ModifyInstanceFleetInput, "ClusterId">,
31 ) => Effect.Effect<
32 SVC.ModifyInstanceFleetResponse,
33 SVC.ModifyInstanceFleetError
34 >
35 >
36> {}
37export const ModifyInstanceFleet = Binding.Service<ModifyInstanceFleet>(
38 "AWS.EMR.ModifyInstanceFleet",
39);