1import type * as cloudhsm from "@distilled.cloud/aws/cloudhsm-v2";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for the `DescribeBackups` operation (IAM action
7 * `cloudhsm:DescribeBackups`).
8 *
9 * Lists the account's CloudHSM cluster backups (or backups shared with the
10 * account when `Shared` is true), optionally filtered by backup id, cluster
11 * id or state — the observation half of backup-retention and disaster-
12 * recovery automation. Provide the implementation with
13 * `Effect.provide(AWS.CloudHSMV2.DescribeBackupsHttp)`.
14 * ### Managing Backups
15 * **Example:** List A Cluster's Ready Backups
16 * ```typescript
17 * const describeBackups = yield* AWS.CloudHSMV2.DescribeBackups();
18 *
19 * const page = yield* describeBackups({
20 * Filters: { clusterIds: [clusterId], states: ["READY"] },
21 * });
22 * ```
23 *
24 * @binding
25 */
26export interface DescribeBackups extends Binding.Service<
27 DescribeBackups,
28 "AWS.CloudHSMV2.DescribeBackups",
29 () => Effect.Effect<
30 (
31 request?: cloudhsm.DescribeBackupsRequest,
32 ) => Effect.Effect<
33 cloudhsm.DescribeBackupsResponse,
34 cloudhsm.DescribeBackupsError
35 >
36 >
37> {}
38export const DescribeBackups = Binding.Service<DescribeBackups>(
39 "AWS.CloudHSMV2.DescribeBackups",
40);