1import type * as route53 from "@distilled.cloud/aws/route-53";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for the `ListHostedZones` operation (IAM action
7 * `route53:ListHostedZones`; list actions do not support resource-level
8 * permissions, so it is granted on `*`).
9 *
10 * Pages through the account's hosted zones — zone discovery for multi-tenant
11 * DNS automation that resolves a zone id before editing records. Provide the
12 * implementation with `Effect.provide(AWS.Route53.ListHostedZonesHttp)`.
13 * ### Discovering Zones
14 * **Example:** List the account's zones
15 * ```typescript
16 * const listHostedZones = yield* AWS.Route53.ListHostedZones();
17 *
18 * const { HostedZones } = yield* listHostedZones({ MaxItems: 100 });
19 * ```
20 *
21 * @binding
22 */
23export interface ListHostedZones extends Binding.Service<
24 ListHostedZones,
25 "AWS.Route53.ListHostedZones",
26 () => Effect.Effect<
27 (
28 request?: route53.ListHostedZonesRequest,
29 ) => Effect.Effect<
30 route53.ListHostedZonesResponse,
31 route53.ListHostedZonesError
32 >
33 >
34> {}
35export const ListHostedZones = Binding.Service<ListHostedZones>(
36 "AWS.Route53.ListHostedZones",
37);