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:StartFaceDetection` — start asynchronous detection of faces 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:StartFaceDetection` 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.StartFaceDetectionHttp)`.
18 *
19 * ### Video Analysis
20 * **Example:** Start Face Detection
21 * ```typescript
22 * // init
23 * const startFaceDetection = yield* AWS.Rekognition.StartFaceDetection();
24 *
25 * // runtime
26 * const started = yield* startFaceDetection({
27 * Video: { S3Object: { Bucket: "videos", Name: "input.mp4" } },
28 * });
29 * // started.JobId
30 * ```
31 *
32 * @binding
33 */
34export interface StartFaceDetection extends Binding.Service<
35 StartFaceDetection,
36 "AWS.Rekognition.StartFaceDetection",
37 () => Effect.Effect<
38 (
39 request: rekognition.StartFaceDetectionRequest,
40 ) => Effect.Effect<
41 rekognition.StartFaceDetectionResponse,
42 rekognition.StartFaceDetectionError
43 >
44 >
45> {}
46export const StartFaceDetection = Binding.Service<StartFaceDetection>(
47 "AWS.Rekognition.StartFaceDetection",
48);