1import type * as qbusiness from "@distilled.cloud/aws/qbusiness";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { DataSource } from "./DataSource.ts";
5
6/**
7 * `StopDataSourceSyncJob` request with `applicationId` + `indexId` + `dataSourceId` injected from the bound data source.
8 */
9export interface StopDataSourceSyncJobRequest extends Omit<
10 qbusiness.StopDataSourceSyncJobRequest,
11 "applicationId" | "indexId" | "dataSourceId"
12> {}
13
14/**
15 * Runtime binding for the `StopDataSourceSyncJob` operation (IAM action
16 * `qbusiness:StopDataSourceSyncJob`), scoped to one {@link DataSource}.
17 *
18 * Stops the data source's running synchronization job.
19 * Provide the implementation with
20 * `Effect.provide(AWS.QBusiness.StopDataSourceSyncJobHttp)`.
21 *
22 * ### Data Source Sync
23 * **Example:** Stop the Running Sync Job
24 * ```typescript
25 * const stopSync = yield* AWS.QBusiness.StopDataSourceSyncJob(source);
26 *
27 * yield* stopSync();
28 * ```
29 *
30 * @binding
31 */
32export interface StopDataSourceSyncJob extends Binding.Service<
33 StopDataSourceSyncJob,
34 "AWS.QBusiness.StopDataSourceSyncJob",
35 (
36 dataSource: DataSource,
37 ) => Effect.Effect<
38 (
39 request?: StopDataSourceSyncJobRequest,
40 ) => Effect.Effect<
41 qbusiness.StopDataSourceSyncJobResponse,
42 qbusiness.StopDataSourceSyncJobError
43 >
44 >
45> {}
46export const StopDataSourceSyncJob = Binding.Service<StopDataSourceSyncJob>(
47 "AWS.QBusiness.StopDataSourceSyncJob",
48);