1import * as kafka from "@distilled.cloud/gcp/managedkafka_v1";
2import { Credentials } from "@distilled.cloud/gcp/Credentials";
3import * as Layer from "effect/Layer";
4import * as HttpClient from "effect/http/HttpClient";
5import { makeManagedKafkaHttpBinding } from "./BindingHttp.ts";
6import type { ConnectCluster } from "./ConnectCluster.ts";
7import { GetConnectCluster } from "./GetConnectCluster.ts";
8
9/**
10 * HTTP implementation of {@link GetConnectCluster}.
11 *
12 * @layer
13 * @provides GCP.ManagedKafka.GetConnectCluster
14 */
15export const GetConnectClusterHttp: Layer.Layer<
16 GetConnectCluster,
17 never,
18 Credentials | HttpClient.HttpClient
19> = Layer.effect(
20 GetConnectCluster,
21 makeManagedKafkaHttpBinding<ConnectCluster>()<
22 kafka.GetProjectsLocationsConnectClustersRequest,
23 kafka.ConnectCluster,
24 kafka.GetProjectsLocationsConnectClustersError
25 >({
26 tag: "GCP.ManagedKafka.GetConnectCluster",
27 iam: { role: "roles/managedkafka.viewer", scopeByCondition: true },
28 operation: kafka.getProjectsLocationsConnectClusters,
29 }),
30);