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 GetDomainSuggestionsRequest
6 extends route53domains.GetDomainSuggestionsRequest {}
7
8/**
9 * Runtime binding for `route53domains:GetDomainSuggestions` — return a list
10 * of suggested domain names based on a seed name, optionally restricted to
11 * names that are currently available for registration.
12 *
13 * Route 53 Domains is a global registration API with no resource-level IAM:
14 * the binding takes no arguments and grants the function
15 * `route53domains:GetDomainSuggestions` on `*`. Calls are pinned to
16 * `us-east-1`, the only region that serves the Route 53 Domains API,
17 * regardless of where the function runs.
18 *
19 * Provide the implementation with
20 * `Effect.provide(AWS.Route53Domains.GetDomainSuggestionsHttp)`.
21 *
22 * ### Suggesting Domain Names
23 * **Example:** Suggest Available Alternatives for a Name
24 * ```typescript
25 * // init
26 * const getDomainSuggestions =
27 * yield* AWS.Route53Domains.GetDomainSuggestions();
28 *
29 * // runtime
30 * const result = yield* getDomainSuggestions({
31 * DomainName: "example.com",
32 * SuggestionCount: 10,
33 * OnlyAvailable: true,
34 * });
35 * const names = (result.SuggestionsList ?? []).map((s) => s.DomainName);
36 * ```
37 *
38 * @binding
39 */
40export interface GetDomainSuggestions extends Binding.Service<
41 GetDomainSuggestions,
42 "AWS.Route53Domains.GetDomainSuggestions",
43 () => Effect.Effect<
44 (
45 request: GetDomainSuggestionsRequest,
46 ) => Effect.Effect<
47 route53domains.GetDomainSuggestionsResponse,
48 route53domains.GetDomainSuggestionsError
49 >
50 >
51> {}
52export const GetDomainSuggestions = Binding.Service<GetDomainSuggestions>(
53 "AWS.Route53Domains.GetDomainSuggestions",
54);