1import type * as mediapackagev2 from "@distilled.cloud/aws/mediapackagev2";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { ChannelGroup } from "./ChannelGroup.ts";
5
6/**
7 * Runtime binding for `mediapackagev2:ListHarvestJobs`.
8 *
9 * Enumerates the harvest jobs in the bound {@link ChannelGroup}, optionally
10 * filtered by channel, endpoint, or status — e.g. a dashboard Lambda
11 * listing in-progress clip exports. The group's name is injected from the
12 * binding. Provide the implementation with
13 * `Effect.provide(AWS.MediaPackageV2.ListHarvestJobsHttp)`.
14 * ### Harvesting Live-to-VOD Clips
15 * **Example:** List the Group's Queued Harvest Jobs
16 * ```typescript
17 * // init — bind the operation to the channel group
18 * const listHarvestJobs = yield* AWS.MediaPackageV2.ListHarvestJobs(group);
19 *
20 * // runtime
21 * const { Items } = yield* listHarvestJobs({ Status: "QUEUED" });
22 * ```
23 *
24 * @binding
25 */
26export interface ListHarvestJobs extends Binding.Service<
27 ListHarvestJobs,
28 "AWS.MediaPackageV2.ListHarvestJobs",
29 (
30 group: ChannelGroup,
31 ) => Effect.Effect<
32 (
33 request?: Omit<mediapackagev2.ListHarvestJobsRequest, "ChannelGroupName">,
34 ) => Effect.Effect<
35 mediapackagev2.ListHarvestJobsResponse,
36 mediapackagev2.ListHarvestJobsError
37 >
38 >
39> {}
40export const ListHarvestJobs = Binding.Service<ListHarvestJobs>(
41 "AWS.MediaPackageV2.ListHarvestJobs",
42);