1import type * as repostspace from "@distilled.cloud/aws/repostspace";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { Space } from "./Space.ts";
5
6export interface UpdateChannelRequest extends Omit<
7 repostspace.UpdateChannelInput,
8 "spaceId"
9> {}
10
11/**
12 * Runtime binding for the `UpdateChannel` operation (IAM action
13 * `repostspace:UpdateChannel` on the space ARN).
14 *
15 * Renames a channel of the bound {@link Space} and/or updates its
16 * description.
17 * Provide the implementation with
18 * `Effect.provide(AWS.RePostSpace.UpdateChannelHttp)`.
19 * ### Managing Channels
20 * **Example:** Rename a channel
21 * ```typescript
22 * const updateChannel = yield* AWS.RePostSpace.UpdateChannel(space);
23 *
24 * yield* updateChannel({
25 * channelId,
26 * channelName: "Networking & DNS",
27 * });
28 * ```
29 *
30 * @binding
31 */
32export interface UpdateChannel extends Binding.Service<
33 UpdateChannel,
34 "AWS.RePostSpace.UpdateChannel",
35 (
36 space: Space,
37 ) => Effect.Effect<
38 (
39 request: UpdateChannelRequest,
40 ) => Effect.Effect<
41 repostspace.UpdateChannelOutput,
42 repostspace.UpdateChannelError
43 >
44 >
45> {}
46export const UpdateChannel = Binding.Service<UpdateChannel>(
47 "AWS.RePostSpace.UpdateChannel",
48);