lance_namespace_reqwest_client/models/create_table_request.rs
1/*
2 * Lance Namespace Specification
3 *
4 * 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.
5 *
6 * The version of the OpenAPI document: 1.0.0
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14/// CreateTableRequest : 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.
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct CreateTableRequest {
17 #[serde(rename = "identity", skip_serializing_if = "Option::is_none")]
18 pub identity: Option<Box<models::Identity>>,
19 /// Arbitrary context for a request as key-value pairs. How to use the context is custom to the specific implementation. REST NAMESPACE ONLY Context entries are passed via HTTP headers using the naming convention `x-lance-ctx-<key>: <value>`. For example, a context entry `{\"trace_id\": \"abc123\"}` would be sent as the header `x-lance-ctx-trace_id: abc123`.
20 #[serde(rename = "context", skip_serializing_if = "Option::is_none")]
21 pub context: Option<std::collections::HashMap<String, String>>,
22 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
23 pub id: Option<Vec<String>>,
24 /// 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.
25 #[serde(rename = "mode", skip_serializing_if = "Option::is_none")]
26 pub mode: Option<String>,
27 /// Business logic properties stored and managed by the namespace implementation outside Lance context, if supported by the implementation.
28 #[serde(rename = "properties", skip_serializing_if = "Option::is_none")]
29 pub properties: Option<std::collections::HashMap<String, String>>,
30 /// Storage options that configure overrides for writing table data and metadata during table creation. These are passed to Lance for the write path.
31 #[serde(rename = "storage_options", skip_serializing_if = "Option::is_none")]
32 pub storage_options: Option<std::collections::HashMap<String, String>>,
33}
34
35impl CreateTableRequest {
36 /// 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.
37 pub fn new() -> CreateTableRequest {
38 CreateTableRequest {
39 identity: None,
40 context: None,
41 id: None,
42 mode: None,
43 properties: None,
44 storage_options: None,
45 }
46 }
47}
48