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:StartContentModeration` — start asynchronous detection of inappropriate or offensive content in a stored video.
7 *
8 * Rekognition Video jobs read the video from S3 and run asynchronously —
9 * poll the paired `Get*` binding with the returned `JobId`, or pass a
10 * `NotificationChannel` (SNS topic + IAM role the caller must be allowed
11 * to pass) to be notified on completion.
12 *
13 * The binding takes no arguments and grants the function
14 * `rekognition:StartContentModeration` on `*` (Rekognition data-plane resources such
15 * as collections, users, and jobs are routinely created at runtime, so
16 * their identifiers are unknown at deploy time). Provide the
17 * implementation with `Effect.provide(AWS.Rekognition.StartContentModerationHttp)`.
18 *
19 * ### Video Analysis
20 * **Example:** Start Content Moderation
21 * ```typescript
22 * // init
23 * const startContentModeration = yield* AWS.Rekognition.StartContentModeration();
24 *
25 * // runtime
26 * const started = yield* startContentModeration({
27 * Video: { S3Object: { Bucket: "videos", Name: "input.mp4" } },
28 * });
29 * // started.JobId
30 * ```
31 *
32 * @binding
33 */
34export interface StartContentModeration extends Binding.Service<
35 StartContentModeration,
36 "AWS.Rekognition.StartContentModeration",
37 () => Effect.Effect<
38 (
39 request: rekognition.StartContentModerationRequest,
40 ) => Effect.Effect<
41 rekognition.StartContentModerationResponse,
42 rekognition.StartContentModerationError
43 >
44 >
45> {}
46export const StartContentModeration = Binding.Service<StartContentModeration>(
47 "AWS.Rekognition.StartContentModeration",
48);