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 `DescribeDBInstances` operation (IAM action
7 * `rds:DescribeDBInstances`).
8 *
9 * Lists the account's RDS instances (or one instance by identifier) —
10 * status, endpoint, storage, engine version — for health checks and
11 * instance discovery. Provide the implementation with
12 * `Effect.provide(AWS.RDS.DescribeDBInstancesHttp)`.
13 * ### Monitoring Databases
14 * **Example:** Check an Instance's Status
15 * ```typescript
16 * const describeDBInstances = yield* AWS.RDS.DescribeDBInstances();
17 *
18 * const page = yield* describeDBInstances({
19 * DBInstanceIdentifier: instanceId,
20 * });
21 * const status = page.DBInstances?.[0]?.DBInstanceStatus;
22 * ```
23 *
24 * @binding
25 */
26export interface DescribeDBInstances extends Binding.Service<
27 DescribeDBInstances,
28 "AWS.RDS.DescribeDBInstances",
29 () => Effect.Effect<
30 (
31 request?: rds.DescribeDBInstancesMessage,
32 ) => Effect.Effect<rds.DBInstanceMessage, rds.DescribeDBInstancesError>
33 >
34> {}
35export const DescribeDBInstances = Binding.Service<DescribeDBInstances>(
36 "AWS.RDS.DescribeDBInstances",
37);