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