1import type * as qapps from "@distilled.cloud/aws/qapps";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { QApp } from "./QApp.ts";
5
6/**
7 * Request for {@link UpdateQAppSessionMetadata} — `instanceId` is injected from the bound Q App.
8 */
9export interface UpdateQAppSessionMetadataRequest extends Omit<
10 qapps.UpdateQAppSessionMetadataInput,
11 "instanceId" | "appId"
12> {}
13
14/**
15 * Runtime binding for `qapps:UpdateQAppSessionMetadata`.
16 *
17 * Updates a Q App session's metadata — rename it or reconfigure how it is shared with collaborators. Provide the implementation with
18 * `Effect.provide(AWS.QApps.UpdateQAppSessionMetadataHttp)`.
19 * ### Sessions
20 * **Example:** Share a Session
21 * ```typescript
22 * // init — bind the operation to the Q App
23 * const updateQAppSessionMetadata = yield* AWS.QApps.UpdateQAppSessionMetadata(app);
24 *
25 * // runtime
26 * yield* updateQAppSessionMetadata({
27 * sessionId,
28 * sharingConfiguration: { enabled: true, acceptResponses: true },
29 * });
30 * ```
31 *
32 * @binding
33 */
34export interface UpdateQAppSessionMetadata extends Binding.Service<
35 UpdateQAppSessionMetadata,
36 "AWS.QApps.UpdateQAppSessionMetadata",
37 (
38 app: QApp,
39 ) => Effect.Effect<
40 (
41 request: UpdateQAppSessionMetadataRequest,
42 ) => Effect.Effect<
43 qapps.UpdateQAppSessionMetadataOutput,
44 qapps.UpdateQAppSessionMetadataError
45 >
46 >
47> {}
48
49export const UpdateQAppSessionMetadata =
50 Binding.Service<UpdateQAppSessionMetadata>(
51 "AWS.QApps.UpdateQAppSessionMetadata",
52 );