1import * as iotw from "@distilled.cloud/aws/iot-wireless";
2import * as Layer from "effect/Layer";
3import { makeIotWirelessDeviceHttpBinding } from "./BindingHttp.ts";
4import {
5 GetResourcePosition,
6 type GetResourcePositionRequest,
7} from "./GetResourcePosition.ts";
8
9export const GetResourcePositionHttp = Layer.effect(
10 GetResourcePosition,
11 makeIotWirelessDeviceHttpBinding({
12 capability: "GetResourcePosition",
13 iamActions: ["iotwireless:GetResourcePosition"],
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.getResourcePosition,
18 prepare: (
19 request: GetResourcePositionRequest | undefined,
20 wirelessDeviceId,
21 ) => ({
22 ...request,
23 ResourceIdentifier: wirelessDeviceId,
24 ResourceType: "WirelessDevice" as const,
25 }),
26 }),
27);