1import * as storagetransfer from "@distilled.cloud/gcp/storagetransfer_v1";
2import { Credentials } from "@distilled.cloud/gcp/Credentials";
3import * as Layer from "effect/Layer";
4import * as HttpClient from "effect/http/HttpClient";
5import { makeTransferJobHttpBinding } from "./BindingHttp.ts";
6import { RunTransferJob } from "./RunTransferJob.ts";
7
8/**
9 * HTTP implementation of {@link RunTransferJob}.
10 *
11 * @layer
12 * @provides GCP.StorageTransfer.RunTransferJob
13 */
14export const RunTransferJobHttp: Layer.Layer<
15 RunTransferJob,
16 never,
17 Credentials | HttpClient.HttpClient
18> = Layer.effect(
19 RunTransferJob,
20 makeTransferJobHttpBinding<
21 storagetransfer.RunTransferJobsRequest,
22 storagetransfer.Operation,
23 storagetransfer.RunTransferJobsError
24 >({
25 tag: "GCP.StorageTransfer.RunTransferJob",
26 iam: { role: "roles/storagetransfer.user" },
27 operation: storagetransfer.runTransferJobs,
28 projectInBody: true,
29 }),
30);