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