1import type * as shield from "@distilled.cloud/aws/shield";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for `shield:ListResourcesInProtectionGroup`.
7 *
8 * Enumerates the ARNs of the protected resources that are members of a
9 * protection group. The group id is passed in the request — group membership
10 * is often resolved dynamically at runtime (e.g. iterating the groups from a
11 * `ListProtectionGroups` sweep), and a nonexistent group fails with the typed
12 * `ResourceNotFoundException`.
13 * Provide the implementation with
14 * `Effect.provide(AWS.Shield.ListResourcesInProtectionGroupHttp)`.
15 * ### Grouping Protections
16 * **Example:** List a Group's Members
17 * ```typescript
18 * // init — account-level binding, no resource argument
19 * const listResourcesInProtectionGroup =
20 * yield* AWS.Shield.ListResourcesInProtectionGroup();
21 *
22 * // runtime
23 * const { ResourceArns } = yield* listResourcesInProtectionGroup({
24 * ProtectionGroupId: group.protectionGroupId,
25 * });
26 * ```
27 *
28 * @binding
29 */
30export interface ListResourcesInProtectionGroup extends Binding.Service<
31 ListResourcesInProtectionGroup,
32 "AWS.Shield.ListResourcesInProtectionGroup",
33 () => Effect.Effect<
34 (
35 request: shield.ListResourcesInProtectionGroupRequest,
36 ) => Effect.Effect<
37 shield.ListResourcesInProtectionGroupResponse,
38 shield.ListResourcesInProtectionGroupError
39 >
40 >
41> {}
42export const ListResourcesInProtectionGroup =
43 Binding.Service<ListResourcesInProtectionGroup>(
44 "AWS.Shield.ListResourcesInProtectionGroup",
45 );