1import type * as s3control from "@distilled.cloud/aws/s3-control";
2import type * as sts from "@distilled.cloud/aws/sts";
3import type * as Effect from "effect/Effect";
4import * as Binding from "../../Binding.ts";
5
6/**
7 * Runtime binding for `s3:ListJobs` (S3 Batch Operations).
8 *
9 * Lists the account's current jobs and the jobs that ended within the last
10 * 90 days, optionally filtered by status — e.g. an operations dashboard
11 * summarizing in-flight bulk operations. The account id is resolved once
12 * via `sts:GetCallerIdentity`. Provide the implementation with
13 * `Effect.provide(AWS.S3Control.ListJobsHttp)`.
14 * ### Running Batch Operations Jobs
15 * **Example:** List Active Jobs
16 * ```typescript
17 * // init — account-level binding, no resource argument
18 * const listJobs = yield* AWS.S3Control.ListJobs();
19 *
20 * // runtime
21 * const { Jobs } = yield* listJobs({ JobStatuses: ["Active"] });
22 * ```
23 *
24 * @binding
25 */
26export interface ListJobs extends Binding.Service<
27 ListJobs,
28 "AWS.S3Control.ListJobs",
29 () => Effect.Effect<
30 (
31 request?: Omit<s3control.ListJobsRequest, "AccountId">,
32 ) => Effect.Effect<
33 s3control.ListJobsResult,
34 s3control.ListJobsError | sts.GetCallerIdentityError
35 >
36 >
37> {}
38export const ListJobs = Binding.Service<ListJobs>("AWS.S3Control.ListJobs");