1import type * as detective from "@distilled.cloud/aws/detective";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for `detective:DisassociateMembership`.
7 *
8 * Removes *this* account from a behavior graph it previously accepted an
9 * invitation to — the member-side exit, mirroring the admin's
10 * `DeleteMembers`.
11 * Provide the implementation with
12 * `Effect.provide(AWS.Detective.DisassociateMembershipHttp)`.
13 * ### Responding to Invitations
14 * **Example:** Leave A Behavior Graph
15 * ```typescript
16 * // init — account-level binding, no resource argument
17 * const disassociateMembership = yield* AWS.Detective.DisassociateMembership();
18 *
19 * // runtime
20 * yield* disassociateMembership({ GraphArn: adminGraphArn });
21 * ```
22 *
23 * @binding
24 */
25export interface DisassociateMembership extends Binding.Service<
26 DisassociateMembership,
27 "AWS.Detective.DisassociateMembership",
28 () => Effect.Effect<
29 (
30 request: detective.DisassociateMembershipRequest,
31 ) => Effect.Effect<
32 detective.DisassociateMembershipResponse,
33 detective.DisassociateMembershipError
34 >
35 >
36> {}
37export const DisassociateMembership = Binding.Service<DisassociateMembership>(
38 "AWS.Detective.DisassociateMembership",
39);