1#[derive(Clone, Debug, Default, PartialEq)]
11pub struct Route {
12 pub metadata: k8s_openapi::apimachinery::pkg::apis::meta::v1::ObjectMeta,
14
15 pub spec: crate::api::route::v1::RouteSpec,
17
18 pub status: crate::api::route::v1::RouteStatus,
20}
21
22impl Route {
27 #[cfg(feature = "api")]
43 pub fn create_namespaced_route(
44 namespace: &str,
45 body: &crate::api::route::v1::Route,
46 optional: k8s_openapi::CreateOptional<'_>,
47 ) -> Result<(http::Request<Vec<u8>>, fn(http::StatusCode) -> k8s_openapi::ResponseBody<k8s_openapi::CreateResponse<Self>>), k8s_openapi::RequestError> {
48 let __url = format!("/apis/route.openshift.io/v1/namespaces/{namespace}/routes?",
49 namespace = k8s_openapi::percent_encoding::percent_encode(namespace.as_bytes(), k8s_openapi::percent_encoding2::PATH_SEGMENT_ENCODE_SET),
50 );
51 let mut __query_pairs = k8s_openapi::url::form_urlencoded::Serializer::new(__url);
52 optional.__serialize(&mut __query_pairs);
53 let __url = __query_pairs.finish();
54
55 let __request = http::Request::post(__url);
56 let __body = serde_json::to_vec(body).map_err(k8s_openapi::RequestError::Json)?;
57 let __request = __request.header(http::header::CONTENT_TYPE, http::header::HeaderValue::from_static("application/json"));
58 match __request.body(__body) {
59 Ok(request) => Ok((request, k8s_openapi::ResponseBody::new)),
60 Err(err) => Err(k8s_openapi::RequestError::Http(err)),
61 }
62 }
63}
64
65impl Route {
68 #[cfg(feature = "api")]
86 pub fn delete_collection_namespaced_route(
87 namespace: &str,
88 delete_optional: k8s_openapi::DeleteOptional<'_>,
89 list_optional: k8s_openapi::ListOptional<'_>,
90 ) -> Result<(http::Request<Vec<u8>>, fn(http::StatusCode) -> k8s_openapi::ResponseBody<k8s_openapi::DeleteResponse<k8s_openapi::List<Self>>>), k8s_openapi::RequestError> {
91 let __url = format!("/apis/route.openshift.io/v1/namespaces/{namespace}/routes?",
92 namespace = k8s_openapi::percent_encoding::percent_encode(namespace.as_bytes(), k8s_openapi::percent_encoding2::PATH_SEGMENT_ENCODE_SET),
93 );
94 let mut __query_pairs = k8s_openapi::url::form_urlencoded::Serializer::new(__url);
95 list_optional.__serialize(&mut __query_pairs);
96 let __url = __query_pairs.finish();
97
98 let __request = http::Request::delete(__url);
99 let __body = serde_json::to_vec(&delete_optional).map_err(k8s_openapi::RequestError::Json)?;
100 let __request = __request.header(http::header::CONTENT_TYPE, http::header::HeaderValue::from_static("application/json"));
101 match __request.body(__body) {
102 Ok(request) => Ok((request, k8s_openapi::ResponseBody::new)),
103 Err(err) => Err(k8s_openapi::RequestError::Http(err)),
104 }
105 }
106}
107
108impl Route {
111 #[cfg(feature = "api")]
129 pub fn delete_namespaced_route(
130 name: &str,
131 namespace: &str,
132 optional: k8s_openapi::DeleteOptional<'_>,
133 ) -> Result<(http::Request<Vec<u8>>, fn(http::StatusCode) -> k8s_openapi::ResponseBody<k8s_openapi::DeleteResponse<Self>>), k8s_openapi::RequestError> {
134 let __url = format!("/apis/route.openshift.io/v1/namespaces/{namespace}/routes/{name}",
135 name = k8s_openapi::percent_encoding::percent_encode(name.as_bytes(), k8s_openapi::percent_encoding2::PATH_SEGMENT_ENCODE_SET),
136 namespace = k8s_openapi::percent_encoding::percent_encode(namespace.as_bytes(), k8s_openapi::percent_encoding2::PATH_SEGMENT_ENCODE_SET),
137 );
138
139 let __request = http::Request::delete(__url);
140 let __body = serde_json::to_vec(&optional).map_err(k8s_openapi::RequestError::Json)?;
141 let __request = __request.header(http::header::CONTENT_TYPE, http::header::HeaderValue::from_static("application/json"));
142 match __request.body(__body) {
143 Ok(request) => Ok((request, k8s_openapi::ResponseBody::new)),
144 Err(err) => Err(k8s_openapi::RequestError::Http(err)),
145 }
146 }
147}
148
149impl Route {
152 #[cfg(feature = "api")]
168 pub fn list_namespaced_route(
169 namespace: &str,
170 optional: k8s_openapi::ListOptional<'_>,
171 ) -> Result<(http::Request<Vec<u8>>, fn(http::StatusCode) -> k8s_openapi::ResponseBody<k8s_openapi::ListResponse<Self>>), k8s_openapi::RequestError> {
172 let __url = format!("/apis/route.openshift.io/v1/namespaces/{namespace}/routes?",
173 namespace = k8s_openapi::percent_encoding::percent_encode(namespace.as_bytes(), k8s_openapi::percent_encoding2::PATH_SEGMENT_ENCODE_SET),
174 );
175 let mut __query_pairs = k8s_openapi::url::form_urlencoded::Serializer::new(__url);
176 optional.__serialize(&mut __query_pairs);
177 let __url = __query_pairs.finish();
178
179 let __request = http::Request::get(__url);
180 let __body = vec![];
181 match __request.body(__body) {
182 Ok(request) => Ok((request, k8s_openapi::ResponseBody::new)),
183 Err(err) => Err(k8s_openapi::RequestError::Http(err)),
184 }
185 }
186}
187
188impl Route {
191 #[cfg(feature = "api")]
203 pub fn list_route_for_all_namespaces(
204 optional: k8s_openapi::ListOptional<'_>,
205 ) -> Result<(http::Request<Vec<u8>>, fn(http::StatusCode) -> k8s_openapi::ResponseBody<k8s_openapi::ListResponse<Self>>), k8s_openapi::RequestError> {
206 let __url = "/apis/route.openshift.io/v1/routes?".to_owned();
207 let mut __query_pairs = k8s_openapi::url::form_urlencoded::Serializer::new(__url);
208 optional.__serialize(&mut __query_pairs);
209 let __url = __query_pairs.finish();
210
211 let __request = http::Request::get(__url);
212 let __body = vec![];
213 match __request.body(__body) {
214 Ok(request) => Ok((request, k8s_openapi::ResponseBody::new)),
215 Err(err) => Err(k8s_openapi::RequestError::Http(err)),
216 }
217 }
218}
219
220impl Route {
223 #[cfg(feature = "api")]
243 pub fn patch_namespaced_route(
244 name: &str,
245 namespace: &str,
246 body: &k8s_openapi::apimachinery::pkg::apis::meta::v1::Patch,
247 optional: k8s_openapi::PatchOptional<'_>,
248 ) -> Result<(http::Request<Vec<u8>>, fn(http::StatusCode) -> k8s_openapi::ResponseBody<k8s_openapi::PatchResponse<Self>>), k8s_openapi::RequestError> {
249 let __url = format!("/apis/route.openshift.io/v1/namespaces/{namespace}/routes/{name}?",
250 name = k8s_openapi::percent_encoding::percent_encode(name.as_bytes(), k8s_openapi::percent_encoding2::PATH_SEGMENT_ENCODE_SET),
251 namespace = k8s_openapi::percent_encoding::percent_encode(namespace.as_bytes(), k8s_openapi::percent_encoding2::PATH_SEGMENT_ENCODE_SET),
252 );
253 let mut __query_pairs = k8s_openapi::url::form_urlencoded::Serializer::new(__url);
254 optional.__serialize(&mut __query_pairs);
255 let __url = __query_pairs.finish();
256
257 let __request = http::Request::patch(__url);
258 let __body = serde_json::to_vec(body).map_err(k8s_openapi::RequestError::Json)?;
259 let __request = __request.header(http::header::CONTENT_TYPE, http::header::HeaderValue::from_static(match body {
260 k8s_openapi::apimachinery::pkg::apis::meta::v1::Patch::Json(_) => "application/json-patch+json",
261 k8s_openapi::apimachinery::pkg::apis::meta::v1::Patch::Merge(_) => "application/merge-patch+json",
262 k8s_openapi::apimachinery::pkg::apis::meta::v1::Patch::StrategicMerge(_) => "application/strategic-merge-patch+json",
263 }));
264 match __request.body(__body) {
265 Ok(request) => Ok((request, k8s_openapi::ResponseBody::new)),
266 Err(err) => Err(k8s_openapi::RequestError::Http(err)),
267 }
268 }
269}
270
271impl Route {
274 #[cfg(feature = "api")]
294 pub fn patch_namespaced_route_status(
295 name: &str,
296 namespace: &str,
297 body: &k8s_openapi::apimachinery::pkg::apis::meta::v1::Patch,
298 optional: k8s_openapi::PatchOptional<'_>,
299 ) -> Result<(http::Request<Vec<u8>>, fn(http::StatusCode) -> k8s_openapi::ResponseBody<k8s_openapi::PatchResponse<Self>>), k8s_openapi::RequestError> {
300 let __url = format!("/apis/route.openshift.io/v1/namespaces/{namespace}/routes/{name}/status?",
301 name = k8s_openapi::percent_encoding::percent_encode(name.as_bytes(), k8s_openapi::percent_encoding2::PATH_SEGMENT_ENCODE_SET),
302 namespace = k8s_openapi::percent_encoding::percent_encode(namespace.as_bytes(), k8s_openapi::percent_encoding2::PATH_SEGMENT_ENCODE_SET),
303 );
304 let mut __query_pairs = k8s_openapi::url::form_urlencoded::Serializer::new(__url);
305 optional.__serialize(&mut __query_pairs);
306 let __url = __query_pairs.finish();
307
308 let __request = http::Request::patch(__url);
309 let __body = serde_json::to_vec(body).map_err(k8s_openapi::RequestError::Json)?;
310 let __request = __request.header(http::header::CONTENT_TYPE, http::header::HeaderValue::from_static(match body {
311 k8s_openapi::apimachinery::pkg::apis::meta::v1::Patch::Json(_) => "application/json-patch+json",
312 k8s_openapi::apimachinery::pkg::apis::meta::v1::Patch::Merge(_) => "application/merge-patch+json",
313 k8s_openapi::apimachinery::pkg::apis::meta::v1::Patch::StrategicMerge(_) => "application/strategic-merge-patch+json",
314 }));
315 match __request.body(__body) {
316 Ok(request) => Ok((request, k8s_openapi::ResponseBody::new)),
317 Err(err) => Err(k8s_openapi::RequestError::Http(err)),
318 }
319 }
320}
321
322impl Route {
325 #[cfg(feature = "api")]
343 pub fn read_namespaced_route(
344 name: &str,
345 namespace: &str,
346 optional: ReadNamespacedRouteOptional<'_>,
347 ) -> Result<(http::Request<Vec<u8>>, fn(http::StatusCode) -> k8s_openapi::ResponseBody<ReadNamespacedRouteResponse>), k8s_openapi::RequestError> {
348 let ReadNamespacedRouteOptional {
349 exact,
350 export,
351 pretty,
352 } = optional;
353 let __url = format!("/apis/route.openshift.io/v1/namespaces/{namespace}/routes/{name}?",
354 name = k8s_openapi::percent_encoding::percent_encode(name.as_bytes(), k8s_openapi::percent_encoding2::PATH_SEGMENT_ENCODE_SET),
355 namespace = k8s_openapi::percent_encoding::percent_encode(namespace.as_bytes(), k8s_openapi::percent_encoding2::PATH_SEGMENT_ENCODE_SET),
356 );
357 let mut __query_pairs = k8s_openapi::url::form_urlencoded::Serializer::new(__url);
358 if let Some(exact) = exact {
359 __query_pairs.append_pair("exact", &exact.to_string());
360 }
361 if let Some(export) = export {
362 __query_pairs.append_pair("export", &export.to_string());
363 }
364 if let Some(pretty) = pretty {
365 __query_pairs.append_pair("pretty", pretty);
366 }
367 let __url = __query_pairs.finish();
368
369 let __request = http::Request::get(__url);
370 let __body = vec![];
371 match __request.body(__body) {
372 Ok(request) => Ok((request, k8s_openapi::ResponseBody::new)),
373 Err(err) => Err(k8s_openapi::RequestError::Http(err)),
374 }
375 }
376}
377
378#[cfg(feature = "api")]
380#[derive(Clone, Copy, Debug, Default)]
381pub struct ReadNamespacedRouteOptional<'a> {
382 pub exact: Option<bool>,
384 pub export: Option<bool>,
386 pub pretty: Option<&'a str>,
388}
389
390#[cfg(feature = "api")]
392#[derive(Debug)]
393pub enum ReadNamespacedRouteResponse {
394 Ok(crate::api::route::v1::Route),
395 Other(Result<Option<serde_json::Value>, serde_json::Error>),
396}
397
398#[cfg(feature = "api")]
399impl k8s_openapi::Response for ReadNamespacedRouteResponse {
400 fn try_from_parts(status_code: http::StatusCode, buf: &[u8]) -> Result<(Self, usize), k8s_openapi::ResponseError> {
401 match status_code {
402 http::StatusCode::OK => {
403 let result = match serde_json::from_slice(buf) {
404 Ok(value) => value,
405 Err(ref err) if err.is_eof() => return Err(k8s_openapi::ResponseError::NeedMoreData),
406 Err(err) => return Err(k8s_openapi::ResponseError::Json(err)),
407 };
408 Ok((ReadNamespacedRouteResponse::Ok(result), buf.len()))
409 },
410 _ => {
411 let (result, read) =
412 if buf.is_empty() {
413 (Ok(None), 0)
414 }
415 else {
416 match serde_json::from_slice(buf) {
417 Ok(value) => (Ok(Some(value)), buf.len()),
418 Err(ref err) if err.is_eof() => return Err(k8s_openapi::ResponseError::NeedMoreData),
419 Err(err) => (Err(err), 0),
420 }
421 };
422 Ok((ReadNamespacedRouteResponse::Other(result), read))
423 },
424 }
425 }
426}
427
428impl Route {
431 #[cfg(feature = "api")]
449 pub fn read_namespaced_route_status(
450 name: &str,
451 namespace: &str,
452 optional: ReadNamespacedRouteStatusOptional<'_>,
453 ) -> Result<(http::Request<Vec<u8>>, fn(http::StatusCode) -> k8s_openapi::ResponseBody<ReadNamespacedRouteStatusResponse>), k8s_openapi::RequestError> {
454 let ReadNamespacedRouteStatusOptional {
455 pretty,
456 } = optional;
457 let __url = format!("/apis/route.openshift.io/v1/namespaces/{namespace}/routes/{name}/status?",
458 name = k8s_openapi::percent_encoding::percent_encode(name.as_bytes(), k8s_openapi::percent_encoding2::PATH_SEGMENT_ENCODE_SET),
459 namespace = k8s_openapi::percent_encoding::percent_encode(namespace.as_bytes(), k8s_openapi::percent_encoding2::PATH_SEGMENT_ENCODE_SET),
460 );
461 let mut __query_pairs = k8s_openapi::url::form_urlencoded::Serializer::new(__url);
462 if let Some(pretty) = pretty {
463 __query_pairs.append_pair("pretty", pretty);
464 }
465 let __url = __query_pairs.finish();
466
467 let __request = http::Request::get(__url);
468 let __body = vec![];
469 match __request.body(__body) {
470 Ok(request) => Ok((request, k8s_openapi::ResponseBody::new)),
471 Err(err) => Err(k8s_openapi::RequestError::Http(err)),
472 }
473 }
474}
475
476#[cfg(feature = "api")]
478#[derive(Clone, Copy, Debug, Default)]
479pub struct ReadNamespacedRouteStatusOptional<'a> {
480 pub pretty: Option<&'a str>,
482}
483
484#[cfg(feature = "api")]
486#[derive(Debug)]
487pub enum ReadNamespacedRouteStatusResponse {
488 Ok(crate::api::route::v1::Route),
489 Other(Result<Option<serde_json::Value>, serde_json::Error>),
490}
491
492#[cfg(feature = "api")]
493impl k8s_openapi::Response for ReadNamespacedRouteStatusResponse {
494 fn try_from_parts(status_code: http::StatusCode, buf: &[u8]) -> Result<(Self, usize), k8s_openapi::ResponseError> {
495 match status_code {
496 http::StatusCode::OK => {
497 let result = match serde_json::from_slice(buf) {
498 Ok(value) => value,
499 Err(ref err) if err.is_eof() => return Err(k8s_openapi::ResponseError::NeedMoreData),
500 Err(err) => return Err(k8s_openapi::ResponseError::Json(err)),
501 };
502 Ok((ReadNamespacedRouteStatusResponse::Ok(result), buf.len()))
503 },
504 _ => {
505 let (result, read) =
506 if buf.is_empty() {
507 (Ok(None), 0)
508 }
509 else {
510 match serde_json::from_slice(buf) {
511 Ok(value) => (Ok(Some(value)), buf.len()),
512 Err(ref err) if err.is_eof() => return Err(k8s_openapi::ResponseError::NeedMoreData),
513 Err(err) => (Err(err), 0),
514 }
515 };
516 Ok((ReadNamespacedRouteStatusResponse::Other(result), read))
517 },
518 }
519 }
520}
521
522impl Route {
525 #[cfg(feature = "api")]
545 pub fn replace_namespaced_route(
546 name: &str,
547 namespace: &str,
548 body: &crate::api::route::v1::Route,
549 optional: k8s_openapi::ReplaceOptional<'_>,
550 ) -> Result<(http::Request<Vec<u8>>, fn(http::StatusCode) -> k8s_openapi::ResponseBody<k8s_openapi::ReplaceResponse<Self>>), k8s_openapi::RequestError> {
551 let __url = format!("/apis/route.openshift.io/v1/namespaces/{namespace}/routes/{name}?",
552 name = k8s_openapi::percent_encoding::percent_encode(name.as_bytes(), k8s_openapi::percent_encoding2::PATH_SEGMENT_ENCODE_SET),
553 namespace = k8s_openapi::percent_encoding::percent_encode(namespace.as_bytes(), k8s_openapi::percent_encoding2::PATH_SEGMENT_ENCODE_SET),
554 );
555 let mut __query_pairs = k8s_openapi::url::form_urlencoded::Serializer::new(__url);
556 optional.__serialize(&mut __query_pairs);
557 let __url = __query_pairs.finish();
558
559 let __request = http::Request::put(__url);
560 let __body = serde_json::to_vec(body).map_err(k8s_openapi::RequestError::Json)?;
561 let __request = __request.header(http::header::CONTENT_TYPE, http::header::HeaderValue::from_static("application/json"));
562 match __request.body(__body) {
563 Ok(request) => Ok((request, k8s_openapi::ResponseBody::new)),
564 Err(err) => Err(k8s_openapi::RequestError::Http(err)),
565 }
566 }
567}
568
569impl Route {
572 #[cfg(feature = "api")]
592 pub fn replace_namespaced_route_status(
593 name: &str,
594 namespace: &str,
595 body: &crate::api::route::v1::Route,
596 optional: k8s_openapi::ReplaceOptional<'_>,
597 ) -> Result<(http::Request<Vec<u8>>, fn(http::StatusCode) -> k8s_openapi::ResponseBody<k8s_openapi::ReplaceResponse<Self>>), k8s_openapi::RequestError> {
598 let __url = format!("/apis/route.openshift.io/v1/namespaces/{namespace}/routes/{name}/status?",
599 name = k8s_openapi::percent_encoding::percent_encode(name.as_bytes(), k8s_openapi::percent_encoding2::PATH_SEGMENT_ENCODE_SET),
600 namespace = k8s_openapi::percent_encoding::percent_encode(namespace.as_bytes(), k8s_openapi::percent_encoding2::PATH_SEGMENT_ENCODE_SET),
601 );
602 let mut __query_pairs = k8s_openapi::url::form_urlencoded::Serializer::new(__url);
603 optional.__serialize(&mut __query_pairs);
604 let __url = __query_pairs.finish();
605
606 let __request = http::Request::put(__url);
607 let __body = serde_json::to_vec(body).map_err(k8s_openapi::RequestError::Json)?;
608 let __request = __request.header(http::header::CONTENT_TYPE, http::header::HeaderValue::from_static("application/json"));
609 match __request.body(__body) {
610 Ok(request) => Ok((request, k8s_openapi::ResponseBody::new)),
611 Err(err) => Err(k8s_openapi::RequestError::Http(err)),
612 }
613 }
614}
615
616impl Route {
619 #[cfg(feature = "api")]
635 pub fn watch_namespaced_route(
636 namespace: &str,
637 optional: k8s_openapi::WatchOptional<'_>,
638 ) -> Result<(http::Request<Vec<u8>>, fn(http::StatusCode) -> k8s_openapi::ResponseBody<k8s_openapi::WatchResponse<Self>>), k8s_openapi::RequestError> {
639 let __url = format!("/apis/route.openshift.io/v1/namespaces/{namespace}/routes?",
640 namespace = k8s_openapi::percent_encoding::percent_encode(namespace.as_bytes(), k8s_openapi::percent_encoding2::PATH_SEGMENT_ENCODE_SET),
641 );
642 let mut __query_pairs = k8s_openapi::url::form_urlencoded::Serializer::new(__url);
643 optional.__serialize(&mut __query_pairs);
644 let __url = __query_pairs.finish();
645
646 let __request = http::Request::get(__url);
647 let __body = vec![];
648 match __request.body(__body) {
649 Ok(request) => Ok((request, k8s_openapi::ResponseBody::new)),
650 Err(err) => Err(k8s_openapi::RequestError::Http(err)),
651 }
652 }
653}
654
655impl Route {
658 #[cfg(feature = "api")]
670 pub fn watch_route_for_all_namespaces(
671 optional: k8s_openapi::WatchOptional<'_>,
672 ) -> Result<(http::Request<Vec<u8>>, fn(http::StatusCode) -> k8s_openapi::ResponseBody<k8s_openapi::WatchResponse<Self>>), k8s_openapi::RequestError> {
673 let __url = "/apis/route.openshift.io/v1/routes?".to_owned();
674 let mut __query_pairs = k8s_openapi::url::form_urlencoded::Serializer::new(__url);
675 optional.__serialize(&mut __query_pairs);
676 let __url = __query_pairs.finish();
677
678 let __request = http::Request::get(__url);
679 let __body = vec![];
680 match __request.body(__body) {
681 Ok(request) => Ok((request, k8s_openapi::ResponseBody::new)),
682 Err(err) => Err(k8s_openapi::RequestError::Http(err)),
683 }
684 }
685}
686
687impl k8s_openapi::Resource for Route {
690 const API_VERSION: &'static str = "route.openshift.io/v1";
691 const GROUP: &'static str = "route.openshift.io";
692 const KIND: &'static str = "Route";
693 const VERSION: &'static str = "v1";
694}
695
696impl k8s_openapi::ListableResource for Route {
697 const LIST_KIND: &'static str = concat!("Route", "List");
698}
699
700impl k8s_openapi::Metadata for Route {
701 type Ty = k8s_openapi::apimachinery::pkg::apis::meta::v1::ObjectMeta;
702
703 fn metadata(&self) -> &<Self as k8s_openapi::Metadata>::Ty {
704 &self.metadata
705 }
706
707 fn metadata_mut(&mut self) -> &mut<Self as k8s_openapi::Metadata>::Ty {
708 &mut self.metadata
709 }
710}
711
712impl<'de> serde::Deserialize<'de> for Route {
713 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where D: serde::Deserializer<'de> {
714 #[allow(non_camel_case_types)]
715 enum Field {
716 Key_api_version,
717 Key_kind,
718 Key_metadata,
719 Key_spec,
720 Key_status,
721 Other,
722 }
723
724 impl<'de> serde::Deserialize<'de> for Field {
725 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where D: serde::Deserializer<'de> {
726 struct Visitor;
727
728 impl<'de> serde::de::Visitor<'de> for Visitor {
729 type Value = Field;
730
731 fn expecting(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
732 f.write_str("field identifier")
733 }
734
735 fn visit_str<E>(self, v: &str) -> Result<Self::Value, E> where E: serde::de::Error {
736 Ok(match v {
737 "apiVersion" => Field::Key_api_version,
738 "kind" => Field::Key_kind,
739 "metadata" => Field::Key_metadata,
740 "spec" => Field::Key_spec,
741 "status" => Field::Key_status,
742 _ => Field::Other,
743 })
744 }
745 }
746
747 deserializer.deserialize_identifier(Visitor)
748 }
749 }
750
751 struct Visitor;
752
753 impl<'de> serde::de::Visitor<'de> for Visitor {
754 type Value = Route;
755
756 fn expecting(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
757 f.write_str(<Self::Value as k8s_openapi::Resource>::KIND)
758 }
759
760 fn visit_map<A>(self, mut map: A) -> Result<Self::Value, A::Error> where A: serde::de::MapAccess<'de> {
761 let mut value_metadata: Option<k8s_openapi::apimachinery::pkg::apis::meta::v1::ObjectMeta> = None;
762 let mut value_spec: Option<crate::api::route::v1::RouteSpec> = None;
763 let mut value_status: Option<crate::api::route::v1::RouteStatus> = None;
764
765 while let Some(key) = serde::de::MapAccess::next_key::<Field>(&mut map)? {
766 match key {
767 Field::Key_api_version => {
768 let value_api_version: String = serde::de::MapAccess::next_value(&mut map)?;
769 if value_api_version != <Self::Value as k8s_openapi::Resource>::API_VERSION {
770 return Err(serde::de::Error::invalid_value(serde::de::Unexpected::Str(&value_api_version), &<Self::Value as k8s_openapi::Resource>::API_VERSION));
771 }
772 },
773 Field::Key_kind => {
774 let value_kind: String = serde::de::MapAccess::next_value(&mut map)?;
775 if value_kind != <Self::Value as k8s_openapi::Resource>::KIND {
776 return Err(serde::de::Error::invalid_value(serde::de::Unexpected::Str(&value_kind), &<Self::Value as k8s_openapi::Resource>::KIND));
777 }
778 },
779 Field::Key_metadata => value_metadata = Some(serde::de::MapAccess::next_value(&mut map)?),
780 Field::Key_spec => value_spec = Some(serde::de::MapAccess::next_value(&mut map)?),
781 Field::Key_status => value_status = Some(serde::de::MapAccess::next_value(&mut map)?),
782 Field::Other => { let _: serde::de::IgnoredAny = serde::de::MapAccess::next_value(&mut map)?; },
783 }
784 }
785
786 Ok(Route {
787 metadata: value_metadata.ok_or_else(|| serde::de::Error::missing_field("metadata"))?,
788 spec: value_spec.ok_or_else(|| serde::de::Error::missing_field("spec"))?,
789 status: value_status.ok_or_else(|| serde::de::Error::missing_field("status"))?,
790 })
791 }
792 }
793
794 deserializer.deserialize_struct(
795 <Self as k8s_openapi::Resource>::KIND,
796 &[
797 "apiVersion",
798 "kind",
799 "metadata",
800 "spec",
801 "status",
802 ],
803 Visitor,
804 )
805 }
806}
807
808impl serde::Serialize for Route {
809 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> where S: serde::Serializer {
810 let mut state = serializer.serialize_struct(
811 <Self as k8s_openapi::Resource>::KIND,
812 5,
813 )?;
814 serde::ser::SerializeStruct::serialize_field(&mut state, "apiVersion", <Self as k8s_openapi::Resource>::API_VERSION)?;
815 serde::ser::SerializeStruct::serialize_field(&mut state, "kind", <Self as k8s_openapi::Resource>::KIND)?;
816 serde::ser::SerializeStruct::serialize_field(&mut state, "metadata", &self.metadata)?;
817 serde::ser::SerializeStruct::serialize_field(&mut state, "spec", &self.spec)?;
818 serde::ser::SerializeStruct::serialize_field(&mut state, "status", &self.status)?;
819 serde::ser::SerializeStruct::end(state)
820 }
821}