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 `CopyBackupToRegion` operation (IAM action
7 * `cloudhsm:CopyBackupToRegion`; the grant includes
8 * `cloudhsm:TagResource` so user tags on the source backup can be copied to
9 * the destination backup).
10 *
11 * Copies a CloudHSM cluster backup into another region — the building block
12 * of cross-region disaster-recovery automation. Provide the implementation
13 * with `Effect.provide(AWS.CloudHSMV2.CopyBackupToRegionHttp)`.
14 * ### Managing Backups
15 * **Example:** Copy A Backup For Disaster Recovery
16 * ```typescript
17 * const copyBackupToRegion = yield* AWS.CloudHSMV2.CopyBackupToRegion();
18 *
19 * const copy = yield* copyBackupToRegion({
20 * DestinationRegion: "us-east-1",
21 * BackupId: backupId,
22 * });
23 * // copy.DestinationBackup?.SourceBackup === backupId
24 * ```
25 *
26 * @binding
27 */
28export interface CopyBackupToRegion extends Binding.Service<
29 CopyBackupToRegion,
30 "AWS.CloudHSMV2.CopyBackupToRegion",
31 () => Effect.Effect<
32 (
33 request: cloudhsm.CopyBackupToRegionRequest,
34 ) => Effect.Effect<
35 cloudhsm.CopyBackupToRegionResponse,
36 cloudhsm.CopyBackupToRegionError
37 >
38 >
39> {}
40export const CopyBackupToRegion = Binding.Service<CopyBackupToRegion>(
41 "AWS.CloudHSMV2.CopyBackupToRegion",
42);