1import * as developerconnect from "@distilled.cloud/gcp/developerconnect_v1";
2import * as Effect from "effect/Effect";
3import * as Layer from "effect/Layer";
4import { makeGitRepositoryLinkHttpBinding } from "./BindingHttp.ts";
5import { FetchGitRefs } from "./FetchGitRefs.ts";
6
7/**
8 * HTTP implementation of {@link FetchGitRefs}.
9 *
10 * @layer
11 * @provides GCP.DeveloperConnect.FetchGitRefs
12 */
13export const FetchGitRefsHttp = Layer.effect(
14 FetchGitRefs,
15 makeGitRepositoryLinkHttpBinding<
16 developerconnect.FetchGitRefsProjectsLocationsConnectionsGitRepositoryLinksRequest,
17 developerconnect.FetchGitRefsResponse,
18 developerconnect.FetchGitRefsProjectsLocationsConnectionsGitRepositoryLinksError
19 >({
20 tag: "GCP.DeveloperConnect.FetchGitRefs",
21 iam: { role: "roles/developerconnect.user" },
22 operation: Effect.gen(function* () {
23 const call =
24 yield* developerconnect.fetchGitRefsProjectsLocationsConnectionsGitRepositoryLinks;
25 return (
26 input: developerconnect.FetchGitRefsProjectsLocationsConnectionsGitRepositoryLinksRequest,
27 ) => call(input);
28 }),
29 }),
30);