1import * as iotw from "@distilled.cloud/aws/iot-wireless";
2import * as Layer from "effect/Layer";
3import { makeIotWirelessDeviceHttpBinding } from "./BindingHttp.ts";
4import {
5 UpdateResourcePosition,
6 type UpdateResourcePositionRequest,
7} from "./UpdateResourcePosition.ts";
8
9export const UpdateResourcePositionHttp = Layer.effect(
10 UpdateResourcePosition,
11 makeIotWirelessDeviceHttpBinding({
12 capability: "UpdateResourcePosition",
13 iamActions: ["iotwireless:UpdateResourcePosition"],
14 // IoT Wireless authorizes the position APIs against a type-level ARN
15 // (…:WirelessDevice/WirelessDevice) — the device ARN never matches.
16 resourceScope: "any",
17 operation: iotw.updateResourcePosition,
18 prepare: (request: UpdateResourcePositionRequest, wirelessDeviceId) => ({
19 ...request,
20 ResourceIdentifier: wirelessDeviceId,
21 ResourceType: "WirelessDevice" as const,
22 }),
23 }),
24);