1import type * as batch from "@distilled.cloud/aws/batch";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { JobQueue } from "./JobQueue.ts";
5
6export interface TerminateJobRequest extends batch.TerminateJobRequest {}
7
8/**
9 * Terminate a running (or cancel a queued) AWS Batch job from runtime code.
10 *
11 * ### Terminating Jobs
12 * **Example:** Terminate a job
13 * ```typescript
14 * const terminateJob = yield* Batch.TerminateJob(queue);
15 * yield* terminateJob({ jobId, reason: "superseded" });
16 * ```
17 *
18 * @binding
19 */
20export interface TerminateJob extends Binding.Service<
21 TerminateJob,
22 "AWS.Batch.TerminateJob",
23 (
24 queue: JobQueue,
25 ) => Effect.Effect<
26 (
27 request: TerminateJobRequest,
28 ) => Effect.Effect<batch.TerminateJobResponse, batch.TerminateJobError>
29 >
30> {}
31export const TerminateJob = Binding.Service<TerminateJob>(
32 "AWS.Batch.TerminateJob",
33);