openapi: 3.1.1 info: description: | This OpenAPI specification is a part of the Lance namespace specification. It contains 2 parts: The `components/schemas`, `components/responses`, `components/examples`, `tags` sections define the request and response shape for each operation in a Lance Namespace across all implementations. See https://lance.org/format/namespace/operations for more details. The `servers`, `security`, `paths`, `components/parameters` sections are for the Lance REST Namespace implementation, which defines a complete REST server that can work with Lance datasets. See https://lance.org/format/namespace/rest for more details. 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: [] - ApiKeyAuth: [] 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 an index name: Index - description: | Operations that are related to tags name: Tag - 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 new namespace `id`. During the creation process, the implementation may modify user-provided `properties`, such as adding additional properties like `created_at` to user-provided properties, omitting any specific property, or performing actions based on any property value. 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: get: description: | List all child namespace names of the parent namespace `id`. REST NAMESPACE ONLY REST namespace uses GET to perform this operation without a request body. It passes in the `ListNamespacesRequest` information in the following way: - `id`: pass through path parameter of the same name - `page_token`: pass through query parameter of the same name - `limit`: pass through query parameter of the same name operationId: ListNamespaces parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' - $ref: '#/components/parameters/page_token' - $ref: '#/components/parameters/limit' 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-accepts: - application/json parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' - $ref: '#/components/parameters/page_token' - $ref: '#/components/parameters/limit' /v1/namespace/{id}/describe: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Describe the detailed information for namespace `id`. 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 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 namespace `id` from its parent namespace. 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 namespace `id` exists. This operation must behave exactly like the DescribeNamespace API, except it does not contain a response body. REST NAMESPACE ONLY REST namespace conveys the result through the HTTP status code with no response body. The REST response maps to the `NamespaceExistsResponse` model as follows: - a `200` response means the namespace exists; a `404` response means it does not - response headers map to `context` via the `header.` prefix (see the `Context` schema) 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}/table/list: get: description: | List all child table names of the parent namespace `id`. REST NAMESPACE ONLY REST namespace uses GET to perform this operation without a request body. It passes in the `ListTablesRequest` information in the following way: - `id`: pass through path parameter of the same name - `page_token`: pass through query parameter of the same name - `limit`: pass through query parameter of the same name - `include_declared`: pass through query parameter of the same name operationId: ListTables parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' - $ref: '#/components/parameters/page_token' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/include_declared' 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-accepts: - application/json parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' - $ref: '#/components/parameters/page_token' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/include_declared' /v1/table: get: description: | List all tables across all namespaces. REST NAMESPACE ONLY REST namespace uses GET to perform this operation without a request body. It passes in the `ListAllTablesRequest` information in the following way: - `page_token`: pass through query parameter of the same name - `limit`: pass through query parameter of the same name - `delimiter`: pass through query parameter of the same name - `include_declared`: pass through query parameter of the same name operationId: ListAllTables parameters: - $ref: '#/components/parameters/delimiter' - $ref: '#/components/parameters/page_token' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/include_declared' responses: "200": $ref: '#/components/responses/ListTablesResponse' "400": $ref: '#/components/responses/BadRequestErrorResponse' "401": $ref: '#/components/responses/UnauthorizedErrorResponse' "403": $ref: '#/components/responses/ForbiddenErrorResponse' "503": $ref: '#/components/responses/ServiceUnavailableErrorResponse' "5XX": $ref: '#/components/responses/ServerErrorResponse' summary: List all tables tags: - Table 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 as `id`. 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' - $ref: '#/components/parameters/with_table_uri' - $ref: '#/components/parameters/load_detailed_metadata' - $ref: '#/components/parameters/check_declared' post: description: | Describe the detailed information for table `id`. REST NAMESPACE ONLY REST namespace passes `with_table_uri`, `load_detailed_metadata`, and `check_declared` as query parameters instead of in the request body. operationId: DescribeTable parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' - $ref: '#/components/parameters/with_table_uri' - $ref: '#/components/parameters/load_detailed_metadata' - $ref: '#/components/parameters/check_declared' 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 information of 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 table `id` exists. This operation should behave exactly like DescribeTable, except it does not contain a response body. REST NAMESPACE ONLY REST namespace conveys the result through the HTTP status code with no response body. The REST response maps to the `TableExistsResponse` model as follows: - a `200` response means the table exists; a `404` response means it does not - response headers map to `context` via the `header.` prefix (see the `Context` schema) For DirectoryNamespace implementation, a table exists if either: - The table has Lance data versions (regular table created with CreateTable) - A `.lance-reserved` file exists in the table directory (declared table created with DeclareTable) 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 table `id` and delete its data. REST NAMESPACE ONLY REST namespace does not use a request body for this operation. The `DropTableRequest` information is passed in the following way: - `id`: pass through path parameter of the same name operationId: DropTable parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' 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 tags: - Table - Metadata x-accepts: - application/json /v1/table/{id}/deregister: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Deregister table `id` from its namespace. 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 tags: - Table - Metadata x-content-type: application/json x-accepts: - application/json /v1/table/{id}/restore: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Restore table `id` to a specific version. operationId: RestoreTable parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/RestoreTableRequest' required: true responses: "200": $ref: '#/components/responses/RestoreTableResponse' "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: Restore table to a specific version tags: - Table - Metadata x-content-type: application/json x-accepts: - application/json /v1/table/{id}/rename: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Rename table `id` to a new name. operationId: RenameTable parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/RenameTableRequest' required: true responses: "200": $ref: '#/components/responses/RenameTableResponse' "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: Rename a table tags: - Table - Metadata x-content-type: application/json x-accepts: - application/json /v1/table/{id}/schema_metadata/update: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' - $ref: '#/components/parameters/branch' post: description: | Replace the schema metadata for table `id` with the provided key-value pairs. REST NAMESPACE ONLY REST namespace uses a direct object (map of string to string) as both request and response body instead of the wrapped `UpdateTableSchemaMetadataRequest` and `UpdateTableSchemaMetadataResponse`. operationId: UpdateTableSchemaMetadata parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' - $ref: '#/components/parameters/branch' requestBody: content: application/json: schema: additionalProperties: type: string description: Schema metadata key-value pairs required: true responses: "200": content: application/json: schema: additionalProperties: type: string description: The updated schema metadata description: Schema metadata update result "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 table schema metadata tags: - Table - Metadata x-content-type: application/json x-accepts: - application/json /v1/table/{id}/version/list: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' - $ref: '#/components/parameters/branch' - $ref: '#/components/parameters/page_token' - $ref: '#/components/parameters/limit' - description: | When true, versions are guaranteed to be returned in descending order (latest to oldest). When false or not specified, the ordering is implementation-defined. explode: true in: query name: descending required: false schema: type: boolean style: form post: description: | List all versions (commits) of table `id` with their metadata. Use `descending=true` to guarantee versions are returned in descending order (latest to oldest). Otherwise, the ordering is implementation-defined. REST NAMESPACE ONLY REST namespace does not use a request body for this operation. The `ListTableVersionsRequest` information is passed in the following way: - `id`: pass through path parameter of the same name - `page_token`: pass through query parameter of the same name - `limit`: pass through query parameter of the same name - `descending`: pass through query parameter of the same name operationId: ListTableVersions parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' - $ref: '#/components/parameters/branch' - $ref: '#/components/parameters/page_token' - $ref: '#/components/parameters/limit' - description: | When true, versions are guaranteed to be returned in descending order (latest to oldest). When false or not specified, the ordering is implementation-defined. explode: true in: query name: descending required: false schema: type: boolean style: form responses: "200": $ref: '#/components/responses/ListTableVersionsResponse' "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 all versions of a table tags: - Table - Metadata x-accepts: - application/json /v1/table/{id}/version/create: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Create a new version entry for table `id`. This operation supports `put_if_not_exists` semantics. The operation will fail with 409 Conflict if the version already exists. operationId: CreateTableVersion parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateTableVersionRequest' required: true responses: "200": $ref: '#/components/responses/CreateTableVersionResponse' "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: Create a new table version tags: - Table - Metadata x-content-type: application/json x-accepts: - application/json /v1/table/{id}/version/describe: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Describe the detailed information for a specific version of table `id`. Returns the manifest path and metadata for the specified version. operationId: DescribeTableVersion parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/DescribeTableVersionRequest' required: true responses: "200": $ref: '#/components/responses/DescribeTableVersionResponse' "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 specific table version tags: - Table - Metadata x-content-type: application/json x-accepts: - application/json /v1/table/{id}/version/delete: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Delete version metadata records for table `id`. This operation deletes version tracking records, NOT the actual table data. It supports deleting ranges of versions for efficient bulk cleanup. Special range values: - `start_version: 0` with `end_version: -1` means delete ALL version records operationId: BatchDeleteTableVersions parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/BatchDeleteTableVersionsRequest' required: true responses: "200": $ref: '#/components/responses/BatchDeleteTableVersionsResponse' "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 table version records tags: - Table - Metadata x-content-type: application/json x-accepts: - application/json /v1/table/version/batch-create: parameters: - $ref: '#/components/parameters/delimiter' post: description: | Atomically create new version entries for multiple tables. This operation is atomic: either all table versions are created successfully, or none are created. If any version creation fails (e.g., due to conflict), the entire batch operation fails. Each entry in the request specifies the table identifier and version details. This supports `put_if_not_exists` semantics for each version entry. operationId: BatchCreateTableVersions parameters: - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/BatchCreateTableVersionsRequest' required: true responses: "200": $ref: '#/components/responses/BatchCreateTableVersionsResponse' "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: Atomically create versions for multiple tables tags: - Table - Metadata x-content-type: application/json x-accepts: - application/json /v1/table/batch-commit: parameters: - $ref: '#/components/parameters/delimiter' post: description: | Atomically commit a batch of table operations. This is a generalized version of `BatchCreateTableVersions` that supports mixed operation types within a single atomic transaction at the metadata layer. Supported operation types: - `DeclareTable`: Declare (reserve) a new table - `CreateTableVersion`: Create a new version entry for a table - `DeleteTableVersions`: Delete version ranges from a table - `DeregisterTable`: Deregister (soft-delete) a table All operations are committed atomically: either all succeed or none are applied. operationId: BatchCommitTables parameters: - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/BatchCommitTablesRequest' required: true responses: "200": $ref: '#/components/responses/BatchCommitTablesResponse' "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: Atomically commit a batch of mixed table operations tags: - Table - Metadata - Transaction x-content-type: application/json x-accepts: - application/json /v1/table/{id}/alter_columns: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Modify existing columns in table `id`, such as renaming or changing data types. operationId: AlterTableAlterColumns parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/AlterTableAlterColumnsRequest' required: true responses: "200": $ref: '#/components/responses/AlterTableAlterColumnsResponse' "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: Modify existing columns tags: - Table - Metadata x-content-type: application/json x-accepts: - application/json /v1/table/{id}/update_field_metadata: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Update the Arrow field (column) metadata for table `id`. Each entry targets a field by `path` and merges the provided key-value pairs into that field's existing metadata, or replaces it when `replace` is true. A null metadata value deletes that key. operationId: UpdateFieldMetadata parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateFieldMetadataRequest' required: true responses: "200": $ref: '#/components/responses/UpdateFieldMetadataResponse' "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 per-field metadata tags: - Table - Metadata x-content-type: application/json x-accepts: - application/json /v1/table/{id}/drop_columns: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Remove specified columns from table `id`. operationId: AlterTableDropColumns parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/AlterTableDropColumnsRequest' required: true responses: "200": $ref: '#/components/responses/AlterTableDropColumnsResponse' "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: Remove columns from table tags: - Table - Metadata x-content-type: application/json x-accepts: - application/json /v1/table/{id}/stats: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Get statistics for table `id`, including row counts, data sizes, and column statistics. operationId: GetTableStats parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/GetTableStatsRequest' required: true responses: "200": $ref: '#/components/responses/GetTableStatsResponse' "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 table statistics tags: - Table - Metadata x-content-type: application/json x-accepts: - application/json /v1/table/{id}/insert: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' - $ref: '#/components/parameters/branch' - description: | How the insert should behave. Case insensitive, supports both PascalCase and snake_case. Valid values are: - Append (default): insert data to the existing table - Overwrite: remove all data in the table and then insert data to it explode: true in: query name: mode required: false schema: default: append type: string style: form post: description: | Insert new records into table `id`. For tables that have been declared but not yet created on storage (is_only_declared=true), this operation will create the table with the provided data. REST NAMESPACE ONLY REST namespace uses Arrow IPC stream as the request body. It passes in the `InsertIntoTableRequest` information in the following way: - `id`: pass through path parameter of the same name - `mode`: pass through query parameter of the same name operationId: InsertIntoTable parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' - $ref: '#/components/parameters/branch' - description: | How the insert should behave. Case insensitive, supports both PascalCase and snake_case. Valid values are: - Append (default): insert data to the existing table - Overwrite: remove all data in the table and then insert data to it explode: true in: query name: mode required: false schema: default: append type: string style: form requestBody: content: application/vnd.apache.arrow.stream: schema: format: binary type: string description: Arrow IPC stream containing the records to insert 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/vnd.apache.arrow.stream x-accepts: - application/json /v1/table/{id}/merge_insert: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' - $ref: '#/components/parameters/branch' - description: Lance field path to use for matching rows. Nested fields use dot-separated segments; use backtick-quoted segments for literal dots and double backticks inside quoted segments. Use canonical full paths for display and errors; leaf names alone only identify top-level fields; invalid or unresolved paths should return InvalidInput or TableColumnNotFound. explode: true in: query name: "on" required: true schema: minLength: 1 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: "The row is updated (similar to UpdateAll) only for rows where\ \ the SQL expression evaluates to true. Field references must use Lance field\ \ path syntax: nested fields use dot-separated segments, literal dots require\ \ backtick-quoted segments, and backticks inside quoted segments are doubled." explode: true in: query name: when_matched_update_all_filt required: false schema: type: string 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 - description: Delete all rows from target table that don't match a row in the source table explode: true in: query name: when_not_matched_by_source_delete required: false schema: default: false type: boolean style: form - description: "Delete rows from the target table if there is no match AND the\ \ SQL expression evaluates to true. Field references must use Lance field\ \ path syntax: nested fields use dot-separated segments, literal dots require\ \ backtick-quoted segments, and backticks inside quoted segments are doubled." explode: true in: query name: when_not_matched_by_source_delete_filt required: false schema: type: string style: form - description: "Timeout for the operation (e.g., \"30s\", \"5m\")" explode: true in: query name: timeout required: false schema: type: string style: form - description: Whether to use index for matching rows explode: true in: query name: use_index required: false schema: default: false type: boolean style: form post: description: | Performs a merge insert (upsert) operation on table `id`. This operation updates existing rows based on a matching column and inserts new rows that don't match. It returns the number of rows inserted and updated. For tables that have been declared but not yet created on storage (is_only_declared=true), this operation will create the table with the provided data (since there are no existing rows to merge with). REST NAMESPACE ONLY REST namespace uses Arrow IPC stream as the request body. It passes in the `MergeInsertIntoTableRequest` information in the following way: - `id`: pass through path parameter of the same name - `on`: pass through query parameter of the same name - `when_matched_update_all`: pass through query parameter of the same name - `when_matched_update_all_filt`: pass through query parameter of the same name - `when_not_matched_insert_all`: pass through query parameter of the same name - `when_not_matched_by_source_delete`: pass through query parameter of the same name - `when_not_matched_by_source_delete_filt`: pass through query parameter of the same name operationId: MergeInsertIntoTable parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' - $ref: '#/components/parameters/branch' - description: Lance field path to use for matching rows. Nested fields use dot-separated segments; use backtick-quoted segments for literal dots and double backticks inside quoted segments. Use canonical full paths for display and errors; leaf names alone only identify top-level fields; invalid or unresolved paths should return InvalidInput or TableColumnNotFound. explode: true in: query name: "on" required: true schema: minLength: 1 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: "The row is updated (similar to UpdateAll) only for rows where\ \ the SQL expression evaluates to true. Field references must use Lance\ \ field path syntax: nested fields use dot-separated segments, literal dots\ \ require backtick-quoted segments, and backticks inside quoted segments\ \ are doubled." explode: true in: query name: when_matched_update_all_filt required: false schema: type: string 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 - description: Delete all rows from target table that don't match a row in the source table explode: true in: query name: when_not_matched_by_source_delete required: false schema: default: false type: boolean style: form - description: "Delete rows from the target table if there is no match AND the\ \ SQL expression evaluates to true. Field references must use Lance field\ \ path syntax: nested fields use dot-separated segments, literal dots require\ \ backtick-quoted segments, and backticks inside quoted segments are doubled." explode: true in: query name: when_not_matched_by_source_delete_filt required: false schema: type: string style: form - description: "Timeout for the operation (e.g., \"30s\", \"5m\")" explode: true in: query name: timeout required: false schema: type: string style: form - description: Whether to use index for matching rows explode: true in: query name: use_index required: false schema: default: false type: boolean style: form requestBody: content: application/vnd.apache.arrow.stream: schema: format: binary type: string description: Arrow IPC stream 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/vnd.apache.arrow.stream x-accepts: - application/json /v1/table/{id}/update: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Update existing rows in table `id`. operationId: UpdateTable parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' 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' - $ref: '#/components/parameters/delimiter' post: description: | Delete rows from table `id`. operationId: DeleteFromTable parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' 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' - $ref: '#/components/parameters/delimiter' post: description: | Query table `id` with vector search, full text search and optional SQL filtering. Returns results in Arrow IPC file or stream format. REST NAMESPACE ONLY REST namespace returns the response as Arrow IPC file binary data instead of the `QueryTableResponse` JSON object. The REST response maps to the `QueryTableResponse` model as follows: - the Arrow IPC file binary body maps to `data` - response headers map to `context` via the `header.` prefix (see the `Context` schema) operationId: QueryTable parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' 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.file /v1/table/{id}/count_rows: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Count the number of rows in table `id` REST NAMESPACE ONLY REST namespace returns the response as a plain integer instead of the `CountTableRowsResponse` JSON object. The REST response maps to the `CountTableRowsResponse` model as follows: - the integer response body maps to `count` - response headers map to `context` via the `header.` prefix (see the `Context` schema) 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 - Data x-content-type: application/json x-accepts: - application/json /v1/table/{id}/create: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' - explode: true in: query name: mode required: false schema: type: string style: form - description: | Business logic properties managed by the namespace implementation outside Lance context. The map is translated to a single JSON-encoded query parameter such as `properties={"user":"alice","team":"eng"}`. explode: true in: query name: properties required: false schema: type: string style: form - description: | Storage options that configure overrides for writing table data and metadata during table creation. These are passed to Lance for the write path. The map is translated to a single JSON-encoded query parameter such as `storage_options={"aws_region":"us-east-1","timeout":"30s"}`. explode: true in: query name: storage_options required: false schema: type: string style: form post: description: | Create table `id` in the namespace with the given data in Arrow IPC stream. The schema of the Arrow IPC stream is used as the table schema. If the stream is empty, the API creates a new empty table. REST NAMESPACE ONLY REST namespace uses Arrow IPC stream as the request body. It passes in the `CreateTableRequest` information in the following way: - `id`: pass through path parameter of the same name - `mode`: pass through query parameter of the same name - `properties`: serialize as a single JSON-encoded query parameter such as `properties={"user":"alice","team":"eng"}`; these are business logic properties managed by the namespace implementation outside Lance context - `storage_options`: serialize as a single JSON-encoded query parameter such as `storage_options={"aws_region":"us-east-1","timeout":"30s"}`; these configure write-time overrides for data and metadata written during table creation operationId: CreateTable parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' - explode: true in: query name: mode required: false schema: type: string style: form - description: | Business logic properties managed by the namespace implementation outside Lance context. The map is translated to a single JSON-encoded query parameter such as `properties={"user":"alice","team":"eng"}`. explode: true in: query name: properties required: false schema: type: string style: form - description: | Storage options that configure overrides for writing table data and metadata during table creation. These are passed to Lance for the write path. The map is translated to a single JSON-encoded query parameter such as `storage_options={"aws_region":"us-east-1","timeout":"30s"}`. explode: true in: query name: storage_options required: false schema: type: string style: form requestBody: content: application/vnd.apache.arrow.stream: 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' "409": $ref: '#/components/responses/ConflictErrorResponse' "503": $ref: '#/components/responses/ServiceUnavailableErrorResponse' "5XX": $ref: '#/components/responses/ServerErrorResponse' summary: Create a table with the given name tags: - Table - Data x-content-type: application/vnd.apache.arrow.stream x-accepts: - application/json /v1/table/{id}/explain_plan: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Get the query execution plan for a query against table `id`. Returns a human-readable explanation of how the query will be executed. REST NAMESPACE ONLY REST namespace returns the response as a plain string instead of the `ExplainTableQueryPlanResponse` JSON object. operationId: ExplainTableQueryPlan parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/ExplainTableQueryPlanRequest' required: true responses: "200": $ref: '#/components/responses/ExplainTableQueryPlanResponse' "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 query execution plan explanation tags: - Table - Data x-content-type: application/json x-accepts: - application/json /v1/table/{id}/analyze_plan: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Analyze the query execution plan for a query against table `id`. Returns detailed statistics and analysis of the query execution plan. REST NAMESPACE ONLY REST namespace returns the response as a plain string instead of the `AnalyzeTableQueryPlanResponse` JSON object. operationId: AnalyzeTableQueryPlan parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/AnalyzeTableQueryPlanRequest' required: true responses: "200": $ref: '#/components/responses/AnalyzeTableQueryPlanResponse' "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: Analyze query execution plan tags: - Table - Data x-content-type: application/json x-accepts: - application/json /v1/table/{id}/add_columns: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Add new columns to table `id` using SQL expressions or default values. operationId: AlterTableAddColumns parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/AlterTableAddColumnsRequest' required: true responses: "200": $ref: '#/components/responses/AlterTableAddColumnsResponse' "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: Add new columns to table schema tags: - Table - Data x-content-type: application/json x-accepts: - application/json /v1/table/{id}/backfill_column: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Trigger an asynchronous backfill job for a computed column on table `id`. The column must be a virtual (UDF-backed) column. Returns a job ID for tracking. operationId: AlterTableBackfillColumns parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/AlterTableBackfillColumnsRequest' required: true responses: "202": $ref: '#/components/responses/AlterTableBackfillColumnsResponse' "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: Trigger an async column backfill job tags: - Table - Data x-content-type: application/json x-accepts: - application/json /v1/materialized_view/{id}/refresh: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Trigger an asynchronous refresh job for materialized view `id`. Returns a job ID for tracking. operationId: RefreshMaterializedView parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/RefreshMaterializedViewRequest' required: false responses: "202": $ref: '#/components/responses/RefreshMaterializedViewResponse' "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: Trigger an async materialized view refresh tags: - MaterializedView - Data x-content-type: application/json x-accepts: - application/json /v1/materialized_view/{id}/create: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Create a materialized view at identifier `id`. The view may be query-backed, UDTF-backed, or chunker-backed, controlled by the `kind` discriminator. operationId: CreateMaterializedView parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateMaterializedViewRequest' required: true responses: "201": $ref: '#/components/responses/CreateMaterializedViewResponse' "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: Create a materialized view tags: - MaterializedView - Data x-content-type: application/json x-accepts: - application/json /v1/table/{id}/create_index: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Create an index on a table field for faster search operations. Supports vector indexes (IVF_FLAT, IVF_HNSW_SQ, IVF_PQ, etc.) and scalar indexes (BTREE, BITMAP, FTS, etc.). Index creation is handled asynchronously. Use the `ListTableIndices` and `DescribeTableIndexStats` operations to monitor index creation progress. operationId: CreateTableIndex parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' 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 - Index - Metadata x-content-type: application/json x-accepts: - application/json /v1/table/{id}/create_scalar_index: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Create a scalar index on a table field for faster filtering operations. Supports scalar indexes (BTREE, BITMAP, LABEL_LIST, FTS, etc.). This is an alias for CreateTableIndex specifically for scalar indexes. Index creation is handled asynchronously. Use the `ListTableIndices` and `DescribeTableIndexStats` operations to monitor index creation progress. operationId: CreateTableScalarIndex parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' 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 - Index - Metadata x-content-type: application/json x-accepts: - application/json /v1/table/{id}/index/list: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' 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' - $ref: '#/components/parameters/delimiter' 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 - Index - Metadata x-content-type: application/json x-accepts: - application/json /v1/table/{id}/index/{index_name}/stats: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' - 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' - $ref: '#/components/parameters/delimiter' - 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 table index statistics tags: - Table - Index - Metadata x-content-type: application/json x-accepts: - application/json /v1/table/{id}/index/{index_name}/drop: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' - $ref: '#/components/parameters/branch' - description: Name of the index to drop explode: false in: path name: index_name required: true schema: type: string style: simple post: description: | Drop the specified index from table `id`. REST NAMESPACE ONLY REST namespace does not use a request body for this operation. The `DropTableIndexRequest` information is passed in the following way: - `id`: pass through path parameter of the same name - `index_name`: pass through path parameter of the same name operationId: DropTableIndex parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' - $ref: '#/components/parameters/branch' - description: Name of the index to drop explode: false in: path name: index_name required: true schema: type: string style: simple responses: "200": $ref: '#/components/responses/DropTableIndexResponse' "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 specific index tags: - Table - Index - Metadata x-accepts: - application/json /v1/table/{id}/tags/list: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' - $ref: '#/components/parameters/page_token' - $ref: '#/components/parameters/limit' post: description: | List all tags that have been created for table `id`. Returns a map of tag names to their corresponding version numbers and metadata. REST NAMESPACE ONLY REST namespace does not use a request body for this operation. The `ListTableTagsRequest` information is passed in the following way: - `id`: pass through path parameter of the same name - `page_token`: pass through query parameter of the same name - `limit`: pass through query parameter of the same name operationId: ListTableTags parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' - $ref: '#/components/parameters/page_token' - $ref: '#/components/parameters/limit' responses: "200": $ref: '#/components/responses/ListTableTagsResponse' "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 all tags for a table tags: - Table - Tag - Metadata x-accepts: - application/json /v1/table/{id}/tags/version: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Get the version number that a specific tag points to for table `id`. operationId: GetTableTagVersion parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/GetTableTagVersionRequest' required: true responses: "200": $ref: '#/components/responses/GetTableTagVersionResponse' "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 version for a specific tag tags: - Table - Tag - Metadata x-content-type: application/json x-accepts: - application/json /v1/table/{id}/declare: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Declare a table with the given name without touching storage. This is a metadata-only operation that records the table existence and sets up aspects like access control. For DirectoryNamespace implementation, this creates a `.lance-reserved` file in the table directory to mark the table's existence without creating actual Lance data files. operationId: DeclareTable parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/DeclareTableRequest' required: true responses: "200": $ref: '#/components/responses/DeclareTableResponse' "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: Declare a table tags: - Table - Metadata x-content-type: application/json x-accepts: - application/json /v1/table/{id}/tags/create: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Create a new tag for table `id` that points to a specific version. operationId: CreateTableTag parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateTableTagRequest' required: true responses: "200": $ref: '#/components/responses/CreateTableTagResponse' "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: Create a new tag tags: - Table - Tag - Metadata x-content-type: application/json x-accepts: - application/json /v1/table/{id}/tags/delete: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Delete an existing tag from table `id`. operationId: DeleteTableTag parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/DeleteTableTagRequest' required: true responses: "200": $ref: '#/components/responses/DeleteTableTagResponse' "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 a tag tags: - Table - Tag - Metadata x-content-type: application/json x-accepts: - application/json /v1/table/{id}/tags/update: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Update an existing tag for table `id` to point to a different version. operationId: UpdateTableTag parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateTableTagRequest' required: true responses: "200": $ref: '#/components/responses/UpdateTableTagResponse' "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 a tag to point to a different version tags: - Table - Tag - Metadata x-content-type: application/json x-accepts: - application/json /v1/table/{id}/branches/list: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' - $ref: '#/components/parameters/page_token' - $ref: '#/components/parameters/limit' post: description: | List all branches that have been created for table `id`. Returns a map of branch names to their contents. REST NAMESPACE ONLY REST namespace does not use a request body for this operation. The `ListTableBranchesRequest` information is passed in the following way: - `id`: pass through path parameter of the same name - `page_token`: pass through query parameter of the same name - `limit`: pass through query parameter of the same name operationId: ListTableBranches parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' - $ref: '#/components/parameters/page_token' - $ref: '#/components/parameters/limit' responses: "200": $ref: '#/components/responses/ListTableBranchesResponse' "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 all branches for a table tags: - Table - Branch - Metadata x-accepts: - application/json /v1/table/{id}/branches/create: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Create a new branch for table `id` starting from a source ref (another branch and/or version), defaulting to the latest version of the main branch. operationId: CreateTableBranch parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateTableBranchRequest' required: true responses: "200": $ref: '#/components/responses/CreateTableBranchResponse' "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: Create a new branch tags: - Table - Branch - Metadata x-content-type: application/json x-accepts: - application/json /v1/table/{id}/branches/delete: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' post: description: | Delete an existing branch from table `id`. operationId: DeleteTableBranch parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/delimiter' requestBody: content: application/json: schema: $ref: '#/components/schemas/DeleteTableBranchRequest' required: true responses: "200": $ref: '#/components/responses/DeleteTableBranchResponse' "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 a branch tags: - Table - Branch - Metadata x-content-type: application/json 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: description: | Alter a transaction with a list of actions such as setting status or properties. The server should either succeed and apply all actions, or fail and apply no action. 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: type: string style: form branch: description: | Optional branch to target. When not specified, the main branch is used. Used by branch-scoped operations that cannot carry a `branch` field in their request body (Arrow IPC stream and bodyless operations). Operations with a JSON request body carry `branch` as a body field instead. explode: true in: query name: branch required: false schema: type: string style: form page_token: description: Pagination token from a previous request explode: true in: query name: page_token required: false schema: $ref: '#/components/schemas/PageToken' style: form limit: description: Maximum number of items to return explode: true in: query name: limit required: false schema: $ref: '#/components/schemas/PageLimit' style: form with_table_uri: description: Whether to include the table URI in the response explode: true in: query name: with_table_uri required: false schema: default: false type: boolean style: form include_declared: description: | When true (default), includes tables that have been declared in the namespace but not yet created on storage, in addition to tables that have been created. When false, only tables with storage components are returned. explode: true in: query name: include_declared required: false schema: default: true type: boolean style: form load_detailed_metadata: description: | Whether to load detailed metadata that requires opening the dataset. When false (default), only `location` is required in the response. When true, the response includes additional metadata such as `version`, `schema`, and `stats`. explode: true in: query name: load_detailed_metadata required: false schema: default: false type: boolean style: form check_declared: description: | Whether to check if the table exists only as a namespace declaration without storage data. When false (default), the response should return null for `is_only_declared` unless another option such as `load_detailed_metadata` requires the check. explode: true in: query name: check_declared required: false schema: default: false type: boolean 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 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 CountTableRowsResponse: content: application/json: schema: description: | Row count serialized transparently as a bare number for the REST namespace. The CountTableRowsResponse object model is used by non-REST interfaces. format: int64 minimum: 0 type: integer 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 DescribeTransactionResponse: content: application/json: schema: $ref: '#/components/schemas/DescribeTransactionResponse' description: Response of DescribeTransaction 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.file: schema: format: binary type: string description: Query results in Arrow IPC file format CreateTableIndexResponse: content: application/json: schema: $ref: '#/components/schemas/CreateTableIndexResponse' description: Index created successfully CreateTableScalarIndexResponse: content: application/json: schema: $ref: '#/components/schemas/CreateTableScalarIndexResponse' 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 ListTableTagsResponse: content: application/json: schema: $ref: '#/components/schemas/ListTableTagsResponse' description: List of table tags GetTableTagVersionResponse: content: application/json: schema: $ref: '#/components/schemas/GetTableTagVersionResponse' description: Tag version information CreateTableTagResponse: content: application/json: schema: $ref: '#/components/schemas/CreateTableTagResponse' description: Create tag response DeleteTableTagResponse: content: application/json: schema: $ref: '#/components/schemas/DeleteTableTagResponse' description: Delete tag response UpdateTableTagResponse: content: application/json: schema: $ref: '#/components/schemas/UpdateTableTagResponse' description: Update tag response ListTableBranchesResponse: content: application/json: schema: $ref: '#/components/schemas/ListTableBranchesResponse' description: List of table branches CreateTableBranchResponse: content: application/json: schema: $ref: '#/components/schemas/CreateTableBranchResponse' description: Create branch response DeleteTableBranchResponse: content: application/json: schema: $ref: '#/components/schemas/DeleteTableBranchResponse' description: Delete branch response ListTableVersionsResponse: content: application/json: schema: $ref: '#/components/schemas/ListTableVersionsResponse' description: List of table versions CreateTableVersionResponse: content: application/json: schema: $ref: '#/components/schemas/CreateTableVersionResponse' description: Result of creating a table version DescribeTableVersionResponse: content: application/json: schema: $ref: '#/components/schemas/DescribeTableVersionResponse' description: Table version information BatchDeleteTableVersionsResponse: content: application/json: schema: $ref: '#/components/schemas/BatchDeleteTableVersionsResponse' description: Result of deleting table version records BatchCreateTableVersionsResponse: content: application/json: schema: $ref: '#/components/schemas/BatchCreateTableVersionsResponse' description: Result of atomically creating table versions BatchCommitTablesResponse: content: application/json: schema: $ref: '#/components/schemas/BatchCommitTablesResponse' description: Result of atomically committing a batch of mixed table operations ExplainTableQueryPlanResponse: content: application/json: schema: description: Human-readable query execution plan type: string description: Query execution plan explanation AnalyzeTableQueryPlanResponse: content: application/json: schema: description: Human-readable query execution plan analysis type: string description: Query execution plan analysis AlterTableAddColumnsResponse: content: application/json: schema: $ref: '#/components/schemas/AlterTableAddColumnsResponse' description: Add columns operation result UpdateFieldMetadataResponse: content: application/json: schema: $ref: '#/components/schemas/UpdateFieldMetadataResponse' description: Field metadata update result AlterTableAlterColumnsResponse: content: application/json: schema: $ref: '#/components/schemas/AlterTableAlterColumnsResponse' description: Alter columns operation result AlterTableBackfillColumnsResponse: content: application/json: schema: $ref: '#/components/schemas/AlterTableBackfillColumnsResponse' description: Backfill job accepted RefreshMaterializedViewResponse: content: application/json: schema: $ref: '#/components/schemas/RefreshMaterializedViewResponse' description: Refresh job accepted CreateMaterializedViewResponse: content: application/json: schema: $ref: '#/components/schemas/CreateMaterializedViewResponse' description: Materialized view created AlterTableDropColumnsResponse: content: application/json: schema: $ref: '#/components/schemas/AlterTableDropColumnsResponse' description: Drop columns operation result GetTableStatsResponse: content: application/json: schema: $ref: '#/components/schemas/GetTableStatsResponse' description: Table statistics RestoreTableResponse: content: application/json: schema: $ref: '#/components/schemas/RestoreTableResponse' description: Table restore operation result RenameTableResponse: content: application/json: schema: $ref: '#/components/schemas/RenameTableResponse' description: Table rename operation result DropTableIndexResponse: content: application/json: schema: $ref: '#/components/schemas/DropTableIndexResponse' description: Index drop operation result DeclareTableResponse: content: application/json: schema: $ref: '#/components/schemas/DeclareTableResponse' description: Table properties result when declaring a table 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: Common JSON error response model example: code: 4 instance: /v1/table/production$users/describe context: key: context detail: The table may have been dropped or renamed error: Table 'users' not found in namespace 'production' properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. error: description: "A brief, human-readable message about the error." example: Table 'users' not found in namespace 'production' type: string code: description: | Lance Namespace error code identifying the error type. Error codes: 0 - Unsupported: Operation not supported by this backend 1 - NamespaceNotFound: The specified namespace does not exist 2 - NamespaceAlreadyExists: A namespace with this name already exists 3 - NamespaceNotEmpty: Namespace contains tables or child namespaces 4 - TableNotFound: The specified table does not exist 5 - TableAlreadyExists: A table with this name already exists 6 - TableIndexNotFound: The specified table index does not exist 7 - TableIndexAlreadyExists: A table index with this name already exists 8 - TableTagNotFound: The specified table tag does not exist 9 - TableTagAlreadyExists: A table tag with this name already exists 10 - TransactionNotFound: The specified transaction does not exist 11 - TableVersionNotFound: The specified table version does not exist 12 - TableColumnNotFound: The specified table field does not exist 13 - InvalidInput: Malformed request or invalid parameters 14 - ConcurrentModification: Optimistic concurrency conflict 15 - PermissionDenied: User lacks permission for this operation 16 - Unauthenticated: Authentication credentials are missing or invalid 17 - ServiceUnavailable: Service is temporarily unavailable 18 - Internal: Unexpected server/implementation error 19 - InvalidTableState: Table is in an invalid state for the operation 20 - TableSchemaValidationError: Table schema validation failed 21 - Throttling: Request rate limit exceeded 22 - TableBranchNotFound: The specified table branch does not exist 23 - TableBranchAlreadyExists: A table branch with this name already exists example: 4 minimum: 0 type: integer detail: description: | An optional human-readable explanation of the error. This can be used to record additional information such as stack trace. example: The table may have been dropped or renamed type: string instance: description: | A string that identifies the specific occurrence of the error. This can be a URI, a request or response ID, or anything that the implementation can recognize to trace specific occurrence of the error. example: /v1/table/production$users/describe type: string required: - code Identity: description: | Identity information of a request. example: api_key: api_key auth_token: auth_token properties: api_key: description: | API key for authentication. REST NAMESPACE ONLY This is passed via the `x-api-key` header. type: string auth_token: description: | Bearer token for authentication. REST NAMESPACE ONLY This is passed via the `Authorization` header with the Bearer scheme (e.g., `Bearer `). type: string Context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. CreateNamespaceRequest: example: mode: mode identity: api_key: api_key auth_token: auth_token context: key: context id: - id - id properties: key: properties properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: items: type: string type: array mode: description: | There are three modes when trying to create a namespace, to differentiate the behavior when a namespace of the same name already exists. Case insensitive, supports both PascalCase and snake_case. Valid values are: * Create: the operation fails with 409. * ExistOk: 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. type: string properties: additionalProperties: type: string description: | Properties stored on the namespace, if supported by the implementation. CreateNamespaceResponse: example: transaction_id: transaction_id context: key: context properties: key: properties properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. transaction_id: description: Optional transaction identifier type: string properties: additionalProperties: type: string description: | Properties after the namespace is created. 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. ListNamespacesRequest: properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: items: type: string type: array page_token: description: | An opaque token that allows pagination for list operations (e.g. ListNamespaces). For an initial request of a list operation, if the implementation cannot return all items in one response, or if there are more items than the page limit specified in the request, the implementation must return a page token in the response, indicating there are more results available. After the initial request, the value of the page token from each response must be used as the page token value for the next request. Caller must interpret either `null`, missing value or empty string value of the page token from the implementation's response as the end of the listing results. type: string nullable: true limit: description: | An inclusive upper bound of the number of results that a caller will receive. type: integer nullable: true ListNamespacesResponse: example: context: key: context page_token: page_token namespaces: - namespaces - namespaces properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. namespaces: description: | The list of names of the child namespaces relative to the parent namespace `id` in the request. items: type: string type: array uniqueItems: true page_token: description: | An opaque token that allows pagination for list operations (e.g. ListNamespaces). For an initial request of a list operation, if the implementation cannot return all items in one response, or if there are more items than the page limit specified in the request, the implementation must return a page token in the response, indicating there are more results available. After the initial request, the value of the page token from each response must be used as the page token value for the next request. Caller must interpret either `null`, missing value or empty string value of the page token from the implementation's response as the end of the listing results. type: string nullable: true required: - namespaces DescribeNamespaceRequest: example: identity: api_key: api_key auth_token: auth_token context: key: context id: - id - id properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: items: type: string type: array DescribeNamespaceResponse: example: context: key: context properties: owner: Ralph created_at: "1452120468" properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. 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 DropNamespaceRequest: example: mode: mode identity: api_key: api_key auth_token: auth_token context: key: context id: - id - id behavior: behavior properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: 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. Case insensitive, supports both PascalCase and snake_case. Valid values are: - 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. type: string behavior: description: | The behavior for dropping a namespace. Case insensitive, supports both PascalCase and snake_case. Valid values are: - 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. type: string DropNamespaceResponse: example: transaction_id: - transaction_id - transaction_id context: key: context properties: key: properties properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. properties: additionalProperties: type: string description: | If the implementation does not support namespace properties, it should return null for this field. Otherwise it should return the properties. transaction_id: description: | If present, indicating the operation is long running and should be tracked using DescribeTransaction items: type: string type: array NamespaceExistsRequest: example: identity: api_key: api_key auth_token: auth_token context: key: context id: - id - id properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: items: type: string type: array NamespaceExistsResponse: description: | Response for a namespace existence check. The REST namespace does not transmit this object directly (see the NamespaceExists operation for how the status-code response maps to it). It is the standard data model for the LanceNamespace interfaces (e.g. Java, Python). properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. PageToken: description: | An opaque token that allows pagination for list operations (e.g. ListNamespaces). For an initial request of a list operation, if the implementation cannot return all items in one response, or if there are more items than the page limit specified in the request, the implementation must return a page token in the response, indicating there are more results available. After the initial request, the value of the page token from each response must be used as the page token value for the next request. Caller must interpret either `null`, missing value or empty string value of the page token from the implementation's response as the end of the listing results. type: string nullable: true PageLimit: description: | An inclusive upper bound of the number of results that a caller will receive. type: integer nullable: true RegisterTableRequest: example: mode: mode identity: api_key: api_key auth_token: auth_token context: key: context location: location id: - id - id properties: key: properties properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: items: type: string type: array location: type: string mode: description: | There are two modes when trying to register a table, to differentiate the behavior when a table of the same name already exists. Case insensitive, supports both PascalCase and snake_case. Valid values are: * Create (default): the operation fails with 409. * Overwrite: the existing table registration is replaced with the new registration. type: string properties: additionalProperties: type: string description: | Properties stored on the table, if supported by the implementation. required: - location RegisterTableResponse: example: transaction_id: transaction_id context: key: context location: location properties: key: properties properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. transaction_id: description: Optional transaction identifier type: string location: type: string properties: additionalProperties: type: string description: | If the implementation does not support table properties, it should return null for this field. Otherwise, it should return the properties. ListTablesRequest: properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: items: type: string type: array page_token: description: | An opaque token that allows pagination for list operations (e.g. ListNamespaces). For an initial request of a list operation, if the implementation cannot return all items in one response, or if there are more items than the page limit specified in the request, the implementation must return a page token in the response, indicating there are more results available. After the initial request, the value of the page token from each response must be used as the page token value for the next request. Caller must interpret either `null`, missing value or empty string value of the page token from the implementation's response as the end of the listing results. type: string nullable: true limit: description: | An inclusive upper bound of the number of results that a caller will receive. type: integer nullable: true include_declared: default: true description: | When true (default), includes tables that have been declared in the namespace but not yet created on storage, in addition to tables that have been created. When false, only tables with storage components are returned. type: boolean ListTablesResponse: example: tables: - tables - tables context: key: context page_token: page_token properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. tables: description: | The list of names of all the tables under the connected namespace implementation. This should recursively list all the tables in all child namespaces. Each string in the list is the full identifier in string form. items: type: string type: array uniqueItems: true page_token: description: | An opaque token that allows pagination for list operations (e.g. ListNamespaces). For an initial request of a list operation, if the implementation cannot return all items in one response, or if there are more items than the page limit specified in the request, the implementation must return a page token in the response, indicating there are more results available. After the initial request, the value of the page token from each response must be used as the page token value for the next request. Caller must interpret either `null`, missing value or empty string value of the page token from the implementation's response as the end of the listing results. type: string nullable: true required: - tables DescribeTableRequest: example: identity: api_key: api_key auth_token: auth_token context: key: context check_declared: false id: - id - id tag: tag version: 0 branch: branch with_table_uri: false load_detailed_metadata: true vend_credentials: true properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: items: type: string type: array version: description: | Version of the table to describe. If not specified, server should resolve it to the latest version. format: int64 minimum: 0 type: integer tag: description: | Tag name to describe the table at. If specified, the server should resolve the tag to a version number and describe that version. Cannot be used together with `version` or `branch`. type: string branch: description: | Branch to target. When not specified, the main branch is used. type: string with_table_uri: default: false description: | Whether to include the table URI in the response. Default is false. type: boolean load_detailed_metadata: description: | Whether to load detailed metadata that requires opening the dataset. When true, the response must include all detailed metadata such as `version`, `schema`, and `stats` which require reading the dataset. When not set, the implementation can decide whether to return detailed metadata and which parts of detailed metadata to return. type: boolean check_declared: default: false description: | Whether to check if the table exists only as a namespace declaration without storage data. Default is false. When true, the response should populate `is_only_declared`. When false, the implementation should return null for `is_only_declared` unless another option such as `load_detailed_metadata` requires checking declared-only table state. type: boolean vend_credentials: description: | Whether to include vended credentials in the response `storage_options`. When true, the implementation should provide vended credentials for accessing storage. When not set, the implementation can decide whether to return vended credentials. type: boolean 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 metadata: key: metadata table_uri: table_uri version: 0 managed_versioning: true is_only_declared: true stats: num_deleted_rows: 0 num_fragments: 0 context: key: context namespace: - namespace - namespace location: location table: table properties: owner: Ralph created_at: "1452120468" storage_options: key: storage_options properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. table: description: | Table name. Only populated when `load_detailed_metadata` is true. type: string namespace: description: | The namespace identifier as a list of parts. Only populated when `load_detailed_metadata` is true. items: type: string type: array version: description: | Table version number. Only populated when `load_detailed_metadata` is true. format: int64 minimum: 0 type: integer location: description: | Table storage location (e.g., S3/GCS path). type: string table_uri: description: | Table URI. Unlike location, this field must be a complete and valid URI. Only returned when `with_table_uri` is true. type: string schema: $ref: '#/components/schemas/JsonArrowSchema' storage_options: additionalProperties: type: string description: | Configuration options to be used to access storage. The available options depend on the type of storage in use. These will be passed directly to Lance to initialize storage access. When `vend_credentials` is true, this field may include vended credentials. If the vended credentials are temporary, the `expires_at_millis` key should be included to indicate the millisecond timestamp when the credentials expire. stats: $ref: '#/components/schemas/TableBasicStats' metadata: additionalProperties: type: string description: | Optional table metadata as key-value pairs. This records the information of the table and requires loading the table. It is only populated when `load_detailed_metadata` is true. properties: additionalProperties: type: string default: {} description: "Properties stored on the table, if supported by the server.\ \ This records the information managed by the namespace. If the server\ \ does not support table properties, it should return null for this field.\ \ If table properties are supported, but none are set, it should return\ \ an empty object." example: owner: Ralph created_at: "1452120468" nullable: true managed_versioning: description: | When true, the caller should use namespace table version operations (CreateTableVersion, BatchCreateTableVersions, DescribeTableVersion, ListTableVersions, BatchDeleteTableVersions) to manage table versions instead of relying on Lance's native version management. type: boolean is_only_declared: description: | When true, indicates that the table has been declared in the namespace but not yet created on storage. This means the table exists in the namespace but has no data files on the underlying storage. When false, the table has storage components (data and metadata files). When null, the implementation did not check whether the table is only declared. Clients should treat an omitted value as null. Implementations should populate this field when `check_declared` is true or another option such as `load_detailed_metadata` requires checking declared-only table state. Operations like describe_table with load_detailed_metadata=true may fail for declared-only tables. type: boolean nullable: true TableBasicStats: example: num_deleted_rows: 0 num_fragments: 0 properties: num_deleted_rows: description: Number of deleted rows in the table minimum: 0 type: integer num_fragments: description: Number of fragments in the table minimum: 0 type: integer required: - num_deleted_rows - num_fragments CountTableRowsRequest: example: predicate: predicate identity: api_key: api_key auth_token: auth_token context: key: context id: - id - id version: 0 branch: branch properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: items: type: string type: array version: description: | Version of the table to describe. If not specified, server should resolve it to the latest version. format: int64 minimum: 0 type: integer branch: description: | Branch to target. When not specified, the main branch is used. type: string predicate: description: | Optional SQL predicate to filter rows for counting. Field references must use Lance field path syntax: nested fields use dot-separated segments, literal dots require backtick-quoted segments, and backticks inside quoted segments are doubled. type: string CountTableRowsResponse: description: | Response containing the count of rows. The REST namespace does not transmit this object directly (see the CountTableRows operation for how the bare-number response maps to it). It is the standard data model for the LanceNamespace interfaces (e.g. Java, Python). properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. count: description: The count of rows. format: int64 minimum: 0 type: integer InsertIntoTableRequest: description: | Request for inserting records into a table, excluding the Arrow IPC stream. properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: items: type: string type: array branch: description: | Branch to target. When not specified, the main branch is used. type: string mode: default: append description: | How the insert should behave. Case insensitive, supports both PascalCase and snake_case. Valid values are: - Append (default): insert data to the existing table - Overwrite: remove all data in the table and then insert data to it type: string InsertIntoTableResponse: description: Response from inserting records into a table example: transaction_id: transaction_id num_inserted_rows: 0 context: key: context version: 0 properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. transaction_id: description: Optional transaction identifier type: string num_inserted_rows: description: Number of rows inserted format: int64 minimum: 0 type: integer version: description: The commit version associated with the operation format: int64 minimum: 0 type: integer MergeInsertIntoTableRequest: description: | Request for merging or inserting records into a table, excluding the Arrow IPC stream. properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: items: type: string type: array branch: description: | Branch to target. When not specified, the main branch is used. type: string "on": description: Lance field path to use for matching rows. Nested fields use dot-separated segments; use backtick-quoted segments for literal dots and double backticks inside quoted segments. Use canonical full paths for display and errors; leaf names alone only identify top-level fields; invalid or unresolved paths should return InvalidInput or TableColumnNotFound. minLength: 1 type: string when_matched_update_all: default: false description: Update all columns when rows match type: boolean when_matched_update_all_filt: description: "The row is updated (similar to UpdateAll) only for rows where\ \ the SQL expression evaluates to true. Field references must use Lance\ \ field path syntax: nested fields use dot-separated segments, literal\ \ dots require backtick-quoted segments, and backticks inside quoted segments\ \ are doubled." type: string when_not_matched_insert_all: default: false description: Insert all columns when rows don't match type: boolean when_not_matched_by_source_delete: default: false description: Delete all rows from target table that don't match a row in the source table type: boolean when_not_matched_by_source_delete_filt: description: "Delete rows from the target table if there is no match AND\ \ the SQL expression evaluates to true. Field references must use Lance\ \ field path syntax: nested fields use dot-separated segments, literal\ \ dots require backtick-quoted segments, and backticks inside quoted segments\ \ are doubled." type: string timeout: description: "Timeout for the operation (e.g., \"30s\", \"5m\")" type: string use_index: default: false description: Whether to use index for matching rows type: boolean MergeInsertIntoTableResponse: description: Response from merge insert operation example: transaction_id: transaction_id num_inserted_rows: 0 num_updated_rows: 0 context: key: context num_deleted_rows: 0 version: 0 properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. transaction_id: description: Optional transaction identifier type: string 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: description: | Each update consists of a field path 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. example: predicate: predicate identity: api_key: api_key auth_token: auth_token context: key: context id: - id - id updates: - - updates - updates - - updates - updates branch: branch properties: key: properties properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: items: type: string type: array branch: description: | Branch to target. When not specified, the main branch is used. type: string predicate: description: "Optional SQL predicate to filter rows for update. Field references\ \ must use Lance field path syntax: nested fields use dot-separated segments,\ \ literal dots require backtick-quoted segments, and backticks inside\ \ quoted segments are doubled." type: string nullable: true updates: description: "List of field updates as [field_path, expression] pairs. Field\ \ paths and expression references must use Lance field path syntax: nested\ \ fields use dot-separated segments, literal dots require backtick-quoted\ \ segments, and backticks inside quoted segments are doubled." items: items: type: string maxItems: 2 minItems: 2 type: array type: array properties: additionalProperties: type: string description: | Properties stored on the table, if supported by the implementation. required: - updates UpdateTableResponse: example: transaction_id: transaction_id updated_rows: 0 context: key: context version: 0 properties: key: properties properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. transaction_id: description: Optional transaction identifier type: string 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 properties: additionalProperties: type: string description: | If the implementation does not support table properties, it should return null for this field. Otherwise, it should return the properties. required: - updated_rows - version DeleteFromTableRequest: description: | Delete data from table based on a SQL predicate. Returns the number of rows that were deleted. example: predicate: predicate identity: api_key: api_key auth_token: auth_token context: key: context id: - id - id branch: branch properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: description: The namespace identifier items: type: string type: array branch: description: | Branch to target. When not specified, the main branch is used. type: string predicate: description: "SQL predicate to filter rows for deletion. Field references\ \ must use Lance field path syntax: nested fields use dot-separated segments,\ \ literal dots require backtick-quoted segments, and backticks inside\ \ quoted segments are doubled." type: string required: - predicate DeleteFromTableResponse: example: transaction_id: transaction_id context: key: context version: 0 properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. transaction_id: description: Optional transaction identifier type: string version: description: The commit version associated with the operation format: int64 minimum: 0 type: integer QueryTableRequest: example: ef: 0 offset: 0 columns: column_aliases: key: column_aliases column_names: - column_names - column_names vector_column: vector_column fast_search: true k: 0 upper_bound: 1.2315135 branch: branch 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: operator 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: operator max_expansions: 0 - fuzziness: 0 terms: terms column: column boost: 6.0274563 prefix_length: 0 operator: operator max_expansions: 0 distance_type: distance_type lower_bound: 3.6160767 identity: api_key: api_key auth_token: auth_token bypass_vector_index: true nprobes: 0 context: key: context vector: single_vector: - 1.0246457 - 1.0246457 multi_vector: - - 1.4894159 - 1.4894159 - - 1.4894159 - 1.4894159 id: - id - id properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: items: type: string type: array branch: description: | Branch to target. When not specified, the main branch is used. type: string bypass_vector_index: description: Whether to bypass vector index type: boolean columns: $ref: '#/components/schemas/QueryTableRequest_columns' distance_type: description: Distance metric to use type: string ef: description: Search effort parameter for HNSW index minimum: 0 type: integer fast_search: description: Whether to use fast search type: boolean filter: description: | Optional SQL filter expression. Field references in the expression must use Lance field path syntax: nested fields use dot-separated segments, literal dots require backtick-quoted segments, and backticks inside quoted segments are doubled. 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 type: number nprobes: description: Number of probes for IVF index minimum: 0 type: integer offset: description: Number of results to skip minimum: 0 type: integer prefilter: description: Whether to apply filtering before vector search type: boolean refine_factor: description: Refine factor for search format: int32 minimum: 0 type: integer upper_bound: description: Upper bound for search format: float type: number vector: $ref: '#/components/schemas/QueryTableRequest_vector' vector_column: description: Lance field path of the vector field to search. Nested fields use dot-separated segments; use backtick-quoted segments for literal dots and double backticks inside quoted segments. Use canonical full paths for display and errors; leaf names alone only identify top-level fields; invalid or unresolved paths should return InvalidInput or TableColumnNotFound. minLength: 1 type: string version: description: Table version to query format: int64 minimum: 0 type: integer with_row_id: description: "If true, return the row id as a column called `_rowid`" type: boolean required: - k - vector QueryTableResponse: description: | Query results. The REST namespace does not transmit this object directly (see the QueryTable operation for how the Arrow IPC binary response maps to it). It is the standard data model for the LanceNamespace interfaces (e.g. Java, Python). properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. data: description: Query results as Arrow IPC file binary data. format: binary type: string CreateTableIndexRequest: example: base_tokenizer: base_tokenizer column: column max_token_length: 0 language: language branch: branch index_type: index_type with_position: true lower_case: true distance_type: distance_type identity: api_key: api_key auth_token: auth_token context: key: context name: name ascii_folding: true id: - id - id remove_stop_words: true stem: true properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: items: type: string type: array branch: description: | Branch to target. When not specified, the main branch is used. type: string column: description: Lance field path to create the index on. Nested fields use dot-separated segments; use backtick-quoted segments for literal dots and double backticks inside quoted segments. Use canonical full paths for display and errors; leaf names alone only identify top-level fields; invalid or unresolved paths should return InvalidInput or TableColumnNotFound. minLength: 1 type: string index_type: description: "Type of index to create (e.g., BTREE, BITMAP, LABEL_LIST,\ \ IVF_FLAT, IVF_PQ, IVF_HNSW_SQ, FTS)" type: string name: description: "Optional name for the index. If not provided, a name will\ \ be auto-generated." type: string nullable: true distance_type: description: "Distance metric type for vector indexes (e.g., l2, cosine,\ \ dot)" type: string 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 CreateTableIndexResponse: description: Response for create index operation example: transaction_id: transaction_id context: key: context properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. transaction_id: description: Optional transaction identifier type: string CreateTableScalarIndexResponse: description: Response for create scalar index operation example: transaction_id: transaction_id context: key: context properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. transaction_id: description: Optional transaction identifier type: string ListTableIndicesRequest: example: identity: api_key: api_key auth_token: auth_token context: key: context page_token: page_token limit: 6 id: - id - id version: 0 branch: branch properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: 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 branch: description: | Branch to target. When not specified, the main branch is used. type: string page_token: description: | An opaque token that allows pagination for list operations (e.g. ListNamespaces). For an initial request of a list operation, if the implementation cannot return all items in one response, or if there are more items than the page limit specified in the request, the implementation must return a page token in the response, indicating there are more results available. After the initial request, the value of the page token from each response must be used as the page token value for the next request. Caller must interpret either `null`, missing value or empty string value of the page token from the implementation's response as the end of the listing results. type: string nullable: true limit: description: | An inclusive upper bound of the number of results that a caller will receive. type: integer nullable: true ListTableIndicesResponse: example: indexes: - index_uuid: index_uuid size_bytes: 0 columns: - columns - columns created_at: 2000-01-23T04:56:07.000+00:00 index_details: index_details num_indexed_rows: 0 num_segments: 0 index_type: index_type index_version: 0 num_unindexed_rows: 0 index_name: index_name status: status type_url: type_url - index_uuid: index_uuid size_bytes: 0 columns: - columns - columns created_at: 2000-01-23T04:56:07.000+00:00 index_details: index_details num_indexed_rows: 0 num_segments: 0 index_type: index_type index_version: 0 num_unindexed_rows: 0 index_name: index_name status: status type_url: type_url context: key: context page_token: page_token properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. indexes: description: List of indexes on the table items: $ref: '#/components/schemas/IndexContent' type: array page_token: description: | An opaque token that allows pagination for list operations (e.g. ListNamespaces). For an initial request of a list operation, if the implementation cannot return all items in one response, or if there are more items than the page limit specified in the request, the implementation must return a page token in the response, indicating there are more results available. After the initial request, the value of the page token from each response must be used as the page token value for the next request. Caller must interpret either `null`, missing value or empty string value of the page token from the implementation's response as the end of the listing results. type: string nullable: true required: - indexes IndexContent: example: index_uuid: index_uuid size_bytes: 0 columns: - columns - columns created_at: 2000-01-23T04:56:07.000+00:00 index_details: index_details num_indexed_rows: 0 num_segments: 0 index_type: index_type index_version: 0 num_unindexed_rows: 0 index_name: index_name status: status type_url: type_url properties: index_name: description: Name of the index type: string index_uuid: description: Unique identifier for the index type: string columns: description: "Canonical Lance field paths covered by this index. Nested\ \ fields use dot-separated segments; segments containing literal dots\ \ are backtick-quoted, and backticks inside quoted segments are doubled." items: minLength: 1 type: string type: array status: description: Current status of the index type: string index_type: description: "Friendly index type, e.g. IVF_PQ, BTREE. Unknown if no plugin\ \ recognizes the index." type: string type_url: description: "Protobuf type URL, a precise type identifier for the index." type: string num_indexed_rows: description: Number of live rows covered by the index. This does not count rows that are in the index but have since been deleted. format: int64 minimum: 0 type: integer num_unindexed_rows: description: Number of rows that are not indexed. format: int64 minimum: 0 type: integer size_bytes: description: Total index size in bytes across all segments. Null for indices predating file-size tracking. format: int64 minimum: 0 type: integer nullable: true num_segments: description: Number of index deltas/segments. format: int32 minimum: 0 type: integer created_at: description: Creation time for indexes. Null for legacy indices. format: date-time type: string nullable: true index_version: description: On-disk index format version. format: int32 minimum: 0 type: integer index_details: description: "Opaque, type-specific JSON with additional index details.\ \ For vector indices this carries metric/distance type, partitioning,\ \ and HNSW/PQ/SQ/RQ parameters." type: string nullable: true required: - columns - index_name - index_uuid - status DescribeTableIndexStatsRequest: example: identity: api_key: api_key auth_token: auth_token context: key: context id: - id - id version: 0 branch: branch index_name: index_name properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: items: type: string type: array version: description: Optional table version to get stats for format: int64 minimum: 0 type: integer nullable: true branch: description: | Branch to target. When not specified, the main branch is used. type: string index_name: description: Name of the index type: string DescribeTableIndexStatsResponse: example: num_indices: 0 distance_type: distance_type num_unindexed_rows: 0 context: key: context num_indexed_rows: 0 index_type: index_type properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. 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 num_indices: description: Number of indices format: int32 minimum: 0 type: integer nullable: true JsonArrowSchema: 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/JsonArrowField' type: array metadata: additionalProperties: type: string required: - fields JsonArrowField: 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/JsonArrowDataType' required: - name - nullable - type JsonArrowDataType: 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/JsonArrowField' 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 CreateTableRequest: description: | Request for creating a table, excluding the Arrow IPC stream. The table location and any credential vending behavior are determined by the implementation and returned in the response, rather than specified in this request. properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: items: type: string type: array mode: description: | There are three modes when trying to create a table, to differentiate the behavior when a table of the same name already exists. Case insensitive, supports both PascalCase and snake_case. Valid values are: * Create: the operation fails with 409. * ExistOk: the operation succeeds and the existing table is kept. * Overwrite: the existing table is dropped and a new table with this name is created. type: string properties: additionalProperties: type: string description: | Business logic properties stored and managed by the namespace implementation outside Lance context, if supported by the implementation. storage_options: additionalProperties: type: string description: | Storage options that configure overrides for writing table data and metadata during table creation. These are passed to Lance for the write path. CreateTableResponse: example: transaction_id: transaction_id context: key: context location: location version: 0 properties: owner: Ralph created_at: "1452120468" storage_options: key: storage_options properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. transaction_id: description: Optional transaction identifier type: string location: type: string version: format: int64 minimum: 0 type: integer storage_options: additionalProperties: type: string description: | Configuration options to be used to access storage. The available options depend on the type of storage in use. These will be passed directly to Lance to initialize storage access. properties: additionalProperties: type: string default: {} description: | Business logic properties stored and managed by the namespace implementation outside Lance context. If the implementation does not support table properties, it should return null for this field. example: owner: Ralph created_at: "1452120468" nullable: true DeclareTableRequest: description: | Request for declaring a table. example: identity: api_key: api_key auth_token: auth_token context: key: context location: location id: - id - id properties: key: properties vend_credentials: true properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: items: type: string type: array location: description: | Optional storage location for the table. If not provided, the namespace implementation should determine the table location. type: string vend_credentials: description: | Whether to include vended credentials in the response `storage_options`. When true, the implementation should provide vended credentials for accessing storage. When not set, the implementation can decide whether to return vended credentials. type: boolean properties: additionalProperties: type: string description: | Business logic properties stored and managed by the namespace implementation outside Lance context, if supported by the implementation. DeclareTableResponse: description: | Response for declaring a table. example: transaction_id: transaction_id context: key: context location: location properties: owner: Ralph created_at: "1452120468" managed_versioning: true storage_options: key: storage_options properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. transaction_id: description: Optional transaction identifier type: string location: type: string storage_options: additionalProperties: type: string description: | Configuration options to be used to access storage. The available options depend on the type of storage in use. These will be passed directly to Lance to initialize storage access. properties: additionalProperties: type: string default: {} description: | If the implementation does not support table properties, it should return null for this field. Otherwise it should return the properties. example: owner: Ralph created_at: "1452120468" nullable: true managed_versioning: description: | When true, the caller should use namespace table version operations (CreateTableVersion, BatchCreateTableVersions, DescribeTableVersion, ListTableVersions, BatchDeleteTableVersions) to manage table versions instead of relying on Lance's native version management. type: boolean TableExistsRequest: example: identity: api_key: api_key auth_token: auth_token context: key: context id: - id - id version: 0 properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: items: type: string type: array version: description: | Version of the table to check existence. If not specified, server should resolve it to the latest version. format: int64 minimum: 0 type: integer TableExistsResponse: description: | Response for a table existence check. The REST namespace does not transmit this object directly (see the TableExists operation for how the status-code response maps to it). It is the standard data model for the LanceNamespace interfaces (e.g. Java, Python). properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. TransactionStatus: description: | The status of a transaction. Case insensitive, supports both PascalCase and snake_case. Valid values are: - Queued: the transaction is queued and not yet started - Running: the transaction is currently running - Succeeded: the transaction has completed successfully - Failed: the transaction has failed - Canceled: the transaction was canceled type: string DescribeTransactionRequest: example: identity: api_key: api_key auth_token: auth_token context: key: context id: - id - id properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: items: type: string type: array DescribeTransactionResponse: example: context: key: context properties: key: properties status: status properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. status: description: | The status of a transaction. Case insensitive, supports both PascalCase and snake_case. Valid values are: - Queued: the transaction is queued and not yet started - Running: the transaction is currently running - Succeeded: the transaction has completed successfully - Failed: the transaction has failed - Canceled: the transaction was canceled type: string properties: additionalProperties: type: string required: - status AlterTransactionSetStatus: example: status: status properties: status: description: | The status of a transaction. Case insensitive, supports both PascalCase and snake_case. Valid values are: - Queued: the transaction is queued and not yet started - Running: the transaction is currently running - Succeeded: the transaction has completed successfully - Failed: the transaction has failed - Canceled: the transaction was canceled type: string AlterTransactionSetProperty: example: mode: mode value: value key: key properties: key: type: string value: type: string mode: description: | The behavior if the property key already exists. Case insensitive, supports both PascalCase and snake_case. Valid values are: - 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 type: string SetPropertyMode: description: | The behavior if the property key already exists. Case insensitive, supports both PascalCase and snake_case. Valid values are: - 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 type: string AlterTransactionUnsetProperty: example: mode: mode key: key properties: key: type: string mode: description: | The behavior if the property key to unset does not exist. Case insensitive, supports both PascalCase and snake_case. Valid values are: - Skip (default): skip the property to unset - Fail: fail the entire operation type: string UnsetPropertyMode: description: | The behavior if the property key to unset does not exist. Case insensitive, supports both PascalCase and snake_case. Valid values are: - Skip (default): skip the property to unset - Fail: fail the entire operation 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: status unsetPropertyAction: mode: mode key: key setPropertyAction: mode: mode 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: identity: api_key: api_key auth_token: auth_token context: key: context id: - id - id actions: - setStatusAction: status: status unsetPropertyAction: mode: mode key: key setPropertyAction: mode: mode value: value key: key - setStatusAction: status: status unsetPropertyAction: mode: mode key: key setPropertyAction: mode: mode value: value key: key properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: items: type: string type: array actions: items: $ref: '#/components/schemas/AlterTransactionAction' minItems: 1 type: array required: - actions AlterTransactionResponse: example: context: key: context properties: key: properties status: status properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. status: description: | The status of a transaction. Case insensitive, supports both PascalCase and snake_case. Valid values are: - Queued: the transaction is queued and not yet started - Running: the transaction is currently running - Succeeded: the transaction has completed successfully - Failed: the transaction has failed - Canceled: the transaction was canceled type: string properties: additionalProperties: type: string required: - status DropTableRequest: description: | 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. properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: items: type: string type: array DropTableResponse: example: transaction_id: transaction_id context: key: context location: location id: - id - id properties: owner: Ralph created_at: "1452120468" properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. transaction_id: description: Optional transaction identifier type: string id: items: type: string type: array location: type: string properties: additionalProperties: type: string default: {} description: | If the implementation does not support table properties, it should return null for this field. Otherwise it should return the properties. example: owner: Ralph created_at: "1452120468" nullable: true DeregisterTableRequest: description: | The table content remains available in the storage. example: identity: api_key: api_key auth_token: auth_token context: key: context id: - id - id properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: items: type: string type: array DeregisterTableResponse: example: transaction_id: transaction_id context: key: context location: location id: - id - id properties: owner: Ralph created_at: "1452120468" properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. transaction_id: description: Optional transaction identifier type: string id: items: type: string type: array location: type: string properties: additionalProperties: type: string default: {} description: | If the implementation does not support table properties, it should return null for this field. Otherwise it should return the properties. example: owner: Ralph created_at: "1452120468" nullable: true StringFtsQuery: example: columns: - columns - columns query: query properties: columns: description: Lance field paths to search. Nested fields use dot-separated segments; use backtick-quoted segments for literal dots and double backticks inside quoted segments. Omit to search all indexed FTS fields. items: minLength: 1 type: string 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: operator 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: operator max_expansions: 0 - fuzziness: 0 terms: terms column: column boost: 6.0274563 prefix_length: 0 operator: operator 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: operator 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: operator max_expansions: 0 - fuzziness: 0 terms: terms column: column boost: 6.0274563 prefix_length: 0 operator: operator 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: operator max_expansions: 0 properties: boost: format: float type: number column: description: Lance field path to match. Nested fields use dot-separated segments; use backtick-quoted segments for literal dots and double backticks inside quoted segments. Omit to use the query default fields. minLength: 1 type: string fuzziness: format: int32 minimum: 0 type: integer max_expansions: description: |- The maximum number of terms to expand for fuzzy matching. Default to 50. minimum: 0 type: integer operator: description: | The operator to use for combining terms. Case insensitive, supports both PascalCase and snake_case. Valid values are: - And: All terms must match. - Or: At least one term must match. type: string 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: - terms PhraseQuery: example: terms: terms column: column slop: 0 properties: column: description: Lance field path to match. Nested fields use dot-separated segments; use backtick-quoted segments for literal dots and double backticks inside quoted segments. Omit to use the query default fields. minLength: 1 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: operator max_expansions: 0 - fuzziness: 0 terms: terms column: column boost: 6.0274563 prefix_length: 0 operator: operator 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: description: | The operator to use for combining terms. Case insensitive, supports both PascalCase and snake_case. Valid values are: - And: All terms must match. - Or: At least one term must match. type: string GetTableTagVersionRequest: example: identity: api_key: api_key auth_token: auth_token context: key: context id: - id - id tag: tag properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: items: type: string type: array tag: description: Name of the tag to get version for type: string required: - tag GetTableTagVersionResponse: example: context: key: context version: 0 branch: branch properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. version: description: version number that the tag points to format: int64 minimum: 0 type: integer branch: description: | Branch the tag's version lives on. Absent when the tag points to the main branch. type: string required: - version CreateTableTagRequest: example: identity: api_key: api_key auth_token: auth_token context: key: context id: - id - id tag: tag version: 0 branch: branch properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: items: type: string type: array tag: description: Name of the tag to create type: string version: description: Version number for the tag to point to format: int64 minimum: 0 type: integer branch: description: | Branch to target. When not specified, the main branch is used. type: string required: - tag - version CreateTableTagResponse: description: Response for create tag operation example: transaction_id: transaction_id context: key: context properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. transaction_id: description: Optional transaction identifier type: string DeleteTableTagRequest: example: identity: api_key: api_key auth_token: auth_token context: key: context id: - id - id tag: tag properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: items: type: string type: array tag: description: Name of the tag to delete type: string required: - tag DeleteTableTagResponse: description: Response for delete tag operation example: transaction_id: transaction_id context: key: context properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. transaction_id: description: Optional transaction identifier type: string UpdateTableTagRequest: example: identity: api_key: api_key auth_token: auth_token context: key: context id: - id - id tag: tag version: 0 branch: branch properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: items: type: string type: array tag: description: Name of the tag to update type: string version: description: New version number for the tag to point to format: int64 minimum: 0 type: integer branch: description: | Branch to target. When not specified, the main branch is used. type: string required: - tag - version UpdateTableTagResponse: description: Response for update tag operation example: transaction_id: transaction_id context: key: context properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. transaction_id: description: Optional transaction identifier type: string ListTableTagsRequest: properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: description: The table identifier items: type: string type: array page_token: description: | An opaque token that allows pagination for list operations (e.g. ListNamespaces). For an initial request of a list operation, if the implementation cannot return all items in one response, or if there are more items than the page limit specified in the request, the implementation must return a page token in the response, indicating there are more results available. After the initial request, the value of the page token from each response must be used as the page token value for the next request. Caller must interpret either `null`, missing value or empty string value of the page token from the implementation's response as the end of the listing results. type: string nullable: true limit: description: | An inclusive upper bound of the number of results that a caller will receive. type: integer nullable: true ListTableTagsResponse: description: Response containing table tags example: context: key: context page_token: page_token tags: key: branch: branch version: 0 manifestSize: 0 properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. tags: additionalProperties: $ref: '#/components/schemas/TagContents' description: Map of tag names to their contents page_token: description: | An opaque token that allows pagination for list operations (e.g. ListNamespaces). For an initial request of a list operation, if the implementation cannot return all items in one response, or if there are more items than the page limit specified in the request, the implementation must return a page token in the response, indicating there are more results available. After the initial request, the value of the page token from each response must be used as the page token value for the next request. Caller must interpret either `null`, missing value or empty string value of the page token from the implementation's response as the end of the listing results. type: string nullable: true required: - tags TagContents: example: branch: branch version: 0 manifestSize: 0 properties: branch: description: Branch name that the tag was created on (if any) type: string version: description: Version number that the tag points to format: int64 minimum: 0 type: integer manifestSize: description: Size of the manifest file in bytes format: int64 minimum: 0 type: integer required: - manifestSize - version BranchContents: example: parentBranch: parentBranch metadata: key: metadata createAt: 0 parentVersion: 0 manifestSize: 0 properties: parentBranch: description: | Name of the branch this branch was created from. Absent when the branch was created from the main branch. type: string parentVersion: description: Version of the parent (branch or main) this branch was created from format: int64 minimum: 0 type: integer createAt: description: Unix timestamp (in seconds) when the branch was created format: int64 minimum: 0 type: integer manifestSize: description: Size of the branch's manifest file in bytes format: int64 minimum: 0 type: integer metadata: additionalProperties: type: string description: Key-value metadata associated with the branch required: - createAt - manifestSize - parentVersion CreateTableBranchRequest: example: identity: api_key: api_key auth_token: auth_token context: key: context name: name from_branch: from_branch id: - id - id from_version: 0 properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: items: type: string type: array name: description: Name of the branch to create type: string from_branch: description: | Source branch to create the new branch from. When omitted, the new branch is created from the main branch. type: string from_version: description: | Version of the source (branch or main) to create from. When omitted, the latest version of the source is used. format: int64 minimum: 0 type: integer required: - name CreateTableBranchResponse: description: Response for create branch operation example: transaction_id: transaction_id context: key: context properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. transaction_id: description: Optional transaction identifier type: string DeleteTableBranchRequest: example: identity: api_key: api_key auth_token: auth_token context: key: context name: name id: - id - id properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: items: type: string type: array name: description: Name of the branch to delete type: string required: - name DeleteTableBranchResponse: description: Response for delete branch operation example: transaction_id: transaction_id context: key: context properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. transaction_id: description: Optional transaction identifier type: string ListTableBranchesRequest: properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: description: The table identifier items: type: string type: array page_token: description: | An opaque token that allows pagination for list operations (e.g. ListNamespaces). For an initial request of a list operation, if the implementation cannot return all items in one response, or if there are more items than the page limit specified in the request, the implementation must return a page token in the response, indicating there are more results available. After the initial request, the value of the page token from each response must be used as the page token value for the next request. Caller must interpret either `null`, missing value or empty string value of the page token from the implementation's response as the end of the listing results. type: string nullable: true limit: description: | An inclusive upper bound of the number of results that a caller will receive. type: integer nullable: true ListTableBranchesResponse: description: Response containing table branches example: context: key: context page_token: page_token branches: key: parentBranch: parentBranch metadata: key: metadata createAt: 0 parentVersion: 0 manifestSize: 0 properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. branches: additionalProperties: $ref: '#/components/schemas/BranchContents' description: Map of branch names to their contents page_token: description: | An opaque token that allows pagination for list operations (e.g. ListNamespaces). For an initial request of a list operation, if the implementation cannot return all items in one response, or if there are more items than the page limit specified in the request, the implementation must return a page token in the response, indicating there are more results available. After the initial request, the value of the page token from each response must be used as the page token value for the next request. Caller must interpret either `null`, missing value or empty string value of the page token from the implementation's response as the end of the listing results. type: string nullable: true required: - branches RestoreTableRequest: example: identity: api_key: api_key auth_token: auth_token context: key: context id: - id - id version: 0 branch: branch properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: items: type: string type: array version: description: Version to restore to format: int64 minimum: 0 type: integer branch: description: | Branch to target. When not specified, the main branch is used. type: string required: - version RestoreTableResponse: description: Response for restore table operation example: transaction_id: transaction_id context: key: context properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. transaction_id: description: Optional transaction identifier type: string RenameTableRequest: example: identity: api_key: api_key auth_token: auth_token context: key: context new_table_name: new_table_name id: - id - id new_namespace_id: - new_namespace_id - new_namespace_id properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: description: The table identifier items: type: string type: array new_table_name: description: New name for the table type: string new_namespace_id: description: "New namespace identifier to move the table to (optional, if\ \ not specified the table stays in the same namespace)" items: type: string type: array required: - new_table_name RenameTableResponse: example: transaction_id: transaction_id context: key: context properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. transaction_id: description: Optional transaction identifier type: string UpdateTableSchemaMetadataRequest: properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: description: The table identifier items: type: string type: array branch: description: | Branch to target. When not specified, the main branch is used. type: string metadata: additionalProperties: type: string description: Schema metadata key-value pairs to set UpdateTableSchemaMetadataResponse: properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. metadata: additionalProperties: type: string description: The updated schema metadata transaction_id: description: Optional transaction identifier type: string ListTableVersionsRequest: properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: items: type: string type: array branch: description: | Branch to target. When not specified, the main branch is used. type: string page_token: description: | An opaque token that allows pagination for list operations (e.g. ListNamespaces). For an initial request of a list operation, if the implementation cannot return all items in one response, or if there are more items than the page limit specified in the request, the implementation must return a page token in the response, indicating there are more results available. After the initial request, the value of the page token from each response must be used as the page token value for the next request. Caller must interpret either `null`, missing value or empty string value of the page token from the implementation's response as the end of the listing results. type: string nullable: true limit: description: | An inclusive upper bound of the number of results that a caller will receive. type: integer nullable: true descending: description: | When true, versions are guaranteed to be returned in descending order (latest to oldest). When false or not specified, the ordering is implementation-defined. type: boolean ListTableVersionsResponse: example: versions: - metadata: key: metadata manifest_path: manifest_path timestamp_millis: 1 manifest_size: 0 e_tag: e_tag version: 0 - metadata: key: metadata manifest_path: manifest_path timestamp_millis: 1 manifest_size: 0 e_tag: e_tag version: 0 context: key: context page_token: page_token properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. versions: description: | List of table versions. When `descending=true`, guaranteed to be ordered from latest to oldest. Otherwise, ordering is implementation-defined. items: $ref: '#/components/schemas/TableVersion' type: array page_token: description: | An opaque token that allows pagination for list operations (e.g. ListNamespaces). For an initial request of a list operation, if the implementation cannot return all items in one response, or if there are more items than the page limit specified in the request, the implementation must return a page token in the response, indicating there are more results available. After the initial request, the value of the page token from each response must be used as the page token value for the next request. Caller must interpret either `null`, missing value or empty string value of the page token from the implementation's response as the end of the listing results. type: string nullable: true required: - versions CreateTableVersionRequest: description: | Request to create a new table version entry. This supports `put_if_not_exists` semantics, where the operation fails if the version already exists. example: naming_scheme: V2 metadata: key: metadata manifest_path: manifest_path identity: api_key: api_key auth_token: auth_token manifest_size: 0 context: key: context id: - id - id e_tag: e_tag version: 0 branch: branch properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: description: The table identifier items: type: string type: array version: description: Version number to create format: int64 minimum: 0 type: integer branch: description: | Branch to target. When not specified, the main branch is used. type: string manifest_path: description: Path to the manifest file for this version type: string manifest_size: description: Size of the manifest file in bytes format: int64 minimum: 0 type: integer e_tag: description: Optional ETag for the manifest file type: string metadata: additionalProperties: type: string description: Optional metadata for the version naming_scheme: description: | The naming scheme used for manifest files in the `_versions/` directory. Known values: - `V1`: `_versions/{version}.manifest` - Simple version-based naming - `V2`: `_versions/{inverted_version}.manifest` - Zero-padded, reversed version number (uses `u64::MAX - version`) for O(1) lookup of latest version on object stores V2 is preferred for new tables as it enables efficient latest-version discovery without needing to list all versions. example: V2 type: string required: - manifest_path - version CreateTableVersionResponse: description: Response for creating a table version example: transaction_id: transaction_id context: key: context version: metadata: key: metadata manifest_path: manifest_path timestamp_millis: 1 manifest_size: 0 e_tag: e_tag version: 0 properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. transaction_id: description: Optional transaction identifier type: string version: $ref: '#/components/schemas/TableVersion' DescribeTableVersionRequest: description: Request to describe a specific table version example: identity: api_key: api_key auth_token: auth_token context: key: context id: - id - id version: 0 branch: branch properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: description: The table identifier items: type: string type: array version: description: Version number to describe format: int64 minimum: 0 type: integer branch: description: | Branch to target. When not specified, the main branch is used. type: string DescribeTableVersionResponse: description: Response containing the table version information example: context: key: context version: metadata: key: metadata manifest_path: manifest_path timestamp_millis: 1 manifest_size: 0 e_tag: e_tag version: 0 properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. version: $ref: '#/components/schemas/TableVersion' required: - version BatchDeleteTableVersionsRequest: description: | Request to delete table version records. Supports deleting ranges of versions for efficient bulk cleanup. example: ranges: - start_version: 0 end_version: 6 - start_version: 0 end_version: 6 identity: api_key: api_key auth_token: auth_token context: key: context id: - id - id branch: branch properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: description: The table identifier items: type: string type: array branch: description: | Branch to target. When not specified, the main branch is used. type: string ranges: description: | List of version ranges to delete. Each range specifies start (inclusive) and end (exclusive) versions. items: $ref: '#/components/schemas/VersionRange' type: array required: - ranges VersionRange: description: | A range of versions to delete (start inclusive, end exclusive). Special values: - `start_version: 0` with `end_version: -1` means ALL versions example: start_version: 0 end_version: 6 properties: start_version: description: | Start version of the range (inclusive). Use 0 to start from the first version. format: int64 type: integer end_version: description: | End version of the range (exclusive). Use -1 to indicate all versions up to and including the latest. format: int64 type: integer required: - end_version - start_version BatchDeleteTableVersionsResponse: description: Response for deleting table version records example: transaction_id: transaction_id context: key: context deleted_count: 0 properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. deleted_count: description: Number of version records deleted format: int64 minimum: 0 type: integer transaction_id: description: Optional transaction identifier type: string BatchCreateTableVersionsRequest: description: | Request to atomically create new version entries for multiple tables. The operation is atomic: all versions are created or none are. example: entries: - naming_scheme: V2 metadata: key: metadata manifest_path: manifest_path manifest_size: 0 id: - id - id e_tag: e_tag version: 0 branch: branch - naming_scheme: V2 metadata: key: metadata manifest_path: manifest_path manifest_size: 0 id: - id - id e_tag: e_tag version: 0 branch: branch identity: api_key: api_key auth_token: auth_token context: key: context properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. entries: description: List of table version entries to create atomically items: $ref: '#/components/schemas/CreateTableVersionEntry' type: array required: - entries CreateTableVersionEntry: description: | An entry for creating a new table version in a batch operation. This supports `put_if_not_exists` semantics, where the operation fails if the version already exists. example: naming_scheme: V2 metadata: key: metadata manifest_path: manifest_path manifest_size: 0 id: - id - id e_tag: e_tag version: 0 branch: branch properties: id: description: The table identifier items: type: string type: array version: description: Version number to create format: int64 minimum: 0 type: integer branch: description: | Branch to target. When not specified, the main branch is used. type: string manifest_path: description: Path to the manifest file for this version type: string manifest_size: description: Size of the manifest file in bytes format: int64 minimum: 0 type: integer e_tag: description: Optional ETag for the manifest file type: string metadata: additionalProperties: type: string description: Optional metadata for the version naming_scheme: description: | The naming scheme used for manifest files in the `_versions/` directory. Known values: - `V1`: `_versions/{version}.manifest` - Simple version-based naming - `V2`: `_versions/{inverted_version}.manifest` - Zero-padded, reversed version number (uses `u64::MAX - version`) for O(1) lookup of latest version on object stores V2 is preferred for new tables as it enables efficient latest-version discovery without needing to list all versions. example: V2 type: string required: - id - manifest_path - version BatchCreateTableVersionsResponse: description: | Response for batch creating table versions. Contains the created versions for each table in the same order as the request. example: transaction_id: transaction_id versions: - metadata: key: metadata manifest_path: manifest_path timestamp_millis: 1 manifest_size: 0 e_tag: e_tag version: 0 - metadata: key: metadata manifest_path: manifest_path timestamp_millis: 1 manifest_size: 0 e_tag: e_tag version: 0 context: key: context properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. transaction_id: description: Optional transaction identifier type: string versions: description: List of created table versions in the same order as the request entries items: $ref: '#/components/schemas/TableVersion' type: array required: - versions BatchCommitTablesRequest: description: | Request to atomically commit a batch of table operations. This replaces `BatchCreateTableVersionsRequest` with a more general interface that supports mixed operations (DeclareTable, CreateTableVersion, DeleteTableVersions, DeregisterTable) within a single atomic transaction at the metadata layer. All operations are committed atomically: either all succeed or none are applied. example: operations: - deregister_table: identity: api_key: api_key auth_token: auth_token context: key: context id: - id - id create_table_version: naming_scheme: V2 metadata: key: metadata manifest_path: manifest_path identity: api_key: api_key auth_token: auth_token manifest_size: 0 context: key: context id: - id - id e_tag: e_tag version: 0 branch: branch delete_table_versions: ranges: - start_version: 0 end_version: 6 - start_version: 0 end_version: 6 identity: api_key: api_key auth_token: auth_token context: key: context id: - id - id branch: branch declare_table: identity: api_key: api_key auth_token: auth_token context: key: context location: location id: - id - id properties: key: properties vend_credentials: true - deregister_table: identity: api_key: api_key auth_token: auth_token context: key: context id: - id - id create_table_version: naming_scheme: V2 metadata: key: metadata manifest_path: manifest_path identity: api_key: api_key auth_token: auth_token manifest_size: 0 context: key: context id: - id - id e_tag: e_tag version: 0 branch: branch delete_table_versions: ranges: - start_version: 0 end_version: 6 - start_version: 0 end_version: 6 identity: api_key: api_key auth_token: auth_token context: key: context id: - id - id branch: branch declare_table: identity: api_key: api_key auth_token: auth_token context: key: context location: location id: - id - id properties: key: properties vend_credentials: true identity: api_key: api_key auth_token: auth_token context: key: context properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. operations: description: | List of operations to commit atomically. Supported operation types: DeclareTable, CreateTableVersion, DeleteTableVersions, DeregisterTable. items: $ref: '#/components/schemas/CommitTableOperation' type: array required: - operations CommitTableOperation: description: | A single operation within a batch commit. Provide exactly one of the operation fields to specify the operation kind. example: deregister_table: identity: api_key: api_key auth_token: auth_token context: key: context id: - id - id create_table_version: naming_scheme: V2 metadata: key: metadata manifest_path: manifest_path identity: api_key: api_key auth_token: auth_token manifest_size: 0 context: key: context id: - id - id e_tag: e_tag version: 0 branch: branch delete_table_versions: ranges: - start_version: 0 end_version: 6 - start_version: 0 end_version: 6 identity: api_key: api_key auth_token: auth_token context: key: context id: - id - id branch: branch declare_table: identity: api_key: api_key auth_token: auth_token context: key: context location: location id: - id - id properties: key: properties vend_credentials: true properties: declare_table: $ref: '#/components/schemas/DeclareTableRequest' create_table_version: $ref: '#/components/schemas/CreateTableVersionRequest' delete_table_versions: $ref: '#/components/schemas/BatchDeleteTableVersionsRequest' deregister_table: $ref: '#/components/schemas/DeregisterTableRequest' CommitTableResult: description: | Result of a single operation within a batch commit. Each result corresponds to one operation in the request, in the same order. Exactly one of the result fields will be set. example: deregister_table: transaction_id: transaction_id context: key: context location: location id: - id - id properties: owner: Ralph created_at: "1452120468" create_table_version: transaction_id: transaction_id context: key: context version: metadata: key: metadata manifest_path: manifest_path timestamp_millis: 1 manifest_size: 0 e_tag: e_tag version: 0 delete_table_versions: transaction_id: transaction_id context: key: context deleted_count: 0 declare_table: transaction_id: transaction_id context: key: context location: location properties: owner: Ralph created_at: "1452120468" managed_versioning: true storage_options: key: storage_options properties: declare_table: $ref: '#/components/schemas/DeclareTableResponse' create_table_version: $ref: '#/components/schemas/CreateTableVersionResponse' delete_table_versions: $ref: '#/components/schemas/BatchDeleteTableVersionsResponse' deregister_table: $ref: '#/components/schemas/DeregisterTableResponse' BatchCommitTablesResponse: description: | Response for a batch commit of table operations. Contains the results of each operation in the same order as the request. example: transaction_id: transaction_id context: key: context results: - deregister_table: transaction_id: transaction_id context: key: context location: location id: - id - id properties: owner: Ralph created_at: "1452120468" create_table_version: transaction_id: transaction_id context: key: context version: metadata: key: metadata manifest_path: manifest_path timestamp_millis: 1 manifest_size: 0 e_tag: e_tag version: 0 delete_table_versions: transaction_id: transaction_id context: key: context deleted_count: 0 declare_table: transaction_id: transaction_id context: key: context location: location properties: owner: Ralph created_at: "1452120468" managed_versioning: true storage_options: key: storage_options - deregister_table: transaction_id: transaction_id context: key: context location: location id: - id - id properties: owner: Ralph created_at: "1452120468" create_table_version: transaction_id: transaction_id context: key: context version: metadata: key: metadata manifest_path: manifest_path timestamp_millis: 1 manifest_size: 0 e_tag: e_tag version: 0 delete_table_versions: transaction_id: transaction_id context: key: context deleted_count: 0 declare_table: transaction_id: transaction_id context: key: context location: location properties: owner: Ralph created_at: "1452120468" managed_versioning: true storage_options: key: storage_options properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. transaction_id: description: Optional transaction identifier for the batch commit type: string results: description: | Results for each operation, in the same order as the request operations. Each result contains the outcome of the corresponding operation. items: $ref: '#/components/schemas/CommitTableResult' type: array required: - results TableVersion: example: metadata: key: metadata manifest_path: manifest_path timestamp_millis: 1 manifest_size: 0 e_tag: e_tag version: 0 properties: version: description: Version number format: int64 minimum: 0 type: integer manifest_path: description: Path to the manifest file for this version. type: string manifest_size: description: Size of the manifest file in bytes format: int64 minimum: 0 type: integer e_tag: description: | Optional ETag for optimistic concurrency control. Useful for S3 and similar object stores. type: string timestamp_millis: description: "Timestamp when the version was created, in milliseconds since\ \ epoch (Unix time)" format: int64 type: integer metadata: additionalProperties: type: string description: Optional key-value pairs of metadata required: - manifest_path - version ManifestNamingScheme: description: | The naming scheme used for manifest files in the `_versions/` directory. Known values: - `V1`: `_versions/{version}.manifest` - Simple version-based naming - `V2`: `_versions/{inverted_version}.manifest` - Zero-padded, reversed version number (uses `u64::MAX - version`) for O(1) lookup of latest version on object stores V2 is preferred for new tables as it enables efficient latest-version discovery without needing to list all versions. example: V2 type: string ExplainTableQueryPlanRequest: example: identity: api_key: api_key auth_token: auth_token query: ef: 0 offset: 0 columns: column_aliases: key: column_aliases column_names: - column_names - column_names vector_column: vector_column fast_search: true k: 0 upper_bound: 1.2315135 branch: branch 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: operator 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: operator max_expansions: 0 - fuzziness: 0 terms: terms column: column boost: 6.0274563 prefix_length: 0 operator: operator max_expansions: 0 distance_type: distance_type lower_bound: 3.6160767 identity: api_key: api_key auth_token: auth_token bypass_vector_index: true nprobes: 0 context: key: context vector: single_vector: - 1.0246457 - 1.0246457 multi_vector: - - 1.4894159 - 1.4894159 - - 1.4894159 - 1.4894159 id: - id - id context: key: context id: - id - id branch: branch verbose: false properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: items: type: string type: array branch: description: | Branch to target. When not specified, the main branch is used. type: string query: $ref: '#/components/schemas/QueryTableRequest' verbose: default: false description: Whether to return verbose explanation type: boolean required: - query ExplainTableQueryPlanResponse: properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. plan: description: Human-readable query execution plan type: string required: - plan AnalyzeTableQueryPlanRequest: example: ef: 0 offset: 0 columns: column_aliases: key: column_aliases column_names: - column_names - column_names vector_column: vector_column fast_search: true k: 0 upper_bound: 1.2315135 branch: branch 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: operator 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: operator max_expansions: 0 - fuzziness: 0 terms: terms column: column boost: 6.0274563 prefix_length: 0 operator: operator max_expansions: 0 distance_type: distance_type lower_bound: 3.6160767 identity: api_key: api_key auth_token: auth_token bypass_vector_index: true nprobes: 0 context: key: context vector: single_vector: - 1.0246457 - 1.0246457 multi_vector: - - 1.4894159 - 1.4894159 - - 1.4894159 - 1.4894159 id: - id - id properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: items: type: string type: array branch: description: | Branch to target. When not specified, the main branch is used. type: string bypass_vector_index: description: Whether to bypass vector index type: boolean columns: $ref: '#/components/schemas/QueryTableRequest_columns' distance_type: description: Distance metric to use type: string ef: description: Search effort parameter for HNSW index minimum: 0 type: integer fast_search: description: Whether to use fast search type: boolean filter: description: | Optional SQL filter expression. Field references in the expression must use Lance field path syntax: nested fields use dot-separated segments, literal dots require backtick-quoted segments, and backticks inside quoted segments are doubled. 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 type: number nprobes: description: Number of probes for IVF index minimum: 0 type: integer offset: description: Number of results to skip minimum: 0 type: integer prefilter: description: Whether to apply filtering before vector search type: boolean refine_factor: description: Refine factor for search format: int32 minimum: 0 type: integer upper_bound: description: Upper bound for search format: float type: number vector: $ref: '#/components/schemas/QueryTableRequest_vector' vector_column: description: Lance field path of the vector field to search. Nested fields use dot-separated segments; use backtick-quoted segments for literal dots and double backticks inside quoted segments. Use canonical full paths for display and errors; leaf names alone only identify top-level fields; invalid or unresolved paths should return InvalidInput or TableColumnNotFound. minLength: 1 type: string version: description: Table version to query format: int64 minimum: 0 type: integer with_row_id: description: "If true, return the row id as a column called `_rowid`" type: boolean required: - k - vector AnalyzeTableQueryPlanResponse: properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. analysis: description: Detailed analysis of the query execution plan type: string required: - analysis AlterTableAddColumnsRequest: example: identity: api_key: api_key auth_token: auth_token new_columns: - expression: expression name: name virtual_column: outputs: - metadata: key: metadata nullable: true column: column data_type: "{}" struct_field: struct_field - metadata: key: metadata nullable: true column: column data_type: "{}" struct_field: struct_field image: image field_metadata: key: field_metadata manifest_checksum: manifest_checksum udf: udf udf_name: udf_name manifest: manifest input_columns: - input_columns - input_columns udf_backend: udf_backend auto_backfill: true udf_version: udf_version - expression: expression name: name virtual_column: outputs: - metadata: key: metadata nullable: true column: column data_type: "{}" struct_field: struct_field - metadata: key: metadata nullable: true column: column data_type: "{}" struct_field: struct_field image: image field_metadata: key: field_metadata manifest_checksum: manifest_checksum udf: udf udf_name: udf_name manifest: manifest input_columns: - input_columns - input_columns udf_backend: udf_backend auto_backfill: true udf_version: udf_version context: key: context id: - id - id branch: branch properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: description: Table identifier path (namespace + table name) items: type: string type: array branch: description: | Branch to target. When not specified, the main branch is used. type: string new_columns: description: List of new columns to add to the table items: $ref: '#/components/schemas/AddColumnsEntry' type: array required: - new_columns AddColumnsEntry: example: expression: expression name: name virtual_column: outputs: - metadata: key: metadata nullable: true column: column data_type: "{}" struct_field: struct_field - metadata: key: metadata nullable: true column: column data_type: "{}" struct_field: struct_field image: image field_metadata: key: field_metadata manifest_checksum: manifest_checksum udf: udf udf_name: udf_name manifest: manifest input_columns: - input_columns - input_columns udf_backend: udf_backend auto_backfill: true udf_version: udf_version properties: name: description: Name of the new column type: string expression: description: SQL expression for the column (optional if virtual_column is specified) nullable: true type: string virtual_column: $ref: '#/components/schemas/AddVirtualColumnEntry' required: - name AddVirtualColumnEntry: example: outputs: - metadata: key: metadata nullable: true column: column data_type: "{}" struct_field: struct_field - metadata: key: metadata nullable: true column: column data_type: "{}" struct_field: struct_field image: image field_metadata: key: field_metadata manifest_checksum: manifest_checksum udf: udf udf_name: udf_name manifest: manifest input_columns: - input_columns - input_columns udf_backend: udf_backend auto_backfill: true udf_version: udf_version properties: input_columns: description: List of input Lance field paths for the virtual column. Nested fields use dot-separated segments; use backtick-quoted segments for literal dots and double backticks inside quoted segments. items: minLength: 1 type: string type: array outputs: description: Output columns produced by the virtual column UDF items: $ref: '#/components/schemas/AddVirtualColumnOutputEntry' type: array image: description: Docker image to use for the UDF type: string udf: description: Base64 encoded pickled UDF type: string udf_name: description: Name of the UDF type: string udf_version: description: Version of the UDF type: string udf_backend: description: UDF backend type (e.g. DockerUDFSpecV1) nullable: true type: string auto_backfill: description: Whether to automatically backfill the column after creation nullable: true type: boolean manifest: description: JSON-serialized manifest for the UDF environment nullable: true type: string manifest_checksum: description: SHA-256 checksum of the manifest content nullable: true type: string field_metadata: additionalProperties: type: string description: User-supplied field metadata (string key-value pairs) required: - image - input_columns - outputs - udf - udf_name - udf_version AddVirtualColumnOutputEntry: example: metadata: key: metadata nullable: true column: column data_type: "{}" struct_field: struct_field properties: column: description: Physical output column name type: string struct_field: description: Field name in the UDF output struct type: string data_type: description: Data type of the output column using JSON representation type: object nullable: description: Whether the output column is nullable type: boolean metadata: additionalProperties: type: string description: User-supplied output field metadata (string key-value pairs) required: - column - data_type - nullable - struct_field AlterTableAddColumnsResponse: example: context: key: context version: 0 properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. version: description: The commit version associated with the operation format: int64 minimum: 0 type: integer required: - version UpdateFieldMetadataRequest: example: identity: api_key: api_key auth_token: auth_token context: key: context id: - id - id updates: - path: path metadata: key: metadata replace: true - path: path metadata: key: metadata replace: true branch: branch properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: description: Table identifier path (namespace + table name) items: type: string type: array branch: description: | Branch to target. When not specified, the main branch is used. type: string updates: description: List of per-field metadata updates to apply items: $ref: '#/components/schemas/UpdateFieldMetadataEntry' type: array required: - updates UpdateFieldMetadataEntry: example: path: path metadata: key: metadata replace: true properties: path: description: Lance field path whose metadata to update. Nested fields use dot-separated segments; use backtick-quoted segments for literal dots and double backticks inside quoted segments. Use canonical full paths for display and errors; leaf names alone only identify top-level fields; invalid or unresolved paths should return InvalidInput or TableColumnNotFound. minLength: 1 type: string metadata: additionalProperties: nullable: true type: string description: | Metadata key-value pairs to apply to the field. A null value deletes that key. replace: description: | If true, replace the field's existing metadata entirely; otherwise merge into it (optional, defaults to false). nullable: true type: boolean required: - metadata - path UpdateFieldMetadataResponse: example: context: key: context fields: key: key: fields version: 0 properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. version: description: The commit version associated with the operation format: int64 minimum: 0 type: integer fields: additionalProperties: additionalProperties: type: string description: | Resulting metadata for each updated field, keyed by canonical Lance field path. required: - version AlterTableAlterColumnsRequest: example: identity: api_key: api_key auth_token: auth_token context: key: context alterations: - path: path nullable: true rename: rename data_type: "{}" virtual_column: image: image field_metadata: key: field_metadata manifest_checksum: manifest_checksum udf: udf udf_name: udf_name manifest: manifest input_columns: - input_columns - input_columns udf_backend: udf_backend auto_backfill: true udf_version: udf_version - path: path nullable: true rename: rename data_type: "{}" virtual_column: image: image field_metadata: key: field_metadata manifest_checksum: manifest_checksum udf: udf udf_name: udf_name manifest: manifest input_columns: - input_columns - input_columns udf_backend: udf_backend auto_backfill: true udf_version: udf_version id: - id - id branch: branch properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: description: Table identifier path (namespace + table name) items: type: string type: array branch: description: | Branch to target. When not specified, the main branch is used. type: string alterations: description: List of column alterations to apply to the table items: $ref: '#/components/schemas/AlterColumnsEntry' type: array required: - alterations AlterColumnsEntry: example: path: path nullable: true rename: rename data_type: "{}" virtual_column: image: image field_metadata: key: field_metadata manifest_checksum: manifest_checksum udf: udf udf_name: udf_name manifest: manifest input_columns: - input_columns - input_columns udf_backend: udf_backend auto_backfill: true udf_version: udf_version properties: path: description: Lance field path to alter. Nested fields use dot-separated segments; use backtick-quoted segments for literal dots and double backticks inside quoted segments. Use canonical full paths for display and errors; leaf names alone only identify top-level fields; invalid or unresolved paths should return InvalidInput or TableColumnNotFound. minLength: 1 type: string data_type: description: New data type for the column using JSON representation (optional) type: object rename: description: New name for the column (optional) nullable: true type: string nullable: description: Whether the column should be nullable (optional) nullable: true type: boolean virtual_column: $ref: '#/components/schemas/AlterVirtualColumnEntry' required: - path AlterVirtualColumnEntry: example: image: image field_metadata: key: field_metadata manifest_checksum: manifest_checksum udf: udf udf_name: udf_name manifest: manifest input_columns: - input_columns - input_columns udf_backend: udf_backend auto_backfill: true udf_version: udf_version properties: input_columns: description: List of input Lance field paths for the virtual column. Nested fields use dot-separated segments; use backtick-quoted segments for literal dots and double backticks inside quoted segments. Optional. items: minLength: 1 type: string nullable: true type: array image: description: Docker image to use for the UDF (optional) nullable: true type: string udf: description: Base64 encoded pickled UDF (optional) nullable: true type: string udf_name: description: Name of the UDF (optional) nullable: true type: string udf_version: description: Version of the UDF (optional) nullable: true type: string udf_backend: description: UDF backend type (e.g. DockerUDFSpecV1) (optional) nullable: true type: string auto_backfill: description: Whether to automatically backfill the column (optional) nullable: true type: boolean manifest: description: JSON-serialized manifest for the UDF environment (optional) nullable: true type: string manifest_checksum: description: SHA-256 checksum of the manifest content (optional) nullable: true type: string field_metadata: additionalProperties: type: string description: User-supplied field metadata (optional) AlterTableAlterColumnsResponse: example: context: key: context version: 0 properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. version: description: The commit version associated with the operation format: int64 minimum: 0 type: integer required: - version AlterTableBackfillColumnsRequest: example: max_checkpoint_size: 5 cluster: cluster min_checkpoint_size: 1 read_version: 2 manifest: manifest column: column branch: branch concurrency: 0 num_frags: 9 checkpoint_size: 3 commit_granularity: 2 task_size: 7 batch_checkpoint_flush_interval_seconds: 5.637376656633329 identity: api_key: api_key auth_token: auth_token context: key: context where: where id: - id - id intra_applier_concurrency: 6 properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: description: Table identifier path (namespace + table name) items: type: string type: array branch: description: | Branch to target. When not specified, the main branch is used. type: string column: description: Lance field path to backfill. Nested fields use dot-separated segments; use backtick-quoted segments for literal dots and double backticks inside quoted segments. Use canonical full paths for display and errors; leaf names alone only identify top-level fields; invalid or unresolved paths should return InvalidInput or TableColumnNotFound. minLength: 1 type: string where: description: Optional WHERE clause filter nullable: true type: string concurrency: description: Optional concurrency override nullable: true type: integer intra_applier_concurrency: description: Optional intra-applier concurrency override nullable: true type: integer min_checkpoint_size: description: Optional minimum checkpoint size nullable: true type: integer max_checkpoint_size: description: Optional maximum checkpoint size nullable: true type: integer batch_checkpoint_flush_interval_seconds: description: Optional batch checkpoint flush interval in seconds nullable: true type: number read_version: description: Optional table version to read from nullable: true type: integer task_size: description: Optional task size nullable: true type: integer num_frags: description: Optional number of fragments nullable: true type: integer checkpoint_size: description: Optional checkpoint size nullable: true type: integer commit_granularity: description: Optional commit granularity nullable: true type: integer cluster: description: Optional cluster name nullable: true type: string manifest: description: Optional manifest name nullable: true type: string required: - column AlterTableBackfillColumnsResponse: example: job_id: job_id context: key: context properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. job_id: description: The job ID for tracking the backfill job type: string required: - job_id RefreshMaterializedViewRequest: example: src_version: 0 source_task_size: 5 cluster: cluster identity: api_key: api_key auth_token: auth_token manifest: manifest context: key: context id: - id - id max_rows_per_fragment: 6 intra_applier_concurrency: 5 output_limit: 2 concurrency: 1 properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: description: Table identifier path (namespace + table name) items: type: string type: array src_version: description: Optional source version to refresh from nullable: true type: integer max_rows_per_fragment: description: Optional maximum rows per fragment nullable: true type: integer concurrency: description: Optional concurrency override nullable: true type: integer intra_applier_concurrency: description: Optional intra-applier concurrency override nullable: true type: integer source_task_size: description: | Optional number of source row ids per work item during expansion. Bounds per-actor memory for chunker materialized views. nullable: true type: integer cluster: description: Optional cluster name (operational override) nullable: true type: string output_limit: description: | Post-trim cap on view row count after expansion. Valid only for chunker materialized views; returns 400 if set on other kinds. nullable: true type: integer manifest: description: | Optional inline JSON-serialized GenevaManifest. Operational override for this refresh only; does not mutate the view's snapshotted manifest. When omitted, the manifest stored in the view's metadata is used. nullable: true type: string RefreshMaterializedViewResponse: example: job_id: job_id context: key: context properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. job_id: description: The job ID for tracking the refresh job type: string required: - job_id CreateMaterializedViewRequest: example: auto_refresh: false source_query: source_query identity: api_key: api_key auth_token: auth_token kind: query udtf_spec: num_cpus: 0.8008281904610115 udtf_name: udtf_name memory: 1 partition_by_indexed_column: partition_by_indexed_column num_gpus: 6.027456183070403 kind: udtf manifest: manifest batch: true error_handling: "{}" udtf_version: udtf_version partition_by: partition_by manifest_checksum: manifest_checksum udtf: udtf input_columns: - input_columns - input_columns udtf_sha: udtf_sha context: key: context with_no_data: true id: - id - id output_schema: output_schema properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: description: View identifier path (namespace + view name) items: type: string type: array kind: description: | The materialized view kind. - `query` — plain query-backed view (no UDTF), 1:1 rows. - `udtf` — batch UDTF-backed view (N:M rows, full refresh). - `chunker`, aka 'scalar_udtf' — chunker view (1:N row expansion, incremental refresh). enum: - query - udtf - chunker type: string source_query: description: | Opaque serialized representation of the source query that defines the view's input. The format is defined by the client; the namespace server stores it without interpreting it. type: string output_schema: description: Base64-encoded Arrow schema of the view output type: string udtf_spec: $ref: '#/components/schemas/MaterializedViewUdtfEntry' with_no_data: default: true description: | If false, the server kicks off an initial refresh immediately after creating the view and the response includes a job ID. type: boolean auto_refresh: default: false description: | If true, the view is automatically refreshed when source-table data changes past the deployment-level threshold. Boolean opt-in only; the threshold and cooldown are configured on the deployment, not per-view. nullable: true type: boolean required: - kind - output_schema - source_query MaterializedViewUdtfEntry: example: num_cpus: 0.8008281904610115 udtf_name: udtf_name memory: 1 partition_by_indexed_column: partition_by_indexed_column num_gpus: 6.027456183070403 kind: udtf manifest: manifest batch: true error_handling: "{}" udtf_version: udtf_version partition_by: partition_by manifest_checksum: manifest_checksum udtf: udtf input_columns: - input_columns - input_columns udtf_sha: udtf_sha properties: kind: description: | Discriminates a batch UDTF (`udtf`, full-overwrite refresh) from a chunker (`chunker`, incremental 1:N refresh). Must match the enclosing request's `kind`. enum: - udtf - chunker type: string udtf: description: | Base64-encoded UDTFSpec / ChunkerSpec JSON envelope (per kind). type: string udtf_sha: description: SHA-256 checksum of the envelope; server validates. type: string udtf_name: description: Name of the UDTF type: string udtf_version: description: Version of the UDTF type: string input_columns: description: | Source Lance field paths the UDTF reads. Nested fields use dot-separated segments; use backtick-quoted segments for literal dots and double backticks inside quoted segments. Null means all fields (batch UDTF only). items: minLength: 1 type: string nullable: true type: array partition_by: minLength: 1 nullable: true type: string partition_by_indexed_column: minLength: 1 nullable: true type: string num_cpus: description: Ray actor CPU request. nullable: true type: number num_gpus: description: Ray actor GPU request. nullable: true type: number memory: description: "Ray actor memory request, in bytes." nullable: true type: integer error_handling: description: | Batch UDTF only. Serialized ErrorHandlingConfig controlling partition-grain fail/retry/skip behavior. nullable: true type: object batch: description: | Chunker only. True for a batched chunker; affects how the worker dispatches input rows. nullable: true type: boolean manifest: description: JSON-serialized GenevaManifest for the UDTF environment. nullable: true type: string manifest_checksum: description: SHA-256 checksum of the manifest content. nullable: true type: string required: - kind - udtf - udtf_name - udtf_sha - udtf_version CreateMaterializedViewResponse: example: job_id: job_id context: key: context version: 0 properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. version: description: The commit version that created the materialized view format: int64 minimum: 0 type: integer job_id: description: | Refresh job ID, populated only when `with_no_data` was false. nullable: true type: string required: - version AlterTableDropColumnsRequest: example: identity: api_key: api_key auth_token: auth_token columns: - columns - columns context: key: context id: - id - id branch: branch properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: items: type: string type: array branch: description: | Branch to target. When not specified, the main branch is used. type: string columns: description: Lance field paths to drop. Nested fields use dot-separated segments; use backtick-quoted segments for literal dots and double backticks inside quoted segments. Use canonical full paths for display and errors; leaf names alone only identify top-level fields; invalid or unresolved paths should return InvalidInput or TableColumnNotFound. items: minLength: 1 type: string type: array required: - columns AlterTableDropColumnsResponse: example: transaction_id: transaction_id context: key: context version: 0 properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. transaction_id: description: Optional transaction identifier type: string version: description: Version of the table after dropping columns format: int64 minimum: 0 type: integer required: - version GetTableStatsRequest: example: identity: api_key: api_key auth_token: auth_token context: key: context id: - id - id branch: branch properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: items: type: string type: array branch: description: | Branch to target. When not specified, the main branch is used. type: string GetTableStatsResponse: example: num_indices: 0 context: key: context total_bytes: 0 num_rows: 0 fragment_stats: num_small_fragments: 0 lengths: p99: 0 p25: 0 min: 0 max: 0 mean: 0 p50: 0 p75: 0 num_fragments: 0 properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. total_bytes: description: The total number of bytes in the table format: int64 minimum: 0 type: integer num_rows: description: The number of rows in the table format: int64 minimum: 0 type: integer num_indices: description: The number of indices in the table format: int64 minimum: 0 type: integer fragment_stats: $ref: '#/components/schemas/FragmentStats' required: - fragment_stats - num_indices - num_rows - total_bytes FragmentStats: example: num_small_fragments: 0 lengths: p99: 0 p25: 0 min: 0 max: 0 mean: 0 p50: 0 p75: 0 num_fragments: 0 properties: num_fragments: description: The number of fragments in the table format: int64 minimum: 0 type: integer num_small_fragments: description: The number of uncompacted fragments in the table format: int64 minimum: 0 type: integer lengths: $ref: '#/components/schemas/FragmentSummary' required: - lengths - num_fragments - num_small_fragments FragmentSummary: example: p99: 0 p25: 0 min: 0 max: 0 mean: 0 p50: 0 p75: 0 properties: min: format: int64 minimum: 0 type: integer max: format: int64 minimum: 0 type: integer mean: format: int64 minimum: 0 type: integer p25: format: int64 minimum: 0 type: integer p50: format: int64 minimum: 0 type: integer p75: format: int64 minimum: 0 type: integer p99: format: int64 minimum: 0 type: integer required: - max - mean - min - p25 - p50 - p75 - p99 DropTableIndexRequest: properties: identity: $ref: '#/components/schemas/Identity' context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. id: items: type: string type: array branch: description: | Branch to target. When not specified, the main branch is used. type: string index_name: description: Name of the index to drop type: string DropTableIndexResponse: description: Response for drop index operation example: transaction_id: transaction_id context: key: context properties: context: additionalProperties: type: string description: | Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`. transaction_id: description: Optional transaction identifier type: string PartitionTransform: description: Well-known partition transform properties: type: description: "Transform type (identity, year, month, day, hour, bucket,\ \ multi_bucket, truncate)" type: string num_buckets: description: Number of buckets for bucket transforms type: integer width: description: Truncation width for truncate transforms type: integer required: - type PartitionField: description: Partition field definition properties: field_id: description: Unique identifier for this partition field (must not be renamed) example: event_year type: string source_ids: description: Field IDs of the source fields in the schema example: - 1 items: type: integer type: array transform: $ref: '#/components/schemas/PartitionTransform' expression: description: "DataFusion SQL expression using col0, col1, ... as column\ \ references. Exactly one of transform or expression must be specified." example: "date_part('year', col0)" type: string result_type: $ref: '#/components/schemas/JsonArrowDataType' required: - field_id - result_type - source_ids PartitionSpec: description: Partition spec definition properties: id: description: The spec version ID example: 1 type: integer fields: description: Array of partition field definitions items: $ref: '#/components/schemas/PartitionField' type: array required: - fields - id QueryTableRequest_columns: description: | Optional field paths to return. Provide either column_names or column_aliases, not both. example: column_aliases: key: column_aliases column_names: - column_names - column_names properties: column_names: description: List of Lance field paths to return. Nested fields use dot-separated segments; use backtick-quoted segments for literal dots and double backticks inside quoted segments. items: minLength: 1 type: string type: array column_aliases: additionalProperties: minLength: 1 type: string description: Object mapping output aliases to source Lance field paths. Nested fields use dot-separated segments; use backtick-quoted segments for literal dots and double backticks inside quoted segments. nullable: true 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: operator 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: operator max_expansions: 0 - fuzziness: 0 terms: terms column: column boost: 6.0274563 prefix_length: 0 operator: operator 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 securitySchemes: OAuth2: flows: clientCredentials: scopes: {} tokenUrl: /oauth/token type: oauth2 BearerAuth: scheme: bearer type: http ApiKeyAuth: in: header name: x-api-key type: apiKey