1import type * as iotdata from "@distilled.cloud/aws/iot-data-plane";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { Thing } from "./Thing.ts";
5
6export interface ListNamedShadowsForThingRequest extends Omit<
7 iotdata.ListNamedShadowsForThingRequest,
8 "thingName"
9> {}
10
11/**
12 * Runtime binding for the IoT data-plane `ListNamedShadowsForThing`
13 * operation (IAM action `iot:ListNamedShadowsForThing`).
14 *
15 * Bind it to a {@link Thing} to list the thing's named shadows — the thing
16 * name is injected automatically. Provide the implementation with
17 * `Effect.provide(AWS.IoT.ListNamedShadowsForThingHttp)`.
18 * ### Device Shadows
19 * **Example:** List Named Shadows
20 * ```typescript
21 * const listShadows = yield* AWS.IoT.ListNamedShadowsForThing(thing);
22 *
23 * const { results } = yield* listShadows();
24 * ```
25 *
26 * @binding
27 */
28export interface ListNamedShadowsForThing extends Binding.Service<
29 ListNamedShadowsForThing,
30 "AWS.IoT.ListNamedShadowsForThing",
31 (
32 thing: Thing,
33 ) => Effect.Effect<
34 (
35 request?: ListNamedShadowsForThingRequest,
36 ) => Effect.Effect<
37 iotdata.ListNamedShadowsForThingResponse,
38 iotdata.ListNamedShadowsForThingError
39 >
40 >
41> {}
42
43export const ListNamedShadowsForThing =
44 Binding.Service<ListNamedShadowsForThing>("AWS.IoT.ListNamedShadowsForThing");