1import type * as qbusiness from "@distilled.cloud/aws/qbusiness";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { Index } from "./SearchIndex.ts";
5
6/**
7 * `GetGroup` request with `applicationId` + `indexId` injected from the bound index.
8 */
9export interface GetGroupRequest extends Omit<
10 qbusiness.GetGroupRequest,
11 "applicationId" | "indexId"
12> {}
13
14/**
15 * Runtime binding for the `GetGroup` operation (IAM action
16 * `qbusiness:GetGroup`), scoped to one {@link Index}.
17 *
18 * Reads a mapped group's processing status.
19 * Provide the implementation with
20 * `Effect.provide(AWS.QBusiness.GetGroupHttp)`.
21 *
22 * ### Principal Mapping
23 * **Example:** Read a Group's Status
24 * ```typescript
25 * const getGroup = yield* AWS.QBusiness.GetGroup(index);
26 *
27 * const { status } = yield* getGroup({ groupName: "engineering" });
28 * ```
29 *
30 * @binding
31 */
32export interface GetGroup extends Binding.Service<
33 GetGroup,
34 "AWS.QBusiness.GetGroup",
35 (
36 index: Index,
37 ) => Effect.Effect<
38 (
39 request: GetGroupRequest,
40 ) => Effect.Effect<qbusiness.GetGroupResponse, qbusiness.GetGroupError>
41 >
42> {}
43export const GetGroup = Binding.Service<GetGroup>("AWS.QBusiness.GetGroup");