1import type * as ds from "@distilled.cloud/aws/directory-service";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for the `DescribeDirectories` operation (IAM action
7 * `ds:DescribeDirectories`).
8 *
9 * Reads directory descriptions at runtime — stage, DNS addresses, VPC
10 * settings — for some or all of the account's directories. The action does
11 * not support resource-level permissions, so the grant is account-wide.
12 * Provide the implementation with
13 * `Effect.provide(AWS.DirectoryService.DescribeDirectoriesHttp)`.
14 * ### Reading Directories
15 * **Example:** Read a Directory's Stage and DNS Servers
16 * ```typescript
17 * // init — request the account-level capability
18 * const describeDirectories = yield* AWS.DirectoryService.DescribeDirectories();
19 *
20 * // runtime
21 * const { DirectoryDescriptions } = yield* describeDirectories({
22 * DirectoryIds: [directoryId],
23 * });
24 * const directory = DirectoryDescriptions?.[0];
25 * console.log(directory?.Stage, directory?.DnsIpAddrs);
26 * ```
27 *
28 * @binding
29 */
30export interface DescribeDirectories extends Binding.Service<
31 DescribeDirectories,
32 "AWS.DirectoryService.DescribeDirectories",
33 () => Effect.Effect<
34 (
35 request?: ds.DescribeDirectoriesRequest,
36 ) => Effect.Effect<
37 ds.DescribeDirectoriesResult,
38 ds.DescribeDirectoriesError
39 >
40 >
41> {}
42export const DescribeDirectories = Binding.Service<DescribeDirectories>(
43 "AWS.DirectoryService.DescribeDirectories",
44);