1import type * as controltower from "@distilled.cloud/aws/controltower";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for `controltower:ListLandingZones`.
7 *
8 * An account-level operation that returns the organization's landing zone
9 * ARN (a landing zone is a singleton — the list has at most one entry).
10 * Useful for governance functions that discover the landing zone before
11 * reading its drift status. Provide the implementation with
12 * `Effect.provide(AWS.ControlTower.ListLandingZonesHttp)`.
13 * ### Inspecting the Landing Zone
14 * **Example:** Discover the Landing Zone ARN
15 * ```typescript
16 * // init — account-level binding takes no resource
17 * const listLandingZones = yield* AWS.ControlTower.ListLandingZones();
18 *
19 * // runtime
20 * const result = yield* listLandingZones();
21 * const arn = result.landingZones[0]?.arn;
22 * ```
23 *
24 * @binding
25 */
26export interface ListLandingZones extends Binding.Service<
27 ListLandingZones,
28 "AWS.ControlTower.ListLandingZones",
29 () => Effect.Effect<
30 (
31 request?: controltower.ListLandingZonesInput,
32 ) => Effect.Effect<
33 controltower.ListLandingZonesOutput,
34 controltower.ListLandingZonesError
35 >
36 >
37> {}
38
39export const ListLandingZones = Binding.Service<ListLandingZones>(
40 "AWS.ControlTower.ListLandingZones",
41);