1import type * as mediapackagev2 from "@distilled.cloud/aws/mediapackagev2";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { OriginEndpoint } from "./OriginEndpoint.ts";
5
6/**
7 * Runtime binding for `mediapackagev2:CancelHarvestJob`.
8 *
9 * Cancels a queued or in-progress harvest job on the bound
10 * {@link OriginEndpoint} — e.g. aborting a clip export the operator
11 * withdrew. The endpoint's group, channel, and name are injected from the
12 * binding. Provide the implementation with
13 * `Effect.provide(AWS.MediaPackageV2.CancelHarvestJobHttp)`.
14 * ### Harvesting Live-to-VOD Clips
15 * **Example:** Cancel an In-Progress Harvest Job
16 * ```typescript
17 * // init — bind the operation to the endpoint
18 * const cancelHarvestJob = yield* AWS.MediaPackageV2.CancelHarvestJob(endpoint);
19 *
20 * // runtime
21 * yield* cancelHarvestJob({ HarvestJobName: job.HarvestJobName });
22 * ```
23 *
24 * @binding
25 */
26export interface CancelHarvestJob extends Binding.Service<
27 CancelHarvestJob,
28 "AWS.MediaPackageV2.CancelHarvestJob",
29 (
30 endpoint: OriginEndpoint,
31 ) => Effect.Effect<
32 (
33 request: Omit<
34 mediapackagev2.CancelHarvestJobRequest,
35 "ChannelGroupName" | "ChannelName" | "OriginEndpointName"
36 >,
37 ) => Effect.Effect<
38 mediapackagev2.CancelHarvestJobResponse,
39 mediapackagev2.CancelHarvestJobError
40 >
41 >
42> {}
43export const CancelHarvestJob = Binding.Service<CancelHarvestJob>(
44 "AWS.MediaPackageV2.CancelHarvestJob",
45);