1import type * as emrc from "@distilled.cloud/aws/emr-containers";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { VirtualCluster } from "./VirtualCluster.ts";
5
6/**
7 * Runtime binding for `emr-containers:ListManagedEndpoints`.
8 *
9 * Lists managed endpoints (EMR Studio gateways) on the bound
10 * {@link VirtualCluster}, optionally filtered by state or type. The virtual
11 * cluster ID is injected from the binding. Provide the implementation with
12 * `Effect.provide(AWS.EMRContainers.ListManagedEndpointsHttp)`.
13 * ### Managed Endpoints
14 * **Example:** List Active Endpoints
15 * ```typescript
16 * // init
17 * const listManagedEndpoints =
18 * yield* AWS.EMRContainers.ListManagedEndpoints(virtualCluster);
19 *
20 * // runtime
21 * const { endpoints } = yield* listManagedEndpoints({ states: ["ACTIVE"] });
22 * ```
23 *
24 * @binding
25 */
26export interface ListManagedEndpoints extends Binding.Service<
27 ListManagedEndpoints,
28 "AWS.EMRContainers.ListManagedEndpoints",
29 (
30 virtualCluster: VirtualCluster,
31 ) => Effect.Effect<
32 (
33 request?: Omit<emrc.ListManagedEndpointsRequest, "virtualClusterId">,
34 ) => Effect.Effect<
35 emrc.ListManagedEndpointsResponse,
36 emrc.ListManagedEndpointsError
37 >
38 >
39> {}
40export const ListManagedEndpoints = Binding.Service<ListManagedEndpoints>(
41 "AWS.EMRContainers.ListManagedEndpoints",
42);