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 CreateNamespaceError {
22 Status400(models::ErrorResponse),
23 Status401(models::ErrorResponse),
24 Status403(models::ErrorResponse),
25 Status404(models::ErrorResponse),
26 Status406(models::ErrorResponse),
27 Status409(models::ErrorResponse),
28 Status503(models::ErrorResponse),
29 Status5XX(models::ErrorResponse),
30 UnknownValue(serde_json::Value),
31}
32
33#[derive(Debug, Clone, Serialize, Deserialize)]
35#[serde(untagged)]
36pub enum DescribeNamespaceError {
37 Status400(models::ErrorResponse),
38 Status401(models::ErrorResponse),
39 Status403(models::ErrorResponse),
40 Status404(models::ErrorResponse),
41 Status503(models::ErrorResponse),
42 Status5XX(models::ErrorResponse),
43 UnknownValue(serde_json::Value),
44}
45
46#[derive(Debug, Clone, Serialize, Deserialize)]
48#[serde(untagged)]
49pub enum DropNamespaceError {
50 Status400(models::ErrorResponse),
51 Status401(models::ErrorResponse),
52 Status403(models::ErrorResponse),
53 Status404(models::ErrorResponse),
54 Status409(models::ErrorResponse),
55 Status503(models::ErrorResponse),
56 Status5XX(models::ErrorResponse),
57 UnknownValue(serde_json::Value),
58}
59
60#[derive(Debug, Clone, Serialize, Deserialize)]
62#[serde(untagged)]
63pub enum ListNamespacesError {
64 Status400(models::ErrorResponse),
65 Status401(models::ErrorResponse),
66 Status403(models::ErrorResponse),
67 Status404(models::ErrorResponse),
68 Status406(models::ErrorResponse),
69 Status503(models::ErrorResponse),
70 Status5XX(models::ErrorResponse),
71 UnknownValue(serde_json::Value),
72}
73
74#[derive(Debug, Clone, Serialize, Deserialize)]
76#[serde(untagged)]
77pub enum ListTablesError {
78 Status400(models::ErrorResponse),
79 Status401(models::ErrorResponse),
80 Status403(models::ErrorResponse),
81 Status404(models::ErrorResponse),
82 Status406(models::ErrorResponse),
83 Status503(models::ErrorResponse),
84 Status5XX(models::ErrorResponse),
85 UnknownValue(serde_json::Value),
86}
87
88#[derive(Debug, Clone, Serialize, Deserialize)]
90#[serde(untagged)]
91pub enum NamespaceExistsError {
92 Status400(models::ErrorResponse),
93 Status401(models::ErrorResponse),
94 Status403(models::ErrorResponse),
95 Status404(models::ErrorResponse),
96 Status503(models::ErrorResponse),
97 Status5XX(models::ErrorResponse),
98 UnknownValue(serde_json::Value),
99}
100
101
102pub async fn create_namespace(configuration: &configuration::Configuration, id: &str, create_namespace_request: models::CreateNamespaceRequest, delimiter: Option<&str>) -> Result<models::CreateNamespaceResponse, Error<CreateNamespaceError>> {
104 let p_id = id;
106 let p_create_namespace_request = create_namespace_request;
107 let p_delimiter = delimiter;
108
109 let uri_str = format!("{}/v1/namespace/{id}/create", configuration.base_path, id=crate::apis::urlencode(p_id));
110 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
111
112 if let Some(ref param_value) = p_delimiter {
113 req_builder = req_builder.query(&[("delimiter", ¶m_value.to_string())]);
114 }
115 if let Some(ref user_agent) = configuration.user_agent {
116 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
117 }
118 if let Some(ref token) = configuration.oauth_access_token {
119 req_builder = req_builder.bearer_auth(token.to_owned());
120 };
121 if let Some(ref apikey) = configuration.api_key {
122 let key = apikey.key.clone();
123 let value = match apikey.prefix {
124 Some(ref prefix) => format!("{} {}", prefix, key),
125 None => key,
126 };
127 req_builder = req_builder.header("x-api-key", value);
128 };
129 if let Some(ref token) = configuration.bearer_access_token {
130 req_builder = req_builder.bearer_auth(token.to_owned());
131 };
132 req_builder = req_builder.json(&p_create_namespace_request);
133
134 let req = req_builder.build()?;
135 let resp = configuration.client.execute(req).await?;
136
137 let status = resp.status();
138 let content_type = resp
139 .headers()
140 .get("content-type")
141 .and_then(|v| v.to_str().ok())
142 .unwrap_or("application/octet-stream");
143 let content_type = super::ContentType::from(content_type);
144
145 if !status.is_client_error() && !status.is_server_error() {
146 let content = resp.text().await?;
147 match content_type {
148 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
149 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::CreateNamespaceResponse`"))),
150 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::CreateNamespaceResponse`")))),
151 }
152 } else {
153 let content = resp.text().await?;
154 let entity: Option<CreateNamespaceError> = serde_json::from_str(&content).ok();
155 Err(Error::ResponseError(ResponseContent { status, content, entity }))
156 }
157}
158
159pub async fn describe_namespace(configuration: &configuration::Configuration, id: &str, describe_namespace_request: models::DescribeNamespaceRequest, delimiter: Option<&str>) -> Result<models::DescribeNamespaceResponse, Error<DescribeNamespaceError>> {
161 let p_id = id;
163 let p_describe_namespace_request = describe_namespace_request;
164 let p_delimiter = delimiter;
165
166 let uri_str = format!("{}/v1/namespace/{id}/describe", configuration.base_path, id=crate::apis::urlencode(p_id));
167 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
168
169 if let Some(ref param_value) = p_delimiter {
170 req_builder = req_builder.query(&[("delimiter", ¶m_value.to_string())]);
171 }
172 if let Some(ref user_agent) = configuration.user_agent {
173 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
174 }
175 if let Some(ref token) = configuration.oauth_access_token {
176 req_builder = req_builder.bearer_auth(token.to_owned());
177 };
178 if let Some(ref apikey) = configuration.api_key {
179 let key = apikey.key.clone();
180 let value = match apikey.prefix {
181 Some(ref prefix) => format!("{} {}", prefix, key),
182 None => key,
183 };
184 req_builder = req_builder.header("x-api-key", value);
185 };
186 if let Some(ref token) = configuration.bearer_access_token {
187 req_builder = req_builder.bearer_auth(token.to_owned());
188 };
189 req_builder = req_builder.json(&p_describe_namespace_request);
190
191 let req = req_builder.build()?;
192 let resp = configuration.client.execute(req).await?;
193
194 let status = resp.status();
195 let content_type = resp
196 .headers()
197 .get("content-type")
198 .and_then(|v| v.to_str().ok())
199 .unwrap_or("application/octet-stream");
200 let content_type = super::ContentType::from(content_type);
201
202 if !status.is_client_error() && !status.is_server_error() {
203 let content = resp.text().await?;
204 match content_type {
205 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
206 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::DescribeNamespaceResponse`"))),
207 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::DescribeNamespaceResponse`")))),
208 }
209 } else {
210 let content = resp.text().await?;
211 let entity: Option<DescribeNamespaceError> = serde_json::from_str(&content).ok();
212 Err(Error::ResponseError(ResponseContent { status, content, entity }))
213 }
214}
215
216pub async fn drop_namespace(configuration: &configuration::Configuration, id: &str, drop_namespace_request: models::DropNamespaceRequest, delimiter: Option<&str>) -> Result<models::DropNamespaceResponse, Error<DropNamespaceError>> {
218 let p_id = id;
220 let p_drop_namespace_request = drop_namespace_request;
221 let p_delimiter = delimiter;
222
223 let uri_str = format!("{}/v1/namespace/{id}/drop", configuration.base_path, id=crate::apis::urlencode(p_id));
224 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
225
226 if let Some(ref param_value) = p_delimiter {
227 req_builder = req_builder.query(&[("delimiter", ¶m_value.to_string())]);
228 }
229 if let Some(ref user_agent) = configuration.user_agent {
230 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
231 }
232 if let Some(ref token) = configuration.oauth_access_token {
233 req_builder = req_builder.bearer_auth(token.to_owned());
234 };
235 if let Some(ref apikey) = configuration.api_key {
236 let key = apikey.key.clone();
237 let value = match apikey.prefix {
238 Some(ref prefix) => format!("{} {}", prefix, key),
239 None => key,
240 };
241 req_builder = req_builder.header("x-api-key", value);
242 };
243 if let Some(ref token) = configuration.bearer_access_token {
244 req_builder = req_builder.bearer_auth(token.to_owned());
245 };
246 req_builder = req_builder.json(&p_drop_namespace_request);
247
248 let req = req_builder.build()?;
249 let resp = configuration.client.execute(req).await?;
250
251 let status = resp.status();
252 let content_type = resp
253 .headers()
254 .get("content-type")
255 .and_then(|v| v.to_str().ok())
256 .unwrap_or("application/octet-stream");
257 let content_type = super::ContentType::from(content_type);
258
259 if !status.is_client_error() && !status.is_server_error() {
260 let content = resp.text().await?;
261 match content_type {
262 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
263 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::DropNamespaceResponse`"))),
264 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::DropNamespaceResponse`")))),
265 }
266 } else {
267 let content = resp.text().await?;
268 let entity: Option<DropNamespaceError> = serde_json::from_str(&content).ok();
269 Err(Error::ResponseError(ResponseContent { status, content, entity }))
270 }
271}
272
273pub async fn list_namespaces(configuration: &configuration::Configuration, id: &str, delimiter: Option<&str>, page_token: Option<&str>, limit: Option<i32>) -> Result<models::ListNamespacesResponse, Error<ListNamespacesError>> {
275 let p_id = id;
277 let p_delimiter = delimiter;
278 let p_page_token = page_token;
279 let p_limit = limit;
280
281 let uri_str = format!("{}/v1/namespace/{id}/list", configuration.base_path, id=crate::apis::urlencode(p_id));
282 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
283
284 if let Some(ref param_value) = p_delimiter {
285 req_builder = req_builder.query(&[("delimiter", ¶m_value.to_string())]);
286 }
287 if let Some(ref param_value) = p_page_token {
288 req_builder = req_builder.query(&[("page_token", ¶m_value.to_string())]);
289 }
290 if let Some(ref param_value) = p_limit {
291 req_builder = req_builder.query(&[("limit", ¶m_value.to_string())]);
292 }
293 if let Some(ref user_agent) = configuration.user_agent {
294 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
295 }
296 if let Some(ref token) = configuration.oauth_access_token {
297 req_builder = req_builder.bearer_auth(token.to_owned());
298 };
299 if let Some(ref apikey) = configuration.api_key {
300 let key = apikey.key.clone();
301 let value = match apikey.prefix {
302 Some(ref prefix) => format!("{} {}", prefix, key),
303 None => key,
304 };
305 req_builder = req_builder.header("x-api-key", value);
306 };
307 if let Some(ref token) = configuration.bearer_access_token {
308 req_builder = req_builder.bearer_auth(token.to_owned());
309 };
310
311 let req = req_builder.build()?;
312 let resp = configuration.client.execute(req).await?;
313
314 let status = resp.status();
315 let content_type = resp
316 .headers()
317 .get("content-type")
318 .and_then(|v| v.to_str().ok())
319 .unwrap_or("application/octet-stream");
320 let content_type = super::ContentType::from(content_type);
321
322 if !status.is_client_error() && !status.is_server_error() {
323 let content = resp.text().await?;
324 match content_type {
325 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
326 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::ListNamespacesResponse`"))),
327 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::ListNamespacesResponse`")))),
328 }
329 } else {
330 let content = resp.text().await?;
331 let entity: Option<ListNamespacesError> = serde_json::from_str(&content).ok();
332 Err(Error::ResponseError(ResponseContent { status, content, entity }))
333 }
334}
335
336pub async fn list_tables(configuration: &configuration::Configuration, id: &str, delimiter: Option<&str>, page_token: Option<&str>, limit: Option<i32>) -> Result<models::ListTablesResponse, Error<ListTablesError>> {
338 let p_id = id;
340 let p_delimiter = delimiter;
341 let p_page_token = page_token;
342 let p_limit = limit;
343
344 let uri_str = format!("{}/v1/namespace/{id}/table/list", configuration.base_path, id=crate::apis::urlencode(p_id));
345 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
346
347 if let Some(ref param_value) = p_delimiter {
348 req_builder = req_builder.query(&[("delimiter", ¶m_value.to_string())]);
349 }
350 if let Some(ref param_value) = p_page_token {
351 req_builder = req_builder.query(&[("page_token", ¶m_value.to_string())]);
352 }
353 if let Some(ref param_value) = p_limit {
354 req_builder = req_builder.query(&[("limit", ¶m_value.to_string())]);
355 }
356 if let Some(ref user_agent) = configuration.user_agent {
357 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
358 }
359 if let Some(ref token) = configuration.oauth_access_token {
360 req_builder = req_builder.bearer_auth(token.to_owned());
361 };
362 if let Some(ref apikey) = configuration.api_key {
363 let key = apikey.key.clone();
364 let value = match apikey.prefix {
365 Some(ref prefix) => format!("{} {}", prefix, key),
366 None => key,
367 };
368 req_builder = req_builder.header("x-api-key", value);
369 };
370 if let Some(ref token) = configuration.bearer_access_token {
371 req_builder = req_builder.bearer_auth(token.to_owned());
372 };
373
374 let req = req_builder.build()?;
375 let resp = configuration.client.execute(req).await?;
376
377 let status = resp.status();
378 let content_type = resp
379 .headers()
380 .get("content-type")
381 .and_then(|v| v.to_str().ok())
382 .unwrap_or("application/octet-stream");
383 let content_type = super::ContentType::from(content_type);
384
385 if !status.is_client_error() && !status.is_server_error() {
386 let content = resp.text().await?;
387 match content_type {
388 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
389 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::ListTablesResponse`"))),
390 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::ListTablesResponse`")))),
391 }
392 } else {
393 let content = resp.text().await?;
394 let entity: Option<ListTablesError> = serde_json::from_str(&content).ok();
395 Err(Error::ResponseError(ResponseContent { status, content, entity }))
396 }
397}
398
399pub async fn namespace_exists(configuration: &configuration::Configuration, id: &str, namespace_exists_request: models::NamespaceExistsRequest, delimiter: Option<&str>) -> Result<(), Error<NamespaceExistsError>> {
401 let p_id = id;
403 let p_namespace_exists_request = namespace_exists_request;
404 let p_delimiter = delimiter;
405
406 let uri_str = format!("{}/v1/namespace/{id}/exists", configuration.base_path, id=crate::apis::urlencode(p_id));
407 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
408
409 if let Some(ref param_value) = p_delimiter {
410 req_builder = req_builder.query(&[("delimiter", ¶m_value.to_string())]);
411 }
412 if let Some(ref user_agent) = configuration.user_agent {
413 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
414 }
415 if let Some(ref token) = configuration.oauth_access_token {
416 req_builder = req_builder.bearer_auth(token.to_owned());
417 };
418 if let Some(ref apikey) = configuration.api_key {
419 let key = apikey.key.clone();
420 let value = match apikey.prefix {
421 Some(ref prefix) => format!("{} {}", prefix, key),
422 None => key,
423 };
424 req_builder = req_builder.header("x-api-key", value);
425 };
426 if let Some(ref token) = configuration.bearer_access_token {
427 req_builder = req_builder.bearer_auth(token.to_owned());
428 };
429 req_builder = req_builder.json(&p_namespace_exists_request);
430
431 let req = req_builder.build()?;
432 let resp = configuration.client.execute(req).await?;
433
434 let status = resp.status();
435
436 if !status.is_client_error() && !status.is_server_error() {
437 Ok(())
438 } else {
439 let content = resp.text().await?;
440 let entity: Option<NamespaceExistsError> = serde_json::from_str(&content).ok();
441 Err(Error::ResponseError(ResponseContent { status, content, entity }))
442 }
443}
444