Skip to main content

google_cloud_parametermanager_v1/
model.rs

1// Copyright 2025 Google LLC
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     https://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14//
15// Code generated by sidekick. DO NOT EDIT.
16
17#![allow(rustdoc::redundant_explicit_links)]
18#![allow(rustdoc::broken_intra_doc_links)]
19#![no_implicit_prelude]
20extern crate async_trait;
21extern crate bytes;
22extern crate gaxi;
23extern crate google_cloud_gax;
24extern crate google_cloud_iam_v1;
25extern crate google_cloud_location;
26extern crate serde;
27extern crate serde_json;
28extern crate serde_with;
29extern crate std;
30extern crate tracing;
31extern crate wkt;
32
33mod debug;
34mod deserialize;
35mod serialize;
36
37/// Message describing Parameter resource
38#[derive(Clone, Default, PartialEq)]
39#[non_exhaustive]
40pub struct Parameter {
41    /// Identifier. [Output only] The resource name of the Parameter in the format
42    /// `projects/*/locations/*/parameters/*`.
43    pub name: std::string::String,
44
45    /// Output only. [Output only] Create time stamp
46    pub create_time: std::option::Option<wkt::Timestamp>,
47
48    /// Output only. [Output only] Update time stamp
49    pub update_time: std::option::Option<wkt::Timestamp>,
50
51    /// Optional. Labels as key value pairs
52    pub labels: std::collections::HashMap<std::string::String, std::string::String>,
53
54    /// Optional. Specifies the format of a Parameter.
55    pub format: crate::model::ParameterFormat,
56
57    /// Output only. [Output-only] policy member strings of a Google Cloud
58    /// resource.
59    pub policy_member: std::option::Option<google_cloud_iam_v1::model::ResourcePolicyMember>,
60
61    /// Optional. Customer managed encryption key (CMEK) to use for encrypting the
62    /// Parameter Versions. If not set, the default Google-managed encryption key
63    /// will be used. Cloud KMS CryptoKeys must reside in the same location as the
64    /// Parameter. The expected format is
65    /// `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
66    pub kms_key: std::option::Option<std::string::String>,
67
68    pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
69}
70
71impl Parameter {
72    pub fn new() -> Self {
73        std::default::Default::default()
74    }
75
76    /// Sets the value of [name][crate::model::Parameter::name].
77    ///
78    /// # Example
79    /// ```ignore,no_run
80    /// # use google_cloud_parametermanager_v1::model::Parameter;
81    /// let x = Parameter::new().set_name("example");
82    /// ```
83    pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
84        self.name = v.into();
85        self
86    }
87
88    /// Sets the value of [create_time][crate::model::Parameter::create_time].
89    ///
90    /// # Example
91    /// ```ignore,no_run
92    /// # use google_cloud_parametermanager_v1::model::Parameter;
93    /// use wkt::Timestamp;
94    /// let x = Parameter::new().set_create_time(Timestamp::default()/* use setters */);
95    /// ```
96    pub fn set_create_time<T>(mut self, v: T) -> Self
97    where
98        T: std::convert::Into<wkt::Timestamp>,
99    {
100        self.create_time = std::option::Option::Some(v.into());
101        self
102    }
103
104    /// Sets or clears the value of [create_time][crate::model::Parameter::create_time].
105    ///
106    /// # Example
107    /// ```ignore,no_run
108    /// # use google_cloud_parametermanager_v1::model::Parameter;
109    /// use wkt::Timestamp;
110    /// let x = Parameter::new().set_or_clear_create_time(Some(Timestamp::default()/* use setters */));
111    /// let x = Parameter::new().set_or_clear_create_time(None::<Timestamp>);
112    /// ```
113    pub fn set_or_clear_create_time<T>(mut self, v: std::option::Option<T>) -> Self
114    where
115        T: std::convert::Into<wkt::Timestamp>,
116    {
117        self.create_time = v.map(|x| x.into());
118        self
119    }
120
121    /// Sets the value of [update_time][crate::model::Parameter::update_time].
122    ///
123    /// # Example
124    /// ```ignore,no_run
125    /// # use google_cloud_parametermanager_v1::model::Parameter;
126    /// use wkt::Timestamp;
127    /// let x = Parameter::new().set_update_time(Timestamp::default()/* use setters */);
128    /// ```
129    pub fn set_update_time<T>(mut self, v: T) -> Self
130    where
131        T: std::convert::Into<wkt::Timestamp>,
132    {
133        self.update_time = std::option::Option::Some(v.into());
134        self
135    }
136
137    /// Sets or clears the value of [update_time][crate::model::Parameter::update_time].
138    ///
139    /// # Example
140    /// ```ignore,no_run
141    /// # use google_cloud_parametermanager_v1::model::Parameter;
142    /// use wkt::Timestamp;
143    /// let x = Parameter::new().set_or_clear_update_time(Some(Timestamp::default()/* use setters */));
144    /// let x = Parameter::new().set_or_clear_update_time(None::<Timestamp>);
145    /// ```
146    pub fn set_or_clear_update_time<T>(mut self, v: std::option::Option<T>) -> Self
147    where
148        T: std::convert::Into<wkt::Timestamp>,
149    {
150        self.update_time = v.map(|x| x.into());
151        self
152    }
153
154    /// Sets the value of [labels][crate::model::Parameter::labels].
155    ///
156    /// # Example
157    /// ```ignore,no_run
158    /// # use google_cloud_parametermanager_v1::model::Parameter;
159    /// let x = Parameter::new().set_labels([
160    ///     ("key0", "abc"),
161    ///     ("key1", "xyz"),
162    /// ]);
163    /// ```
164    pub fn set_labels<T, K, V>(mut self, v: T) -> Self
165    where
166        T: std::iter::IntoIterator<Item = (K, V)>,
167        K: std::convert::Into<std::string::String>,
168        V: std::convert::Into<std::string::String>,
169    {
170        use std::iter::Iterator;
171        self.labels = v.into_iter().map(|(k, v)| (k.into(), v.into())).collect();
172        self
173    }
174
175    /// Sets the value of [format][crate::model::Parameter::format].
176    ///
177    /// # Example
178    /// ```ignore,no_run
179    /// # use google_cloud_parametermanager_v1::model::Parameter;
180    /// use google_cloud_parametermanager_v1::model::ParameterFormat;
181    /// let x0 = Parameter::new().set_format(ParameterFormat::Unformatted);
182    /// let x1 = Parameter::new().set_format(ParameterFormat::Yaml);
183    /// let x2 = Parameter::new().set_format(ParameterFormat::Json);
184    /// ```
185    pub fn set_format<T: std::convert::Into<crate::model::ParameterFormat>>(
186        mut self,
187        v: T,
188    ) -> Self {
189        self.format = v.into();
190        self
191    }
192
193    /// Sets the value of [policy_member][crate::model::Parameter::policy_member].
194    ///
195    /// # Example
196    /// ```ignore,no_run
197    /// # use google_cloud_parametermanager_v1::model::Parameter;
198    /// use google_cloud_iam_v1::model::ResourcePolicyMember;
199    /// let x = Parameter::new().set_policy_member(ResourcePolicyMember::default()/* use setters */);
200    /// ```
201    pub fn set_policy_member<T>(mut self, v: T) -> Self
202    where
203        T: std::convert::Into<google_cloud_iam_v1::model::ResourcePolicyMember>,
204    {
205        self.policy_member = std::option::Option::Some(v.into());
206        self
207    }
208
209    /// Sets or clears the value of [policy_member][crate::model::Parameter::policy_member].
210    ///
211    /// # Example
212    /// ```ignore,no_run
213    /// # use google_cloud_parametermanager_v1::model::Parameter;
214    /// use google_cloud_iam_v1::model::ResourcePolicyMember;
215    /// let x = Parameter::new().set_or_clear_policy_member(Some(ResourcePolicyMember::default()/* use setters */));
216    /// let x = Parameter::new().set_or_clear_policy_member(None::<ResourcePolicyMember>);
217    /// ```
218    pub fn set_or_clear_policy_member<T>(mut self, v: std::option::Option<T>) -> Self
219    where
220        T: std::convert::Into<google_cloud_iam_v1::model::ResourcePolicyMember>,
221    {
222        self.policy_member = v.map(|x| x.into());
223        self
224    }
225
226    /// Sets the value of [kms_key][crate::model::Parameter::kms_key].
227    ///
228    /// # Example
229    /// ```ignore,no_run
230    /// # use google_cloud_parametermanager_v1::model::Parameter;
231    /// let x = Parameter::new().set_kms_key("example");
232    /// ```
233    pub fn set_kms_key<T>(mut self, v: T) -> Self
234    where
235        T: std::convert::Into<std::string::String>,
236    {
237        self.kms_key = std::option::Option::Some(v.into());
238        self
239    }
240
241    /// Sets or clears the value of [kms_key][crate::model::Parameter::kms_key].
242    ///
243    /// # Example
244    /// ```ignore,no_run
245    /// # use google_cloud_parametermanager_v1::model::Parameter;
246    /// let x = Parameter::new().set_or_clear_kms_key(Some("example"));
247    /// let x = Parameter::new().set_or_clear_kms_key(None::<String>);
248    /// ```
249    pub fn set_or_clear_kms_key<T>(mut self, v: std::option::Option<T>) -> Self
250    where
251        T: std::convert::Into<std::string::String>,
252    {
253        self.kms_key = v.map(|x| x.into());
254        self
255    }
256}
257
258impl wkt::message::Message for Parameter {
259    fn typename() -> &'static str {
260        "type.googleapis.com/google.cloud.parametermanager.v1.Parameter"
261    }
262}
263
264/// Message for requesting list of Parameters
265#[derive(Clone, Default, PartialEq)]
266#[non_exhaustive]
267pub struct ListParametersRequest {
268    /// Required. Parent value for ListParametersRequest in the format
269    /// `projects/*/locations/*`.
270    pub parent: std::string::String,
271
272    /// Optional. Requested page size. Server may return fewer items than
273    /// requested. If unspecified, server will pick an appropriate default.
274    pub page_size: i32,
275
276    /// Optional. A token identifying a page of results the server should return.
277    pub page_token: std::string::String,
278
279    /// Optional. Filtering results
280    pub filter: std::string::String,
281
282    /// Optional. Hint for how to order the results
283    pub order_by: std::string::String,
284
285    pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
286}
287
288impl ListParametersRequest {
289    pub fn new() -> Self {
290        std::default::Default::default()
291    }
292
293    /// Sets the value of [parent][crate::model::ListParametersRequest::parent].
294    ///
295    /// # Example
296    /// ```ignore,no_run
297    /// # use google_cloud_parametermanager_v1::model::ListParametersRequest;
298    /// let x = ListParametersRequest::new().set_parent("example");
299    /// ```
300    pub fn set_parent<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
301        self.parent = v.into();
302        self
303    }
304
305    /// Sets the value of [page_size][crate::model::ListParametersRequest::page_size].
306    ///
307    /// # Example
308    /// ```ignore,no_run
309    /// # use google_cloud_parametermanager_v1::model::ListParametersRequest;
310    /// let x = ListParametersRequest::new().set_page_size(42);
311    /// ```
312    pub fn set_page_size<T: std::convert::Into<i32>>(mut self, v: T) -> Self {
313        self.page_size = v.into();
314        self
315    }
316
317    /// Sets the value of [page_token][crate::model::ListParametersRequest::page_token].
318    ///
319    /// # Example
320    /// ```ignore,no_run
321    /// # use google_cloud_parametermanager_v1::model::ListParametersRequest;
322    /// let x = ListParametersRequest::new().set_page_token("example");
323    /// ```
324    pub fn set_page_token<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
325        self.page_token = v.into();
326        self
327    }
328
329    /// Sets the value of [filter][crate::model::ListParametersRequest::filter].
330    ///
331    /// # Example
332    /// ```ignore,no_run
333    /// # use google_cloud_parametermanager_v1::model::ListParametersRequest;
334    /// let x = ListParametersRequest::new().set_filter("example");
335    /// ```
336    pub fn set_filter<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
337        self.filter = v.into();
338        self
339    }
340
341    /// Sets the value of [order_by][crate::model::ListParametersRequest::order_by].
342    ///
343    /// # Example
344    /// ```ignore,no_run
345    /// # use google_cloud_parametermanager_v1::model::ListParametersRequest;
346    /// let x = ListParametersRequest::new().set_order_by("example");
347    /// ```
348    pub fn set_order_by<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
349        self.order_by = v.into();
350        self
351    }
352}
353
354impl wkt::message::Message for ListParametersRequest {
355    fn typename() -> &'static str {
356        "type.googleapis.com/google.cloud.parametermanager.v1.ListParametersRequest"
357    }
358}
359
360/// Message for response to listing Parameters
361#[derive(Clone, Default, PartialEq)]
362#[non_exhaustive]
363pub struct ListParametersResponse {
364    /// The list of Parameters
365    pub parameters: std::vec::Vec<crate::model::Parameter>,
366
367    /// A token identifying a page of results the server should return.
368    pub next_page_token: std::string::String,
369
370    /// Unordered list. Locations that could not be reached.
371    pub unreachable: std::vec::Vec<std::string::String>,
372
373    pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
374}
375
376impl ListParametersResponse {
377    pub fn new() -> Self {
378        std::default::Default::default()
379    }
380
381    /// Sets the value of [parameters][crate::model::ListParametersResponse::parameters].
382    ///
383    /// # Example
384    /// ```ignore,no_run
385    /// # use google_cloud_parametermanager_v1::model::ListParametersResponse;
386    /// use google_cloud_parametermanager_v1::model::Parameter;
387    /// let x = ListParametersResponse::new()
388    ///     .set_parameters([
389    ///         Parameter::default()/* use setters */,
390    ///         Parameter::default()/* use (different) setters */,
391    ///     ]);
392    /// ```
393    pub fn set_parameters<T, V>(mut self, v: T) -> Self
394    where
395        T: std::iter::IntoIterator<Item = V>,
396        V: std::convert::Into<crate::model::Parameter>,
397    {
398        use std::iter::Iterator;
399        self.parameters = v.into_iter().map(|i| i.into()).collect();
400        self
401    }
402
403    /// Sets the value of [next_page_token][crate::model::ListParametersResponse::next_page_token].
404    ///
405    /// # Example
406    /// ```ignore,no_run
407    /// # use google_cloud_parametermanager_v1::model::ListParametersResponse;
408    /// let x = ListParametersResponse::new().set_next_page_token("example");
409    /// ```
410    pub fn set_next_page_token<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
411        self.next_page_token = v.into();
412        self
413    }
414
415    /// Sets the value of [unreachable][crate::model::ListParametersResponse::unreachable].
416    ///
417    /// # Example
418    /// ```ignore,no_run
419    /// # use google_cloud_parametermanager_v1::model::ListParametersResponse;
420    /// let x = ListParametersResponse::new().set_unreachable(["a", "b", "c"]);
421    /// ```
422    pub fn set_unreachable<T, V>(mut self, v: T) -> Self
423    where
424        T: std::iter::IntoIterator<Item = V>,
425        V: std::convert::Into<std::string::String>,
426    {
427        use std::iter::Iterator;
428        self.unreachable = v.into_iter().map(|i| i.into()).collect();
429        self
430    }
431}
432
433impl wkt::message::Message for ListParametersResponse {
434    fn typename() -> &'static str {
435        "type.googleapis.com/google.cloud.parametermanager.v1.ListParametersResponse"
436    }
437}
438
439#[doc(hidden)]
440impl google_cloud_gax::paginator::internal::PageableResponse for ListParametersResponse {
441    type PageItem = crate::model::Parameter;
442
443    fn items(self) -> std::vec::Vec<Self::PageItem> {
444        self.parameters
445    }
446
447    fn next_page_token(&self) -> std::string::String {
448        use std::clone::Clone;
449        self.next_page_token.clone()
450    }
451}
452
453/// Message for getting a Parameter
454#[derive(Clone, Default, PartialEq)]
455#[non_exhaustive]
456pub struct GetParameterRequest {
457    /// Required. Name of the resource in the format
458    /// `projects/*/locations/*/parameters/*`.
459    pub name: std::string::String,
460
461    pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
462}
463
464impl GetParameterRequest {
465    pub fn new() -> Self {
466        std::default::Default::default()
467    }
468
469    /// Sets the value of [name][crate::model::GetParameterRequest::name].
470    ///
471    /// # Example
472    /// ```ignore,no_run
473    /// # use google_cloud_parametermanager_v1::model::GetParameterRequest;
474    /// let x = GetParameterRequest::new().set_name("example");
475    /// ```
476    pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
477        self.name = v.into();
478        self
479    }
480}
481
482impl wkt::message::Message for GetParameterRequest {
483    fn typename() -> &'static str {
484        "type.googleapis.com/google.cloud.parametermanager.v1.GetParameterRequest"
485    }
486}
487
488/// Message for creating a Parameter
489#[derive(Clone, Default, PartialEq)]
490#[non_exhaustive]
491pub struct CreateParameterRequest {
492    /// Required. Value for parent in the format
493    /// `projects/*/locations/*`.
494    pub parent: std::string::String,
495
496    /// Required. Id of the Parameter resource
497    pub parameter_id: std::string::String,
498
499    /// Required. The Parameter resource being created
500    pub parameter: std::option::Option<crate::model::Parameter>,
501
502    /// Optional. An optional request ID to identify requests. Specify a unique
503    /// request ID so that if you must retry your request, the server will know to
504    /// ignore the request if it has already been completed. The server will
505    /// guarantee that for at least 60 minutes since the first request.
506    ///
507    /// For example, consider a situation where you make an initial request and the
508    /// request times out. If you make the request again with the same request
509    /// ID, the server can check if original operation with the same request ID
510    /// was received, and if so, will ignore the second request. This prevents
511    /// clients from accidentally creating duplicate commitments.
512    ///
513    /// The request ID must be a valid UUID with the exception that zero UUID is
514    /// not supported (00000000-0000-0000-0000-000000000000).
515    pub request_id: std::string::String,
516
517    pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
518}
519
520impl CreateParameterRequest {
521    pub fn new() -> Self {
522        std::default::Default::default()
523    }
524
525    /// Sets the value of [parent][crate::model::CreateParameterRequest::parent].
526    ///
527    /// # Example
528    /// ```ignore,no_run
529    /// # use google_cloud_parametermanager_v1::model::CreateParameterRequest;
530    /// let x = CreateParameterRequest::new().set_parent("example");
531    /// ```
532    pub fn set_parent<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
533        self.parent = v.into();
534        self
535    }
536
537    /// Sets the value of [parameter_id][crate::model::CreateParameterRequest::parameter_id].
538    ///
539    /// # Example
540    /// ```ignore,no_run
541    /// # use google_cloud_parametermanager_v1::model::CreateParameterRequest;
542    /// let x = CreateParameterRequest::new().set_parameter_id("example");
543    /// ```
544    pub fn set_parameter_id<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
545        self.parameter_id = v.into();
546        self
547    }
548
549    /// Sets the value of [parameter][crate::model::CreateParameterRequest::parameter].
550    ///
551    /// # Example
552    /// ```ignore,no_run
553    /// # use google_cloud_parametermanager_v1::model::CreateParameterRequest;
554    /// use google_cloud_parametermanager_v1::model::Parameter;
555    /// let x = CreateParameterRequest::new().set_parameter(Parameter::default()/* use setters */);
556    /// ```
557    pub fn set_parameter<T>(mut self, v: T) -> Self
558    where
559        T: std::convert::Into<crate::model::Parameter>,
560    {
561        self.parameter = std::option::Option::Some(v.into());
562        self
563    }
564
565    /// Sets or clears the value of [parameter][crate::model::CreateParameterRequest::parameter].
566    ///
567    /// # Example
568    /// ```ignore,no_run
569    /// # use google_cloud_parametermanager_v1::model::CreateParameterRequest;
570    /// use google_cloud_parametermanager_v1::model::Parameter;
571    /// let x = CreateParameterRequest::new().set_or_clear_parameter(Some(Parameter::default()/* use setters */));
572    /// let x = CreateParameterRequest::new().set_or_clear_parameter(None::<Parameter>);
573    /// ```
574    pub fn set_or_clear_parameter<T>(mut self, v: std::option::Option<T>) -> Self
575    where
576        T: std::convert::Into<crate::model::Parameter>,
577    {
578        self.parameter = v.map(|x| x.into());
579        self
580    }
581
582    /// Sets the value of [request_id][crate::model::CreateParameterRequest::request_id].
583    ///
584    /// # Example
585    /// ```ignore,no_run
586    /// # use google_cloud_parametermanager_v1::model::CreateParameterRequest;
587    /// let x = CreateParameterRequest::new().set_request_id("example");
588    /// ```
589    pub fn set_request_id<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
590        self.request_id = v.into();
591        self
592    }
593}
594
595impl wkt::message::Message for CreateParameterRequest {
596    fn typename() -> &'static str {
597        "type.googleapis.com/google.cloud.parametermanager.v1.CreateParameterRequest"
598    }
599}
600
601/// Message for updating a Parameter
602#[derive(Clone, Default, PartialEq)]
603#[non_exhaustive]
604pub struct UpdateParameterRequest {
605    /// Optional. Field mask is used to specify the fields to be overwritten in the
606    /// Parameter resource by the update.
607    /// The fields specified in the update_mask are relative to the resource, not
608    /// the full request. A mutable field will be overwritten if it is in the
609    /// mask. If the user does not provide a mask then all mutable fields present
610    /// in the request will be overwritten.
611    pub update_mask: std::option::Option<wkt::FieldMask>,
612
613    /// Required. The Parameter resource being updated
614    pub parameter: std::option::Option<crate::model::Parameter>,
615
616    /// Optional. An optional request ID to identify requests. Specify a unique
617    /// request ID so that if you must retry your request, the server will know to
618    /// ignore the request if it has already been completed. The server will
619    /// guarantee that for at least 60 minutes since the first request.
620    ///
621    /// For example, consider a situation where you make an initial request and the
622    /// request times out. If you make the request again with the same request
623    /// ID, the server can check if original operation with the same request ID
624    /// was received, and if so, will ignore the second request. This prevents
625    /// clients from accidentally creating duplicate commitments.
626    ///
627    /// The request ID must be a valid UUID with the exception that zero UUID is
628    /// not supported (00000000-0000-0000-0000-000000000000).
629    pub request_id: std::string::String,
630
631    pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
632}
633
634impl UpdateParameterRequest {
635    pub fn new() -> Self {
636        std::default::Default::default()
637    }
638
639    /// Sets the value of [update_mask][crate::model::UpdateParameterRequest::update_mask].
640    ///
641    /// # Example
642    /// ```ignore,no_run
643    /// # use google_cloud_parametermanager_v1::model::UpdateParameterRequest;
644    /// use wkt::FieldMask;
645    /// let x = UpdateParameterRequest::new().set_update_mask(FieldMask::default()/* use setters */);
646    /// ```
647    pub fn set_update_mask<T>(mut self, v: T) -> Self
648    where
649        T: std::convert::Into<wkt::FieldMask>,
650    {
651        self.update_mask = std::option::Option::Some(v.into());
652        self
653    }
654
655    /// Sets or clears the value of [update_mask][crate::model::UpdateParameterRequest::update_mask].
656    ///
657    /// # Example
658    /// ```ignore,no_run
659    /// # use google_cloud_parametermanager_v1::model::UpdateParameterRequest;
660    /// use wkt::FieldMask;
661    /// let x = UpdateParameterRequest::new().set_or_clear_update_mask(Some(FieldMask::default()/* use setters */));
662    /// let x = UpdateParameterRequest::new().set_or_clear_update_mask(None::<FieldMask>);
663    /// ```
664    pub fn set_or_clear_update_mask<T>(mut self, v: std::option::Option<T>) -> Self
665    where
666        T: std::convert::Into<wkt::FieldMask>,
667    {
668        self.update_mask = v.map(|x| x.into());
669        self
670    }
671
672    /// Sets the value of [parameter][crate::model::UpdateParameterRequest::parameter].
673    ///
674    /// # Example
675    /// ```ignore,no_run
676    /// # use google_cloud_parametermanager_v1::model::UpdateParameterRequest;
677    /// use google_cloud_parametermanager_v1::model::Parameter;
678    /// let x = UpdateParameterRequest::new().set_parameter(Parameter::default()/* use setters */);
679    /// ```
680    pub fn set_parameter<T>(mut self, v: T) -> Self
681    where
682        T: std::convert::Into<crate::model::Parameter>,
683    {
684        self.parameter = std::option::Option::Some(v.into());
685        self
686    }
687
688    /// Sets or clears the value of [parameter][crate::model::UpdateParameterRequest::parameter].
689    ///
690    /// # Example
691    /// ```ignore,no_run
692    /// # use google_cloud_parametermanager_v1::model::UpdateParameterRequest;
693    /// use google_cloud_parametermanager_v1::model::Parameter;
694    /// let x = UpdateParameterRequest::new().set_or_clear_parameter(Some(Parameter::default()/* use setters */));
695    /// let x = UpdateParameterRequest::new().set_or_clear_parameter(None::<Parameter>);
696    /// ```
697    pub fn set_or_clear_parameter<T>(mut self, v: std::option::Option<T>) -> Self
698    where
699        T: std::convert::Into<crate::model::Parameter>,
700    {
701        self.parameter = v.map(|x| x.into());
702        self
703    }
704
705    /// Sets the value of [request_id][crate::model::UpdateParameterRequest::request_id].
706    ///
707    /// # Example
708    /// ```ignore,no_run
709    /// # use google_cloud_parametermanager_v1::model::UpdateParameterRequest;
710    /// let x = UpdateParameterRequest::new().set_request_id("example");
711    /// ```
712    pub fn set_request_id<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
713        self.request_id = v.into();
714        self
715    }
716}
717
718impl wkt::message::Message for UpdateParameterRequest {
719    fn typename() -> &'static str {
720        "type.googleapis.com/google.cloud.parametermanager.v1.UpdateParameterRequest"
721    }
722}
723
724/// Message for deleting a Parameter
725#[derive(Clone, Default, PartialEq)]
726#[non_exhaustive]
727pub struct DeleteParameterRequest {
728    /// Required. Name of the resource in the format
729    /// `projects/*/locations/*/parameters/*`.
730    pub name: std::string::String,
731
732    /// Optional. An optional request ID to identify requests. Specify a unique
733    /// request ID so that if you must retry your request, the server will know to
734    /// ignore the request if it has already been completed. The server will
735    /// guarantee that for at least 60 minutes after the first request.
736    ///
737    /// For example, consider a situation where you make an initial request and the
738    /// request times out. If you make the request again with the same request
739    /// ID, the server can check if original operation with the same request ID
740    /// was received, and if so, will ignore the second request. This prevents
741    /// clients from accidentally creating duplicate commitments.
742    ///
743    /// The request ID must be a valid UUID with the exception that zero UUID is
744    /// not supported (00000000-0000-0000-0000-000000000000).
745    pub request_id: std::string::String,
746
747    pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
748}
749
750impl DeleteParameterRequest {
751    pub fn new() -> Self {
752        std::default::Default::default()
753    }
754
755    /// Sets the value of [name][crate::model::DeleteParameterRequest::name].
756    ///
757    /// # Example
758    /// ```ignore,no_run
759    /// # use google_cloud_parametermanager_v1::model::DeleteParameterRequest;
760    /// let x = DeleteParameterRequest::new().set_name("example");
761    /// ```
762    pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
763        self.name = v.into();
764        self
765    }
766
767    /// Sets the value of [request_id][crate::model::DeleteParameterRequest::request_id].
768    ///
769    /// # Example
770    /// ```ignore,no_run
771    /// # use google_cloud_parametermanager_v1::model::DeleteParameterRequest;
772    /// let x = DeleteParameterRequest::new().set_request_id("example");
773    /// ```
774    pub fn set_request_id<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
775        self.request_id = v.into();
776        self
777    }
778}
779
780impl wkt::message::Message for DeleteParameterRequest {
781    fn typename() -> &'static str {
782        "type.googleapis.com/google.cloud.parametermanager.v1.DeleteParameterRequest"
783    }
784}
785
786/// Message describing ParameterVersion resource
787#[derive(Clone, Default, PartialEq)]
788#[non_exhaustive]
789pub struct ParameterVersion {
790    /// Identifier. [Output only] The resource name of the ParameterVersion in the
791    /// format `projects/*/locations/*/parameters/*/versions/*`.
792    pub name: std::string::String,
793
794    /// Output only. [Output only] Create time stamp
795    pub create_time: std::option::Option<wkt::Timestamp>,
796
797    /// Output only. [Output only] Update time stamp
798    pub update_time: std::option::Option<wkt::Timestamp>,
799
800    /// Optional. Disabled boolean to determine if a ParameterVersion acts as a
801    /// metadata only resource (payload is never returned if disabled is true). If
802    /// true any calls will always default to BASIC view even if the user
803    /// explicitly passes FULL view as part of the request. A render call on a
804    /// disabled resource fails with an error. Default value is False.
805    pub disabled: bool,
806
807    /// Required. Immutable. Payload content of a ParameterVersion resource.  This
808    /// is only returned when the request provides the View value of FULL (default
809    /// for GET request).
810    pub payload: std::option::Option<crate::model::ParameterVersionPayload>,
811
812    /// Optional. Output only. [Output only] The resource name of the KMS key
813    /// version used to encrypt the ParameterVersion payload. This field is
814    /// populated only if the Parameter resource has customer managed encryption
815    /// key (CMEK) configured.
816    pub kms_key_version: std::option::Option<std::string::String>,
817
818    pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
819}
820
821impl ParameterVersion {
822    pub fn new() -> Self {
823        std::default::Default::default()
824    }
825
826    /// Sets the value of [name][crate::model::ParameterVersion::name].
827    ///
828    /// # Example
829    /// ```ignore,no_run
830    /// # use google_cloud_parametermanager_v1::model::ParameterVersion;
831    /// let x = ParameterVersion::new().set_name("example");
832    /// ```
833    pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
834        self.name = v.into();
835        self
836    }
837
838    /// Sets the value of [create_time][crate::model::ParameterVersion::create_time].
839    ///
840    /// # Example
841    /// ```ignore,no_run
842    /// # use google_cloud_parametermanager_v1::model::ParameterVersion;
843    /// use wkt::Timestamp;
844    /// let x = ParameterVersion::new().set_create_time(Timestamp::default()/* use setters */);
845    /// ```
846    pub fn set_create_time<T>(mut self, v: T) -> Self
847    where
848        T: std::convert::Into<wkt::Timestamp>,
849    {
850        self.create_time = std::option::Option::Some(v.into());
851        self
852    }
853
854    /// Sets or clears the value of [create_time][crate::model::ParameterVersion::create_time].
855    ///
856    /// # Example
857    /// ```ignore,no_run
858    /// # use google_cloud_parametermanager_v1::model::ParameterVersion;
859    /// use wkt::Timestamp;
860    /// let x = ParameterVersion::new().set_or_clear_create_time(Some(Timestamp::default()/* use setters */));
861    /// let x = ParameterVersion::new().set_or_clear_create_time(None::<Timestamp>);
862    /// ```
863    pub fn set_or_clear_create_time<T>(mut self, v: std::option::Option<T>) -> Self
864    where
865        T: std::convert::Into<wkt::Timestamp>,
866    {
867        self.create_time = v.map(|x| x.into());
868        self
869    }
870
871    /// Sets the value of [update_time][crate::model::ParameterVersion::update_time].
872    ///
873    /// # Example
874    /// ```ignore,no_run
875    /// # use google_cloud_parametermanager_v1::model::ParameterVersion;
876    /// use wkt::Timestamp;
877    /// let x = ParameterVersion::new().set_update_time(Timestamp::default()/* use setters */);
878    /// ```
879    pub fn set_update_time<T>(mut self, v: T) -> Self
880    where
881        T: std::convert::Into<wkt::Timestamp>,
882    {
883        self.update_time = std::option::Option::Some(v.into());
884        self
885    }
886
887    /// Sets or clears the value of [update_time][crate::model::ParameterVersion::update_time].
888    ///
889    /// # Example
890    /// ```ignore,no_run
891    /// # use google_cloud_parametermanager_v1::model::ParameterVersion;
892    /// use wkt::Timestamp;
893    /// let x = ParameterVersion::new().set_or_clear_update_time(Some(Timestamp::default()/* use setters */));
894    /// let x = ParameterVersion::new().set_or_clear_update_time(None::<Timestamp>);
895    /// ```
896    pub fn set_or_clear_update_time<T>(mut self, v: std::option::Option<T>) -> Self
897    where
898        T: std::convert::Into<wkt::Timestamp>,
899    {
900        self.update_time = v.map(|x| x.into());
901        self
902    }
903
904    /// Sets the value of [disabled][crate::model::ParameterVersion::disabled].
905    ///
906    /// # Example
907    /// ```ignore,no_run
908    /// # use google_cloud_parametermanager_v1::model::ParameterVersion;
909    /// let x = ParameterVersion::new().set_disabled(true);
910    /// ```
911    pub fn set_disabled<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
912        self.disabled = v.into();
913        self
914    }
915
916    /// Sets the value of [payload][crate::model::ParameterVersion::payload].
917    ///
918    /// # Example
919    /// ```ignore,no_run
920    /// # use google_cloud_parametermanager_v1::model::ParameterVersion;
921    /// use google_cloud_parametermanager_v1::model::ParameterVersionPayload;
922    /// let x = ParameterVersion::new().set_payload(ParameterVersionPayload::default()/* use setters */);
923    /// ```
924    pub fn set_payload<T>(mut self, v: T) -> Self
925    where
926        T: std::convert::Into<crate::model::ParameterVersionPayload>,
927    {
928        self.payload = std::option::Option::Some(v.into());
929        self
930    }
931
932    /// Sets or clears the value of [payload][crate::model::ParameterVersion::payload].
933    ///
934    /// # Example
935    /// ```ignore,no_run
936    /// # use google_cloud_parametermanager_v1::model::ParameterVersion;
937    /// use google_cloud_parametermanager_v1::model::ParameterVersionPayload;
938    /// let x = ParameterVersion::new().set_or_clear_payload(Some(ParameterVersionPayload::default()/* use setters */));
939    /// let x = ParameterVersion::new().set_or_clear_payload(None::<ParameterVersionPayload>);
940    /// ```
941    pub fn set_or_clear_payload<T>(mut self, v: std::option::Option<T>) -> Self
942    where
943        T: std::convert::Into<crate::model::ParameterVersionPayload>,
944    {
945        self.payload = v.map(|x| x.into());
946        self
947    }
948
949    /// Sets the value of [kms_key_version][crate::model::ParameterVersion::kms_key_version].
950    ///
951    /// # Example
952    /// ```ignore,no_run
953    /// # use google_cloud_parametermanager_v1::model::ParameterVersion;
954    /// let x = ParameterVersion::new().set_kms_key_version("example");
955    /// ```
956    pub fn set_kms_key_version<T>(mut self, v: T) -> Self
957    where
958        T: std::convert::Into<std::string::String>,
959    {
960        self.kms_key_version = std::option::Option::Some(v.into());
961        self
962    }
963
964    /// Sets or clears the value of [kms_key_version][crate::model::ParameterVersion::kms_key_version].
965    ///
966    /// # Example
967    /// ```ignore,no_run
968    /// # use google_cloud_parametermanager_v1::model::ParameterVersion;
969    /// let x = ParameterVersion::new().set_or_clear_kms_key_version(Some("example"));
970    /// let x = ParameterVersion::new().set_or_clear_kms_key_version(None::<String>);
971    /// ```
972    pub fn set_or_clear_kms_key_version<T>(mut self, v: std::option::Option<T>) -> Self
973    where
974        T: std::convert::Into<std::string::String>,
975    {
976        self.kms_key_version = v.map(|x| x.into());
977        self
978    }
979}
980
981impl wkt::message::Message for ParameterVersion {
982    fn typename() -> &'static str {
983        "type.googleapis.com/google.cloud.parametermanager.v1.ParameterVersion"
984    }
985}
986
987/// Message for storing a ParameterVersion resource's payload data
988#[derive(Clone, Default, PartialEq)]
989#[non_exhaustive]
990pub struct ParameterVersionPayload {
991    /// Required. bytes data for storing payload.
992    pub data: ::bytes::Bytes,
993
994    pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
995}
996
997impl ParameterVersionPayload {
998    pub fn new() -> Self {
999        std::default::Default::default()
1000    }
1001
1002    /// Sets the value of [data][crate::model::ParameterVersionPayload::data].
1003    ///
1004    /// # Example
1005    /// ```ignore,no_run
1006    /// # use google_cloud_parametermanager_v1::model::ParameterVersionPayload;
1007    /// let x = ParameterVersionPayload::new().set_data(bytes::Bytes::from_static(b"example"));
1008    /// ```
1009    pub fn set_data<T: std::convert::Into<::bytes::Bytes>>(mut self, v: T) -> Self {
1010        self.data = v.into();
1011        self
1012    }
1013}
1014
1015impl wkt::message::Message for ParameterVersionPayload {
1016    fn typename() -> &'static str {
1017        "type.googleapis.com/google.cloud.parametermanager.v1.ParameterVersionPayload"
1018    }
1019}
1020
1021/// Message for requesting list of ParameterVersions
1022#[derive(Clone, Default, PartialEq)]
1023#[non_exhaustive]
1024pub struct ListParameterVersionsRequest {
1025    /// Required. Parent value for ListParameterVersionsRequest in the format
1026    /// `projects/*/locations/*/parameters/*`.
1027    pub parent: std::string::String,
1028
1029    /// Optional. Requested page size. Server may return fewer items than
1030    /// requested. If unspecified, server will pick an appropriate default.
1031    pub page_size: i32,
1032
1033    /// Optional. A token identifying a page of results the server should return.
1034    pub page_token: std::string::String,
1035
1036    /// Optional. Filtering results
1037    pub filter: std::string::String,
1038
1039    /// Optional. Hint for how to order the results
1040    pub order_by: std::string::String,
1041
1042    pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
1043}
1044
1045impl ListParameterVersionsRequest {
1046    pub fn new() -> Self {
1047        std::default::Default::default()
1048    }
1049
1050    /// Sets the value of [parent][crate::model::ListParameterVersionsRequest::parent].
1051    ///
1052    /// # Example
1053    /// ```ignore,no_run
1054    /// # use google_cloud_parametermanager_v1::model::ListParameterVersionsRequest;
1055    /// let x = ListParameterVersionsRequest::new().set_parent("example");
1056    /// ```
1057    pub fn set_parent<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
1058        self.parent = v.into();
1059        self
1060    }
1061
1062    /// Sets the value of [page_size][crate::model::ListParameterVersionsRequest::page_size].
1063    ///
1064    /// # Example
1065    /// ```ignore,no_run
1066    /// # use google_cloud_parametermanager_v1::model::ListParameterVersionsRequest;
1067    /// let x = ListParameterVersionsRequest::new().set_page_size(42);
1068    /// ```
1069    pub fn set_page_size<T: std::convert::Into<i32>>(mut self, v: T) -> Self {
1070        self.page_size = v.into();
1071        self
1072    }
1073
1074    /// Sets the value of [page_token][crate::model::ListParameterVersionsRequest::page_token].
1075    ///
1076    /// # Example
1077    /// ```ignore,no_run
1078    /// # use google_cloud_parametermanager_v1::model::ListParameterVersionsRequest;
1079    /// let x = ListParameterVersionsRequest::new().set_page_token("example");
1080    /// ```
1081    pub fn set_page_token<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
1082        self.page_token = v.into();
1083        self
1084    }
1085
1086    /// Sets the value of [filter][crate::model::ListParameterVersionsRequest::filter].
1087    ///
1088    /// # Example
1089    /// ```ignore,no_run
1090    /// # use google_cloud_parametermanager_v1::model::ListParameterVersionsRequest;
1091    /// let x = ListParameterVersionsRequest::new().set_filter("example");
1092    /// ```
1093    pub fn set_filter<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
1094        self.filter = v.into();
1095        self
1096    }
1097
1098    /// Sets the value of [order_by][crate::model::ListParameterVersionsRequest::order_by].
1099    ///
1100    /// # Example
1101    /// ```ignore,no_run
1102    /// # use google_cloud_parametermanager_v1::model::ListParameterVersionsRequest;
1103    /// let x = ListParameterVersionsRequest::new().set_order_by("example");
1104    /// ```
1105    pub fn set_order_by<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
1106        self.order_by = v.into();
1107        self
1108    }
1109}
1110
1111impl wkt::message::Message for ListParameterVersionsRequest {
1112    fn typename() -> &'static str {
1113        "type.googleapis.com/google.cloud.parametermanager.v1.ListParameterVersionsRequest"
1114    }
1115}
1116
1117/// Message for response to listing ParameterVersions
1118#[derive(Clone, Default, PartialEq)]
1119#[non_exhaustive]
1120pub struct ListParameterVersionsResponse {
1121    /// The list of ParameterVersions
1122    pub parameter_versions: std::vec::Vec<crate::model::ParameterVersion>,
1123
1124    /// A token identifying a page of results the server should return.
1125    pub next_page_token: std::string::String,
1126
1127    /// Unordered list. Locations that could not be reached.
1128    pub unreachable: std::vec::Vec<std::string::String>,
1129
1130    pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
1131}
1132
1133impl ListParameterVersionsResponse {
1134    pub fn new() -> Self {
1135        std::default::Default::default()
1136    }
1137
1138    /// Sets the value of [parameter_versions][crate::model::ListParameterVersionsResponse::parameter_versions].
1139    ///
1140    /// # Example
1141    /// ```ignore,no_run
1142    /// # use google_cloud_parametermanager_v1::model::ListParameterVersionsResponse;
1143    /// use google_cloud_parametermanager_v1::model::ParameterVersion;
1144    /// let x = ListParameterVersionsResponse::new()
1145    ///     .set_parameter_versions([
1146    ///         ParameterVersion::default()/* use setters */,
1147    ///         ParameterVersion::default()/* use (different) setters */,
1148    ///     ]);
1149    /// ```
1150    pub fn set_parameter_versions<T, V>(mut self, v: T) -> Self
1151    where
1152        T: std::iter::IntoIterator<Item = V>,
1153        V: std::convert::Into<crate::model::ParameterVersion>,
1154    {
1155        use std::iter::Iterator;
1156        self.parameter_versions = v.into_iter().map(|i| i.into()).collect();
1157        self
1158    }
1159
1160    /// Sets the value of [next_page_token][crate::model::ListParameterVersionsResponse::next_page_token].
1161    ///
1162    /// # Example
1163    /// ```ignore,no_run
1164    /// # use google_cloud_parametermanager_v1::model::ListParameterVersionsResponse;
1165    /// let x = ListParameterVersionsResponse::new().set_next_page_token("example");
1166    /// ```
1167    pub fn set_next_page_token<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
1168        self.next_page_token = v.into();
1169        self
1170    }
1171
1172    /// Sets the value of [unreachable][crate::model::ListParameterVersionsResponse::unreachable].
1173    ///
1174    /// # Example
1175    /// ```ignore,no_run
1176    /// # use google_cloud_parametermanager_v1::model::ListParameterVersionsResponse;
1177    /// let x = ListParameterVersionsResponse::new().set_unreachable(["a", "b", "c"]);
1178    /// ```
1179    pub fn set_unreachable<T, V>(mut self, v: T) -> Self
1180    where
1181        T: std::iter::IntoIterator<Item = V>,
1182        V: std::convert::Into<std::string::String>,
1183    {
1184        use std::iter::Iterator;
1185        self.unreachable = v.into_iter().map(|i| i.into()).collect();
1186        self
1187    }
1188}
1189
1190impl wkt::message::Message for ListParameterVersionsResponse {
1191    fn typename() -> &'static str {
1192        "type.googleapis.com/google.cloud.parametermanager.v1.ListParameterVersionsResponse"
1193    }
1194}
1195
1196#[doc(hidden)]
1197impl google_cloud_gax::paginator::internal::PageableResponse for ListParameterVersionsResponse {
1198    type PageItem = crate::model::ParameterVersion;
1199
1200    fn items(self) -> std::vec::Vec<Self::PageItem> {
1201        self.parameter_versions
1202    }
1203
1204    fn next_page_token(&self) -> std::string::String {
1205        use std::clone::Clone;
1206        self.next_page_token.clone()
1207    }
1208}
1209
1210/// Message for getting a ParameterVersion
1211#[derive(Clone, Default, PartialEq)]
1212#[non_exhaustive]
1213pub struct GetParameterVersionRequest {
1214    /// Required. Name of the resource in the format
1215    /// `projects/*/locations/*/parameters/*/versions/*`.
1216    pub name: std::string::String,
1217
1218    /// Optional. View of the ParameterVersion.
1219    /// In the default FULL view, all metadata & payload associated with the
1220    /// ParameterVersion will be returned.
1221    pub view: crate::model::View,
1222
1223    pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
1224}
1225
1226impl GetParameterVersionRequest {
1227    pub fn new() -> Self {
1228        std::default::Default::default()
1229    }
1230
1231    /// Sets the value of [name][crate::model::GetParameterVersionRequest::name].
1232    ///
1233    /// # Example
1234    /// ```ignore,no_run
1235    /// # use google_cloud_parametermanager_v1::model::GetParameterVersionRequest;
1236    /// let x = GetParameterVersionRequest::new().set_name("example");
1237    /// ```
1238    pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
1239        self.name = v.into();
1240        self
1241    }
1242
1243    /// Sets the value of [view][crate::model::GetParameterVersionRequest::view].
1244    ///
1245    /// # Example
1246    /// ```ignore,no_run
1247    /// # use google_cloud_parametermanager_v1::model::GetParameterVersionRequest;
1248    /// use google_cloud_parametermanager_v1::model::View;
1249    /// let x0 = GetParameterVersionRequest::new().set_view(View::Basic);
1250    /// let x1 = GetParameterVersionRequest::new().set_view(View::Full);
1251    /// ```
1252    pub fn set_view<T: std::convert::Into<crate::model::View>>(mut self, v: T) -> Self {
1253        self.view = v.into();
1254        self
1255    }
1256}
1257
1258impl wkt::message::Message for GetParameterVersionRequest {
1259    fn typename() -> &'static str {
1260        "type.googleapis.com/google.cloud.parametermanager.v1.GetParameterVersionRequest"
1261    }
1262}
1263
1264/// Message for getting a ParameterVersionRender
1265#[derive(Clone, Default, PartialEq)]
1266#[non_exhaustive]
1267pub struct RenderParameterVersionRequest {
1268    /// Required. Name of the resource
1269    pub name: std::string::String,
1270
1271    pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
1272}
1273
1274impl RenderParameterVersionRequest {
1275    pub fn new() -> Self {
1276        std::default::Default::default()
1277    }
1278
1279    /// Sets the value of [name][crate::model::RenderParameterVersionRequest::name].
1280    ///
1281    /// # Example
1282    /// ```ignore,no_run
1283    /// # use google_cloud_parametermanager_v1::model::RenderParameterVersionRequest;
1284    /// let x = RenderParameterVersionRequest::new().set_name("example");
1285    /// ```
1286    pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
1287        self.name = v.into();
1288        self
1289    }
1290}
1291
1292impl wkt::message::Message for RenderParameterVersionRequest {
1293    fn typename() -> &'static str {
1294        "type.googleapis.com/google.cloud.parametermanager.v1.RenderParameterVersionRequest"
1295    }
1296}
1297
1298/// Message describing RenderParameterVersionResponse resource
1299#[derive(Clone, Default, PartialEq)]
1300#[non_exhaustive]
1301pub struct RenderParameterVersionResponse {
1302    /// Output only. Resource identifier of a ParameterVersion in the format
1303    /// `projects/*/locations/*/parameters/*/versions/*`.
1304    pub parameter_version: std::string::String,
1305
1306    /// Payload content of a ParameterVersion resource.
1307    pub payload: std::option::Option<crate::model::ParameterVersionPayload>,
1308
1309    /// Output only. Server generated rendered version of the user provided payload
1310    /// data (ParameterVersionPayload) which has substitutions of all (if any)
1311    /// references to a SecretManager SecretVersion resources. This substitution
1312    /// only works for a Parameter which is in JSON or YAML format.
1313    pub rendered_payload: ::bytes::Bytes,
1314
1315    pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
1316}
1317
1318impl RenderParameterVersionResponse {
1319    pub fn new() -> Self {
1320        std::default::Default::default()
1321    }
1322
1323    /// Sets the value of [parameter_version][crate::model::RenderParameterVersionResponse::parameter_version].
1324    ///
1325    /// # Example
1326    /// ```ignore,no_run
1327    /// # use google_cloud_parametermanager_v1::model::RenderParameterVersionResponse;
1328    /// let x = RenderParameterVersionResponse::new().set_parameter_version("example");
1329    /// ```
1330    pub fn set_parameter_version<T: std::convert::Into<std::string::String>>(
1331        mut self,
1332        v: T,
1333    ) -> Self {
1334        self.parameter_version = v.into();
1335        self
1336    }
1337
1338    /// Sets the value of [payload][crate::model::RenderParameterVersionResponse::payload].
1339    ///
1340    /// # Example
1341    /// ```ignore,no_run
1342    /// # use google_cloud_parametermanager_v1::model::RenderParameterVersionResponse;
1343    /// use google_cloud_parametermanager_v1::model::ParameterVersionPayload;
1344    /// let x = RenderParameterVersionResponse::new().set_payload(ParameterVersionPayload::default()/* use setters */);
1345    /// ```
1346    pub fn set_payload<T>(mut self, v: T) -> Self
1347    where
1348        T: std::convert::Into<crate::model::ParameterVersionPayload>,
1349    {
1350        self.payload = std::option::Option::Some(v.into());
1351        self
1352    }
1353
1354    /// Sets or clears the value of [payload][crate::model::RenderParameterVersionResponse::payload].
1355    ///
1356    /// # Example
1357    /// ```ignore,no_run
1358    /// # use google_cloud_parametermanager_v1::model::RenderParameterVersionResponse;
1359    /// use google_cloud_parametermanager_v1::model::ParameterVersionPayload;
1360    /// let x = RenderParameterVersionResponse::new().set_or_clear_payload(Some(ParameterVersionPayload::default()/* use setters */));
1361    /// let x = RenderParameterVersionResponse::new().set_or_clear_payload(None::<ParameterVersionPayload>);
1362    /// ```
1363    pub fn set_or_clear_payload<T>(mut self, v: std::option::Option<T>) -> Self
1364    where
1365        T: std::convert::Into<crate::model::ParameterVersionPayload>,
1366    {
1367        self.payload = v.map(|x| x.into());
1368        self
1369    }
1370
1371    /// Sets the value of [rendered_payload][crate::model::RenderParameterVersionResponse::rendered_payload].
1372    ///
1373    /// # Example
1374    /// ```ignore,no_run
1375    /// # use google_cloud_parametermanager_v1::model::RenderParameterVersionResponse;
1376    /// let x = RenderParameterVersionResponse::new().set_rendered_payload(bytes::Bytes::from_static(b"example"));
1377    /// ```
1378    pub fn set_rendered_payload<T: std::convert::Into<::bytes::Bytes>>(mut self, v: T) -> Self {
1379        self.rendered_payload = v.into();
1380        self
1381    }
1382}
1383
1384impl wkt::message::Message for RenderParameterVersionResponse {
1385    fn typename() -> &'static str {
1386        "type.googleapis.com/google.cloud.parametermanager.v1.RenderParameterVersionResponse"
1387    }
1388}
1389
1390/// Message for creating a ParameterVersion
1391#[derive(Clone, Default, PartialEq)]
1392#[non_exhaustive]
1393pub struct CreateParameterVersionRequest {
1394    /// Required. Value for parent in the format
1395    /// `projects/*/locations/*/parameters/*`.
1396    pub parent: std::string::String,
1397
1398    /// Required. Id of the ParameterVersion resource
1399    pub parameter_version_id: std::string::String,
1400
1401    /// Required. The ParameterVersion resource being created
1402    pub parameter_version: std::option::Option<crate::model::ParameterVersion>,
1403
1404    /// Optional. An optional request ID to identify requests. Specify a unique
1405    /// request ID so that if you must retry your request, the server will know to
1406    /// ignore the request if it has already been completed. The server will
1407    /// guarantee that for at least 60 minutes since the first request.
1408    ///
1409    /// For example, consider a situation where you make an initial request and the
1410    /// request times out. If you make the request again with the same request
1411    /// ID, the server can check if original operation with the same request ID
1412    /// was received, and if so, will ignore the second request. This prevents
1413    /// clients from accidentally creating duplicate commitments.
1414    ///
1415    /// The request ID must be a valid UUID with the exception that zero UUID is
1416    /// not supported (00000000-0000-0000-0000-000000000000).
1417    pub request_id: std::string::String,
1418
1419    pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
1420}
1421
1422impl CreateParameterVersionRequest {
1423    pub fn new() -> Self {
1424        std::default::Default::default()
1425    }
1426
1427    /// Sets the value of [parent][crate::model::CreateParameterVersionRequest::parent].
1428    ///
1429    /// # Example
1430    /// ```ignore,no_run
1431    /// # use google_cloud_parametermanager_v1::model::CreateParameterVersionRequest;
1432    /// let x = CreateParameterVersionRequest::new().set_parent("example");
1433    /// ```
1434    pub fn set_parent<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
1435        self.parent = v.into();
1436        self
1437    }
1438
1439    /// Sets the value of [parameter_version_id][crate::model::CreateParameterVersionRequest::parameter_version_id].
1440    ///
1441    /// # Example
1442    /// ```ignore,no_run
1443    /// # use google_cloud_parametermanager_v1::model::CreateParameterVersionRequest;
1444    /// let x = CreateParameterVersionRequest::new().set_parameter_version_id("example");
1445    /// ```
1446    pub fn set_parameter_version_id<T: std::convert::Into<std::string::String>>(
1447        mut self,
1448        v: T,
1449    ) -> Self {
1450        self.parameter_version_id = v.into();
1451        self
1452    }
1453
1454    /// Sets the value of [parameter_version][crate::model::CreateParameterVersionRequest::parameter_version].
1455    ///
1456    /// # Example
1457    /// ```ignore,no_run
1458    /// # use google_cloud_parametermanager_v1::model::CreateParameterVersionRequest;
1459    /// use google_cloud_parametermanager_v1::model::ParameterVersion;
1460    /// let x = CreateParameterVersionRequest::new().set_parameter_version(ParameterVersion::default()/* use setters */);
1461    /// ```
1462    pub fn set_parameter_version<T>(mut self, v: T) -> Self
1463    where
1464        T: std::convert::Into<crate::model::ParameterVersion>,
1465    {
1466        self.parameter_version = std::option::Option::Some(v.into());
1467        self
1468    }
1469
1470    /// Sets or clears the value of [parameter_version][crate::model::CreateParameterVersionRequest::parameter_version].
1471    ///
1472    /// # Example
1473    /// ```ignore,no_run
1474    /// # use google_cloud_parametermanager_v1::model::CreateParameterVersionRequest;
1475    /// use google_cloud_parametermanager_v1::model::ParameterVersion;
1476    /// let x = CreateParameterVersionRequest::new().set_or_clear_parameter_version(Some(ParameterVersion::default()/* use setters */));
1477    /// let x = CreateParameterVersionRequest::new().set_or_clear_parameter_version(None::<ParameterVersion>);
1478    /// ```
1479    pub fn set_or_clear_parameter_version<T>(mut self, v: std::option::Option<T>) -> Self
1480    where
1481        T: std::convert::Into<crate::model::ParameterVersion>,
1482    {
1483        self.parameter_version = v.map(|x| x.into());
1484        self
1485    }
1486
1487    /// Sets the value of [request_id][crate::model::CreateParameterVersionRequest::request_id].
1488    ///
1489    /// # Example
1490    /// ```ignore,no_run
1491    /// # use google_cloud_parametermanager_v1::model::CreateParameterVersionRequest;
1492    /// let x = CreateParameterVersionRequest::new().set_request_id("example");
1493    /// ```
1494    pub fn set_request_id<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
1495        self.request_id = v.into();
1496        self
1497    }
1498}
1499
1500impl wkt::message::Message for CreateParameterVersionRequest {
1501    fn typename() -> &'static str {
1502        "type.googleapis.com/google.cloud.parametermanager.v1.CreateParameterVersionRequest"
1503    }
1504}
1505
1506/// Message for updating a ParameterVersion
1507#[derive(Clone, Default, PartialEq)]
1508#[non_exhaustive]
1509pub struct UpdateParameterVersionRequest {
1510    /// Optional. Field mask is used to specify the fields to be overwritten in the
1511    /// ParameterVersion resource by the update.
1512    /// The fields specified in the update_mask are relative to the resource, not
1513    /// the full request. A mutable field will be overwritten if it is in the
1514    /// mask. If the user does not provide a mask then all mutable fields present
1515    /// in the request will be overwritten.
1516    pub update_mask: std::option::Option<wkt::FieldMask>,
1517
1518    /// Required. The ParameterVersion resource being updated
1519    pub parameter_version: std::option::Option<crate::model::ParameterVersion>,
1520
1521    /// Optional. An optional request ID to identify requests. Specify a unique
1522    /// request ID so that if you must retry your request, the server will know to
1523    /// ignore the request if it has already been completed. The server will
1524    /// guarantee that for at least 60 minutes since the first request.
1525    ///
1526    /// For example, consider a situation where you make an initial request and the
1527    /// request times out. If you make the request again with the same request
1528    /// ID, the server can check if original operation with the same request ID
1529    /// was received, and if so, will ignore the second request. This prevents
1530    /// clients from accidentally creating duplicate commitments.
1531    ///
1532    /// The request ID must be a valid UUID with the exception that zero UUID is
1533    /// not supported (00000000-0000-0000-0000-000000000000).
1534    pub request_id: std::string::String,
1535
1536    pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
1537}
1538
1539impl UpdateParameterVersionRequest {
1540    pub fn new() -> Self {
1541        std::default::Default::default()
1542    }
1543
1544    /// Sets the value of [update_mask][crate::model::UpdateParameterVersionRequest::update_mask].
1545    ///
1546    /// # Example
1547    /// ```ignore,no_run
1548    /// # use google_cloud_parametermanager_v1::model::UpdateParameterVersionRequest;
1549    /// use wkt::FieldMask;
1550    /// let x = UpdateParameterVersionRequest::new().set_update_mask(FieldMask::default()/* use setters */);
1551    /// ```
1552    pub fn set_update_mask<T>(mut self, v: T) -> Self
1553    where
1554        T: std::convert::Into<wkt::FieldMask>,
1555    {
1556        self.update_mask = std::option::Option::Some(v.into());
1557        self
1558    }
1559
1560    /// Sets or clears the value of [update_mask][crate::model::UpdateParameterVersionRequest::update_mask].
1561    ///
1562    /// # Example
1563    /// ```ignore,no_run
1564    /// # use google_cloud_parametermanager_v1::model::UpdateParameterVersionRequest;
1565    /// use wkt::FieldMask;
1566    /// let x = UpdateParameterVersionRequest::new().set_or_clear_update_mask(Some(FieldMask::default()/* use setters */));
1567    /// let x = UpdateParameterVersionRequest::new().set_or_clear_update_mask(None::<FieldMask>);
1568    /// ```
1569    pub fn set_or_clear_update_mask<T>(mut self, v: std::option::Option<T>) -> Self
1570    where
1571        T: std::convert::Into<wkt::FieldMask>,
1572    {
1573        self.update_mask = v.map(|x| x.into());
1574        self
1575    }
1576
1577    /// Sets the value of [parameter_version][crate::model::UpdateParameterVersionRequest::parameter_version].
1578    ///
1579    /// # Example
1580    /// ```ignore,no_run
1581    /// # use google_cloud_parametermanager_v1::model::UpdateParameterVersionRequest;
1582    /// use google_cloud_parametermanager_v1::model::ParameterVersion;
1583    /// let x = UpdateParameterVersionRequest::new().set_parameter_version(ParameterVersion::default()/* use setters */);
1584    /// ```
1585    pub fn set_parameter_version<T>(mut self, v: T) -> Self
1586    where
1587        T: std::convert::Into<crate::model::ParameterVersion>,
1588    {
1589        self.parameter_version = std::option::Option::Some(v.into());
1590        self
1591    }
1592
1593    /// Sets or clears the value of [parameter_version][crate::model::UpdateParameterVersionRequest::parameter_version].
1594    ///
1595    /// # Example
1596    /// ```ignore,no_run
1597    /// # use google_cloud_parametermanager_v1::model::UpdateParameterVersionRequest;
1598    /// use google_cloud_parametermanager_v1::model::ParameterVersion;
1599    /// let x = UpdateParameterVersionRequest::new().set_or_clear_parameter_version(Some(ParameterVersion::default()/* use setters */));
1600    /// let x = UpdateParameterVersionRequest::new().set_or_clear_parameter_version(None::<ParameterVersion>);
1601    /// ```
1602    pub fn set_or_clear_parameter_version<T>(mut self, v: std::option::Option<T>) -> Self
1603    where
1604        T: std::convert::Into<crate::model::ParameterVersion>,
1605    {
1606        self.parameter_version = v.map(|x| x.into());
1607        self
1608    }
1609
1610    /// Sets the value of [request_id][crate::model::UpdateParameterVersionRequest::request_id].
1611    ///
1612    /// # Example
1613    /// ```ignore,no_run
1614    /// # use google_cloud_parametermanager_v1::model::UpdateParameterVersionRequest;
1615    /// let x = UpdateParameterVersionRequest::new().set_request_id("example");
1616    /// ```
1617    pub fn set_request_id<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
1618        self.request_id = v.into();
1619        self
1620    }
1621}
1622
1623impl wkt::message::Message for UpdateParameterVersionRequest {
1624    fn typename() -> &'static str {
1625        "type.googleapis.com/google.cloud.parametermanager.v1.UpdateParameterVersionRequest"
1626    }
1627}
1628
1629/// Message for deleting a ParameterVersion
1630#[derive(Clone, Default, PartialEq)]
1631#[non_exhaustive]
1632pub struct DeleteParameterVersionRequest {
1633    /// Required. Name of the resource in the format
1634    /// `projects/*/locations/*/parameters/*/versions/*`.
1635    pub name: std::string::String,
1636
1637    /// Optional. An optional request ID to identify requests. Specify a unique
1638    /// request ID so that if you must retry your request, the server will know to
1639    /// ignore the request if it has already been completed. The server will
1640    /// guarantee that for at least 60 minutes after the first request.
1641    ///
1642    /// For example, consider a situation where you make an initial request and the
1643    /// request times out. If you make the request again with the same request
1644    /// ID, the server can check if original operation with the same request ID
1645    /// was received, and if so, will ignore the second request. This prevents
1646    /// clients from accidentally creating duplicate commitments.
1647    ///
1648    /// The request ID must be a valid UUID with the exception that zero UUID is
1649    /// not supported (00000000-0000-0000-0000-000000000000).
1650    pub request_id: std::string::String,
1651
1652    pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
1653}
1654
1655impl DeleteParameterVersionRequest {
1656    pub fn new() -> Self {
1657        std::default::Default::default()
1658    }
1659
1660    /// Sets the value of [name][crate::model::DeleteParameterVersionRequest::name].
1661    ///
1662    /// # Example
1663    /// ```ignore,no_run
1664    /// # use google_cloud_parametermanager_v1::model::DeleteParameterVersionRequest;
1665    /// let x = DeleteParameterVersionRequest::new().set_name("example");
1666    /// ```
1667    pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
1668        self.name = v.into();
1669        self
1670    }
1671
1672    /// Sets the value of [request_id][crate::model::DeleteParameterVersionRequest::request_id].
1673    ///
1674    /// # Example
1675    /// ```ignore,no_run
1676    /// # use google_cloud_parametermanager_v1::model::DeleteParameterVersionRequest;
1677    /// let x = DeleteParameterVersionRequest::new().set_request_id("example");
1678    /// ```
1679    pub fn set_request_id<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
1680        self.request_id = v.into();
1681        self
1682    }
1683}
1684
1685impl wkt::message::Message for DeleteParameterVersionRequest {
1686    fn typename() -> &'static str {
1687        "type.googleapis.com/google.cloud.parametermanager.v1.DeleteParameterVersionRequest"
1688    }
1689}
1690
1691/// Option to specify the format of a Parameter resource (UNFORMATTED / YAML /
1692/// JSON). This option is user specified at the time of creation of the resource
1693/// and is immutable.
1694///
1695/// # Working with unknown values
1696///
1697/// This enum is defined as `#[non_exhaustive]` because Google Cloud may add
1698/// additional enum variants at any time. Adding new variants is not considered
1699/// a breaking change. Applications should write their code in anticipation of:
1700///
1701/// - New values appearing in future releases of the client library, **and**
1702/// - New values received dynamically, without application changes.
1703///
1704/// Please consult the [Working with enums] section in the user guide for some
1705/// guidelines.
1706///
1707/// [Working with enums]: https://googleapis.github.io/google-cloud-rust/working_with_enums.html
1708#[derive(Clone, Debug, PartialEq)]
1709#[non_exhaustive]
1710pub enum ParameterFormat {
1711    /// The default / unset value.
1712    /// The API will default to the UNFORMATTED format.
1713    Unspecified,
1714    /// Unformatted.
1715    Unformatted,
1716    /// YAML format.
1717    Yaml,
1718    /// JSON format.
1719    Json,
1720    /// If set, the enum was initialized with an unknown value.
1721    ///
1722    /// Applications can examine the value using [ParameterFormat::value] or
1723    /// [ParameterFormat::name].
1724    UnknownValue(parameter_format::UnknownValue),
1725}
1726
1727#[doc(hidden)]
1728pub mod parameter_format {
1729    #[allow(unused_imports)]
1730    use super::*;
1731    #[derive(Clone, Debug, PartialEq)]
1732    pub struct UnknownValue(pub(crate) wkt::internal::UnknownEnumValue);
1733}
1734
1735impl ParameterFormat {
1736    /// Gets the enum value.
1737    ///
1738    /// Returns `None` if the enum contains an unknown value deserialized from
1739    /// the string representation of enums.
1740    pub fn value(&self) -> std::option::Option<i32> {
1741        match self {
1742            Self::Unspecified => std::option::Option::Some(0),
1743            Self::Unformatted => std::option::Option::Some(1),
1744            Self::Yaml => std::option::Option::Some(2),
1745            Self::Json => std::option::Option::Some(3),
1746            Self::UnknownValue(u) => u.0.value(),
1747        }
1748    }
1749
1750    /// Gets the enum value as a string.
1751    ///
1752    /// Returns `None` if the enum contains an unknown value deserialized from
1753    /// the integer representation of enums.
1754    pub fn name(&self) -> std::option::Option<&str> {
1755        match self {
1756            Self::Unspecified => std::option::Option::Some("PARAMETER_FORMAT_UNSPECIFIED"),
1757            Self::Unformatted => std::option::Option::Some("UNFORMATTED"),
1758            Self::Yaml => std::option::Option::Some("YAML"),
1759            Self::Json => std::option::Option::Some("JSON"),
1760            Self::UnknownValue(u) => u.0.name(),
1761        }
1762    }
1763}
1764
1765impl std::default::Default for ParameterFormat {
1766    fn default() -> Self {
1767        use std::convert::From;
1768        Self::from(0)
1769    }
1770}
1771
1772impl std::fmt::Display for ParameterFormat {
1773    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error> {
1774        wkt::internal::display_enum(f, self.name(), self.value())
1775    }
1776}
1777
1778impl std::convert::From<i32> for ParameterFormat {
1779    fn from(value: i32) -> Self {
1780        match value {
1781            0 => Self::Unspecified,
1782            1 => Self::Unformatted,
1783            2 => Self::Yaml,
1784            3 => Self::Json,
1785            _ => Self::UnknownValue(parameter_format::UnknownValue(
1786                wkt::internal::UnknownEnumValue::Integer(value),
1787            )),
1788        }
1789    }
1790}
1791
1792impl std::convert::From<&str> for ParameterFormat {
1793    fn from(value: &str) -> Self {
1794        use std::string::ToString;
1795        match value {
1796            "PARAMETER_FORMAT_UNSPECIFIED" => Self::Unspecified,
1797            "UNFORMATTED" => Self::Unformatted,
1798            "YAML" => Self::Yaml,
1799            "JSON" => Self::Json,
1800            _ => Self::UnknownValue(parameter_format::UnknownValue(
1801                wkt::internal::UnknownEnumValue::String(value.to_string()),
1802            )),
1803        }
1804    }
1805}
1806
1807impl serde::ser::Serialize for ParameterFormat {
1808    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1809    where
1810        S: serde::Serializer,
1811    {
1812        match self {
1813            Self::Unspecified => serializer.serialize_i32(0),
1814            Self::Unformatted => serializer.serialize_i32(1),
1815            Self::Yaml => serializer.serialize_i32(2),
1816            Self::Json => serializer.serialize_i32(3),
1817            Self::UnknownValue(u) => u.0.serialize(serializer),
1818        }
1819    }
1820}
1821
1822impl<'de> serde::de::Deserialize<'de> for ParameterFormat {
1823    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1824    where
1825        D: serde::Deserializer<'de>,
1826    {
1827        deserializer.deserialize_any(wkt::internal::EnumVisitor::<ParameterFormat>::new(
1828            ".google.cloud.parametermanager.v1.ParameterFormat",
1829        ))
1830    }
1831}
1832
1833/// Option for requesting only metadata, or user provided payload
1834/// of a ParameterVersion resource.
1835///
1836/// # Working with unknown values
1837///
1838/// This enum is defined as `#[non_exhaustive]` because Google Cloud may add
1839/// additional enum variants at any time. Adding new variants is not considered
1840/// a breaking change. Applications should write their code in anticipation of:
1841///
1842/// - New values appearing in future releases of the client library, **and**
1843/// - New values received dynamically, without application changes.
1844///
1845/// Please consult the [Working with enums] section in the user guide for some
1846/// guidelines.
1847///
1848/// [Working with enums]: https://googleapis.github.io/google-cloud-rust/working_with_enums.html
1849#[derive(Clone, Debug, PartialEq)]
1850#[non_exhaustive]
1851pub enum View {
1852    /// The default / unset value.
1853    /// The API will default to the FULL view..
1854    Unspecified,
1855    /// Include only the metadata for the resource.
1856    Basic,
1857    /// Include metadata & other relevant payload data as well.
1858    /// This is the default view.
1859    Full,
1860    /// If set, the enum was initialized with an unknown value.
1861    ///
1862    /// Applications can examine the value using [View::value] or
1863    /// [View::name].
1864    UnknownValue(view::UnknownValue),
1865}
1866
1867#[doc(hidden)]
1868pub mod view {
1869    #[allow(unused_imports)]
1870    use super::*;
1871    #[derive(Clone, Debug, PartialEq)]
1872    pub struct UnknownValue(pub(crate) wkt::internal::UnknownEnumValue);
1873}
1874
1875impl View {
1876    /// Gets the enum value.
1877    ///
1878    /// Returns `None` if the enum contains an unknown value deserialized from
1879    /// the string representation of enums.
1880    pub fn value(&self) -> std::option::Option<i32> {
1881        match self {
1882            Self::Unspecified => std::option::Option::Some(0),
1883            Self::Basic => std::option::Option::Some(1),
1884            Self::Full => std::option::Option::Some(2),
1885            Self::UnknownValue(u) => u.0.value(),
1886        }
1887    }
1888
1889    /// Gets the enum value as a string.
1890    ///
1891    /// Returns `None` if the enum contains an unknown value deserialized from
1892    /// the integer representation of enums.
1893    pub fn name(&self) -> std::option::Option<&str> {
1894        match self {
1895            Self::Unspecified => std::option::Option::Some("VIEW_UNSPECIFIED"),
1896            Self::Basic => std::option::Option::Some("BASIC"),
1897            Self::Full => std::option::Option::Some("FULL"),
1898            Self::UnknownValue(u) => u.0.name(),
1899        }
1900    }
1901}
1902
1903impl std::default::Default for View {
1904    fn default() -> Self {
1905        use std::convert::From;
1906        Self::from(0)
1907    }
1908}
1909
1910impl std::fmt::Display for View {
1911    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error> {
1912        wkt::internal::display_enum(f, self.name(), self.value())
1913    }
1914}
1915
1916impl std::convert::From<i32> for View {
1917    fn from(value: i32) -> Self {
1918        match value {
1919            0 => Self::Unspecified,
1920            1 => Self::Basic,
1921            2 => Self::Full,
1922            _ => Self::UnknownValue(view::UnknownValue(
1923                wkt::internal::UnknownEnumValue::Integer(value),
1924            )),
1925        }
1926    }
1927}
1928
1929impl std::convert::From<&str> for View {
1930    fn from(value: &str) -> Self {
1931        use std::string::ToString;
1932        match value {
1933            "VIEW_UNSPECIFIED" => Self::Unspecified,
1934            "BASIC" => Self::Basic,
1935            "FULL" => Self::Full,
1936            _ => Self::UnknownValue(view::UnknownValue(wkt::internal::UnknownEnumValue::String(
1937                value.to_string(),
1938            ))),
1939        }
1940    }
1941}
1942
1943impl serde::ser::Serialize for View {
1944    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1945    where
1946        S: serde::Serializer,
1947    {
1948        match self {
1949            Self::Unspecified => serializer.serialize_i32(0),
1950            Self::Basic => serializer.serialize_i32(1),
1951            Self::Full => serializer.serialize_i32(2),
1952            Self::UnknownValue(u) => u.0.serialize(serializer),
1953        }
1954    }
1955}
1956
1957impl<'de> serde::de::Deserialize<'de> for View {
1958    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1959    where
1960        D: serde::Deserializer<'de>,
1961    {
1962        deserializer.deserialize_any(wkt::internal::EnumVisitor::<View>::new(
1963            ".google.cloud.parametermanager.v1.View",
1964        ))
1965    }
1966}