1import type * as route53domains from "@distilled.cloud/aws/route-53-domains";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5export interface CheckDomainAvailabilityRequest
6 extends route53domains.CheckDomainAvailabilityRequest {}
7
8/**
9 * Runtime binding for `route53domains:CheckDomainAvailability` — check
10 * whether a domain name is available for registration with Route 53.
11 *
12 * Route 53 Domains is a global registration API with no resource-level IAM:
13 * the binding takes no arguments and grants the function
14 * `route53domains:CheckDomainAvailability` on `*`. Calls are pinned to
15 * `us-east-1`, the only region that serves the Route 53 Domains API,
16 * regardless of where the function runs.
17 *
18 * Note that if the returned `Availability` is `PENDING` you must submit
19 * another request to determine the availability of the domain name.
20 * Provide the implementation with
21 * `Effect.provide(AWS.Route53Domains.CheckDomainAvailabilityHttp)`.
22 *
23 * ### Checking Domain Availability
24 * **Example:** Check Whether a Domain Can Be Registered
25 * ```typescript
26 * // init
27 * const checkDomainAvailability =
28 * yield* AWS.Route53Domains.CheckDomainAvailability();
29 *
30 * // runtime
31 * const result = yield* checkDomainAvailability({
32 * DomainName: "example-startup-name.com",
33 * });
34 * if (result.Availability === "AVAILABLE") {
35 * // domain can be registered
36 * }
37 * ```
38 *
39 * @binding
40 */
41export interface CheckDomainAvailability extends Binding.Service<
42 CheckDomainAvailability,
43 "AWS.Route53Domains.CheckDomainAvailability",
44 () => Effect.Effect<
45 (
46 request: CheckDomainAvailabilityRequest,
47 ) => Effect.Effect<
48 route53domains.CheckDomainAvailabilityResponse,
49 route53domains.CheckDomainAvailabilityError
50 >
51 >
52> {}
53export const CheckDomainAvailability = Binding.Service<CheckDomainAvailability>(
54 "AWS.Route53Domains.CheckDomainAvailability",
55);