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:StartReplicationTask`.
7 *
8 * Bind this operation (account-level) to start, resume, or reload a
9 * replication task by ARN — the canonical DMS automation (a scheduled
10 * Function that starts CDC during business hours, an event-driven Function
11 * that kicks off a migration when upstream data lands). Provide the
12 * implementation with `Effect.provide(AWS.DMS.StartReplicationTaskHttp)`.
13 * ### Orchestrating Replication Tasks
14 * **Example:** Start a Task
15 * ```typescript
16 * // init — account-level, no target resource
17 * const startReplicationTask = yield* AWS.DMS.StartReplicationTask();
18 *
19 * // runtime
20 * const { ReplicationTask } = yield* startReplicationTask({
21 * ReplicationTaskArn: taskArn,
22 * StartReplicationTaskType: "start-replication",
23 * });
24 * ```
25 *
26 * @binding
27 */
28export interface StartReplicationTask extends Binding.Service<
29 StartReplicationTask,
30 "AWS.DMS.StartReplicationTask",
31 () => Effect.Effect<
32 (
33 request: dms.StartReplicationTaskMessage,
34 ) => Effect.Effect<
35 dms.StartReplicationTaskResponse,
36 dms.StartReplicationTaskError
37 >
38 >
39> {}
40
41export const StartReplicationTask = Binding.Service<StartReplicationTask>(
42 "AWS.DMS.StartReplicationTask",
43);