1import type * as codeconnections from "@distilled.cloud/aws/codeconnections";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { RepositoryLink } from "./RepositoryLink.ts";
5
6/**
7 * Request for {@link ListRepositorySyncDefinitions} — the sync type to
8 * list; the repository link ID is injected from the bound resource.
9 */
10export interface ListRepositorySyncDefinitionsRequest extends Omit<
11 codeconnections.ListRepositorySyncDefinitionsInput,
12 "RepositoryLinkId"
13> {}
14
15/**
16 * Runtime binding for `codeconnections:ListRepositorySyncDefinitions`.
17 *
18 * Bind this operation to a {@link RepositoryLink} to enumerate the sync
19 * definitions Git sync tracks for the link — branch, directory, and target
20 * per definition. Provide the implementation with
21 * `Effect.provide(AWS.CodeConnections.ListRepositorySyncDefinitionsHttp)`.
22 * ### Monitoring Git Sync
23 * **Example:** List the Link's Sync Definitions
24 * ```typescript
25 * // init — bind the operation to the repository link
26 * const listRepositorySyncDefinitions =
27 * yield* AWS.CodeConnections.ListRepositorySyncDefinitions(link);
28 *
29 * // runtime
30 * const { RepositorySyncDefinitions } =
31 * yield* listRepositorySyncDefinitions({ SyncType: "CFN_STACK_SYNC" });
32 * ```
33 *
34 * @binding
35 */
36export interface ListRepositorySyncDefinitions extends Binding.Service<
37 ListRepositorySyncDefinitions,
38 "AWS.CodeConnections.ListRepositorySyncDefinitions",
39 (
40 repositoryLink: RepositoryLink,
41 ) => Effect.Effect<
42 (
43 request: ListRepositorySyncDefinitionsRequest,
44 ) => Effect.Effect<
45 codeconnections.ListRepositorySyncDefinitionsOutput,
46 codeconnections.ListRepositorySyncDefinitionsError
47 >
48 >
49> {}
50
51export const ListRepositorySyncDefinitions =
52 Binding.Service<ListRepositorySyncDefinitions>(
53 "AWS.CodeConnections.ListRepositorySyncDefinitions",
54 );