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 { FetchReadToken } from "./FetchReadToken.ts";
6
7/**
8 * HTTP implementation of {@link FetchReadToken}.
9 *
10 * @layer
11 * @provides GCP.DeveloperConnect.FetchReadToken
12 */
13export const FetchReadTokenHttp = Layer.effect(
14 FetchReadToken,
15 makeGitRepositoryLinkHttpBinding<
16 developerconnect.FetchReadTokenProjectsLocationsConnectionsGitRepositoryLinksRequest,
17 developerconnect.FetchReadTokenResponse,
18 developerconnect.FetchReadTokenProjectsLocationsConnectionsGitRepositoryLinksError
19 >({
20 tag: "GCP.DeveloperConnect.FetchReadToken",
21 iam: { role: "roles/developerconnect.readTokenAccessor" },
22 operation: Effect.gen(function* () {
23 const call =
24 yield* developerconnect.fetchReadTokenProjectsLocationsConnectionsGitRepositoryLinks;
25 return (
26 input: developerconnect.FetchReadTokenProjectsLocationsConnectionsGitRepositoryLinksRequest,
27 ) => call(input);
28 }),
29 }),
30);