1import type * as mediatailor from "@distilled.cloud/aws/mediatailor";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for `mediatailor:DescribeProgram` — read a scheduled
7 * program on a channel-assembly channel.
8 *
9 * Channel/program names are runtime parameters, so the binding is
10 * account-level and grants `mediatailor:DescribeProgram` on `*`. Provide the
11 * implementation with `Effect.provide(AWS.MediaTailor.DescribeProgramHttp)`.
12 *
13 * ### Channel Assembly
14 * **Example:** Read a scheduled program
15 * ```typescript
16 * const describeProgram = yield* AWS.MediaTailor.DescribeProgram();
17 *
18 * const program = yield* describeProgram({
19 * ChannelName: "my-channel",
20 * ProgramName: `episode-${id}`,
21 * });
22 * ```
23 *
24 * @binding
25 */
26export interface DescribeProgram extends Binding.Service<
27 DescribeProgram,
28 "AWS.MediaTailor.DescribeProgram",
29 () => Effect.Effect<
30 (
31 request: mediatailor.DescribeProgramRequest,
32 ) => Effect.Effect<
33 mediatailor.DescribeProgramResponse,
34 mediatailor.DescribeProgramError
35 >
36 >
37> {}
38export const DescribeProgram = Binding.Service<DescribeProgram>(
39 "AWS.MediaTailor.DescribeProgram",
40);