1import type * as rekognition from "@distilled.cloud/aws/rekognition";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for `rekognition:StartMediaAnalysisJob` — start an asynchronous media analysis job (e.g. bulk content moderation) over an S3 manifest of images.
7 *
8 * The binding takes no arguments and grants the function
9 * `rekognition:StartMediaAnalysisJob` on `*` (Rekognition data-plane resources such
10 * as collections, users, and jobs are routinely created at runtime, so
11 * their identifiers are unknown at deploy time). Provide the
12 * implementation with `Effect.provide(AWS.Rekognition.StartMediaAnalysisJobHttp)`.
13 *
14 * ### Media Analysis Jobs
15 * **Example:** Start a Bulk Moderation Job
16 * ```typescript
17 * // init
18 * const startMediaAnalysisJob = yield* AWS.Rekognition.StartMediaAnalysisJob();
19 *
20 * // runtime
21 * const started = yield* startMediaAnalysisJob({
22 * OperationsConfig: { DetectModerationLabels: { MinConfidence: 60 } },
23 * Input: { S3Object: { Bucket: "media", Name: "manifest.jsonl" } },
24 * OutputConfig: { S3Bucket: "media", S3KeyPrefix: "results/" },
25 * });
26 * // started.JobId
27 * ```
28 *
29 * @binding
30 */
31export interface StartMediaAnalysisJob extends Binding.Service<
32 StartMediaAnalysisJob,
33 "AWS.Rekognition.StartMediaAnalysisJob",
34 () => Effect.Effect<
35 (
36 request: rekognition.StartMediaAnalysisJobRequest,
37 ) => Effect.Effect<
38 rekognition.StartMediaAnalysisJobResponse,
39 rekognition.StartMediaAnalysisJobError
40 >
41 >
42> {}
43export const StartMediaAnalysisJob = Binding.Service<StartMediaAnalysisJob>(
44 "AWS.Rekognition.StartMediaAnalysisJob",
45);