1import type * as medialive from "@distilled.cloud/aws/medialive";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { Channel } from "./Channel.ts";
5
6/**
7 * Runtime binding for `medialive:RestartChannelPipelines`.
8 *
9 * Restarts one or both encoder pipelines of the bound RUNNING
10 * {@link Channel} without a full stop/start cycle — the standard remedy
11 * for a wedged pipeline (frozen output, persistent alert) that an
12 * automated-recovery Lambda applies when a channel alert fires. The
13 * channel id is injected from the binding. Provide the implementation
14 * with `Effect.provide(AWS.MediaLive.RestartChannelPipelinesHttp)`.
15 * ### Controlling Channels
16 * **Example:** Restart a Wedged Pipeline
17 * ```typescript
18 * // init — bind the operation to the channel
19 * const restartPipelines = yield* AWS.MediaLive.RestartChannelPipelines(channel);
20 *
21 * // runtime
22 * yield* restartPipelines({ PipelineIds: ["PIPELINE_0"] });
23 * ```
24 *
25 * @binding
26 */
27export interface RestartChannelPipelines extends Binding.Service<
28 RestartChannelPipelines,
29 "AWS.MediaLive.RestartChannelPipelines",
30 (
31 channel: Channel,
32 ) => Effect.Effect<
33 (
34 request?: Omit<medialive.RestartChannelPipelinesRequest, "ChannelId">,
35 ) => Effect.Effect<
36 medialive.RestartChannelPipelinesResponse,
37 medialive.RestartChannelPipelinesError
38 >
39 >
40> {}
41export const RestartChannelPipelines = Binding.Service<RestartChannelPipelines>(
42 "AWS.MediaLive.RestartChannelPipelines",
43);