1import type * as r53r from "@distilled.cloud/aws/route53resolver";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { ResolverRule } from "./ResolverRule.ts";
5
6/**
7 * Runtime binding for `route53resolver:GetResolverRule` — read the bound
8 * {@link ResolverRule}'s live state (domain name, target IPs, endpoint,
9 * status); the rule ID is injected automatically.
10 *
11 * Provide `Route53Resolver.GetResolverRuleHttp` on the hosting Lambda
12 * Function to satisfy the requirement.
13 * ### Reading Rule State
14 * **Example:** Read the Rule's Target IPs
15 * ```typescript
16 * // init — grants route53resolver:GetResolverRule on the rule
17 * const getRule = yield* AWS.Route53Resolver.GetResolverRule(rule);
18 *
19 * // runtime
20 * const { ResolverRule } = yield* getRule();
21 * const targets = (ResolverRule?.TargetIps ?? []).map((t) => t.Ip);
22 * ```
23 *
24 * @binding
25 */
26export interface GetResolverRule extends Binding.Service<
27 GetResolverRule,
28 "AWS.Route53Resolver.GetResolverRule",
29 (
30 rule: ResolverRule,
31 ) => Effect.Effect<
32 () => Effect.Effect<r53r.GetResolverRuleResponse, r53r.GetResolverRuleError>
33 >
34> {}
35
36export const GetResolverRule = Binding.Service<GetResolverRule>(
37 "AWS.Route53Resolver.GetResolverRule",
38);