openapi: 3.1.1 info: description: "This OpenAPI specification is a part of the Lance namespace specification.\ \ It contains 2 parts:\n\nThe `components/schemas`, `components/responses`, `components/examples`,\ \ `tags` sections define\nthe request and response shape for each operation in\ \ a Lance Namespace across all implementations.\nSee https://lancedb.github.io/lance-namespace/spec/operations\ \ for more details.\n\nThe `servers`, `security`, `paths`, `components/parameters`\ \ sections are for the \nLance REST Namespace implementation, which defines a\ \ complete REST server that can work with Lance datasets.\nSee https://lancedb.github.io/lance-namespace/spec/impls/rest\ \ for more details.\n" license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0.html title: Lance Namespace Specification version: 1.0.0 servers: - description: Generic server URL with all parts configurable url: "{scheme}://{host}:{port}/{basePath}" variables: scheme: default: http host: default: localhost port: default: "2333" basePath: default: "" - description: Server URL when the port can be inferred from the scheme url: "{scheme}://{host}/{basePath}" variables: scheme: default: http host: default: localhost basePath: default: "" security: - OAuth2: [] - BearerAuth: [] tags: - description: | Operations that are related to a namespace name: Namespace - description: | Operations that are related to a table name: Table - description: | Operations that are related to a transaction name: Transaction - description: | Operations that only interact with object metadata and should be computationally lightweight name: Metadata - description: | Operations that interact with object data and might be computationally intensive name: Data paths: /v1/namespace/{id}/create: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Create a new namespace. A namespace can manage either a collection of child namespaces, or a collection of tables. The namespace in the API route should be the parent namespace to create the new namespace. There are three modes when trying to create a namespace, to differentiate the behavior when a namespace of the same name already exists: * CREATE: the operation fails with 400. * EXIST_OK: the operation succeeds and the existing namespace is kept. * OVERWRITE: the existing namespace is dropped and a new empty namespace with this name is created. operationId: CreateNamespace parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateNamespaceRequest' required: true responses: "200": $ref: '#/components/responses/CreateNamespaceResponse' "400": $ref: '#/components/responses/BadRequestErrorResponse' "401": $ref: '#/components/responses/UnauthorizedErrorResponse' "403": $ref: '#/components/responses/ForbiddenErrorResponse' "404": $ref: '#/components/responses/NotFoundErrorResponse' "406": $ref: '#/components/responses/UnsupportedOperationErrorResponse' "409": $ref: '#/components/responses/ConflictErrorResponse' "503": $ref: '#/components/responses/ServiceUnavailableErrorResponse' "5XX": $ref: '#/components/responses/ServerErrorResponse' summary: Create a new namespace tags: - Namespace - Metadata x-content-type: application/json x-accepts: - application/json /v1/namespace/{id}/list: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | List all child namespace names of the root namespace or a given parent namespace. operationId: ListNamespaces parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/ListNamespacesRequest' required: true responses: "200": $ref: '#/components/responses/ListNamespacesResponse' "400": $ref: '#/components/responses/BadRequestErrorResponse' "401": $ref: '#/components/responses/UnauthorizedErrorResponse' "403": $ref: '#/components/responses/ForbiddenErrorResponse' "404": $ref: '#/components/responses/NotFoundErrorResponse' "406": $ref: '#/components/responses/UnsupportedOperationErrorResponse' "503": $ref: '#/components/responses/ServiceUnavailableErrorResponse' "5XX": $ref: '#/components/responses/ServerErrorResponse' summary: List namespaces tags: - Namespace - Metadata x-content-type: application/json x-accepts: - application/json /v1/namespace/{id}/describe: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Return the detailed information for a given namespace operationId: DescribeNamespace parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/DescribeNamespaceRequest' required: true responses: "200": $ref: '#/components/responses/DescribeNamespaceResponse' "400": $ref: '#/components/responses/BadRequestErrorResponse' "401": $ref: '#/components/responses/UnauthorizedErrorResponse' "403": $ref: '#/components/responses/ForbiddenErrorResponse' "404": $ref: '#/components/responses/NotFoundErrorResponse' "503": $ref: '#/components/responses/ServiceUnavailableErrorResponse' "5XX": $ref: '#/components/responses/ServerErrorResponse' summary: Describe information about a namespace tags: - Namespace - Metadata x-content-type: application/json x-accepts: - application/json /v1/namespace/{id}/drop: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Drop a namespace. The namespace must be empty. operationId: DropNamespace parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/DropNamespaceRequest' required: true responses: "200": $ref: '#/components/responses/DropNamespaceResponse' "400": $ref: '#/components/responses/BadRequestErrorResponse' "401": $ref: '#/components/responses/UnauthorizedErrorResponse' "403": $ref: '#/components/responses/ForbiddenErrorResponse' "404": $ref: '#/components/responses/NotFoundErrorResponse' "409": $ref: '#/components/responses/ConflictErrorResponse' "503": $ref: '#/components/responses/ServiceUnavailableErrorResponse' "5XX": $ref: '#/components/responses/ServerErrorResponse' summary: Drop a namespace tags: - Namespace - Metadata x-content-type: application/json x-accepts: - application/json /v1/namespace/{id}/exists: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Check if a namespace exists. This API should behave exactly like the DescribeNamespace API, except it does not contain a body. operationId: NamespaceExists parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/NamespaceExistsRequest' required: true responses: "200": description: "Success, no content" "400": $ref: '#/components/responses/BadRequestErrorResponse' "401": $ref: '#/components/responses/UnauthorizedErrorResponse' "403": $ref: '#/components/responses/ForbiddenErrorResponse' "404": $ref: '#/components/responses/NotFoundErrorResponse' "503": $ref: '#/components/responses/ServiceUnavailableErrorResponse' "5XX": $ref: '#/components/responses/ServerErrorResponse' summary: Check if a namespace exists tags: - Namespace - Metadata x-content-type: application/json x-accepts: - application/json /v1/namespace/{id}/list_tables: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | List all child table names of the root namespace or a given parent namespace. operationId: ListTables parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/ListTablesRequest' required: true responses: "200": $ref: '#/components/responses/ListTablesResponse' "400": $ref: '#/components/responses/BadRequestErrorResponse' "401": $ref: '#/components/responses/UnauthorizedErrorResponse' "403": $ref: '#/components/responses/ForbiddenErrorResponse' "404": $ref: '#/components/responses/NotFoundErrorResponse' "406": $ref: '#/components/responses/UnsupportedOperationErrorResponse' "503": $ref: '#/components/responses/ServiceUnavailableErrorResponse' "5XX": $ref: '#/components/responses/ServerErrorResponse' summary: List tables in a namespace tags: - Namespace - Table - Metadata x-content-type: application/json x-accepts: - application/json /v1/table/{id}/insert: parameters: - $ref: '#/components/parameters/id' - description: "Insert mode: \"append\" (default) or \"overwrite\"" explode: true in: query name: mode required: false schema: default: append enum: - append - overwrite type: string style: form post: description: | Insert new records into an existing table using Arrow IPC format. Supports both lance-namespace format (with namespace in body) and LanceDB format (with database in headers). operationId: InsertIntoTable parameters: - $ref: '#/components/parameters/id' - description: "Insert mode: \"append\" (default) or \"overwrite\"" explode: true in: query name: mode required: false schema: default: append enum: - append - overwrite type: string style: form requestBody: content: application/x-arrow-ipc: schema: format: binary type: string description: Arrow IPC data required: true responses: "200": $ref: '#/components/responses/InsertIntoTableResponse' "400": $ref: '#/components/responses/BadRequestErrorResponse' "401": $ref: '#/components/responses/UnauthorizedErrorResponse' "403": $ref: '#/components/responses/ForbiddenErrorResponse' "404": $ref: '#/components/responses/NotFoundErrorResponse' "503": $ref: '#/components/responses/ServiceUnavailableErrorResponse' "5XX": $ref: '#/components/responses/ServerErrorResponse' summary: Insert records into a table tags: - Table - Data x-content-type: application/x-arrow-ipc x-accepts: - application/json /v1/table/{id}/merge_insert: parameters: - $ref: '#/components/parameters/id' - description: Column name to use for matching rows (required) explode: true in: query name: "on" required: true schema: type: string style: form - description: Update all columns when rows match explode: true in: query name: when_matched_update_all required: false schema: default: false type: boolean style: form - description: Insert all columns when rows don't match explode: true in: query name: when_not_matched_insert_all required: false schema: default: false type: boolean style: form post: description: | Performs a merge insert (upsert) operation on a table. This operation updates existing rows based on a matching column and inserts new rows that don't match. Returns the number of rows inserted and updated. operationId: MergeInsertIntoTable parameters: - $ref: '#/components/parameters/id' - description: Column name to use for matching rows (required) explode: true in: query name: "on" required: true schema: type: string style: form - description: Update all columns when rows match explode: true in: query name: when_matched_update_all required: false schema: default: false type: boolean style: form - description: Insert all columns when rows don't match explode: true in: query name: when_not_matched_insert_all required: false schema: default: false type: boolean style: form requestBody: content: application/x-arrow-ipc: schema: format: binary type: string description: Arrow IPC data containing the records to merge required: true responses: "200": $ref: '#/components/responses/MergeInsertIntoTableResponse' "400": $ref: '#/components/responses/BadRequestErrorResponse' "401": $ref: '#/components/responses/UnauthorizedErrorResponse' "403": $ref: '#/components/responses/ForbiddenErrorResponse' "404": $ref: '#/components/responses/NotFoundErrorResponse' "503": $ref: '#/components/responses/ServiceUnavailableErrorResponse' "5XX": $ref: '#/components/responses/ServerErrorResponse' summary: Merge insert (upsert) records into a table tags: - Table - Data x-content-type: application/x-arrow-ipc x-accepts: - application/json /v1/table/{id}/update: parameters: - $ref: '#/components/parameters/id' post: description: | Update existing rows in a table using SQL expressions. Each update consists of a column name and an SQL expression that will be evaluated against the current row's value. Optionally, a predicate can be provided to filter which rows to update. operationId: UpdateTable parameters: - $ref: '#/components/parameters/id' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateTableRequest' description: Update request required: true responses: "200": $ref: '#/components/responses/UpdateTableResponse' "400": $ref: '#/components/responses/BadRequestErrorResponse' "401": $ref: '#/components/responses/UnauthorizedErrorResponse' "403": $ref: '#/components/responses/ForbiddenErrorResponse' "404": $ref: '#/components/responses/NotFoundErrorResponse' "503": $ref: '#/components/responses/ServiceUnavailableErrorResponse' "5XX": $ref: '#/components/responses/ServerErrorResponse' summary: Update rows in a table tags: - Table - Data x-content-type: application/json x-accepts: - application/json /v1/table/{id}/delete: parameters: - $ref: '#/components/parameters/id' post: description: | Delete rows from a table based on a SQL predicate. Returns the number of rows that were deleted. operationId: DeleteFromTable parameters: - $ref: '#/components/parameters/id' requestBody: content: application/json: schema: $ref: '#/components/schemas/DeleteFromTableRequest' description: Delete request required: true responses: "200": $ref: '#/components/responses/DeleteFromTableResponse' "400": $ref: '#/components/responses/BadRequestErrorResponse' "401": $ref: '#/components/responses/UnauthorizedErrorResponse' "403": $ref: '#/components/responses/ForbiddenErrorResponse' "404": $ref: '#/components/responses/NotFoundErrorResponse' "503": $ref: '#/components/responses/ServiceUnavailableErrorResponse' "5XX": $ref: '#/components/responses/ServerErrorResponse' summary: Delete rows from a table tags: - Table - Data x-content-type: application/json x-accepts: - application/json /v1/table/{id}/query: parameters: - $ref: '#/components/parameters/id' post: description: | Query a table with vector search and optional filtering. Returns results in Arrow IPC stream format. operationId: QueryTable parameters: - $ref: '#/components/parameters/id' requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryTableRequest' description: Query request required: true responses: "200": $ref: '#/components/responses/QueryTableResponse' "400": $ref: '#/components/responses/BadRequestErrorResponse' "401": $ref: '#/components/responses/UnauthorizedErrorResponse' "403": $ref: '#/components/responses/ForbiddenErrorResponse' "404": $ref: '#/components/responses/NotFoundErrorResponse' "503": $ref: '#/components/responses/ServiceUnavailableErrorResponse' "5XX": $ref: '#/components/responses/ServerErrorResponse' summary: Query a table tags: - Table - Data x-content-type: application/json x-accepts: - application/json - application/vnd.apache.arrow.stream /v1/table/{id}/create_index: parameters: - $ref: '#/components/parameters/id' post: description: "Create an index on a table column for faster search operations.\n\ Supports vector indexes (IVF_FLAT, IVF_HNSW_SQ, IVF_PQ) and scalar indexes.\n\ Index creation is handled asynchronously. \nUse the `listIndices` and `getIndexStats`\ \ operations to monitor index creation progress.\n" operationId: CreateTableIndex parameters: - $ref: '#/components/parameters/id' requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateTableIndexRequest' description: Index creation request required: true responses: "200": $ref: '#/components/responses/CreateTableIndexResponse' "400": $ref: '#/components/responses/BadRequestErrorResponse' "401": $ref: '#/components/responses/UnauthorizedErrorResponse' "403": $ref: '#/components/responses/ForbiddenErrorResponse' "404": $ref: '#/components/responses/NotFoundErrorResponse' "503": $ref: '#/components/responses/ServiceUnavailableErrorResponse' "5XX": $ref: '#/components/responses/ServerErrorResponse' summary: Create an index on a table tags: - Table - Metadata x-content-type: application/json x-accepts: - application/json /v1/table/{id}/create_scalar_index: parameters: - $ref: '#/components/parameters/id' post: description: | Create a scalar index on a table column for faster search operations. Supports scalar indexes (BTREE, BITMAP, LABEL_LIST). operationId: CreateTableScalarIndex parameters: - $ref: '#/components/parameters/id' requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateTableIndexRequest' description: Scalar index creation request required: true responses: "200": $ref: '#/components/responses/CreateTableScalarIndexResponse' "400": $ref: '#/components/responses/BadRequestErrorResponse' "401": $ref: '#/components/responses/UnauthorizedErrorResponse' "403": $ref: '#/components/responses/ForbiddenErrorResponse' "404": $ref: '#/components/responses/NotFoundErrorResponse' "503": $ref: '#/components/responses/ServiceUnavailableErrorResponse' "5XX": $ref: '#/components/responses/ServerErrorResponse' summary: Create a scalar index on a table tags: - Table - Metadata x-content-type: application/json x-accepts: - application/json /v1/table/{id}/index/list: parameters: - $ref: '#/components/parameters/id' post: description: | List all indices created on a table. Returns information about each index including name, columns, status, and UUID. operationId: ListTableIndices parameters: - $ref: '#/components/parameters/id' requestBody: content: application/json: schema: $ref: '#/components/schemas/ListTableIndicesRequest' description: Index list request required: true responses: "200": $ref: '#/components/responses/ListTableIndicesResponse' "400": $ref: '#/components/responses/BadRequestErrorResponse' "401": $ref: '#/components/responses/UnauthorizedErrorResponse' "403": $ref: '#/components/responses/ForbiddenErrorResponse' "404": $ref: '#/components/responses/NotFoundErrorResponse' "503": $ref: '#/components/responses/ServiceUnavailableErrorResponse' "5XX": $ref: '#/components/responses/ServerErrorResponse' summary: List indexes on a table tags: - Table - Metadata x-content-type: application/json x-accepts: - application/json /v1/table/{id}/index/{index_name}/stats: parameters: - $ref: '#/components/parameters/id' - description: Name of the index to get stats for explode: false in: path name: index_name required: true schema: type: string style: simple post: description: | Get statistics for a specific index on a table. Returns information about the index type, distance type (for vector indices), and row counts. operationId: DescribeTableIndexStats parameters: - $ref: '#/components/parameters/id' - description: Name of the index to get stats for explode: false in: path name: index_name required: true schema: type: string style: simple requestBody: content: application/json: schema: $ref: '#/components/schemas/DescribeTableIndexStatsRequest' description: Index stats request required: true responses: "200": $ref: '#/components/responses/DescribeTableIndexStatsResponse' "400": $ref: '#/components/responses/BadRequestErrorResponse' "401": $ref: '#/components/responses/UnauthorizedErrorResponse' "403": $ref: '#/components/responses/ForbiddenErrorResponse' "404": $ref: '#/components/responses/NotFoundErrorResponse' "503": $ref: '#/components/responses/ServiceUnavailableErrorResponse' "5XX": $ref: '#/components/responses/ServerErrorResponse' summary: Get index statistics tags: - Table - Metadata x-content-type: application/json x-accepts: - application/json /v1/table/{id}/register: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Register an existing table at a given storage location to a namespace. operationId: RegisterTable parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/RegisterTableRequest' required: true responses: "200": $ref: '#/components/responses/RegisterTableResponse' "400": $ref: '#/components/responses/BadRequestErrorResponse' "401": $ref: '#/components/responses/UnauthorizedErrorResponse' "403": $ref: '#/components/responses/ForbiddenErrorResponse' "404": $ref: '#/components/responses/NotFoundErrorResponse' "406": $ref: '#/components/responses/UnsupportedOperationErrorResponse' "409": $ref: '#/components/responses/ConflictErrorResponse' "503": $ref: '#/components/responses/ServiceUnavailableErrorResponse' "5XX": $ref: '#/components/responses/ServerErrorResponse' summary: Register a table to a namespace tags: - Table - Metadata x-content-type: application/json x-accepts: - application/json /v1/table/{id}/describe: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Get a table's detailed information under a specified namespace. Supports both lance-namespace format (with namespace in body) and LanceDB format (with database in headers). operationId: DescribeTable parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/DescribeTableRequest' required: true responses: "200": $ref: '#/components/responses/DescribeTableResponse' "400": $ref: '#/components/responses/BadRequestErrorResponse' "401": $ref: '#/components/responses/UnauthorizedErrorResponse' "403": $ref: '#/components/responses/ForbiddenErrorResponse' "404": $ref: '#/components/responses/NotFoundErrorResponse' "503": $ref: '#/components/responses/ServiceUnavailableErrorResponse' "5XX": $ref: '#/components/responses/ServerErrorResponse' summary: Describe a table from the namespace tags: - Table - Metadata x-content-type: application/json x-accepts: - application/json /v2/table/{id}/describe: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Get a table's detailed information under a specified namespace. operationId: DescribeTableV2 parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/DescribeTableRequestV2' required: true responses: "200": $ref: '#/components/responses/DescribeTableResponseV2' "400": $ref: '#/components/responses/BadRequestErrorResponse' "401": $ref: '#/components/responses/UnauthorizedErrorResponse' "403": $ref: '#/components/responses/ForbiddenErrorResponse' "404": $ref: '#/components/responses/NotFoundErrorResponse' "503": $ref: '#/components/responses/ServiceUnavailableErrorResponse' "5XX": $ref: '#/components/responses/ServerErrorResponse' summary: Describe a table from the namespace tags: - Table - Metadata x-content-type: application/json x-accepts: - application/json /v1/table/{id}/count_rows: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Count the number of rows in a table. operationId: CountTableRows parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/CountTableRowsRequest' required: true responses: "200": $ref: '#/components/responses/CountTableRowsResponse' "400": $ref: '#/components/responses/BadRequestErrorResponse' "401": $ref: '#/components/responses/UnauthorizedErrorResponse' "403": $ref: '#/components/responses/ForbiddenErrorResponse' "404": $ref: '#/components/responses/NotFoundErrorResponse' "503": $ref: '#/components/responses/ServiceUnavailableErrorResponse' "5XX": $ref: '#/components/responses/ServerErrorResponse' summary: Count rows in a table tags: - Table - Metadata x-content-type: application/json x-accepts: - application/json /v1/table/{id}/exists: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Check if a table exists. This API should behave exactly like the DescribeTable API, except it does not contain a body. operationId: TableExists parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/TableExistsRequest' required: true responses: "200": description: "Success, no content" "400": $ref: '#/components/responses/BadRequestErrorResponse' "401": $ref: '#/components/responses/UnauthorizedErrorResponse' "403": $ref: '#/components/responses/ForbiddenErrorResponse' "404": $ref: '#/components/responses/NotFoundErrorResponse' "503": $ref: '#/components/responses/ServiceUnavailableErrorResponse' "5XX": $ref: '#/components/responses/ServerErrorResponse' summary: Check if a table exists tags: - Table - Metadata x-content-type: application/json x-accepts: - application/json /v1/table/{id}/drop: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Drop a table from its namespace and delete its data. If the table and its data can be immediately deleted, return information of the deleted table. Otherwise, return a transaction ID that client can use to track deletion progress. operationId: DropTable parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/DropTableRequest' required: true responses: "200": $ref: '#/components/responses/DropTableResponse' "400": $ref: '#/components/responses/BadRequestErrorResponse' "401": $ref: '#/components/responses/UnauthorizedErrorResponse' "403": $ref: '#/components/responses/ForbiddenErrorResponse' "404": $ref: '#/components/responses/NotFoundErrorResponse' "503": $ref: '#/components/responses/ServiceUnavailableErrorResponse' "5XX": $ref: '#/components/responses/ServerErrorResponse' summary: Drop a table from its namespace tags: - Table - Metadata x-content-type: application/json x-accepts: - application/json /v1/table/{id}/deregister: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Deregister a table from its namespace. The table content remains available in the storage. operationId: DeregisterTable parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/DeregisterTableRequest' required: true responses: "200": $ref: '#/components/responses/DeregisterTableResponse' "400": $ref: '#/components/responses/BadRequestErrorResponse' "401": $ref: '#/components/responses/UnauthorizedErrorResponse' "403": $ref: '#/components/responses/ForbiddenErrorResponse' "404": $ref: '#/components/responses/NotFoundErrorResponse' "503": $ref: '#/components/responses/ServiceUnavailableErrorResponse' "5XX": $ref: '#/components/responses/ServerErrorResponse' summary: Deregister a table from its namespace tags: - Table - Metadata x-content-type: application/json x-accepts: - application/json /v1/table/{id}/create: parameters: - $ref: '#/components/parameters/id' post: description: | Create a new table in the namespace. Supports both lance-namespace format (with namespace in body) and LanceDB format (with database in headers). operationId: CreateTable parameters: - $ref: '#/components/parameters/id' requestBody: content: application/x-arrow-ipc: schema: format: binary type: string description: Arrow IPC data required: true responses: "200": $ref: '#/components/responses/CreateTableResponse' "400": $ref: '#/components/responses/BadRequestErrorResponse' "401": $ref: '#/components/responses/UnauthorizedErrorResponse' "403": $ref: '#/components/responses/ForbiddenErrorResponse' "404": $ref: '#/components/responses/NotFoundErrorResponse' "503": $ref: '#/components/responses/ServiceUnavailableErrorResponse' "5XX": $ref: '#/components/responses/ServerErrorResponse' summary: Create a table with the given name tags: - Table - Metadata x-content-type: application/x-arrow-ipc x-accepts: - application/json /v1/transaction/{id}/describe: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: Return a detailed information for a given transaction operationId: DescribeTransaction parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/DescribeTransactionRequest' required: true responses: "200": $ref: '#/components/responses/DescribeTransactionResponse' "400": $ref: '#/components/responses/BadRequestErrorResponse' "401": $ref: '#/components/responses/UnauthorizedErrorResponse' "403": $ref: '#/components/responses/ForbiddenErrorResponse' "404": $ref: '#/components/responses/NotFoundErrorResponse' "503": $ref: '#/components/responses/ServiceUnavailableErrorResponse' "5XX": $ref: '#/components/responses/ServerErrorResponse' summary: Describe information about a transaction tags: - Transaction - Metadata x-content-type: application/json x-accepts: - application/json /v1/transaction/{id}/alter: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: operationId: AlterTransaction parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/AlterTransactionRequest' required: true responses: "200": $ref: '#/components/responses/AlterTransactionResponse' "400": $ref: '#/components/responses/BadRequestErrorResponse' "401": $ref: '#/components/responses/UnauthorizedErrorResponse' "403": $ref: '#/components/responses/ForbiddenErrorResponse' "404": $ref: '#/components/responses/NotFoundErrorResponse' "409": $ref: '#/components/responses/ConflictErrorResponse' "503": $ref: '#/components/responses/ServiceUnavailableErrorResponse' "5XX": $ref: '#/components/responses/ServerErrorResponse' summary: Alter information of a transaction. tags: - Transaction - Metadata x-content-type: application/json x-accepts: - application/json components: examples: ListNamespacesEmptyExample: summary: An empty list of namespaces value: namespaces: [] ListNamespacesNonEmptyExample: summary: A non-empty list of namespaces value: namespaces: - accounting - credits parameters: id: description: | `string identifier` of an object in a namespace, following the Lance Namespace spec. When the value is equal to the delimiter, it represents the root namespace. For example, `v1/namespace/./list` performs a `ListNamespace` on the root namespace. explode: false in: path name: id required: true schema: type: string style: simple delimiter: description: | An optional delimiter of the `string identifier`, following the Lance Namespace spec. When not specified, the `.` delimiter must be used. explode: true in: query name: delimiter required: false schema: $ref: '#/components/schemas/PageToken' style: form responses: ListNamespacesResponse: content: application/json: examples: NonEmptyResponse: $ref: '#/components/examples/ListNamespacesNonEmptyExample' EmptyResponse: $ref: '#/components/examples/ListNamespacesEmptyExample' schema: $ref: '#/components/schemas/ListNamespacesResponse' description: A list of namespaces DescribeNamespaceResponse: content: application/json: schema: $ref: '#/components/schemas/DescribeNamespaceResponse' description: "Returns a namespace, as well as any properties stored on the namespace\ \ if namespace properties are supported by the server." CreateNamespaceResponse: content: application/json: schema: $ref: '#/components/schemas/CreateNamespaceResponse' description: Result of creating a namespace DropNamespaceResponse: content: application/json: schema: $ref: '#/components/schemas/DropNamespaceResponse' description: Result of dropping a namespace NamespaceExistsResponse: content: application/json: schema: $ref: '#/components/schemas/NamespaceExistsResponse' description: Result of checking if a namespace exists ListTablesResponse: content: application/json: schema: $ref: '#/components/schemas/ListTablesResponse' description: A list of tables DescribeTableResponse: content: application/json: schema: $ref: '#/components/schemas/DescribeTableResponse' description: Table properties result when loading a table DescribeTableResponseV2: content: application/json: schema: $ref: '#/components/schemas/DescribeTableResponseV2' description: Table properties result when loading a table CountTableRowsResponse: content: application/json: schema: $ref: '#/components/schemas/CountTableRowsResponse' description: Result of counting rows in a table CreateTableResponse: content: application/json: schema: $ref: '#/components/schemas/CreateTableResponse' description: Table properties result when creating a table InsertIntoTableResponse: content: application/json: schema: $ref: '#/components/schemas/InsertIntoTableResponse' description: Result of inserting records into a table MergeInsertIntoTableResponse: content: application/json: schema: $ref: '#/components/schemas/MergeInsertIntoTableResponse' description: Result of merge insert operation RegisterTableResponse: content: application/json: schema: $ref: '#/components/schemas/RegisterTableResponse' description: Table properties result when registering a table TableExistsResponse: content: application/json: schema: $ref: '#/components/schemas/TableExistsResponse' description: Result of checking if a table exists DescribeTransactionResponse: content: application/json: schema: $ref: '#/components/schemas/DescribeTransactionResponse' description: Response of GetTransaction AlterTransactionResponse: content: application/json: schema: $ref: '#/components/schemas/AlterTransactionResponse' description: Response of AlterTransaction DropTableResponse: content: application/json: schema: $ref: '#/components/schemas/DropTableResponse' description: Response of DropTable DeregisterTableResponse: content: application/json: schema: $ref: '#/components/schemas/DeregisterTableResponse' description: Response of DeregisterTable UpdateTableResponse: content: application/json: schema: $ref: '#/components/schemas/UpdateTableResponse' description: Update successful DeleteFromTableResponse: content: application/json: schema: $ref: '#/components/schemas/DeleteFromTableResponse' description: Delete successful QueryTableResponse: content: application/vnd.apache.arrow.stream: schema: format: binary type: string description: Query results in Arrow IPC stream format CreateTableIndexResponse: content: application/json: schema: $ref: '#/components/schemas/CreateTableIndexResponse' description: Index created successfully CreateTableScalarIndexResponse: content: application/json: schema: $ref: '#/components/schemas/CreateTableIndexResponse' description: Scalar index created successfully ListTableIndicesResponse: content: application/json: schema: $ref: '#/components/schemas/ListTableIndicesResponse' description: List of indices on the table DescribeTableIndexStatsResponse: content: application/json: schema: $ref: '#/components/schemas/DescribeTableIndexStatsResponse' description: Index statistics BadRequestErrorResponse: content: application/json: example: type: /errors/bad-request title: Malformed request status: 400 detail: "" instance: /v1/namespaces schema: $ref: '#/components/schemas/ErrorResponse' description: "Indicates a bad request error. It could be caused by an unexpected\ \ request body format or other forms of request validation failure, such as\ \ invalid json. Usually serves application/json content, although in some\ \ cases simple text/plain content might be returned by the server's middleware." UnauthorizedErrorResponse: content: application/json: example: type: /errors/unauthorized-request title: No valid authentication credentials for the operation status: 401 detail: "" instance: /v1/namespaces schema: $ref: '#/components/schemas/ErrorResponse' description: Unauthorized. The request lacks valid authentication credentials for the operation. ForbiddenErrorResponse: content: application/json: example: type: /errors/forbidden-request title: Not authorized to make this request status: 403 detail: "" instance: /v1/namespaces schema: $ref: '#/components/schemas/ErrorResponse' description: Forbidden. Authenticated user does not have the necessary permissions. NotFoundErrorResponse: content: application/json: example: type: /errors/not-found-error title: Not found Error status: 404 detail: "" instance: "/v1/namespaces/{ns}" schema: $ref: '#/components/schemas/ErrorResponse' description: A server-side problem that means can not find the specified resource. UnsupportedOperationErrorResponse: content: application/json: example: type: /errors/unsupported-operation title: The server does not support this operation status: 406 detail: "" instance: /v1/namespaces schema: $ref: '#/components/schemas/ErrorResponse' description: Not Acceptable / Unsupported Operation. The server does not support this operation. ConflictErrorResponse: content: application/json: example: type: /errors/conflict title: The namespace has been concurrently modified status: 409 detail: "" instance: "/v1/namespaces/{ns}" schema: $ref: '#/components/schemas/ErrorResponse' description: The request conflicts with the current state of the target resource. ServiceUnavailableErrorResponse: content: application/json: example: type: /errors/service-unavailable title: Slow down status: 503 detail: "" instance: /v1/namespaces schema: $ref: '#/components/schemas/ErrorResponse' description: The service is not ready to handle the request. The client should wait and retry. The service may additionally send a Retry-After header to indicate when to retry. ServerErrorResponse: content: application/json: example: type: /errors/server-error title: Internal Server Error status: 500 detail: "" instance: /v1/namespaces schema: $ref: '#/components/schemas/ErrorResponse' description: A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in individual routes. schemas: ErrorResponse: description: "JSON error response model based on [RFC-7807](https://datatracker.ietf.org/doc/html/rfc7807)" example: instance: /login/log/abc123 detail: Authentication failed due to incorrect username or password type: /errors/incorrect-user-pass title: Incorrect username or password status: 404 properties: type: description: a URI identifier that categorizes the error example: /errors/incorrect-user-pass type: string title: description: "a brief, human-readable message about the error" example: Incorrect username or password type: string status: description: "HTTP response code, (if present) it must match the actual\ \ HTTP code returned by the service" example: 404 maximum: 600 minimum: 400 type: integer detail: description: a human-readable explanation of the error example: Authentication failed due to incorrect username or password type: string instance: description: a URI that identifies the specific occurrence of the error example: /login/log/abc123 type: string required: - type CreateNamespaceRequest: example: mode: CREATE parent: - parent - parent name: name options: key: options properties: name: type: string parent: items: type: string type: array mode: enum: - CREATE - EXIST_OK - OVERWRITE type: string options: additionalProperties: type: string required: - mode - name CreateNamespaceResponse: example: parent: - parent - parent name: name properties: key: properties properties: name: type: string parent: items: type: string type: array properties: additionalProperties: type: string required: - name ListNamespacesRequest: example: parent: - parent - parent pageSize: 0 pageToken: pageToken properties: parent: items: type: string type: array pageToken: description: |- An opaque token that allows pagination for list APIs (e.g. ListNamespaces). For an initial client request for a list API, if the server cannot return all items in one response, or if there are more items than the `pageSize` specified in the client request, the server must return a `nextPageToken` in the response indicating there are more results available. After the initial request, the value of `nextPageToken` from each response must be used by the client as the `pageToken` parameter value for the next request. Clients must interpret either `null`, missing value or empty string value of `nextPageToken` from a server response as the end of the listing results. type: string nullable: true pageSize: description: An inclusive upper bound of the number of results that a client will receive. type: integer nullable: true ListNamespacesResponse: example: nextPageToken: nextPageToken namespaces: - accounting - accounting properties: namespaces: items: example: accounting type: string type: array uniqueItems: true nextPageToken: description: |- An opaque token that allows pagination for list APIs (e.g. ListNamespaces). For an initial client request for a list API, if the server cannot return all items in one response, or if there are more items than the `pageSize` specified in the client request, the server must return a `nextPageToken` in the response indicating there are more results available. After the initial request, the value of `nextPageToken` from each response must be used by the client as the `pageToken` parameter value for the next request. Clients must interpret either `null`, missing value or empty string value of `nextPageToken` from a server response as the end of the listing results. type: string nullable: true required: - namespaces DescribeNamespaceRequest: example: parent: - parent - parent name: name properties: name: type: string parent: items: type: string type: array required: - name DescribeNamespaceResponse: example: parent: - parent - parent name: name properties: owner: Ralph created_at: "1452120468" properties: name: type: string parent: items: type: string type: array properties: additionalProperties: type: string default: {} description: "Properties stored on the namespace, if supported by the server.\ \ If the server does not support namespace properties, it should return\ \ null for this field. If namespace properties are supported, but none\ \ are set, it should return an empty object." example: owner: Ralph created_at: "1452120468" nullable: true required: - name DropNamespaceRequest: example: mode: SKIP parent: - parent - parent name: name behavior: RESTRICT properties: name: type: string parent: items: type: string type: array mode: description: | The mode for dropping a namespace, deciding the server behavior when the namespace to drop is not found. - FAIL (default): the server must return 400 indicating the namespace to drop does not exist. - SKIP: the server must return 204 indicating the drop operation has succeeded. enum: - SKIP - FAIL type: string behavior: description: | The behavior for dropping a namespace. - RESTRICT (default): the namespace should not contain any table or child namespace when drop is initiated. If tables are found, the server should return error and not drop the namespace. - CASCADE: all tables and child namespaces in the namespace are dropped before the namespace is dropped. enum: - RESTRICT - CASCADE type: string required: - name DropNamespaceResponse: example: parent: - parent - parent name: name properties: key: properties transactionId: transactionId properties: name: type: string parent: items: type: string type: array properties: additionalProperties: type: string transactionId: description: | If present, indicating the operation is long running and should be tracked using GetTransaction type: string NamespaceExistsRequest: example: parent: - parent - parent name: name properties: name: type: string parent: items: type: string type: array required: - name NamespaceExistsResponse: properties: exists: type: boolean required: - exists PageToken: description: |- An opaque token that allows pagination for list APIs (e.g. ListNamespaces). For an initial client request for a list API, if the server cannot return all items in one response, or if there are more items than the `pageSize` specified in the client request, the server must return a `nextPageToken` in the response indicating there are more results available. After the initial request, the value of `nextPageToken` from each response must be used by the client as the `pageToken` parameter value for the next request. Clients must interpret either `null`, missing value or empty string value of `nextPageToken` from a server response as the end of the listing results. type: string nullable: true PageSize: description: An inclusive upper bound of the number of results that a client will receive. type: integer nullable: true RegisterTableRequest: example: name: name namespace: - namespace - namespace location: location properties: name: type: string namespace: items: type: string type: array location: type: string required: - location - name - namespace RegisterTableResponse: example: name: name namespace: - namespace - namespace location: location properties: key: properties properties: name: type: string namespace: items: type: string type: array location: type: string properties: additionalProperties: type: string required: - location - name - namespace ListTablesRequest: example: parent: - parent - parent pageSize: 0 pageToken: pageToken properties: parent: items: type: string type: array pageToken: description: |- An opaque token that allows pagination for list APIs (e.g. ListNamespaces). For an initial client request for a list API, if the server cannot return all items in one response, or if there are more items than the `pageSize` specified in the client request, the server must return a `nextPageToken` in the response indicating there are more results available. After the initial request, the value of `nextPageToken` from each response must be used by the client as the `pageToken` parameter value for the next request. Clients must interpret either `null`, missing value or empty string value of `nextPageToken` from a server response as the end of the listing results. type: string nullable: true pageSize: description: An inclusive upper bound of the number of results that a client will receive. type: integer nullable: true ListTablesResponse: example: tables: - cart - cart nextPageToken: nextPageToken properties: tables: items: example: cart type: string type: array uniqueItems: true nextPageToken: description: |- An opaque token that allows pagination for list APIs (e.g. ListNamespaces). For an initial client request for a list API, if the server cannot return all items in one response, or if there are more items than the `pageSize` specified in the client request, the server must return a `nextPageToken` in the response indicating there are more results available. After the initial request, the value of `nextPageToken` from each response must be used by the client as the `pageToken` parameter value for the next request. Clients must interpret either `null`, missing value or empty string value of `nextPageToken` from a server response as the end of the listing results. type: string nullable: true required: - tables DescribeTableRequest: example: name: name namespace: - namespace - namespace version: 0 properties: name: type: string namespace: items: type: string type: array version: format: int64 minimum: 0 nullable: true type: integer DescribeTableResponse: example: schema: metadata: key: metadata fields: - metadata: key: metadata nullable: true name: name type: length: 0 fields: - null - null type: type - metadata: key: metadata nullable: true name: name type: length: 0 fields: - null - null type: type stats: num_deleted_rows: 0 num_fragments: 0 location: location version: 0 properties: key: properties table: table properties: location: type: string properties: additionalProperties: type: string schema: $ref: '#/components/schemas/JsonSchema' stats: $ref: '#/components/schemas/TableBasicStats' table: type: string version: format: int64 minimum: 0 type: integer required: - location - schema - stats - table - version DescribeTableRequestV2: example: name: name namespace: - namespace - namespace properties: name: type: string namespace: items: type: string type: array required: - name - namespace DescribeTableResponseV2: example: name: name namespace: - namespace - namespace location: location properties: key: properties properties: name: type: string namespace: items: type: string type: array location: type: string properties: additionalProperties: type: string required: - location - name - namespace CountTableRowsRequest: example: name: name namespace: - namespace - namespace properties: name: type: string namespace: items: type: string type: array CountTableRowsResponse: description: "Response containing the count of rows. \nSerializes transparently\ \ as just the number for backward compatibility.\n" format: int64 minimum: 0 type: integer InsertIntoTableResponse: description: Response from inserting records into a table example: version: 0 properties: version: description: The version of the table after the insert format: int64 minimum: 0 type: integer MergeInsertIntoTableRequest: properties: name: description: The table name type: string namespace: description: The namespace identifier items: type: string type: array required: - name - namespace MergeInsertIntoTableResponse: description: Response from merge insert operation example: num_inserted_rows: 0 num_updated_rows: 0 num_deleted_rows: 0 version: 0 properties: num_updated_rows: description: Number of rows updated format: int64 minimum: 0 type: integer num_inserted_rows: description: Number of rows inserted format: int64 minimum: 0 type: integer num_deleted_rows: description: Number of rows deleted (typically 0 for merge insert) format: int64 minimum: 0 type: integer version: description: The commit version associated with the operation format: int64 minimum: 0 type: integer UpdateTableRequest: example: predicate: predicate name: name namespace: - namespace - namespace updates: - - updates - updates - - updates - updates properties: name: description: The table name type: string namespace: description: The namespace identifier items: type: string type: array predicate: description: Optional SQL predicate to filter rows for update type: string nullable: true updates: description: "List of column updates as [column_name, expression] pairs" items: items: type: string maxItems: 2 minItems: 2 type: array type: array required: - name - namespace - updates UpdateTableResponse: example: updated_rows: 0 version: 0 properties: updated_rows: description: Number of rows updated format: int64 minimum: 0 type: integer version: description: The commit version associated with the operation format: int64 minimum: 0 type: integer required: - updated_rows - version DeleteFromTableRequest: example: predicate: predicate name: name namespace: - namespace - namespace properties: name: description: The table name type: string namespace: description: The namespace identifier items: type: string type: array predicate: description: SQL predicate to filter rows for deletion type: string required: - name - namespace - predicate DeleteFromTableResponse: example: version: 0 properties: version: description: The commit version associated with the operation format: int64 minimum: 0 type: integer required: - version QueryTableRequest: example: ef: 0 offset: 0 columns: - columns - columns vector_column: vector_column fast_search: true k: 0 upper_bound: 1.2315135 version: 0 with_row_id: true prefilter: true filter: filter refine_factor: 0 full_text_query: string_query: columns: - columns - columns query: query structured_query: query: boolean: must_not: - null - null should: - null - null must: - null - null phrase: terms: terms column: column slop: 0 match: fuzziness: 0 terms: terms column: column boost: 6.0274563 prefix_length: 0 operator: And max_expansions: 0 boost: negative: null negative_boost: 7.0614014 positive: null multi_match: match_queries: - fuzziness: 0 terms: terms column: column boost: 6.0274563 prefix_length: 0 operator: And max_expansions: 0 - fuzziness: 0 terms: terms column: column boost: 6.0274563 prefix_length: 0 operator: And max_expansions: 0 distance_type: distance_type lower_bound: 3.6160767 bypass_vector_index: true nprobes: 0 name: name namespace: - namespace - namespace vector: single_vector: - 1.0246457 - 1.0246457 multi_vector: - - 1.4894159 - 1.4894159 - - 1.4894159 - 1.4894159 properties: name: type: string namespace: items: type: string type: array bypass_vector_index: description: Whether to bypass vector index nullable: true type: boolean columns: description: Optional list of columns to return items: type: string type: array nullable: true distance_type: description: Distance metric to use nullable: true type: string ef: description: Search effort parameter for HNSW index minimum: 0 nullable: true type: integer fast_search: description: Whether to use fast search nullable: true type: boolean filter: description: Optional SQL filter expression nullable: true type: string full_text_query: $ref: '#/components/schemas/QueryTableRequest_full_text_query' k: description: Number of results to return minimum: 0 type: integer lower_bound: description: Lower bound for search format: float nullable: true type: number nprobes: description: Number of probes for IVF index minimum: 0 nullable: true type: integer offset: description: Number of results to skip minimum: 0 nullable: true type: integer prefilter: description: Whether to apply filtering before vector search nullable: true type: boolean refine_factor: description: Refine factor for search format: int32 minimum: 0 nullable: true type: integer upper_bound: description: Upper bound for search format: float nullable: true type: number vector: $ref: '#/components/schemas/QueryTableRequest_vector' vector_column: description: Name of the vector column to search nullable: true type: string version: description: Table version to query format: int64 minimum: 0 nullable: true type: integer with_row_id: description: "If true, return the row id as a column called `_rowid`" nullable: true type: boolean required: - k - name - namespace - vector CreateTableIndexRequest: example: base_tokenizer: base_tokenizer column: column max_token_length: 0 language: language index_type: BTREE with_position: true lower_case: true name: name namespace: - namespace - namespace metric_type: l2 ascii_folding: true remove_stop_words: true stem: true properties: name: description: The table name type: string namespace: description: The namespace identifier items: type: string type: array column: description: Name of the column to create index on type: string index_type: description: Type of index to create enum: - BTREE - BITMAP - LABEL_LIST - IVF_FLAT - IVF_HNSW_SQ - IVF_PQ - FTS type: string metric_type: description: Distance metric type for vector indexes enum: - l2 - cosine - dot type: string nullable: true with_position: description: Optional FTS parameter for position tracking type: boolean nullable: true base_tokenizer: description: Optional FTS parameter for base tokenizer type: string nullable: true language: description: Optional FTS parameter for language type: string nullable: true max_token_length: description: Optional FTS parameter for maximum token length minimum: 0 type: integer nullable: true lower_case: description: Optional FTS parameter for lowercase conversion type: boolean nullable: true stem: description: Optional FTS parameter for stemming type: boolean nullable: true remove_stop_words: description: Optional FTS parameter for stop word removal type: boolean nullable: true ascii_folding: description: Optional FTS parameter for ASCII folding type: boolean nullable: true required: - column - index_type - name - namespace CreateTableIndexResponse: example: name: name namespace: - namespace - namespace location: location properties: key: properties properties: name: description: The table name type: string namespace: description: The namespace identifier items: type: string type: array location: description: Table location (usually empty) type: string properties: additionalProperties: type: string description: Additional properties (usually empty) required: - location - name - namespace ListTableIndicesRequest: example: name: name namespace: - namespace - namespace version: 0 properties: name: description: The table name type: string namespace: description: The namespace identifier items: type: string type: array version: description: Optional table version to list indexes from format: int64 minimum: 0 type: integer nullable: true required: - name - namespace ListTableIndicesResponse: example: indexes: - index_uuid: index_uuid columns: - columns - columns index_name: index_name status: status - index_uuid: index_uuid columns: - columns - columns index_name: index_name status: status name: name namespace: - namespace - namespace location: location properties: key: properties properties: name: description: The table name type: string namespace: description: The namespace identifier items: type: string type: array location: description: Table location (usually empty) type: string properties: additionalProperties: type: string description: Additional properties (usually empty) indexes: description: List of indexes on the table items: $ref: '#/components/schemas/IndexListItemResponse' type: array required: - indexes - location - name - namespace IndexListItemResponse: example: index_uuid: index_uuid columns: - columns - columns index_name: index_name status: status properties: index_name: description: Name of the index type: string index_uuid: description: Unique identifier for the index type: string columns: description: Columns covered by this index items: type: string type: array status: description: Current status of the index type: string required: - columns - index_name - index_uuid - status DescribeTableIndexStatsRequest: example: name: name namespace: - namespace - namespace version: 0 properties: name: description: The table name type: string namespace: description: The namespace identifier items: type: string type: array version: description: Optional table version to get stats for format: int64 minimum: 0 type: integer nullable: true required: - name - namespace DescribeTableIndexStatsResponse: example: distance_type: distance_type num_unindexed_rows: 0 num_indexed_rows: 0 index_type: index_type properties: distance_type: description: Distance type for vector indexes type: string nullable: true index_type: description: Type of the index type: string nullable: true num_indexed_rows: description: Number of indexed rows format: int64 minimum: 0 type: integer nullable: true num_unindexed_rows: description: Number of unindexed rows format: int64 minimum: 0 type: integer nullable: true JsonSchema: description: "JSON representation of a Apache Arrow [Schema]." example: metadata: key: metadata fields: - metadata: key: metadata nullable: true name: name type: length: 0 fields: - null - null type: type - metadata: key: metadata nullable: true name: name type: length: 0 fields: - null - null type: type properties: fields: items: $ref: '#/components/schemas/JsonField' type: array metadata: additionalProperties: type: string required: - fields JsonField: description: "JSON representation of an Apache Arrow [Field]." example: metadata: key: metadata nullable: true name: name type: length: 0 fields: - null - null type: type properties: metadata: additionalProperties: type: string name: type: string nullable: type: boolean type: $ref: '#/components/schemas/JsonDataType' required: - name - nullable - type JsonDataType: description: JSON representation of an Apache Arrow DataType example: length: 0 fields: - null - null type: type properties: fields: description: "Fields for complex types like Struct, Union, etc." items: $ref: '#/components/schemas/JsonField' type: array length: description: Length for fixed-size types format: int64 minimum: 0 type: integer type: description: The data type name type: string required: - type Binary: format: binary type: string CreateTableResponse: example: name: name namespace: - namespace - namespace location: location properties: key: properties properties: name: type: string namespace: items: type: string type: array location: type: string properties: additionalProperties: type: string required: - location - name - namespace TableExistsRequest: example: name: name namespace: - namespace - namespace properties: name: type: string namespace: items: type: string type: array required: - name - namespace TableExistsResponse: properties: exists: type: boolean required: - exists TransactionStatus: enum: - QUEUED - RUNNING - SUCCEEDED - FAILED - CANCELED type: string DescribeTransactionRequest: example: id: id properties: id: type: string required: - id DescribeTransactionResponse: example: id: id properties: key: properties status: QUEUED properties: id: type: string status: $ref: '#/components/schemas/TransactionStatus' properties: additionalProperties: type: string required: - id - status AlterTransactionSetStatus: example: status: QUEUED properties: status: $ref: '#/components/schemas/TransactionStatus' AlterTransactionSetProperty: example: mode: OVERWRITE value: value key: key properties: key: type: string value: type: string mode: $ref: '#/components/schemas/SetPropertyMode' SetPropertyMode: description: | The behavior if the property key already exists. - OVERWRITE (default): overwrite the existing value with the provided value - FAIL: fail the entire operation - SKIP: keep the existing value and skip setting the provided value enum: - OVERWRITE - FAIL - SKIP type: string AlterTransactionUnsetProperty: example: mode: SKIP key: key properties: key: type: string mode: $ref: '#/components/schemas/UnsetPropertyMode' UnsetPropertyMode: description: | The behavior if the property key to unset does not exist. - SKIP (default): skip the property to unset - FAIL: fail the entire operation enum: - SKIP - FAIL type: string AlterTransactionAction: description: | A single action that could be performed to alter a transaction. This action holds the model definition for all types of specific actions models, this is to minimize difference and compatibility issue across codegen in different languages. When used, only one of the actions should be non-null for each action. If you would like to perform multiple actions, set a list of actions in the AlterTransactionRequest. example: setStatusAction: status: QUEUED unsetPropertyAction: mode: SKIP key: key setPropertyAction: mode: OVERWRITE value: value key: key properties: setStatusAction: $ref: '#/components/schemas/AlterTransactionSetStatus' setPropertyAction: $ref: '#/components/schemas/AlterTransactionSetProperty' unsetPropertyAction: $ref: '#/components/schemas/AlterTransactionUnsetProperty' AlterTransactionRequest: description: | Alter a transaction with a list of actions. The server should either succeed and apply all actions, or fail and apply no action. example: id: id actions: - setStatusAction: status: QUEUED unsetPropertyAction: mode: SKIP key: key setPropertyAction: mode: OVERWRITE value: value key: key - setStatusAction: status: QUEUED unsetPropertyAction: mode: SKIP key: key setPropertyAction: mode: OVERWRITE value: value key: key properties: id: type: string actions: items: $ref: '#/components/schemas/AlterTransactionAction' minItems: 1 type: array required: - actions - id AlterTransactionResponse: example: id: id status: QUEUED properties: id: type: string status: $ref: '#/components/schemas/TransactionStatus' required: - id - status DropTableRequest: example: name: name namespace: - namespace - namespace properties: name: type: string namespace: items: type: string type: array required: - name DropTableResponse: example: name: name namespace: - namespace - namespace location: location properties: key: properties transactionId: transactionId properties: name: type: string namespace: items: type: string type: array location: type: string properties: additionalProperties: type: string transactionId: type: string DeregisterTableRequest: example: name: name namespace: - namespace - namespace properties: name: type: string namespace: items: type: string type: array required: - name DeregisterTableResponse: example: name: name namespace: - namespace - namespace location: location properties: key: properties properties: name: type: string namespace: items: type: string type: array location: type: string properties: additionalProperties: type: string TableBasicStats: example: num_deleted_rows: 0 num_fragments: 0 properties: num_deleted_rows: minimum: 0 type: integer num_fragments: minimum: 0 type: integer required: - num_deleted_rows - num_fragments StringFtsQuery: example: columns: - columns - columns query: query properties: columns: items: type: string nullable: true type: array query: type: string required: - query StructuredFtsQuery: example: query: boolean: must_not: - null - null should: - null - null must: - null - null phrase: terms: terms column: column slop: 0 match: fuzziness: 0 terms: terms column: column boost: 6.0274563 prefix_length: 0 operator: And max_expansions: 0 boost: negative: null negative_boost: 7.0614014 positive: null multi_match: match_queries: - fuzziness: 0 terms: terms column: column boost: 6.0274563 prefix_length: 0 operator: And max_expansions: 0 - fuzziness: 0 terms: terms column: column boost: 6.0274563 prefix_length: 0 operator: And max_expansions: 0 properties: query: $ref: '#/components/schemas/FtsQuery' required: - query FtsQuery: description: | Full-text search query. Exactly one query type field must be provided. This structure follows the same pattern as AlterTransactionAction to minimize differences and compatibility issues across codegen in different languages. example: boolean: must_not: - null - null should: - null - null must: - null - null phrase: terms: terms column: column slop: 0 match: fuzziness: 0 terms: terms column: column boost: 6.0274563 prefix_length: 0 operator: And max_expansions: 0 boost: negative: null negative_boost: 7.0614014 positive: null multi_match: match_queries: - fuzziness: 0 terms: terms column: column boost: 6.0274563 prefix_length: 0 operator: And max_expansions: 0 - fuzziness: 0 terms: terms column: column boost: 6.0274563 prefix_length: 0 operator: And max_expansions: 0 properties: match: $ref: '#/components/schemas/MatchQuery' phrase: $ref: '#/components/schemas/PhraseQuery' boost: $ref: '#/components/schemas/BoostQuery' multi_match: $ref: '#/components/schemas/MultiMatchQuery' boolean: $ref: '#/components/schemas/BooleanQuery' MatchQuery: example: fuzziness: 0 terms: terms column: column boost: 6.0274563 prefix_length: 0 operator: And max_expansions: 0 properties: boost: format: float type: number column: nullable: true type: string fuzziness: format: int32 minimum: 0 nullable: true type: integer max_expansions: description: |- The maximum number of terms to expand for fuzzy matching. Default to 50. minimum: 0 type: integer operator: $ref: '#/components/schemas/Operator' prefix_length: description: |- The number of beginning characters being unchanged for fuzzy matching. Default to 0. format: int32 minimum: 0 type: integer terms: type: string required: - column - terms PhraseQuery: example: terms: terms column: column slop: 0 properties: column: nullable: true type: string slop: format: int32 minimum: 0 type: integer terms: type: string required: - terms BoostQuery: description: Boost query that scores documents matching positive query higher and negative query lower example: negative: null negative_boost: 7.0614014 positive: null properties: positive: $ref: '#/components/schemas/FtsQuery' negative: $ref: '#/components/schemas/FtsQuery' negative_boost: default: 0.5 description: "Boost factor for negative query (default: 0.5)" format: float type: number required: - negative - positive MultiMatchQuery: example: match_queries: - fuzziness: 0 terms: terms column: column boost: 6.0274563 prefix_length: 0 operator: And max_expansions: 0 - fuzziness: 0 terms: terms column: column boost: 6.0274563 prefix_length: 0 operator: And max_expansions: 0 properties: match_queries: items: $ref: '#/components/schemas/MatchQuery' type: array required: - match_queries BooleanQuery: description: "Boolean query with must, should, and must_not clauses" example: must_not: - null - null should: - null - null must: - null - null properties: must: description: Queries that must match (AND) items: $ref: '#/components/schemas/FtsQuery' type: array must_not: description: Queries that must not match (NOT) items: $ref: '#/components/schemas/FtsQuery' type: array should: description: Queries that should match (OR) items: $ref: '#/components/schemas/FtsQuery' type: array required: - must - must_not - should Operator: enum: - And - Or type: string QueryTableRequest_full_text_query: description: "Optional full-text search query. Provide either string_query or\ \ structured_query, not both." example: string_query: columns: - columns - columns query: query structured_query: query: boolean: must_not: - null - null should: - null - null must: - null - null phrase: terms: terms column: column slop: 0 match: fuzziness: 0 terms: terms column: column boost: 6.0274563 prefix_length: 0 operator: And max_expansions: 0 boost: negative: null negative_boost: 7.0614014 positive: null multi_match: match_queries: - fuzziness: 0 terms: terms column: column boost: 6.0274563 prefix_length: 0 operator: And max_expansions: 0 - fuzziness: 0 terms: terms column: column boost: 6.0274563 prefix_length: 0 operator: And max_expansions: 0 properties: string_query: $ref: '#/components/schemas/StringFtsQuery' structured_query: $ref: '#/components/schemas/StructuredFtsQuery' nullable: true QueryTableRequest_vector: description: "Query vector(s) for similarity search. Provide either single_vector\ \ or multi_vector, not both." example: single_vector: - 1.0246457 - 1.0246457 multi_vector: - - 1.4894159 - 1.4894159 - - 1.4894159 - 1.4894159 properties: single_vector: description: Single query vector items: format: float type: number type: array multi_vector: description: Multiple query vectors for batch search items: items: format: float type: number type: array type: array nullable: true