1import type * as repostspace from "@distilled.cloud/aws/repostspace";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { Space } from "./Space.ts";
5
6export interface DeregisterAdminRequest extends Omit<
7 repostspace.DeregisterAdminInput,
8 "spaceId"
9> {}
10
11/**
12 * Runtime binding for the `DeregisterAdmin` operation (IAM action
13 * `repostspace:DeregisterAdmin` on the space ARN).
14 *
15 * Removes administrator privileges from an IAM Identity Center user or
16 * group (by accessor id) of the bound {@link Space}.
17 * Provide the implementation with
18 * `Effect.provide(AWS.RePostSpace.DeregisterAdminHttp)`.
19 * ### Managing Admins
20 * **Example:** Deregister a space administrator
21 * ```typescript
22 * const deregisterAdmin = yield* AWS.RePostSpace.DeregisterAdmin(space);
23 *
24 * yield* deregisterAdmin({ adminId: "94682c8d-1234-5678-9abc-e001c76e2c44" });
25 * ```
26 *
27 * @binding
28 */
29export interface DeregisterAdmin extends Binding.Service<
30 DeregisterAdmin,
31 "AWS.RePostSpace.DeregisterAdmin",
32 (
33 space: Space,
34 ) => Effect.Effect<
35 (
36 request: DeregisterAdminRequest,
37 ) => Effect.Effect<
38 repostspace.DeregisterAdminResponse,
39 repostspace.DeregisterAdminError
40 >
41 >
42> {}
43export const DeregisterAdmin = Binding.Service<DeregisterAdmin>(
44 "AWS.RePostSpace.DeregisterAdmin",
45);