1#[derive(Clone, Debug, Default, PartialEq)]
5pub struct Group {
6 pub metadata: k8s_openapi::apimachinery::pkg::apis::meta::v1::ObjectMeta,
8
9 pub users: Vec<String>,
11}
12
13impl Group {
18 #[cfg(feature = "api")]
30 pub fn create_group(
31 body: &crate::api::user::v1::Group,
32 optional: k8s_openapi::CreateOptional<'_>,
33 ) -> Result<(http::Request<Vec<u8>>, fn(http::StatusCode) -> k8s_openapi::ResponseBody<k8s_openapi::CreateResponse<Self>>), k8s_openapi::RequestError> {
34 let __url = "/apis/user.openshift.io/v1/groups?".to_owned();
35 let mut __query_pairs = k8s_openapi::url::form_urlencoded::Serializer::new(__url);
36 optional.__serialize(&mut __query_pairs);
37 let __url = __query_pairs.finish();
38
39 let __request = http::Request::post(__url);
40 let __body = serde_json::to_vec(body).map_err(k8s_openapi::RequestError::Json)?;
41 let __request = __request.header(http::header::CONTENT_TYPE, http::header::HeaderValue::from_static("application/json"));
42 match __request.body(__body) {
43 Ok(request) => Ok((request, k8s_openapi::ResponseBody::new)),
44 Err(err) => Err(k8s_openapi::RequestError::Http(err)),
45 }
46 }
47}
48
49impl Group {
52 #[cfg(feature = "api")]
66 pub fn delete_collection_group(
67 delete_optional: k8s_openapi::DeleteOptional<'_>,
68 list_optional: k8s_openapi::ListOptional<'_>,
69 ) -> Result<(http::Request<Vec<u8>>, fn(http::StatusCode) -> k8s_openapi::ResponseBody<k8s_openapi::DeleteResponse<k8s_openapi::List<Self>>>), k8s_openapi::RequestError> {
70 let __url = "/apis/user.openshift.io/v1/groups?".to_owned();
71 let mut __query_pairs = k8s_openapi::url::form_urlencoded::Serializer::new(__url);
72 list_optional.__serialize(&mut __query_pairs);
73 let __url = __query_pairs.finish();
74
75 let __request = http::Request::delete(__url);
76 let __body = serde_json::to_vec(&delete_optional).map_err(k8s_openapi::RequestError::Json)?;
77 let __request = __request.header(http::header::CONTENT_TYPE, http::header::HeaderValue::from_static("application/json"));
78 match __request.body(__body) {
79 Ok(request) => Ok((request, k8s_openapi::ResponseBody::new)),
80 Err(err) => Err(k8s_openapi::RequestError::Http(err)),
81 }
82 }
83}
84
85impl Group {
88 #[cfg(feature = "api")]
102 pub fn delete_group(
103 name: &str,
104 optional: k8s_openapi::DeleteOptional<'_>,
105 ) -> Result<(http::Request<Vec<u8>>, fn(http::StatusCode) -> k8s_openapi::ResponseBody<k8s_openapi::DeleteResponse<Self>>), k8s_openapi::RequestError> {
106 let __url = format!("/apis/user.openshift.io/v1/groups/{name}",
107 name = k8s_openapi::percent_encoding::percent_encode(name.as_bytes(), k8s_openapi::percent_encoding2::PATH_SEGMENT_ENCODE_SET),
108 );
109
110 let __request = http::Request::delete(__url);
111 let __body = serde_json::to_vec(&optional).map_err(k8s_openapi::RequestError::Json)?;
112 let __request = __request.header(http::header::CONTENT_TYPE, http::header::HeaderValue::from_static("application/json"));
113 match __request.body(__body) {
114 Ok(request) => Ok((request, k8s_openapi::ResponseBody::new)),
115 Err(err) => Err(k8s_openapi::RequestError::Http(err)),
116 }
117 }
118}
119
120impl Group {
123 #[cfg(feature = "api")]
135 pub fn list_group(
136 optional: k8s_openapi::ListOptional<'_>,
137 ) -> Result<(http::Request<Vec<u8>>, fn(http::StatusCode) -> k8s_openapi::ResponseBody<k8s_openapi::ListResponse<Self>>), k8s_openapi::RequestError> {
138 let __url = "/apis/user.openshift.io/v1/groups?".to_owned();
139 let mut __query_pairs = k8s_openapi::url::form_urlencoded::Serializer::new(__url);
140 optional.__serialize(&mut __query_pairs);
141 let __url = __query_pairs.finish();
142
143 let __request = http::Request::get(__url);
144 let __body = vec![];
145 match __request.body(__body) {
146 Ok(request) => Ok((request, k8s_openapi::ResponseBody::new)),
147 Err(err) => Err(k8s_openapi::RequestError::Http(err)),
148 }
149 }
150}
151
152impl Group {
155 #[cfg(feature = "api")]
171 pub fn patch_group(
172 name: &str,
173 body: &k8s_openapi::apimachinery::pkg::apis::meta::v1::Patch,
174 optional: k8s_openapi::PatchOptional<'_>,
175 ) -> Result<(http::Request<Vec<u8>>, fn(http::StatusCode) -> k8s_openapi::ResponseBody<k8s_openapi::PatchResponse<Self>>), k8s_openapi::RequestError> {
176 let __url = format!("/apis/user.openshift.io/v1/groups/{name}?",
177 name = k8s_openapi::percent_encoding::percent_encode(name.as_bytes(), k8s_openapi::percent_encoding2::PATH_SEGMENT_ENCODE_SET),
178 );
179 let mut __query_pairs = k8s_openapi::url::form_urlencoded::Serializer::new(__url);
180 optional.__serialize(&mut __query_pairs);
181 let __url = __query_pairs.finish();
182
183 let __request = http::Request::patch(__url);
184 let __body = serde_json::to_vec(body).map_err(k8s_openapi::RequestError::Json)?;
185 let __request = __request.header(http::header::CONTENT_TYPE, http::header::HeaderValue::from_static(match body {
186 k8s_openapi::apimachinery::pkg::apis::meta::v1::Patch::Json(_) => "application/json-patch+json",
187 k8s_openapi::apimachinery::pkg::apis::meta::v1::Patch::Merge(_) => "application/merge-patch+json",
188 k8s_openapi::apimachinery::pkg::apis::meta::v1::Patch::StrategicMerge(_) => "application/strategic-merge-patch+json",
189 }));
190 match __request.body(__body) {
191 Ok(request) => Ok((request, k8s_openapi::ResponseBody::new)),
192 Err(err) => Err(k8s_openapi::RequestError::Http(err)),
193 }
194 }
195}
196
197impl Group {
200 #[cfg(feature = "api")]
214 pub fn read_group(
215 name: &str,
216 optional: ReadGroupOptional<'_>,
217 ) -> Result<(http::Request<Vec<u8>>, fn(http::StatusCode) -> k8s_openapi::ResponseBody<ReadGroupResponse>), k8s_openapi::RequestError> {
218 let ReadGroupOptional {
219 exact,
220 export,
221 pretty,
222 } = optional;
223 let __url = format!("/apis/user.openshift.io/v1/groups/{name}?",
224 name = k8s_openapi::percent_encoding::percent_encode(name.as_bytes(), k8s_openapi::percent_encoding2::PATH_SEGMENT_ENCODE_SET),
225 );
226 let mut __query_pairs = k8s_openapi::url::form_urlencoded::Serializer::new(__url);
227 if let Some(exact) = exact {
228 __query_pairs.append_pair("exact", &exact.to_string());
229 }
230 if let Some(export) = export {
231 __query_pairs.append_pair("export", &export.to_string());
232 }
233 if let Some(pretty) = pretty {
234 __query_pairs.append_pair("pretty", pretty);
235 }
236 let __url = __query_pairs.finish();
237
238 let __request = http::Request::get(__url);
239 let __body = vec![];
240 match __request.body(__body) {
241 Ok(request) => Ok((request, k8s_openapi::ResponseBody::new)),
242 Err(err) => Err(k8s_openapi::RequestError::Http(err)),
243 }
244 }
245}
246
247#[cfg(feature = "api")]
249#[derive(Clone, Copy, Debug, Default)]
250pub struct ReadGroupOptional<'a> {
251 pub exact: Option<bool>,
253 pub export: Option<bool>,
255 pub pretty: Option<&'a str>,
257}
258
259#[cfg(feature = "api")]
261#[derive(Debug)]
262pub enum ReadGroupResponse {
263 Ok(crate::api::user::v1::Group),
264 Other(Result<Option<serde_json::Value>, serde_json::Error>),
265}
266
267#[cfg(feature = "api")]
268impl k8s_openapi::Response for ReadGroupResponse {
269 fn try_from_parts(status_code: http::StatusCode, buf: &[u8]) -> Result<(Self, usize), k8s_openapi::ResponseError> {
270 match status_code {
271 http::StatusCode::OK => {
272 let result = match serde_json::from_slice(buf) {
273 Ok(value) => value,
274 Err(ref err) if err.is_eof() => return Err(k8s_openapi::ResponseError::NeedMoreData),
275 Err(err) => return Err(k8s_openapi::ResponseError::Json(err)),
276 };
277 Ok((ReadGroupResponse::Ok(result), buf.len()))
278 },
279 _ => {
280 let (result, read) =
281 if buf.is_empty() {
282 (Ok(None), 0)
283 }
284 else {
285 match serde_json::from_slice(buf) {
286 Ok(value) => (Ok(Some(value)), buf.len()),
287 Err(ref err) if err.is_eof() => return Err(k8s_openapi::ResponseError::NeedMoreData),
288 Err(err) => (Err(err), 0),
289 }
290 };
291 Ok((ReadGroupResponse::Other(result), read))
292 },
293 }
294 }
295}
296
297impl Group {
300 #[cfg(feature = "api")]
316 pub fn replace_group(
317 name: &str,
318 body: &crate::api::user::v1::Group,
319 optional: k8s_openapi::ReplaceOptional<'_>,
320 ) -> Result<(http::Request<Vec<u8>>, fn(http::StatusCode) -> k8s_openapi::ResponseBody<k8s_openapi::ReplaceResponse<Self>>), k8s_openapi::RequestError> {
321 let __url = format!("/apis/user.openshift.io/v1/groups/{name}?",
322 name = k8s_openapi::percent_encoding::percent_encode(name.as_bytes(), k8s_openapi::percent_encoding2::PATH_SEGMENT_ENCODE_SET),
323 );
324 let mut __query_pairs = k8s_openapi::url::form_urlencoded::Serializer::new(__url);
325 optional.__serialize(&mut __query_pairs);
326 let __url = __query_pairs.finish();
327
328 let __request = http::Request::put(__url);
329 let __body = serde_json::to_vec(body).map_err(k8s_openapi::RequestError::Json)?;
330 let __request = __request.header(http::header::CONTENT_TYPE, http::header::HeaderValue::from_static("application/json"));
331 match __request.body(__body) {
332 Ok(request) => Ok((request, k8s_openapi::ResponseBody::new)),
333 Err(err) => Err(k8s_openapi::RequestError::Http(err)),
334 }
335 }
336}
337
338impl Group {
341 #[cfg(feature = "api")]
353 pub fn watch_group(
354 optional: k8s_openapi::WatchOptional<'_>,
355 ) -> Result<(http::Request<Vec<u8>>, fn(http::StatusCode) -> k8s_openapi::ResponseBody<k8s_openapi::WatchResponse<Self>>), k8s_openapi::RequestError> {
356 let __url = "/apis/user.openshift.io/v1/groups?".to_owned();
357 let mut __query_pairs = k8s_openapi::url::form_urlencoded::Serializer::new(__url);
358 optional.__serialize(&mut __query_pairs);
359 let __url = __query_pairs.finish();
360
361 let __request = http::Request::get(__url);
362 let __body = vec![];
363 match __request.body(__body) {
364 Ok(request) => Ok((request, k8s_openapi::ResponseBody::new)),
365 Err(err) => Err(k8s_openapi::RequestError::Http(err)),
366 }
367 }
368}
369
370impl k8s_openapi::Resource for Group {
373 const API_VERSION: &'static str = "user.openshift.io/v1";
374 const GROUP: &'static str = "user.openshift.io";
375 const KIND: &'static str = "Group";
376 const VERSION: &'static str = "v1";
377}
378
379impl k8s_openapi::ListableResource for Group {
380 const LIST_KIND: &'static str = concat!("Group", "List");
381}
382
383impl k8s_openapi::Metadata for Group {
384 type Ty = k8s_openapi::apimachinery::pkg::apis::meta::v1::ObjectMeta;
385
386 fn metadata(&self) -> &<Self as k8s_openapi::Metadata>::Ty {
387 &self.metadata
388 }
389
390 fn metadata_mut(&mut self) -> &mut<Self as k8s_openapi::Metadata>::Ty {
391 &mut self.metadata
392 }
393}
394
395impl<'de> serde::Deserialize<'de> for Group {
396 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where D: serde::Deserializer<'de> {
397 #[allow(non_camel_case_types)]
398 enum Field {
399 Key_api_version,
400 Key_kind,
401 Key_metadata,
402 Key_users,
403 Other,
404 }
405
406 impl<'de> serde::Deserialize<'de> for Field {
407 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where D: serde::Deserializer<'de> {
408 struct Visitor;
409
410 impl<'de> serde::de::Visitor<'de> for Visitor {
411 type Value = Field;
412
413 fn expecting(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
414 f.write_str("field identifier")
415 }
416
417 fn visit_str<E>(self, v: &str) -> Result<Self::Value, E> where E: serde::de::Error {
418 Ok(match v {
419 "apiVersion" => Field::Key_api_version,
420 "kind" => Field::Key_kind,
421 "metadata" => Field::Key_metadata,
422 "users" => Field::Key_users,
423 _ => Field::Other,
424 })
425 }
426 }
427
428 deserializer.deserialize_identifier(Visitor)
429 }
430 }
431
432 struct Visitor;
433
434 impl<'de> serde::de::Visitor<'de> for Visitor {
435 type Value = Group;
436
437 fn expecting(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
438 f.write_str(<Self::Value as k8s_openapi::Resource>::KIND)
439 }
440
441 fn visit_map<A>(self, mut map: A) -> Result<Self::Value, A::Error> where A: serde::de::MapAccess<'de> {
442 let mut value_metadata: Option<k8s_openapi::apimachinery::pkg::apis::meta::v1::ObjectMeta> = None;
443 let mut value_users: Option<Vec<String>> = None;
444
445 while let Some(key) = serde::de::MapAccess::next_key::<Field>(&mut map)? {
446 match key {
447 Field::Key_api_version => {
448 let value_api_version: String = serde::de::MapAccess::next_value(&mut map)?;
449 if value_api_version != <Self::Value as k8s_openapi::Resource>::API_VERSION {
450 return Err(serde::de::Error::invalid_value(serde::de::Unexpected::Str(&value_api_version), &<Self::Value as k8s_openapi::Resource>::API_VERSION));
451 }
452 },
453 Field::Key_kind => {
454 let value_kind: String = serde::de::MapAccess::next_value(&mut map)?;
455 if value_kind != <Self::Value as k8s_openapi::Resource>::KIND {
456 return Err(serde::de::Error::invalid_value(serde::de::Unexpected::Str(&value_kind), &<Self::Value as k8s_openapi::Resource>::KIND));
457 }
458 },
459 Field::Key_metadata => value_metadata = Some(serde::de::MapAccess::next_value(&mut map)?),
460 Field::Key_users => value_users = Some(serde::de::MapAccess::next_value(&mut map)?),
461 Field::Other => { let _: serde::de::IgnoredAny = serde::de::MapAccess::next_value(&mut map)?; },
462 }
463 }
464
465 Ok(Group {
466 metadata: value_metadata.ok_or_else(|| serde::de::Error::missing_field("metadata"))?,
467 users: value_users.ok_or_else(|| serde::de::Error::missing_field("users"))?,
468 })
469 }
470 }
471
472 deserializer.deserialize_struct(
473 <Self as k8s_openapi::Resource>::KIND,
474 &[
475 "apiVersion",
476 "kind",
477 "metadata",
478 "users",
479 ],
480 Visitor,
481 )
482 }
483}
484
485impl serde::Serialize for Group {
486 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> where S: serde::Serializer {
487 let mut state = serializer.serialize_struct(
488 <Self as k8s_openapi::Resource>::KIND,
489 4,
490 )?;
491 serde::ser::SerializeStruct::serialize_field(&mut state, "apiVersion", <Self as k8s_openapi::Resource>::API_VERSION)?;
492 serde::ser::SerializeStruct::serialize_field(&mut state, "kind", <Self as k8s_openapi::Resource>::KIND)?;
493 serde::ser::SerializeStruct::serialize_field(&mut state, "metadata", &self.metadata)?;
494 serde::ser::SerializeStruct::serialize_field(&mut state, "users", &self.users)?;
495 serde::ser::SerializeStruct::end(state)
496 }
497}