1import type * as qbusiness from "@distilled.cloud/aws/qbusiness";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { Application } from "./Application.ts";
5
6/**
7 * `GetChatControlsConfiguration` request with `applicationId` injected from the bound application.
8 */
9export interface GetChatControlsConfigurationRequest extends Omit<
10 qbusiness.GetChatControlsConfigurationRequest,
11 "applicationId"
12> {}
13
14/**
15 * Runtime binding for the `GetChatControlsConfiguration` operation (IAM action
16 * `qbusiness:GetChatControlsConfiguration`), scoped to one {@link Application}.
17 *
18 * Reads the application's chat controls: response scope, blocked
19 * phrases, topic rules, and creator mode.
20 * Provide the implementation with
21 * `Effect.provide(AWS.QBusiness.GetChatControlsConfigurationHttp)`.
22 *
23 * ### Admin Controls
24 * **Example:** Read Chat Controls
25 * ```typescript
26 * const getControls = yield* AWS.QBusiness.GetChatControlsConfiguration(app);
27 *
28 * const { responseScope, blockedPhrases } = yield* getControls();
29 * ```
30 *
31 * @binding
32 */
33export interface GetChatControlsConfiguration extends Binding.Service<
34 GetChatControlsConfiguration,
35 "AWS.QBusiness.GetChatControlsConfiguration",
36 (
37 application: Application,
38 ) => Effect.Effect<
39 (
40 request?: GetChatControlsConfigurationRequest,
41 ) => Effect.Effect<
42 qbusiness.GetChatControlsConfigurationResponse,
43 qbusiness.GetChatControlsConfigurationError
44 >
45 >
46> {}
47export const GetChatControlsConfiguration =
48 Binding.Service<GetChatControlsConfiguration>(
49 "AWS.QBusiness.GetChatControlsConfiguration",
50 );