1import * as omics from "@distilled.cloud/aws/omics";
2import * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { VariantStore } from "./VariantStore.ts";
5
6export interface StartVariantImportJobRequest extends Omit<
7 omics.StartVariantImportRequest,
8 "destinationName"
9> {}
10
11/**
12 * Runtime binding for `omics:StartVariantImportJob`.
13 *
14 * Bind this operation to a `VariantStore` to get a callable that starts a job
15 * importing VCF variant files into the store — the store name is injected
16 * automatically as `destinationName` and the action is granted on the bound
17 * resource (with `iam:PassRole` for the HealthOmics service role). Provide the
18 * implementation with `Effect.provide(AWS.Omics.StartVariantImportJobHttp)`.
19 * ### Variant Imports
20 * **Example:** Bind StartVariantImportJob to a VariantStore
21 * ```typescript
22 * // init
23 * const startImport = yield* AWS.Omics.StartVariantImportJob(store);
24 * // runtime
25 * const result = yield* startImport({
26 * roleArn,
27 * items: [{ source: "s3://my-bucket/variants.vcf" }],
28 * });
29 * ```
30 *
31 * @binding
32 */
33export interface StartVariantImportJob extends Binding.Service<
34 StartVariantImportJob,
35 "AWS.Omics.StartVariantImportJob",
36 (
37 store: VariantStore,
38 ) => Effect.Effect<
39 (
40 request: StartVariantImportJobRequest,
41 ) => Effect.Effect<
42 omics.StartVariantImportResponse,
43 omics.StartVariantImportJobError
44 >
45 >
46> {}
47
48export const StartVariantImportJob = Binding.Service<StartVariantImportJob>(
49 "AWS.Omics.StartVariantImportJob",
50);