1import type * as iotfleetwise from "@distilled.cloud/aws/iotfleetwise";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { Fleet } from "./Fleet.ts";
5
6/**
7 * `AssociateVehicleFleet` request with `fleetId` injected from the bound
8 * fleet.
9 */
10export interface AssociateVehicleFleetRequest extends Omit<
11 iotfleetwise.AssociateVehicleFleetRequest,
12 "fleetId"
13> {}
14
15/**
16 * Runtime binding for the `AssociateVehicleFleet` operation (IAM action
17 * `iotfleetwise:AssociateVehicleFleet`), scoped to one {@link Fleet}.
18 *
19 * Adds a vehicle to the bound fleet at runtime — e.g. a provisioning
20 * Lambda enrolling freshly-registered vehicles. Provide the implementation
21 * with `Effect.provide(AWS.IoTFleetWise.AssociateVehicleFleetHttp)`.
22 *
23 * ### Fleet Membership
24 * **Example:** Enroll a Vehicle into the Fleet
25 * ```typescript
26 * const associateVehicleFleet = yield* IoTFleetWise.AssociateVehicleFleet(fleet);
27 *
28 * yield* associateVehicleFleet({ vehicleName: "vin-1HGBH41JXMN109186" });
29 * ```
30 *
31 * @binding
32 */
33export interface AssociateVehicleFleet extends Binding.Service<
34 AssociateVehicleFleet,
35 "AWS.IoTFleetWise.AssociateVehicleFleet",
36 (
37 fleet: Fleet,
38 ) => Effect.Effect<
39 (
40 request: AssociateVehicleFleetRequest,
41 ) => Effect.Effect<
42 iotfleetwise.AssociateVehicleFleetResponse,
43 iotfleetwise.AssociateVehicleFleetError
44 >
45 >
46> {}
47export const AssociateVehicleFleet = Binding.Service<AssociateVehicleFleet>(
48 "AWS.IoTFleetWise.AssociateVehicleFleet",
49);