1import type * as forecast from "@distilled.cloud/aws/forecast";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for `forecast:CreateDatasetImportJob` — start an
7 * asynchronous import of training data from S3 into a Forecast dataset, the
8 * standard scheduled-ingest step of a grandfathered Forecast deployment.
9 * Also grants `iam:PassRole` (conditioned to `forecast.amazonaws.com`) for
10 * the S3 data-access role the import assumes.
11 *
12 * The import job's ARN is created at runtime, so the binding takes no
13 * arguments and grants `forecast:CreateDatasetImportJob` on `*`. Provide the
14 * implementation with `Effect.provide(AWS.Forecast.CreateDatasetImportJobHttp)`.
15 *
16 * ### Importing Data
17 * **Example:** Start a Scheduled Import
18 * ```typescript
19 * // init
20 * const createDatasetImportJob = yield* AWS.Forecast.CreateDatasetImportJob();
21 *
22 * // runtime
23 * const job = yield* createDatasetImportJob({
24 * DatasetImportJobName: "daily_2026_07_14",
25 * DatasetArn: dataset.datasetArn,
26 * DataSource: {
27 * S3Config: {
28 * Path: "s3://my-bucket/demand.csv",
29 * RoleArn: dataAccessRole.roleArn,
30 * },
31 * },
32 * TimestampFormat: "yyyy-MM-dd",
33 * });
34 * ```
35 *
36 * @binding
37 */
38export interface CreateDatasetImportJob extends Binding.Service<
39 CreateDatasetImportJob,
40 "AWS.Forecast.CreateDatasetImportJob",
41 () => Effect.Effect<
42 (
43 request: forecast.CreateDatasetImportJobRequest,
44 ) => Effect.Effect<
45 forecast.CreateDatasetImportJobResponse,
46 forecast.CreateDatasetImportJobError
47 >
48 >
49> {}
50export const CreateDatasetImportJob = Binding.Service<CreateDatasetImportJob>(
51 "AWS.Forecast.CreateDatasetImportJob",
52);