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 ListOperationsRequest
6 extends route53domains.ListOperationsRequest {}
7
8/**
9 * Runtime binding for `route53domains:ListOperations` — list the
10 * asynchronous Route 53 Domains operations (registrations, renewals,
11 * transfers, nameserver updates) performed on domains registered by the
12 * current AWS account, optionally filtered by status, type, or submission
13 * date.
14 *
15 * Route 53 Domains is a global registration API with no resource-level IAM:
16 * the binding takes no arguments and grants the function
17 * `route53domains:ListOperations` on `*`. Calls are pinned to `us-east-1`,
18 * the only region that serves the Route 53 Domains API, regardless of where
19 * the function runs.
20 *
21 * Provide the implementation with
22 * `Effect.provide(AWS.Route53Domains.ListOperationsHttp)`.
23 *
24 * ### Tracking Registration Operations
25 * **Example:** List In-Progress Operations
26 * ```typescript
27 * // init
28 * const listOperations = yield* AWS.Route53Domains.ListOperations();
29 *
30 * // runtime
31 * const result = yield* listOperations({
32 * Status: ["IN_PROGRESS"],
33 * MaxItems: 20,
34 * });
35 * const ids = (result.Operations ?? []).map((op) => op.OperationId);
36 * ```
37 *
38 * @binding
39 */
40export interface ListOperations extends Binding.Service<
41 ListOperations,
42 "AWS.Route53Domains.ListOperations",
43 () => Effect.Effect<
44 (
45 request: ListOperationsRequest,
46 ) => Effect.Effect<
47 route53domains.ListOperationsResponse,
48 route53domains.ListOperationsError
49 >
50 >
51> {}
52export const ListOperations = Binding.Service<ListOperations>(
53 "AWS.Route53Domains.ListOperations",
54);