k8s_openapi/v1_32/api/apps/v1/
deployment_condition.rs1#[derive(Clone, Debug, Default, PartialEq)]
5pub struct DeploymentCondition {
6 pub last_transition_time: Option<crate::apimachinery::pkg::apis::meta::v1::Time>,
8
9 pub last_update_time: Option<crate::apimachinery::pkg::apis::meta::v1::Time>,
11
12 pub message: Option<String>,
14
15 pub reason: Option<String>,
17
18 pub status: String,
20
21 pub type_: String,
23}
24
25impl crate::DeepMerge for DeploymentCondition {
26 fn merge_from(&mut self, other: Self) {
27 crate::DeepMerge::merge_from(&mut self.last_transition_time, other.last_transition_time);
28 crate::DeepMerge::merge_from(&mut self.last_update_time, other.last_update_time);
29 crate::DeepMerge::merge_from(&mut self.message, other.message);
30 crate::DeepMerge::merge_from(&mut self.reason, other.reason);
31 crate::DeepMerge::merge_from(&mut self.status, other.status);
32 crate::DeepMerge::merge_from(&mut self.type_, other.type_);
33 }
34}
35
36impl<'de> crate::serde::Deserialize<'de> for DeploymentCondition {
37 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where D: crate::serde::Deserializer<'de> {
38 #[allow(non_camel_case_types)]
39 enum Field {
40 Key_last_transition_time,
41 Key_last_update_time,
42 Key_message,
43 Key_reason,
44 Key_status,
45 Key_type_,
46 Other,
47 }
48
49 impl<'de> crate::serde::Deserialize<'de> for Field {
50 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where D: crate::serde::Deserializer<'de> {
51 struct Visitor;
52
53 impl crate::serde::de::Visitor<'_> for Visitor {
54 type Value = Field;
55
56 fn expecting(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
57 f.write_str("field identifier")
58 }
59
60 fn visit_str<E>(self, v: &str) -> Result<Self::Value, E> where E: crate::serde::de::Error {
61 Ok(match v {
62 "lastTransitionTime" => Field::Key_last_transition_time,
63 "lastUpdateTime" => Field::Key_last_update_time,
64 "message" => Field::Key_message,
65 "reason" => Field::Key_reason,
66 "status" => Field::Key_status,
67 "type" => Field::Key_type_,
68 _ => Field::Other,
69 })
70 }
71 }
72
73 deserializer.deserialize_identifier(Visitor)
74 }
75 }
76
77 struct Visitor;
78
79 impl<'de> crate::serde::de::Visitor<'de> for Visitor {
80 type Value = DeploymentCondition;
81
82 fn expecting(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
83 f.write_str("DeploymentCondition")
84 }
85
86 fn visit_map<A>(self, mut map: A) -> Result<Self::Value, A::Error> where A: crate::serde::de::MapAccess<'de> {
87 let mut value_last_transition_time: Option<crate::apimachinery::pkg::apis::meta::v1::Time> = None;
88 let mut value_last_update_time: Option<crate::apimachinery::pkg::apis::meta::v1::Time> = None;
89 let mut value_message: Option<String> = None;
90 let mut value_reason: Option<String> = None;
91 let mut value_status: Option<String> = None;
92 let mut value_type_: Option<String> = None;
93
94 while let Some(key) = crate::serde::de::MapAccess::next_key::<Field>(&mut map)? {
95 match key {
96 Field::Key_last_transition_time => value_last_transition_time = crate::serde::de::MapAccess::next_value(&mut map)?,
97 Field::Key_last_update_time => value_last_update_time = crate::serde::de::MapAccess::next_value(&mut map)?,
98 Field::Key_message => value_message = crate::serde::de::MapAccess::next_value(&mut map)?,
99 Field::Key_reason => value_reason = crate::serde::de::MapAccess::next_value(&mut map)?,
100 Field::Key_status => value_status = crate::serde::de::MapAccess::next_value(&mut map)?,
101 Field::Key_type_ => value_type_ = crate::serde::de::MapAccess::next_value(&mut map)?,
102 Field::Other => { let _: crate::serde::de::IgnoredAny = crate::serde::de::MapAccess::next_value(&mut map)?; },
103 }
104 }
105
106 Ok(DeploymentCondition {
107 last_transition_time: value_last_transition_time,
108 last_update_time: value_last_update_time,
109 message: value_message,
110 reason: value_reason,
111 status: value_status.unwrap_or_default(),
112 type_: value_type_.unwrap_or_default(),
113 })
114 }
115 }
116
117 deserializer.deserialize_struct(
118 "DeploymentCondition",
119 &[
120 "lastTransitionTime",
121 "lastUpdateTime",
122 "message",
123 "reason",
124 "status",
125 "type",
126 ],
127 Visitor,
128 )
129 }
130}
131
132impl crate::serde::Serialize for DeploymentCondition {
133 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> where S: crate::serde::Serializer {
134 let mut state = serializer.serialize_struct(
135 "DeploymentCondition",
136 2 +
137 self.last_transition_time.as_ref().map_or(0, |_| 1) +
138 self.last_update_time.as_ref().map_or(0, |_| 1) +
139 self.message.as_ref().map_or(0, |_| 1) +
140 self.reason.as_ref().map_or(0, |_| 1),
141 )?;
142 if let Some(value) = &self.last_transition_time {
143 crate::serde::ser::SerializeStruct::serialize_field(&mut state, "lastTransitionTime", value)?;
144 }
145 if let Some(value) = &self.last_update_time {
146 crate::serde::ser::SerializeStruct::serialize_field(&mut state, "lastUpdateTime", value)?;
147 }
148 if let Some(value) = &self.message {
149 crate::serde::ser::SerializeStruct::serialize_field(&mut state, "message", value)?;
150 }
151 if let Some(value) = &self.reason {
152 crate::serde::ser::SerializeStruct::serialize_field(&mut state, "reason", value)?;
153 }
154 crate::serde::ser::SerializeStruct::serialize_field(&mut state, "status", &self.status)?;
155 crate::serde::ser::SerializeStruct::serialize_field(&mut state, "type", &self.type_)?;
156 crate::serde::ser::SerializeStruct::end(state)
157 }
158}
159
160#[cfg(feature = "schemars")]
161impl crate::schemars::JsonSchema for DeploymentCondition {
162 fn schema_name() -> String {
163 "io.k8s.api.apps.v1.DeploymentCondition".to_owned()
164 }
165
166 fn json_schema(__gen: &mut crate::schemars::gen::SchemaGenerator) -> crate::schemars::schema::Schema {
167 crate::schemars::schema::Schema::Object(crate::schemars::schema::SchemaObject {
168 metadata: Some(Box::new(crate::schemars::schema::Metadata {
169 description: Some("DeploymentCondition describes the state of a deployment at a certain point.".to_owned()),
170 ..Default::default()
171 })),
172 instance_type: Some(crate::schemars::schema::SingleOrVec::Single(Box::new(crate::schemars::schema::InstanceType::Object))),
173 object: Some(Box::new(crate::schemars::schema::ObjectValidation {
174 properties: [
175 (
176 "lastTransitionTime".to_owned(),
177 {
178 let mut schema_obj = __gen.subschema_for::<crate::apimachinery::pkg::apis::meta::v1::Time>().into_object();
179 schema_obj.metadata = Some(Box::new(crate::schemars::schema::Metadata {
180 description: Some("Last time the condition transitioned from one status to another.".to_owned()),
181 ..Default::default()
182 }));
183 crate::schemars::schema::Schema::Object(schema_obj)
184 },
185 ),
186 (
187 "lastUpdateTime".to_owned(),
188 {
189 let mut schema_obj = __gen.subschema_for::<crate::apimachinery::pkg::apis::meta::v1::Time>().into_object();
190 schema_obj.metadata = Some(Box::new(crate::schemars::schema::Metadata {
191 description: Some("The last time this condition was updated.".to_owned()),
192 ..Default::default()
193 }));
194 crate::schemars::schema::Schema::Object(schema_obj)
195 },
196 ),
197 (
198 "message".to_owned(),
199 crate::schemars::schema::Schema::Object(crate::schemars::schema::SchemaObject {
200 metadata: Some(Box::new(crate::schemars::schema::Metadata {
201 description: Some("A human readable message indicating details about the transition.".to_owned()),
202 ..Default::default()
203 })),
204 instance_type: Some(crate::schemars::schema::SingleOrVec::Single(Box::new(crate::schemars::schema::InstanceType::String))),
205 ..Default::default()
206 }),
207 ),
208 (
209 "reason".to_owned(),
210 crate::schemars::schema::Schema::Object(crate::schemars::schema::SchemaObject {
211 metadata: Some(Box::new(crate::schemars::schema::Metadata {
212 description: Some("The reason for the condition's last transition.".to_owned()),
213 ..Default::default()
214 })),
215 instance_type: Some(crate::schemars::schema::SingleOrVec::Single(Box::new(crate::schemars::schema::InstanceType::String))),
216 ..Default::default()
217 }),
218 ),
219 (
220 "status".to_owned(),
221 crate::schemars::schema::Schema::Object(crate::schemars::schema::SchemaObject {
222 metadata: Some(Box::new(crate::schemars::schema::Metadata {
223 description: Some("Status of the condition, one of True, False, Unknown.".to_owned()),
224 ..Default::default()
225 })),
226 instance_type: Some(crate::schemars::schema::SingleOrVec::Single(Box::new(crate::schemars::schema::InstanceType::String))),
227 ..Default::default()
228 }),
229 ),
230 (
231 "type".to_owned(),
232 crate::schemars::schema::Schema::Object(crate::schemars::schema::SchemaObject {
233 metadata: Some(Box::new(crate::schemars::schema::Metadata {
234 description: Some("Type of deployment condition.".to_owned()),
235 ..Default::default()
236 })),
237 instance_type: Some(crate::schemars::schema::SingleOrVec::Single(Box::new(crate::schemars::schema::InstanceType::String))),
238 ..Default::default()
239 }),
240 ),
241 ].into(),
242 required: [
243 "status".to_owned(),
244 "type".to_owned(),
245 ].into(),
246 ..Default::default()
247 })),
248 ..Default::default()
249 })
250 }
251}