1import type * as SVC from "@distilled.cloud/aws/codepipeline";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5export interface AcknowledgeJobRequest extends SVC.AcknowledgeJobInput {}
6
7/**
8 * Runtime binding for `codepipeline:AcknowledgeJob` — confirms receipt of a
9 * job returned by `PollForJobs` so the pipeline knows a worker has claimed
10 * it. Used for custom actions only; the `nonce` must be the one returned
11 * with the polled job.
12 *
13 * CodePipeline job operations do not support resource-level permissions, so
14 * the grant is on `*`. The binding takes no resource — job ids come from
15 * polling.
16 * ### Job Workers
17 * **Example:** Claim a Polled Job
18 * ```typescript
19 * const acknowledgeJob = yield* AWS.CodePipeline.AcknowledgeJob();
20 *
21 * const { status } = yield* acknowledgeJob({ jobId, nonce });
22 * ```
23 *
24 * @binding
25 */
26export interface AcknowledgeJob extends Binding.Service<
27 AcknowledgeJob,
28 "AWS.CodePipeline.AcknowledgeJob",
29 () => Effect.Effect<
30 (
31 request: AcknowledgeJobRequest,
32 ) => Effect.Effect<SVC.AcknowledgeJobOutput, SVC.AcknowledgeJobError>
33 >
34> {}
35export const AcknowledgeJob = Binding.Service<AcknowledgeJob>(
36 "AWS.CodePipeline.AcknowledgeJob",
37);