1use reqwest;
13use serde::{Deserialize, Serialize, de::Error as _};
14use crate::{apis::ResponseContent, models};
15use super::{Error, configuration, ContentType};
16
17
18#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum AlterTableAddColumnsError {
22 Status400(models::ErrorResponse),
23 Status401(models::ErrorResponse),
24 Status403(models::ErrorResponse),
25 Status404(models::ErrorResponse),
26 Status503(models::ErrorResponse),
27 Status5XX(models::ErrorResponse),
28 UnknownValue(serde_json::Value),
29}
30
31#[derive(Debug, Clone, Serialize, Deserialize)]
33#[serde(untagged)]
34pub enum AnalyzeTableQueryPlanError {
35 Status400(models::ErrorResponse),
36 Status401(models::ErrorResponse),
37 Status403(models::ErrorResponse),
38 Status404(models::ErrorResponse),
39 Status503(models::ErrorResponse),
40 Status5XX(models::ErrorResponse),
41 UnknownValue(serde_json::Value),
42}
43
44#[derive(Debug, Clone, Serialize, Deserialize)]
46#[serde(untagged)]
47pub enum CountTableRowsError {
48 Status400(models::ErrorResponse),
49 Status401(models::ErrorResponse),
50 Status403(models::ErrorResponse),
51 Status404(models::ErrorResponse),
52 Status503(models::ErrorResponse),
53 Status5XX(models::ErrorResponse),
54 UnknownValue(serde_json::Value),
55}
56
57#[derive(Debug, Clone, Serialize, Deserialize)]
59#[serde(untagged)]
60pub enum CreateTableError {
61 Status400(models::ErrorResponse),
62 Status401(models::ErrorResponse),
63 Status403(models::ErrorResponse),
64 Status404(models::ErrorResponse),
65 Status503(models::ErrorResponse),
66 Status5XX(models::ErrorResponse),
67 UnknownValue(serde_json::Value),
68}
69
70#[derive(Debug, Clone, Serialize, Deserialize)]
72#[serde(untagged)]
73pub enum DeleteFromTableError {
74 Status400(models::ErrorResponse),
75 Status401(models::ErrorResponse),
76 Status403(models::ErrorResponse),
77 Status404(models::ErrorResponse),
78 Status503(models::ErrorResponse),
79 Status5XX(models::ErrorResponse),
80 UnknownValue(serde_json::Value),
81}
82
83#[derive(Debug, Clone, Serialize, Deserialize)]
85#[serde(untagged)]
86pub enum ExplainTableQueryPlanError {
87 Status400(models::ErrorResponse),
88 Status401(models::ErrorResponse),
89 Status403(models::ErrorResponse),
90 Status404(models::ErrorResponse),
91 Status503(models::ErrorResponse),
92 Status5XX(models::ErrorResponse),
93 UnknownValue(serde_json::Value),
94}
95
96#[derive(Debug, Clone, Serialize, Deserialize)]
98#[serde(untagged)]
99pub enum InsertIntoTableError {
100 Status400(models::ErrorResponse),
101 Status401(models::ErrorResponse),
102 Status403(models::ErrorResponse),
103 Status404(models::ErrorResponse),
104 Status503(models::ErrorResponse),
105 Status5XX(models::ErrorResponse),
106 UnknownValue(serde_json::Value),
107}
108
109#[derive(Debug, Clone, Serialize, Deserialize)]
111#[serde(untagged)]
112pub enum MergeInsertIntoTableError {
113 Status400(models::ErrorResponse),
114 Status401(models::ErrorResponse),
115 Status403(models::ErrorResponse),
116 Status404(models::ErrorResponse),
117 Status503(models::ErrorResponse),
118 Status5XX(models::ErrorResponse),
119 UnknownValue(serde_json::Value),
120}
121
122#[derive(Debug, Clone, Serialize, Deserialize)]
124#[serde(untagged)]
125pub enum QueryTableError {
126 Status400(models::ErrorResponse),
127 Status401(models::ErrorResponse),
128 Status403(models::ErrorResponse),
129 Status404(models::ErrorResponse),
130 Status503(models::ErrorResponse),
131 Status5XX(models::ErrorResponse),
132 UnknownValue(serde_json::Value),
133}
134
135#[derive(Debug, Clone, Serialize, Deserialize)]
137#[serde(untagged)]
138pub enum UpdateTableError {
139 Status400(models::ErrorResponse),
140 Status401(models::ErrorResponse),
141 Status403(models::ErrorResponse),
142 Status404(models::ErrorResponse),
143 Status503(models::ErrorResponse),
144 Status5XX(models::ErrorResponse),
145 UnknownValue(serde_json::Value),
146}
147
148
149pub async fn alter_table_add_columns(configuration: &configuration::Configuration, id: &str, alter_table_add_columns_request: models::AlterTableAddColumnsRequest, delimiter: Option<&str>) -> Result<models::AlterTableAddColumnsResponse, Error<AlterTableAddColumnsError>> {
151 let p_id = id;
153 let p_alter_table_add_columns_request = alter_table_add_columns_request;
154 let p_delimiter = delimiter;
155
156 let uri_str = format!("{}/v1/table/{id}/add_columns", configuration.base_path, id=crate::apis::urlencode(p_id));
157 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
158
159 if let Some(ref param_value) = p_delimiter {
160 req_builder = req_builder.query(&[("delimiter", ¶m_value.to_string())]);
161 }
162 if let Some(ref user_agent) = configuration.user_agent {
163 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
164 }
165 req_builder = req_builder.json(&p_alter_table_add_columns_request);
166
167 let req = req_builder.build()?;
168 let resp = configuration.client.execute(req).await?;
169
170 let status = resp.status();
171 let content_type = resp
172 .headers()
173 .get("content-type")
174 .and_then(|v| v.to_str().ok())
175 .unwrap_or("application/octet-stream");
176 let content_type = super::ContentType::from(content_type);
177
178 if !status.is_client_error() && !status.is_server_error() {
179 let content = resp.text().await?;
180 match content_type {
181 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
182 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::AlterTableAddColumnsResponse`"))),
183 ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `models::AlterTableAddColumnsResponse`")))),
184 }
185 } else {
186 let content = resp.text().await?;
187 let entity: Option<AlterTableAddColumnsError> = serde_json::from_str(&content).ok();
188 Err(Error::ResponseError(ResponseContent { status, content, entity }))
189 }
190}
191
192pub async fn analyze_table_query_plan(configuration: &configuration::Configuration, id: &str, analyze_table_query_plan_request: models::AnalyzeTableQueryPlanRequest, delimiter: Option<&str>) -> Result<models::AnalyzeTableQueryPlanResponse, Error<AnalyzeTableQueryPlanError>> {
194 let p_id = id;
196 let p_analyze_table_query_plan_request = analyze_table_query_plan_request;
197 let p_delimiter = delimiter;
198
199 let uri_str = format!("{}/v1/table/{id}/analyze_plan", configuration.base_path, id=crate::apis::urlencode(p_id));
200 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
201
202 if let Some(ref param_value) = p_delimiter {
203 req_builder = req_builder.query(&[("delimiter", ¶m_value.to_string())]);
204 }
205 if let Some(ref user_agent) = configuration.user_agent {
206 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
207 }
208 req_builder = req_builder.json(&p_analyze_table_query_plan_request);
209
210 let req = req_builder.build()?;
211 let resp = configuration.client.execute(req).await?;
212
213 let status = resp.status();
214 let content_type = resp
215 .headers()
216 .get("content-type")
217 .and_then(|v| v.to_str().ok())
218 .unwrap_or("application/octet-stream");
219 let content_type = super::ContentType::from(content_type);
220
221 if !status.is_client_error() && !status.is_server_error() {
222 let content = resp.text().await?;
223 match content_type {
224 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
225 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::AnalyzeTableQueryPlanResponse`"))),
226 ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `models::AnalyzeTableQueryPlanResponse`")))),
227 }
228 } else {
229 let content = resp.text().await?;
230 let entity: Option<AnalyzeTableQueryPlanError> = serde_json::from_str(&content).ok();
231 Err(Error::ResponseError(ResponseContent { status, content, entity }))
232 }
233}
234
235pub async fn count_table_rows(configuration: &configuration::Configuration, id: &str, count_table_rows_request: models::CountTableRowsRequest, delimiter: Option<&str>) -> Result<i64, Error<CountTableRowsError>> {
237 let p_id = id;
239 let p_count_table_rows_request = count_table_rows_request;
240 let p_delimiter = delimiter;
241
242 let uri_str = format!("{}/v1/table/{id}/count_rows", configuration.base_path, id=crate::apis::urlencode(p_id));
243 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
244
245 if let Some(ref param_value) = p_delimiter {
246 req_builder = req_builder.query(&[("delimiter", ¶m_value.to_string())]);
247 }
248 if let Some(ref user_agent) = configuration.user_agent {
249 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
250 }
251 req_builder = req_builder.json(&p_count_table_rows_request);
252
253 let req = req_builder.build()?;
254 let resp = configuration.client.execute(req).await?;
255
256 let status = resp.status();
257 let content_type = resp
258 .headers()
259 .get("content-type")
260 .and_then(|v| v.to_str().ok())
261 .unwrap_or("application/octet-stream");
262 let content_type = super::ContentType::from(content_type);
263
264 if !status.is_client_error() && !status.is_server_error() {
265 let content = resp.text().await?;
266 match content_type {
267 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
268 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `i64`"))),
269 ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `i64`")))),
270 }
271 } else {
272 let content = resp.text().await?;
273 let entity: Option<CountTableRowsError> = serde_json::from_str(&content).ok();
274 Err(Error::ResponseError(ResponseContent { status, content, entity }))
275 }
276}
277
278pub async fn create_table(configuration: &configuration::Configuration, id: &str, body: Vec<u8>, delimiter: Option<&str>, mode: Option<&str>, x_lance_table_location: Option<&str>, x_lance_table_properties: Option<&str>) -> Result<models::CreateTableResponse, Error<CreateTableError>> {
280 let p_id = id;
282 let p_body = body;
283 let p_delimiter = delimiter;
284 let p_mode = mode;
285 let p_x_lance_table_location = x_lance_table_location;
286 let p_x_lance_table_properties = x_lance_table_properties;
287
288 let uri_str = format!("{}/v1/table/{id}/create", configuration.base_path, id=crate::apis::urlencode(p_id));
289 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
290
291 if let Some(ref param_value) = p_delimiter {
292 req_builder = req_builder.query(&[("delimiter", ¶m_value.to_string())]);
293 }
294 if let Some(ref param_value) = p_mode {
295 req_builder = req_builder.query(&[("mode", ¶m_value.to_string())]);
296 }
297 if let Some(ref user_agent) = configuration.user_agent {
298 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
299 }
300 if let Some(param_value) = p_x_lance_table_location {
301 req_builder = req_builder.header("x-lance-table-location", param_value.to_string());
302 }
303 if let Some(param_value) = p_x_lance_table_properties {
304 req_builder = req_builder.header("x-lance-table-properties", param_value.to_string());
305 }
306 req_builder = req_builder.body(p_body);
307
308 let req = req_builder.build()?;
309 let resp = configuration.client.execute(req).await?;
310
311 let status = resp.status();
312 let content_type = resp
313 .headers()
314 .get("content-type")
315 .and_then(|v| v.to_str().ok())
316 .unwrap_or("application/octet-stream");
317 let content_type = super::ContentType::from(content_type);
318
319 if !status.is_client_error() && !status.is_server_error() {
320 let content = resp.text().await?;
321 match content_type {
322 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
323 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::CreateTableResponse`"))),
324 ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `models::CreateTableResponse`")))),
325 }
326 } else {
327 let content = resp.text().await?;
328 let entity: Option<CreateTableError> = serde_json::from_str(&content).ok();
329 Err(Error::ResponseError(ResponseContent { status, content, entity }))
330 }
331}
332
333pub async fn delete_from_table(configuration: &configuration::Configuration, id: &str, delete_from_table_request: models::DeleteFromTableRequest, delimiter: Option<&str>) -> Result<models::DeleteFromTableResponse, Error<DeleteFromTableError>> {
335 let p_id = id;
337 let p_delete_from_table_request = delete_from_table_request;
338 let p_delimiter = delimiter;
339
340 let uri_str = format!("{}/v1/table/{id}/delete", configuration.base_path, id=crate::apis::urlencode(p_id));
341 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
342
343 if let Some(ref param_value) = p_delimiter {
344 req_builder = req_builder.query(&[("delimiter", ¶m_value.to_string())]);
345 }
346 if let Some(ref user_agent) = configuration.user_agent {
347 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
348 }
349 req_builder = req_builder.json(&p_delete_from_table_request);
350
351 let req = req_builder.build()?;
352 let resp = configuration.client.execute(req).await?;
353
354 let status = resp.status();
355 let content_type = resp
356 .headers()
357 .get("content-type")
358 .and_then(|v| v.to_str().ok())
359 .unwrap_or("application/octet-stream");
360 let content_type = super::ContentType::from(content_type);
361
362 if !status.is_client_error() && !status.is_server_error() {
363 let content = resp.text().await?;
364 match content_type {
365 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
366 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::DeleteFromTableResponse`"))),
367 ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `models::DeleteFromTableResponse`")))),
368 }
369 } else {
370 let content = resp.text().await?;
371 let entity: Option<DeleteFromTableError> = serde_json::from_str(&content).ok();
372 Err(Error::ResponseError(ResponseContent { status, content, entity }))
373 }
374}
375
376pub async fn explain_table_query_plan(configuration: &configuration::Configuration, id: &str, explain_table_query_plan_request: models::ExplainTableQueryPlanRequest, delimiter: Option<&str>) -> Result<models::ExplainTableQueryPlanResponse, Error<ExplainTableQueryPlanError>> {
378 let p_id = id;
380 let p_explain_table_query_plan_request = explain_table_query_plan_request;
381 let p_delimiter = delimiter;
382
383 let uri_str = format!("{}/v1/table/{id}/explain_plan", configuration.base_path, id=crate::apis::urlencode(p_id));
384 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
385
386 if let Some(ref param_value) = p_delimiter {
387 req_builder = req_builder.query(&[("delimiter", ¶m_value.to_string())]);
388 }
389 if let Some(ref user_agent) = configuration.user_agent {
390 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
391 }
392 req_builder = req_builder.json(&p_explain_table_query_plan_request);
393
394 let req = req_builder.build()?;
395 let resp = configuration.client.execute(req).await?;
396
397 let status = resp.status();
398 let content_type = resp
399 .headers()
400 .get("content-type")
401 .and_then(|v| v.to_str().ok())
402 .unwrap_or("application/octet-stream");
403 let content_type = super::ContentType::from(content_type);
404
405 if !status.is_client_error() && !status.is_server_error() {
406 let content = resp.text().await?;
407 match content_type {
408 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
409 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::ExplainTableQueryPlanResponse`"))),
410 ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `models::ExplainTableQueryPlanResponse`")))),
411 }
412 } else {
413 let content = resp.text().await?;
414 let entity: Option<ExplainTableQueryPlanError> = serde_json::from_str(&content).ok();
415 Err(Error::ResponseError(ResponseContent { status, content, entity }))
416 }
417}
418
419pub async fn insert_into_table(configuration: &configuration::Configuration, id: &str, body: Vec<u8>, delimiter: Option<&str>, mode: Option<&str>) -> Result<models::InsertIntoTableResponse, Error<InsertIntoTableError>> {
421 let p_id = id;
423 let p_body = body;
424 let p_delimiter = delimiter;
425 let p_mode = mode;
426
427 let uri_str = format!("{}/v1/table/{id}/insert", configuration.base_path, id=crate::apis::urlencode(p_id));
428 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
429
430 if let Some(ref param_value) = p_delimiter {
431 req_builder = req_builder.query(&[("delimiter", ¶m_value.to_string())]);
432 }
433 if let Some(ref param_value) = p_mode {
434 req_builder = req_builder.query(&[("mode", ¶m_value.to_string())]);
435 }
436 if let Some(ref user_agent) = configuration.user_agent {
437 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
438 }
439 req_builder = req_builder.body(p_body);
440
441 let req = req_builder.build()?;
442 let resp = configuration.client.execute(req).await?;
443
444 let status = resp.status();
445 let content_type = resp
446 .headers()
447 .get("content-type")
448 .and_then(|v| v.to_str().ok())
449 .unwrap_or("application/octet-stream");
450 let content_type = super::ContentType::from(content_type);
451
452 if !status.is_client_error() && !status.is_server_error() {
453 let content = resp.text().await?;
454 match content_type {
455 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
456 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::InsertIntoTableResponse`"))),
457 ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `models::InsertIntoTableResponse`")))),
458 }
459 } else {
460 let content = resp.text().await?;
461 let entity: Option<InsertIntoTableError> = serde_json::from_str(&content).ok();
462 Err(Error::ResponseError(ResponseContent { status, content, entity }))
463 }
464}
465
466pub async fn merge_insert_into_table(configuration: &configuration::Configuration, id: &str, on: &str, body: Vec<u8>, delimiter: Option<&str>, when_matched_update_all: Option<bool>, when_matched_update_all_filt: Option<&str>, when_not_matched_insert_all: Option<bool>, when_not_matched_by_source_delete: Option<bool>, when_not_matched_by_source_delete_filt: Option<&str>) -> Result<models::MergeInsertIntoTableResponse, Error<MergeInsertIntoTableError>> {
468 let p_id = id;
470 let p_on = on;
471 let p_body = body;
472 let p_delimiter = delimiter;
473 let p_when_matched_update_all = when_matched_update_all;
474 let p_when_matched_update_all_filt = when_matched_update_all_filt;
475 let p_when_not_matched_insert_all = when_not_matched_insert_all;
476 let p_when_not_matched_by_source_delete = when_not_matched_by_source_delete;
477 let p_when_not_matched_by_source_delete_filt = when_not_matched_by_source_delete_filt;
478
479 let uri_str = format!("{}/v1/table/{id}/merge_insert", configuration.base_path, id=crate::apis::urlencode(p_id));
480 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
481
482 if let Some(ref param_value) = p_delimiter {
483 req_builder = req_builder.query(&[("delimiter", ¶m_value.to_string())]);
484 }
485 req_builder = req_builder.query(&[("on", &p_on.to_string())]);
486 if let Some(ref param_value) = p_when_matched_update_all {
487 req_builder = req_builder.query(&[("when_matched_update_all", ¶m_value.to_string())]);
488 }
489 if let Some(ref param_value) = p_when_matched_update_all_filt {
490 req_builder = req_builder.query(&[("when_matched_update_all_filt", ¶m_value.to_string())]);
491 }
492 if let Some(ref param_value) = p_when_not_matched_insert_all {
493 req_builder = req_builder.query(&[("when_not_matched_insert_all", ¶m_value.to_string())]);
494 }
495 if let Some(ref param_value) = p_when_not_matched_by_source_delete {
496 req_builder = req_builder.query(&[("when_not_matched_by_source_delete", ¶m_value.to_string())]);
497 }
498 if let Some(ref param_value) = p_when_not_matched_by_source_delete_filt {
499 req_builder = req_builder.query(&[("when_not_matched_by_source_delete_filt", ¶m_value.to_string())]);
500 }
501 if let Some(ref user_agent) = configuration.user_agent {
502 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
503 }
504 req_builder = req_builder.body(p_body);
505
506 let req = req_builder.build()?;
507 let resp = configuration.client.execute(req).await?;
508
509 let status = resp.status();
510 let content_type = resp
511 .headers()
512 .get("content-type")
513 .and_then(|v| v.to_str().ok())
514 .unwrap_or("application/octet-stream");
515 let content_type = super::ContentType::from(content_type);
516
517 if !status.is_client_error() && !status.is_server_error() {
518 let content = resp.text().await?;
519 match content_type {
520 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
521 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::MergeInsertIntoTableResponse`"))),
522 ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `models::MergeInsertIntoTableResponse`")))),
523 }
524 } else {
525 let content = resp.text().await?;
526 let entity: Option<MergeInsertIntoTableError> = serde_json::from_str(&content).ok();
527 Err(Error::ResponseError(ResponseContent { status, content, entity }))
528 }
529}
530
531pub async fn query_table(configuration: &configuration::Configuration, id: &str, query_table_request: models::QueryTableRequest, delimiter: Option<&str>) -> Result<reqwest::Response, Error<QueryTableError>> {
533 let p_id = id;
535 let p_query_table_request = query_table_request;
536 let p_delimiter = delimiter;
537
538 let uri_str = format!("{}/v1/table/{id}/query", configuration.base_path, id=crate::apis::urlencode(p_id));
539 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
540
541 if let Some(ref param_value) = p_delimiter {
542 req_builder = req_builder.query(&[("delimiter", ¶m_value.to_string())]);
543 }
544 if let Some(ref user_agent) = configuration.user_agent {
545 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
546 }
547 req_builder = req_builder.json(&p_query_table_request);
548
549 let req = req_builder.build()?;
550 let resp = configuration.client.execute(req).await?;
551
552 let status = resp.status();
553
554 if !status.is_client_error() && !status.is_server_error() {
555 Ok(resp)
556 } else {
557 let content = resp.text().await?;
558 let entity: Option<QueryTableError> = serde_json::from_str(&content).ok();
559 Err(Error::ResponseError(ResponseContent { status, content, entity }))
560 }
561}
562
563pub async fn update_table(configuration: &configuration::Configuration, id: &str, update_table_request: models::UpdateTableRequest, delimiter: Option<&str>) -> Result<models::UpdateTableResponse, Error<UpdateTableError>> {
565 let p_id = id;
567 let p_update_table_request = update_table_request;
568 let p_delimiter = delimiter;
569
570 let uri_str = format!("{}/v1/table/{id}/update", configuration.base_path, id=crate::apis::urlencode(p_id));
571 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
572
573 if let Some(ref param_value) = p_delimiter {
574 req_builder = req_builder.query(&[("delimiter", ¶m_value.to_string())]);
575 }
576 if let Some(ref user_agent) = configuration.user_agent {
577 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
578 }
579 req_builder = req_builder.json(&p_update_table_request);
580
581 let req = req_builder.build()?;
582 let resp = configuration.client.execute(req).await?;
583
584 let status = resp.status();
585 let content_type = resp
586 .headers()
587 .get("content-type")
588 .and_then(|v| v.to_str().ok())
589 .unwrap_or("application/octet-stream");
590 let content_type = super::ContentType::from(content_type);
591
592 if !status.is_client_error() && !status.is_server_error() {
593 let content = resp.text().await?;
594 match content_type {
595 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
596 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::UpdateTableResponse`"))),
597 ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `models::UpdateTableResponse`")))),
598 }
599 } else {
600 let content = resp.text().await?;
601 let entity: Option<UpdateTableError> = serde_json::from_str(&content).ok();
602 Err(Error::ResponseError(ResponseContent { status, content, entity }))
603 }
604}
605