openshift_openapi/v4_5/api/apps/v1/
deployment_config_rollback.rs1#[derive(Clone, Debug, Default, PartialEq)]
5pub struct DeploymentConfigRollback {
6 pub name: String,
8
9 pub spec: crate::api::apps::v1::DeploymentConfigRollbackSpec,
11
12 pub updated_annotations: Option<std::collections::BTreeMap<String, String>>,
14}
15
16impl DeploymentConfigRollback {
21 #[cfg(feature = "api")]
41 pub fn create_namespaced_deployment_config_rollback(
42 name: &str,
43 namespace: &str,
44 body: &crate::api::apps::v1::DeploymentConfigRollback,
45 optional: k8s_openapi::CreateOptional<'_>,
46 ) -> Result<(http::Request<Vec<u8>>, fn(http::StatusCode) -> k8s_openapi::ResponseBody<k8s_openapi::CreateResponse<Self>>), k8s_openapi::RequestError> {
47 let __url = format!("/apis/apps.openshift.io/v1/namespaces/{namespace}/deploymentconfigs/{name}/rollback?",
48 name = k8s_openapi::percent_encoding::percent_encode(name.as_bytes(), k8s_openapi::percent_encoding2::PATH_SEGMENT_ENCODE_SET),
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 k8s_openapi::Resource for DeploymentConfigRollback {
68 const API_VERSION: &'static str = "apps.openshift.io/v1";
69 const GROUP: &'static str = "apps.openshift.io";
70 const KIND: &'static str = "DeploymentConfigRollback";
71 const VERSION: &'static str = "v1";
72}
73
74impl<'de> serde::Deserialize<'de> for DeploymentConfigRollback {
75 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where D: serde::Deserializer<'de> {
76 #[allow(non_camel_case_types)]
77 enum Field {
78 Key_api_version,
79 Key_kind,
80 Key_name,
81 Key_spec,
82 Key_updated_annotations,
83 Other,
84 }
85
86 impl<'de> serde::Deserialize<'de> for Field {
87 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where D: serde::Deserializer<'de> {
88 struct Visitor;
89
90 impl<'de> serde::de::Visitor<'de> for Visitor {
91 type Value = Field;
92
93 fn expecting(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
94 f.write_str("field identifier")
95 }
96
97 fn visit_str<E>(self, v: &str) -> Result<Self::Value, E> where E: serde::de::Error {
98 Ok(match v {
99 "apiVersion" => Field::Key_api_version,
100 "kind" => Field::Key_kind,
101 "name" => Field::Key_name,
102 "spec" => Field::Key_spec,
103 "updatedAnnotations" => Field::Key_updated_annotations,
104 _ => Field::Other,
105 })
106 }
107 }
108
109 deserializer.deserialize_identifier(Visitor)
110 }
111 }
112
113 struct Visitor;
114
115 impl<'de> serde::de::Visitor<'de> for Visitor {
116 type Value = DeploymentConfigRollback;
117
118 fn expecting(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
119 f.write_str(<Self::Value as k8s_openapi::Resource>::KIND)
120 }
121
122 fn visit_map<A>(self, mut map: A) -> Result<Self::Value, A::Error> where A: serde::de::MapAccess<'de> {
123 let mut value_name: Option<String> = None;
124 let mut value_spec: Option<crate::api::apps::v1::DeploymentConfigRollbackSpec> = None;
125 let mut value_updated_annotations: Option<std::collections::BTreeMap<String, String>> = None;
126
127 while let Some(key) = serde::de::MapAccess::next_key::<Field>(&mut map)? {
128 match key {
129 Field::Key_api_version => {
130 let value_api_version: String = serde::de::MapAccess::next_value(&mut map)?;
131 if value_api_version != <Self::Value as k8s_openapi::Resource>::API_VERSION {
132 return Err(serde::de::Error::invalid_value(serde::de::Unexpected::Str(&value_api_version), &<Self::Value as k8s_openapi::Resource>::API_VERSION));
133 }
134 },
135 Field::Key_kind => {
136 let value_kind: String = serde::de::MapAccess::next_value(&mut map)?;
137 if value_kind != <Self::Value as k8s_openapi::Resource>::KIND {
138 return Err(serde::de::Error::invalid_value(serde::de::Unexpected::Str(&value_kind), &<Self::Value as k8s_openapi::Resource>::KIND));
139 }
140 },
141 Field::Key_name => value_name = Some(serde::de::MapAccess::next_value(&mut map)?),
142 Field::Key_spec => value_spec = Some(serde::de::MapAccess::next_value(&mut map)?),
143 Field::Key_updated_annotations => value_updated_annotations = serde::de::MapAccess::next_value(&mut map)?,
144 Field::Other => { let _: serde::de::IgnoredAny = serde::de::MapAccess::next_value(&mut map)?; },
145 }
146 }
147
148 Ok(DeploymentConfigRollback {
149 name: value_name.ok_or_else(|| serde::de::Error::missing_field("name"))?,
150 spec: value_spec.ok_or_else(|| serde::de::Error::missing_field("spec"))?,
151 updated_annotations: value_updated_annotations,
152 })
153 }
154 }
155
156 deserializer.deserialize_struct(
157 <Self as k8s_openapi::Resource>::KIND,
158 &[
159 "apiVersion",
160 "kind",
161 "name",
162 "spec",
163 "updatedAnnotations",
164 ],
165 Visitor,
166 )
167 }
168}
169
170impl serde::Serialize for DeploymentConfigRollback {
171 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> where S: serde::Serializer {
172 let mut state = serializer.serialize_struct(
173 <Self as k8s_openapi::Resource>::KIND,
174 4 +
175 self.updated_annotations.as_ref().map_or(0, |_| 1),
176 )?;
177 serde::ser::SerializeStruct::serialize_field(&mut state, "apiVersion", <Self as k8s_openapi::Resource>::API_VERSION)?;
178 serde::ser::SerializeStruct::serialize_field(&mut state, "kind", <Self as k8s_openapi::Resource>::KIND)?;
179 serde::ser::SerializeStruct::serialize_field(&mut state, "name", &self.name)?;
180 serde::ser::SerializeStruct::serialize_field(&mut state, "spec", &self.spec)?;
181 if let Some(value) = &self.updated_annotations {
182 serde::ser::SerializeStruct::serialize_field(&mut state, "updatedAnnotations", value)?;
183 }
184 serde::ser::SerializeStruct::end(state)
185 }
186}