1import type * as iotw from "@distilled.cloud/aws/iot-wireless";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for `iotwireless:GetServiceEndpoint` — read the
7 * account's CUPS or LNS endpoint (and its server trust certificate) from a
8 * deployed Lambda or Task. Useful for gateway provisioning flows.
9 *
10 * ### Reading the Service Endpoint
11 * Provide the `GetServiceEndpointHttp` implementation layer on the Function
12 * effect, bind the capability in the init phase, then call the returned
13 * client at runtime.
14 *
15 * **Example:** Read the LNS Endpoint
16 * ```typescript
17 * // init
18 * const getEndpoint = yield* AWS.IoTWireless.GetServiceEndpoint();
19 *
20 * // runtime
21 * const { ServiceEndpoint } = yield* getEndpoint({ ServiceType: "LNS" });
22 * // on the Function effect:
23 * // .pipe(Effect.provide(AWS.IoTWireless.GetServiceEndpointHttp))
24 * ```
25 *
26 * @binding
27 */
28export interface GetServiceEndpoint extends Binding.Service<
29 GetServiceEndpoint,
30 "AWS.IoTWireless.GetServiceEndpoint",
31 () => Effect.Effect<
32 (
33 request?: iotw.GetServiceEndpointRequest,
34 ) => Effect.Effect<
35 iotw.GetServiceEndpointResponse,
36 iotw.GetServiceEndpointError
37 >
38 >
39> {}
40export const GetServiceEndpoint = Binding.Service<GetServiceEndpoint>(
41 "AWS.IoTWireless.GetServiceEndpoint",
42);