1import type * as detective from "@distilled.cloud/aws/detective";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { Graph } from "./Graph.ts";
5
6/**
7 * Runtime binding for `detective:GetMembers`.
8 *
9 * Reads the membership details of specific accounts in the behavior graph —
10 * status, volume usage, and per-package ingest states. Unknown accounts come
11 * back in `UnprocessedAccounts`. The graph ARN is injected from the bound
12 * {@link Graph}.
13 * Provide the implementation with
14 * `Effect.provide(AWS.Detective.GetMembersHttp)`.
15 * ### Administering Member Accounts
16 * **Example:** Check A Member's Status
17 * ```typescript
18 * // init
19 * const getMembers = yield* AWS.Detective.GetMembers(graph);
20 *
21 * // runtime
22 * const { MemberDetails } = yield* getMembers({
23 * AccountIds: ["111122223333"],
24 * });
25 * ```
26 *
27 * @binding
28 */
29export interface GetMembers extends Binding.Service<
30 GetMembers,
31 "AWS.Detective.GetMembers",
32 (
33 graph: Graph,
34 ) => Effect.Effect<
35 (
36 request: Omit<detective.GetMembersRequest, "GraphArn">,
37 ) => Effect.Effect<detective.GetMembersResponse, detective.GetMembersError>
38 >
39> {}
40export const GetMembers = Binding.Service<GetMembers>(
41 "AWS.Detective.GetMembers",
42);