1import type * as neptune from "@distilled.cloud/aws/neptune";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for the `DescribeDBClusterEndpoints` operation (IAM action
7 * `rds:DescribeDBClusterEndpoints`).
8 *
9 * Lists a Neptune cluster's endpoints — the writer, reader, and any custom
10 * endpoints — so a function can discover the host names to route Gremlin or
11 * openCypher traffic to. Provide the implementation with
12 * `Effect.provide(AWS.Neptune.DescribeDBClusterEndpointsHttp)`.
13 * ### Monitoring Clusters
14 * **Example:** Discover a Cluster's Endpoints
15 * ```typescript
16 * const describeDBClusterEndpoints =
17 * yield* AWS.Neptune.DescribeDBClusterEndpoints();
18 *
19 * const page = yield* describeDBClusterEndpoints({
20 * DBClusterIdentifier: clusterId,
21 * });
22 * const endpoints = page.DBClusterEndpoints?.map((e) => e.Endpoint);
23 * ```
24 *
25 * @binding
26 */
27export interface DescribeDBClusterEndpoints extends Binding.Service<
28 DescribeDBClusterEndpoints,
29 "AWS.Neptune.DescribeDBClusterEndpoints",
30 () => Effect.Effect<
31 (
32 request?: neptune.DescribeDBClusterEndpointsMessage,
33 ) => Effect.Effect<
34 neptune.DBClusterEndpointMessage,
35 neptune.DescribeDBClusterEndpointsError
36 >
37 >
38> {}
39export const DescribeDBClusterEndpoints =
40 Binding.Service<DescribeDBClusterEndpoints>(
41 "AWS.Neptune.DescribeDBClusterEndpoints",
42 );