openshift_openapi/v4_5/api/template/v1/
template_instance_condition.rs

1// Generated from definition com.github.openshift.api.template.v1.TemplateInstanceCondition
2
3/// TemplateInstanceCondition contains condition information for a TemplateInstance.
4#[derive(Clone, Debug, PartialEq)]
5pub struct TemplateInstanceCondition {
6    /// LastTransitionTime is the last time a condition status transitioned from one state to another.
7    pub last_transition_time: k8s_openapi::apimachinery::pkg::apis::meta::v1::Time,
8
9    /// Message is a human readable description of the details of the last transition, complementing reason.
10    pub message: String,
11
12    /// Reason is a brief machine readable explanation for the condition's last transition.
13    pub reason: String,
14
15    /// Status of the condition, one of True, False or Unknown.
16    pub status: String,
17
18    /// Type of the condition, currently Ready or InstantiateFailure.
19    pub type_: String,
20}
21
22impl<'de> serde::Deserialize<'de> for TemplateInstanceCondition {
23    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where D: serde::Deserializer<'de> {
24        #[allow(non_camel_case_types)]
25        enum Field {
26            Key_last_transition_time,
27            Key_message,
28            Key_reason,
29            Key_status,
30            Key_type_,
31            Other,
32        }
33
34        impl<'de> serde::Deserialize<'de> for Field {
35            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where D: serde::Deserializer<'de> {
36                struct Visitor;
37
38                impl<'de> serde::de::Visitor<'de> for Visitor {
39                    type Value = Field;
40
41                    fn expecting(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
42                        f.write_str("field identifier")
43                    }
44
45                    fn visit_str<E>(self, v: &str) -> Result<Self::Value, E> where E: serde::de::Error {
46                        Ok(match v {
47                            "lastTransitionTime" => Field::Key_last_transition_time,
48                            "message" => Field::Key_message,
49                            "reason" => Field::Key_reason,
50                            "status" => Field::Key_status,
51                            "type" => Field::Key_type_,
52                            _ => Field::Other,
53                        })
54                    }
55                }
56
57                deserializer.deserialize_identifier(Visitor)
58            }
59        }
60
61        struct Visitor;
62
63        impl<'de> serde::de::Visitor<'de> for Visitor {
64            type Value = TemplateInstanceCondition;
65
66            fn expecting(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
67                f.write_str("TemplateInstanceCondition")
68            }
69
70            fn visit_map<A>(self, mut map: A) -> Result<Self::Value, A::Error> where A: serde::de::MapAccess<'de> {
71                let mut value_last_transition_time: Option<k8s_openapi::apimachinery::pkg::apis::meta::v1::Time> = None;
72                let mut value_message: Option<String> = None;
73                let mut value_reason: Option<String> = None;
74                let mut value_status: Option<String> = None;
75                let mut value_type_: Option<String> = None;
76
77                while let Some(key) = serde::de::MapAccess::next_key::<Field>(&mut map)? {
78                    match key {
79                        Field::Key_last_transition_time => value_last_transition_time = Some(serde::de::MapAccess::next_value(&mut map)?),
80                        Field::Key_message => value_message = Some(serde::de::MapAccess::next_value(&mut map)?),
81                        Field::Key_reason => value_reason = Some(serde::de::MapAccess::next_value(&mut map)?),
82                        Field::Key_status => value_status = Some(serde::de::MapAccess::next_value(&mut map)?),
83                        Field::Key_type_ => value_type_ = Some(serde::de::MapAccess::next_value(&mut map)?),
84                        Field::Other => { let _: serde::de::IgnoredAny = serde::de::MapAccess::next_value(&mut map)?; },
85                    }
86                }
87
88                Ok(TemplateInstanceCondition {
89                    last_transition_time: value_last_transition_time.ok_or_else(|| serde::de::Error::missing_field("lastTransitionTime"))?,
90                    message: value_message.ok_or_else(|| serde::de::Error::missing_field("message"))?,
91                    reason: value_reason.ok_or_else(|| serde::de::Error::missing_field("reason"))?,
92                    status: value_status.ok_or_else(|| serde::de::Error::missing_field("status"))?,
93                    type_: value_type_.ok_or_else(|| serde::de::Error::missing_field("type"))?,
94                })
95            }
96        }
97
98        deserializer.deserialize_struct(
99            "TemplateInstanceCondition",
100            &[
101                "lastTransitionTime",
102                "message",
103                "reason",
104                "status",
105                "type",
106            ],
107            Visitor,
108        )
109    }
110}
111
112impl serde::Serialize for TemplateInstanceCondition {
113    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> where S: serde::Serializer {
114        let mut state = serializer.serialize_struct(
115            "TemplateInstanceCondition",
116            5,
117        )?;
118        serde::ser::SerializeStruct::serialize_field(&mut state, "lastTransitionTime", &self.last_transition_time)?;
119        serde::ser::SerializeStruct::serialize_field(&mut state, "message", &self.message)?;
120        serde::ser::SerializeStruct::serialize_field(&mut state, "reason", &self.reason)?;
121        serde::ser::SerializeStruct::serialize_field(&mut state, "status", &self.status)?;
122        serde::ser::SerializeStruct::serialize_field(&mut state, "type", &self.type_)?;
123        serde::ser::SerializeStruct::end(state)
124    }
125}