1import type * as dlm from "@distilled.cloud/aws/dlm";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for `dlm:GetLifecyclePolicies`.
7 *
8 * Enumerates the account's Data Lifecycle Manager policies (optionally
9 * filtered by state, resource type, or target tags) — the building block of
10 * backup-coverage auditing: list every policy, flag the ones in `ERROR`, or
11 * verify a fleet's tags are actually covered by an `ENABLED` policy.
12 * Provide the implementation with
13 * `Effect.provide(AWS.DLM.GetLifecyclePoliciesHttp)`.
14 * ### Monitoring Lifecycle Policies
15 * **Example:** Find Failed Policies
16 * ```typescript
17 * // init — account-level binding, no resource argument
18 * const getLifecyclePolicies = yield* AWS.DLM.GetLifecyclePolicies();
19 *
20 * // runtime
21 * const { Policies } = yield* getLifecyclePolicies({ State: "ERROR" });
22 * for (const policy of Policies ?? []) {
23 * yield* Effect.logError(`DLM policy in ERROR: ${policy.PolicyId}`);
24 * }
25 * ```
26 *
27 * @binding
28 */
29export interface GetLifecyclePolicies extends Binding.Service<
30 GetLifecyclePolicies,
31 "AWS.DLM.GetLifecyclePolicies",
32 () => Effect.Effect<
33 (
34 request?: dlm.GetLifecyclePoliciesRequest,
35 ) => Effect.Effect<
36 dlm.GetLifecyclePoliciesResponse,
37 dlm.GetLifecyclePoliciesError
38 >
39 >
40> {}
41export const GetLifecyclePolicies = Binding.Service<GetLifecyclePolicies>(
42 "AWS.DLM.GetLifecyclePolicies",
43);