@anvailabs/proximadb-client 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +160 -0
- package/dist/client.d.ts +319 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +681 -0
- package/dist/client.js.map +1 -0
- package/dist/collection.d.ts +227 -0
- package/dist/collection.d.ts.map +1 -0
- package/dist/collection.js +436 -0
- package/dist/collection.js.map +1 -0
- package/dist/esm/client.js +674 -0
- package/dist/esm/client.js.map +1 -0
- package/dist/esm/collection.js +428 -0
- package/dist/esm/collection.js.map +1 -0
- package/dist/esm/filter.js +228 -0
- package/dist/esm/filter.js.map +1 -0
- package/dist/esm/generated/schema.js +6 -0
- package/dist/esm/generated/schema.js.map +1 -0
- package/dist/esm/graph.js +678 -0
- package/dist/esm/graph.js.map +1 -0
- package/dist/esm/index.js +86 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/search.js +317 -0
- package/dist/esm/search.js.map +1 -0
- package/dist/esm/transport.js +33 -0
- package/dist/esm/transport.js.map +1 -0
- package/dist/esm/types.js +181 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/filter.d.ts +51 -0
- package/dist/filter.d.ts.map +1 -0
- package/dist/filter.js +241 -0
- package/dist/filter.js.map +1 -0
- package/dist/generated/schema.d.ts +4271 -0
- package/dist/generated/schema.d.ts.map +1 -0
- package/dist/generated/schema.js +7 -0
- package/dist/generated/schema.js.map +1 -0
- package/dist/graph.d.ts +350 -0
- package/dist/graph.d.ts.map +1 -0
- package/dist/graph.js +690 -0
- package/dist/graph.js.map +1 -0
- package/dist/index.d.ts +58 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +126 -0
- package/dist/index.js.map +1 -0
- package/dist/search.d.ts +160 -0
- package/dist/search.d.ts.map +1 -0
- package/dist/search.js +322 -0
- package/dist/search.js.map +1 -0
- package/dist/transport.d.ts +40 -0
- package/dist/transport.d.ts.map +1 -0
- package/dist/transport.js +39 -0
- package/dist/transport.js.map +1 -0
- package/dist/types.d.ts +632 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +185 -0
- package/dist/types.js.map +1 -0
- package/package.json +72 -0
- package/src/client.ts +856 -0
- package/src/collection.ts +578 -0
- package/src/filter.ts +280 -0
- package/src/generated/schema.ts +4271 -0
- package/src/graph.ts +811 -0
- package/src/index.ts +184 -0
- package/src/search.ts +401 -0
- package/src/transport.ts +52 -0
- package/src/types.ts +726 -0
|
@@ -0,0 +1,4271 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file was auto-generated by openapi-typescript.
|
|
3
|
+
* Do not make direct changes to the file.
|
|
4
|
+
*/
|
|
5
|
+
export interface paths {
|
|
6
|
+
"/api/v2/collections": {
|
|
7
|
+
parameters: {
|
|
8
|
+
query?: never;
|
|
9
|
+
header?: never;
|
|
10
|
+
path?: never;
|
|
11
|
+
cookie?: never;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* List collections.
|
|
15
|
+
* @description List all collections with pagination.
|
|
16
|
+
*
|
|
17
|
+
* ## Query Parameters
|
|
18
|
+
*
|
|
19
|
+
* - `limit`: Maximum number of collections to return (default: 100)
|
|
20
|
+
* - `offset`: Offset for pagination (default: 0)
|
|
21
|
+
* - `include_stats`: Whether to include collection statistics
|
|
22
|
+
*
|
|
23
|
+
* ## Response
|
|
24
|
+
*
|
|
25
|
+
* Returns [`ListCollectionsV2Response`] with collection list.
|
|
26
|
+
*
|
|
27
|
+
* ## Errors
|
|
28
|
+
*
|
|
29
|
+
* - `500 Internal Server Error`: List operation failed
|
|
30
|
+
*/
|
|
31
|
+
get: operations["listCollections"];
|
|
32
|
+
put?: never;
|
|
33
|
+
/**
|
|
34
|
+
* Create a collection with optional schema.
|
|
35
|
+
* @description Create a new collection with optional schema support.
|
|
36
|
+
*
|
|
37
|
+
* ## Request Body
|
|
38
|
+
*
|
|
39
|
+
* See [`CreateCollectionV2Request`] for the expected JSON format.
|
|
40
|
+
*
|
|
41
|
+
* ## Response
|
|
42
|
+
*
|
|
43
|
+
* Returns [`CreateCollectionV2Response`] with collection details.
|
|
44
|
+
*
|
|
45
|
+
* ## Errors
|
|
46
|
+
*
|
|
47
|
+
* - `400 Bad Request`: Invalid request or schema
|
|
48
|
+
* - `409 Conflict`: Collection already exists
|
|
49
|
+
* - `500 Internal Server Error`: Creation failed
|
|
50
|
+
*/
|
|
51
|
+
post: operations["createCollection"];
|
|
52
|
+
delete?: never;
|
|
53
|
+
options?: never;
|
|
54
|
+
head?: never;
|
|
55
|
+
patch?: never;
|
|
56
|
+
trace?: never;
|
|
57
|
+
};
|
|
58
|
+
"/api/v2/collections/{collection_id}": {
|
|
59
|
+
parameters: {
|
|
60
|
+
query?: never;
|
|
61
|
+
header?: never;
|
|
62
|
+
path?: never;
|
|
63
|
+
cookie?: never;
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Get collection details.
|
|
67
|
+
* @description Get collection details including schema and statistics.
|
|
68
|
+
*
|
|
69
|
+
* ## Path Parameters
|
|
70
|
+
*
|
|
71
|
+
* - `collection_id`: Collection name/ID
|
|
72
|
+
*
|
|
73
|
+
* ## Response
|
|
74
|
+
*
|
|
75
|
+
* Returns [`CollectionV2Response`] with collection details.
|
|
76
|
+
*
|
|
77
|
+
* ## Errors
|
|
78
|
+
*
|
|
79
|
+
* - `404 Not Found`: Collection does not exist
|
|
80
|
+
* - `500 Internal Server Error`: Retrieval failed
|
|
81
|
+
*/
|
|
82
|
+
get: operations["getCollection"];
|
|
83
|
+
put?: never;
|
|
84
|
+
post?: never;
|
|
85
|
+
/**
|
|
86
|
+
* Delete a collection.
|
|
87
|
+
* @description Delete a collection by ID/name. This v2 route keeps SDK lifecycle methods on
|
|
88
|
+
* the ProximaRecord-era API while delegating to the existing collection control
|
|
89
|
+
* plane.
|
|
90
|
+
*/
|
|
91
|
+
delete: operations["deleteCollection"];
|
|
92
|
+
options?: never;
|
|
93
|
+
head?: never;
|
|
94
|
+
patch?: never;
|
|
95
|
+
trace?: never;
|
|
96
|
+
};
|
|
97
|
+
"/api/v2/collections/{collection_id}/documents": {
|
|
98
|
+
parameters: {
|
|
99
|
+
query?: never;
|
|
100
|
+
header?: never;
|
|
101
|
+
path?: never;
|
|
102
|
+
cookie?: never;
|
|
103
|
+
};
|
|
104
|
+
get?: never;
|
|
105
|
+
put?: never;
|
|
106
|
+
/**
|
|
107
|
+
* Ingest documents for native server-side embedding.
|
|
108
|
+
* @description Canonical document-ingest surface (ADR-041, spec-driven-primary). Body `{records:[{id,text,metadata}]}`; the server embeds `text` natively under `X-Embed-Source=native` (default) when no per-record `vector` is supplied. `X-Tenant-ID` scopes records to a tenant; `X-Ingest-Mode` carries the billing mode.
|
|
109
|
+
*/
|
|
110
|
+
post: operations["ingestDocuments"];
|
|
111
|
+
delete?: never;
|
|
112
|
+
options?: never;
|
|
113
|
+
head?: never;
|
|
114
|
+
patch?: never;
|
|
115
|
+
trace?: never;
|
|
116
|
+
};
|
|
117
|
+
"/api/v2/collections/{collection_id}/entities": {
|
|
118
|
+
parameters: {
|
|
119
|
+
query?: never;
|
|
120
|
+
header?: never;
|
|
121
|
+
path?: never;
|
|
122
|
+
cookie?: never;
|
|
123
|
+
};
|
|
124
|
+
get?: never;
|
|
125
|
+
put?: never;
|
|
126
|
+
post: operations["upsert_entity_v2"];
|
|
127
|
+
delete?: never;
|
|
128
|
+
options?: never;
|
|
129
|
+
head?: never;
|
|
130
|
+
patch?: never;
|
|
131
|
+
trace?: never;
|
|
132
|
+
};
|
|
133
|
+
"/api/v2/collections/{collection_id}/entities/search": {
|
|
134
|
+
parameters: {
|
|
135
|
+
query?: never;
|
|
136
|
+
header?: never;
|
|
137
|
+
path?: never;
|
|
138
|
+
cookie?: never;
|
|
139
|
+
};
|
|
140
|
+
get?: never;
|
|
141
|
+
put?: never;
|
|
142
|
+
post: operations["search_entities_v2"];
|
|
143
|
+
delete?: never;
|
|
144
|
+
options?: never;
|
|
145
|
+
head?: never;
|
|
146
|
+
patch?: never;
|
|
147
|
+
trace?: never;
|
|
148
|
+
};
|
|
149
|
+
"/api/v2/collections/{collection_id}/entities/{entity_id}": {
|
|
150
|
+
parameters: {
|
|
151
|
+
query?: never;
|
|
152
|
+
header?: never;
|
|
153
|
+
path?: never;
|
|
154
|
+
cookie?: never;
|
|
155
|
+
};
|
|
156
|
+
get: operations["get_entity_v2"];
|
|
157
|
+
put?: never;
|
|
158
|
+
post?: never;
|
|
159
|
+
delete: operations["delete_entity_v2"];
|
|
160
|
+
options?: never;
|
|
161
|
+
head?: never;
|
|
162
|
+
patch?: never;
|
|
163
|
+
trace?: never;
|
|
164
|
+
};
|
|
165
|
+
"/api/v2/collections/{collection_id}/records/batch": {
|
|
166
|
+
parameters: {
|
|
167
|
+
query?: never;
|
|
168
|
+
header?: never;
|
|
169
|
+
path?: never;
|
|
170
|
+
cookie?: never;
|
|
171
|
+
};
|
|
172
|
+
get?: never;
|
|
173
|
+
put?: never;
|
|
174
|
+
/**
|
|
175
|
+
* Insert or upsert ProximaRecord batches.
|
|
176
|
+
* @description Insert ProximaRecords into a collection with typed field support.
|
|
177
|
+
*
|
|
178
|
+
* ## Request Body
|
|
179
|
+
*
|
|
180
|
+
* See [`InsertRecordsRequest`] for the expected JSON format.
|
|
181
|
+
*
|
|
182
|
+
* ## Response
|
|
183
|
+
*
|
|
184
|
+
* Returns [`InsertRecordsResponse`] with counts and any errors.
|
|
185
|
+
*
|
|
186
|
+
* ## Errors
|
|
187
|
+
*
|
|
188
|
+
* - `400 Bad Request`: Invalid request format or validation error
|
|
189
|
+
* - `404 Not Found`: Collection does not exist
|
|
190
|
+
* - `500 Internal Server Error`: Storage or processing error
|
|
191
|
+
*/
|
|
192
|
+
post: operations["insertRecords"];
|
|
193
|
+
delete?: never;
|
|
194
|
+
options?: never;
|
|
195
|
+
head?: never;
|
|
196
|
+
patch?: never;
|
|
197
|
+
trace?: never;
|
|
198
|
+
};
|
|
199
|
+
"/api/v2/collections/{collection_id}/records/scan": {
|
|
200
|
+
parameters: {
|
|
201
|
+
query?: never;
|
|
202
|
+
header?: never;
|
|
203
|
+
path?: never;
|
|
204
|
+
cookie?: never;
|
|
205
|
+
};
|
|
206
|
+
get?: never;
|
|
207
|
+
put?: never;
|
|
208
|
+
/**
|
|
209
|
+
* Paginated scan of records in a collection.
|
|
210
|
+
* @description Returns the next page of records (TD-099 acceptance 2 + 3, live).
|
|
211
|
+
* Cursor-based pagination: pass the response's `next_cursor` back as
|
|
212
|
+
* `cursor` to fetch the next page; a `null` cursor means the scan is
|
|
213
|
+
* exhausted. Cursors are minted and validated against the caller-facing
|
|
214
|
+
* collection id in the URL path, expire after 24h (HTTP 410), and reject
|
|
215
|
+
* cross-collection reuse (HTTP 400).
|
|
216
|
+
*/
|
|
217
|
+
post: operations["scanRecords"];
|
|
218
|
+
delete?: never;
|
|
219
|
+
options?: never;
|
|
220
|
+
head?: never;
|
|
221
|
+
patch?: never;
|
|
222
|
+
trace?: never;
|
|
223
|
+
};
|
|
224
|
+
"/api/v2/collections/{collection_id}/records/{record_id}": {
|
|
225
|
+
parameters: {
|
|
226
|
+
query?: never;
|
|
227
|
+
header?: never;
|
|
228
|
+
path?: never;
|
|
229
|
+
cookie?: never;
|
|
230
|
+
};
|
|
231
|
+
/**
|
|
232
|
+
* Get a record by ID.
|
|
233
|
+
* @description Get a single record by ID.
|
|
234
|
+
*
|
|
235
|
+
* ## Path Parameters
|
|
236
|
+
*
|
|
237
|
+
* - `collection_id`: Collection name/ID
|
|
238
|
+
* - `record_id`: Record ID
|
|
239
|
+
*
|
|
240
|
+
* ## Query Parameters
|
|
241
|
+
*
|
|
242
|
+
* - `include_vector`: Whether to include the vector (default: true)
|
|
243
|
+
* - `include_text`: Whether to include TEXT fields (default: false)
|
|
244
|
+
*
|
|
245
|
+
* ## Response
|
|
246
|
+
*
|
|
247
|
+
* Returns [`RecordV2Response`] with record details.
|
|
248
|
+
*
|
|
249
|
+
* ## Errors
|
|
250
|
+
*
|
|
251
|
+
* - `404 Not Found`: Collection or record does not exist
|
|
252
|
+
* - `500 Internal Server Error`: Retrieval failed
|
|
253
|
+
*/
|
|
254
|
+
get: operations["getRecord"];
|
|
255
|
+
put?: never;
|
|
256
|
+
post?: never;
|
|
257
|
+
/**
|
|
258
|
+
* Delete a record by ID.
|
|
259
|
+
* @description Delete a single record by writing a tombstone through the rich record path.
|
|
260
|
+
*/
|
|
261
|
+
delete: operations["deleteRecord"];
|
|
262
|
+
options?: never;
|
|
263
|
+
head?: never;
|
|
264
|
+
patch?: never;
|
|
265
|
+
trace?: never;
|
|
266
|
+
};
|
|
267
|
+
"/api/v2/collections/{collection_id}/schema": {
|
|
268
|
+
parameters: {
|
|
269
|
+
query?: never;
|
|
270
|
+
header?: never;
|
|
271
|
+
path?: never;
|
|
272
|
+
cookie?: never;
|
|
273
|
+
};
|
|
274
|
+
/**
|
|
275
|
+
* Get collection schema.
|
|
276
|
+
* @description Retrieve the schema definition for a collection.
|
|
277
|
+
*
|
|
278
|
+
* ## Path Parameters
|
|
279
|
+
*
|
|
280
|
+
* - `collection_id`: Collection name/ID
|
|
281
|
+
*
|
|
282
|
+
* ## Response
|
|
283
|
+
*
|
|
284
|
+
* Returns [`SchemaResponse`] with full schema details.
|
|
285
|
+
*
|
|
286
|
+
* ## Errors
|
|
287
|
+
*
|
|
288
|
+
* - `404 Not Found`: Collection or schema does not exist
|
|
289
|
+
* - `500 Internal Server Error`: Retrieval failed
|
|
290
|
+
*/
|
|
291
|
+
get: operations["getCollectionSchema"];
|
|
292
|
+
/**
|
|
293
|
+
* Update collection schema.
|
|
294
|
+
* @description Update the schema for a collection.
|
|
295
|
+
*
|
|
296
|
+
* ## Path Parameters
|
|
297
|
+
*
|
|
298
|
+
* - `collection_id`: Collection name/ID
|
|
299
|
+
*
|
|
300
|
+
* ## Request Body
|
|
301
|
+
*
|
|
302
|
+
* See [`UpdateSchemaRequest`] for the expected JSON format.
|
|
303
|
+
*
|
|
304
|
+
* ## Response
|
|
305
|
+
*
|
|
306
|
+
* Returns [`UpdateSchemaResponse`] with change details.
|
|
307
|
+
*
|
|
308
|
+
* ## Schema Evolution
|
|
309
|
+
*
|
|
310
|
+
* Schema updates must follow evolution rules to maintain data compatibility.
|
|
311
|
+
* See [`UpdateSchemaRequest`] for detailed rules.
|
|
312
|
+
*
|
|
313
|
+
* ## Errors
|
|
314
|
+
*
|
|
315
|
+
* - `400 Bad Request`: Invalid schema or evolution violation
|
|
316
|
+
* - `404 Not Found`: Collection does not exist
|
|
317
|
+
* - `409 Conflict`: Incompatible schema change
|
|
318
|
+
* - `500 Internal Server Error`: Update failed
|
|
319
|
+
*/
|
|
320
|
+
put: operations["updateCollectionSchema"];
|
|
321
|
+
post?: never;
|
|
322
|
+
delete?: never;
|
|
323
|
+
options?: never;
|
|
324
|
+
head?: never;
|
|
325
|
+
patch?: never;
|
|
326
|
+
trace?: never;
|
|
327
|
+
};
|
|
328
|
+
"/api/v2/collections/{collection_id}/search": {
|
|
329
|
+
parameters: {
|
|
330
|
+
query?: never;
|
|
331
|
+
header?: never;
|
|
332
|
+
path?: never;
|
|
333
|
+
cookie?: never;
|
|
334
|
+
};
|
|
335
|
+
get?: never;
|
|
336
|
+
put?: never;
|
|
337
|
+
/**
|
|
338
|
+
* Search records with vector similarity and typed filters.
|
|
339
|
+
* @description Search a collection with typed filters.
|
|
340
|
+
*
|
|
341
|
+
* ## Request Body
|
|
342
|
+
*
|
|
343
|
+
* See [`TypedSearchRequest`] for the expected JSON format.
|
|
344
|
+
*
|
|
345
|
+
* ## Response
|
|
346
|
+
*
|
|
347
|
+
* Returns [`TypedSearchResponse`] with ranked results.
|
|
348
|
+
*
|
|
349
|
+
* ## Errors
|
|
350
|
+
*
|
|
351
|
+
* - `400 Bad Request`: Invalid request format or filter error
|
|
352
|
+
* - `404 Not Found`: Collection does not exist
|
|
353
|
+
* - `500 Internal Server Error`: Search execution error
|
|
354
|
+
*/
|
|
355
|
+
post: operations["searchRecords"];
|
|
356
|
+
delete?: never;
|
|
357
|
+
options?: never;
|
|
358
|
+
head?: never;
|
|
359
|
+
patch?: never;
|
|
360
|
+
trace?: never;
|
|
361
|
+
};
|
|
362
|
+
"/api/v2/graphs/{graph_id}/fusion-search": {
|
|
363
|
+
parameters: {
|
|
364
|
+
query?: never;
|
|
365
|
+
header?: never;
|
|
366
|
+
path?: never;
|
|
367
|
+
cookie?: never;
|
|
368
|
+
};
|
|
369
|
+
get?: never;
|
|
370
|
+
put?: never;
|
|
371
|
+
/** `POST /api/v2/graphs/{graph_id}/fusion-search` — vector seed → graph expand → calibrated fuse-by-oid. */
|
|
372
|
+
post: operations["fusion_search_v2"];
|
|
373
|
+
delete?: never;
|
|
374
|
+
options?: never;
|
|
375
|
+
head?: never;
|
|
376
|
+
patch?: never;
|
|
377
|
+
trace?: never;
|
|
378
|
+
};
|
|
379
|
+
"/api/v2/graphs/{graph_id}/impact-analysis": {
|
|
380
|
+
parameters: {
|
|
381
|
+
query?: never;
|
|
382
|
+
header?: never;
|
|
383
|
+
path?: never;
|
|
384
|
+
cookie?: never;
|
|
385
|
+
};
|
|
386
|
+
get?: never;
|
|
387
|
+
put?: never;
|
|
388
|
+
/**
|
|
389
|
+
* `POST /api/v2/graphs/{graph_id}/impact-analysis` — forward/backward blast radius (TD-131). The
|
|
390
|
+
* server-side baseline for the embedded-parity gate; mirrors `GraphOperationsService::impact_analysis`.
|
|
391
|
+
*/
|
|
392
|
+
post: operations["impact_analysis_v2"];
|
|
393
|
+
delete?: never;
|
|
394
|
+
options?: never;
|
|
395
|
+
head?: never;
|
|
396
|
+
patch?: never;
|
|
397
|
+
trace?: never;
|
|
398
|
+
};
|
|
399
|
+
"/api/v2/model-registries": {
|
|
400
|
+
parameters: {
|
|
401
|
+
query?: never;
|
|
402
|
+
header?: never;
|
|
403
|
+
path?: never;
|
|
404
|
+
cookie?: never;
|
|
405
|
+
};
|
|
406
|
+
get: operations["listModelRegistries"];
|
|
407
|
+
put?: never;
|
|
408
|
+
post: operations["createModelRegistry"];
|
|
409
|
+
delete?: never;
|
|
410
|
+
options?: never;
|
|
411
|
+
head?: never;
|
|
412
|
+
patch?: never;
|
|
413
|
+
trace?: never;
|
|
414
|
+
};
|
|
415
|
+
"/api/v2/model-registries/{name}": {
|
|
416
|
+
parameters: {
|
|
417
|
+
query?: never;
|
|
418
|
+
header?: never;
|
|
419
|
+
path?: never;
|
|
420
|
+
cookie?: never;
|
|
421
|
+
};
|
|
422
|
+
get: operations["getModelRegistry"];
|
|
423
|
+
put?: never;
|
|
424
|
+
post?: never;
|
|
425
|
+
delete?: never;
|
|
426
|
+
options?: never;
|
|
427
|
+
head?: never;
|
|
428
|
+
patch?: never;
|
|
429
|
+
trace?: never;
|
|
430
|
+
};
|
|
431
|
+
"/api/v2/model-registries/{name}/mutations": {
|
|
432
|
+
parameters: {
|
|
433
|
+
query?: never;
|
|
434
|
+
header?: never;
|
|
435
|
+
path?: never;
|
|
436
|
+
cookie?: never;
|
|
437
|
+
};
|
|
438
|
+
get?: never;
|
|
439
|
+
put?: never;
|
|
440
|
+
post: operations["applyModelRegistryMutation"];
|
|
441
|
+
delete?: never;
|
|
442
|
+
options?: never;
|
|
443
|
+
head?: never;
|
|
444
|
+
patch?: never;
|
|
445
|
+
trace?: never;
|
|
446
|
+
};
|
|
447
|
+
"/api/v2/model-registries/{name}/resolve": {
|
|
448
|
+
parameters: {
|
|
449
|
+
query?: never;
|
|
450
|
+
header?: never;
|
|
451
|
+
path?: never;
|
|
452
|
+
cookie?: never;
|
|
453
|
+
};
|
|
454
|
+
get?: never;
|
|
455
|
+
put?: never;
|
|
456
|
+
post: operations["resolveModelAlias"];
|
|
457
|
+
delete?: never;
|
|
458
|
+
options?: never;
|
|
459
|
+
head?: never;
|
|
460
|
+
patch?: never;
|
|
461
|
+
trace?: never;
|
|
462
|
+
};
|
|
463
|
+
"/api/v2/query": {
|
|
464
|
+
parameters: {
|
|
465
|
+
query?: never;
|
|
466
|
+
header?: never;
|
|
467
|
+
path?: never;
|
|
468
|
+
cookie?: never;
|
|
469
|
+
};
|
|
470
|
+
get?: never;
|
|
471
|
+
put?: never;
|
|
472
|
+
/**
|
|
473
|
+
* Execute AQL or UQL through the shared query facade.
|
|
474
|
+
* @description The canonical unified query surface: UQL (unified multi-modal), federated SQL
|
|
475
|
+
* extensions, and AQL. This is NOT plain SQL-over-REST and is NOT deprecated:
|
|
476
|
+
* UQL/AQL are non-SQL languages that pgwire and `/api/v2/sql` cannot serve, so
|
|
477
|
+
* this endpoint remains their canonical home. Authenticated programmatic SQL
|
|
478
|
+
* is available through both gRPC `ExecuteQuery` and `/api/v2/sql`; neither is a
|
|
479
|
+
* replacement for this UQL/federated surface.
|
|
480
|
+
*/
|
|
481
|
+
post: operations["executeQuery"];
|
|
482
|
+
delete?: never;
|
|
483
|
+
options?: never;
|
|
484
|
+
head?: never;
|
|
485
|
+
patch?: never;
|
|
486
|
+
trace?: never;
|
|
487
|
+
};
|
|
488
|
+
"/api/v2/query/explain": {
|
|
489
|
+
parameters: {
|
|
490
|
+
query?: never;
|
|
491
|
+
header?: never;
|
|
492
|
+
path?: never;
|
|
493
|
+
cookie?: never;
|
|
494
|
+
};
|
|
495
|
+
get?: never;
|
|
496
|
+
put?: never;
|
|
497
|
+
/** Explain an AQL or UQL query through the shared query facade. */
|
|
498
|
+
post: operations["explainQuery"];
|
|
499
|
+
delete?: never;
|
|
500
|
+
options?: never;
|
|
501
|
+
head?: never;
|
|
502
|
+
patch?: never;
|
|
503
|
+
trace?: never;
|
|
504
|
+
};
|
|
505
|
+
"/api/v2/sql": {
|
|
506
|
+
parameters: {
|
|
507
|
+
query?: never;
|
|
508
|
+
header?: never;
|
|
509
|
+
path?: never;
|
|
510
|
+
cookie?: never;
|
|
511
|
+
};
|
|
512
|
+
get?: never;
|
|
513
|
+
put?: never;
|
|
514
|
+
/**
|
|
515
|
+
* Execute one authenticated SQL statement.
|
|
516
|
+
* @description The required foundation identity is inserted by the root tenant middleware
|
|
517
|
+
* after authentication. A router mounted without that middleware fails closed
|
|
518
|
+
* at extraction instead of constructing an anonymous authorization carrier.
|
|
519
|
+
*/
|
|
520
|
+
post: operations["executeSql"];
|
|
521
|
+
delete?: never;
|
|
522
|
+
options?: never;
|
|
523
|
+
head?: never;
|
|
524
|
+
patch?: never;
|
|
525
|
+
trace?: never;
|
|
526
|
+
};
|
|
527
|
+
"/health": {
|
|
528
|
+
parameters: {
|
|
529
|
+
query?: never;
|
|
530
|
+
header?: never;
|
|
531
|
+
path?: never;
|
|
532
|
+
cookie?: never;
|
|
533
|
+
};
|
|
534
|
+
/** Get server health. */
|
|
535
|
+
get: operations["getHealth"];
|
|
536
|
+
put?: never;
|
|
537
|
+
post?: never;
|
|
538
|
+
delete?: never;
|
|
539
|
+
options?: never;
|
|
540
|
+
head?: never;
|
|
541
|
+
patch?: never;
|
|
542
|
+
trace?: never;
|
|
543
|
+
};
|
|
544
|
+
"/health/live": {
|
|
545
|
+
parameters: {
|
|
546
|
+
query?: never;
|
|
547
|
+
header?: never;
|
|
548
|
+
path?: never;
|
|
549
|
+
cookie?: never;
|
|
550
|
+
};
|
|
551
|
+
/** Kubernetes liveness probe. */
|
|
552
|
+
get: operations["getLiveness"];
|
|
553
|
+
put?: never;
|
|
554
|
+
post?: never;
|
|
555
|
+
delete?: never;
|
|
556
|
+
options?: never;
|
|
557
|
+
head?: never;
|
|
558
|
+
patch?: never;
|
|
559
|
+
trace?: never;
|
|
560
|
+
};
|
|
561
|
+
"/health/ready": {
|
|
562
|
+
parameters: {
|
|
563
|
+
query?: never;
|
|
564
|
+
header?: never;
|
|
565
|
+
path?: never;
|
|
566
|
+
cookie?: never;
|
|
567
|
+
};
|
|
568
|
+
/** Kubernetes readiness probe. */
|
|
569
|
+
get: operations["getReadiness"];
|
|
570
|
+
put?: never;
|
|
571
|
+
post?: never;
|
|
572
|
+
delete?: never;
|
|
573
|
+
options?: never;
|
|
574
|
+
head?: never;
|
|
575
|
+
patch?: never;
|
|
576
|
+
trace?: never;
|
|
577
|
+
};
|
|
578
|
+
"/api/v2/_meta/capabilities": {
|
|
579
|
+
parameters: {
|
|
580
|
+
query?: never;
|
|
581
|
+
header?: never;
|
|
582
|
+
path?: never;
|
|
583
|
+
cookie?: never;
|
|
584
|
+
};
|
|
585
|
+
/**
|
|
586
|
+
* Negotiate server capabilities.
|
|
587
|
+
* @description Advertises API version, supported features, limits, and the error- envelope contract so SDKs can adapt instead of hard-coding assumptions.
|
|
588
|
+
*/
|
|
589
|
+
get: operations["getCapabilities"];
|
|
590
|
+
put?: never;
|
|
591
|
+
post?: never;
|
|
592
|
+
delete?: never;
|
|
593
|
+
options?: never;
|
|
594
|
+
head?: never;
|
|
595
|
+
patch?: never;
|
|
596
|
+
trace?: never;
|
|
597
|
+
};
|
|
598
|
+
"/api/v2/graphs": {
|
|
599
|
+
parameters: {
|
|
600
|
+
query?: never;
|
|
601
|
+
header?: never;
|
|
602
|
+
path?: never;
|
|
603
|
+
cookie?: never;
|
|
604
|
+
};
|
|
605
|
+
/** List graph collections. */
|
|
606
|
+
get: operations["listGraphs"];
|
|
607
|
+
put?: never;
|
|
608
|
+
/** Create a graph collection. */
|
|
609
|
+
post: operations["createGraph"];
|
|
610
|
+
delete?: never;
|
|
611
|
+
options?: never;
|
|
612
|
+
head?: never;
|
|
613
|
+
patch?: never;
|
|
614
|
+
trace?: never;
|
|
615
|
+
};
|
|
616
|
+
"/api/v2/graphs/{graph_id}": {
|
|
617
|
+
parameters: {
|
|
618
|
+
query?: never;
|
|
619
|
+
header?: never;
|
|
620
|
+
path: {
|
|
621
|
+
graph_id: components["parameters"]["GraphId"];
|
|
622
|
+
};
|
|
623
|
+
cookie?: never;
|
|
624
|
+
};
|
|
625
|
+
/** Get a graph collection by id. */
|
|
626
|
+
get: operations["getGraph"];
|
|
627
|
+
put?: never;
|
|
628
|
+
post?: never;
|
|
629
|
+
/** Delete a graph collection. */
|
|
630
|
+
delete: operations["deleteGraph"];
|
|
631
|
+
options?: never;
|
|
632
|
+
head?: never;
|
|
633
|
+
patch?: never;
|
|
634
|
+
trace?: never;
|
|
635
|
+
};
|
|
636
|
+
"/api/v2/graphs/{graph_id}/nodes": {
|
|
637
|
+
parameters: {
|
|
638
|
+
query?: never;
|
|
639
|
+
header?: never;
|
|
640
|
+
path: {
|
|
641
|
+
graph_id: components["parameters"]["GraphId"];
|
|
642
|
+
};
|
|
643
|
+
cookie?: never;
|
|
644
|
+
};
|
|
645
|
+
get?: never;
|
|
646
|
+
put?: never;
|
|
647
|
+
/** Create a node in a graph. */
|
|
648
|
+
post: operations["createNode"];
|
|
649
|
+
delete?: never;
|
|
650
|
+
options?: never;
|
|
651
|
+
head?: never;
|
|
652
|
+
patch?: never;
|
|
653
|
+
trace?: never;
|
|
654
|
+
};
|
|
655
|
+
"/api/v2/graphs/{graph_id}/nodes/{node_id}": {
|
|
656
|
+
parameters: {
|
|
657
|
+
query?: never;
|
|
658
|
+
header?: never;
|
|
659
|
+
path: {
|
|
660
|
+
graph_id: components["parameters"]["GraphId"];
|
|
661
|
+
node_id: components["parameters"]["NodeId"];
|
|
662
|
+
};
|
|
663
|
+
cookie?: never;
|
|
664
|
+
};
|
|
665
|
+
/** Get a node by id. */
|
|
666
|
+
get: operations["getNode"];
|
|
667
|
+
put?: never;
|
|
668
|
+
post?: never;
|
|
669
|
+
/** Delete a node by id. */
|
|
670
|
+
delete: operations["deleteNode"];
|
|
671
|
+
options?: never;
|
|
672
|
+
head?: never;
|
|
673
|
+
patch?: never;
|
|
674
|
+
trace?: never;
|
|
675
|
+
};
|
|
676
|
+
"/api/v2/graphs/{graph_id}/edges": {
|
|
677
|
+
parameters: {
|
|
678
|
+
query?: never;
|
|
679
|
+
header?: never;
|
|
680
|
+
path: {
|
|
681
|
+
graph_id: components["parameters"]["GraphId"];
|
|
682
|
+
};
|
|
683
|
+
cookie?: never;
|
|
684
|
+
};
|
|
685
|
+
get?: never;
|
|
686
|
+
put?: never;
|
|
687
|
+
/** Create an edge in a graph. */
|
|
688
|
+
post: operations["createEdge"];
|
|
689
|
+
delete?: never;
|
|
690
|
+
options?: never;
|
|
691
|
+
head?: never;
|
|
692
|
+
patch?: never;
|
|
693
|
+
trace?: never;
|
|
694
|
+
};
|
|
695
|
+
"/api/v2/graphs/{graph_id}/nodes/batch": {
|
|
696
|
+
parameters: {
|
|
697
|
+
query?: never;
|
|
698
|
+
header?: never;
|
|
699
|
+
path: {
|
|
700
|
+
graph_id: components["parameters"]["GraphId"];
|
|
701
|
+
};
|
|
702
|
+
cookie?: never;
|
|
703
|
+
};
|
|
704
|
+
get?: never;
|
|
705
|
+
put?: never;
|
|
706
|
+
/**
|
|
707
|
+
* Create multiple nodes in a single call.
|
|
708
|
+
* @description Batch counterpart to `createNode`. Use this on bulk-ingest paths
|
|
709
|
+
* where individual round-trips would dominate latency.
|
|
710
|
+
*/
|
|
711
|
+
post: operations["batchCreateNodes"];
|
|
712
|
+
delete?: never;
|
|
713
|
+
options?: never;
|
|
714
|
+
head?: never;
|
|
715
|
+
patch?: never;
|
|
716
|
+
trace?: never;
|
|
717
|
+
};
|
|
718
|
+
"/api/v2/graphs/{graph_id}/edges/batch": {
|
|
719
|
+
parameters: {
|
|
720
|
+
query?: never;
|
|
721
|
+
header?: never;
|
|
722
|
+
path: {
|
|
723
|
+
graph_id: components["parameters"]["GraphId"];
|
|
724
|
+
};
|
|
725
|
+
cookie?: never;
|
|
726
|
+
};
|
|
727
|
+
get?: never;
|
|
728
|
+
put?: never;
|
|
729
|
+
/**
|
|
730
|
+
* Create multiple edges in a single call.
|
|
731
|
+
* @description Batch counterpart to `createEdge`.
|
|
732
|
+
*/
|
|
733
|
+
post: operations["batchCreateEdges"];
|
|
734
|
+
delete?: never;
|
|
735
|
+
options?: never;
|
|
736
|
+
head?: never;
|
|
737
|
+
patch?: never;
|
|
738
|
+
trace?: never;
|
|
739
|
+
};
|
|
740
|
+
"/api/v2/graphs/{graph_id}/traverse": {
|
|
741
|
+
parameters: {
|
|
742
|
+
query?: never;
|
|
743
|
+
header?: never;
|
|
744
|
+
path: {
|
|
745
|
+
graph_id: components["parameters"]["GraphId"];
|
|
746
|
+
};
|
|
747
|
+
cookie?: never;
|
|
748
|
+
};
|
|
749
|
+
get?: never;
|
|
750
|
+
put?: never;
|
|
751
|
+
/** Traverse a graph from a start node. */
|
|
752
|
+
post: operations["traverseGraph"];
|
|
753
|
+
delete?: never;
|
|
754
|
+
options?: never;
|
|
755
|
+
head?: never;
|
|
756
|
+
patch?: never;
|
|
757
|
+
trace?: never;
|
|
758
|
+
};
|
|
759
|
+
"/api/v2/graphs/{graph_id}/stats": {
|
|
760
|
+
parameters: {
|
|
761
|
+
query?: never;
|
|
762
|
+
header?: never;
|
|
763
|
+
path: {
|
|
764
|
+
graph_id: components["parameters"]["GraphId"];
|
|
765
|
+
};
|
|
766
|
+
cookie?: never;
|
|
767
|
+
};
|
|
768
|
+
/** Get graph statistics. */
|
|
769
|
+
get: operations["getGraphStats"];
|
|
770
|
+
put?: never;
|
|
771
|
+
post?: never;
|
|
772
|
+
delete?: never;
|
|
773
|
+
options?: never;
|
|
774
|
+
head?: never;
|
|
775
|
+
patch?: never;
|
|
776
|
+
trace?: never;
|
|
777
|
+
};
|
|
778
|
+
"/api/v2/hybrid/search": {
|
|
779
|
+
parameters: {
|
|
780
|
+
query?: never;
|
|
781
|
+
header?: never;
|
|
782
|
+
path?: never;
|
|
783
|
+
cookie?: never;
|
|
784
|
+
};
|
|
785
|
+
get?: never;
|
|
786
|
+
put?: never;
|
|
787
|
+
/** BM25 + vector hybrid (fusion) search. */
|
|
788
|
+
post: operations["hybridSearch"];
|
|
789
|
+
delete?: never;
|
|
790
|
+
options?: never;
|
|
791
|
+
head?: never;
|
|
792
|
+
patch?: never;
|
|
793
|
+
trace?: never;
|
|
794
|
+
};
|
|
795
|
+
"/api/v2/hybrid/index": {
|
|
796
|
+
parameters: {
|
|
797
|
+
query?: never;
|
|
798
|
+
header?: never;
|
|
799
|
+
path?: never;
|
|
800
|
+
cookie?: never;
|
|
801
|
+
};
|
|
802
|
+
get?: never;
|
|
803
|
+
put?: never;
|
|
804
|
+
/** Index documents for BM25 full-text search. */
|
|
805
|
+
post: operations["hybridIndex"];
|
|
806
|
+
delete?: never;
|
|
807
|
+
options?: never;
|
|
808
|
+
head?: never;
|
|
809
|
+
patch?: never;
|
|
810
|
+
trace?: never;
|
|
811
|
+
};
|
|
812
|
+
"/api/v2/document-collections": {
|
|
813
|
+
parameters: {
|
|
814
|
+
query?: never;
|
|
815
|
+
header?: never;
|
|
816
|
+
path?: never;
|
|
817
|
+
cookie?: never;
|
|
818
|
+
};
|
|
819
|
+
/** List document collections. */
|
|
820
|
+
get: operations["listDocumentCollections"];
|
|
821
|
+
put?: never;
|
|
822
|
+
/** Create a document collection. */
|
|
823
|
+
post: operations["createDocumentCollection"];
|
|
824
|
+
delete?: never;
|
|
825
|
+
options?: never;
|
|
826
|
+
head?: never;
|
|
827
|
+
patch?: never;
|
|
828
|
+
trace?: never;
|
|
829
|
+
};
|
|
830
|
+
"/api/v2/document-collections/{collection}/documents": {
|
|
831
|
+
parameters: {
|
|
832
|
+
query?: never;
|
|
833
|
+
header?: never;
|
|
834
|
+
path: {
|
|
835
|
+
collection: string;
|
|
836
|
+
};
|
|
837
|
+
cookie?: never;
|
|
838
|
+
};
|
|
839
|
+
/** Query documents. */
|
|
840
|
+
get: operations["queryDocuments"];
|
|
841
|
+
put?: never;
|
|
842
|
+
/** Insert a document. */
|
|
843
|
+
post: operations["insertDocument"];
|
|
844
|
+
delete?: never;
|
|
845
|
+
options?: never;
|
|
846
|
+
head?: never;
|
|
847
|
+
patch?: never;
|
|
848
|
+
trace?: never;
|
|
849
|
+
};
|
|
850
|
+
"/api/v2/observability/namespaces/{namespace}/logs": {
|
|
851
|
+
parameters: {
|
|
852
|
+
query?: never;
|
|
853
|
+
header?: never;
|
|
854
|
+
path: {
|
|
855
|
+
namespace: string;
|
|
856
|
+
};
|
|
857
|
+
cookie?: never;
|
|
858
|
+
};
|
|
859
|
+
get?: never;
|
|
860
|
+
put?: never;
|
|
861
|
+
/** Ingest a log entry. */
|
|
862
|
+
post: operations["ingestLog"];
|
|
863
|
+
delete?: never;
|
|
864
|
+
options?: never;
|
|
865
|
+
head?: never;
|
|
866
|
+
patch?: never;
|
|
867
|
+
trace?: never;
|
|
868
|
+
};
|
|
869
|
+
"/api/v2/observability/namespaces/{namespace}/logs/search": {
|
|
870
|
+
parameters: {
|
|
871
|
+
query?: never;
|
|
872
|
+
header?: never;
|
|
873
|
+
path: {
|
|
874
|
+
namespace: string;
|
|
875
|
+
};
|
|
876
|
+
cookie?: never;
|
|
877
|
+
};
|
|
878
|
+
get?: never;
|
|
879
|
+
put?: never;
|
|
880
|
+
/** Query logs. */
|
|
881
|
+
post: operations["queryLogs"];
|
|
882
|
+
delete?: never;
|
|
883
|
+
options?: never;
|
|
884
|
+
head?: never;
|
|
885
|
+
patch?: never;
|
|
886
|
+
trace?: never;
|
|
887
|
+
};
|
|
888
|
+
}
|
|
889
|
+
export type webhooks = Record<string, never>;
|
|
890
|
+
export interface components {
|
|
891
|
+
schemas: {
|
|
892
|
+
ApplyModelRegistryMutationRequest: {
|
|
893
|
+
/**
|
|
894
|
+
* Format: int64
|
|
895
|
+
* @description Optimistic concurrency token returned by the previous read or mutation.
|
|
896
|
+
*/
|
|
897
|
+
expected_revision: number;
|
|
898
|
+
/** @description Command-shaped mutation; whole-registry replacement is intentionally unsupported. */
|
|
899
|
+
mutation: components["schemas"]["CatalogModelRegistryMutation"];
|
|
900
|
+
};
|
|
901
|
+
/** @description Content-addressed reference to bytes held outside xCatalog. */
|
|
902
|
+
CatalogArtifactDescriptor: {
|
|
903
|
+
uri: string;
|
|
904
|
+
digest: string;
|
|
905
|
+
/** Format: int64 */
|
|
906
|
+
size_bytes: number;
|
|
907
|
+
media_type: string;
|
|
908
|
+
};
|
|
909
|
+
/** @description Mutable serving intent that always resolves to an immutable version/digest. */
|
|
910
|
+
CatalogDeploymentBinding: {
|
|
911
|
+
name: string;
|
|
912
|
+
/** Format: int64 */
|
|
913
|
+
version: number;
|
|
914
|
+
artifact_digest: string;
|
|
915
|
+
runtime: string;
|
|
916
|
+
endpoint: string;
|
|
917
|
+
/** Format: int64 */
|
|
918
|
+
updated_at_ms: number;
|
|
919
|
+
};
|
|
920
|
+
CatalogDimensionPolicy: "fixed" | "discrete" | {
|
|
921
|
+
range: components["schemas"]["CatalogDimensionRange"];
|
|
922
|
+
};
|
|
923
|
+
CatalogDimensionRange: {
|
|
924
|
+
/** Format: int32 */
|
|
925
|
+
minimum: number;
|
|
926
|
+
};
|
|
927
|
+
/** @description Exact rendered-input and tokenizer budget consumed by an embedding runtime. */
|
|
928
|
+
CatalogEmbeddingInputContract: {
|
|
929
|
+
model_revision: string;
|
|
930
|
+
tokenizer_id: string;
|
|
931
|
+
tokenizer_revision: string;
|
|
932
|
+
tokenizer_fingerprint: string;
|
|
933
|
+
/** Format: int32 */
|
|
934
|
+
declared_context_limit: number;
|
|
935
|
+
/** Format: int32 */
|
|
936
|
+
effective_context_limit: number;
|
|
937
|
+
/** Format: int32 */
|
|
938
|
+
special_token_count: number;
|
|
939
|
+
document_template: string;
|
|
940
|
+
query_template: string;
|
|
941
|
+
document_parameters?: {
|
|
942
|
+
[key: string]: string;
|
|
943
|
+
};
|
|
944
|
+
query_parameters?: {
|
|
945
|
+
[key: string]: string;
|
|
946
|
+
};
|
|
947
|
+
};
|
|
948
|
+
/**
|
|
949
|
+
* @description Registered embedding model: immutable versions plus separately mutable or
|
|
950
|
+
* append-only lifecycle records.
|
|
951
|
+
*/
|
|
952
|
+
CatalogEmbeddingModelRegistry: {
|
|
953
|
+
/** Format: int32 */
|
|
954
|
+
schema_version: number;
|
|
955
|
+
/**
|
|
956
|
+
* Format: int64
|
|
957
|
+
* @description Optimistic concurrency token for catalog/API mutations. Old rows default
|
|
958
|
+
* to zero; every successful command increments it.
|
|
959
|
+
*/
|
|
960
|
+
revision?: number;
|
|
961
|
+
name: string;
|
|
962
|
+
versions?: {
|
|
963
|
+
[key: string]: components["schemas"]["CatalogEmbeddingModelVersion"];
|
|
964
|
+
};
|
|
965
|
+
aliases?: {
|
|
966
|
+
[key: string]: number;
|
|
967
|
+
};
|
|
968
|
+
evidence?: components["schemas"]["CatalogEvaluationEvidence"][];
|
|
969
|
+
decisions?: components["schemas"]["CatalogModelDecision"][];
|
|
970
|
+
deployments?: {
|
|
971
|
+
[key: string]: components["schemas"]["CatalogDeploymentBinding"];
|
|
972
|
+
};
|
|
973
|
+
tags?: {
|
|
974
|
+
[key: string]: string;
|
|
975
|
+
};
|
|
976
|
+
};
|
|
977
|
+
/** @description Immutable executable contract for one registered model version. */
|
|
978
|
+
CatalogEmbeddingModelVersion: {
|
|
979
|
+
/** Format: int64 */
|
|
980
|
+
version: number;
|
|
981
|
+
provider_model_id: string;
|
|
982
|
+
artifact: components["schemas"]["CatalogArtifactDescriptor"];
|
|
983
|
+
input: components["schemas"]["CatalogEmbeddingInputContract"];
|
|
984
|
+
output: components["schemas"]["CatalogEmbeddingOutputContract"];
|
|
985
|
+
governance?: components["schemas"]["CatalogModelGovernance"];
|
|
986
|
+
lineage?: components["schemas"]["CatalogModelLineage"];
|
|
987
|
+
/** Format: int64 */
|
|
988
|
+
created_at_ms: number;
|
|
989
|
+
source_run_id?: string | null;
|
|
990
|
+
};
|
|
991
|
+
CatalogEmbeddingOutputContract: {
|
|
992
|
+
/** Format: int32 */
|
|
993
|
+
native_dimension: number;
|
|
994
|
+
dimension_policy: components["schemas"]["CatalogDimensionPolicy"];
|
|
995
|
+
supported_dimensions: number[];
|
|
996
|
+
normalized: boolean;
|
|
997
|
+
pooling: string;
|
|
998
|
+
};
|
|
999
|
+
/** @description Append-only evaluation summary. Large row-level results remain external. */
|
|
1000
|
+
CatalogEvaluationEvidence: {
|
|
1001
|
+
evidence_id: string;
|
|
1002
|
+
/** Format: int64 */
|
|
1003
|
+
version: number;
|
|
1004
|
+
dataset_name: string;
|
|
1005
|
+
dataset_digest: string;
|
|
1006
|
+
evaluator: string;
|
|
1007
|
+
metrics: {
|
|
1008
|
+
[key: string]: number;
|
|
1009
|
+
};
|
|
1010
|
+
/** Format: int64 */
|
|
1011
|
+
created_at_ms: number;
|
|
1012
|
+
};
|
|
1013
|
+
/** @description Digest-pinned input consumed by the execution that produced a model. */
|
|
1014
|
+
CatalogLineageInput: {
|
|
1015
|
+
kind: components["schemas"]["CatalogLineageInputKind"];
|
|
1016
|
+
name: string;
|
|
1017
|
+
digest: string;
|
|
1018
|
+
};
|
|
1019
|
+
/** @enum {string} */
|
|
1020
|
+
CatalogLineageInputKind: "dataset" | "feature_set" | "model" | "artifact";
|
|
1021
|
+
/** @enum {string} */
|
|
1022
|
+
CatalogModelAccess: "open" | "gated" | "unreviewed";
|
|
1023
|
+
CatalogModelAliasMutation: {
|
|
1024
|
+
alias: string;
|
|
1025
|
+
/** Format: int64 */
|
|
1026
|
+
version: number;
|
|
1027
|
+
};
|
|
1028
|
+
/** @description Append-only policy/audit decision, intentionally separate from evidence. */
|
|
1029
|
+
CatalogModelDecision: {
|
|
1030
|
+
decision_id: string;
|
|
1031
|
+
/** Format: int64 */
|
|
1032
|
+
version: number;
|
|
1033
|
+
decision: components["schemas"]["CatalogModelDecisionKind"];
|
|
1034
|
+
evidence_ids: string[];
|
|
1035
|
+
principal: string;
|
|
1036
|
+
/** Format: int64 */
|
|
1037
|
+
created_at_ms: number;
|
|
1038
|
+
};
|
|
1039
|
+
/** @enum {string} */
|
|
1040
|
+
CatalogModelDecisionKind: "approved" | "rejected" | "deprecated";
|
|
1041
|
+
/**
|
|
1042
|
+
* @description Supply-chain and runtime policy declared for an immutable model version.
|
|
1043
|
+
* Approval decisions remain separate append-only audit records.
|
|
1044
|
+
*/
|
|
1045
|
+
CatalogModelGovernance: {
|
|
1046
|
+
license_id?: string;
|
|
1047
|
+
access?: components["schemas"]["CatalogModelAccess"];
|
|
1048
|
+
requires_remote_code?: boolean;
|
|
1049
|
+
approved_runtimes?: string[];
|
|
1050
|
+
};
|
|
1051
|
+
/** @description MLMD/OpenLineage-shaped producer execution and its declared inputs. */
|
|
1052
|
+
CatalogModelLineage: {
|
|
1053
|
+
producer_execution_id?: string | null;
|
|
1054
|
+
code_revision?: string | null;
|
|
1055
|
+
inputs?: components["schemas"]["CatalogLineageInput"][];
|
|
1056
|
+
};
|
|
1057
|
+
/**
|
|
1058
|
+
* @description Command-shaped mutations preserve version/evidence/decision immutability at
|
|
1059
|
+
* the persistence boundary. API adapters lower into these commands instead
|
|
1060
|
+
* of replacing a whole registry document.
|
|
1061
|
+
*/
|
|
1062
|
+
CatalogModelRegistryMutation: {
|
|
1063
|
+
payload: components["schemas"]["CatalogEmbeddingModelVersion"];
|
|
1064
|
+
/** @enum {string} */
|
|
1065
|
+
operation: "register_version";
|
|
1066
|
+
} | {
|
|
1067
|
+
payload: components["schemas"]["CatalogModelAliasMutation"];
|
|
1068
|
+
/** @enum {string} */
|
|
1069
|
+
operation: "set_alias";
|
|
1070
|
+
} | {
|
|
1071
|
+
payload: components["schemas"]["CatalogEvaluationEvidence"];
|
|
1072
|
+
/** @enum {string} */
|
|
1073
|
+
operation: "append_evidence";
|
|
1074
|
+
} | {
|
|
1075
|
+
payload: components["schemas"]["CatalogModelDecision"];
|
|
1076
|
+
/** @enum {string} */
|
|
1077
|
+
operation: "record_decision";
|
|
1078
|
+
} | {
|
|
1079
|
+
payload: components["schemas"]["CatalogDeploymentBinding"];
|
|
1080
|
+
/** @enum {string} */
|
|
1081
|
+
operation: "upsert_deployment";
|
|
1082
|
+
};
|
|
1083
|
+
/** @description Collection statistics for v2 API */
|
|
1084
|
+
CollectionStatsV2: {
|
|
1085
|
+
/**
|
|
1086
|
+
* Format: int64
|
|
1087
|
+
* @description Total number of records, or `null` when the server does not know.
|
|
1088
|
+
*
|
|
1089
|
+
* `null` is a real answer here, not a gap. The counter is maintained by
|
|
1090
|
+
* `MetadataStore::update_stats`, which the record write path does not call,
|
|
1091
|
+
* so a collection that has never had stats written carries none. Reporting
|
|
1092
|
+
* `0` in that case is a *confident wrong answer* — indistinguishable from a
|
|
1093
|
+
* genuinely empty collection, and it cost one downstream project a false
|
|
1094
|
+
* durability bug report before the cause was found (#1527).
|
|
1095
|
+
*/
|
|
1096
|
+
record_count?: number | null;
|
|
1097
|
+
/**
|
|
1098
|
+
* Format: int64
|
|
1099
|
+
* @description Total storage size in bytes
|
|
1100
|
+
*/
|
|
1101
|
+
storage_size_bytes: number;
|
|
1102
|
+
/**
|
|
1103
|
+
* Format: int32
|
|
1104
|
+
* @description Number of indexed fields
|
|
1105
|
+
*/
|
|
1106
|
+
indexed_fields: number;
|
|
1107
|
+
/**
|
|
1108
|
+
* Format: int32
|
|
1109
|
+
* @description Number of TEXT fields with dedicated storage
|
|
1110
|
+
*/
|
|
1111
|
+
text_field_count: number;
|
|
1112
|
+
};
|
|
1113
|
+
/** @description Collection details response */
|
|
1114
|
+
CollectionV2Response: {
|
|
1115
|
+
/** @description Collection ID */
|
|
1116
|
+
collection_id: string;
|
|
1117
|
+
/** @description Collection name */
|
|
1118
|
+
name: string;
|
|
1119
|
+
/**
|
|
1120
|
+
* Format: int32
|
|
1121
|
+
* @description Vector dimension
|
|
1122
|
+
*/
|
|
1123
|
+
dimension: number;
|
|
1124
|
+
/** @description Storage engine */
|
|
1125
|
+
engine: string;
|
|
1126
|
+
/** @description Distance metric */
|
|
1127
|
+
distance_metric: string;
|
|
1128
|
+
/** @description Whether ProximaRecord is enabled */
|
|
1129
|
+
proxima_record_enabled: boolean;
|
|
1130
|
+
/**
|
|
1131
|
+
* @description Canonical embedding precision label for stored vectors.
|
|
1132
|
+
*
|
|
1133
|
+
* Stable string matching the proto `EmbeddingPrecision::as_str_name()`
|
|
1134
|
+
* (e.g. "EMBEDDING_PRECISION_FP16"). `None` when the collection didn't
|
|
1135
|
+
* set a non-default (Unspecified/Fp32) precision.
|
|
1136
|
+
*/
|
|
1137
|
+
canonical_embedding_precision?: string | null;
|
|
1138
|
+
schema?: null | components["schemas"]["SchemaDefinition"];
|
|
1139
|
+
/** @description Collection statistics */
|
|
1140
|
+
stats: components["schemas"]["CollectionStatsV2"];
|
|
1141
|
+
/**
|
|
1142
|
+
* Format: int64
|
|
1143
|
+
* @description Monotonic server-owned content revision for cache revalidation.
|
|
1144
|
+
*/
|
|
1145
|
+
content_revision: number;
|
|
1146
|
+
/** @description Opaque validator that also fences server restarts. */
|
|
1147
|
+
content_revision_token: string;
|
|
1148
|
+
/**
|
|
1149
|
+
* @description Per-index config (HNSW/IVF params, is_primary) as persisted at create
|
|
1150
|
+
* time. Mirrors the gRPC-v2 `GetCollection` `index_specs` (TD-122 parity).
|
|
1151
|
+
*/
|
|
1152
|
+
index_specs: components["schemas"]["IndexSpecOutput"][];
|
|
1153
|
+
quantization?: null | components["schemas"]["QuantizationConfigOutput"];
|
|
1154
|
+
/** @description Creation timestamp */
|
|
1155
|
+
created_at: string;
|
|
1156
|
+
/** @description Last update timestamp */
|
|
1157
|
+
updated_at?: string | null;
|
|
1158
|
+
};
|
|
1159
|
+
/** @description Summary of a collection for list operations */
|
|
1160
|
+
CollectionV2Summary: {
|
|
1161
|
+
/** @description Collection ID */
|
|
1162
|
+
collection_id: string;
|
|
1163
|
+
/** @description Collection name */
|
|
1164
|
+
name: string;
|
|
1165
|
+
/**
|
|
1166
|
+
* Format: int32
|
|
1167
|
+
* @description Vector dimension
|
|
1168
|
+
*/
|
|
1169
|
+
dimension: number;
|
|
1170
|
+
/** @description Storage engine */
|
|
1171
|
+
engine: string;
|
|
1172
|
+
/** @description Whether ProximaRecord is enabled */
|
|
1173
|
+
proxima_record_enabled: boolean;
|
|
1174
|
+
/**
|
|
1175
|
+
* Format: int64
|
|
1176
|
+
* @description Record count (if include_stats is true)
|
|
1177
|
+
*/
|
|
1178
|
+
record_count?: number | null;
|
|
1179
|
+
};
|
|
1180
|
+
/**
|
|
1181
|
+
* @description Request to create a collection with schema support
|
|
1182
|
+
*
|
|
1183
|
+
* ## Example JSON
|
|
1184
|
+
*
|
|
1185
|
+
* ```json
|
|
1186
|
+
* {
|
|
1187
|
+
* "name": "products",
|
|
1188
|
+
* "dimension": 768,
|
|
1189
|
+
* "engine": "sst",
|
|
1190
|
+
* "schema": {
|
|
1191
|
+
* "columns": [
|
|
1192
|
+
* {"name": "category", "data_type": "text", "indexed": true},
|
|
1193
|
+
* {"name": "price", "data_type": "float", "filterable": true},
|
|
1194
|
+
* {"name": "description", "data_type": "text", "max_length": 10000}
|
|
1195
|
+
* ],
|
|
1196
|
+
* "enforcement": "hybrid",
|
|
1197
|
+
* "allow_additional_fields": true
|
|
1198
|
+
* },
|
|
1199
|
+
* "enable_proxima_record": true
|
|
1200
|
+
* }
|
|
1201
|
+
* ```
|
|
1202
|
+
*/
|
|
1203
|
+
CreateCollectionV2Request: {
|
|
1204
|
+
/** @description Collection name (required) */
|
|
1205
|
+
name: string;
|
|
1206
|
+
/**
|
|
1207
|
+
* Format: int32
|
|
1208
|
+
* @description Vector dimension (required)
|
|
1209
|
+
*/
|
|
1210
|
+
dimension: number;
|
|
1211
|
+
/**
|
|
1212
|
+
* @description Storage engine selection
|
|
1213
|
+
*
|
|
1214
|
+
* Options: "auto", "sst", "helix", "viper", "swift", "nova", "raptor", "tst"
|
|
1215
|
+
* Default: "auto" (system selects optimal engine)
|
|
1216
|
+
*/
|
|
1217
|
+
engine?: string | null;
|
|
1218
|
+
schema?: null | components["schemas"]["SchemaDefinition"];
|
|
1219
|
+
/**
|
|
1220
|
+
* @description Enable ProximaRecord support for this collection
|
|
1221
|
+
*
|
|
1222
|
+
* When enabled:
|
|
1223
|
+
* - Records can use rich props and text_fields
|
|
1224
|
+
* - Schema validation is applied at insert time
|
|
1225
|
+
* - TEXT columns are stored in dedicated columnar format
|
|
1226
|
+
*
|
|
1227
|
+
* Default: false (backward compatible with v1)
|
|
1228
|
+
*/
|
|
1229
|
+
enable_proxima_record?: boolean | null;
|
|
1230
|
+
/**
|
|
1231
|
+
* @description Distance metric for vector similarity
|
|
1232
|
+
*
|
|
1233
|
+
* Options: "cosine", "euclidean", "dot_product"
|
|
1234
|
+
* Default: "cosine"
|
|
1235
|
+
*/
|
|
1236
|
+
distance_metric?: string | null;
|
|
1237
|
+
/**
|
|
1238
|
+
* Format: int64
|
|
1239
|
+
* @description Initial capacity hint for pre-allocation
|
|
1240
|
+
*/
|
|
1241
|
+
initial_capacity?: number | null;
|
|
1242
|
+
/**
|
|
1243
|
+
* @description Canonical embedding precision for stored vectors
|
|
1244
|
+
*
|
|
1245
|
+
* Options: "fp32" (default), "fp16", "bf16", "int8", "uint8".
|
|
1246
|
+
* Accepts the same string forms as the gRPC / Arrow Flight surfaces
|
|
1247
|
+
* (e.g. "half", "float16", "EMBEDDING_PRECISION_FP16"). The DDL
|
|
1248
|
+
* service applies the same normalisation, so SDKs and pgwire
|
|
1249
|
+
* converge on the same enum discriminant.
|
|
1250
|
+
*/
|
|
1251
|
+
canonical_embedding_precision?: string | null;
|
|
1252
|
+
/**
|
|
1253
|
+
* @description Index configurations (e.g. an explicit IVF or HNSW index).
|
|
1254
|
+
*
|
|
1255
|
+
* Restores v1 parity: the v1 proto create accepted `index_configs`, which
|
|
1256
|
+
* drive `active_algorithm_for` (e.g. an IVF index → recall-tune dispatches
|
|
1257
|
+
* to the IVF arm). When omitted, the engine selects a default (HNSW).
|
|
1258
|
+
*/
|
|
1259
|
+
index_configs?: components["schemas"]["IndexConfigInput"][] | null;
|
|
1260
|
+
/**
|
|
1261
|
+
* @description Operator metadata tags, e.g. `"recall_target:0.95"`,
|
|
1262
|
+
* `"target_vector_count:1000"`, `"modalities:text,image"`. Consumed by the
|
|
1263
|
+
* recall advisor / route-health (`services/collection/recall_target.rs`).
|
|
1264
|
+
*/
|
|
1265
|
+
tags?: string[] | null;
|
|
1266
|
+
quantization?: null | components["schemas"]["QuantizationConfigInput"];
|
|
1267
|
+
index_policy?: null | components["schemas"]["IndexPolicyInput"];
|
|
1268
|
+
};
|
|
1269
|
+
/** @description Response for collection creation */
|
|
1270
|
+
CreateCollectionV2Response: {
|
|
1271
|
+
/** @description Collection ID (same as name) */
|
|
1272
|
+
collection_id: string;
|
|
1273
|
+
/** @description Collection name */
|
|
1274
|
+
name: string;
|
|
1275
|
+
/**
|
|
1276
|
+
* Format: int32
|
|
1277
|
+
* @description Vector dimension
|
|
1278
|
+
*/
|
|
1279
|
+
dimension: number;
|
|
1280
|
+
/** @description Selected storage engine */
|
|
1281
|
+
engine: string;
|
|
1282
|
+
/** @description Whether ProximaRecord is enabled */
|
|
1283
|
+
proxima_record_enabled: boolean;
|
|
1284
|
+
/** @description Schema ID (if schema was defined) */
|
|
1285
|
+
schema_id?: string | null;
|
|
1286
|
+
/** @description Creation timestamp */
|
|
1287
|
+
created_at: string;
|
|
1288
|
+
};
|
|
1289
|
+
CreateModelRegistryRequest: {
|
|
1290
|
+
/** @description Tenant-local registry name. Must be one traversal-free catalog segment. */
|
|
1291
|
+
name: string;
|
|
1292
|
+
};
|
|
1293
|
+
/** @description Response for deleting a collection through the v2 API. */
|
|
1294
|
+
DeleteCollectionV2Response: {
|
|
1295
|
+
/** @description Whether the delete request was accepted. */
|
|
1296
|
+
success: boolean;
|
|
1297
|
+
/** @description Deleted collection ID. */
|
|
1298
|
+
collection_id: string;
|
|
1299
|
+
};
|
|
1300
|
+
/** @description Response for deleting a single record. */
|
|
1301
|
+
DeleteRecordV2Response: {
|
|
1302
|
+
/** @description Whether the delete tombstone was accepted. */
|
|
1303
|
+
success: boolean;
|
|
1304
|
+
/** @description Deleted record ID. */
|
|
1305
|
+
id: string;
|
|
1306
|
+
/**
|
|
1307
|
+
* Format: int64
|
|
1308
|
+
* @description Processing latency in microseconds.
|
|
1309
|
+
*/
|
|
1310
|
+
processing_time_us: number;
|
|
1311
|
+
};
|
|
1312
|
+
EntityDto: {
|
|
1313
|
+
id: string;
|
|
1314
|
+
collection_id: string;
|
|
1315
|
+
flexible_metadata: {
|
|
1316
|
+
[key: string]: unknown;
|
|
1317
|
+
};
|
|
1318
|
+
};
|
|
1319
|
+
EntityEmbeddingInput: {
|
|
1320
|
+
model_id: string;
|
|
1321
|
+
modality?: string | null;
|
|
1322
|
+
vector: number[];
|
|
1323
|
+
/** Format: int32 */
|
|
1324
|
+
dimension?: number;
|
|
1325
|
+
};
|
|
1326
|
+
EntityProvenanceInput: {
|
|
1327
|
+
source_id?: string;
|
|
1328
|
+
chunk_id?: string;
|
|
1329
|
+
/** Format: int32 */
|
|
1330
|
+
chunk_position?: number;
|
|
1331
|
+
extraction_method?: string;
|
|
1332
|
+
metadata?: {
|
|
1333
|
+
[key: string]: string;
|
|
1334
|
+
};
|
|
1335
|
+
};
|
|
1336
|
+
EntityRelationInput: {
|
|
1337
|
+
source_entity_id: string;
|
|
1338
|
+
target_entity_id: string;
|
|
1339
|
+
relation_type: string;
|
|
1340
|
+
/** Format: float */
|
|
1341
|
+
weight?: number;
|
|
1342
|
+
properties?: {
|
|
1343
|
+
[key: string]: string;
|
|
1344
|
+
};
|
|
1345
|
+
};
|
|
1346
|
+
EntitySearchResult: {
|
|
1347
|
+
entity: components["schemas"]["EntityDto"];
|
|
1348
|
+
/** Format: float */
|
|
1349
|
+
score: number;
|
|
1350
|
+
};
|
|
1351
|
+
/** @description Inner body of [`ErrorResponse`]. */
|
|
1352
|
+
ErrorBody: {
|
|
1353
|
+
/**
|
|
1354
|
+
* @description Stable machine-readable error code (snake_case).
|
|
1355
|
+
* @example collection_not_found
|
|
1356
|
+
*/
|
|
1357
|
+
type: string;
|
|
1358
|
+
message: string;
|
|
1359
|
+
/**
|
|
1360
|
+
* Format: int32
|
|
1361
|
+
* @description HTTP status code.
|
|
1362
|
+
*/
|
|
1363
|
+
code: number;
|
|
1364
|
+
/** @description Correlation id (matches the X-Request-ID header). */
|
|
1365
|
+
request_id?: string | null;
|
|
1366
|
+
/** @description Optional structured context (e.g. migration hints). */
|
|
1367
|
+
details?: Record<string, never> | null;
|
|
1368
|
+
};
|
|
1369
|
+
/**
|
|
1370
|
+
* @description Canonical ProximaDB error envelope (`{ error: { type, message, code } }`).
|
|
1371
|
+
*
|
|
1372
|
+
* `request_id` (also returned in the `X-Request-ID` response header) is present
|
|
1373
|
+
* whenever the request passed through the request-id middleware; quote it in
|
|
1374
|
+
* bug reports.
|
|
1375
|
+
*/
|
|
1376
|
+
ErrorResponse: {
|
|
1377
|
+
error: components["schemas"]["ErrorBody"];
|
|
1378
|
+
};
|
|
1379
|
+
ExplainQueryRequest: {
|
|
1380
|
+
language: components["schemas"]["QueryLanguage"];
|
|
1381
|
+
query: string;
|
|
1382
|
+
collection?: string | null;
|
|
1383
|
+
};
|
|
1384
|
+
FusionHit: {
|
|
1385
|
+
oid: string;
|
|
1386
|
+
/** Format: float */
|
|
1387
|
+
score: number;
|
|
1388
|
+
source_count: number;
|
|
1389
|
+
/**
|
|
1390
|
+
* @description Graph node label(s) of the reached node. Exposed so cross-modal-joint
|
|
1391
|
+
* consumers can correlate a fused hit by its graph label without a separate
|
|
1392
|
+
* node lookup (#485). The expansion already reaches the node, so this is
|
|
1393
|
+
* near-free to fill. Additive + back-compat (empty until populated).
|
|
1394
|
+
*/
|
|
1395
|
+
labels?: string[];
|
|
1396
|
+
};
|
|
1397
|
+
FusionSearchRequest: {
|
|
1398
|
+
/** @description Vector collection to seed from (its records co-indexed with this graph by `oid`). */
|
|
1399
|
+
vector_collection: string;
|
|
1400
|
+
/** @description Query embedding for the ANN seed. */
|
|
1401
|
+
query_vector: number[];
|
|
1402
|
+
limit?: number;
|
|
1403
|
+
/**
|
|
1404
|
+
* Format: int32
|
|
1405
|
+
* @description k-hop expansion depth (bounded; default 1 — the validated sweet spot).
|
|
1406
|
+
*/
|
|
1407
|
+
max_depth?: number;
|
|
1408
|
+
edge_types?: string[];
|
|
1409
|
+
/** @description How many of the top vector seeds to expand from (bounded expansion). */
|
|
1410
|
+
max_seeds?: number;
|
|
1411
|
+
/** Format: float */
|
|
1412
|
+
vector_weight?: number | null;
|
|
1413
|
+
/** Format: float */
|
|
1414
|
+
graph_weight?: number | null;
|
|
1415
|
+
/** @description Use the rank-based RRF fallback instead of PIT-calibrated linear. */
|
|
1416
|
+
rrf?: boolean;
|
|
1417
|
+
/**
|
|
1418
|
+
* Format: float
|
|
1419
|
+
* @description Consensus boost added to any `oid` present in ≥2 sources.
|
|
1420
|
+
*/
|
|
1421
|
+
consensus_beta?: number | null;
|
|
1422
|
+
/** @description Graph contribution grain: `"nodes"` (default), `"edges"`, or `"both"`. */
|
|
1423
|
+
grain?: string | null;
|
|
1424
|
+
/**
|
|
1425
|
+
* Format: float
|
|
1426
|
+
* @description Cost-routing policy inputs (TD-141): drop negligible modalities (weight fraction) and budget each.
|
|
1427
|
+
* When absent, fusion is unbounded.
|
|
1428
|
+
*/
|
|
1429
|
+
min_weight_fraction?: number | null;
|
|
1430
|
+
total_budget?: number | null;
|
|
1431
|
+
/**
|
|
1432
|
+
* @description Optional BM25/full-text query (TD-138). When present (and non-empty), fusion also searches the
|
|
1433
|
+
* collection's document index and merges BM25 hits into the result by shared `oid` — tri-modal
|
|
1434
|
+
* (vector + graph + document) fusion. Absent ⇒ vector+graph only (unchanged).
|
|
1435
|
+
*/
|
|
1436
|
+
text_query?: string | null;
|
|
1437
|
+
/**
|
|
1438
|
+
* @description Collection whose document index to BM25-search. Defaults to `vector_collection` (documents
|
|
1439
|
+
* co-indexed with the vectors share the record `oid`, so they merge by `oid`).
|
|
1440
|
+
*/
|
|
1441
|
+
document_collection?: string | null;
|
|
1442
|
+
/**
|
|
1443
|
+
* Format: float
|
|
1444
|
+
* @description Document modality weight (mirrors `vector_weight` / `graph_weight`). Defaults to 1.0.
|
|
1445
|
+
*/
|
|
1446
|
+
document_weight?: number | null;
|
|
1447
|
+
};
|
|
1448
|
+
FusionSearchResponse: {
|
|
1449
|
+
results: components["schemas"]["FusionHit"][];
|
|
1450
|
+
stats: components["schemas"]["FusionStatsDto"];
|
|
1451
|
+
};
|
|
1452
|
+
FusionStatsDto: {
|
|
1453
|
+
sources_fused: number;
|
|
1454
|
+
sources_skipped: number;
|
|
1455
|
+
candidates_in: number;
|
|
1456
|
+
items_out: number;
|
|
1457
|
+
};
|
|
1458
|
+
/** @description REST input for HNSW index params (mirrors proto `HnswConfig`). */
|
|
1459
|
+
HnswConfigInput: {
|
|
1460
|
+
/** Format: int32 */
|
|
1461
|
+
m?: number | null;
|
|
1462
|
+
/** Format: int32 */
|
|
1463
|
+
ef_construction?: number | null;
|
|
1464
|
+
/** Format: int32 */
|
|
1465
|
+
ef_search?: number | null;
|
|
1466
|
+
};
|
|
1467
|
+
/** @description REST output for HNSW params (mirrors gRPC `V2HnswConfig`). */
|
|
1468
|
+
HnswConfigOutput: {
|
|
1469
|
+
/** Format: int32 */
|
|
1470
|
+
m?: number | null;
|
|
1471
|
+
/** Format: int32 */
|
|
1472
|
+
ef_construction?: number | null;
|
|
1473
|
+
/** Format: int32 */
|
|
1474
|
+
ef_search?: number | null;
|
|
1475
|
+
};
|
|
1476
|
+
ImpactAnalysisRequest: {
|
|
1477
|
+
/** @description Start symbol node id. */
|
|
1478
|
+
node_id: string;
|
|
1479
|
+
/** @description `"forward"` (default — what X impacts) or `"backward"` (what impacts X). */
|
|
1480
|
+
direction?: string | null;
|
|
1481
|
+
edge_types?: string[];
|
|
1482
|
+
/** Format: int32 */
|
|
1483
|
+
max_depth?: number;
|
|
1484
|
+
limit?: number;
|
|
1485
|
+
};
|
|
1486
|
+
ImpactAnalysisResponse: {
|
|
1487
|
+
/** @description Reached node ids (canonical `oid` = `graph/{graph_id}/node/{id}`). */
|
|
1488
|
+
node_ids: string[];
|
|
1489
|
+
edge_count: number;
|
|
1490
|
+
/** Format: int32 */
|
|
1491
|
+
max_depth_reached: number;
|
|
1492
|
+
};
|
|
1493
|
+
/** @description REST input for a single index config (mirrors proto `IndexConfig`). */
|
|
1494
|
+
IndexConfigInput: {
|
|
1495
|
+
/** @description Optional index name (defaults to `index_<n>`). */
|
|
1496
|
+
index_name?: string | null;
|
|
1497
|
+
/** @description Algorithm: "hnsw", "ivf", "pq", "flat", "annoy", "lsh". */
|
|
1498
|
+
algorithm: string;
|
|
1499
|
+
/** @description Free-form algorithm parameters. */
|
|
1500
|
+
parameters?: {
|
|
1501
|
+
[key: string]: string;
|
|
1502
|
+
};
|
|
1503
|
+
hnsw_config?: null | components["schemas"]["HnswConfigInput"];
|
|
1504
|
+
ivf_config?: null | components["schemas"]["IvfConfigInput"];
|
|
1505
|
+
/** @description Mark this index as the collection's primary ANN index (gRPC-v2 parity). */
|
|
1506
|
+
is_primary?: boolean | null;
|
|
1507
|
+
};
|
|
1508
|
+
/**
|
|
1509
|
+
* @description REST input for the per-collection index routing policy (mirrors proto
|
|
1510
|
+
* `IndexPolicy`; ADR-028).
|
|
1511
|
+
*/
|
|
1512
|
+
IndexPolicyInput: {
|
|
1513
|
+
/**
|
|
1514
|
+
* @description Routing mode: "auto" (default) | "exact" | "ivf" | "hnsw" | "helix".
|
|
1515
|
+
* "auto"/omitted ⇒ cost-derived. "exact" ⇒ always brute-force (no index).
|
|
1516
|
+
* The engine modes force the collection onto that engine/route.
|
|
1517
|
+
*/
|
|
1518
|
+
mode?: string | null;
|
|
1519
|
+
/**
|
|
1520
|
+
* @description Cold-start index warming: "auto" (default) | "eager" | "lazy" | "never".
|
|
1521
|
+
* Index/auto modes only — rejected when `mode = "exact"`.
|
|
1522
|
+
*/
|
|
1523
|
+
rehydrate?: string | null;
|
|
1524
|
+
/**
|
|
1525
|
+
* Format: int64
|
|
1526
|
+
* @description Exact-scan byte budget override (bytes). 0/omitted ⇒ cost-model default
|
|
1527
|
+
* for the storage class.
|
|
1528
|
+
*/
|
|
1529
|
+
byte_budget?: number | null;
|
|
1530
|
+
/**
|
|
1531
|
+
* Format: int32
|
|
1532
|
+
* @description nprobe override for index modes. 0/omitted ⇒ cost-derived. Rejected when
|
|
1533
|
+
* `mode = "exact"`.
|
|
1534
|
+
*/
|
|
1535
|
+
nprobe?: number | null;
|
|
1536
|
+
};
|
|
1537
|
+
/** @description REST output for a single index config (mirrors gRPC `V2IndexSpec`). */
|
|
1538
|
+
IndexSpecOutput: {
|
|
1539
|
+
/** @description Algorithm: "hnsw" | "ivf" | "pq" | "flat" | "annoy" | "lsh". */
|
|
1540
|
+
algorithm: string;
|
|
1541
|
+
hnsw?: null | components["schemas"]["HnswConfigOutput"];
|
|
1542
|
+
ivf?: null | components["schemas"]["IvfConfigOutput"];
|
|
1543
|
+
/** @description Whether this is the collection's primary ANN index. */
|
|
1544
|
+
is_primary: boolean;
|
|
1545
|
+
};
|
|
1546
|
+
/** @description A single record submitted for native embedding + indexing. */
|
|
1547
|
+
IngestDocument: {
|
|
1548
|
+
id: string;
|
|
1549
|
+
/**
|
|
1550
|
+
* @description Raw text content. Required when `X-Embed-Source: native` (default);
|
|
1551
|
+
* optional when the client also supplied a vector.
|
|
1552
|
+
*/
|
|
1553
|
+
text?: string | null;
|
|
1554
|
+
/**
|
|
1555
|
+
* @description Optional client-provided vector. When present, the server skips
|
|
1556
|
+
* embedding for this record. Use case: SDK that already embedded
|
|
1557
|
+
* locally (legacy path).
|
|
1558
|
+
*/
|
|
1559
|
+
vector?: number[] | null;
|
|
1560
|
+
/** @description Arbitrary metadata fields. Stored as ProximaRecord props. */
|
|
1561
|
+
metadata?: {
|
|
1562
|
+
[key: string]: unknown;
|
|
1563
|
+
};
|
|
1564
|
+
};
|
|
1565
|
+
IngestDocumentsRequest: {
|
|
1566
|
+
records: components["schemas"]["IngestDocument"][];
|
|
1567
|
+
};
|
|
1568
|
+
IngestDocumentsResponse: {
|
|
1569
|
+
mode: string;
|
|
1570
|
+
records: components["schemas"]["IngestedRecord"][];
|
|
1571
|
+
/** Format: int64 */
|
|
1572
|
+
retry_after_ms?: number | null;
|
|
1573
|
+
};
|
|
1574
|
+
IngestedRecord: {
|
|
1575
|
+
id: string;
|
|
1576
|
+
/** Format: int32 */
|
|
1577
|
+
dim: number;
|
|
1578
|
+
};
|
|
1579
|
+
/** @description Error details for a failed record insertion */
|
|
1580
|
+
InsertError: {
|
|
1581
|
+
/** @description Index of the record in the request */
|
|
1582
|
+
index: number;
|
|
1583
|
+
/** @description Record ID (if provided) */
|
|
1584
|
+
id?: string | null;
|
|
1585
|
+
/** @description Error message */
|
|
1586
|
+
error: string;
|
|
1587
|
+
};
|
|
1588
|
+
/**
|
|
1589
|
+
* @description Request to insert ProximaRecords
|
|
1590
|
+
*
|
|
1591
|
+
* ## Example JSON
|
|
1592
|
+
*
|
|
1593
|
+
* ```json
|
|
1594
|
+
* {
|
|
1595
|
+
* "records": [
|
|
1596
|
+
* {
|
|
1597
|
+
* "id": "doc_1",
|
|
1598
|
+
* "vector": [0.1, 0.2, 0.3],
|
|
1599
|
+
* "props": {
|
|
1600
|
+
* "category": "electronics",
|
|
1601
|
+
* "price": 299.99,
|
|
1602
|
+
* "in_stock": true
|
|
1603
|
+
* },
|
|
1604
|
+
* "text_fields": [
|
|
1605
|
+
* {
|
|
1606
|
+
* "name": "description",
|
|
1607
|
+
* "content": "A detailed product description...",
|
|
1608
|
+
* "storage_hint": "adaptive"
|
|
1609
|
+
* }
|
|
1610
|
+
* ],
|
|
1611
|
+
* "source": "catalog_import"
|
|
1612
|
+
* }
|
|
1613
|
+
* ],
|
|
1614
|
+
* "validate_schema": true
|
|
1615
|
+
* }
|
|
1616
|
+
* ```
|
|
1617
|
+
* Not supported in v0.2: optimistic versioning, conditional-write predicates,
|
|
1618
|
+
* update-by-filter, delete-by-filter, and patch / partial-record update. The
|
|
1619
|
+
* live contract is exposed via `WriteContractHealth` on the route-health
|
|
1620
|
+
* diagnostic endpoint (`GET /api/v2/_diagnostics/collections/{id}/route-health`);
|
|
1621
|
+
* see also `docs/SUPPORTED_SURFACE.adoc` "Not Supported in v0.2".
|
|
1622
|
+
*/
|
|
1623
|
+
InsertRecordsRequest: {
|
|
1624
|
+
/** @description Records to insert */
|
|
1625
|
+
records: components["schemas"]["ProximaRecordInput"][];
|
|
1626
|
+
/** @description Whether to validate against collection schema (default: true) */
|
|
1627
|
+
validate_schema?: boolean | null;
|
|
1628
|
+
/**
|
|
1629
|
+
* @description Whether existing records with the same ID should be replaced.
|
|
1630
|
+
*
|
|
1631
|
+
* The current durable record write path is idempotent/upsert-oriented; this
|
|
1632
|
+
* field is accepted so SDKs can expose explicit upsert intent without
|
|
1633
|
+
* leaving the OpenAPI contract.
|
|
1634
|
+
*/
|
|
1635
|
+
upsert?: boolean | null;
|
|
1636
|
+
};
|
|
1637
|
+
/** @description Response for insert operation */
|
|
1638
|
+
InsertRecordsResponse: {
|
|
1639
|
+
/** @description Number of successfully inserted records */
|
|
1640
|
+
inserted_count: number;
|
|
1641
|
+
/** @description Number of failed records */
|
|
1642
|
+
failed_count: number;
|
|
1643
|
+
/** @description Detailed errors for failed records */
|
|
1644
|
+
errors: components["schemas"]["InsertError"][];
|
|
1645
|
+
/** @description IDs of successfully inserted records */
|
|
1646
|
+
inserted_ids: string[];
|
|
1647
|
+
};
|
|
1648
|
+
/** @description REST input for IVF index params (mirrors proto `IvfConfig`). */
|
|
1649
|
+
IvfConfigInput: {
|
|
1650
|
+
/** Format: int32 */
|
|
1651
|
+
n_lists?: number | null;
|
|
1652
|
+
/** Format: int32 */
|
|
1653
|
+
n_probe?: number | null;
|
|
1654
|
+
};
|
|
1655
|
+
/** @description REST output for IVF params (mirrors gRPC `V2IvfConfig`). */
|
|
1656
|
+
IvfConfigOutput: {
|
|
1657
|
+
/** Format: int32 */
|
|
1658
|
+
n_lists?: number | null;
|
|
1659
|
+
/** Format: int32 */
|
|
1660
|
+
n_probe?: number | null;
|
|
1661
|
+
};
|
|
1662
|
+
/** @description Response for listing collections */
|
|
1663
|
+
ListCollectionsV2Response: {
|
|
1664
|
+
/** @description List of collections */
|
|
1665
|
+
collections: components["schemas"]["CollectionV2Summary"][];
|
|
1666
|
+
/**
|
|
1667
|
+
* Format: int64
|
|
1668
|
+
* @description Total count of collections
|
|
1669
|
+
*/
|
|
1670
|
+
total: number;
|
|
1671
|
+
/**
|
|
1672
|
+
* Format: int32
|
|
1673
|
+
* @description Limit used in this request
|
|
1674
|
+
*/
|
|
1675
|
+
limit: number;
|
|
1676
|
+
/**
|
|
1677
|
+
* Format: int32
|
|
1678
|
+
* @description Offset used in this request
|
|
1679
|
+
*/
|
|
1680
|
+
offset: number;
|
|
1681
|
+
/** @description Whether there are more results */
|
|
1682
|
+
has_more: boolean;
|
|
1683
|
+
};
|
|
1684
|
+
ListModelRegistriesResponse: {
|
|
1685
|
+
registries: components["schemas"]["ModelRegistryRecordResponse"][];
|
|
1686
|
+
};
|
|
1687
|
+
/**
|
|
1688
|
+
* @description REST uses a decimal string for stable catalog IDs so JavaScript clients do
|
|
1689
|
+
* not lose precision. gRPC exposes the same value as `uint64`.
|
|
1690
|
+
*/
|
|
1691
|
+
ModelRegistryRecordResponse: {
|
|
1692
|
+
tenant_id: string;
|
|
1693
|
+
asset_id: string;
|
|
1694
|
+
registry: components["schemas"]["CatalogEmbeddingModelRegistry"];
|
|
1695
|
+
};
|
|
1696
|
+
/**
|
|
1697
|
+
* @description TD-064: predicate-aware recall shortfall (REST wire shape).
|
|
1698
|
+
*
|
|
1699
|
+
* Mirrors `observability::search_plan_trace::PredicateShortfall` as an
|
|
1700
|
+
* explicit REST/OpenAPI schema so the field is typed and documented on the
|
|
1701
|
+
* wire without forcing the observability type (or the slim `IndexQueryResult`
|
|
1702
|
+
* DTO) to derive `ToSchema`.
|
|
1703
|
+
*/
|
|
1704
|
+
PredicateShortfallWire: {
|
|
1705
|
+
/**
|
|
1706
|
+
* Format: int32
|
|
1707
|
+
* @description The `top_k` value the caller asked for.
|
|
1708
|
+
*/
|
|
1709
|
+
requested_k: number;
|
|
1710
|
+
/**
|
|
1711
|
+
* Format: int32
|
|
1712
|
+
* @description Results actually returned after predicate filtering + merge.
|
|
1713
|
+
*/
|
|
1714
|
+
returned_k: number;
|
|
1715
|
+
/**
|
|
1716
|
+
* Format: int32
|
|
1717
|
+
* @description Candidate pool size considered before the predicate (oversample budget).
|
|
1718
|
+
*/
|
|
1719
|
+
oversample_pool: number;
|
|
1720
|
+
/**
|
|
1721
|
+
* @description ADR-011 mode that produced the shortfall (`post_filter`, `inline`, or
|
|
1722
|
+
* `pre_filter`).
|
|
1723
|
+
*/
|
|
1724
|
+
ann_filtering_mode: string;
|
|
1725
|
+
};
|
|
1726
|
+
/**
|
|
1727
|
+
* @description Input format for ProximaRecord (JSON-friendly)
|
|
1728
|
+
*
|
|
1729
|
+
* This is the JSON-serializable input format for ProximaRecord.
|
|
1730
|
+
* It uses serde_json::Value for typed fields to support dynamic typing
|
|
1731
|
+
* at the API boundary, with validation happening during conversion.
|
|
1732
|
+
*/
|
|
1733
|
+
ProximaRecordInput: {
|
|
1734
|
+
/** @description Record ID (optional, will be auto-generated if not provided) */
|
|
1735
|
+
id?: string | null;
|
|
1736
|
+
/** @description Vector embedding (required) */
|
|
1737
|
+
vector: number[];
|
|
1738
|
+
/** @description Canonical rich property map. */
|
|
1739
|
+
props?: {
|
|
1740
|
+
[key: string]: unknown;
|
|
1741
|
+
} | null;
|
|
1742
|
+
/** @description Dedicated TEXT fields with storage hints */
|
|
1743
|
+
text_fields?: components["schemas"]["TextFieldInput"][] | null;
|
|
1744
|
+
};
|
|
1745
|
+
/**
|
|
1746
|
+
* @description REST input for quantization config (mirrors proto `QuantizationConfig`;
|
|
1747
|
+
* gRPC-v2 parity with `V2QuantizationConfig`).
|
|
1748
|
+
*/
|
|
1749
|
+
QuantizationConfigInput: {
|
|
1750
|
+
/** @description Enable quantization for this collection. */
|
|
1751
|
+
enabled?: boolean | null;
|
|
1752
|
+
/** @description Strategy: "smart_defaults" (default) | "minimal" | "aggressive" | "custom_levels". */
|
|
1753
|
+
strategy?: string | null;
|
|
1754
|
+
};
|
|
1755
|
+
/** @description REST output for quantization config (mirrors gRPC `V2QuantizationConfig`). */
|
|
1756
|
+
QuantizationConfigOutput: {
|
|
1757
|
+
enabled: boolean;
|
|
1758
|
+
/** @description Strategy label, e.g. "smart_defaults" | "minimal" | "aggressive". */
|
|
1759
|
+
strategy: string;
|
|
1760
|
+
};
|
|
1761
|
+
/** @enum {string} */
|
|
1762
|
+
QueryLanguage: "uql" | "aql" | "federated";
|
|
1763
|
+
QueryRequest: {
|
|
1764
|
+
language: components["schemas"]["QueryLanguage"];
|
|
1765
|
+
query: string;
|
|
1766
|
+
parameters?: Record<string, never>[] | null;
|
|
1767
|
+
collection?: string | null;
|
|
1768
|
+
/** Format: int32 */
|
|
1769
|
+
limit?: number | null;
|
|
1770
|
+
};
|
|
1771
|
+
/**
|
|
1772
|
+
* @description Query facade result. Implementations return records, total_count, metrics,
|
|
1773
|
+
* plan, or diagnostics depending on language and endpoint, so the body is a
|
|
1774
|
+
* free-form JSON object.
|
|
1775
|
+
*/
|
|
1776
|
+
QueryResponse: Record<string, never>;
|
|
1777
|
+
/** @description Response for getting a single record */
|
|
1778
|
+
RecordV2Response: {
|
|
1779
|
+
/** @description Record ID */
|
|
1780
|
+
id: string;
|
|
1781
|
+
/** @description Vector embedding (if requested) */
|
|
1782
|
+
vector?: number[] | null;
|
|
1783
|
+
/** @description Rich properties from the record */
|
|
1784
|
+
props: {
|
|
1785
|
+
[key: string]: unknown;
|
|
1786
|
+
};
|
|
1787
|
+
/** @description TEXT fields (if include_text is true) */
|
|
1788
|
+
text_fields?: components["schemas"]["TextFieldOutput"][] | null;
|
|
1789
|
+
/**
|
|
1790
|
+
* Format: int64
|
|
1791
|
+
* @description Record version
|
|
1792
|
+
*/
|
|
1793
|
+
version?: number | null;
|
|
1794
|
+
/**
|
|
1795
|
+
* Format: int64
|
|
1796
|
+
* @description Record timestamp
|
|
1797
|
+
*/
|
|
1798
|
+
timestamp?: number | null;
|
|
1799
|
+
};
|
|
1800
|
+
ResolveModelAliasRequest: {
|
|
1801
|
+
alias: string;
|
|
1802
|
+
/** Format: int32 */
|
|
1803
|
+
dimension: number;
|
|
1804
|
+
/** @description Runtime implementation that will execute the immutable contract. */
|
|
1805
|
+
runtime?: string | null;
|
|
1806
|
+
/** @description Require the latest append-only decision to approve the selected version. */
|
|
1807
|
+
require_approved?: boolean;
|
|
1808
|
+
};
|
|
1809
|
+
ResolvedEmbeddingModelResponse: {
|
|
1810
|
+
asset_id: string;
|
|
1811
|
+
registry_name: string;
|
|
1812
|
+
/** Format: int64 */
|
|
1813
|
+
registry_revision: number;
|
|
1814
|
+
contract_sha256: string;
|
|
1815
|
+
model: components["schemas"]["CatalogEmbeddingModelVersion"];
|
|
1816
|
+
};
|
|
1817
|
+
ResolvedModelBindingResponse: {
|
|
1818
|
+
model: string;
|
|
1819
|
+
/** Format: int32 */
|
|
1820
|
+
dimension: number;
|
|
1821
|
+
model_asset_id: string;
|
|
1822
|
+
/** Format: int64 */
|
|
1823
|
+
model_version: number;
|
|
1824
|
+
contract_sha256: string;
|
|
1825
|
+
snapshot: components["schemas"]["ResolvedEmbeddingModelResponse"];
|
|
1826
|
+
};
|
|
1827
|
+
/** @description Column definition for schema */
|
|
1828
|
+
RestColumnDefinition: {
|
|
1829
|
+
/** @description Column name */
|
|
1830
|
+
name: string;
|
|
1831
|
+
/**
|
|
1832
|
+
* @description Data type
|
|
1833
|
+
*
|
|
1834
|
+
* Supported types:
|
|
1835
|
+
* - "text": Variable-length UTF-8 text
|
|
1836
|
+
* - "text_large": Large text with sidecar storage
|
|
1837
|
+
* - "integer": 64-bit signed integer
|
|
1838
|
+
* - "float": 64-bit floating point
|
|
1839
|
+
* - "decimal": 128-bit decimal (precision, scale)
|
|
1840
|
+
* - "boolean": True/false
|
|
1841
|
+
* - "timestamp": Microseconds since epoch
|
|
1842
|
+
* - "timestamp_tz": Timestamp with timezone
|
|
1843
|
+
* - "date": Days since epoch
|
|
1844
|
+
* - "time": Microseconds since midnight
|
|
1845
|
+
* - "uuid": RFC 4122 UUID
|
|
1846
|
+
* - "binary": Raw bytes
|
|
1847
|
+
* - "json": Validated JSON
|
|
1848
|
+
* - "array_text", "array_integer", "array_float", "array_boolean"
|
|
1849
|
+
* - "map_string_string", "map_string_any"
|
|
1850
|
+
* - "geo_point": Latitude/longitude point
|
|
1851
|
+
* - "vector": Fixed-dimension vector (specify dimension)
|
|
1852
|
+
*/
|
|
1853
|
+
data_type: string;
|
|
1854
|
+
/**
|
|
1855
|
+
* @description Whether null values are allowed
|
|
1856
|
+
*
|
|
1857
|
+
* Default: true
|
|
1858
|
+
*/
|
|
1859
|
+
nullable?: boolean | null;
|
|
1860
|
+
/**
|
|
1861
|
+
* @description Create secondary index for this column
|
|
1862
|
+
*
|
|
1863
|
+
* Improves query performance for equality/range filters.
|
|
1864
|
+
* Default: false
|
|
1865
|
+
*/
|
|
1866
|
+
indexed?: boolean | null;
|
|
1867
|
+
/**
|
|
1868
|
+
* @description Enable filtering on this column
|
|
1869
|
+
*
|
|
1870
|
+
* When true, the column can be used in WHERE clauses.
|
|
1871
|
+
* Default: true for indexed columns, false otherwise
|
|
1872
|
+
*/
|
|
1873
|
+
filterable?: boolean | null;
|
|
1874
|
+
/**
|
|
1875
|
+
* Format: int32
|
|
1876
|
+
* @description Maximum length for TEXT/BINARY columns
|
|
1877
|
+
*
|
|
1878
|
+
* Default: no limit
|
|
1879
|
+
*/
|
|
1880
|
+
max_length?: number | null;
|
|
1881
|
+
/**
|
|
1882
|
+
* Format: int32
|
|
1883
|
+
* @description Precision for DECIMAL type (1-38)
|
|
1884
|
+
*/
|
|
1885
|
+
precision?: number | null;
|
|
1886
|
+
/**
|
|
1887
|
+
* Format: int32
|
|
1888
|
+
* @description Scale for DECIMAL type (0-precision)
|
|
1889
|
+
*/
|
|
1890
|
+
scale?: number | null;
|
|
1891
|
+
/**
|
|
1892
|
+
* Format: int32
|
|
1893
|
+
* @description Dimension for VECTOR type
|
|
1894
|
+
*/
|
|
1895
|
+
vector_dimension?: number | null;
|
|
1896
|
+
};
|
|
1897
|
+
/**
|
|
1898
|
+
* @description Body of `POST /records/scan`. Mirrors the OpenAPI `ScanRecordsRequest`
|
|
1899
|
+
* schema; all fields optional so an empty `{}` returns the first page.
|
|
1900
|
+
*/
|
|
1901
|
+
ScanRecordsRequest: {
|
|
1902
|
+
/**
|
|
1903
|
+
* @description Opaque continuation token returned as `next_cursor` from a
|
|
1904
|
+
* prior page. Omit / null to start from the beginning.
|
|
1905
|
+
*/
|
|
1906
|
+
cursor?: string | null;
|
|
1907
|
+
/**
|
|
1908
|
+
* Format: int32
|
|
1909
|
+
* @description Max records to return in this page. Server enforces upper bound.
|
|
1910
|
+
*/
|
|
1911
|
+
limit?: number | null;
|
|
1912
|
+
/**
|
|
1913
|
+
* @description Metadata filter applied (before the limit) to the scanned page.
|
|
1914
|
+
* Accepts either the typed list form `[{field,op,value}]` (mirrors
|
|
1915
|
+
* `searchRecords.filters`) or a simple equality map `{field: value}`.
|
|
1916
|
+
*/
|
|
1917
|
+
filter?: unknown;
|
|
1918
|
+
include_vector?: boolean | null;
|
|
1919
|
+
include_text?: boolean | null;
|
|
1920
|
+
};
|
|
1921
|
+
/**
|
|
1922
|
+
* @description Response shape for `scanRecords`. Empty `records` + null
|
|
1923
|
+
* `next_cursor` signals end-of-scan. Each record matches the OpenAPI
|
|
1924
|
+
* `RecordResponse` schema (same shape used by `getRecord`).
|
|
1925
|
+
*/
|
|
1926
|
+
ScanRecordsResponse: {
|
|
1927
|
+
records: components["schemas"]["RecordV2Response"][];
|
|
1928
|
+
/** Format: int64 */
|
|
1929
|
+
content_revision: number;
|
|
1930
|
+
content_revision_token: string;
|
|
1931
|
+
next_cursor?: string | null;
|
|
1932
|
+
/** Format: int64 */
|
|
1933
|
+
scanned_count?: number | null;
|
|
1934
|
+
};
|
|
1935
|
+
/** @description Description of a schema change */
|
|
1936
|
+
SchemaChange: {
|
|
1937
|
+
/** @description Type of change */
|
|
1938
|
+
change_type: string;
|
|
1939
|
+
/** @description Affected column (if applicable) */
|
|
1940
|
+
column?: string | null;
|
|
1941
|
+
/** @description Description of the change */
|
|
1942
|
+
description: string;
|
|
1943
|
+
};
|
|
1944
|
+
/**
|
|
1945
|
+
* @description Schema definition for a collection
|
|
1946
|
+
*
|
|
1947
|
+
* Defines the typed columns and enforcement rules for ProximaRecord support.
|
|
1948
|
+
*/
|
|
1949
|
+
SchemaDefinition: {
|
|
1950
|
+
/** @description Column definitions */
|
|
1951
|
+
columns: components["schemas"]["RestColumnDefinition"][];
|
|
1952
|
+
/**
|
|
1953
|
+
* @description Schema enforcement mode
|
|
1954
|
+
*
|
|
1955
|
+
* - "strict": All columns must match schema exactly
|
|
1956
|
+
* - "flexible": Schema on read, no validation at insert
|
|
1957
|
+
* - "hybrid": Core columns enforced, additional fields allowed (default)
|
|
1958
|
+
*/
|
|
1959
|
+
enforcement?: string | null;
|
|
1960
|
+
/**
|
|
1961
|
+
* @description Allow additional fields not defined in schema
|
|
1962
|
+
*
|
|
1963
|
+
* Only applies in "hybrid" mode.
|
|
1964
|
+
* Default: true
|
|
1965
|
+
*/
|
|
1966
|
+
allow_additional_fields?: boolean | null;
|
|
1967
|
+
};
|
|
1968
|
+
/** @description Schema response with metadata */
|
|
1969
|
+
SchemaResponse: {
|
|
1970
|
+
/** @description Schema ID (UUID) */
|
|
1971
|
+
schema_id: string;
|
|
1972
|
+
/** @description Schema version (semantic versioning) */
|
|
1973
|
+
schema_version: string;
|
|
1974
|
+
/** @description Collection this schema belongs to */
|
|
1975
|
+
collection_id: string;
|
|
1976
|
+
/** @description Schema definition */
|
|
1977
|
+
schema: components["schemas"]["SchemaDefinition"];
|
|
1978
|
+
/** @description Creation timestamp */
|
|
1979
|
+
created_at: string;
|
|
1980
|
+
/** @description Last update timestamp */
|
|
1981
|
+
updated_at?: string | null;
|
|
1982
|
+
/** @description Parent schema ID (for evolution tracking) */
|
|
1983
|
+
parent_schema_id?: string | null;
|
|
1984
|
+
};
|
|
1985
|
+
SearchEntitiesRequest: {
|
|
1986
|
+
/** @description Query embedding for vector similarity search. Omit for metadata-only search. */
|
|
1987
|
+
query_vector?: number[];
|
|
1988
|
+
/** @description Equality metadata filters as a `{field: value}` JSON object. */
|
|
1989
|
+
filters?: {
|
|
1990
|
+
[key: string]: unknown;
|
|
1991
|
+
};
|
|
1992
|
+
/** Format: int32 */
|
|
1993
|
+
top_k?: number;
|
|
1994
|
+
};
|
|
1995
|
+
SearchEntitiesResponse: {
|
|
1996
|
+
results: components["schemas"]["EntitySearchResult"][];
|
|
1997
|
+
/** Format: int32 */
|
|
1998
|
+
total: number;
|
|
1999
|
+
};
|
|
2000
|
+
/**
|
|
2001
|
+
* @description One SQL statement executed through the shared SQL authority.
|
|
2002
|
+
*
|
|
2003
|
+
* Parameter binding is intentionally not advertised yet: the relational
|
|
2004
|
+
* execution port currently has no typed binding contract. Callers must not be
|
|
2005
|
+
* offered a field that an adapter would silently ignore or interpolate.
|
|
2006
|
+
*/
|
|
2007
|
+
SqlRequest: {
|
|
2008
|
+
query: string;
|
|
2009
|
+
/** @description Optional collection context used by vector/graph SQL extensions. */
|
|
2010
|
+
collection?: string | null;
|
|
2011
|
+
/**
|
|
2012
|
+
* Format: int64
|
|
2013
|
+
* @description Per-request deadline. Defaults to 30 seconds and is capped at 5 minutes.
|
|
2014
|
+
*/
|
|
2015
|
+
timeout_ms?: number | null;
|
|
2016
|
+
};
|
|
2017
|
+
/**
|
|
2018
|
+
* @description Stable JSON envelope for SQL reads and writes.
|
|
2019
|
+
*
|
|
2020
|
+
* For reads, `rows_returned` is the row count. For DDL/DML, the shared SQL
|
|
2021
|
+
* authority reports the affected count in `rows_returned` and `rows` is empty.
|
|
2022
|
+
*/
|
|
2023
|
+
SqlResponse: {
|
|
2024
|
+
rows: Record<string, never>[];
|
|
2025
|
+
columns: string[];
|
|
2026
|
+
column_types: string[];
|
|
2027
|
+
/** Format: int64 */
|
|
2028
|
+
rows_returned: number;
|
|
2029
|
+
/** Format: int64 */
|
|
2030
|
+
rows_scanned: number;
|
|
2031
|
+
/** Format: int64 */
|
|
2032
|
+
execution_time_ms: number;
|
|
2033
|
+
request_id: string;
|
|
2034
|
+
};
|
|
2035
|
+
/**
|
|
2036
|
+
* @description Input format for TEXT fields
|
|
2037
|
+
*
|
|
2038
|
+
* TEXT fields are stored in dedicated columns with optional chunking
|
|
2039
|
+
* for large content. The storage hint helps optimize storage strategy.
|
|
2040
|
+
*/
|
|
2041
|
+
TextFieldInput: {
|
|
2042
|
+
/** @description Field name */
|
|
2043
|
+
name: string;
|
|
2044
|
+
/** @description Text content */
|
|
2045
|
+
content: string;
|
|
2046
|
+
/**
|
|
2047
|
+
* @description Storage strategy hint
|
|
2048
|
+
*
|
|
2049
|
+
* - "inline": Store inline in main column (<4KB)
|
|
2050
|
+
* - "chunked": Split into chunks with embeddings (4KB-1MB)
|
|
2051
|
+
* - "sidecar": Store in separate sidecar file (>1MB)
|
|
2052
|
+
* - "adaptive": Auto-select based on content size (default)
|
|
2053
|
+
*/
|
|
2054
|
+
storage_hint?: string | null;
|
|
2055
|
+
};
|
|
2056
|
+
/** @description Output format for TEXT fields */
|
|
2057
|
+
TextFieldOutput: {
|
|
2058
|
+
/** @description Field name */
|
|
2059
|
+
name: string;
|
|
2060
|
+
/** @description Text content (may be truncated for large content) */
|
|
2061
|
+
content: string;
|
|
2062
|
+
/**
|
|
2063
|
+
* Format: int32
|
|
2064
|
+
* @description Number of chunks (for chunked storage)
|
|
2065
|
+
*/
|
|
2066
|
+
chunk_count?: number | null;
|
|
2067
|
+
/** @description Whether content was truncated */
|
|
2068
|
+
truncated: boolean;
|
|
2069
|
+
};
|
|
2070
|
+
/**
|
|
2071
|
+
* @description A typed filter for search operations
|
|
2072
|
+
*
|
|
2073
|
+
* Supports various comparison operators with type-safe values.
|
|
2074
|
+
*/
|
|
2075
|
+
TypedFilter: {
|
|
2076
|
+
/** @description Field name to filter on */
|
|
2077
|
+
field: string;
|
|
2078
|
+
/**
|
|
2079
|
+
* @description Comparison operator
|
|
2080
|
+
*
|
|
2081
|
+
* Supported operators:
|
|
2082
|
+
* - "eq": Equals
|
|
2083
|
+
* - "neq": Not equals
|
|
2084
|
+
* - "gt": Greater than
|
|
2085
|
+
* - "gte": Greater than or equal
|
|
2086
|
+
* - "lt": Less than
|
|
2087
|
+
* - "lte": Less than or equal
|
|
2088
|
+
* - "contains": String/array contains
|
|
2089
|
+
* - "between": Value is between two bounds (requires value_upper)
|
|
2090
|
+
* - "in": Value is in a list
|
|
2091
|
+
* - "starts_with": String starts with prefix
|
|
2092
|
+
* - "ends_with": String ends with suffix
|
|
2093
|
+
*/
|
|
2094
|
+
op: string;
|
|
2095
|
+
/** @description Filter value (type depends on field type) */
|
|
2096
|
+
value: unknown;
|
|
2097
|
+
/** @description Upper bound for "between" operator */
|
|
2098
|
+
value_upper?: unknown;
|
|
2099
|
+
};
|
|
2100
|
+
/**
|
|
2101
|
+
* @description Search request with typed filters
|
|
2102
|
+
*
|
|
2103
|
+
* ## Example JSON
|
|
2104
|
+
*
|
|
2105
|
+
* ```json
|
|
2106
|
+
* {
|
|
2107
|
+
* "vector": [0.1, 0.2, 0.3],
|
|
2108
|
+
* "top_k": 10,
|
|
2109
|
+
* "filters": [
|
|
2110
|
+
* {"field": "category", "op": "eq", "value": "electronics"},
|
|
2111
|
+
* {"field": "price", "op": "lt", "value": 500},
|
|
2112
|
+
* {"field": "in_stock", "op": "eq", "value": true}
|
|
2113
|
+
* ],
|
|
2114
|
+
* "include_text": true
|
|
2115
|
+
* }
|
|
2116
|
+
* ```
|
|
2117
|
+
*/
|
|
2118
|
+
TypedSearchRequest: {
|
|
2119
|
+
/** @description Query vector */
|
|
2120
|
+
vector: number[];
|
|
2121
|
+
/** @description Number of results to return */
|
|
2122
|
+
top_k: number;
|
|
2123
|
+
/** @description Typed filters with operator support */
|
|
2124
|
+
filters?: components["schemas"]["TypedFilter"][] | null;
|
|
2125
|
+
/**
|
|
2126
|
+
* @description Whether to include TEXT fields in results (default: false)
|
|
2127
|
+
*
|
|
2128
|
+
* TEXT fields can be large, so they are excluded by default.
|
|
2129
|
+
* Set to true to include them in the response.
|
|
2130
|
+
*/
|
|
2131
|
+
include_text?: boolean | null;
|
|
2132
|
+
/**
|
|
2133
|
+
* @description Whether to include the vector in results (default: false)
|
|
2134
|
+
*
|
|
2135
|
+
* Vector data can be large, so it is excluded by default.
|
|
2136
|
+
*/
|
|
2137
|
+
include_vector?: boolean | null;
|
|
2138
|
+
/**
|
|
2139
|
+
* @description Return the SearchPlanTrace + a human-readable route explain
|
|
2140
|
+
* in the response (LLD §1 contract). Defaults to `false` so
|
|
2141
|
+
* non-debug requests don't pay the JSON serialization cost of
|
|
2142
|
+
* the ~30-field trace envelope.
|
|
2143
|
+
*/
|
|
2144
|
+
debug?: boolean | null;
|
|
2145
|
+
};
|
|
2146
|
+
/** @description Search response with typed results */
|
|
2147
|
+
TypedSearchResponse: {
|
|
2148
|
+
/** @description Search results */
|
|
2149
|
+
results: components["schemas"]["TypedSearchResult"][];
|
|
2150
|
+
/**
|
|
2151
|
+
* Format: int64
|
|
2152
|
+
* @description Total number of matching documents (before top_k limit)
|
|
2153
|
+
*/
|
|
2154
|
+
total_matches?: number | null;
|
|
2155
|
+
/**
|
|
2156
|
+
* Format: int64
|
|
2157
|
+
* @description Search latency in milliseconds
|
|
2158
|
+
*/
|
|
2159
|
+
latency_ms: number;
|
|
2160
|
+
/** @description Request ID for tracing */
|
|
2161
|
+
request_id: string;
|
|
2162
|
+
predicate_shortfall?: null | components["schemas"]["PredicateShortfallWire"];
|
|
2163
|
+
/**
|
|
2164
|
+
* @description SearchPlanTrace (LLD §10) — the per-query telemetry envelope that
|
|
2165
|
+
* upstream gateways consume for metering and planner-v2 training.
|
|
2166
|
+
* Phase 0 emits a stub trace populated from request_id + latency; later
|
|
2167
|
+
* phases fill in the per-stage counters. Only emitted when the request
|
|
2168
|
+
* sets `debug=true` (LLD §1 contract).
|
|
2169
|
+
*/
|
|
2170
|
+
search_plan_trace?: unknown;
|
|
2171
|
+
/**
|
|
2172
|
+
* @description Human-readable explain summary derived from the SearchPlanTrace.
|
|
2173
|
+
* Only emitted when the request sets `debug=true` — gives an on-call
|
|
2174
|
+
* operator a one-glance view of the plan, cache result, and any
|
|
2175
|
+
* actionable hints (high scan fraction, repair triggered, ...).
|
|
2176
|
+
*/
|
|
2177
|
+
explain?: unknown;
|
|
2178
|
+
};
|
|
2179
|
+
/** @description Search result with typed fields */
|
|
2180
|
+
TypedSearchResult: {
|
|
2181
|
+
/** @description Record ID */
|
|
2182
|
+
id: string;
|
|
2183
|
+
/**
|
|
2184
|
+
* Format: float
|
|
2185
|
+
* @description Similarity score (0.0 - 1.0 for cosine, distance for L2)
|
|
2186
|
+
*/
|
|
2187
|
+
score: number;
|
|
2188
|
+
/** @description Vector embedding (if requested) */
|
|
2189
|
+
vector?: number[] | null;
|
|
2190
|
+
/** @description Rich properties from the record */
|
|
2191
|
+
props: {
|
|
2192
|
+
[key: string]: unknown;
|
|
2193
|
+
};
|
|
2194
|
+
/** @description TEXT fields (if include_text is true) */
|
|
2195
|
+
text_fields?: components["schemas"]["TextFieldOutput"][] | null;
|
|
2196
|
+
};
|
|
2197
|
+
/**
|
|
2198
|
+
* @description Request to update schema
|
|
2199
|
+
*
|
|
2200
|
+
* ## Schema Evolution Rules
|
|
2201
|
+
*
|
|
2202
|
+
* 1. **Adding Columns**: New columns must be nullable or have defaults
|
|
2203
|
+
* 2. **Type Changes**: Not allowed (except compatible widening like int32->int64)
|
|
2204
|
+
* 3. **Removing Columns**: Not allowed (use deprecation instead)
|
|
2205
|
+
* 4. **Enforcement Mode**: Can be changed, but strict->flexible may lose validation
|
|
2206
|
+
*
|
|
2207
|
+
* ## Example JSON
|
|
2208
|
+
*
|
|
2209
|
+
* ```json
|
|
2210
|
+
* {
|
|
2211
|
+
* "columns": [
|
|
2212
|
+
* {"name": "category", "data_type": "text", "indexed": true},
|
|
2213
|
+
* {"name": "price", "data_type": "float", "filterable": true},
|
|
2214
|
+
* {"name": "tags", "data_type": "array_text", "nullable": true}
|
|
2215
|
+
* ],
|
|
2216
|
+
* "enforcement": "hybrid",
|
|
2217
|
+
* "allow_additional_fields": true
|
|
2218
|
+
* }
|
|
2219
|
+
* ```
|
|
2220
|
+
*/
|
|
2221
|
+
UpdateSchemaRequest: components["schemas"]["SchemaDefinition"] & {
|
|
2222
|
+
/**
|
|
2223
|
+
* @description Force update even if validation warnings exist
|
|
2224
|
+
*
|
|
2225
|
+
* Use with caution - may cause data compatibility issues.
|
|
2226
|
+
*/
|
|
2227
|
+
force?: boolean | null;
|
|
2228
|
+
};
|
|
2229
|
+
/** @description Schema update response */
|
|
2230
|
+
UpdateSchemaResponse: {
|
|
2231
|
+
/** @description Updated schema ID */
|
|
2232
|
+
schema_id: string;
|
|
2233
|
+
/** @description New schema version */
|
|
2234
|
+
schema_version: string;
|
|
2235
|
+
/** @description Previous schema ID (for rollback) */
|
|
2236
|
+
previous_schema_id: string;
|
|
2237
|
+
/** @description List of applied changes */
|
|
2238
|
+
changes: components["schemas"]["SchemaChange"][];
|
|
2239
|
+
/** @description Warnings about the update */
|
|
2240
|
+
warnings: string[];
|
|
2241
|
+
/** @description Update timestamp */
|
|
2242
|
+
updated_at: string;
|
|
2243
|
+
};
|
|
2244
|
+
UpsertEntityRequest: {
|
|
2245
|
+
/** @description Empty ⇒ the server generates a UUID. */
|
|
2246
|
+
id?: string;
|
|
2247
|
+
flexible_metadata?: {
|
|
2248
|
+
[key: string]: unknown;
|
|
2249
|
+
};
|
|
2250
|
+
embeddings?: components["schemas"]["EntityEmbeddingInput"][];
|
|
2251
|
+
provenance?: null | components["schemas"]["EntityProvenanceInput"];
|
|
2252
|
+
relations?: components["schemas"]["EntityRelationInput"][];
|
|
2253
|
+
};
|
|
2254
|
+
UpsertEntityResponse: {
|
|
2255
|
+
success: boolean;
|
|
2256
|
+
entity_id: string;
|
|
2257
|
+
message: string;
|
|
2258
|
+
};
|
|
2259
|
+
HealthResponse: {
|
|
2260
|
+
status?: string;
|
|
2261
|
+
version?: string;
|
|
2262
|
+
uptime_seconds?: number;
|
|
2263
|
+
} & {
|
|
2264
|
+
[key: string]: unknown;
|
|
2265
|
+
};
|
|
2266
|
+
ProbeResponse: {
|
|
2267
|
+
status: string;
|
|
2268
|
+
};
|
|
2269
|
+
CapabilitiesResponse: {
|
|
2270
|
+
api_version?: string;
|
|
2271
|
+
surface?: string;
|
|
2272
|
+
features?: string[];
|
|
2273
|
+
limits?: {
|
|
2274
|
+
[key: string]: unknown;
|
|
2275
|
+
};
|
|
2276
|
+
error_envelope?: {
|
|
2277
|
+
[key: string]: unknown;
|
|
2278
|
+
};
|
|
2279
|
+
} & {
|
|
2280
|
+
[key: string]: unknown;
|
|
2281
|
+
};
|
|
2282
|
+
CreateGraphRequest: {
|
|
2283
|
+
/** @description Unique identifier for the new graph collection. */
|
|
2284
|
+
graph_id: string;
|
|
2285
|
+
/** @description Optional human-readable name (defaults to graph_id). */
|
|
2286
|
+
name?: string | null;
|
|
2287
|
+
description?: string | null;
|
|
2288
|
+
};
|
|
2289
|
+
/**
|
|
2290
|
+
* @description Server returns a `GraphResponse<T>` envelope around graph
|
|
2291
|
+
* collection metadata. The fields below are the common subset
|
|
2292
|
+
* SDKs rely on; extra server-side fields are passed through.
|
|
2293
|
+
*/
|
|
2294
|
+
GraphCollectionResponse: {
|
|
2295
|
+
graph_id?: string;
|
|
2296
|
+
name?: string | null;
|
|
2297
|
+
description?: string | null;
|
|
2298
|
+
node_count?: number | null;
|
|
2299
|
+
edge_count?: number | null;
|
|
2300
|
+
} & {
|
|
2301
|
+
[key: string]: unknown;
|
|
2302
|
+
};
|
|
2303
|
+
/**
|
|
2304
|
+
* @description Server returns a `GraphResponse<Vec<...>>` envelope with `data`
|
|
2305
|
+
* containing the graph collections.
|
|
2306
|
+
*/
|
|
2307
|
+
ListGraphsResponse: {
|
|
2308
|
+
data?: components["schemas"]["GraphCollectionResponse"][];
|
|
2309
|
+
success?: boolean;
|
|
2310
|
+
} & {
|
|
2311
|
+
[key: string]: unknown;
|
|
2312
|
+
};
|
|
2313
|
+
/**
|
|
2314
|
+
* @description 204 No Content on success with an empty `GraphResponse` envelope;
|
|
2315
|
+
* 404 Not Found with an error envelope when the graph is missing.
|
|
2316
|
+
*/
|
|
2317
|
+
DeleteGraphResponse: {
|
|
2318
|
+
success?: boolean;
|
|
2319
|
+
} & {
|
|
2320
|
+
[key: string]: unknown;
|
|
2321
|
+
};
|
|
2322
|
+
/**
|
|
2323
|
+
* @description Node payload nested inside `CreateNodeRequest.node`. Matches
|
|
2324
|
+
* `RestNodeInput` in proximadb-api's graph handler.
|
|
2325
|
+
*/
|
|
2326
|
+
NodeInput: {
|
|
2327
|
+
id: string;
|
|
2328
|
+
labels?: string[];
|
|
2329
|
+
properties?: {
|
|
2330
|
+
[key: string]: unknown;
|
|
2331
|
+
};
|
|
2332
|
+
embedding?: components["schemas"]["EmbeddingInput"];
|
|
2333
|
+
};
|
|
2334
|
+
EmbeddingInput: {
|
|
2335
|
+
vector: number[];
|
|
2336
|
+
model_id?: string | null;
|
|
2337
|
+
modality?: string | null;
|
|
2338
|
+
};
|
|
2339
|
+
/** @description Wrapped envelope: server expects `{"node": NodeInput}`. */
|
|
2340
|
+
CreateNodeRequest: {
|
|
2341
|
+
node: components["schemas"]["NodeInput"];
|
|
2342
|
+
};
|
|
2343
|
+
NodeResponse: {
|
|
2344
|
+
id: string;
|
|
2345
|
+
labels?: string[] | null;
|
|
2346
|
+
properties?: {
|
|
2347
|
+
[key: string]: unknown;
|
|
2348
|
+
} | null;
|
|
2349
|
+
} & {
|
|
2350
|
+
[key: string]: unknown;
|
|
2351
|
+
};
|
|
2352
|
+
DeleteNodeResponse: {
|
|
2353
|
+
success?: boolean;
|
|
2354
|
+
id?: string;
|
|
2355
|
+
} & {
|
|
2356
|
+
[key: string]: unknown;
|
|
2357
|
+
};
|
|
2358
|
+
/**
|
|
2359
|
+
* @description Edge payload nested inside `CreateEdgeRequest.edge`. Matches
|
|
2360
|
+
* `RestEdgeInput` in proximadb-api's graph handler.
|
|
2361
|
+
*/
|
|
2362
|
+
EdgeInput: {
|
|
2363
|
+
id: string;
|
|
2364
|
+
from_node_id: string;
|
|
2365
|
+
to_node_id: string;
|
|
2366
|
+
edge_type: string;
|
|
2367
|
+
properties?: {
|
|
2368
|
+
[key: string]: unknown;
|
|
2369
|
+
};
|
|
2370
|
+
/** Format: double */
|
|
2371
|
+
weight?: number | null;
|
|
2372
|
+
};
|
|
2373
|
+
/** @description Wrapped envelope: server expects `{"edge": EdgeInput}`. */
|
|
2374
|
+
CreateEdgeRequest: {
|
|
2375
|
+
edge: components["schemas"]["EdgeInput"];
|
|
2376
|
+
};
|
|
2377
|
+
EdgeResponse: {
|
|
2378
|
+
id: string;
|
|
2379
|
+
from_node_id?: string;
|
|
2380
|
+
to_node_id?: string;
|
|
2381
|
+
edge_type?: string | null;
|
|
2382
|
+
properties?: {
|
|
2383
|
+
[key: string]: unknown;
|
|
2384
|
+
} | null;
|
|
2385
|
+
/** Format: double */
|
|
2386
|
+
weight?: number | null;
|
|
2387
|
+
} & {
|
|
2388
|
+
[key: string]: unknown;
|
|
2389
|
+
};
|
|
2390
|
+
/**
|
|
2391
|
+
* @description Flat shape (no wrapper). Matches `RestTraversalRequest` in
|
|
2392
|
+
* proximadb-api.
|
|
2393
|
+
*/
|
|
2394
|
+
TraverseRequest: {
|
|
2395
|
+
start_node_id: string;
|
|
2396
|
+
/** @default 3 */
|
|
2397
|
+
max_depth: number;
|
|
2398
|
+
edge_types?: string[];
|
|
2399
|
+
node_labels?: string[];
|
|
2400
|
+
/** @description bfs | dfs | shortest_path */
|
|
2401
|
+
algorithm?: string | null;
|
|
2402
|
+
limit?: number | null;
|
|
2403
|
+
};
|
|
2404
|
+
TraverseResponse: {
|
|
2405
|
+
nodes?: components["schemas"]["NodeResponse"][];
|
|
2406
|
+
edges?: components["schemas"]["EdgeResponse"][];
|
|
2407
|
+
paths?: string[][];
|
|
2408
|
+
} & {
|
|
2409
|
+
[key: string]: unknown;
|
|
2410
|
+
};
|
|
2411
|
+
GraphStatsResponse: {
|
|
2412
|
+
node_count?: number;
|
|
2413
|
+
edge_count?: number;
|
|
2414
|
+
/** Format: double */
|
|
2415
|
+
density?: number | null;
|
|
2416
|
+
} & {
|
|
2417
|
+
[key: string]: unknown;
|
|
2418
|
+
};
|
|
2419
|
+
/** @description Body for `POST /api/v2/graphs/{id}/nodes/batch`. */
|
|
2420
|
+
BatchCreateNodesRequest: {
|
|
2421
|
+
nodes: components["schemas"]["NodeInput"][];
|
|
2422
|
+
};
|
|
2423
|
+
/** @description Server returns a `GraphResponse<BatchResults<Node>>` envelope. */
|
|
2424
|
+
BatchNodesResponse: {
|
|
2425
|
+
success?: boolean;
|
|
2426
|
+
data?: {
|
|
2427
|
+
results?: components["schemas"]["NodeResponse"][];
|
|
2428
|
+
count?: number;
|
|
2429
|
+
} & {
|
|
2430
|
+
[key: string]: unknown;
|
|
2431
|
+
};
|
|
2432
|
+
} & {
|
|
2433
|
+
[key: string]: unknown;
|
|
2434
|
+
};
|
|
2435
|
+
/** @description Body for `POST /api/v2/graphs/{id}/edges/batch`. */
|
|
2436
|
+
BatchCreateEdgesRequest: {
|
|
2437
|
+
edges: components["schemas"]["EdgeInput"][];
|
|
2438
|
+
};
|
|
2439
|
+
/** @description Server returns a `GraphResponse<BatchResults<Edge>>` envelope. */
|
|
2440
|
+
BatchEdgesResponse: {
|
|
2441
|
+
success?: boolean;
|
|
2442
|
+
data?: {
|
|
2443
|
+
results?: components["schemas"]["EdgeResponse"][];
|
|
2444
|
+
count?: number;
|
|
2445
|
+
} & {
|
|
2446
|
+
[key: string]: unknown;
|
|
2447
|
+
};
|
|
2448
|
+
} & {
|
|
2449
|
+
[key: string]: unknown;
|
|
2450
|
+
};
|
|
2451
|
+
};
|
|
2452
|
+
responses: {
|
|
2453
|
+
/** @description Invalid request. */
|
|
2454
|
+
BadRequest: {
|
|
2455
|
+
headers: {
|
|
2456
|
+
[name: string]: unknown;
|
|
2457
|
+
};
|
|
2458
|
+
content: {
|
|
2459
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2460
|
+
};
|
|
2461
|
+
};
|
|
2462
|
+
/** @description Resource not found. */
|
|
2463
|
+
NotFound: {
|
|
2464
|
+
headers: {
|
|
2465
|
+
[name: string]: unknown;
|
|
2466
|
+
};
|
|
2467
|
+
content: {
|
|
2468
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2469
|
+
};
|
|
2470
|
+
};
|
|
2471
|
+
/** @description Authentication required or insufficient permissions. */
|
|
2472
|
+
Unauthorized: {
|
|
2473
|
+
headers: {
|
|
2474
|
+
[name: string]: unknown;
|
|
2475
|
+
};
|
|
2476
|
+
content: {
|
|
2477
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2478
|
+
};
|
|
2479
|
+
};
|
|
2480
|
+
};
|
|
2481
|
+
parameters: {
|
|
2482
|
+
GraphId: string;
|
|
2483
|
+
NodeId: string;
|
|
2484
|
+
};
|
|
2485
|
+
requestBodies: never;
|
|
2486
|
+
headers: never;
|
|
2487
|
+
pathItems: never;
|
|
2488
|
+
}
|
|
2489
|
+
export type $defs = Record<string, never>;
|
|
2490
|
+
export interface operations {
|
|
2491
|
+
listCollections: {
|
|
2492
|
+
parameters: {
|
|
2493
|
+
query?: {
|
|
2494
|
+
/** @description Maximum number of collections to return (default: 100) */
|
|
2495
|
+
limit?: number;
|
|
2496
|
+
/** @description Offset for pagination (default: 0) */
|
|
2497
|
+
offset?: number;
|
|
2498
|
+
/** @description Whether to include statistics */
|
|
2499
|
+
include_stats?: boolean;
|
|
2500
|
+
};
|
|
2501
|
+
header?: {
|
|
2502
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
2503
|
+
"X-Tenant-ID"?: string;
|
|
2504
|
+
};
|
|
2505
|
+
path?: never;
|
|
2506
|
+
cookie?: never;
|
|
2507
|
+
};
|
|
2508
|
+
requestBody?: never;
|
|
2509
|
+
responses: {
|
|
2510
|
+
/** @description Collection page. */
|
|
2511
|
+
200: {
|
|
2512
|
+
headers: {
|
|
2513
|
+
[name: string]: unknown;
|
|
2514
|
+
};
|
|
2515
|
+
content: {
|
|
2516
|
+
"application/json": components["schemas"]["ListCollectionsV2Response"];
|
|
2517
|
+
};
|
|
2518
|
+
};
|
|
2519
|
+
};
|
|
2520
|
+
};
|
|
2521
|
+
createCollection: {
|
|
2522
|
+
parameters: {
|
|
2523
|
+
query?: never;
|
|
2524
|
+
header?: {
|
|
2525
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
2526
|
+
"X-Tenant-ID"?: string;
|
|
2527
|
+
};
|
|
2528
|
+
path?: never;
|
|
2529
|
+
cookie?: never;
|
|
2530
|
+
};
|
|
2531
|
+
requestBody: {
|
|
2532
|
+
content: {
|
|
2533
|
+
"application/json": components["schemas"]["CreateCollectionV2Request"];
|
|
2534
|
+
};
|
|
2535
|
+
};
|
|
2536
|
+
responses: {
|
|
2537
|
+
/** @description Collection created. */
|
|
2538
|
+
200: {
|
|
2539
|
+
headers: {
|
|
2540
|
+
[name: string]: unknown;
|
|
2541
|
+
};
|
|
2542
|
+
content: {
|
|
2543
|
+
"application/json": components["schemas"]["CreateCollectionV2Response"];
|
|
2544
|
+
};
|
|
2545
|
+
};
|
|
2546
|
+
/** @description Invalid request. */
|
|
2547
|
+
400: {
|
|
2548
|
+
headers: {
|
|
2549
|
+
[name: string]: unknown;
|
|
2550
|
+
};
|
|
2551
|
+
content: {
|
|
2552
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2553
|
+
};
|
|
2554
|
+
};
|
|
2555
|
+
};
|
|
2556
|
+
};
|
|
2557
|
+
getCollection: {
|
|
2558
|
+
parameters: {
|
|
2559
|
+
query?: never;
|
|
2560
|
+
header?: {
|
|
2561
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
2562
|
+
"X-Tenant-ID"?: string;
|
|
2563
|
+
};
|
|
2564
|
+
path: {
|
|
2565
|
+
/** @description Collection name/ID. */
|
|
2566
|
+
collection_id: string;
|
|
2567
|
+
};
|
|
2568
|
+
cookie?: never;
|
|
2569
|
+
};
|
|
2570
|
+
requestBody?: never;
|
|
2571
|
+
responses: {
|
|
2572
|
+
/** @description Collection details. */
|
|
2573
|
+
200: {
|
|
2574
|
+
headers: {
|
|
2575
|
+
[name: string]: unknown;
|
|
2576
|
+
};
|
|
2577
|
+
content: {
|
|
2578
|
+
"application/json": components["schemas"]["CollectionV2Response"];
|
|
2579
|
+
};
|
|
2580
|
+
};
|
|
2581
|
+
/** @description Resource not found. */
|
|
2582
|
+
404: {
|
|
2583
|
+
headers: {
|
|
2584
|
+
[name: string]: unknown;
|
|
2585
|
+
};
|
|
2586
|
+
content: {
|
|
2587
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2588
|
+
};
|
|
2589
|
+
};
|
|
2590
|
+
};
|
|
2591
|
+
};
|
|
2592
|
+
deleteCollection: {
|
|
2593
|
+
parameters: {
|
|
2594
|
+
query?: never;
|
|
2595
|
+
header?: {
|
|
2596
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
2597
|
+
"X-Tenant-ID"?: string;
|
|
2598
|
+
};
|
|
2599
|
+
path: {
|
|
2600
|
+
/** @description Collection name/ID. */
|
|
2601
|
+
collection_id: string;
|
|
2602
|
+
};
|
|
2603
|
+
cookie?: never;
|
|
2604
|
+
};
|
|
2605
|
+
requestBody?: never;
|
|
2606
|
+
responses: {
|
|
2607
|
+
/** @description Collection deleted. */
|
|
2608
|
+
200: {
|
|
2609
|
+
headers: {
|
|
2610
|
+
[name: string]: unknown;
|
|
2611
|
+
};
|
|
2612
|
+
content: {
|
|
2613
|
+
"application/json": components["schemas"]["DeleteCollectionV2Response"];
|
|
2614
|
+
};
|
|
2615
|
+
};
|
|
2616
|
+
/** @description Resource not found. */
|
|
2617
|
+
404: {
|
|
2618
|
+
headers: {
|
|
2619
|
+
[name: string]: unknown;
|
|
2620
|
+
};
|
|
2621
|
+
content: {
|
|
2622
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2623
|
+
};
|
|
2624
|
+
};
|
|
2625
|
+
};
|
|
2626
|
+
};
|
|
2627
|
+
ingestDocuments: {
|
|
2628
|
+
parameters: {
|
|
2629
|
+
query?: never;
|
|
2630
|
+
header?: {
|
|
2631
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
2632
|
+
"X-Tenant-ID"?: string;
|
|
2633
|
+
};
|
|
2634
|
+
path: {
|
|
2635
|
+
/** @description Target collection name/ID. */
|
|
2636
|
+
collection_id: string;
|
|
2637
|
+
};
|
|
2638
|
+
cookie?: never;
|
|
2639
|
+
};
|
|
2640
|
+
requestBody: {
|
|
2641
|
+
content: {
|
|
2642
|
+
"application/json": components["schemas"]["IngestDocumentsRequest"];
|
|
2643
|
+
};
|
|
2644
|
+
};
|
|
2645
|
+
responses: {
|
|
2646
|
+
/** @description Ingested. */
|
|
2647
|
+
200: {
|
|
2648
|
+
headers: {
|
|
2649
|
+
[name: string]: unknown;
|
|
2650
|
+
};
|
|
2651
|
+
content: {
|
|
2652
|
+
"application/json": components["schemas"]["IngestDocumentsResponse"];
|
|
2653
|
+
};
|
|
2654
|
+
};
|
|
2655
|
+
/** @description Invalid request. */
|
|
2656
|
+
400: {
|
|
2657
|
+
headers: {
|
|
2658
|
+
[name: string]: unknown;
|
|
2659
|
+
};
|
|
2660
|
+
content: {
|
|
2661
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2662
|
+
};
|
|
2663
|
+
};
|
|
2664
|
+
/** @description Collection not found. */
|
|
2665
|
+
404: {
|
|
2666
|
+
headers: {
|
|
2667
|
+
[name: string]: unknown;
|
|
2668
|
+
};
|
|
2669
|
+
content: {
|
|
2670
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2671
|
+
};
|
|
2672
|
+
};
|
|
2673
|
+
};
|
|
2674
|
+
};
|
|
2675
|
+
upsert_entity_v2: {
|
|
2676
|
+
parameters: {
|
|
2677
|
+
query?: never;
|
|
2678
|
+
header?: {
|
|
2679
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
2680
|
+
"X-Tenant-ID"?: string;
|
|
2681
|
+
};
|
|
2682
|
+
path: {
|
|
2683
|
+
/** @description Collection backing the entities */
|
|
2684
|
+
collection_id: string;
|
|
2685
|
+
};
|
|
2686
|
+
cookie?: never;
|
|
2687
|
+
};
|
|
2688
|
+
requestBody: {
|
|
2689
|
+
content: {
|
|
2690
|
+
"application/json": components["schemas"]["UpsertEntityRequest"];
|
|
2691
|
+
};
|
|
2692
|
+
};
|
|
2693
|
+
responses: {
|
|
2694
|
+
/** @description Entity upserted */
|
|
2695
|
+
200: {
|
|
2696
|
+
headers: {
|
|
2697
|
+
[name: string]: unknown;
|
|
2698
|
+
};
|
|
2699
|
+
content: {
|
|
2700
|
+
"application/json": components["schemas"]["UpsertEntityResponse"];
|
|
2701
|
+
};
|
|
2702
|
+
};
|
|
2703
|
+
/** @description Invalid request */
|
|
2704
|
+
400: {
|
|
2705
|
+
headers: {
|
|
2706
|
+
[name: string]: unknown;
|
|
2707
|
+
};
|
|
2708
|
+
content: {
|
|
2709
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2710
|
+
};
|
|
2711
|
+
};
|
|
2712
|
+
/** @description Upsert failed */
|
|
2713
|
+
500: {
|
|
2714
|
+
headers: {
|
|
2715
|
+
[name: string]: unknown;
|
|
2716
|
+
};
|
|
2717
|
+
content: {
|
|
2718
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2719
|
+
};
|
|
2720
|
+
};
|
|
2721
|
+
};
|
|
2722
|
+
};
|
|
2723
|
+
search_entities_v2: {
|
|
2724
|
+
parameters: {
|
|
2725
|
+
query?: never;
|
|
2726
|
+
header?: {
|
|
2727
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
2728
|
+
"X-Tenant-ID"?: string;
|
|
2729
|
+
};
|
|
2730
|
+
path: {
|
|
2731
|
+
/** @description Collection backing the entities */
|
|
2732
|
+
collection_id: string;
|
|
2733
|
+
};
|
|
2734
|
+
cookie?: never;
|
|
2735
|
+
};
|
|
2736
|
+
requestBody: {
|
|
2737
|
+
content: {
|
|
2738
|
+
"application/json": components["schemas"]["SearchEntitiesRequest"];
|
|
2739
|
+
};
|
|
2740
|
+
};
|
|
2741
|
+
responses: {
|
|
2742
|
+
/** @description Search results */
|
|
2743
|
+
200: {
|
|
2744
|
+
headers: {
|
|
2745
|
+
[name: string]: unknown;
|
|
2746
|
+
};
|
|
2747
|
+
content: {
|
|
2748
|
+
"application/json": components["schemas"]["SearchEntitiesResponse"];
|
|
2749
|
+
};
|
|
2750
|
+
};
|
|
2751
|
+
/** @description Invalid request */
|
|
2752
|
+
400: {
|
|
2753
|
+
headers: {
|
|
2754
|
+
[name: string]: unknown;
|
|
2755
|
+
};
|
|
2756
|
+
content: {
|
|
2757
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2758
|
+
};
|
|
2759
|
+
};
|
|
2760
|
+
/** @description Search failed */
|
|
2761
|
+
500: {
|
|
2762
|
+
headers: {
|
|
2763
|
+
[name: string]: unknown;
|
|
2764
|
+
};
|
|
2765
|
+
content: {
|
|
2766
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2767
|
+
};
|
|
2768
|
+
};
|
|
2769
|
+
};
|
|
2770
|
+
};
|
|
2771
|
+
get_entity_v2: {
|
|
2772
|
+
parameters: {
|
|
2773
|
+
query?: never;
|
|
2774
|
+
header?: {
|
|
2775
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
2776
|
+
"X-Tenant-ID"?: string;
|
|
2777
|
+
};
|
|
2778
|
+
path: {
|
|
2779
|
+
/** @description Collection backing the entities */
|
|
2780
|
+
collection_id: string;
|
|
2781
|
+
/** @description Entity ID */
|
|
2782
|
+
entity_id: string;
|
|
2783
|
+
};
|
|
2784
|
+
cookie?: never;
|
|
2785
|
+
};
|
|
2786
|
+
requestBody?: never;
|
|
2787
|
+
responses: {
|
|
2788
|
+
/** @description Entity found */
|
|
2789
|
+
200: {
|
|
2790
|
+
headers: {
|
|
2791
|
+
[name: string]: unknown;
|
|
2792
|
+
};
|
|
2793
|
+
content: {
|
|
2794
|
+
"application/json": components["schemas"]["EntityDto"];
|
|
2795
|
+
};
|
|
2796
|
+
};
|
|
2797
|
+
/** @description Entity not found */
|
|
2798
|
+
404: {
|
|
2799
|
+
headers: {
|
|
2800
|
+
[name: string]: unknown;
|
|
2801
|
+
};
|
|
2802
|
+
content: {
|
|
2803
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2804
|
+
};
|
|
2805
|
+
};
|
|
2806
|
+
/** @description Fetch failed */
|
|
2807
|
+
500: {
|
|
2808
|
+
headers: {
|
|
2809
|
+
[name: string]: unknown;
|
|
2810
|
+
};
|
|
2811
|
+
content: {
|
|
2812
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2813
|
+
};
|
|
2814
|
+
};
|
|
2815
|
+
};
|
|
2816
|
+
};
|
|
2817
|
+
delete_entity_v2: {
|
|
2818
|
+
parameters: {
|
|
2819
|
+
query?: never;
|
|
2820
|
+
header?: {
|
|
2821
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
2822
|
+
"X-Tenant-ID"?: string;
|
|
2823
|
+
};
|
|
2824
|
+
path: {
|
|
2825
|
+
/** @description Collection backing the entities */
|
|
2826
|
+
collection_id: string;
|
|
2827
|
+
/** @description Entity ID */
|
|
2828
|
+
entity_id: string;
|
|
2829
|
+
};
|
|
2830
|
+
cookie?: never;
|
|
2831
|
+
};
|
|
2832
|
+
requestBody?: never;
|
|
2833
|
+
responses: {
|
|
2834
|
+
/** @description Entity deleted */
|
|
2835
|
+
200: {
|
|
2836
|
+
headers: {
|
|
2837
|
+
[name: string]: unknown;
|
|
2838
|
+
};
|
|
2839
|
+
content: {
|
|
2840
|
+
"application/json": components["schemas"]["UpsertEntityResponse"];
|
|
2841
|
+
};
|
|
2842
|
+
};
|
|
2843
|
+
/** @description Entity not found */
|
|
2844
|
+
404: {
|
|
2845
|
+
headers: {
|
|
2846
|
+
[name: string]: unknown;
|
|
2847
|
+
};
|
|
2848
|
+
content: {
|
|
2849
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2850
|
+
};
|
|
2851
|
+
};
|
|
2852
|
+
/** @description Delete failed */
|
|
2853
|
+
500: {
|
|
2854
|
+
headers: {
|
|
2855
|
+
[name: string]: unknown;
|
|
2856
|
+
};
|
|
2857
|
+
content: {
|
|
2858
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2859
|
+
};
|
|
2860
|
+
};
|
|
2861
|
+
};
|
|
2862
|
+
};
|
|
2863
|
+
insertRecords: {
|
|
2864
|
+
parameters: {
|
|
2865
|
+
query?: never;
|
|
2866
|
+
header?: {
|
|
2867
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
2868
|
+
"X-Tenant-ID"?: string;
|
|
2869
|
+
};
|
|
2870
|
+
path: {
|
|
2871
|
+
/** @description Collection name/ID. */
|
|
2872
|
+
collection_id: string;
|
|
2873
|
+
};
|
|
2874
|
+
cookie?: never;
|
|
2875
|
+
};
|
|
2876
|
+
requestBody: {
|
|
2877
|
+
content: {
|
|
2878
|
+
"application/json": components["schemas"]["InsertRecordsRequest"];
|
|
2879
|
+
};
|
|
2880
|
+
};
|
|
2881
|
+
responses: {
|
|
2882
|
+
/** @description Batch write result. */
|
|
2883
|
+
200: {
|
|
2884
|
+
headers: {
|
|
2885
|
+
[name: string]: unknown;
|
|
2886
|
+
};
|
|
2887
|
+
content: {
|
|
2888
|
+
"application/json": components["schemas"]["InsertRecordsResponse"];
|
|
2889
|
+
};
|
|
2890
|
+
};
|
|
2891
|
+
/** @description Invalid request. */
|
|
2892
|
+
400: {
|
|
2893
|
+
headers: {
|
|
2894
|
+
[name: string]: unknown;
|
|
2895
|
+
};
|
|
2896
|
+
content: {
|
|
2897
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2898
|
+
};
|
|
2899
|
+
};
|
|
2900
|
+
};
|
|
2901
|
+
};
|
|
2902
|
+
scanRecords: {
|
|
2903
|
+
parameters: {
|
|
2904
|
+
query?: never;
|
|
2905
|
+
header?: {
|
|
2906
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
2907
|
+
"X-Tenant-ID"?: string;
|
|
2908
|
+
};
|
|
2909
|
+
path: {
|
|
2910
|
+
/** @description Collection name/ID. */
|
|
2911
|
+
collection_id: string;
|
|
2912
|
+
};
|
|
2913
|
+
cookie?: never;
|
|
2914
|
+
};
|
|
2915
|
+
requestBody: {
|
|
2916
|
+
content: {
|
|
2917
|
+
"application/json": components["schemas"]["ScanRecordsRequest"];
|
|
2918
|
+
};
|
|
2919
|
+
};
|
|
2920
|
+
responses: {
|
|
2921
|
+
/** @description Page of records + optional next cursor. */
|
|
2922
|
+
200: {
|
|
2923
|
+
headers: {
|
|
2924
|
+
[name: string]: unknown;
|
|
2925
|
+
};
|
|
2926
|
+
content: {
|
|
2927
|
+
"application/json": components["schemas"]["ScanRecordsResponse"];
|
|
2928
|
+
};
|
|
2929
|
+
};
|
|
2930
|
+
/** @description Invalid request (including a cursor minted for a different collection). */
|
|
2931
|
+
400: {
|
|
2932
|
+
headers: {
|
|
2933
|
+
[name: string]: unknown;
|
|
2934
|
+
};
|
|
2935
|
+
content: {
|
|
2936
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2937
|
+
};
|
|
2938
|
+
};
|
|
2939
|
+
/** @description Resource not found. */
|
|
2940
|
+
404: {
|
|
2941
|
+
headers: {
|
|
2942
|
+
[name: string]: unknown;
|
|
2943
|
+
};
|
|
2944
|
+
content: {
|
|
2945
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2946
|
+
};
|
|
2947
|
+
};
|
|
2948
|
+
/** @description Collection changed during the scan; restart pagination. */
|
|
2949
|
+
409: {
|
|
2950
|
+
headers: {
|
|
2951
|
+
[name: string]: unknown;
|
|
2952
|
+
};
|
|
2953
|
+
content: {
|
|
2954
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2955
|
+
};
|
|
2956
|
+
};
|
|
2957
|
+
/** @description Cursor expired (older than 24h); restart the scan. */
|
|
2958
|
+
410: {
|
|
2959
|
+
headers: {
|
|
2960
|
+
[name: string]: unknown;
|
|
2961
|
+
};
|
|
2962
|
+
content: {
|
|
2963
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2964
|
+
};
|
|
2965
|
+
};
|
|
2966
|
+
};
|
|
2967
|
+
};
|
|
2968
|
+
getRecord: {
|
|
2969
|
+
parameters: {
|
|
2970
|
+
query?: {
|
|
2971
|
+
/** @description Whether to include the vector in the response */
|
|
2972
|
+
include_vector?: boolean;
|
|
2973
|
+
/** @description Whether to include TEXT fields in the response */
|
|
2974
|
+
include_text?: boolean;
|
|
2975
|
+
};
|
|
2976
|
+
header?: {
|
|
2977
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
2978
|
+
"X-Tenant-ID"?: string;
|
|
2979
|
+
};
|
|
2980
|
+
path: {
|
|
2981
|
+
/** @description Collection name/ID. */
|
|
2982
|
+
collection_id: string;
|
|
2983
|
+
/** @description Record ID. */
|
|
2984
|
+
record_id: string;
|
|
2985
|
+
};
|
|
2986
|
+
cookie?: never;
|
|
2987
|
+
};
|
|
2988
|
+
requestBody?: never;
|
|
2989
|
+
responses: {
|
|
2990
|
+
/** @description Record. */
|
|
2991
|
+
200: {
|
|
2992
|
+
headers: {
|
|
2993
|
+
[name: string]: unknown;
|
|
2994
|
+
};
|
|
2995
|
+
content: {
|
|
2996
|
+
"application/json": components["schemas"]["RecordV2Response"];
|
|
2997
|
+
};
|
|
2998
|
+
};
|
|
2999
|
+
/** @description Resource not found. */
|
|
3000
|
+
404: {
|
|
3001
|
+
headers: {
|
|
3002
|
+
[name: string]: unknown;
|
|
3003
|
+
};
|
|
3004
|
+
content: {
|
|
3005
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3006
|
+
};
|
|
3007
|
+
};
|
|
3008
|
+
};
|
|
3009
|
+
};
|
|
3010
|
+
deleteRecord: {
|
|
3011
|
+
parameters: {
|
|
3012
|
+
query?: never;
|
|
3013
|
+
header?: {
|
|
3014
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
3015
|
+
"X-Tenant-ID"?: string;
|
|
3016
|
+
};
|
|
3017
|
+
path: {
|
|
3018
|
+
/** @description Collection name/ID. */
|
|
3019
|
+
collection_id: string;
|
|
3020
|
+
/** @description Record ID. */
|
|
3021
|
+
record_id: string;
|
|
3022
|
+
};
|
|
3023
|
+
cookie?: never;
|
|
3024
|
+
};
|
|
3025
|
+
requestBody?: never;
|
|
3026
|
+
responses: {
|
|
3027
|
+
/** @description Delete accepted. */
|
|
3028
|
+
200: {
|
|
3029
|
+
headers: {
|
|
3030
|
+
[name: string]: unknown;
|
|
3031
|
+
};
|
|
3032
|
+
content: {
|
|
3033
|
+
"application/json": components["schemas"]["DeleteRecordV2Response"];
|
|
3034
|
+
};
|
|
3035
|
+
};
|
|
3036
|
+
};
|
|
3037
|
+
};
|
|
3038
|
+
getCollectionSchema: {
|
|
3039
|
+
parameters: {
|
|
3040
|
+
query?: never;
|
|
3041
|
+
header?: {
|
|
3042
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
3043
|
+
"X-Tenant-ID"?: string;
|
|
3044
|
+
};
|
|
3045
|
+
path: {
|
|
3046
|
+
/** @description Collection name/ID. */
|
|
3047
|
+
collection_id: string;
|
|
3048
|
+
};
|
|
3049
|
+
cookie?: never;
|
|
3050
|
+
};
|
|
3051
|
+
requestBody?: never;
|
|
3052
|
+
responses: {
|
|
3053
|
+
/** @description Collection schema. */
|
|
3054
|
+
200: {
|
|
3055
|
+
headers: {
|
|
3056
|
+
[name: string]: unknown;
|
|
3057
|
+
};
|
|
3058
|
+
content: {
|
|
3059
|
+
"application/json": components["schemas"]["SchemaResponse"];
|
|
3060
|
+
};
|
|
3061
|
+
};
|
|
3062
|
+
/** @description Resource not found. */
|
|
3063
|
+
404: {
|
|
3064
|
+
headers: {
|
|
3065
|
+
[name: string]: unknown;
|
|
3066
|
+
};
|
|
3067
|
+
content: {
|
|
3068
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3069
|
+
};
|
|
3070
|
+
};
|
|
3071
|
+
};
|
|
3072
|
+
};
|
|
3073
|
+
updateCollectionSchema: {
|
|
3074
|
+
parameters: {
|
|
3075
|
+
query?: never;
|
|
3076
|
+
header?: {
|
|
3077
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
3078
|
+
"X-Tenant-ID"?: string;
|
|
3079
|
+
};
|
|
3080
|
+
path: {
|
|
3081
|
+
/** @description Collection name/ID. */
|
|
3082
|
+
collection_id: string;
|
|
3083
|
+
};
|
|
3084
|
+
cookie?: never;
|
|
3085
|
+
};
|
|
3086
|
+
requestBody: {
|
|
3087
|
+
content: {
|
|
3088
|
+
"application/json": components["schemas"]["UpdateSchemaRequest"];
|
|
3089
|
+
};
|
|
3090
|
+
};
|
|
3091
|
+
responses: {
|
|
3092
|
+
/** @description Schema updated. */
|
|
3093
|
+
200: {
|
|
3094
|
+
headers: {
|
|
3095
|
+
[name: string]: unknown;
|
|
3096
|
+
};
|
|
3097
|
+
content: {
|
|
3098
|
+
"application/json": components["schemas"]["UpdateSchemaResponse"];
|
|
3099
|
+
};
|
|
3100
|
+
};
|
|
3101
|
+
/** @description Invalid request. */
|
|
3102
|
+
400: {
|
|
3103
|
+
headers: {
|
|
3104
|
+
[name: string]: unknown;
|
|
3105
|
+
};
|
|
3106
|
+
content: {
|
|
3107
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3108
|
+
};
|
|
3109
|
+
};
|
|
3110
|
+
};
|
|
3111
|
+
};
|
|
3112
|
+
searchRecords: {
|
|
3113
|
+
parameters: {
|
|
3114
|
+
query?: never;
|
|
3115
|
+
header?: {
|
|
3116
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
3117
|
+
"X-Tenant-ID"?: string;
|
|
3118
|
+
};
|
|
3119
|
+
path: {
|
|
3120
|
+
/** @description Collection name/ID. */
|
|
3121
|
+
collection_id: string;
|
|
3122
|
+
};
|
|
3123
|
+
cookie?: never;
|
|
3124
|
+
};
|
|
3125
|
+
requestBody: {
|
|
3126
|
+
content: {
|
|
3127
|
+
"application/json": components["schemas"]["TypedSearchRequest"];
|
|
3128
|
+
};
|
|
3129
|
+
};
|
|
3130
|
+
responses: {
|
|
3131
|
+
/** @description Search results. */
|
|
3132
|
+
200: {
|
|
3133
|
+
headers: {
|
|
3134
|
+
[name: string]: unknown;
|
|
3135
|
+
};
|
|
3136
|
+
content: {
|
|
3137
|
+
"application/json": components["schemas"]["TypedSearchResponse"];
|
|
3138
|
+
};
|
|
3139
|
+
};
|
|
3140
|
+
/** @description Invalid request. */
|
|
3141
|
+
400: {
|
|
3142
|
+
headers: {
|
|
3143
|
+
[name: string]: unknown;
|
|
3144
|
+
};
|
|
3145
|
+
content: {
|
|
3146
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3147
|
+
};
|
|
3148
|
+
};
|
|
3149
|
+
};
|
|
3150
|
+
};
|
|
3151
|
+
fusion_search_v2: {
|
|
3152
|
+
parameters: {
|
|
3153
|
+
query?: never;
|
|
3154
|
+
header?: {
|
|
3155
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
3156
|
+
"X-Tenant-ID"?: string;
|
|
3157
|
+
};
|
|
3158
|
+
path: {
|
|
3159
|
+
/** @description Graph ID for traversal expansion */
|
|
3160
|
+
graph_id: string;
|
|
3161
|
+
};
|
|
3162
|
+
cookie?: never;
|
|
3163
|
+
};
|
|
3164
|
+
requestBody: {
|
|
3165
|
+
content: {
|
|
3166
|
+
"application/json": components["schemas"]["FusionSearchRequest"];
|
|
3167
|
+
};
|
|
3168
|
+
};
|
|
3169
|
+
responses: {
|
|
3170
|
+
/** @description Fusion results with calibrated scores */
|
|
3171
|
+
200: {
|
|
3172
|
+
headers: {
|
|
3173
|
+
[name: string]: unknown;
|
|
3174
|
+
};
|
|
3175
|
+
content: {
|
|
3176
|
+
"application/json": components["schemas"]["FusionSearchResponse"];
|
|
3177
|
+
};
|
|
3178
|
+
};
|
|
3179
|
+
/** @description Invalid request (empty query_vector, etc.) */
|
|
3180
|
+
400: {
|
|
3181
|
+
headers: {
|
|
3182
|
+
[name: string]: unknown;
|
|
3183
|
+
};
|
|
3184
|
+
content: {
|
|
3185
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3186
|
+
};
|
|
3187
|
+
};
|
|
3188
|
+
/** @description Fusion execution failed */
|
|
3189
|
+
500: {
|
|
3190
|
+
headers: {
|
|
3191
|
+
[name: string]: unknown;
|
|
3192
|
+
};
|
|
3193
|
+
content: {
|
|
3194
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3195
|
+
};
|
|
3196
|
+
};
|
|
3197
|
+
};
|
|
3198
|
+
};
|
|
3199
|
+
impact_analysis_v2: {
|
|
3200
|
+
parameters: {
|
|
3201
|
+
query?: never;
|
|
3202
|
+
header?: {
|
|
3203
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
3204
|
+
"X-Tenant-ID"?: string;
|
|
3205
|
+
};
|
|
3206
|
+
path: {
|
|
3207
|
+
/** @description Graph ID */
|
|
3208
|
+
graph_id: string;
|
|
3209
|
+
};
|
|
3210
|
+
cookie?: never;
|
|
3211
|
+
};
|
|
3212
|
+
requestBody: {
|
|
3213
|
+
content: {
|
|
3214
|
+
"application/json": components["schemas"]["ImpactAnalysisRequest"];
|
|
3215
|
+
};
|
|
3216
|
+
};
|
|
3217
|
+
responses: {
|
|
3218
|
+
/** @description Impacted node ids */
|
|
3219
|
+
200: {
|
|
3220
|
+
headers: {
|
|
3221
|
+
[name: string]: unknown;
|
|
3222
|
+
};
|
|
3223
|
+
content: {
|
|
3224
|
+
"application/json": components["schemas"]["ImpactAnalysisResponse"];
|
|
3225
|
+
};
|
|
3226
|
+
};
|
|
3227
|
+
/** @description Missing graph_id/node_id */
|
|
3228
|
+
400: {
|
|
3229
|
+
headers: {
|
|
3230
|
+
[name: string]: unknown;
|
|
3231
|
+
};
|
|
3232
|
+
content: {
|
|
3233
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3234
|
+
};
|
|
3235
|
+
};
|
|
3236
|
+
/** @description Impact analysis failed */
|
|
3237
|
+
500: {
|
|
3238
|
+
headers: {
|
|
3239
|
+
[name: string]: unknown;
|
|
3240
|
+
};
|
|
3241
|
+
content: {
|
|
3242
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3243
|
+
};
|
|
3244
|
+
};
|
|
3245
|
+
};
|
|
3246
|
+
};
|
|
3247
|
+
listModelRegistries: {
|
|
3248
|
+
parameters: {
|
|
3249
|
+
query?: never;
|
|
3250
|
+
header?: {
|
|
3251
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
3252
|
+
"X-Tenant-ID"?: string;
|
|
3253
|
+
};
|
|
3254
|
+
path?: never;
|
|
3255
|
+
cookie?: never;
|
|
3256
|
+
};
|
|
3257
|
+
requestBody?: never;
|
|
3258
|
+
responses: {
|
|
3259
|
+
/** @description Tenant-scoped registries in deterministic name order. */
|
|
3260
|
+
200: {
|
|
3261
|
+
headers: {
|
|
3262
|
+
[name: string]: unknown;
|
|
3263
|
+
};
|
|
3264
|
+
content: {
|
|
3265
|
+
"application/json": components["schemas"]["ListModelRegistriesResponse"];
|
|
3266
|
+
};
|
|
3267
|
+
};
|
|
3268
|
+
};
|
|
3269
|
+
};
|
|
3270
|
+
createModelRegistry: {
|
|
3271
|
+
parameters: {
|
|
3272
|
+
query?: never;
|
|
3273
|
+
header?: {
|
|
3274
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
3275
|
+
"X-Tenant-ID"?: string;
|
|
3276
|
+
};
|
|
3277
|
+
path?: never;
|
|
3278
|
+
cookie?: never;
|
|
3279
|
+
};
|
|
3280
|
+
requestBody: {
|
|
3281
|
+
content: {
|
|
3282
|
+
"application/json": components["schemas"]["CreateModelRegistryRequest"];
|
|
3283
|
+
};
|
|
3284
|
+
};
|
|
3285
|
+
responses: {
|
|
3286
|
+
/** @description Created model registry. */
|
|
3287
|
+
200: {
|
|
3288
|
+
headers: {
|
|
3289
|
+
[name: string]: unknown;
|
|
3290
|
+
};
|
|
3291
|
+
content: {
|
|
3292
|
+
"application/json": components["schemas"]["ModelRegistryRecordResponse"];
|
|
3293
|
+
};
|
|
3294
|
+
};
|
|
3295
|
+
/** @description Invalid registry name. */
|
|
3296
|
+
400: {
|
|
3297
|
+
headers: {
|
|
3298
|
+
[name: string]: unknown;
|
|
3299
|
+
};
|
|
3300
|
+
content: {
|
|
3301
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3302
|
+
};
|
|
3303
|
+
};
|
|
3304
|
+
/** @description Registry already exists. */
|
|
3305
|
+
409: {
|
|
3306
|
+
headers: {
|
|
3307
|
+
[name: string]: unknown;
|
|
3308
|
+
};
|
|
3309
|
+
content: {
|
|
3310
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3311
|
+
};
|
|
3312
|
+
};
|
|
3313
|
+
};
|
|
3314
|
+
};
|
|
3315
|
+
getModelRegistry: {
|
|
3316
|
+
parameters: {
|
|
3317
|
+
query?: never;
|
|
3318
|
+
header?: {
|
|
3319
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
3320
|
+
"X-Tenant-ID"?: string;
|
|
3321
|
+
};
|
|
3322
|
+
path: {
|
|
3323
|
+
/** @description Tenant-local registry name. */
|
|
3324
|
+
name: string;
|
|
3325
|
+
};
|
|
3326
|
+
cookie?: never;
|
|
3327
|
+
};
|
|
3328
|
+
requestBody?: never;
|
|
3329
|
+
responses: {
|
|
3330
|
+
/** @description Model registry. */
|
|
3331
|
+
200: {
|
|
3332
|
+
headers: {
|
|
3333
|
+
[name: string]: unknown;
|
|
3334
|
+
};
|
|
3335
|
+
content: {
|
|
3336
|
+
"application/json": components["schemas"]["ModelRegistryRecordResponse"];
|
|
3337
|
+
};
|
|
3338
|
+
};
|
|
3339
|
+
/** @description Registry not found. */
|
|
3340
|
+
404: {
|
|
3341
|
+
headers: {
|
|
3342
|
+
[name: string]: unknown;
|
|
3343
|
+
};
|
|
3344
|
+
content: {
|
|
3345
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3346
|
+
};
|
|
3347
|
+
};
|
|
3348
|
+
};
|
|
3349
|
+
};
|
|
3350
|
+
applyModelRegistryMutation: {
|
|
3351
|
+
parameters: {
|
|
3352
|
+
query?: never;
|
|
3353
|
+
header?: {
|
|
3354
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
3355
|
+
"X-Tenant-ID"?: string;
|
|
3356
|
+
};
|
|
3357
|
+
path: {
|
|
3358
|
+
/** @description Tenant-local registry name. */
|
|
3359
|
+
name: string;
|
|
3360
|
+
};
|
|
3361
|
+
cookie?: never;
|
|
3362
|
+
};
|
|
3363
|
+
requestBody: {
|
|
3364
|
+
content: {
|
|
3365
|
+
"application/json": components["schemas"]["ApplyModelRegistryMutationRequest"];
|
|
3366
|
+
};
|
|
3367
|
+
};
|
|
3368
|
+
responses: {
|
|
3369
|
+
/** @description Updated registry. */
|
|
3370
|
+
200: {
|
|
3371
|
+
headers: {
|
|
3372
|
+
[name: string]: unknown;
|
|
3373
|
+
};
|
|
3374
|
+
content: {
|
|
3375
|
+
"application/json": components["schemas"]["ModelRegistryRecordResponse"];
|
|
3376
|
+
};
|
|
3377
|
+
};
|
|
3378
|
+
/** @description Invalid lifecycle command. */
|
|
3379
|
+
400: {
|
|
3380
|
+
headers: {
|
|
3381
|
+
[name: string]: unknown;
|
|
3382
|
+
};
|
|
3383
|
+
content: {
|
|
3384
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3385
|
+
};
|
|
3386
|
+
};
|
|
3387
|
+
/** @description Registry not found. */
|
|
3388
|
+
404: {
|
|
3389
|
+
headers: {
|
|
3390
|
+
[name: string]: unknown;
|
|
3391
|
+
};
|
|
3392
|
+
content: {
|
|
3393
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3394
|
+
};
|
|
3395
|
+
};
|
|
3396
|
+
/** @description Revision conflict. */
|
|
3397
|
+
409: {
|
|
3398
|
+
headers: {
|
|
3399
|
+
[name: string]: unknown;
|
|
3400
|
+
};
|
|
3401
|
+
content: {
|
|
3402
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3403
|
+
};
|
|
3404
|
+
};
|
|
3405
|
+
};
|
|
3406
|
+
};
|
|
3407
|
+
resolveModelAlias: {
|
|
3408
|
+
parameters: {
|
|
3409
|
+
query?: never;
|
|
3410
|
+
header?: {
|
|
3411
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
3412
|
+
"X-Tenant-ID"?: string;
|
|
3413
|
+
};
|
|
3414
|
+
path: {
|
|
3415
|
+
/** @description Tenant-local registry name. */
|
|
3416
|
+
name: string;
|
|
3417
|
+
};
|
|
3418
|
+
cookie?: never;
|
|
3419
|
+
};
|
|
3420
|
+
requestBody: {
|
|
3421
|
+
content: {
|
|
3422
|
+
"application/json": components["schemas"]["ResolveModelAliasRequest"];
|
|
3423
|
+
};
|
|
3424
|
+
};
|
|
3425
|
+
responses: {
|
|
3426
|
+
/** @description Immutable version and digest binding. */
|
|
3427
|
+
200: {
|
|
3428
|
+
headers: {
|
|
3429
|
+
[name: string]: unknown;
|
|
3430
|
+
};
|
|
3431
|
+
content: {
|
|
3432
|
+
"application/json": components["schemas"]["ResolvedModelBindingResponse"];
|
|
3433
|
+
};
|
|
3434
|
+
};
|
|
3435
|
+
/** @description Alias, dimension, runtime, or approval policy rejected. */
|
|
3436
|
+
400: {
|
|
3437
|
+
headers: {
|
|
3438
|
+
[name: string]: unknown;
|
|
3439
|
+
};
|
|
3440
|
+
content: {
|
|
3441
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3442
|
+
};
|
|
3443
|
+
};
|
|
3444
|
+
/** @description Registry not found. */
|
|
3445
|
+
404: {
|
|
3446
|
+
headers: {
|
|
3447
|
+
[name: string]: unknown;
|
|
3448
|
+
};
|
|
3449
|
+
content: {
|
|
3450
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3451
|
+
};
|
|
3452
|
+
};
|
|
3453
|
+
};
|
|
3454
|
+
};
|
|
3455
|
+
executeQuery: {
|
|
3456
|
+
parameters: {
|
|
3457
|
+
query?: never;
|
|
3458
|
+
header?: {
|
|
3459
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
3460
|
+
"X-Tenant-ID"?: string;
|
|
3461
|
+
};
|
|
3462
|
+
path?: never;
|
|
3463
|
+
cookie?: never;
|
|
3464
|
+
};
|
|
3465
|
+
requestBody: {
|
|
3466
|
+
content: {
|
|
3467
|
+
"application/json": components["schemas"]["QueryRequest"];
|
|
3468
|
+
};
|
|
3469
|
+
};
|
|
3470
|
+
responses: {
|
|
3471
|
+
/** @description Query result. */
|
|
3472
|
+
200: {
|
|
3473
|
+
headers: {
|
|
3474
|
+
[name: string]: unknown;
|
|
3475
|
+
};
|
|
3476
|
+
content: {
|
|
3477
|
+
"application/json": components["schemas"]["QueryResponse"];
|
|
3478
|
+
};
|
|
3479
|
+
};
|
|
3480
|
+
/** @description Invalid request. */
|
|
3481
|
+
400: {
|
|
3482
|
+
headers: {
|
|
3483
|
+
[name: string]: unknown;
|
|
3484
|
+
};
|
|
3485
|
+
content: {
|
|
3486
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3487
|
+
};
|
|
3488
|
+
};
|
|
3489
|
+
};
|
|
3490
|
+
};
|
|
3491
|
+
explainQuery: {
|
|
3492
|
+
parameters: {
|
|
3493
|
+
query?: never;
|
|
3494
|
+
header?: {
|
|
3495
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
3496
|
+
"X-Tenant-ID"?: string;
|
|
3497
|
+
};
|
|
3498
|
+
path?: never;
|
|
3499
|
+
cookie?: never;
|
|
3500
|
+
};
|
|
3501
|
+
requestBody: {
|
|
3502
|
+
content: {
|
|
3503
|
+
"application/json": components["schemas"]["ExplainQueryRequest"];
|
|
3504
|
+
};
|
|
3505
|
+
};
|
|
3506
|
+
responses: {
|
|
3507
|
+
/** @description Query plan and lowering details. */
|
|
3508
|
+
200: {
|
|
3509
|
+
headers: {
|
|
3510
|
+
[name: string]: unknown;
|
|
3511
|
+
};
|
|
3512
|
+
content: {
|
|
3513
|
+
"application/json": components["schemas"]["QueryResponse"];
|
|
3514
|
+
};
|
|
3515
|
+
};
|
|
3516
|
+
/** @description Invalid request. */
|
|
3517
|
+
400: {
|
|
3518
|
+
headers: {
|
|
3519
|
+
[name: string]: unknown;
|
|
3520
|
+
};
|
|
3521
|
+
content: {
|
|
3522
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3523
|
+
};
|
|
3524
|
+
};
|
|
3525
|
+
};
|
|
3526
|
+
};
|
|
3527
|
+
executeSql: {
|
|
3528
|
+
parameters: {
|
|
3529
|
+
query?: never;
|
|
3530
|
+
header?: {
|
|
3531
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
3532
|
+
"X-Tenant-ID"?: string;
|
|
3533
|
+
};
|
|
3534
|
+
path?: never;
|
|
3535
|
+
cookie?: never;
|
|
3536
|
+
};
|
|
3537
|
+
requestBody: {
|
|
3538
|
+
content: {
|
|
3539
|
+
"application/json": components["schemas"]["SqlRequest"];
|
|
3540
|
+
};
|
|
3541
|
+
};
|
|
3542
|
+
responses: {
|
|
3543
|
+
/** @description SQL result or write count. */
|
|
3544
|
+
200: {
|
|
3545
|
+
headers: {
|
|
3546
|
+
[name: string]: unknown;
|
|
3547
|
+
};
|
|
3548
|
+
content: {
|
|
3549
|
+
"application/json": components["schemas"]["SqlResponse"];
|
|
3550
|
+
};
|
|
3551
|
+
};
|
|
3552
|
+
/** @description Invalid SQL request. */
|
|
3553
|
+
400: {
|
|
3554
|
+
headers: {
|
|
3555
|
+
[name: string]: unknown;
|
|
3556
|
+
};
|
|
3557
|
+
content: {
|
|
3558
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3559
|
+
};
|
|
3560
|
+
};
|
|
3561
|
+
/** @description Query deadline exceeded. */
|
|
3562
|
+
408: {
|
|
3563
|
+
headers: {
|
|
3564
|
+
[name: string]: unknown;
|
|
3565
|
+
};
|
|
3566
|
+
content: {
|
|
3567
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3568
|
+
};
|
|
3569
|
+
};
|
|
3570
|
+
/** @description Write lock conflict. */
|
|
3571
|
+
409: {
|
|
3572
|
+
headers: {
|
|
3573
|
+
[name: string]: unknown;
|
|
3574
|
+
};
|
|
3575
|
+
content: {
|
|
3576
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3577
|
+
};
|
|
3578
|
+
};
|
|
3579
|
+
/** @description SQL execution failure. */
|
|
3580
|
+
500: {
|
|
3581
|
+
headers: {
|
|
3582
|
+
[name: string]: unknown;
|
|
3583
|
+
};
|
|
3584
|
+
content: {
|
|
3585
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3586
|
+
};
|
|
3587
|
+
};
|
|
3588
|
+
};
|
|
3589
|
+
};
|
|
3590
|
+
getHealth: {
|
|
3591
|
+
parameters: {
|
|
3592
|
+
query?: never;
|
|
3593
|
+
header?: {
|
|
3594
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
3595
|
+
"X-Tenant-ID"?: string;
|
|
3596
|
+
};
|
|
3597
|
+
path?: never;
|
|
3598
|
+
cookie?: never;
|
|
3599
|
+
};
|
|
3600
|
+
requestBody?: never;
|
|
3601
|
+
responses: {
|
|
3602
|
+
/** @description Health status. */
|
|
3603
|
+
200: {
|
|
3604
|
+
headers: {
|
|
3605
|
+
[name: string]: unknown;
|
|
3606
|
+
};
|
|
3607
|
+
content: {
|
|
3608
|
+
"application/json": components["schemas"]["HealthResponse"];
|
|
3609
|
+
};
|
|
3610
|
+
};
|
|
3611
|
+
};
|
|
3612
|
+
};
|
|
3613
|
+
getLiveness: {
|
|
3614
|
+
parameters: {
|
|
3615
|
+
query?: never;
|
|
3616
|
+
header?: {
|
|
3617
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
3618
|
+
"X-Tenant-ID"?: string;
|
|
3619
|
+
};
|
|
3620
|
+
path?: never;
|
|
3621
|
+
cookie?: never;
|
|
3622
|
+
};
|
|
3623
|
+
requestBody?: never;
|
|
3624
|
+
responses: {
|
|
3625
|
+
/** @description Process is alive. */
|
|
3626
|
+
200: {
|
|
3627
|
+
headers: {
|
|
3628
|
+
[name: string]: unknown;
|
|
3629
|
+
};
|
|
3630
|
+
content: {
|
|
3631
|
+
"application/json": components["schemas"]["ProbeResponse"];
|
|
3632
|
+
};
|
|
3633
|
+
};
|
|
3634
|
+
};
|
|
3635
|
+
};
|
|
3636
|
+
getReadiness: {
|
|
3637
|
+
parameters: {
|
|
3638
|
+
query?: never;
|
|
3639
|
+
header?: {
|
|
3640
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
3641
|
+
"X-Tenant-ID"?: string;
|
|
3642
|
+
};
|
|
3643
|
+
path?: never;
|
|
3644
|
+
cookie?: never;
|
|
3645
|
+
};
|
|
3646
|
+
requestBody?: never;
|
|
3647
|
+
responses: {
|
|
3648
|
+
/** @description Server is ready. */
|
|
3649
|
+
200: {
|
|
3650
|
+
headers: {
|
|
3651
|
+
[name: string]: unknown;
|
|
3652
|
+
};
|
|
3653
|
+
content: {
|
|
3654
|
+
"application/json": components["schemas"]["ProbeResponse"];
|
|
3655
|
+
};
|
|
3656
|
+
};
|
|
3657
|
+
};
|
|
3658
|
+
};
|
|
3659
|
+
getCapabilities: {
|
|
3660
|
+
parameters: {
|
|
3661
|
+
query?: never;
|
|
3662
|
+
header?: {
|
|
3663
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
3664
|
+
"X-Tenant-ID"?: string;
|
|
3665
|
+
};
|
|
3666
|
+
path?: never;
|
|
3667
|
+
cookie?: never;
|
|
3668
|
+
};
|
|
3669
|
+
requestBody?: never;
|
|
3670
|
+
responses: {
|
|
3671
|
+
/** @description Capability document. */
|
|
3672
|
+
200: {
|
|
3673
|
+
headers: {
|
|
3674
|
+
[name: string]: unknown;
|
|
3675
|
+
};
|
|
3676
|
+
content: {
|
|
3677
|
+
"application/json": components["schemas"]["CapabilitiesResponse"];
|
|
3678
|
+
};
|
|
3679
|
+
};
|
|
3680
|
+
};
|
|
3681
|
+
};
|
|
3682
|
+
listGraphs: {
|
|
3683
|
+
parameters: {
|
|
3684
|
+
query?: never;
|
|
3685
|
+
header?: {
|
|
3686
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
3687
|
+
"X-Tenant-ID"?: string;
|
|
3688
|
+
};
|
|
3689
|
+
path?: never;
|
|
3690
|
+
cookie?: never;
|
|
3691
|
+
};
|
|
3692
|
+
requestBody?: never;
|
|
3693
|
+
responses: {
|
|
3694
|
+
/** @description Graph collection listing. */
|
|
3695
|
+
200: {
|
|
3696
|
+
headers: {
|
|
3697
|
+
[name: string]: unknown;
|
|
3698
|
+
};
|
|
3699
|
+
content: {
|
|
3700
|
+
"application/json": components["schemas"]["ListGraphsResponse"];
|
|
3701
|
+
};
|
|
3702
|
+
};
|
|
3703
|
+
};
|
|
3704
|
+
};
|
|
3705
|
+
createGraph: {
|
|
3706
|
+
parameters: {
|
|
3707
|
+
query?: never;
|
|
3708
|
+
header?: {
|
|
3709
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
3710
|
+
"X-Tenant-ID"?: string;
|
|
3711
|
+
};
|
|
3712
|
+
path?: never;
|
|
3713
|
+
cookie?: never;
|
|
3714
|
+
};
|
|
3715
|
+
requestBody: {
|
|
3716
|
+
content: {
|
|
3717
|
+
"application/json": components["schemas"]["CreateGraphRequest"];
|
|
3718
|
+
};
|
|
3719
|
+
};
|
|
3720
|
+
responses: {
|
|
3721
|
+
/** @description Graph collection metadata. */
|
|
3722
|
+
200: {
|
|
3723
|
+
headers: {
|
|
3724
|
+
[name: string]: unknown;
|
|
3725
|
+
};
|
|
3726
|
+
content: {
|
|
3727
|
+
"application/json": components["schemas"]["GraphCollectionResponse"];
|
|
3728
|
+
};
|
|
3729
|
+
};
|
|
3730
|
+
400: components["responses"]["BadRequest"];
|
|
3731
|
+
};
|
|
3732
|
+
};
|
|
3733
|
+
getGraph: {
|
|
3734
|
+
parameters: {
|
|
3735
|
+
query?: never;
|
|
3736
|
+
header?: {
|
|
3737
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
3738
|
+
"X-Tenant-ID"?: string;
|
|
3739
|
+
};
|
|
3740
|
+
path: {
|
|
3741
|
+
graph_id: components["parameters"]["GraphId"];
|
|
3742
|
+
};
|
|
3743
|
+
cookie?: never;
|
|
3744
|
+
};
|
|
3745
|
+
requestBody?: never;
|
|
3746
|
+
responses: {
|
|
3747
|
+
/** @description Graph collection metadata. */
|
|
3748
|
+
200: {
|
|
3749
|
+
headers: {
|
|
3750
|
+
[name: string]: unknown;
|
|
3751
|
+
};
|
|
3752
|
+
content: {
|
|
3753
|
+
"application/json": components["schemas"]["GraphCollectionResponse"];
|
|
3754
|
+
};
|
|
3755
|
+
};
|
|
3756
|
+
404: components["responses"]["NotFound"];
|
|
3757
|
+
};
|
|
3758
|
+
};
|
|
3759
|
+
deleteGraph: {
|
|
3760
|
+
parameters: {
|
|
3761
|
+
query?: never;
|
|
3762
|
+
header?: {
|
|
3763
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
3764
|
+
"X-Tenant-ID"?: string;
|
|
3765
|
+
};
|
|
3766
|
+
path: {
|
|
3767
|
+
graph_id: components["parameters"]["GraphId"];
|
|
3768
|
+
};
|
|
3769
|
+
cookie?: never;
|
|
3770
|
+
};
|
|
3771
|
+
requestBody?: never;
|
|
3772
|
+
responses: {
|
|
3773
|
+
/** @description Deletion acknowledged. */
|
|
3774
|
+
200: {
|
|
3775
|
+
headers: {
|
|
3776
|
+
[name: string]: unknown;
|
|
3777
|
+
};
|
|
3778
|
+
content: {
|
|
3779
|
+
"application/json": components["schemas"]["DeleteGraphResponse"];
|
|
3780
|
+
};
|
|
3781
|
+
};
|
|
3782
|
+
404: components["responses"]["NotFound"];
|
|
3783
|
+
};
|
|
3784
|
+
};
|
|
3785
|
+
createNode: {
|
|
3786
|
+
parameters: {
|
|
3787
|
+
query?: never;
|
|
3788
|
+
header?: {
|
|
3789
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
3790
|
+
"X-Tenant-ID"?: string;
|
|
3791
|
+
};
|
|
3792
|
+
path: {
|
|
3793
|
+
graph_id: components["parameters"]["GraphId"];
|
|
3794
|
+
};
|
|
3795
|
+
cookie?: never;
|
|
3796
|
+
};
|
|
3797
|
+
requestBody: {
|
|
3798
|
+
content: {
|
|
3799
|
+
"application/json": components["schemas"]["CreateNodeRequest"];
|
|
3800
|
+
};
|
|
3801
|
+
};
|
|
3802
|
+
responses: {
|
|
3803
|
+
/** @description Created node. */
|
|
3804
|
+
200: {
|
|
3805
|
+
headers: {
|
|
3806
|
+
[name: string]: unknown;
|
|
3807
|
+
};
|
|
3808
|
+
content: {
|
|
3809
|
+
"application/json": components["schemas"]["NodeResponse"];
|
|
3810
|
+
};
|
|
3811
|
+
};
|
|
3812
|
+
400: components["responses"]["BadRequest"];
|
|
3813
|
+
404: components["responses"]["NotFound"];
|
|
3814
|
+
};
|
|
3815
|
+
};
|
|
3816
|
+
getNode: {
|
|
3817
|
+
parameters: {
|
|
3818
|
+
query?: never;
|
|
3819
|
+
header?: {
|
|
3820
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
3821
|
+
"X-Tenant-ID"?: string;
|
|
3822
|
+
};
|
|
3823
|
+
path: {
|
|
3824
|
+
graph_id: components["parameters"]["GraphId"];
|
|
3825
|
+
node_id: components["parameters"]["NodeId"];
|
|
3826
|
+
};
|
|
3827
|
+
cookie?: never;
|
|
3828
|
+
};
|
|
3829
|
+
requestBody?: never;
|
|
3830
|
+
responses: {
|
|
3831
|
+
/** @description Node payload. */
|
|
3832
|
+
200: {
|
|
3833
|
+
headers: {
|
|
3834
|
+
[name: string]: unknown;
|
|
3835
|
+
};
|
|
3836
|
+
content: {
|
|
3837
|
+
"application/json": components["schemas"]["NodeResponse"];
|
|
3838
|
+
};
|
|
3839
|
+
};
|
|
3840
|
+
404: components["responses"]["NotFound"];
|
|
3841
|
+
};
|
|
3842
|
+
};
|
|
3843
|
+
deleteNode: {
|
|
3844
|
+
parameters: {
|
|
3845
|
+
query?: never;
|
|
3846
|
+
header?: {
|
|
3847
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
3848
|
+
"X-Tenant-ID"?: string;
|
|
3849
|
+
};
|
|
3850
|
+
path: {
|
|
3851
|
+
graph_id: components["parameters"]["GraphId"];
|
|
3852
|
+
node_id: components["parameters"]["NodeId"];
|
|
3853
|
+
};
|
|
3854
|
+
cookie?: never;
|
|
3855
|
+
};
|
|
3856
|
+
requestBody?: never;
|
|
3857
|
+
responses: {
|
|
3858
|
+
/** @description Deletion acknowledged. */
|
|
3859
|
+
200: {
|
|
3860
|
+
headers: {
|
|
3861
|
+
[name: string]: unknown;
|
|
3862
|
+
};
|
|
3863
|
+
content: {
|
|
3864
|
+
"application/json": components["schemas"]["DeleteNodeResponse"];
|
|
3865
|
+
};
|
|
3866
|
+
};
|
|
3867
|
+
404: components["responses"]["NotFound"];
|
|
3868
|
+
};
|
|
3869
|
+
};
|
|
3870
|
+
createEdge: {
|
|
3871
|
+
parameters: {
|
|
3872
|
+
query?: never;
|
|
3873
|
+
header?: {
|
|
3874
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
3875
|
+
"X-Tenant-ID"?: string;
|
|
3876
|
+
};
|
|
3877
|
+
path: {
|
|
3878
|
+
graph_id: components["parameters"]["GraphId"];
|
|
3879
|
+
};
|
|
3880
|
+
cookie?: never;
|
|
3881
|
+
};
|
|
3882
|
+
requestBody: {
|
|
3883
|
+
content: {
|
|
3884
|
+
"application/json": components["schemas"]["CreateEdgeRequest"];
|
|
3885
|
+
};
|
|
3886
|
+
};
|
|
3887
|
+
responses: {
|
|
3888
|
+
/** @description Created edge. */
|
|
3889
|
+
200: {
|
|
3890
|
+
headers: {
|
|
3891
|
+
[name: string]: unknown;
|
|
3892
|
+
};
|
|
3893
|
+
content: {
|
|
3894
|
+
"application/json": components["schemas"]["EdgeResponse"];
|
|
3895
|
+
};
|
|
3896
|
+
};
|
|
3897
|
+
400: components["responses"]["BadRequest"];
|
|
3898
|
+
404: components["responses"]["NotFound"];
|
|
3899
|
+
};
|
|
3900
|
+
};
|
|
3901
|
+
batchCreateNodes: {
|
|
3902
|
+
parameters: {
|
|
3903
|
+
query?: never;
|
|
3904
|
+
header?: {
|
|
3905
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
3906
|
+
"X-Tenant-ID"?: string;
|
|
3907
|
+
};
|
|
3908
|
+
path: {
|
|
3909
|
+
graph_id: components["parameters"]["GraphId"];
|
|
3910
|
+
};
|
|
3911
|
+
cookie?: never;
|
|
3912
|
+
};
|
|
3913
|
+
requestBody: {
|
|
3914
|
+
content: {
|
|
3915
|
+
"application/json": components["schemas"]["BatchCreateNodesRequest"];
|
|
3916
|
+
};
|
|
3917
|
+
};
|
|
3918
|
+
responses: {
|
|
3919
|
+
/** @description Batch result. */
|
|
3920
|
+
200: {
|
|
3921
|
+
headers: {
|
|
3922
|
+
[name: string]: unknown;
|
|
3923
|
+
};
|
|
3924
|
+
content: {
|
|
3925
|
+
"application/json": components["schemas"]["BatchNodesResponse"];
|
|
3926
|
+
};
|
|
3927
|
+
};
|
|
3928
|
+
400: components["responses"]["BadRequest"];
|
|
3929
|
+
404: components["responses"]["NotFound"];
|
|
3930
|
+
};
|
|
3931
|
+
};
|
|
3932
|
+
batchCreateEdges: {
|
|
3933
|
+
parameters: {
|
|
3934
|
+
query?: never;
|
|
3935
|
+
header?: {
|
|
3936
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
3937
|
+
"X-Tenant-ID"?: string;
|
|
3938
|
+
};
|
|
3939
|
+
path: {
|
|
3940
|
+
graph_id: components["parameters"]["GraphId"];
|
|
3941
|
+
};
|
|
3942
|
+
cookie?: never;
|
|
3943
|
+
};
|
|
3944
|
+
requestBody: {
|
|
3945
|
+
content: {
|
|
3946
|
+
"application/json": components["schemas"]["BatchCreateEdgesRequest"];
|
|
3947
|
+
};
|
|
3948
|
+
};
|
|
3949
|
+
responses: {
|
|
3950
|
+
/** @description Batch result. */
|
|
3951
|
+
200: {
|
|
3952
|
+
headers: {
|
|
3953
|
+
[name: string]: unknown;
|
|
3954
|
+
};
|
|
3955
|
+
content: {
|
|
3956
|
+
"application/json": components["schemas"]["BatchEdgesResponse"];
|
|
3957
|
+
};
|
|
3958
|
+
};
|
|
3959
|
+
400: components["responses"]["BadRequest"];
|
|
3960
|
+
404: components["responses"]["NotFound"];
|
|
3961
|
+
};
|
|
3962
|
+
};
|
|
3963
|
+
traverseGraph: {
|
|
3964
|
+
parameters: {
|
|
3965
|
+
query?: never;
|
|
3966
|
+
header?: {
|
|
3967
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
3968
|
+
"X-Tenant-ID"?: string;
|
|
3969
|
+
};
|
|
3970
|
+
path: {
|
|
3971
|
+
graph_id: components["parameters"]["GraphId"];
|
|
3972
|
+
};
|
|
3973
|
+
cookie?: never;
|
|
3974
|
+
};
|
|
3975
|
+
requestBody: {
|
|
3976
|
+
content: {
|
|
3977
|
+
"application/json": components["schemas"]["TraverseRequest"];
|
|
3978
|
+
};
|
|
3979
|
+
};
|
|
3980
|
+
responses: {
|
|
3981
|
+
/** @description Traversal result. */
|
|
3982
|
+
200: {
|
|
3983
|
+
headers: {
|
|
3984
|
+
[name: string]: unknown;
|
|
3985
|
+
};
|
|
3986
|
+
content: {
|
|
3987
|
+
"application/json": components["schemas"]["TraverseResponse"];
|
|
3988
|
+
};
|
|
3989
|
+
};
|
|
3990
|
+
400: components["responses"]["BadRequest"];
|
|
3991
|
+
};
|
|
3992
|
+
};
|
|
3993
|
+
getGraphStats: {
|
|
3994
|
+
parameters: {
|
|
3995
|
+
query?: never;
|
|
3996
|
+
header?: {
|
|
3997
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
3998
|
+
"X-Tenant-ID"?: string;
|
|
3999
|
+
};
|
|
4000
|
+
path: {
|
|
4001
|
+
graph_id: components["parameters"]["GraphId"];
|
|
4002
|
+
};
|
|
4003
|
+
cookie?: never;
|
|
4004
|
+
};
|
|
4005
|
+
requestBody?: never;
|
|
4006
|
+
responses: {
|
|
4007
|
+
/** @description Graph statistics. */
|
|
4008
|
+
200: {
|
|
4009
|
+
headers: {
|
|
4010
|
+
[name: string]: unknown;
|
|
4011
|
+
};
|
|
4012
|
+
content: {
|
|
4013
|
+
"application/json": components["schemas"]["GraphStatsResponse"];
|
|
4014
|
+
};
|
|
4015
|
+
};
|
|
4016
|
+
};
|
|
4017
|
+
};
|
|
4018
|
+
hybridSearch: {
|
|
4019
|
+
parameters: {
|
|
4020
|
+
query?: never;
|
|
4021
|
+
header?: {
|
|
4022
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
4023
|
+
"X-Tenant-ID"?: string;
|
|
4024
|
+
};
|
|
4025
|
+
path?: never;
|
|
4026
|
+
cookie?: never;
|
|
4027
|
+
};
|
|
4028
|
+
requestBody: {
|
|
4029
|
+
content: {
|
|
4030
|
+
"application/json": {
|
|
4031
|
+
collection: string;
|
|
4032
|
+
vector?: number[];
|
|
4033
|
+
text_query?: string;
|
|
4034
|
+
top_k?: number;
|
|
4035
|
+
fusion_strategy?: string;
|
|
4036
|
+
} & {
|
|
4037
|
+
[key: string]: unknown;
|
|
4038
|
+
};
|
|
4039
|
+
};
|
|
4040
|
+
};
|
|
4041
|
+
responses: {
|
|
4042
|
+
/** @description Fused results. */
|
|
4043
|
+
200: {
|
|
4044
|
+
headers: {
|
|
4045
|
+
[name: string]: unknown;
|
|
4046
|
+
};
|
|
4047
|
+
content: {
|
|
4048
|
+
"application/json": {
|
|
4049
|
+
[key: string]: unknown;
|
|
4050
|
+
};
|
|
4051
|
+
};
|
|
4052
|
+
};
|
|
4053
|
+
400: components["responses"]["BadRequest"];
|
|
4054
|
+
};
|
|
4055
|
+
};
|
|
4056
|
+
hybridIndex: {
|
|
4057
|
+
parameters: {
|
|
4058
|
+
query?: never;
|
|
4059
|
+
header?: {
|
|
4060
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
4061
|
+
"X-Tenant-ID"?: string;
|
|
4062
|
+
};
|
|
4063
|
+
path?: never;
|
|
4064
|
+
cookie?: never;
|
|
4065
|
+
};
|
|
4066
|
+
requestBody: {
|
|
4067
|
+
content: {
|
|
4068
|
+
"application/json": {
|
|
4069
|
+
[key: string]: unknown;
|
|
4070
|
+
};
|
|
4071
|
+
};
|
|
4072
|
+
};
|
|
4073
|
+
responses: {
|
|
4074
|
+
/** @description Index result. */
|
|
4075
|
+
200: {
|
|
4076
|
+
headers: {
|
|
4077
|
+
[name: string]: unknown;
|
|
4078
|
+
};
|
|
4079
|
+
content: {
|
|
4080
|
+
"application/json": {
|
|
4081
|
+
[key: string]: unknown;
|
|
4082
|
+
};
|
|
4083
|
+
};
|
|
4084
|
+
};
|
|
4085
|
+
};
|
|
4086
|
+
};
|
|
4087
|
+
listDocumentCollections: {
|
|
4088
|
+
parameters: {
|
|
4089
|
+
query?: never;
|
|
4090
|
+
header?: {
|
|
4091
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
4092
|
+
"X-Tenant-ID"?: string;
|
|
4093
|
+
};
|
|
4094
|
+
path?: never;
|
|
4095
|
+
cookie?: never;
|
|
4096
|
+
};
|
|
4097
|
+
requestBody?: never;
|
|
4098
|
+
responses: {
|
|
4099
|
+
/** @description Collections. */
|
|
4100
|
+
200: {
|
|
4101
|
+
headers: {
|
|
4102
|
+
[name: string]: unknown;
|
|
4103
|
+
};
|
|
4104
|
+
content: {
|
|
4105
|
+
"application/json": {
|
|
4106
|
+
[key: string]: unknown;
|
|
4107
|
+
};
|
|
4108
|
+
};
|
|
4109
|
+
};
|
|
4110
|
+
};
|
|
4111
|
+
};
|
|
4112
|
+
createDocumentCollection: {
|
|
4113
|
+
parameters: {
|
|
4114
|
+
query?: never;
|
|
4115
|
+
header?: {
|
|
4116
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
4117
|
+
"X-Tenant-ID"?: string;
|
|
4118
|
+
};
|
|
4119
|
+
path?: never;
|
|
4120
|
+
cookie?: never;
|
|
4121
|
+
};
|
|
4122
|
+
requestBody: {
|
|
4123
|
+
content: {
|
|
4124
|
+
"application/json": {
|
|
4125
|
+
[key: string]: unknown;
|
|
4126
|
+
};
|
|
4127
|
+
};
|
|
4128
|
+
};
|
|
4129
|
+
responses: {
|
|
4130
|
+
/** @description Created. */
|
|
4131
|
+
200: {
|
|
4132
|
+
headers: {
|
|
4133
|
+
[name: string]: unknown;
|
|
4134
|
+
};
|
|
4135
|
+
content: {
|
|
4136
|
+
"application/json": {
|
|
4137
|
+
[key: string]: unknown;
|
|
4138
|
+
};
|
|
4139
|
+
};
|
|
4140
|
+
};
|
|
4141
|
+
};
|
|
4142
|
+
};
|
|
4143
|
+
queryDocuments: {
|
|
4144
|
+
parameters: {
|
|
4145
|
+
query?: never;
|
|
4146
|
+
header?: {
|
|
4147
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
4148
|
+
"X-Tenant-ID"?: string;
|
|
4149
|
+
};
|
|
4150
|
+
path: {
|
|
4151
|
+
collection: string;
|
|
4152
|
+
};
|
|
4153
|
+
cookie?: never;
|
|
4154
|
+
};
|
|
4155
|
+
requestBody?: never;
|
|
4156
|
+
responses: {
|
|
4157
|
+
/** @description Documents. */
|
|
4158
|
+
200: {
|
|
4159
|
+
headers: {
|
|
4160
|
+
[name: string]: unknown;
|
|
4161
|
+
};
|
|
4162
|
+
content: {
|
|
4163
|
+
"application/json": {
|
|
4164
|
+
[key: string]: unknown;
|
|
4165
|
+
};
|
|
4166
|
+
};
|
|
4167
|
+
};
|
|
4168
|
+
};
|
|
4169
|
+
};
|
|
4170
|
+
insertDocument: {
|
|
4171
|
+
parameters: {
|
|
4172
|
+
query?: never;
|
|
4173
|
+
header?: {
|
|
4174
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
4175
|
+
"X-Tenant-ID"?: string;
|
|
4176
|
+
};
|
|
4177
|
+
path: {
|
|
4178
|
+
collection: string;
|
|
4179
|
+
};
|
|
4180
|
+
cookie?: never;
|
|
4181
|
+
};
|
|
4182
|
+
requestBody: {
|
|
4183
|
+
content: {
|
|
4184
|
+
"application/json": {
|
|
4185
|
+
[key: string]: unknown;
|
|
4186
|
+
};
|
|
4187
|
+
};
|
|
4188
|
+
};
|
|
4189
|
+
responses: {
|
|
4190
|
+
/** @description Inserted. */
|
|
4191
|
+
200: {
|
|
4192
|
+
headers: {
|
|
4193
|
+
[name: string]: unknown;
|
|
4194
|
+
};
|
|
4195
|
+
content: {
|
|
4196
|
+
"application/json": {
|
|
4197
|
+
[key: string]: unknown;
|
|
4198
|
+
};
|
|
4199
|
+
};
|
|
4200
|
+
};
|
|
4201
|
+
404: components["responses"]["NotFound"];
|
|
4202
|
+
};
|
|
4203
|
+
};
|
|
4204
|
+
ingestLog: {
|
|
4205
|
+
parameters: {
|
|
4206
|
+
query?: never;
|
|
4207
|
+
header?: {
|
|
4208
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
4209
|
+
"X-Tenant-ID"?: string;
|
|
4210
|
+
};
|
|
4211
|
+
path: {
|
|
4212
|
+
namespace: string;
|
|
4213
|
+
};
|
|
4214
|
+
cookie?: never;
|
|
4215
|
+
};
|
|
4216
|
+
requestBody: {
|
|
4217
|
+
content: {
|
|
4218
|
+
"application/json": {
|
|
4219
|
+
[key: string]: unknown;
|
|
4220
|
+
};
|
|
4221
|
+
};
|
|
4222
|
+
};
|
|
4223
|
+
responses: {
|
|
4224
|
+
/** @description Ingested. */
|
|
4225
|
+
200: {
|
|
4226
|
+
headers: {
|
|
4227
|
+
[name: string]: unknown;
|
|
4228
|
+
};
|
|
4229
|
+
content: {
|
|
4230
|
+
"application/json": {
|
|
4231
|
+
[key: string]: unknown;
|
|
4232
|
+
};
|
|
4233
|
+
};
|
|
4234
|
+
};
|
|
4235
|
+
};
|
|
4236
|
+
};
|
|
4237
|
+
queryLogs: {
|
|
4238
|
+
parameters: {
|
|
4239
|
+
query?: never;
|
|
4240
|
+
header?: {
|
|
4241
|
+
/** @description Optional explicit tenant selector. Applied only when there is no authenticated tenant context — a JWT tenant claim takes precedence, and a header that disagrees with the authenticated tenant is rejected. Absent ⇒ the default tenant. Tenant isolation is structural on the server; this header only selects the tenant. */
|
|
4242
|
+
"X-Tenant-ID"?: string;
|
|
4243
|
+
};
|
|
4244
|
+
path: {
|
|
4245
|
+
namespace: string;
|
|
4246
|
+
};
|
|
4247
|
+
cookie?: never;
|
|
4248
|
+
};
|
|
4249
|
+
requestBody: {
|
|
4250
|
+
content: {
|
|
4251
|
+
"application/json": {
|
|
4252
|
+
[key: string]: unknown;
|
|
4253
|
+
};
|
|
4254
|
+
};
|
|
4255
|
+
};
|
|
4256
|
+
responses: {
|
|
4257
|
+
/** @description Matching logs. */
|
|
4258
|
+
200: {
|
|
4259
|
+
headers: {
|
|
4260
|
+
[name: string]: unknown;
|
|
4261
|
+
};
|
|
4262
|
+
content: {
|
|
4263
|
+
"application/json": {
|
|
4264
|
+
[key: string]: unknown;
|
|
4265
|
+
};
|
|
4266
|
+
};
|
|
4267
|
+
};
|
|
4268
|
+
};
|
|
4269
|
+
};
|
|
4270
|
+
}
|
|
4271
|
+
//# sourceMappingURL=schema.d.ts.map
|