1import type * as dms from "@distilled.cloud/aws/database-migration-service";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { Endpoint } from "./Endpoint.ts";
5
6/**
7 * Runtime binding for `dms:DescribeSchemas`.
8 *
9 * Bind this operation to an {@link Endpoint} to list the schemas DMS
10 * discovered at the endpoint's database (populated by a prior
11 * `RefreshSchemas` run against a replication instance). Provide the
12 * implementation with `Effect.provide(AWS.DMS.DescribeSchemasHttp)`.
13 * ### Listing Discovered Schemas
14 * **Example:** List Schemas at a Source Endpoint
15 * ```typescript
16 * // init — bind the operation to the endpoint
17 * const describeSchemas = yield* AWS.DMS.DescribeSchemas(source);
18 *
19 * // runtime
20 * const { Schemas } = yield* describeSchemas();
21 * ```
22 *
23 * @binding
24 */
25export interface DescribeSchemas extends Binding.Service<
26 DescribeSchemas,
27 "AWS.DMS.DescribeSchemas",
28 (
29 endpoint: Endpoint,
30 ) => Effect.Effect<
31 (
32 request?: Omit<dms.DescribeSchemasMessage, "EndpointArn">,
33 ) => Effect.Effect<dms.DescribeSchemasResponse, dms.DescribeSchemasError>
34 >
35> {}
36
37export const DescribeSchemas = Binding.Service<DescribeSchemas>(
38 "AWS.DMS.DescribeSchemas",
39);