1import type * as controltower from "@distilled.cloud/aws/controltower";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for `controltower:ListBaselines`.
7 *
8 * An account-level operation that enumerates the Control Tower baseline
9 * catalog (e.g. `AWSControlTowerBaseline`, `AuditBaseline`,
10 * `LogArchiveBaseline`). Useful for governance functions that discover the
11 * baseline ARN to enable on an organizational unit. Provide the
12 * implementation with `Effect.provide(AWS.ControlTower.ListBaselinesHttp)`.
13 * ### Browsing the Baseline Catalog
14 * **Example:** List the Available Baselines
15 * ```typescript
16 * // init — account-level binding takes no resource
17 * const listBaselines = yield* AWS.ControlTower.ListBaselines();
18 *
19 * // runtime
20 * const result = yield* listBaselines();
21 * const ouBaseline = result.baselines.find(
22 * (b) => b.name === "AWSControlTowerBaseline",
23 * );
24 * ```
25 *
26 * @binding
27 */
28export interface ListBaselines extends Binding.Service<
29 ListBaselines,
30 "AWS.ControlTower.ListBaselines",
31 () => Effect.Effect<
32 (
33 request?: controltower.ListBaselinesInput,
34 ) => Effect.Effect<
35 controltower.ListBaselinesOutput,
36 controltower.ListBaselinesError
37 >
38 >
39> {}
40
41export const ListBaselines = Binding.Service<ListBaselines>(
42 "AWS.ControlTower.ListBaselines",
43);