1import type * as signer from "@distilled.cloud/aws/signer";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for `signer:DescribeSigningJob`.
7 *
8 * Reads a signing job by the `jobId` returned from `StartSigningJob` /
9 * `SignPayload` — its status (`InProgress`, `Succeeded`, `Failed`), the
10 * signed object's S3 location, and the signature expiry. Account-level
11 * operation — job ids are chosen per request at runtime, so the binding takes
12 * no resource argument. Provide the implementation with
13 * `Effect.provide(AWS.Signer.DescribeSigningJobHttp)`.
14 * ### Observing Signing Jobs
15 * **Example:** Wait for a Job to Finish
16 * ```typescript
17 * // init — account-level binding, no resource argument
18 * const describeSigningJob = yield* AWS.Signer.DescribeSigningJob();
19 *
20 * // runtime
21 * const job = yield* describeSigningJob({ jobId });
22 * const signedKey = job.signedObject?.s3?.key;
23 * ```
24 *
25 * @binding
26 */
27export interface DescribeSigningJob extends Binding.Service<
28 DescribeSigningJob,
29 "AWS.Signer.DescribeSigningJob",
30 () => Effect.Effect<
31 (
32 request: signer.DescribeSigningJobRequest,
33 ) => Effect.Effect<
34 signer.DescribeSigningJobResponse,
35 signer.DescribeSigningJobError
36 >
37 >
38> {}
39export const DescribeSigningJob = Binding.Service<DescribeSigningJob>(
40 "AWS.Signer.DescribeSigningJob",
41);