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 PutJobFailureResultRequest
6 extends SVC.PutJobFailureResultInput {}
7
8/**
9 * Runtime binding for `codepipeline:PutJobFailureResult` — reports failure
10 * for a job handed to the workload by a pipeline `Invoke` (Lambda) or
11 * custom action, failing the action immediately instead of timing out.
12 *
13 * CodePipeline job operations do not support resource-level permissions, so
14 * the grant is on `*`. The binding takes no resource — the job id arrives
15 * with the invocation event.
16 * ### Job Workers
17 * **Example:** Fail an Invoke-Action Job
18 * ```typescript
19 * const putJobFailure = yield* AWS.CodePipeline.PutJobFailureResult();
20 *
21 * yield* putJobFailure({
22 * jobId: event["CodePipeline.job"].id,
23 * failureDetails: { type: "JobFailed", message: "smoke test failed" },
24 * });
25 * ```
26 *
27 * @binding
28 */
29export interface PutJobFailureResult extends Binding.Service<
30 PutJobFailureResult,
31 "AWS.CodePipeline.PutJobFailureResult",
32 () => Effect.Effect<
33 (
34 request: PutJobFailureResultRequest,
35 ) => Effect.Effect<
36 SVC.PutJobFailureResultResponse,
37 SVC.PutJobFailureResultError
38 >
39 >
40> {}
41export const PutJobFailureResult = Binding.Service<PutJobFailureResult>(
42 "AWS.CodePipeline.PutJobFailureResult",
43);