openshift_openapi/v4_5/api/route/v1/
tls_config.rs1#[derive(Clone, Debug, Default, PartialEq)]
5pub struct TLSConfig {
6 pub ca_certificate: Option<String>,
8
9 pub certificate: Option<String>,
11
12 pub destination_ca_certificate: Option<String>,
14
15 pub insecure_edge_termination_policy: Option<String>,
19
20 pub key: Option<String>,
22
23 pub termination: String,
25}
26
27impl<'de> serde::Deserialize<'de> for TLSConfig {
28 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where D: serde::Deserializer<'de> {
29 #[allow(non_camel_case_types)]
30 enum Field {
31 Key_ca_certificate,
32 Key_certificate,
33 Key_destination_ca_certificate,
34 Key_insecure_edge_termination_policy,
35 Key_key,
36 Key_termination,
37 Other,
38 }
39
40 impl<'de> serde::Deserialize<'de> for Field {
41 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where D: serde::Deserializer<'de> {
42 struct Visitor;
43
44 impl<'de> serde::de::Visitor<'de> for Visitor {
45 type Value = Field;
46
47 fn expecting(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
48 f.write_str("field identifier")
49 }
50
51 fn visit_str<E>(self, v: &str) -> Result<Self::Value, E> where E: serde::de::Error {
52 Ok(match v {
53 "caCertificate" => Field::Key_ca_certificate,
54 "certificate" => Field::Key_certificate,
55 "destinationCACertificate" => Field::Key_destination_ca_certificate,
56 "insecureEdgeTerminationPolicy" => Field::Key_insecure_edge_termination_policy,
57 "key" => Field::Key_key,
58 "termination" => Field::Key_termination,
59 _ => Field::Other,
60 })
61 }
62 }
63
64 deserializer.deserialize_identifier(Visitor)
65 }
66 }
67
68 struct Visitor;
69
70 impl<'de> serde::de::Visitor<'de> for Visitor {
71 type Value = TLSConfig;
72
73 fn expecting(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
74 f.write_str("TLSConfig")
75 }
76
77 fn visit_map<A>(self, mut map: A) -> Result<Self::Value, A::Error> where A: serde::de::MapAccess<'de> {
78 let mut value_ca_certificate: Option<String> = None;
79 let mut value_certificate: Option<String> = None;
80 let mut value_destination_ca_certificate: Option<String> = None;
81 let mut value_insecure_edge_termination_policy: Option<String> = None;
82 let mut value_key: Option<String> = None;
83 let mut value_termination: Option<String> = None;
84
85 while let Some(key) = serde::de::MapAccess::next_key::<Field>(&mut map)? {
86 match key {
87 Field::Key_ca_certificate => value_ca_certificate = serde::de::MapAccess::next_value(&mut map)?,
88 Field::Key_certificate => value_certificate = serde::de::MapAccess::next_value(&mut map)?,
89 Field::Key_destination_ca_certificate => value_destination_ca_certificate = serde::de::MapAccess::next_value(&mut map)?,
90 Field::Key_insecure_edge_termination_policy => value_insecure_edge_termination_policy = serde::de::MapAccess::next_value(&mut map)?,
91 Field::Key_key => value_key = serde::de::MapAccess::next_value(&mut map)?,
92 Field::Key_termination => value_termination = Some(serde::de::MapAccess::next_value(&mut map)?),
93 Field::Other => { let _: serde::de::IgnoredAny = serde::de::MapAccess::next_value(&mut map)?; },
94 }
95 }
96
97 Ok(TLSConfig {
98 ca_certificate: value_ca_certificate,
99 certificate: value_certificate,
100 destination_ca_certificate: value_destination_ca_certificate,
101 insecure_edge_termination_policy: value_insecure_edge_termination_policy,
102 key: value_key,
103 termination: value_termination.ok_or_else(|| serde::de::Error::missing_field("termination"))?,
104 })
105 }
106 }
107
108 deserializer.deserialize_struct(
109 "TLSConfig",
110 &[
111 "caCertificate",
112 "certificate",
113 "destinationCACertificate",
114 "insecureEdgeTerminationPolicy",
115 "key",
116 "termination",
117 ],
118 Visitor,
119 )
120 }
121}
122
123impl serde::Serialize for TLSConfig {
124 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> where S: serde::Serializer {
125 let mut state = serializer.serialize_struct(
126 "TLSConfig",
127 1 +
128 self.ca_certificate.as_ref().map_or(0, |_| 1) +
129 self.certificate.as_ref().map_or(0, |_| 1) +
130 self.destination_ca_certificate.as_ref().map_or(0, |_| 1) +
131 self.insecure_edge_termination_policy.as_ref().map_or(0, |_| 1) +
132 self.key.as_ref().map_or(0, |_| 1),
133 )?;
134 if let Some(value) = &self.ca_certificate {
135 serde::ser::SerializeStruct::serialize_field(&mut state, "caCertificate", value)?;
136 }
137 if let Some(value) = &self.certificate {
138 serde::ser::SerializeStruct::serialize_field(&mut state, "certificate", value)?;
139 }
140 if let Some(value) = &self.destination_ca_certificate {
141 serde::ser::SerializeStruct::serialize_field(&mut state, "destinationCACertificate", value)?;
142 }
143 if let Some(value) = &self.insecure_edge_termination_policy {
144 serde::ser::SerializeStruct::serialize_field(&mut state, "insecureEdgeTerminationPolicy", value)?;
145 }
146 if let Some(value) = &self.key {
147 serde::ser::SerializeStruct::serialize_field(&mut state, "key", value)?;
148 }
149 serde::ser::SerializeStruct::serialize_field(&mut state, "termination", &self.termination)?;
150 serde::ser::SerializeStruct::end(state)
151 }
152}