curl --request POST \
--url {scheme}://{host}:{port}/{basePath}/v1/table/version/batch-create \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"entries": [
{
"id": [
"<string>"
],
"version": 1,
"manifest_path": "<string>",
"branch": "<string>",
"manifest_size": 1,
"e_tag": "<string>",
"metadata": {},
"naming_scheme": "V2"
}
],
"identity": {
"api_key": "<string>",
"auth_token": "<string>"
},
"context": {}
}
'import requests
url = "{scheme}://{host}:{port}/{basePath}/v1/table/version/batch-create"
payload = {
"entries": [
{
"id": ["<string>"],
"version": 1,
"manifest_path": "<string>",
"branch": "<string>",
"manifest_size": 1,
"e_tag": "<string>",
"metadata": {},
"naming_scheme": "V2"
}
],
"identity": {
"api_key": "<string>",
"auth_token": "<string>"
},
"context": {}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
entries: [
{
id: ['<string>'],
version: 1,
manifest_path: '<string>',
branch: '<string>',
manifest_size: 1,
e_tag: '<string>',
metadata: {},
naming_scheme: 'V2'
}
],
identity: {api_key: '<string>', auth_token: '<string>'},
context: {}
})
};
fetch('{scheme}://{host}:{port}/{basePath}/v1/table/version/batch-create', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "62437",
CURLOPT_URL => "{scheme}://{host}:{port}/{basePath}/v1/table/version/batch-create",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'entries' => [
[
'id' => [
'<string>'
],
'version' => 1,
'manifest_path' => '<string>',
'branch' => '<string>',
'manifest_size' => 1,
'e_tag' => '<string>',
'metadata' => [
],
'naming_scheme' => 'V2'
]
],
'identity' => [
'api_key' => '<string>',
'auth_token' => '<string>'
],
'context' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "{scheme}://{host}:{port}/{basePath}/v1/table/version/batch-create"
payload := strings.NewReader("{\n \"entries\": [\n {\n \"id\": [\n \"<string>\"\n ],\n \"version\": 1,\n \"manifest_path\": \"<string>\",\n \"branch\": \"<string>\",\n \"manifest_size\": 1,\n \"e_tag\": \"<string>\",\n \"metadata\": {},\n \"naming_scheme\": \"V2\"\n }\n ],\n \"identity\": {\n \"api_key\": \"<string>\",\n \"auth_token\": \"<string>\"\n },\n \"context\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("{scheme}://{host}:{port}/{basePath}/v1/table/version/batch-create")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"entries\": [\n {\n \"id\": [\n \"<string>\"\n ],\n \"version\": 1,\n \"manifest_path\": \"<string>\",\n \"branch\": \"<string>\",\n \"manifest_size\": 1,\n \"e_tag\": \"<string>\",\n \"metadata\": {},\n \"naming_scheme\": \"V2\"\n }\n ],\n \"identity\": {\n \"api_key\": \"<string>\",\n \"auth_token\": \"<string>\"\n },\n \"context\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("{scheme}://{host}:{port}/{basePath}/v1/table/version/batch-create")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"entries\": [\n {\n \"id\": [\n \"<string>\"\n ],\n \"version\": 1,\n \"manifest_path\": \"<string>\",\n \"branch\": \"<string>\",\n \"manifest_size\": 1,\n \"e_tag\": \"<string>\",\n \"metadata\": {},\n \"naming_scheme\": \"V2\"\n }\n ],\n \"identity\": {\n \"api_key\": \"<string>\",\n \"auth_token\": \"<string>\"\n },\n \"context\": {}\n}"
response = http.request(request)
puts response.read_body{
"versions": [
{
"version": 1,
"manifest_path": "<string>",
"manifest_size": 1,
"e_tag": "<string>",
"timestamp_millis": 123,
"metadata": {}
}
],
"context": {},
"transaction_id": "<string>"
}{
"type": "/errors/bad-request",
"title": "Malformed request",
"status": 400,
"detail": "",
"instance": "/v1/namespaces"
}{
"type": "/errors/unauthorized-request",
"title": "No valid authentication credentials for the operation",
"status": 401,
"detail": "",
"instance": "/v1/namespaces"
}{
"type": "/errors/forbidden-request",
"title": "Not authorized to make this request",
"status": 403,
"detail": "",
"instance": "/v1/namespaces"
}{
"type": "/errors/not-found-error",
"title": "Not found Error",
"status": 404,
"detail": "",
"instance": "/v1/namespaces/{ns}"
}{
"type": "/errors/conflict",
"title": "The namespace has been concurrently modified",
"status": 409,
"detail": "",
"instance": "/v1/namespaces/{ns}"
}{
"type": "/errors/service-unavailable",
"title": "Slow down",
"status": 503,
"detail": "",
"instance": "/v1/namespaces"
}{
"type": "/errors/server-error",
"title": "Internal Server Error",
"status": 500,
"detail": "",
"instance": "/v1/namespaces"
}Atomically create versions for multiple tables
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.
A valid request URL is required to generate request examples{
"versions": [
{
"version": 1,
"manifest_path": "<string>",
"manifest_size": 1,
"e_tag": "<string>",
"timestamp_millis": 123,
"metadata": {}
}
],
"context": {},
"transaction_id": "<string>"
}{
"type": "/errors/bad-request",
"title": "Malformed request",
"status": 400,
"detail": "",
"instance": "/v1/namespaces"
}{
"type": "/errors/unauthorized-request",
"title": "No valid authentication credentials for the operation",
"status": 401,
"detail": "",
"instance": "/v1/namespaces"
}{
"type": "/errors/forbidden-request",
"title": "Not authorized to make this request",
"status": 403,
"detail": "",
"instance": "/v1/namespaces"
}{
"type": "/errors/not-found-error",
"title": "Not found Error",
"status": 404,
"detail": "",
"instance": "/v1/namespaces/{ns}"
}{
"type": "/errors/conflict",
"title": "The namespace has been concurrently modified",
"status": 409,
"detail": "",
"instance": "/v1/namespaces/{ns}"
}{
"type": "/errors/service-unavailable",
"title": "Slow down",
"status": 503,
"detail": "",
"instance": "/v1/namespaces"
}{
"type": "/errors/server-error",
"title": "Internal Server Error",
"status": 500,
"detail": "",
"instance": "/v1/namespaces"
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Query Parameters
An optional delimiter of the string identifier, following the Lance Namespace spec.
When not specified, the $ delimiter must be used.
Body
Request to atomically create new version entries for multiple tables. The operation is atomic: all versions are created or none are.
List of table version entries to create atomically
Show child attributes
Show child attributes
Identity information of a request.
Show child attributes
Show child attributes
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 headerAuthorization: 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 headerx-request-id: abc123is returned as the entry{"header.x-request-id": "abc123"}.
Show child attributes
Show child attributes
Response
Result of atomically creating table versions
Response for batch creating table versions. Contains the created versions for each table in the same order as the request.
List of created table versions in the same order as the request entries
Show child attributes
Show child attributes
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 headerAuthorization: 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 headerx-request-id: abc123is returned as the entry{"header.x-request-id": "abc123"}.
Show child attributes
Show child attributes
Optional transaction identifier
Was this page helpful?