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:DescribeReplicationTasks`.
7 *
8 * Bind this operation (account-level) to look up replication tasks and
9 * their status/progress — filter by `replication-task-id`,
10 * `replication-task-arn`, `endpoint-arn`, or `replication-instance-arn`.
11 * The building block of migration monitoring and start/stop automation
12 * (pair with {@link StartReplicationTask} / {@link StopReplicationTask}).
13 * Provide the implementation with
14 * `Effect.provide(AWS.DMS.DescribeReplicationTasksHttp)`.
15 * ### Orchestrating Replication Tasks
16 * **Example:** Check a Task's Status Before Starting It
17 * ```typescript
18 * // init — account-level, no target resource
19 * const describeReplicationTasks = yield* AWS.DMS.DescribeReplicationTasks();
20 *
21 * // runtime
22 * const { ReplicationTasks } = yield* describeReplicationTasks({
23 * Filters: [{ Name: "replication-task-arn", Values: [taskArn] }],
24 * });
25 * // ReplicationTasks[0].Status: "ready" | "running" | "stopped" | …
26 * ```
27 *
28 * @binding
29 */
30export interface DescribeReplicationTasks extends Binding.Service<
31 DescribeReplicationTasks,
32 "AWS.DMS.DescribeReplicationTasks",
33 () => Effect.Effect<
34 (
35 request?: dms.DescribeReplicationTasksMessage,
36 ) => Effect.Effect<
37 dms.DescribeReplicationTasksResponse,
38 dms.DescribeReplicationTasksError
39 >
40 >
41> {}
42
43export const DescribeReplicationTasks =
44 Binding.Service<DescribeReplicationTasks>("AWS.DMS.DescribeReplicationTasks");