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
6export interface ListResolverRuleAssociationsRequest extends Omit<
7 r53r.ListResolverRuleAssociationsRequest,
8 "Filters"
9> {}
10
11/**
12 * Runtime binding for `route53resolver:ListResolverRuleAssociations` —
13 * enumerate the VPC associations of the bound {@link ResolverRule}. The
14 * request is automatically filtered to the bound rule
15 * (`Filters: [{ Name: "ResolverRuleId", … }]`).
16 *
17 * Provide `Route53Resolver.ListResolverRuleAssociationsHttp` on the hosting
18 * Lambda Function to satisfy the requirement.
19 * ### Reading Rule State
20 * **Example:** List the VPCs a Rule Is Live In
21 * ```typescript
22 * // init — grants route53resolver:ListResolverRuleAssociations on the rule
23 * const listAssociations = yield* AWS.Route53Resolver.ListResolverRuleAssociations(rule);
24 *
25 * // runtime
26 * const { ResolverRuleAssociations } = yield* listAssociations();
27 * const vpcIds = (ResolverRuleAssociations ?? []).map((a) => a.VPCId);
28 * ```
29 *
30 * @binding
31 */
32export interface ListResolverRuleAssociations extends Binding.Service<
33 ListResolverRuleAssociations,
34 "AWS.Route53Resolver.ListResolverRuleAssociations",
35 (
36 rule: ResolverRule,
37 ) => Effect.Effect<
38 (
39 request?: ListResolverRuleAssociationsRequest,
40 ) => Effect.Effect<
41 r53r.ListResolverRuleAssociationsResponse,
42 r53r.ListResolverRuleAssociationsError
43 >
44 >
45> {}
46
47export const ListResolverRuleAssociations =
48 Binding.Service<ListResolverRuleAssociations>(
49 "AWS.Route53Resolver.ListResolverRuleAssociations",
50 );