openshift_openapi/v4_5/api/image/v1/
image_stream_layers.rs1#[derive(Clone, Debug, Default, PartialEq)]
5pub struct ImageStreamLayers {
6 pub blobs: std::collections::BTreeMap<String, crate::api::image::v1::ImageLayerData>,
8
9 pub images: std::collections::BTreeMap<String, crate::api::image::v1::ImageBlobReferences>,
11
12 pub metadata: k8s_openapi::apimachinery::pkg::apis::meta::v1::ObjectMeta,
14}
15
16impl ImageStreamLayers {
21 #[cfg(feature = "api")]
39 pub fn read_namespaced_image_stream_layers(
40 name: &str,
41 namespace: &str,
42 optional: ReadNamespacedImageStreamLayersOptional<'_>,
43 ) -> Result<(http::Request<Vec<u8>>, fn(http::StatusCode) -> k8s_openapi::ResponseBody<ReadNamespacedImageStreamLayersResponse>), k8s_openapi::RequestError> {
44 let ReadNamespacedImageStreamLayersOptional {
45 pretty,
46 } = optional;
47 let __url = format!("/apis/image.openshift.io/v1/namespaces/{namespace}/imagestreams/{name}/layers?",
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 if let Some(pretty) = pretty {
53 __query_pairs.append_pair("pretty", pretty);
54 }
55 let __url = __query_pairs.finish();
56
57 let __request = http::Request::get(__url);
58 let __body = vec![];
59 match __request.body(__body) {
60 Ok(request) => Ok((request, k8s_openapi::ResponseBody::new)),
61 Err(err) => Err(k8s_openapi::RequestError::Http(err)),
62 }
63 }
64}
65
66#[cfg(feature = "api")]
68#[derive(Clone, Copy, Debug, Default)]
69pub struct ReadNamespacedImageStreamLayersOptional<'a> {
70 pub pretty: Option<&'a str>,
72}
73
74#[cfg(feature = "api")]
76#[derive(Debug)]
77pub enum ReadNamespacedImageStreamLayersResponse {
78 Ok(crate::api::image::v1::ImageStreamLayers),
79 Other(Result<Option<serde_json::Value>, serde_json::Error>),
80}
81
82#[cfg(feature = "api")]
83impl k8s_openapi::Response for ReadNamespacedImageStreamLayersResponse {
84 fn try_from_parts(status_code: http::StatusCode, buf: &[u8]) -> Result<(Self, usize), k8s_openapi::ResponseError> {
85 match status_code {
86 http::StatusCode::OK => {
87 let result = match serde_json::from_slice(buf) {
88 Ok(value) => value,
89 Err(ref err) if err.is_eof() => return Err(k8s_openapi::ResponseError::NeedMoreData),
90 Err(err) => return Err(k8s_openapi::ResponseError::Json(err)),
91 };
92 Ok((ReadNamespacedImageStreamLayersResponse::Ok(result), buf.len()))
93 },
94 _ => {
95 let (result, read) =
96 if buf.is_empty() {
97 (Ok(None), 0)
98 }
99 else {
100 match serde_json::from_slice(buf) {
101 Ok(value) => (Ok(Some(value)), buf.len()),
102 Err(ref err) if err.is_eof() => return Err(k8s_openapi::ResponseError::NeedMoreData),
103 Err(err) => (Err(err), 0),
104 }
105 };
106 Ok((ReadNamespacedImageStreamLayersResponse::Other(result), read))
107 },
108 }
109 }
110}
111
112impl k8s_openapi::Resource for ImageStreamLayers {
115 const API_VERSION: &'static str = "image.openshift.io/v1";
116 const GROUP: &'static str = "image.openshift.io";
117 const KIND: &'static str = "ImageStreamLayers";
118 const VERSION: &'static str = "v1";
119}
120
121impl k8s_openapi::Metadata for ImageStreamLayers {
122 type Ty = k8s_openapi::apimachinery::pkg::apis::meta::v1::ObjectMeta;
123
124 fn metadata(&self) -> &<Self as k8s_openapi::Metadata>::Ty {
125 &self.metadata
126 }
127
128 fn metadata_mut(&mut self) -> &mut<Self as k8s_openapi::Metadata>::Ty {
129 &mut self.metadata
130 }
131}
132
133impl<'de> serde::Deserialize<'de> for ImageStreamLayers {
134 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where D: serde::Deserializer<'de> {
135 #[allow(non_camel_case_types)]
136 enum Field {
137 Key_api_version,
138 Key_kind,
139 Key_blobs,
140 Key_images,
141 Key_metadata,
142 Other,
143 }
144
145 impl<'de> serde::Deserialize<'de> for Field {
146 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where D: serde::Deserializer<'de> {
147 struct Visitor;
148
149 impl<'de> serde::de::Visitor<'de> for Visitor {
150 type Value = Field;
151
152 fn expecting(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
153 f.write_str("field identifier")
154 }
155
156 fn visit_str<E>(self, v: &str) -> Result<Self::Value, E> where E: serde::de::Error {
157 Ok(match v {
158 "apiVersion" => Field::Key_api_version,
159 "kind" => Field::Key_kind,
160 "blobs" => Field::Key_blobs,
161 "images" => Field::Key_images,
162 "metadata" => Field::Key_metadata,
163 _ => Field::Other,
164 })
165 }
166 }
167
168 deserializer.deserialize_identifier(Visitor)
169 }
170 }
171
172 struct Visitor;
173
174 impl<'de> serde::de::Visitor<'de> for Visitor {
175 type Value = ImageStreamLayers;
176
177 fn expecting(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
178 f.write_str(<Self::Value as k8s_openapi::Resource>::KIND)
179 }
180
181 fn visit_map<A>(self, mut map: A) -> Result<Self::Value, A::Error> where A: serde::de::MapAccess<'de> {
182 let mut value_blobs: Option<std::collections::BTreeMap<String, crate::api::image::v1::ImageLayerData>> = None;
183 let mut value_images: Option<std::collections::BTreeMap<String, crate::api::image::v1::ImageBlobReferences>> = None;
184 let mut value_metadata: Option<k8s_openapi::apimachinery::pkg::apis::meta::v1::ObjectMeta> = None;
185
186 while let Some(key) = serde::de::MapAccess::next_key::<Field>(&mut map)? {
187 match key {
188 Field::Key_api_version => {
189 let value_api_version: String = serde::de::MapAccess::next_value(&mut map)?;
190 if value_api_version != <Self::Value as k8s_openapi::Resource>::API_VERSION {
191 return Err(serde::de::Error::invalid_value(serde::de::Unexpected::Str(&value_api_version), &<Self::Value as k8s_openapi::Resource>::API_VERSION));
192 }
193 },
194 Field::Key_kind => {
195 let value_kind: String = serde::de::MapAccess::next_value(&mut map)?;
196 if value_kind != <Self::Value as k8s_openapi::Resource>::KIND {
197 return Err(serde::de::Error::invalid_value(serde::de::Unexpected::Str(&value_kind), &<Self::Value as k8s_openapi::Resource>::KIND));
198 }
199 },
200 Field::Key_blobs => value_blobs = Some(serde::de::MapAccess::next_value(&mut map)?),
201 Field::Key_images => value_images = Some(serde::de::MapAccess::next_value(&mut map)?),
202 Field::Key_metadata => value_metadata = Some(serde::de::MapAccess::next_value(&mut map)?),
203 Field::Other => { let _: serde::de::IgnoredAny = serde::de::MapAccess::next_value(&mut map)?; },
204 }
205 }
206
207 Ok(ImageStreamLayers {
208 blobs: value_blobs.ok_or_else(|| serde::de::Error::missing_field("blobs"))?,
209 images: value_images.ok_or_else(|| serde::de::Error::missing_field("images"))?,
210 metadata: value_metadata.ok_or_else(|| serde::de::Error::missing_field("metadata"))?,
211 })
212 }
213 }
214
215 deserializer.deserialize_struct(
216 <Self as k8s_openapi::Resource>::KIND,
217 &[
218 "apiVersion",
219 "kind",
220 "blobs",
221 "images",
222 "metadata",
223 ],
224 Visitor,
225 )
226 }
227}
228
229impl serde::Serialize for ImageStreamLayers {
230 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> where S: serde::Serializer {
231 let mut state = serializer.serialize_struct(
232 <Self as k8s_openapi::Resource>::KIND,
233 5,
234 )?;
235 serde::ser::SerializeStruct::serialize_field(&mut state, "apiVersion", <Self as k8s_openapi::Resource>::API_VERSION)?;
236 serde::ser::SerializeStruct::serialize_field(&mut state, "kind", <Self as k8s_openapi::Resource>::KIND)?;
237 serde::ser::SerializeStruct::serialize_field(&mut state, "blobs", &self.blobs)?;
238 serde::ser::SerializeStruct::serialize_field(&mut state, "images", &self.images)?;
239 serde::ser::SerializeStruct::serialize_field(&mut state, "metadata", &self.metadata)?;
240 serde::ser::SerializeStruct::end(state)
241 }
242}