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 GetAvailabilitiesContinuousServicesError {
22 Status400(models::Problem),
23 Status401(models::Problem),
24 Status403(models::Problem),
25 Status404(models::Problem),
26 Status415(models::Problem),
27 Status500(models::Problem),
28 Status501(models::Problem),
29 Status503(models::Problem),
30 DefaultResponse(models::Problem),
31 UnknownValue(serde_json::Value),
32}
33
34#[derive(Debug, Clone, Serialize, Deserialize)]
36#[serde(untagged)]
37pub enum GetAvailabilitiesNearbyError {
38 Status400(models::Problem),
39 Status401(models::Problem),
40 Status403(models::Problem),
41 Status404(models::Problem),
42 Status406(models::Problem),
43 Status415(models::Problem),
44 Status500(models::Problem),
45 Status501(models::Problem),
46 Status503(models::Problem),
47 DefaultResponse(models::Problem),
48 UnknownValue(serde_json::Value),
49}
50
51#[derive(Debug, Clone, Serialize, Deserialize)]
53#[serde(untagged)]
54pub enum GetAvailabilitiesPlaceMapError {
55 Status400(models::Problem),
56 Status401(models::Problem),
57 Status403(models::Problem),
58 Status404(models::Problem),
59 Status406(models::Problem),
60 Status415(models::Problem),
61 Status500(models::Problem),
62 Status501(models::Problem),
63 Status503(models::Problem),
64 DefaultResponse(models::Problem),
65 UnknownValue(serde_json::Value),
66}
67
68#[derive(Debug, Clone, Serialize, Deserialize)]
70#[serde(untagged)]
71pub enum GetAvailabilitiesPlaceMapsError {
72 Status400(models::Problem),
73 Status401(models::Problem),
74 Status403(models::Problem),
75 Status404(models::Problem),
76 Status406(models::Problem),
77 Status415(models::Problem),
78 Status500(models::Problem),
79 Status501(models::Problem),
80 Status503(models::Problem),
81 DefaultResponse(models::Problem),
82 UnknownValue(serde_json::Value),
83}
84
85#[derive(Debug, Clone, Serialize, Deserialize)]
87#[serde(untagged)]
88pub enum GetAvailabilitiesPreferencesError {
89 Status400(models::Problem),
90 Status401(models::Problem),
91 Status403(models::Problem),
92 Status404(models::Problem),
93 Status406(models::Problem),
94 Status415(models::Problem),
95 Status500(models::Problem),
96 Status501(models::Problem),
97 Status503(models::Problem),
98 DefaultResponse(models::Problem),
99 UnknownValue(serde_json::Value),
100}
101
102#[derive(Debug, Clone, Serialize, Deserialize)]
104#[serde(untagged)]
105pub enum GetAvailabilitiesVehiclePlaceMapError {
106 Status400(models::Problem),
107 Status401(models::Problem),
108 Status403(models::Problem),
109 Status404(models::Problem),
110 Status406(models::Problem),
111 Status415(models::Problem),
112 Status500(models::Problem),
113 Status501(models::Problem),
114 Status503(models::Problem),
115 DefaultResponse(models::Problem),
116 UnknownValue(serde_json::Value),
117}
118
119
120pub async fn get_availabilities_continuous_services(configuration: &configuration::Configuration, context_id: &str, context_type: models::ContextType, resource_id: &str, resource_type: models::ResourceType, continuous_service_availability_scope: models::ContinuousServiceAvailabilityScope, requestor: Option<&str>, accept_language: Option<&str>, traceparent: Option<&str>, tracestate: Option<&str>) -> Result<models::ContinuousServicesAvailabilityResponse, Error<GetAvailabilitiesContinuousServicesError>> {
122 let p_query_context_id = context_id;
124 let p_query_context_type = context_type;
125 let p_query_resource_id = resource_id;
126 let p_query_resource_type = resource_type;
127 let p_body_continuous_service_availability_scope = continuous_service_availability_scope;
128 let p_header_requestor = requestor;
129 let p_header_accept_language = accept_language;
130 let p_header_traceparent = traceparent;
131 let p_header_tracestate = tracestate;
132
133 let uri_str = format!("{}/availabilities/on-demand-services", configuration.base_path);
134 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
135
136 req_builder = req_builder.query(&[("contextId", &p_query_context_id.to_string())]);
137 req_builder = req_builder.query(&[("contextType", &p_query_context_type.to_string())]);
138 req_builder = req_builder.query(&[("resourceId", &p_query_resource_id.to_string())]);
139 req_builder = req_builder.query(&[("resourceType", &p_query_resource_type.to_string())]);
140 if let Some(ref user_agent) = configuration.user_agent {
141 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
142 }
143 if let Some(param_value) = p_header_requestor {
144 req_builder = req_builder.header("Requestor", param_value.to_string());
145 }
146 if let Some(param_value) = p_header_accept_language {
147 req_builder = req_builder.header("Accept-Language", param_value.to_string());
148 }
149 if let Some(param_value) = p_header_traceparent {
150 req_builder = req_builder.header("traceparent", param_value.to_string());
151 }
152 if let Some(param_value) = p_header_tracestate {
153 req_builder = req_builder.header("tracestate", param_value.to_string());
154 }
155 if let Some(ref token) = configuration.oauth_access_token {
156 req_builder = req_builder.bearer_auth(token.to_owned());
157 };
158 req_builder = req_builder.json(&p_body_continuous_service_availability_scope);
159
160 let req = req_builder.build()?;
161 let resp = configuration.client.execute(req).await?;
162
163 let status = resp.status();
164 let content_type = resp
165 .headers()
166 .get("content-type")
167 .and_then(|v| v.to_str().ok())
168 .unwrap_or("application/octet-stream");
169 let content_type = super::ContentType::from(content_type);
170
171 if !status.is_client_error() && !status.is_server_error() {
172 let content = resp.text().await?;
173 match content_type {
174 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
175 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::ContinuousServicesAvailabilityResponse`"))),
176 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::ContinuousServicesAvailabilityResponse`")))),
177 }
178 } else {
179 let content = resp.text().await?;
180 let entity: Option<GetAvailabilitiesContinuousServicesError> = serde_json::from_str(&content).ok();
181 Err(Error::ResponseError(ResponseContent { status, content, entity }))
182 }
183}
184
185pub async fn get_availabilities_nearby(configuration: &configuration::Configuration, context_id: &str, context_type: models::ContextType, resource_id: &str, resource_type: models::ResourceType, coach_number: &str, place_number: &str, requestor: Option<&str>, accept_language: Option<&str>, traceparent: Option<&str>, tracestate: Option<&str>) -> Result<models::PlaceAvailabilityCollectionResponse, Error<GetAvailabilitiesNearbyError>> {
187 let p_query_context_id = context_id;
189 let p_query_context_type = context_type;
190 let p_query_resource_id = resource_id;
191 let p_query_resource_type = resource_type;
192 let p_query_coach_number = coach_number;
193 let p_query_place_number = place_number;
194 let p_header_requestor = requestor;
195 let p_header_accept_language = accept_language;
196 let p_header_traceparent = traceparent;
197 let p_header_tracestate = tracestate;
198
199 let uri_str = format!("{}/availabilities/nearby", configuration.base_path);
200 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
201
202 req_builder = req_builder.query(&[("contextId", &p_query_context_id.to_string())]);
203 req_builder = req_builder.query(&[("contextType", &p_query_context_type.to_string())]);
204 req_builder = req_builder.query(&[("resourceId", &p_query_resource_id.to_string())]);
205 req_builder = req_builder.query(&[("resourceType", &p_query_resource_type.to_string())]);
206 req_builder = req_builder.query(&[("coachNumber", &p_query_coach_number.to_string())]);
207 req_builder = req_builder.query(&[("placeNumber", &p_query_place_number.to_string())]);
208 if let Some(ref user_agent) = configuration.user_agent {
209 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
210 }
211 if let Some(param_value) = p_header_requestor {
212 req_builder = req_builder.header("Requestor", param_value.to_string());
213 }
214 if let Some(param_value) = p_header_accept_language {
215 req_builder = req_builder.header("Accept-Language", param_value.to_string());
216 }
217 if let Some(param_value) = p_header_traceparent {
218 req_builder = req_builder.header("traceparent", param_value.to_string());
219 }
220 if let Some(param_value) = p_header_tracestate {
221 req_builder = req_builder.header("tracestate", param_value.to_string());
222 }
223 if let Some(ref token) = configuration.oauth_access_token {
224 req_builder = req_builder.bearer_auth(token.to_owned());
225 };
226
227 let req = req_builder.build()?;
228 let resp = configuration.client.execute(req).await?;
229
230 let status = resp.status();
231 let content_type = resp
232 .headers()
233 .get("content-type")
234 .and_then(|v| v.to_str().ok())
235 .unwrap_or("application/octet-stream");
236 let content_type = super::ContentType::from(content_type);
237
238 if !status.is_client_error() && !status.is_server_error() {
239 let content = resp.text().await?;
240 match content_type {
241 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
242 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::PlaceAvailabilityCollectionResponse`"))),
243 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::PlaceAvailabilityCollectionResponse`")))),
244 }
245 } else {
246 let content = resp.text().await?;
247 let entity: Option<GetAvailabilitiesNearbyError> = serde_json::from_str(&content).ok();
248 Err(Error::ResponseError(ResponseContent { status, content, entity }))
249 }
250}
251
252#[deprecated]
254pub async fn get_availabilities_place_map(configuration: &configuration::Configuration, context_id: &str, context_type: models::ContextType, resource_id: &str, resource_type: models::ResourceType, requestor: Option<&str>, accept_language: Option<&str>, traceparent: Option<&str>, tracestate: Option<&str>) -> Result<models::PlaceAvailabilityResponse, Error<GetAvailabilitiesPlaceMapError>> {
255 let p_query_context_id = context_id;
257 let p_query_context_type = context_type;
258 let p_query_resource_id = resource_id;
259 let p_query_resource_type = resource_type;
260 let p_header_requestor = requestor;
261 let p_header_accept_language = accept_language;
262 let p_header_traceparent = traceparent;
263 let p_header_tracestate = tracestate;
264
265 let uri_str = format!("{}/availabilities/place-map", configuration.base_path);
266 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
267
268 req_builder = req_builder.query(&[("contextId", &p_query_context_id.to_string())]);
269 req_builder = req_builder.query(&[("contextType", &p_query_context_type.to_string())]);
270 req_builder = req_builder.query(&[("resourceId", &p_query_resource_id.to_string())]);
271 req_builder = req_builder.query(&[("resourceType", &p_query_resource_type.to_string())]);
272 if let Some(ref user_agent) = configuration.user_agent {
273 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
274 }
275 if let Some(param_value) = p_header_requestor {
276 req_builder = req_builder.header("Requestor", param_value.to_string());
277 }
278 if let Some(param_value) = p_header_accept_language {
279 req_builder = req_builder.header("Accept-Language", param_value.to_string());
280 }
281 if let Some(param_value) = p_header_traceparent {
282 req_builder = req_builder.header("traceparent", param_value.to_string());
283 }
284 if let Some(param_value) = p_header_tracestate {
285 req_builder = req_builder.header("tracestate", param_value.to_string());
286 }
287 if let Some(ref token) = configuration.oauth_access_token {
288 req_builder = req_builder.bearer_auth(token.to_owned());
289 };
290
291 let req = req_builder.build()?;
292 let resp = configuration.client.execute(req).await?;
293
294 let status = resp.status();
295 let content_type = resp
296 .headers()
297 .get("content-type")
298 .and_then(|v| v.to_str().ok())
299 .unwrap_or("application/octet-stream");
300 let content_type = super::ContentType::from(content_type);
301
302 if !status.is_client_error() && !status.is_server_error() {
303 let content = resp.text().await?;
304 match content_type {
305 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
306 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::PlaceAvailabilityResponse`"))),
307 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::PlaceAvailabilityResponse`")))),
308 }
309 } else {
310 let content = resp.text().await?;
311 let entity: Option<GetAvailabilitiesPlaceMapError> = serde_json::from_str(&content).ok();
312 Err(Error::ResponseError(ResponseContent { status, content, entity }))
313 }
314}
315
316#[deprecated]
318pub async fn get_availabilities_place_maps(configuration: &configuration::Configuration, availability_scope: models::AvailabilityScope, requestor: Option<&str>, accept_language: Option<&str>, traceparent: Option<&str>, tracestate: Option<&str>) -> Result<Vec<models::PlaceAvailability>, Error<GetAvailabilitiesPlaceMapsError>> {
319 let p_body_availability_scope = availability_scope;
321 let p_header_requestor = requestor;
322 let p_header_accept_language = accept_language;
323 let p_header_traceparent = traceparent;
324 let p_header_tracestate = tracestate;
325
326 let uri_str = format!("{}/availabilities/place-map", configuration.base_path);
327 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
328
329 if let Some(ref user_agent) = configuration.user_agent {
330 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
331 }
332 if let Some(param_value) = p_header_requestor {
333 req_builder = req_builder.header("Requestor", param_value.to_string());
334 }
335 if let Some(param_value) = p_header_accept_language {
336 req_builder = req_builder.header("Accept-Language", param_value.to_string());
337 }
338 if let Some(param_value) = p_header_traceparent {
339 req_builder = req_builder.header("traceparent", param_value.to_string());
340 }
341 if let Some(param_value) = p_header_tracestate {
342 req_builder = req_builder.header("tracestate", param_value.to_string());
343 }
344 if let Some(ref token) = configuration.oauth_access_token {
345 req_builder = req_builder.bearer_auth(token.to_owned());
346 };
347 req_builder = req_builder.json(&p_body_availability_scope);
348
349 let req = req_builder.build()?;
350 let resp = configuration.client.execute(req).await?;
351
352 let status = resp.status();
353 let content_type = resp
354 .headers()
355 .get("content-type")
356 .and_then(|v| v.to_str().ok())
357 .unwrap_or("application/octet-stream");
358 let content_type = super::ContentType::from(content_type);
359
360 if !status.is_client_error() && !status.is_server_error() {
361 let content = resp.text().await?;
362 match content_type {
363 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
364 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `Vec<models::PlaceAvailability>`"))),
365 ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `Vec<models::PlaceAvailability>`")))),
366 }
367 } else {
368 let content = resp.text().await?;
369 let entity: Option<GetAvailabilitiesPlaceMapsError> = serde_json::from_str(&content).ok();
370 Err(Error::ResponseError(ResponseContent { status, content, entity }))
371 }
372}
373
374pub async fn get_availabilities_preferences(configuration: &configuration::Configuration, context_id: &str, context_type: models::ContextType, resource_id: &str, resource_type: models::ResourceType, requestor: Option<&str>, accept_language: Option<&str>, traceparent: Option<&str>, tracestate: Option<&str>) -> Result<models::PlaceAvailabilityCollectionResponse, Error<GetAvailabilitiesPreferencesError>> {
376 let p_query_context_id = context_id;
378 let p_query_context_type = context_type;
379 let p_query_resource_id = resource_id;
380 let p_query_resource_type = resource_type;
381 let p_header_requestor = requestor;
382 let p_header_accept_language = accept_language;
383 let p_header_traceparent = traceparent;
384 let p_header_tracestate = tracestate;
385
386 let uri_str = format!("{}/availabilities/preferences", configuration.base_path);
387 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
388
389 req_builder = req_builder.query(&[("contextId", &p_query_context_id.to_string())]);
390 req_builder = req_builder.query(&[("contextType", &p_query_context_type.to_string())]);
391 req_builder = req_builder.query(&[("resourceId", &p_query_resource_id.to_string())]);
392 req_builder = req_builder.query(&[("resourceType", &p_query_resource_type.to_string())]);
393 if let Some(ref user_agent) = configuration.user_agent {
394 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
395 }
396 if let Some(param_value) = p_header_requestor {
397 req_builder = req_builder.header("Requestor", param_value.to_string());
398 }
399 if let Some(param_value) = p_header_accept_language {
400 req_builder = req_builder.header("Accept-Language", param_value.to_string());
401 }
402 if let Some(param_value) = p_header_traceparent {
403 req_builder = req_builder.header("traceparent", param_value.to_string());
404 }
405 if let Some(param_value) = p_header_tracestate {
406 req_builder = req_builder.header("tracestate", param_value.to_string());
407 }
408 if let Some(ref token) = configuration.oauth_access_token {
409 req_builder = req_builder.bearer_auth(token.to_owned());
410 };
411
412 let req = req_builder.build()?;
413 let resp = configuration.client.execute(req).await?;
414
415 let status = resp.status();
416 let content_type = resp
417 .headers()
418 .get("content-type")
419 .and_then(|v| v.to_str().ok())
420 .unwrap_or("application/octet-stream");
421 let content_type = super::ContentType::from(content_type);
422
423 if !status.is_client_error() && !status.is_server_error() {
424 let content = resp.text().await?;
425 match content_type {
426 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
427 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::PlaceAvailabilityCollectionResponse`"))),
428 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::PlaceAvailabilityCollectionResponse`")))),
429 }
430 } else {
431 let content = resp.text().await?;
432 let entity: Option<GetAvailabilitiesPreferencesError> = serde_json::from_str(&content).ok();
433 Err(Error::ResponseError(ResponseContent { status, content, entity }))
434 }
435}
436
437pub async fn get_availabilities_vehicle_place_map(configuration: &configuration::Configuration, place_availability_map_request: models::PlaceAvailabilityMapRequest, requestor: Option<&str>, accept_language: Option<&str>, traceparent: Option<&str>, tracestate: Option<&str>, x_accept_namespace: Option<&str>) -> Result<models::PlaceAvailabilityMapResponse, Error<GetAvailabilitiesVehiclePlaceMapError>> {
439 let p_body_place_availability_map_request = place_availability_map_request;
441 let p_header_requestor = requestor;
442 let p_header_accept_language = accept_language;
443 let p_header_traceparent = traceparent;
444 let p_header_tracestate = tracestate;
445 let p_header_x_accept_namespace = x_accept_namespace;
446
447 let uri_str = format!("{}/availabilities/vehicle-place-map", configuration.base_path);
448 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
449
450 if let Some(ref user_agent) = configuration.user_agent {
451 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
452 }
453 if let Some(param_value) = p_header_requestor {
454 req_builder = req_builder.header("Requestor", param_value.to_string());
455 }
456 if let Some(param_value) = p_header_accept_language {
457 req_builder = req_builder.header("Accept-Language", param_value.to_string());
458 }
459 if let Some(param_value) = p_header_traceparent {
460 req_builder = req_builder.header("traceparent", param_value.to_string());
461 }
462 if let Some(param_value) = p_header_tracestate {
463 req_builder = req_builder.header("tracestate", param_value.to_string());
464 }
465 if let Some(param_value) = p_header_x_accept_namespace {
466 req_builder = req_builder.header("x-accept-namespace", param_value.to_string());
467 }
468 if let Some(ref token) = configuration.oauth_access_token {
469 req_builder = req_builder.bearer_auth(token.to_owned());
470 };
471 req_builder = req_builder.json(&p_body_place_availability_map_request);
472
473 let req = req_builder.build()?;
474 let resp = configuration.client.execute(req).await?;
475
476 let status = resp.status();
477 let content_type = resp
478 .headers()
479 .get("content-type")
480 .and_then(|v| v.to_str().ok())
481 .unwrap_or("application/octet-stream");
482 let content_type = super::ContentType::from(content_type);
483
484 if !status.is_client_error() && !status.is_server_error() {
485 let content = resp.text().await?;
486 match content_type {
487 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
488 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::PlaceAvailabilityMapResponse`"))),
489 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::PlaceAvailabilityMapResponse`")))),
490 }
491 } else {
492 let content = resp.text().await?;
493 let entity: Option<GetAvailabilitiesVehiclePlaceMapError> = serde_json::from_str(&content).ok();
494 Err(Error::ResponseError(ResponseContent { status, content, entity }))
495 }
496}
497