1import * as datapipelines from "@distilled.cloud/gcp/datapipelines_v1";
2import { Credentials } from "@distilled.cloud/gcp/Credentials";
3import * as Layer from "effect/Layer";
4import * as HttpClient from "effect/http/HttpClient";
5import { makePipelineHttpBinding } from "./BindingHttp.ts";
6import { RunPipeline } from "./RunPipeline.ts";
7
8/**
9 * HTTP implementation of {@link RunPipeline}.
10 *
11 * @layer
12 * @provides GCP.DataPipelines.RunPipeline
13 */
14export const RunPipelineHttp: Layer.Layer<
15 RunPipeline,
16 never,
17 Credentials | HttpClient.HttpClient
18> = Layer.effect(
19 RunPipeline,
20 makePipelineHttpBinding<
21 datapipelines.RunProjectsLocationsPipelinesRequest,
22 datapipelines.GoogleCloudDatapipelinesV1RunPipelineResponse,
23 datapipelines.RunProjectsLocationsPipelinesError
24 >({
25 tag: "GCP.DataPipelines.RunPipeline",
26 iam: { role: "roles/datapipelines.invoker" },
27 operation: datapipelines.runProjectsLocationsPipelines,
28 }),
29);