1import type * as personalize from "@distilled.cloud/aws/personalize";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for `personalize:CreateDatasetImportJob` — Starts a bulk import of training data from S3 into a dataset — the
7 * first step of the MLOps retraining loop. Grants
8 * `personalize:CreateDatasetImportJob` on `*` plus `iam:PassRole`
9 * (conditioned to `personalize.amazonaws.com`) for the data-access role
10 * the service assumes to read the S3 bucket.
11 * Provide the implementation with
12 * `Effect.provide(AWS.Personalize.CreateDatasetImportJobHttp)`.
13 *
14 * ### Retraining Loop
15 * **Example:** Import Training Data
16 * ```typescript
17 * // init
18 * const createDatasetImportJob = yield* Personalize.CreateDatasetImportJob();
19 *
20 * const { datasetImportJobArn } = yield* createDatasetImportJob({
21 * jobName: "nightly-import",
22 * datasetArn,
23 * dataSource: { dataLocation: "s3://training-bucket/interactions.csv" },
24 * roleArn: importRoleArn,
25 * });
26 * ```
27 *
28 * @binding
29 */
30export interface CreateDatasetImportJob extends Binding.Service<
31 CreateDatasetImportJob,
32 "AWS.Personalize.CreateDatasetImportJob",
33 () => Effect.Effect<
34 (
35 request: personalize.CreateDatasetImportJobRequest,
36 ) => Effect.Effect<
37 personalize.CreateDatasetImportJobResponse,
38 personalize.CreateDatasetImportJobError
39 >
40 >
41> {}
42export const CreateDatasetImportJob = Binding.Service<CreateDatasetImportJob>(
43 "AWS.Personalize.CreateDatasetImportJob",
44);