1import type * as rds from "@distilled.cloud/aws/rds";
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 RDS events (instance/cluster/snapshot/parameter-group
10 * lifecycle notifications from the last 14 days) — the pull-based
11 * counterpart to {@link consumeRdsEvents}. Provide the implementation with
12 * `Effect.provide(AWS.RDS.DescribeEventsHttp)`.
13 * ### Monitoring Databases
14 * **Example:** List Recent Events for a Cluster
15 * ```typescript
16 * const describeEvents = yield* AWS.RDS.DescribeEvents();
17 *
18 * const page = yield* describeEvents({
19 * SourceType: "db-cluster",
20 * SourceIdentifier: clusterId,
21 * });
22 * ```
23 *
24 * @binding
25 */
26export interface DescribeEvents extends Binding.Service<
27 DescribeEvents,
28 "AWS.RDS.DescribeEvents",
29 () => Effect.Effect<
30 (
31 request?: rds.DescribeEventsMessage,
32 ) => Effect.Effect<rds.EventsMessage, rds.DescribeEventsError>
33 >
34> {}
35export const DescribeEvents = Binding.Service<DescribeEvents>(
36 "AWS.RDS.DescribeEvents",
37);