osdm_sys/apis/
availabilities_api.rs

1/*
2 * UIC 90918-10 - OSDM
3 *
4 * Specifications for the OSDM API standard. The OSDM specification supports two modes of operation: Retailer Mode and Distributor Mode. The API works identically in both modes, except that in distributor mode the API also returns fare information.  The following resources are key to get started:    -  [Processes](https://osdm.io/spec/processes/)   -  [Models](https://osdm.io/spec/models/)   -  [Getting started](https://osdm.io/spec/getting-started/) 
5 *
6 * The version of the OpenAPI document: 3.7.0
7 * Contact: osdm@uic.org
8 * Generated by: https://openapi-generator.tech
9 */
10
11
12use reqwest;
13use serde::{Deserialize, Serialize, de::Error as _};
14use crate::{apis::ResponseContent, models};
15use super::{Error, configuration, ContentType};
16
17
18/// struct for typed errors of method [`get_availabilities_continuous_services`]
19#[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/// struct for typed errors of method [`get_availabilities_nearby`]
35#[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/// struct for typed errors of method [`get_availabilities_place_map`]
52#[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/// struct for typed errors of method [`get_availabilities_place_maps`]
69#[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/// struct for typed errors of method [`get_availabilities_preferences`]
86#[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/// struct for typed errors of method [`get_availabilities_vehicle_place_map`]
103#[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
120/// Get availabilities of an on-demand services. 
121pub 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    // add a prefix to parameters to efficiently prevent name collisions
123    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
185/// Get availabilities nearby a given place. 
186pub 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    // add a prefix to parameters to efficiently prevent name collisions
188    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/// Get place map including availabilities. <br><br> Deprecated: Substituted by getAvailabilitiesVehiclePlaceMap (since: 3.5.0, removed with: 4.0.0) 
253#[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    // add a prefix to parameters to efficiently prevent name collisions
256    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/// Get multiple place maps including availabilities. <br><br> Deprecated: Substituted by getAvailabilitiesVehiclePlaceMap (since: 3.5.0, removed with: 4.0.0) 
317#[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    // add a prefix to parameters to efficiently prevent name collisions
320    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&lt;models::PlaceAvailability&gt;`"))),
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&lt;models::PlaceAvailability&gt;`")))),
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
374/// Get availabilities for a set of preferences. 
375pub 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    // add a prefix to parameters to efficiently prevent name collisions
377    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
437/// Get a vehicle map including availabilities. 
438pub 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    // add a prefix to parameters to efficiently prevent name collisions
440    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