1import type * as dms from "@distilled.cloud/aws/database-migration-service";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for `dms:StartReplication`.
7 *
8 * Bind this operation (account-level) to start a DMS Serverless replication
9 * for a replication config by ARN — DMS provisions the required capacity
10 * and begins replicating. The serverless counterpart of
11 * {@link StartReplicationTask}. Provide the implementation with
12 * `Effect.provide(AWS.DMS.StartReplicationHttp)`.
13 * ### Orchestrating Serverless Replications
14 * **Example:** Start a Serverless Replication
15 * ```typescript
16 * // init — account-level, no target resource
17 * const startReplication = yield* AWS.DMS.StartReplication();
18 *
19 * // runtime
20 * const { Replication } = yield* startReplication({
21 * ReplicationConfigArn: configArn,
22 * StartReplicationType: "start-replication",
23 * });
24 * ```
25 *
26 * @binding
27 */
28export interface StartReplication extends Binding.Service<
29 StartReplication,
30 "AWS.DMS.StartReplication",
31 () => Effect.Effect<
32 (
33 request: dms.StartReplicationMessage,
34 ) => Effect.Effect<dms.StartReplicationResponse, dms.StartReplicationError>
35 >
36> {}
37
38export const StartReplication = Binding.Service<StartReplication>(
39 "AWS.DMS.StartReplication",
40);