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 `DescribeEvents` operation (IAM action
7 * `rds:DescribeEvents`).
8 *
9 * Lists recent events (failovers, maintenance, snapshots, parameter changes)
10 * for the account's Neptune clusters and instances — the audit trail for
11 * operational tooling. Provide the implementation with
12 * `Effect.provide(AWS.Neptune.DescribeEventsHttp)`.
13 * ### Monitoring Clusters
14 * **Example:** List a Cluster's Recent Events
15 * ```typescript
16 * const describeEvents = yield* AWS.Neptune.DescribeEvents();
17 *
18 * const page = yield* describeEvents({
19 * SourceIdentifier: clusterId,
20 * SourceType: "db-cluster",
21 * });
22 * const messages = page.Events?.map((e) => e.Message);
23 * ```
24 *
25 * @binding
26 */
27export interface DescribeEvents extends Binding.Service<
28 DescribeEvents,
29 "AWS.Neptune.DescribeEvents",
30 () => Effect.Effect<
31 (
32 request?: neptune.DescribeEventsMessage,
33 ) => Effect.Effect<neptune.EventsMessage, neptune.DescribeEventsError>
34 >
35> {}
36export const DescribeEvents = Binding.Service<DescribeEvents>(
37 "AWS.Neptune.DescribeEvents",
38);