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 * `UpdateChatControlsConfiguration` request with `applicationId` injected from the bound application.
8 */
9export interface UpdateChatControlsConfigurationRequest extends Omit<
10 qbusiness.UpdateChatControlsConfigurationRequest,
11 "applicationId"
12> {}
13
14/**
15 * Runtime binding for the `UpdateChatControlsConfiguration` operation (IAM action
16 * `qbusiness:UpdateChatControlsConfiguration`), scoped to one {@link Application}.
17 *
18 * Updates the application's chat controls — response scope, blocked
19 * phrases, topic rules, creator mode, and hallucination reduction.
20 * Provide the implementation with
21 * `Effect.provide(AWS.QBusiness.UpdateChatControlsConfigurationHttp)`.
22 *
23 * ### Admin Controls
24 * **Example:** Restrict Responses to Enterprise Content
25 * ```typescript
26 * const updateControls =
27 * yield* AWS.QBusiness.UpdateChatControlsConfiguration(app);
28 *
29 * yield* updateControls({ responseScope: "ENTERPRISE_CONTENT_ONLY" });
30 * ```
31 *
32 * @binding
33 */
34export interface UpdateChatControlsConfiguration extends Binding.Service<
35 UpdateChatControlsConfiguration,
36 "AWS.QBusiness.UpdateChatControlsConfiguration",
37 (
38 application: Application,
39 ) => Effect.Effect<
40 (
41 request?: UpdateChatControlsConfigurationRequest,
42 ) => Effect.Effect<
43 qbusiness.UpdateChatControlsConfigurationResponse,
44 qbusiness.UpdateChatControlsConfigurationError
45 >
46 >
47> {}
48export const UpdateChatControlsConfiguration =
49 Binding.Service<UpdateChatControlsConfiguration>(
50 "AWS.QBusiness.UpdateChatControlsConfiguration",
51 );