1import type * as bedrock from "@distilled.cloud/aws/bedrock-agent";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { DataSource } from "./DataSource.ts";
5
6/**
7 * The `DeleteKnowledgeBaseDocuments` request with the binding-injected
8 * `knowledgeBaseId` and `dataSourceId` removed — they are supplied
9 * automatically from the bound {@link DataSource}.
10 */
11export interface DeleteKnowledgeBaseDocumentsRequest extends Omit<
12 bedrock.DeleteKnowledgeBaseDocumentsRequest,
13 "knowledgeBaseId" | "dataSourceId"
14> {}
15
16/**
17 * Runtime binding for `bedrock-agent:DeleteKnowledgeBaseDocuments` — remove
18 * specific documents from the bound {@link DataSource}'s knowledge base
19 * index.
20 *
21 * The binding grants the function `bedrock:DeleteKnowledgeBaseDocuments`
22 * scoped to the data source's parent knowledge base.
23 *
24 * ### Direct Document Ingestion
25 * **Example:** Delete a Document
26 * ```typescript
27 * // init
28 * const deleteDocuments =
29 * yield* Bedrock.DeleteKnowledgeBaseDocuments(dataSource);
30 *
31 * // runtime
32 * yield* deleteDocuments({
33 * documentIdentifiers: [
34 * { dataSourceType: "CUSTOM", custom: { id: "welcome-doc" } },
35 * ],
36 * });
37 * ```
38 *
39 * @binding
40 */
41export interface DeleteKnowledgeBaseDocuments extends Binding.Service<
42 DeleteKnowledgeBaseDocuments,
43 "AWS.Bedrock.DeleteKnowledgeBaseDocuments",
44 <D extends DataSource>(
45 dataSource: D,
46 ) => Effect.Effect<
47 (
48 request: DeleteKnowledgeBaseDocumentsRequest,
49 ) => Effect.Effect<
50 bedrock.DeleteKnowledgeBaseDocumentsResponse,
51 bedrock.DeleteKnowledgeBaseDocumentsError
52 >
53 >
54> {}
55export const DeleteKnowledgeBaseDocuments =
56 Binding.Service<DeleteKnowledgeBaseDocuments>(
57 "AWS.Bedrock.DeleteKnowledgeBaseDocuments",
58 );