1import type * as bdar from "@distilled.cloud/aws/bedrock-data-automation-runtime";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { DataAutomationProject } from "./DataAutomationProject.ts";
5
6/**
7 * `InvokeDataAutomation` request with `dataAutomationConfiguration`
8 * (project ARN + stage) injected from the bound
9 * {@link DataAutomationProject}.
10 */
11export interface InvokeDataAutomationRequest extends Omit<
12 bdar.InvokeDataAutomationRequest,
13 "dataAutomationConfiguration"
14> {}
15
16/**
17 * Runtime binding for the synchronous `InvokeDataAutomation` operation (IAM
18 * action `bedrock:InvokeDataAutomation` on the project ARN + the account's
19 * data automation profiles) — process a file inline against the bound
20 * project from a deployed Function and get the extracted output back in the
21 * response.
22 *
23 * The bound {@link DataAutomationProject} must be created with
24 * `projectType: "SYNC"`. Input can be passed inline as `bytes` or as an
25 * `s3Uri`; the caller supplies the cross-region data automation profile ARN
26 * (e.g. `…:data-automation-profile/us.data-automation-v1`). Provide the
27 * implementation with
28 * `Effect.provide(AWS.BedrockDataAutomation.InvokeDataAutomationHttp)`.
29 * ### Invoking Data Automation
30 * **Example:** Extract Fields From An Inline Document
31 * ```typescript
32 * // deploy time — bind the SYNC project
33 * const invoke = yield* AWS.BedrockDataAutomation.InvokeDataAutomation(syncProject);
34 *
35 * // runtime — process request bytes synchronously
36 * const result = yield* invoke({
37 * inputConfiguration: { bytes: documentBytes },
38 * dataAutomationProfileArn: profileArn,
39 * });
40 * const fields = result.outputSegments?.[0]?.customOutput;
41 * ```
42 *
43 * @binding
44 */
45export interface InvokeDataAutomation extends Binding.Service<
46 InvokeDataAutomation,
47 "AWS.BedrockDataAutomation.InvokeDataAutomation",
48 (
49 project: DataAutomationProject,
50 ) => Effect.Effect<
51 (
52 request: InvokeDataAutomationRequest,
53 ) => Effect.Effect<
54 bdar.InvokeDataAutomationResponse,
55 bdar.InvokeDataAutomationError
56 >
57 >
58> {}
59export const InvokeDataAutomation = Binding.Service<InvokeDataAutomation>(
60 "AWS.BedrockDataAutomation.InvokeDataAutomation",
61);