1import type * as aiops from "@distilled.cloud/aws/aiops";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { InvestigationGroup } from "./InvestigationGroup.ts";
5
6/**
7 * Runtime binding for `aiops:GetInvestigationGroup`.
8 *
9 * Reads the bound {@link InvestigationGroup}'s full configuration — the
10 * telemetry-access role, retention period, encryption, tag key boundaries,
11 * chatbot notification channels, and cross-account configurations — so an
12 * ops function can audit or report on the Region's investigation setup. The
13 * group's ARN is injected from the binding. Provide the implementation with
14 * `Effect.provide(AWS.AIOps.GetInvestigationGroupHttp)`.
15 * ### Reading the Investigation Group
16 * **Example:** Inspect the Group's Configuration
17 * ```typescript
18 * // init — grants aiops:GetInvestigationGroup on the group
19 * const getInvestigationGroup = yield* AWS.AIOps.GetInvestigationGroup(group);
20 *
21 * // runtime
22 * const detail = yield* getInvestigationGroup();
23 * yield* Effect.log(
24 * `${detail.name} retains investigations for ${detail.retentionInDays} days`,
25 * );
26 * ```
27 *
28 * @binding
29 */
30export interface GetInvestigationGroup extends Binding.Service<
31 GetInvestigationGroup,
32 "AWS.AIOps.GetInvestigationGroup",
33 (
34 group: InvestigationGroup,
35 ) => Effect.Effect<
36 () => Effect.Effect<
37 aiops.GetInvestigationGroupResponse,
38 aiops.GetInvestigationGroupError
39 >
40 >
41> {}
42export const GetInvestigationGroup = Binding.Service<GetInvestigationGroup>(
43 "AWS.AIOps.GetInvestigationGroup",
44);