| 1 | import * as developerconnect from "@distilled.cloud/gcp/developerconnect_v1"; |
| 2 | import * as Effect from "effect/Effect"; |
| 3 | import * as Layer from "effect/Layer"; |
| 4 | import { makeGitRepositoryLinkHttpBinding } from "./BindingHttp.ts"; |
| 5 | import { FetchReadWriteToken } from "./FetchReadWriteToken.ts"; |
| 6 | |
| 7 | /** |
| 8 | * HTTP implementation of {@link FetchReadWriteToken}. |
| 9 | * |
| 10 | * @layer |
| 11 | * @provides GCP.DeveloperConnect.FetchReadWriteToken |
| 12 | */ |
| 13 | export 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 | ); |