1#[derive(Clone, Debug, Default, PartialEq)]
5pub struct BrokerTemplateInstance {
6 pub metadata: k8s_openapi::apimachinery::pkg::apis::meta::v1::ObjectMeta,
8
9 pub spec: crate::api::template::v1::BrokerTemplateInstanceSpec,
11}
12
13impl BrokerTemplateInstance {
18 #[cfg(feature = "api")]
30 pub fn create_broker_template_instance(
31 body: &crate::api::template::v1::BrokerTemplateInstance,
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/template.openshift.io/v1/brokertemplateinstances?".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 BrokerTemplateInstance {
52 #[cfg(feature = "api")]
66 pub fn delete_broker_template_instance(
67 name: &str,
68 optional: k8s_openapi::DeleteOptional<'_>,
69 ) -> Result<(http::Request<Vec<u8>>, fn(http::StatusCode) -> k8s_openapi::ResponseBody<k8s_openapi::DeleteResponse<Self>>), k8s_openapi::RequestError> {
70 let __url = format!("/apis/template.openshift.io/v1/brokertemplateinstances/{name}",
71 name = k8s_openapi::percent_encoding::percent_encode(name.as_bytes(), k8s_openapi::percent_encoding2::PATH_SEGMENT_ENCODE_SET),
72 );
73
74 let __request = http::Request::delete(__url);
75 let __body = serde_json::to_vec(&optional).map_err(k8s_openapi::RequestError::Json)?;
76 let __request = __request.header(http::header::CONTENT_TYPE, http::header::HeaderValue::from_static("application/json"));
77 match __request.body(__body) {
78 Ok(request) => Ok((request, k8s_openapi::ResponseBody::new)),
79 Err(err) => Err(k8s_openapi::RequestError::Http(err)),
80 }
81 }
82}
83
84impl BrokerTemplateInstance {
87 #[cfg(feature = "api")]
101 pub fn delete_collection_broker_template_instance(
102 delete_optional: k8s_openapi::DeleteOptional<'_>,
103 list_optional: k8s_openapi::ListOptional<'_>,
104 ) -> Result<(http::Request<Vec<u8>>, fn(http::StatusCode) -> k8s_openapi::ResponseBody<k8s_openapi::DeleteResponse<k8s_openapi::List<Self>>>), k8s_openapi::RequestError> {
105 let __url = "/apis/template.openshift.io/v1/brokertemplateinstances?".to_owned();
106 let mut __query_pairs = k8s_openapi::url::form_urlencoded::Serializer::new(__url);
107 list_optional.__serialize(&mut __query_pairs);
108 let __url = __query_pairs.finish();
109
110 let __request = http::Request::delete(__url);
111 let __body = serde_json::to_vec(&delete_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 BrokerTemplateInstance {
123 #[cfg(feature = "api")]
135 pub fn list_broker_template_instance(
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/template.openshift.io/v1/brokertemplateinstances?".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 BrokerTemplateInstance {
155 #[cfg(feature = "api")]
171 pub fn patch_broker_template_instance(
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/template.openshift.io/v1/brokertemplateinstances/{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 BrokerTemplateInstance {
200 #[cfg(feature = "api")]
214 pub fn read_broker_template_instance(
215 name: &str,
216 optional: ReadBrokerTemplateInstanceOptional<'_>,
217 ) -> Result<(http::Request<Vec<u8>>, fn(http::StatusCode) -> k8s_openapi::ResponseBody<ReadBrokerTemplateInstanceResponse>), k8s_openapi::RequestError> {
218 let ReadBrokerTemplateInstanceOptional {
219 exact,
220 export,
221 pretty,
222 } = optional;
223 let __url = format!("/apis/template.openshift.io/v1/brokertemplateinstances/{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 ReadBrokerTemplateInstanceOptional<'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 ReadBrokerTemplateInstanceResponse {
263 Ok(crate::api::template::v1::BrokerTemplateInstance),
264 Other(Result<Option<serde_json::Value>, serde_json::Error>),
265}
266
267#[cfg(feature = "api")]
268impl k8s_openapi::Response for ReadBrokerTemplateInstanceResponse {
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((ReadBrokerTemplateInstanceResponse::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((ReadBrokerTemplateInstanceResponse::Other(result), read))
292 },
293 }
294 }
295}
296
297impl BrokerTemplateInstance {
300 #[cfg(feature = "api")]
316 pub fn replace_broker_template_instance(
317 name: &str,
318 body: &crate::api::template::v1::BrokerTemplateInstance,
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/template.openshift.io/v1/brokertemplateinstances/{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 BrokerTemplateInstance {
341 #[cfg(feature = "api")]
353 pub fn watch_broker_template_instance(
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/template.openshift.io/v1/brokertemplateinstances?".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 BrokerTemplateInstance {
373 const API_VERSION: &'static str = "template.openshift.io/v1";
374 const GROUP: &'static str = "template.openshift.io";
375 const KIND: &'static str = "BrokerTemplateInstance";
376 const VERSION: &'static str = "v1";
377}
378
379impl k8s_openapi::ListableResource for BrokerTemplateInstance {
380 const LIST_KIND: &'static str = concat!("BrokerTemplateInstance", "List");
381}
382
383impl k8s_openapi::Metadata for BrokerTemplateInstance {
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 BrokerTemplateInstance {
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_spec,
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 "spec" => Field::Key_spec,
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 = BrokerTemplateInstance;
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_spec: Option<crate::api::template::v1::BrokerTemplateInstanceSpec> = 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_spec => value_spec = 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(BrokerTemplateInstance {
466 metadata: value_metadata.ok_or_else(|| serde::de::Error::missing_field("metadata"))?,
467 spec: value_spec.ok_or_else(|| serde::de::Error::missing_field("spec"))?,
468 })
469 }
470 }
471
472 deserializer.deserialize_struct(
473 <Self as k8s_openapi::Resource>::KIND,
474 &[
475 "apiVersion",
476 "kind",
477 "metadata",
478 "spec",
479 ],
480 Visitor,
481 )
482 }
483}
484
485impl serde::Serialize for BrokerTemplateInstance {
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, "spec", &self.spec)?;
495 serde::ser::SerializeStruct::end(state)
496 }
497}