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