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 `ModifyBackupAttributes` operation (IAM action
7 * `cloudhsm:ModifyBackupAttributes`).
8 *
9 * Toggles a backup's `NeverExpires` attribute — pin a golden backup so the
10 * cluster's retention policy never deletes it, or unpin it again. Provide
11 * the implementation with
12 * `Effect.provide(AWS.CloudHSMV2.ModifyBackupAttributesHttp)`.
13 * ### Managing Backups
14 * **Example:** Pin A Backup Forever
15 * ```typescript
16 * const modifyBackupAttributes =
17 * yield* AWS.CloudHSMV2.ModifyBackupAttributes();
18 *
19 * yield* modifyBackupAttributes({ BackupId: backupId, NeverExpires: true });
20 * ```
21 *
22 * @binding
23 */
24export interface ModifyBackupAttributes extends Binding.Service<
25 ModifyBackupAttributes,
26 "AWS.CloudHSMV2.ModifyBackupAttributes",
27 () => Effect.Effect<
28 (
29 request: cloudhsm.ModifyBackupAttributesRequest,
30 ) => Effect.Effect<
31 cloudhsm.ModifyBackupAttributesResponse,
32 cloudhsm.ModifyBackupAttributesError
33 >
34 >
35> {}
36export const ModifyBackupAttributes = Binding.Service<ModifyBackupAttributes>(
37 "AWS.CloudHSMV2.ModifyBackupAttributes",
38);