google_cloud_secretmanager_v1/model.rs
1// Copyright 2024 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/// A [Secret][google.cloud.secretmanager.v1.Secret] is a logical secret whose
39/// value and versions can be accessed.
40///
41/// A [Secret][google.cloud.secretmanager.v1.Secret] is made up of zero or more
42/// [SecretVersions][google.cloud.secretmanager.v1.SecretVersion] that represent
43/// the secret data.
44///
45/// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
46/// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
47#[derive(Clone, Default, PartialEq)]
48#[non_exhaustive]
49pub struct Secret {
50 /// Output only. The resource name of the
51 /// [Secret][google.cloud.secretmanager.v1.Secret] in the format
52 /// `projects/*/secrets/*`.
53 ///
54 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
55 pub name: std::string::String,
56
57 /// Optional. Immutable. The replication policy of the secret data attached to
58 /// the [Secret][google.cloud.secretmanager.v1.Secret].
59 ///
60 /// The replication policy cannot be changed after the Secret has been created.
61 ///
62 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
63 pub replication: std::option::Option<crate::model::Replication>,
64
65 /// Output only. The time at which the
66 /// [Secret][google.cloud.secretmanager.v1.Secret] was created.
67 ///
68 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
69 pub create_time: std::option::Option<wkt::Timestamp>,
70
71 /// The labels assigned to this Secret.
72 ///
73 /// Label keys must be between 1 and 63 characters long, have a UTF-8 encoding
74 /// of maximum 128 bytes, and must conform to the following PCRE regular
75 /// expression: `[\p{Ll}\p{Lo}][\p{Ll}\p{Lo}\p{N}_-]{0,62}`
76 ///
77 /// Label values must be between 0 and 63 characters long, have a UTF-8
78 /// encoding of maximum 128 bytes, and must conform to the following PCRE
79 /// regular expression: `[\p{Ll}\p{Lo}\p{N}_-]{0,63}`
80 ///
81 /// No more than 64 labels can be assigned to a given resource.
82 pub labels: std::collections::HashMap<std::string::String, std::string::String>,
83
84 /// Optional. A list of up to 10 Pub/Sub topics to which messages are published
85 /// when control plane operations are called on the secret or its versions.
86 pub topics: std::vec::Vec<crate::model::Topic>,
87
88 /// Optional. Etag of the currently stored
89 /// [Secret][google.cloud.secretmanager.v1.Secret].
90 ///
91 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
92 pub etag: std::string::String,
93
94 /// Optional. Rotation policy attached to the
95 /// [Secret][google.cloud.secretmanager.v1.Secret]. May be excluded if there is
96 /// no rotation policy.
97 ///
98 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
99 pub rotation: std::option::Option<crate::model::Rotation>,
100
101 /// Optional. Mapping from version alias to version name.
102 ///
103 /// A version alias is a string with a maximum length of 63 characters and can
104 /// contain uppercase and lowercase letters, numerals, and the hyphen (`-`)
105 /// and underscore ('_') characters. An alias string must start with a
106 /// letter and cannot be the string 'latest' or 'NEW'.
107 /// No more than 50 aliases can be assigned to a given secret.
108 ///
109 /// Version-Alias pairs will be viewable via GetSecret and modifiable via
110 /// UpdateSecret. Access by alias is only be supported on
111 /// GetSecretVersion and AccessSecretVersion.
112 pub version_aliases: std::collections::HashMap<std::string::String, i64>,
113
114 /// Optional. Custom metadata about the secret.
115 ///
116 /// Annotations are distinct from various forms of labels.
117 /// Annotations exist to allow client tools to store their own state
118 /// information without requiring a database.
119 ///
120 /// Annotation keys must be between 1 and 63 characters long, have a UTF-8
121 /// encoding of maximum 128 bytes, begin and end with an alphanumeric character
122 /// ([a-z0-9A-Z]), and may have dashes (-), underscores (_), dots (.), and
123 /// alphanumerics in between these symbols.
124 ///
125 /// The total size of annotation keys and values must be less than 16KiB.
126 pub annotations: std::collections::HashMap<std::string::String, std::string::String>,
127
128 /// Optional. Secret Version TTL after destruction request
129 ///
130 /// This is a part of the Delayed secret version destroy feature.
131 /// For secret with TTL>0, version destruction doesn't happen immediately
132 /// on calling destroy instead the version goes to a disabled state and
133 /// destruction happens after the TTL expires.
134 pub version_destroy_ttl: std::option::Option<wkt::Duration>,
135
136 /// Optional. The customer-managed encryption configuration of the regionalized
137 /// secrets. If no configuration is provided, Google-managed default encryption
138 /// is used.
139 ///
140 /// Updates to the [Secret][google.cloud.secretmanager.v1.Secret] encryption
141 /// configuration only apply to
142 /// [SecretVersions][google.cloud.secretmanager.v1.SecretVersion] added
143 /// afterwards. They do not apply retroactively to existing
144 /// [SecretVersions][google.cloud.secretmanager.v1.SecretVersion].
145 ///
146 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
147 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
148 pub customer_managed_encryption: std::option::Option<crate::model::CustomerManagedEncryption>,
149
150 /// Optional. Input only. Immutable. Mapping of Tag keys/values directly bound
151 /// to this resource. For example:
152 /// "123/environment": "production",
153 /// "123/costCenter": "marketing"
154 ///
155 /// Tags are used to organize and group resources.
156 ///
157 /// Tags can be used to control policy evaluation for the resource.
158 pub tags: std::collections::HashMap<std::string::String, std::string::String>,
159
160 /// Expiration policy attached to the
161 /// [Secret][google.cloud.secretmanager.v1.Secret]. If specified the
162 /// [Secret][google.cloud.secretmanager.v1.Secret] and all
163 /// [SecretVersions][google.cloud.secretmanager.v1.SecretVersion] will be
164 /// automatically deleted at expiration. Expired secrets are irreversibly
165 /// deleted.
166 ///
167 /// Expiration is *not* the recommended way to set time-based permissions. [IAM
168 /// Conditions](https://cloud.google.com/secret-manager/docs/access-control#conditions)
169 /// is recommended for granting time-based permissions because the operation
170 /// can be reversed.
171 ///
172 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
173 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
174 pub expiration: std::option::Option<crate::model::secret::Expiration>,
175
176 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
177}
178
179impl Secret {
180 pub fn new() -> Self {
181 std::default::Default::default()
182 }
183
184 /// Sets the value of [name][crate::model::Secret::name].
185 ///
186 /// # Example
187 /// ```ignore,no_run
188 /// # use google_cloud_secretmanager_v1::model::Secret;
189 /// let x = Secret::new().set_name("example");
190 /// ```
191 pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
192 self.name = v.into();
193 self
194 }
195
196 /// Sets the value of [replication][crate::model::Secret::replication].
197 ///
198 /// # Example
199 /// ```ignore,no_run
200 /// # use google_cloud_secretmanager_v1::model::Secret;
201 /// use google_cloud_secretmanager_v1::model::Replication;
202 /// let x = Secret::new().set_replication(Replication::default()/* use setters */);
203 /// ```
204 pub fn set_replication<T>(mut self, v: T) -> Self
205 where
206 T: std::convert::Into<crate::model::Replication>,
207 {
208 self.replication = std::option::Option::Some(v.into());
209 self
210 }
211
212 /// Sets or clears the value of [replication][crate::model::Secret::replication].
213 ///
214 /// # Example
215 /// ```ignore,no_run
216 /// # use google_cloud_secretmanager_v1::model::Secret;
217 /// use google_cloud_secretmanager_v1::model::Replication;
218 /// let x = Secret::new().set_or_clear_replication(Some(Replication::default()/* use setters */));
219 /// let x = Secret::new().set_or_clear_replication(None::<Replication>);
220 /// ```
221 pub fn set_or_clear_replication<T>(mut self, v: std::option::Option<T>) -> Self
222 where
223 T: std::convert::Into<crate::model::Replication>,
224 {
225 self.replication = v.map(|x| x.into());
226 self
227 }
228
229 /// Sets the value of [create_time][crate::model::Secret::create_time].
230 ///
231 /// # Example
232 /// ```ignore,no_run
233 /// # use google_cloud_secretmanager_v1::model::Secret;
234 /// use wkt::Timestamp;
235 /// let x = Secret::new().set_create_time(Timestamp::default()/* use setters */);
236 /// ```
237 pub fn set_create_time<T>(mut self, v: T) -> Self
238 where
239 T: std::convert::Into<wkt::Timestamp>,
240 {
241 self.create_time = std::option::Option::Some(v.into());
242 self
243 }
244
245 /// Sets or clears the value of [create_time][crate::model::Secret::create_time].
246 ///
247 /// # Example
248 /// ```ignore,no_run
249 /// # use google_cloud_secretmanager_v1::model::Secret;
250 /// use wkt::Timestamp;
251 /// let x = Secret::new().set_or_clear_create_time(Some(Timestamp::default()/* use setters */));
252 /// let x = Secret::new().set_or_clear_create_time(None::<Timestamp>);
253 /// ```
254 pub fn set_or_clear_create_time<T>(mut self, v: std::option::Option<T>) -> Self
255 where
256 T: std::convert::Into<wkt::Timestamp>,
257 {
258 self.create_time = v.map(|x| x.into());
259 self
260 }
261
262 /// Sets the value of [labels][crate::model::Secret::labels].
263 ///
264 /// # Example
265 /// ```ignore,no_run
266 /// # use google_cloud_secretmanager_v1::model::Secret;
267 /// let x = Secret::new().set_labels([
268 /// ("key0", "abc"),
269 /// ("key1", "xyz"),
270 /// ]);
271 /// ```
272 pub fn set_labels<T, K, V>(mut self, v: T) -> Self
273 where
274 T: std::iter::IntoIterator<Item = (K, V)>,
275 K: std::convert::Into<std::string::String>,
276 V: std::convert::Into<std::string::String>,
277 {
278 use std::iter::Iterator;
279 self.labels = v.into_iter().map(|(k, v)| (k.into(), v.into())).collect();
280 self
281 }
282
283 /// Sets the value of [topics][crate::model::Secret::topics].
284 ///
285 /// # Example
286 /// ```ignore,no_run
287 /// # use google_cloud_secretmanager_v1::model::Secret;
288 /// use google_cloud_secretmanager_v1::model::Topic;
289 /// let x = Secret::new()
290 /// .set_topics([
291 /// Topic::default()/* use setters */,
292 /// Topic::default()/* use (different) setters */,
293 /// ]);
294 /// ```
295 pub fn set_topics<T, V>(mut self, v: T) -> Self
296 where
297 T: std::iter::IntoIterator<Item = V>,
298 V: std::convert::Into<crate::model::Topic>,
299 {
300 use std::iter::Iterator;
301 self.topics = v.into_iter().map(|i| i.into()).collect();
302 self
303 }
304
305 /// Sets the value of [etag][crate::model::Secret::etag].
306 ///
307 /// # Example
308 /// ```ignore,no_run
309 /// # use google_cloud_secretmanager_v1::model::Secret;
310 /// let x = Secret::new().set_etag("example");
311 /// ```
312 pub fn set_etag<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
313 self.etag = v.into();
314 self
315 }
316
317 /// Sets the value of [rotation][crate::model::Secret::rotation].
318 ///
319 /// # Example
320 /// ```ignore,no_run
321 /// # use google_cloud_secretmanager_v1::model::Secret;
322 /// use google_cloud_secretmanager_v1::model::Rotation;
323 /// let x = Secret::new().set_rotation(Rotation::default()/* use setters */);
324 /// ```
325 pub fn set_rotation<T>(mut self, v: T) -> Self
326 where
327 T: std::convert::Into<crate::model::Rotation>,
328 {
329 self.rotation = std::option::Option::Some(v.into());
330 self
331 }
332
333 /// Sets or clears the value of [rotation][crate::model::Secret::rotation].
334 ///
335 /// # Example
336 /// ```ignore,no_run
337 /// # use google_cloud_secretmanager_v1::model::Secret;
338 /// use google_cloud_secretmanager_v1::model::Rotation;
339 /// let x = Secret::new().set_or_clear_rotation(Some(Rotation::default()/* use setters */));
340 /// let x = Secret::new().set_or_clear_rotation(None::<Rotation>);
341 /// ```
342 pub fn set_or_clear_rotation<T>(mut self, v: std::option::Option<T>) -> Self
343 where
344 T: std::convert::Into<crate::model::Rotation>,
345 {
346 self.rotation = v.map(|x| x.into());
347 self
348 }
349
350 /// Sets the value of [version_aliases][crate::model::Secret::version_aliases].
351 ///
352 /// # Example
353 /// ```ignore,no_run
354 /// # use google_cloud_secretmanager_v1::model::Secret;
355 /// let x = Secret::new().set_version_aliases([
356 /// ("key0", 123),
357 /// ("key1", 456),
358 /// ]);
359 /// ```
360 pub fn set_version_aliases<T, K, V>(mut self, v: T) -> Self
361 where
362 T: std::iter::IntoIterator<Item = (K, V)>,
363 K: std::convert::Into<std::string::String>,
364 V: std::convert::Into<i64>,
365 {
366 use std::iter::Iterator;
367 self.version_aliases = v.into_iter().map(|(k, v)| (k.into(), v.into())).collect();
368 self
369 }
370
371 /// Sets the value of [annotations][crate::model::Secret::annotations].
372 ///
373 /// # Example
374 /// ```ignore,no_run
375 /// # use google_cloud_secretmanager_v1::model::Secret;
376 /// let x = Secret::new().set_annotations([
377 /// ("key0", "abc"),
378 /// ("key1", "xyz"),
379 /// ]);
380 /// ```
381 pub fn set_annotations<T, K, V>(mut self, v: T) -> Self
382 where
383 T: std::iter::IntoIterator<Item = (K, V)>,
384 K: std::convert::Into<std::string::String>,
385 V: std::convert::Into<std::string::String>,
386 {
387 use std::iter::Iterator;
388 self.annotations = v.into_iter().map(|(k, v)| (k.into(), v.into())).collect();
389 self
390 }
391
392 /// Sets the value of [version_destroy_ttl][crate::model::Secret::version_destroy_ttl].
393 ///
394 /// # Example
395 /// ```ignore,no_run
396 /// # use google_cloud_secretmanager_v1::model::Secret;
397 /// use wkt::Duration;
398 /// let x = Secret::new().set_version_destroy_ttl(Duration::default()/* use setters */);
399 /// ```
400 pub fn set_version_destroy_ttl<T>(mut self, v: T) -> Self
401 where
402 T: std::convert::Into<wkt::Duration>,
403 {
404 self.version_destroy_ttl = std::option::Option::Some(v.into());
405 self
406 }
407
408 /// Sets or clears the value of [version_destroy_ttl][crate::model::Secret::version_destroy_ttl].
409 ///
410 /// # Example
411 /// ```ignore,no_run
412 /// # use google_cloud_secretmanager_v1::model::Secret;
413 /// use wkt::Duration;
414 /// let x = Secret::new().set_or_clear_version_destroy_ttl(Some(Duration::default()/* use setters */));
415 /// let x = Secret::new().set_or_clear_version_destroy_ttl(None::<Duration>);
416 /// ```
417 pub fn set_or_clear_version_destroy_ttl<T>(mut self, v: std::option::Option<T>) -> Self
418 where
419 T: std::convert::Into<wkt::Duration>,
420 {
421 self.version_destroy_ttl = v.map(|x| x.into());
422 self
423 }
424
425 /// Sets the value of [customer_managed_encryption][crate::model::Secret::customer_managed_encryption].
426 ///
427 /// # Example
428 /// ```ignore,no_run
429 /// # use google_cloud_secretmanager_v1::model::Secret;
430 /// use google_cloud_secretmanager_v1::model::CustomerManagedEncryption;
431 /// let x = Secret::new().set_customer_managed_encryption(CustomerManagedEncryption::default()/* use setters */);
432 /// ```
433 pub fn set_customer_managed_encryption<T>(mut self, v: T) -> Self
434 where
435 T: std::convert::Into<crate::model::CustomerManagedEncryption>,
436 {
437 self.customer_managed_encryption = std::option::Option::Some(v.into());
438 self
439 }
440
441 /// Sets or clears the value of [customer_managed_encryption][crate::model::Secret::customer_managed_encryption].
442 ///
443 /// # Example
444 /// ```ignore,no_run
445 /// # use google_cloud_secretmanager_v1::model::Secret;
446 /// use google_cloud_secretmanager_v1::model::CustomerManagedEncryption;
447 /// let x = Secret::new().set_or_clear_customer_managed_encryption(Some(CustomerManagedEncryption::default()/* use setters */));
448 /// let x = Secret::new().set_or_clear_customer_managed_encryption(None::<CustomerManagedEncryption>);
449 /// ```
450 pub fn set_or_clear_customer_managed_encryption<T>(mut self, v: std::option::Option<T>) -> Self
451 where
452 T: std::convert::Into<crate::model::CustomerManagedEncryption>,
453 {
454 self.customer_managed_encryption = v.map(|x| x.into());
455 self
456 }
457
458 /// Sets the value of [tags][crate::model::Secret::tags].
459 ///
460 /// # Example
461 /// ```ignore,no_run
462 /// # use google_cloud_secretmanager_v1::model::Secret;
463 /// let x = Secret::new().set_tags([
464 /// ("key0", "abc"),
465 /// ("key1", "xyz"),
466 /// ]);
467 /// ```
468 pub fn set_tags<T, K, V>(mut self, v: T) -> Self
469 where
470 T: std::iter::IntoIterator<Item = (K, V)>,
471 K: std::convert::Into<std::string::String>,
472 V: std::convert::Into<std::string::String>,
473 {
474 use std::iter::Iterator;
475 self.tags = v.into_iter().map(|(k, v)| (k.into(), v.into())).collect();
476 self
477 }
478
479 /// Sets the value of [expiration][crate::model::Secret::expiration].
480 ///
481 /// Note that all the setters affecting `expiration` are mutually
482 /// exclusive.
483 ///
484 /// # Example
485 /// ```ignore,no_run
486 /// # use google_cloud_secretmanager_v1::model::Secret;
487 /// use wkt::Timestamp;
488 /// let x = Secret::new().set_expiration(Some(
489 /// google_cloud_secretmanager_v1::model::secret::Expiration::ExpireTime(Timestamp::default().into())));
490 /// ```
491 pub fn set_expiration<
492 T: std::convert::Into<std::option::Option<crate::model::secret::Expiration>>,
493 >(
494 mut self,
495 v: T,
496 ) -> Self {
497 self.expiration = v.into();
498 self
499 }
500
501 /// The value of [expiration][crate::model::Secret::expiration]
502 /// if it holds a `ExpireTime`, `None` if the field is not set or
503 /// holds a different branch.
504 pub fn expire_time(&self) -> std::option::Option<&std::boxed::Box<wkt::Timestamp>> {
505 #[allow(unreachable_patterns)]
506 self.expiration.as_ref().and_then(|v| match v {
507 crate::model::secret::Expiration::ExpireTime(v) => std::option::Option::Some(v),
508 _ => std::option::Option::None,
509 })
510 }
511
512 /// Sets the value of [expiration][crate::model::Secret::expiration]
513 /// to hold a `ExpireTime`.
514 ///
515 /// Note that all the setters affecting `expiration` are
516 /// mutually exclusive.
517 ///
518 /// # Example
519 /// ```ignore,no_run
520 /// # use google_cloud_secretmanager_v1::model::Secret;
521 /// use wkt::Timestamp;
522 /// let x = Secret::new().set_expire_time(Timestamp::default()/* use setters */);
523 /// assert!(x.expire_time().is_some());
524 /// assert!(x.ttl().is_none());
525 /// ```
526 pub fn set_expire_time<T: std::convert::Into<std::boxed::Box<wkt::Timestamp>>>(
527 mut self,
528 v: T,
529 ) -> Self {
530 self.expiration =
531 std::option::Option::Some(crate::model::secret::Expiration::ExpireTime(v.into()));
532 self
533 }
534
535 /// The value of [expiration][crate::model::Secret::expiration]
536 /// if it holds a `Ttl`, `None` if the field is not set or
537 /// holds a different branch.
538 pub fn ttl(&self) -> std::option::Option<&std::boxed::Box<wkt::Duration>> {
539 #[allow(unreachable_patterns)]
540 self.expiration.as_ref().and_then(|v| match v {
541 crate::model::secret::Expiration::Ttl(v) => std::option::Option::Some(v),
542 _ => std::option::Option::None,
543 })
544 }
545
546 /// Sets the value of [expiration][crate::model::Secret::expiration]
547 /// to hold a `Ttl`.
548 ///
549 /// Note that all the setters affecting `expiration` are
550 /// mutually exclusive.
551 ///
552 /// # Example
553 /// ```ignore,no_run
554 /// # use google_cloud_secretmanager_v1::model::Secret;
555 /// use wkt::Duration;
556 /// let x = Secret::new().set_ttl(Duration::default()/* use setters */);
557 /// assert!(x.ttl().is_some());
558 /// assert!(x.expire_time().is_none());
559 /// ```
560 pub fn set_ttl<T: std::convert::Into<std::boxed::Box<wkt::Duration>>>(mut self, v: T) -> Self {
561 self.expiration =
562 std::option::Option::Some(crate::model::secret::Expiration::Ttl(v.into()));
563 self
564 }
565}
566
567impl wkt::message::Message for Secret {
568 fn typename() -> &'static str {
569 "type.googleapis.com/google.cloud.secretmanager.v1.Secret"
570 }
571}
572
573/// Defines additional types related to [Secret].
574pub mod secret {
575 #[allow(unused_imports)]
576 use super::*;
577
578 /// Expiration policy attached to the
579 /// [Secret][google.cloud.secretmanager.v1.Secret]. If specified the
580 /// [Secret][google.cloud.secretmanager.v1.Secret] and all
581 /// [SecretVersions][google.cloud.secretmanager.v1.SecretVersion] will be
582 /// automatically deleted at expiration. Expired secrets are irreversibly
583 /// deleted.
584 ///
585 /// Expiration is *not* the recommended way to set time-based permissions. [IAM
586 /// Conditions](https://cloud.google.com/secret-manager/docs/access-control#conditions)
587 /// is recommended for granting time-based permissions because the operation
588 /// can be reversed.
589 ///
590 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
591 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
592 #[derive(Clone, Debug, PartialEq)]
593 #[non_exhaustive]
594 pub enum Expiration {
595 /// Optional. Timestamp in UTC when the
596 /// [Secret][google.cloud.secretmanager.v1.Secret] is scheduled to expire.
597 /// This is always provided on output, regardless of what was sent on input.
598 ///
599 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
600 ExpireTime(std::boxed::Box<wkt::Timestamp>),
601 /// Input only. The TTL for the
602 /// [Secret][google.cloud.secretmanager.v1.Secret].
603 ///
604 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
605 Ttl(std::boxed::Box<wkt::Duration>),
606 }
607}
608
609/// A secret version resource in the Secret Manager API.
610#[derive(Clone, Default, PartialEq)]
611#[non_exhaustive]
612pub struct SecretVersion {
613 /// Output only. The resource name of the
614 /// [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] in the format
615 /// `projects/*/secrets/*/versions/*`.
616 ///
617 /// [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] IDs in a
618 /// [Secret][google.cloud.secretmanager.v1.Secret] start at 1 and are
619 /// incremented for each subsequent version of the secret.
620 ///
621 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
622 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
623 pub name: std::string::String,
624
625 /// Output only. The time at which the
626 /// [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] was created.
627 ///
628 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
629 pub create_time: std::option::Option<wkt::Timestamp>,
630
631 /// Output only. The time this
632 /// [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] was destroyed.
633 /// Only present if [state][google.cloud.secretmanager.v1.SecretVersion.state]
634 /// is
635 /// [DESTROYED][google.cloud.secretmanager.v1.SecretVersion.State.DESTROYED].
636 ///
637 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
638 /// [google.cloud.secretmanager.v1.SecretVersion.State.DESTROYED]: crate::model::secret_version::State::Destroyed
639 /// [google.cloud.secretmanager.v1.SecretVersion.state]: crate::model::SecretVersion::state
640 pub destroy_time: std::option::Option<wkt::Timestamp>,
641
642 /// Output only. The current state of the
643 /// [SecretVersion][google.cloud.secretmanager.v1.SecretVersion].
644 ///
645 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
646 pub state: crate::model::secret_version::State,
647
648 /// The replication status of the
649 /// [SecretVersion][google.cloud.secretmanager.v1.SecretVersion].
650 ///
651 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
652 pub replication_status: std::option::Option<crate::model::ReplicationStatus>,
653
654 /// Output only. Etag of the currently stored
655 /// [SecretVersion][google.cloud.secretmanager.v1.SecretVersion].
656 ///
657 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
658 pub etag: std::string::String,
659
660 /// Output only. True if payload checksum specified in
661 /// [SecretPayload][google.cloud.secretmanager.v1.SecretPayload] object has
662 /// been received by
663 /// [SecretManagerService][google.cloud.secretmanager.v1.SecretManagerService]
664 /// on
665 /// [SecretManagerService.AddSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AddSecretVersion].
666 ///
667 /// [google.cloud.secretmanager.v1.SecretManagerService]: crate::client::SecretManagerService
668 /// [google.cloud.secretmanager.v1.SecretManagerService.AddSecretVersion]: crate::client::SecretManagerService::add_secret_version
669 /// [google.cloud.secretmanager.v1.SecretPayload]: crate::model::SecretPayload
670 pub client_specified_payload_checksum: bool,
671
672 /// Optional. Output only. Scheduled destroy time for secret version.
673 /// This is a part of the Delayed secret version destroy feature. For a
674 /// Secret with a valid version destroy TTL, when a secert version is
675 /// destroyed, version is moved to disabled state and it is scheduled for
676 /// destruction Version is destroyed only after the scheduled_destroy_time.
677 pub scheduled_destroy_time: std::option::Option<wkt::Timestamp>,
678
679 /// Output only. The customer-managed encryption status of the
680 /// [SecretVersion][google.cloud.secretmanager.v1.SecretVersion]. Only
681 /// populated if customer-managed encryption is used and
682 /// [Secret][google.cloud.secretmanager.v1.Secret] is a regionalized secret.
683 ///
684 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
685 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
686 pub customer_managed_encryption:
687 std::option::Option<crate::model::CustomerManagedEncryptionStatus>,
688
689 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
690}
691
692impl SecretVersion {
693 pub fn new() -> Self {
694 std::default::Default::default()
695 }
696
697 /// Sets the value of [name][crate::model::SecretVersion::name].
698 ///
699 /// # Example
700 /// ```ignore,no_run
701 /// # use google_cloud_secretmanager_v1::model::SecretVersion;
702 /// let x = SecretVersion::new().set_name("example");
703 /// ```
704 pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
705 self.name = v.into();
706 self
707 }
708
709 /// Sets the value of [create_time][crate::model::SecretVersion::create_time].
710 ///
711 /// # Example
712 /// ```ignore,no_run
713 /// # use google_cloud_secretmanager_v1::model::SecretVersion;
714 /// use wkt::Timestamp;
715 /// let x = SecretVersion::new().set_create_time(Timestamp::default()/* use setters */);
716 /// ```
717 pub fn set_create_time<T>(mut self, v: T) -> Self
718 where
719 T: std::convert::Into<wkt::Timestamp>,
720 {
721 self.create_time = std::option::Option::Some(v.into());
722 self
723 }
724
725 /// Sets or clears the value of [create_time][crate::model::SecretVersion::create_time].
726 ///
727 /// # Example
728 /// ```ignore,no_run
729 /// # use google_cloud_secretmanager_v1::model::SecretVersion;
730 /// use wkt::Timestamp;
731 /// let x = SecretVersion::new().set_or_clear_create_time(Some(Timestamp::default()/* use setters */));
732 /// let x = SecretVersion::new().set_or_clear_create_time(None::<Timestamp>);
733 /// ```
734 pub fn set_or_clear_create_time<T>(mut self, v: std::option::Option<T>) -> Self
735 where
736 T: std::convert::Into<wkt::Timestamp>,
737 {
738 self.create_time = v.map(|x| x.into());
739 self
740 }
741
742 /// Sets the value of [destroy_time][crate::model::SecretVersion::destroy_time].
743 ///
744 /// # Example
745 /// ```ignore,no_run
746 /// # use google_cloud_secretmanager_v1::model::SecretVersion;
747 /// use wkt::Timestamp;
748 /// let x = SecretVersion::new().set_destroy_time(Timestamp::default()/* use setters */);
749 /// ```
750 pub fn set_destroy_time<T>(mut self, v: T) -> Self
751 where
752 T: std::convert::Into<wkt::Timestamp>,
753 {
754 self.destroy_time = std::option::Option::Some(v.into());
755 self
756 }
757
758 /// Sets or clears the value of [destroy_time][crate::model::SecretVersion::destroy_time].
759 ///
760 /// # Example
761 /// ```ignore,no_run
762 /// # use google_cloud_secretmanager_v1::model::SecretVersion;
763 /// use wkt::Timestamp;
764 /// let x = SecretVersion::new().set_or_clear_destroy_time(Some(Timestamp::default()/* use setters */));
765 /// let x = SecretVersion::new().set_or_clear_destroy_time(None::<Timestamp>);
766 /// ```
767 pub fn set_or_clear_destroy_time<T>(mut self, v: std::option::Option<T>) -> Self
768 where
769 T: std::convert::Into<wkt::Timestamp>,
770 {
771 self.destroy_time = v.map(|x| x.into());
772 self
773 }
774
775 /// Sets the value of [state][crate::model::SecretVersion::state].
776 ///
777 /// # Example
778 /// ```ignore,no_run
779 /// # use google_cloud_secretmanager_v1::model::SecretVersion;
780 /// use google_cloud_secretmanager_v1::model::secret_version::State;
781 /// let x0 = SecretVersion::new().set_state(State::Enabled);
782 /// let x1 = SecretVersion::new().set_state(State::Disabled);
783 /// let x2 = SecretVersion::new().set_state(State::Destroyed);
784 /// ```
785 pub fn set_state<T: std::convert::Into<crate::model::secret_version::State>>(
786 mut self,
787 v: T,
788 ) -> Self {
789 self.state = v.into();
790 self
791 }
792
793 /// Sets the value of [replication_status][crate::model::SecretVersion::replication_status].
794 ///
795 /// # Example
796 /// ```ignore,no_run
797 /// # use google_cloud_secretmanager_v1::model::SecretVersion;
798 /// use google_cloud_secretmanager_v1::model::ReplicationStatus;
799 /// let x = SecretVersion::new().set_replication_status(ReplicationStatus::default()/* use setters */);
800 /// ```
801 pub fn set_replication_status<T>(mut self, v: T) -> Self
802 where
803 T: std::convert::Into<crate::model::ReplicationStatus>,
804 {
805 self.replication_status = std::option::Option::Some(v.into());
806 self
807 }
808
809 /// Sets or clears the value of [replication_status][crate::model::SecretVersion::replication_status].
810 ///
811 /// # Example
812 /// ```ignore,no_run
813 /// # use google_cloud_secretmanager_v1::model::SecretVersion;
814 /// use google_cloud_secretmanager_v1::model::ReplicationStatus;
815 /// let x = SecretVersion::new().set_or_clear_replication_status(Some(ReplicationStatus::default()/* use setters */));
816 /// let x = SecretVersion::new().set_or_clear_replication_status(None::<ReplicationStatus>);
817 /// ```
818 pub fn set_or_clear_replication_status<T>(mut self, v: std::option::Option<T>) -> Self
819 where
820 T: std::convert::Into<crate::model::ReplicationStatus>,
821 {
822 self.replication_status = v.map(|x| x.into());
823 self
824 }
825
826 /// Sets the value of [etag][crate::model::SecretVersion::etag].
827 ///
828 /// # Example
829 /// ```ignore,no_run
830 /// # use google_cloud_secretmanager_v1::model::SecretVersion;
831 /// let x = SecretVersion::new().set_etag("example");
832 /// ```
833 pub fn set_etag<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
834 self.etag = v.into();
835 self
836 }
837
838 /// Sets the value of [client_specified_payload_checksum][crate::model::SecretVersion::client_specified_payload_checksum].
839 ///
840 /// # Example
841 /// ```ignore,no_run
842 /// # use google_cloud_secretmanager_v1::model::SecretVersion;
843 /// let x = SecretVersion::new().set_client_specified_payload_checksum(true);
844 /// ```
845 pub fn set_client_specified_payload_checksum<T: std::convert::Into<bool>>(
846 mut self,
847 v: T,
848 ) -> Self {
849 self.client_specified_payload_checksum = v.into();
850 self
851 }
852
853 /// Sets the value of [scheduled_destroy_time][crate::model::SecretVersion::scheduled_destroy_time].
854 ///
855 /// # Example
856 /// ```ignore,no_run
857 /// # use google_cloud_secretmanager_v1::model::SecretVersion;
858 /// use wkt::Timestamp;
859 /// let x = SecretVersion::new().set_scheduled_destroy_time(Timestamp::default()/* use setters */);
860 /// ```
861 pub fn set_scheduled_destroy_time<T>(mut self, v: T) -> Self
862 where
863 T: std::convert::Into<wkt::Timestamp>,
864 {
865 self.scheduled_destroy_time = std::option::Option::Some(v.into());
866 self
867 }
868
869 /// Sets or clears the value of [scheduled_destroy_time][crate::model::SecretVersion::scheduled_destroy_time].
870 ///
871 /// # Example
872 /// ```ignore,no_run
873 /// # use google_cloud_secretmanager_v1::model::SecretVersion;
874 /// use wkt::Timestamp;
875 /// let x = SecretVersion::new().set_or_clear_scheduled_destroy_time(Some(Timestamp::default()/* use setters */));
876 /// let x = SecretVersion::new().set_or_clear_scheduled_destroy_time(None::<Timestamp>);
877 /// ```
878 pub fn set_or_clear_scheduled_destroy_time<T>(mut self, v: std::option::Option<T>) -> Self
879 where
880 T: std::convert::Into<wkt::Timestamp>,
881 {
882 self.scheduled_destroy_time = v.map(|x| x.into());
883 self
884 }
885
886 /// Sets the value of [customer_managed_encryption][crate::model::SecretVersion::customer_managed_encryption].
887 ///
888 /// # Example
889 /// ```ignore,no_run
890 /// # use google_cloud_secretmanager_v1::model::SecretVersion;
891 /// use google_cloud_secretmanager_v1::model::CustomerManagedEncryptionStatus;
892 /// let x = SecretVersion::new().set_customer_managed_encryption(CustomerManagedEncryptionStatus::default()/* use setters */);
893 /// ```
894 pub fn set_customer_managed_encryption<T>(mut self, v: T) -> Self
895 where
896 T: std::convert::Into<crate::model::CustomerManagedEncryptionStatus>,
897 {
898 self.customer_managed_encryption = std::option::Option::Some(v.into());
899 self
900 }
901
902 /// Sets or clears the value of [customer_managed_encryption][crate::model::SecretVersion::customer_managed_encryption].
903 ///
904 /// # Example
905 /// ```ignore,no_run
906 /// # use google_cloud_secretmanager_v1::model::SecretVersion;
907 /// use google_cloud_secretmanager_v1::model::CustomerManagedEncryptionStatus;
908 /// let x = SecretVersion::new().set_or_clear_customer_managed_encryption(Some(CustomerManagedEncryptionStatus::default()/* use setters */));
909 /// let x = SecretVersion::new().set_or_clear_customer_managed_encryption(None::<CustomerManagedEncryptionStatus>);
910 /// ```
911 pub fn set_or_clear_customer_managed_encryption<T>(mut self, v: std::option::Option<T>) -> Self
912 where
913 T: std::convert::Into<crate::model::CustomerManagedEncryptionStatus>,
914 {
915 self.customer_managed_encryption = v.map(|x| x.into());
916 self
917 }
918}
919
920impl wkt::message::Message for SecretVersion {
921 fn typename() -> &'static str {
922 "type.googleapis.com/google.cloud.secretmanager.v1.SecretVersion"
923 }
924}
925
926/// Defines additional types related to [SecretVersion].
927pub mod secret_version {
928 #[allow(unused_imports)]
929 use super::*;
930
931 /// The state of a
932 /// [SecretVersion][google.cloud.secretmanager.v1.SecretVersion], indicating if
933 /// it can be accessed.
934 ///
935 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
936 ///
937 /// # Working with unknown values
938 ///
939 /// This enum is defined as `#[non_exhaustive]` because Google Cloud may add
940 /// additional enum variants at any time. Adding new variants is not considered
941 /// a breaking change. Applications should write their code in anticipation of:
942 ///
943 /// - New values appearing in future releases of the client library, **and**
944 /// - New values received dynamically, without application changes.
945 ///
946 /// Please consult the [Working with enums] section in the user guide for some
947 /// guidelines.
948 ///
949 /// [Working with enums]: https://google-cloud-rust.github.io/working_with_enums.html
950 #[derive(Clone, Debug, PartialEq)]
951 #[non_exhaustive]
952 pub enum State {
953 /// Not specified. This value is unused and invalid.
954 Unspecified,
955 /// The [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] may be
956 /// accessed.
957 ///
958 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
959 Enabled,
960 /// The [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] may not
961 /// be accessed, but the secret data is still available and can be placed
962 /// back into the
963 /// [ENABLED][google.cloud.secretmanager.v1.SecretVersion.State.ENABLED]
964 /// state.
965 ///
966 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
967 /// [google.cloud.secretmanager.v1.SecretVersion.State.ENABLED]: crate::model::secret_version::State::Enabled
968 Disabled,
969 /// The [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] is
970 /// destroyed and the secret data is no longer stored. A version may not
971 /// leave this state once entered.
972 ///
973 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
974 Destroyed,
975 /// If set, the enum was initialized with an unknown value.
976 ///
977 /// Applications can examine the value using [State::value] or
978 /// [State::name].
979 UnknownValue(state::UnknownValue),
980 }
981
982 #[doc(hidden)]
983 pub mod state {
984 #[allow(unused_imports)]
985 use super::*;
986 #[derive(Clone, Debug, PartialEq)]
987 pub struct UnknownValue(pub(crate) wkt::internal::UnknownEnumValue);
988 }
989
990 impl State {
991 /// Gets the enum value.
992 ///
993 /// Returns `None` if the enum contains an unknown value deserialized from
994 /// the string representation of enums.
995 pub fn value(&self) -> std::option::Option<i32> {
996 match self {
997 Self::Unspecified => std::option::Option::Some(0),
998 Self::Enabled => std::option::Option::Some(1),
999 Self::Disabled => std::option::Option::Some(2),
1000 Self::Destroyed => std::option::Option::Some(3),
1001 Self::UnknownValue(u) => u.0.value(),
1002 }
1003 }
1004
1005 /// Gets the enum value as a string.
1006 ///
1007 /// Returns `None` if the enum contains an unknown value deserialized from
1008 /// the integer representation of enums.
1009 pub fn name(&self) -> std::option::Option<&str> {
1010 match self {
1011 Self::Unspecified => std::option::Option::Some("STATE_UNSPECIFIED"),
1012 Self::Enabled => std::option::Option::Some("ENABLED"),
1013 Self::Disabled => std::option::Option::Some("DISABLED"),
1014 Self::Destroyed => std::option::Option::Some("DESTROYED"),
1015 Self::UnknownValue(u) => u.0.name(),
1016 }
1017 }
1018 }
1019
1020 impl std::default::Default for State {
1021 fn default() -> Self {
1022 use std::convert::From;
1023 Self::from(0)
1024 }
1025 }
1026
1027 impl std::fmt::Display for State {
1028 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error> {
1029 wkt::internal::display_enum(f, self.name(), self.value())
1030 }
1031 }
1032
1033 impl std::convert::From<i32> for State {
1034 fn from(value: i32) -> Self {
1035 match value {
1036 0 => Self::Unspecified,
1037 1 => Self::Enabled,
1038 2 => Self::Disabled,
1039 3 => Self::Destroyed,
1040 _ => Self::UnknownValue(state::UnknownValue(
1041 wkt::internal::UnknownEnumValue::Integer(value),
1042 )),
1043 }
1044 }
1045 }
1046
1047 impl std::convert::From<&str> for State {
1048 fn from(value: &str) -> Self {
1049 use std::string::ToString;
1050 match value {
1051 "STATE_UNSPECIFIED" => Self::Unspecified,
1052 "ENABLED" => Self::Enabled,
1053 "DISABLED" => Self::Disabled,
1054 "DESTROYED" => Self::Destroyed,
1055 _ => Self::UnknownValue(state::UnknownValue(
1056 wkt::internal::UnknownEnumValue::String(value.to_string()),
1057 )),
1058 }
1059 }
1060 }
1061
1062 impl serde::ser::Serialize for State {
1063 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1064 where
1065 S: serde::Serializer,
1066 {
1067 match self {
1068 Self::Unspecified => serializer.serialize_i32(0),
1069 Self::Enabled => serializer.serialize_i32(1),
1070 Self::Disabled => serializer.serialize_i32(2),
1071 Self::Destroyed => serializer.serialize_i32(3),
1072 Self::UnknownValue(u) => u.0.serialize(serializer),
1073 }
1074 }
1075 }
1076
1077 impl<'de> serde::de::Deserialize<'de> for State {
1078 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1079 where
1080 D: serde::Deserializer<'de>,
1081 {
1082 deserializer.deserialize_any(wkt::internal::EnumVisitor::<State>::new(
1083 ".google.cloud.secretmanager.v1.SecretVersion.State",
1084 ))
1085 }
1086 }
1087}
1088
1089/// A policy that defines the replication and encryption configuration of data.
1090#[derive(Clone, Default, PartialEq)]
1091#[non_exhaustive]
1092pub struct Replication {
1093 /// The replication policy for this secret.
1094 pub replication: std::option::Option<crate::model::replication::Replication>,
1095
1096 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
1097}
1098
1099impl Replication {
1100 pub fn new() -> Self {
1101 std::default::Default::default()
1102 }
1103
1104 /// Sets the value of [replication][crate::model::Replication::replication].
1105 ///
1106 /// Note that all the setters affecting `replication` are mutually
1107 /// exclusive.
1108 ///
1109 /// # Example
1110 /// ```ignore,no_run
1111 /// # use google_cloud_secretmanager_v1::model::Replication;
1112 /// use google_cloud_secretmanager_v1::model::replication::Automatic;
1113 /// let x = Replication::new().set_replication(Some(
1114 /// google_cloud_secretmanager_v1::model::replication::Replication::Automatic(Automatic::default().into())));
1115 /// ```
1116 pub fn set_replication<
1117 T: std::convert::Into<std::option::Option<crate::model::replication::Replication>>,
1118 >(
1119 mut self,
1120 v: T,
1121 ) -> Self {
1122 self.replication = v.into();
1123 self
1124 }
1125
1126 /// The value of [replication][crate::model::Replication::replication]
1127 /// if it holds a `Automatic`, `None` if the field is not set or
1128 /// holds a different branch.
1129 pub fn automatic(
1130 &self,
1131 ) -> std::option::Option<&std::boxed::Box<crate::model::replication::Automatic>> {
1132 #[allow(unreachable_patterns)]
1133 self.replication.as_ref().and_then(|v| match v {
1134 crate::model::replication::Replication::Automatic(v) => std::option::Option::Some(v),
1135 _ => std::option::Option::None,
1136 })
1137 }
1138
1139 /// Sets the value of [replication][crate::model::Replication::replication]
1140 /// to hold a `Automatic`.
1141 ///
1142 /// Note that all the setters affecting `replication` are
1143 /// mutually exclusive.
1144 ///
1145 /// # Example
1146 /// ```ignore,no_run
1147 /// # use google_cloud_secretmanager_v1::model::Replication;
1148 /// use google_cloud_secretmanager_v1::model::replication::Automatic;
1149 /// let x = Replication::new().set_automatic(Automatic::default()/* use setters */);
1150 /// assert!(x.automatic().is_some());
1151 /// assert!(x.user_managed().is_none());
1152 /// ```
1153 pub fn set_automatic<
1154 T: std::convert::Into<std::boxed::Box<crate::model::replication::Automatic>>,
1155 >(
1156 mut self,
1157 v: T,
1158 ) -> Self {
1159 self.replication =
1160 std::option::Option::Some(crate::model::replication::Replication::Automatic(v.into()));
1161 self
1162 }
1163
1164 /// The value of [replication][crate::model::Replication::replication]
1165 /// if it holds a `UserManaged`, `None` if the field is not set or
1166 /// holds a different branch.
1167 pub fn user_managed(
1168 &self,
1169 ) -> std::option::Option<&std::boxed::Box<crate::model::replication::UserManaged>> {
1170 #[allow(unreachable_patterns)]
1171 self.replication.as_ref().and_then(|v| match v {
1172 crate::model::replication::Replication::UserManaged(v) => std::option::Option::Some(v),
1173 _ => std::option::Option::None,
1174 })
1175 }
1176
1177 /// Sets the value of [replication][crate::model::Replication::replication]
1178 /// to hold a `UserManaged`.
1179 ///
1180 /// Note that all the setters affecting `replication` are
1181 /// mutually exclusive.
1182 ///
1183 /// # Example
1184 /// ```ignore,no_run
1185 /// # use google_cloud_secretmanager_v1::model::Replication;
1186 /// use google_cloud_secretmanager_v1::model::replication::UserManaged;
1187 /// let x = Replication::new().set_user_managed(UserManaged::default()/* use setters */);
1188 /// assert!(x.user_managed().is_some());
1189 /// assert!(x.automatic().is_none());
1190 /// ```
1191 pub fn set_user_managed<
1192 T: std::convert::Into<std::boxed::Box<crate::model::replication::UserManaged>>,
1193 >(
1194 mut self,
1195 v: T,
1196 ) -> Self {
1197 self.replication = std::option::Option::Some(
1198 crate::model::replication::Replication::UserManaged(v.into()),
1199 );
1200 self
1201 }
1202}
1203
1204impl wkt::message::Message for Replication {
1205 fn typename() -> &'static str {
1206 "type.googleapis.com/google.cloud.secretmanager.v1.Replication"
1207 }
1208}
1209
1210/// Defines additional types related to [Replication].
1211pub mod replication {
1212 #[allow(unused_imports)]
1213 use super::*;
1214
1215 /// A replication policy that replicates the
1216 /// [Secret][google.cloud.secretmanager.v1.Secret] payload without any
1217 /// restrictions.
1218 ///
1219 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
1220 #[derive(Clone, Default, PartialEq)]
1221 #[non_exhaustive]
1222 pub struct Automatic {
1223 /// Optional. The customer-managed encryption configuration of the
1224 /// [Secret][google.cloud.secretmanager.v1.Secret]. If no configuration is
1225 /// provided, Google-managed default encryption is used.
1226 ///
1227 /// Updates to the [Secret][google.cloud.secretmanager.v1.Secret] encryption
1228 /// configuration only apply to
1229 /// [SecretVersions][google.cloud.secretmanager.v1.SecretVersion] added
1230 /// afterwards. They do not apply retroactively to existing
1231 /// [SecretVersions][google.cloud.secretmanager.v1.SecretVersion].
1232 ///
1233 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
1234 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
1235 pub customer_managed_encryption:
1236 std::option::Option<crate::model::CustomerManagedEncryption>,
1237
1238 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
1239 }
1240
1241 impl Automatic {
1242 pub fn new() -> Self {
1243 std::default::Default::default()
1244 }
1245
1246 /// Sets the value of [customer_managed_encryption][crate::model::replication::Automatic::customer_managed_encryption].
1247 ///
1248 /// # Example
1249 /// ```ignore,no_run
1250 /// # use google_cloud_secretmanager_v1::model::replication::Automatic;
1251 /// use google_cloud_secretmanager_v1::model::CustomerManagedEncryption;
1252 /// let x = Automatic::new().set_customer_managed_encryption(CustomerManagedEncryption::default()/* use setters */);
1253 /// ```
1254 pub fn set_customer_managed_encryption<T>(mut self, v: T) -> Self
1255 where
1256 T: std::convert::Into<crate::model::CustomerManagedEncryption>,
1257 {
1258 self.customer_managed_encryption = std::option::Option::Some(v.into());
1259 self
1260 }
1261
1262 /// Sets or clears the value of [customer_managed_encryption][crate::model::replication::Automatic::customer_managed_encryption].
1263 ///
1264 /// # Example
1265 /// ```ignore,no_run
1266 /// # use google_cloud_secretmanager_v1::model::replication::Automatic;
1267 /// use google_cloud_secretmanager_v1::model::CustomerManagedEncryption;
1268 /// let x = Automatic::new().set_or_clear_customer_managed_encryption(Some(CustomerManagedEncryption::default()/* use setters */));
1269 /// let x = Automatic::new().set_or_clear_customer_managed_encryption(None::<CustomerManagedEncryption>);
1270 /// ```
1271 pub fn set_or_clear_customer_managed_encryption<T>(
1272 mut self,
1273 v: std::option::Option<T>,
1274 ) -> Self
1275 where
1276 T: std::convert::Into<crate::model::CustomerManagedEncryption>,
1277 {
1278 self.customer_managed_encryption = v.map(|x| x.into());
1279 self
1280 }
1281 }
1282
1283 impl wkt::message::Message for Automatic {
1284 fn typename() -> &'static str {
1285 "type.googleapis.com/google.cloud.secretmanager.v1.Replication.Automatic"
1286 }
1287 }
1288
1289 /// A replication policy that replicates the
1290 /// [Secret][google.cloud.secretmanager.v1.Secret] payload into the locations
1291 /// specified in
1292 /// [Replication.UserManaged.replicas][google.cloud.secretmanager.v1.Replication.UserManaged.replicas]
1293 ///
1294 /// [google.cloud.secretmanager.v1.Replication.UserManaged.replicas]: crate::model::replication::UserManaged::replicas
1295 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
1296 #[derive(Clone, Default, PartialEq)]
1297 #[non_exhaustive]
1298 pub struct UserManaged {
1299 /// Required. The list of Replicas for this
1300 /// [Secret][google.cloud.secretmanager.v1.Secret].
1301 ///
1302 /// Cannot be empty.
1303 ///
1304 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
1305 pub replicas: std::vec::Vec<crate::model::replication::user_managed::Replica>,
1306
1307 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
1308 }
1309
1310 impl UserManaged {
1311 pub fn new() -> Self {
1312 std::default::Default::default()
1313 }
1314
1315 /// Sets the value of [replicas][crate::model::replication::UserManaged::replicas].
1316 ///
1317 /// # Example
1318 /// ```ignore,no_run
1319 /// # use google_cloud_secretmanager_v1::model::replication::UserManaged;
1320 /// use google_cloud_secretmanager_v1::model::replication::user_managed::Replica;
1321 /// let x = UserManaged::new()
1322 /// .set_replicas([
1323 /// Replica::default()/* use setters */,
1324 /// Replica::default()/* use (different) setters */,
1325 /// ]);
1326 /// ```
1327 pub fn set_replicas<T, V>(mut self, v: T) -> Self
1328 where
1329 T: std::iter::IntoIterator<Item = V>,
1330 V: std::convert::Into<crate::model::replication::user_managed::Replica>,
1331 {
1332 use std::iter::Iterator;
1333 self.replicas = v.into_iter().map(|i| i.into()).collect();
1334 self
1335 }
1336 }
1337
1338 impl wkt::message::Message for UserManaged {
1339 fn typename() -> &'static str {
1340 "type.googleapis.com/google.cloud.secretmanager.v1.Replication.UserManaged"
1341 }
1342 }
1343
1344 /// Defines additional types related to [UserManaged].
1345 pub mod user_managed {
1346 #[allow(unused_imports)]
1347 use super::*;
1348
1349 /// Represents a Replica for this
1350 /// [Secret][google.cloud.secretmanager.v1.Secret].
1351 ///
1352 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
1353 #[derive(Clone, Default, PartialEq)]
1354 #[non_exhaustive]
1355 pub struct Replica {
1356 /// The canonical IDs of the location to replicate data.
1357 /// For example: `"us-east1"`.
1358 pub location: std::string::String,
1359
1360 /// Optional. The customer-managed encryption configuration of the
1361 /// [User-Managed Replica][Replication.UserManaged.Replica]. If no
1362 /// configuration is provided, Google-managed default encryption is used.
1363 ///
1364 /// Updates to the [Secret][google.cloud.secretmanager.v1.Secret]
1365 /// encryption configuration only apply to
1366 /// [SecretVersions][google.cloud.secretmanager.v1.SecretVersion] added
1367 /// afterwards. They do not apply retroactively to existing
1368 /// [SecretVersions][google.cloud.secretmanager.v1.SecretVersion].
1369 ///
1370 /// [Replication.UserManaged.Replica]: crate::model::replication::user_managed::Replica
1371 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
1372 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
1373 pub customer_managed_encryption:
1374 std::option::Option<crate::model::CustomerManagedEncryption>,
1375
1376 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
1377 }
1378
1379 impl Replica {
1380 pub fn new() -> Self {
1381 std::default::Default::default()
1382 }
1383
1384 /// Sets the value of [location][crate::model::replication::user_managed::Replica::location].
1385 ///
1386 /// # Example
1387 /// ```ignore,no_run
1388 /// # use google_cloud_secretmanager_v1::model::replication::user_managed::Replica;
1389 /// let x = Replica::new().set_location("example");
1390 /// ```
1391 pub fn set_location<T: std::convert::Into<std::string::String>>(
1392 mut self,
1393 v: T,
1394 ) -> Self {
1395 self.location = v.into();
1396 self
1397 }
1398
1399 /// Sets the value of [customer_managed_encryption][crate::model::replication::user_managed::Replica::customer_managed_encryption].
1400 ///
1401 /// # Example
1402 /// ```ignore,no_run
1403 /// # use google_cloud_secretmanager_v1::model::replication::user_managed::Replica;
1404 /// use google_cloud_secretmanager_v1::model::CustomerManagedEncryption;
1405 /// let x = Replica::new().set_customer_managed_encryption(CustomerManagedEncryption::default()/* use setters */);
1406 /// ```
1407 pub fn set_customer_managed_encryption<T>(mut self, v: T) -> Self
1408 where
1409 T: std::convert::Into<crate::model::CustomerManagedEncryption>,
1410 {
1411 self.customer_managed_encryption = std::option::Option::Some(v.into());
1412 self
1413 }
1414
1415 /// Sets or clears the value of [customer_managed_encryption][crate::model::replication::user_managed::Replica::customer_managed_encryption].
1416 ///
1417 /// # Example
1418 /// ```ignore,no_run
1419 /// # use google_cloud_secretmanager_v1::model::replication::user_managed::Replica;
1420 /// use google_cloud_secretmanager_v1::model::CustomerManagedEncryption;
1421 /// let x = Replica::new().set_or_clear_customer_managed_encryption(Some(CustomerManagedEncryption::default()/* use setters */));
1422 /// let x = Replica::new().set_or_clear_customer_managed_encryption(None::<CustomerManagedEncryption>);
1423 /// ```
1424 pub fn set_or_clear_customer_managed_encryption<T>(
1425 mut self,
1426 v: std::option::Option<T>,
1427 ) -> Self
1428 where
1429 T: std::convert::Into<crate::model::CustomerManagedEncryption>,
1430 {
1431 self.customer_managed_encryption = v.map(|x| x.into());
1432 self
1433 }
1434 }
1435
1436 impl wkt::message::Message for Replica {
1437 fn typename() -> &'static str {
1438 "type.googleapis.com/google.cloud.secretmanager.v1.Replication.UserManaged.Replica"
1439 }
1440 }
1441 }
1442
1443 /// The replication policy for this secret.
1444 #[derive(Clone, Debug, PartialEq)]
1445 #[non_exhaustive]
1446 pub enum Replication {
1447 /// The [Secret][google.cloud.secretmanager.v1.Secret] will automatically be
1448 /// replicated without any restrictions.
1449 ///
1450 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
1451 Automatic(std::boxed::Box<crate::model::replication::Automatic>),
1452 /// The [Secret][google.cloud.secretmanager.v1.Secret] will only be
1453 /// replicated into the locations specified.
1454 ///
1455 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
1456 UserManaged(std::boxed::Box<crate::model::replication::UserManaged>),
1457 }
1458}
1459
1460/// Configuration for encrypting secret payloads using customer-managed
1461/// encryption keys (CMEK).
1462#[derive(Clone, Default, PartialEq)]
1463#[non_exhaustive]
1464pub struct CustomerManagedEncryption {
1465 /// Required. The resource name of the Cloud KMS CryptoKey used to encrypt
1466 /// secret payloads.
1467 ///
1468 /// For secrets using the
1469 /// [UserManaged][google.cloud.secretmanager.v1.Replication.UserManaged]
1470 /// replication policy type, Cloud KMS CryptoKeys must reside in the same
1471 /// location as the [replica location][Secret.UserManaged.Replica.location].
1472 ///
1473 /// For secrets using the
1474 /// [Automatic][google.cloud.secretmanager.v1.Replication.Automatic]
1475 /// replication policy type, Cloud KMS CryptoKeys must reside in `global`.
1476 ///
1477 /// The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
1478 ///
1479 /// [google.cloud.secretmanager.v1.Replication.Automatic]: crate::model::replication::Automatic
1480 /// [google.cloud.secretmanager.v1.Replication.UserManaged]: crate::model::replication::UserManaged
1481 pub kms_key_name: std::string::String,
1482
1483 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
1484}
1485
1486impl CustomerManagedEncryption {
1487 pub fn new() -> Self {
1488 std::default::Default::default()
1489 }
1490
1491 /// Sets the value of [kms_key_name][crate::model::CustomerManagedEncryption::kms_key_name].
1492 ///
1493 /// # Example
1494 /// ```ignore,no_run
1495 /// # use google_cloud_secretmanager_v1::model::CustomerManagedEncryption;
1496 /// let x = CustomerManagedEncryption::new().set_kms_key_name("example");
1497 /// ```
1498 pub fn set_kms_key_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
1499 self.kms_key_name = v.into();
1500 self
1501 }
1502}
1503
1504impl wkt::message::Message for CustomerManagedEncryption {
1505 fn typename() -> &'static str {
1506 "type.googleapis.com/google.cloud.secretmanager.v1.CustomerManagedEncryption"
1507 }
1508}
1509
1510/// The replication status of a
1511/// [SecretVersion][google.cloud.secretmanager.v1.SecretVersion].
1512///
1513/// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
1514#[derive(Clone, Default, PartialEq)]
1515#[non_exhaustive]
1516pub struct ReplicationStatus {
1517 /// The replication status of the
1518 /// [SecretVersion][google.cloud.secretmanager.v1.SecretVersion].
1519 ///
1520 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
1521 pub replication_status:
1522 std::option::Option<crate::model::replication_status::ReplicationStatus>,
1523
1524 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
1525}
1526
1527impl ReplicationStatus {
1528 pub fn new() -> Self {
1529 std::default::Default::default()
1530 }
1531
1532 /// Sets the value of [replication_status][crate::model::ReplicationStatus::replication_status].
1533 ///
1534 /// Note that all the setters affecting `replication_status` are mutually
1535 /// exclusive.
1536 ///
1537 /// # Example
1538 /// ```ignore,no_run
1539 /// # use google_cloud_secretmanager_v1::model::ReplicationStatus;
1540 /// use google_cloud_secretmanager_v1::model::replication_status::AutomaticStatus;
1541 /// let x = ReplicationStatus::new().set_replication_status(Some(
1542 /// google_cloud_secretmanager_v1::model::replication_status::ReplicationStatus::Automatic(AutomaticStatus::default().into())));
1543 /// ```
1544 pub fn set_replication_status<
1545 T: std::convert::Into<
1546 std::option::Option<crate::model::replication_status::ReplicationStatus>,
1547 >,
1548 >(
1549 mut self,
1550 v: T,
1551 ) -> Self {
1552 self.replication_status = v.into();
1553 self
1554 }
1555
1556 /// The value of [replication_status][crate::model::ReplicationStatus::replication_status]
1557 /// if it holds a `Automatic`, `None` if the field is not set or
1558 /// holds a different branch.
1559 pub fn automatic(
1560 &self,
1561 ) -> std::option::Option<&std::boxed::Box<crate::model::replication_status::AutomaticStatus>>
1562 {
1563 #[allow(unreachable_patterns)]
1564 self.replication_status.as_ref().and_then(|v| match v {
1565 crate::model::replication_status::ReplicationStatus::Automatic(v) => {
1566 std::option::Option::Some(v)
1567 }
1568 _ => std::option::Option::None,
1569 })
1570 }
1571
1572 /// Sets the value of [replication_status][crate::model::ReplicationStatus::replication_status]
1573 /// to hold a `Automatic`.
1574 ///
1575 /// Note that all the setters affecting `replication_status` are
1576 /// mutually exclusive.
1577 ///
1578 /// # Example
1579 /// ```ignore,no_run
1580 /// # use google_cloud_secretmanager_v1::model::ReplicationStatus;
1581 /// use google_cloud_secretmanager_v1::model::replication_status::AutomaticStatus;
1582 /// let x = ReplicationStatus::new().set_automatic(AutomaticStatus::default()/* use setters */);
1583 /// assert!(x.automatic().is_some());
1584 /// assert!(x.user_managed().is_none());
1585 /// ```
1586 pub fn set_automatic<
1587 T: std::convert::Into<std::boxed::Box<crate::model::replication_status::AutomaticStatus>>,
1588 >(
1589 mut self,
1590 v: T,
1591 ) -> Self {
1592 self.replication_status = std::option::Option::Some(
1593 crate::model::replication_status::ReplicationStatus::Automatic(v.into()),
1594 );
1595 self
1596 }
1597
1598 /// The value of [replication_status][crate::model::ReplicationStatus::replication_status]
1599 /// if it holds a `UserManaged`, `None` if the field is not set or
1600 /// holds a different branch.
1601 pub fn user_managed(
1602 &self,
1603 ) -> std::option::Option<&std::boxed::Box<crate::model::replication_status::UserManagedStatus>>
1604 {
1605 #[allow(unreachable_patterns)]
1606 self.replication_status.as_ref().and_then(|v| match v {
1607 crate::model::replication_status::ReplicationStatus::UserManaged(v) => {
1608 std::option::Option::Some(v)
1609 }
1610 _ => std::option::Option::None,
1611 })
1612 }
1613
1614 /// Sets the value of [replication_status][crate::model::ReplicationStatus::replication_status]
1615 /// to hold a `UserManaged`.
1616 ///
1617 /// Note that all the setters affecting `replication_status` are
1618 /// mutually exclusive.
1619 ///
1620 /// # Example
1621 /// ```ignore,no_run
1622 /// # use google_cloud_secretmanager_v1::model::ReplicationStatus;
1623 /// use google_cloud_secretmanager_v1::model::replication_status::UserManagedStatus;
1624 /// let x = ReplicationStatus::new().set_user_managed(UserManagedStatus::default()/* use setters */);
1625 /// assert!(x.user_managed().is_some());
1626 /// assert!(x.automatic().is_none());
1627 /// ```
1628 pub fn set_user_managed<
1629 T: std::convert::Into<std::boxed::Box<crate::model::replication_status::UserManagedStatus>>,
1630 >(
1631 mut self,
1632 v: T,
1633 ) -> Self {
1634 self.replication_status = std::option::Option::Some(
1635 crate::model::replication_status::ReplicationStatus::UserManaged(v.into()),
1636 );
1637 self
1638 }
1639}
1640
1641impl wkt::message::Message for ReplicationStatus {
1642 fn typename() -> &'static str {
1643 "type.googleapis.com/google.cloud.secretmanager.v1.ReplicationStatus"
1644 }
1645}
1646
1647/// Defines additional types related to [ReplicationStatus].
1648pub mod replication_status {
1649 #[allow(unused_imports)]
1650 use super::*;
1651
1652 /// The replication status of a
1653 /// [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] using
1654 /// automatic replication.
1655 ///
1656 /// Only populated if the parent [Secret][google.cloud.secretmanager.v1.Secret]
1657 /// has an automatic replication policy.
1658 ///
1659 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
1660 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
1661 #[derive(Clone, Default, PartialEq)]
1662 #[non_exhaustive]
1663 pub struct AutomaticStatus {
1664 /// Output only. The customer-managed encryption status of the
1665 /// [SecretVersion][google.cloud.secretmanager.v1.SecretVersion]. Only
1666 /// populated if customer-managed encryption is used.
1667 ///
1668 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
1669 pub customer_managed_encryption:
1670 std::option::Option<crate::model::CustomerManagedEncryptionStatus>,
1671
1672 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
1673 }
1674
1675 impl AutomaticStatus {
1676 pub fn new() -> Self {
1677 std::default::Default::default()
1678 }
1679
1680 /// Sets the value of [customer_managed_encryption][crate::model::replication_status::AutomaticStatus::customer_managed_encryption].
1681 ///
1682 /// # Example
1683 /// ```ignore,no_run
1684 /// # use google_cloud_secretmanager_v1::model::replication_status::AutomaticStatus;
1685 /// use google_cloud_secretmanager_v1::model::CustomerManagedEncryptionStatus;
1686 /// let x = AutomaticStatus::new().set_customer_managed_encryption(CustomerManagedEncryptionStatus::default()/* use setters */);
1687 /// ```
1688 pub fn set_customer_managed_encryption<T>(mut self, v: T) -> Self
1689 where
1690 T: std::convert::Into<crate::model::CustomerManagedEncryptionStatus>,
1691 {
1692 self.customer_managed_encryption = std::option::Option::Some(v.into());
1693 self
1694 }
1695
1696 /// Sets or clears the value of [customer_managed_encryption][crate::model::replication_status::AutomaticStatus::customer_managed_encryption].
1697 ///
1698 /// # Example
1699 /// ```ignore,no_run
1700 /// # use google_cloud_secretmanager_v1::model::replication_status::AutomaticStatus;
1701 /// use google_cloud_secretmanager_v1::model::CustomerManagedEncryptionStatus;
1702 /// let x = AutomaticStatus::new().set_or_clear_customer_managed_encryption(Some(CustomerManagedEncryptionStatus::default()/* use setters */));
1703 /// let x = AutomaticStatus::new().set_or_clear_customer_managed_encryption(None::<CustomerManagedEncryptionStatus>);
1704 /// ```
1705 pub fn set_or_clear_customer_managed_encryption<T>(
1706 mut self,
1707 v: std::option::Option<T>,
1708 ) -> Self
1709 where
1710 T: std::convert::Into<crate::model::CustomerManagedEncryptionStatus>,
1711 {
1712 self.customer_managed_encryption = v.map(|x| x.into());
1713 self
1714 }
1715 }
1716
1717 impl wkt::message::Message for AutomaticStatus {
1718 fn typename() -> &'static str {
1719 "type.googleapis.com/google.cloud.secretmanager.v1.ReplicationStatus.AutomaticStatus"
1720 }
1721 }
1722
1723 /// The replication status of a
1724 /// [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] using
1725 /// user-managed replication.
1726 ///
1727 /// Only populated if the parent [Secret][google.cloud.secretmanager.v1.Secret]
1728 /// has a user-managed replication policy.
1729 ///
1730 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
1731 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
1732 #[derive(Clone, Default, PartialEq)]
1733 #[non_exhaustive]
1734 pub struct UserManagedStatus {
1735 /// Output only. The list of replica statuses for the
1736 /// [SecretVersion][google.cloud.secretmanager.v1.SecretVersion].
1737 ///
1738 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
1739 pub replicas:
1740 std::vec::Vec<crate::model::replication_status::user_managed_status::ReplicaStatus>,
1741
1742 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
1743 }
1744
1745 impl UserManagedStatus {
1746 pub fn new() -> Self {
1747 std::default::Default::default()
1748 }
1749
1750 /// Sets the value of [replicas][crate::model::replication_status::UserManagedStatus::replicas].
1751 ///
1752 /// # Example
1753 /// ```ignore,no_run
1754 /// # use google_cloud_secretmanager_v1::model::replication_status::UserManagedStatus;
1755 /// use google_cloud_secretmanager_v1::model::replication_status::user_managed_status::ReplicaStatus;
1756 /// let x = UserManagedStatus::new()
1757 /// .set_replicas([
1758 /// ReplicaStatus::default()/* use setters */,
1759 /// ReplicaStatus::default()/* use (different) setters */,
1760 /// ]);
1761 /// ```
1762 pub fn set_replicas<T, V>(mut self, v: T) -> Self
1763 where
1764 T: std::iter::IntoIterator<Item = V>,
1765 V: std::convert::Into<
1766 crate::model::replication_status::user_managed_status::ReplicaStatus,
1767 >,
1768 {
1769 use std::iter::Iterator;
1770 self.replicas = v.into_iter().map(|i| i.into()).collect();
1771 self
1772 }
1773 }
1774
1775 impl wkt::message::Message for UserManagedStatus {
1776 fn typename() -> &'static str {
1777 "type.googleapis.com/google.cloud.secretmanager.v1.ReplicationStatus.UserManagedStatus"
1778 }
1779 }
1780
1781 /// Defines additional types related to [UserManagedStatus].
1782 pub mod user_managed_status {
1783 #[allow(unused_imports)]
1784 use super::*;
1785
1786 /// Describes the status of a user-managed replica for the
1787 /// [SecretVersion][google.cloud.secretmanager.v1.SecretVersion].
1788 ///
1789 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
1790 #[derive(Clone, Default, PartialEq)]
1791 #[non_exhaustive]
1792 pub struct ReplicaStatus {
1793 /// Output only. The canonical ID of the replica location.
1794 /// For example: `"us-east1"`.
1795 pub location: std::string::String,
1796
1797 /// Output only. The customer-managed encryption status of the
1798 /// [SecretVersion][google.cloud.secretmanager.v1.SecretVersion]. Only
1799 /// populated if customer-managed encryption is used.
1800 ///
1801 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
1802 pub customer_managed_encryption:
1803 std::option::Option<crate::model::CustomerManagedEncryptionStatus>,
1804
1805 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
1806 }
1807
1808 impl ReplicaStatus {
1809 pub fn new() -> Self {
1810 std::default::Default::default()
1811 }
1812
1813 /// Sets the value of [location][crate::model::replication_status::user_managed_status::ReplicaStatus::location].
1814 ///
1815 /// # Example
1816 /// ```ignore,no_run
1817 /// # use google_cloud_secretmanager_v1::model::replication_status::user_managed_status::ReplicaStatus;
1818 /// let x = ReplicaStatus::new().set_location("example");
1819 /// ```
1820 pub fn set_location<T: std::convert::Into<std::string::String>>(
1821 mut self,
1822 v: T,
1823 ) -> Self {
1824 self.location = v.into();
1825 self
1826 }
1827
1828 /// Sets the value of [customer_managed_encryption][crate::model::replication_status::user_managed_status::ReplicaStatus::customer_managed_encryption].
1829 ///
1830 /// # Example
1831 /// ```ignore,no_run
1832 /// # use google_cloud_secretmanager_v1::model::replication_status::user_managed_status::ReplicaStatus;
1833 /// use google_cloud_secretmanager_v1::model::CustomerManagedEncryptionStatus;
1834 /// let x = ReplicaStatus::new().set_customer_managed_encryption(CustomerManagedEncryptionStatus::default()/* use setters */);
1835 /// ```
1836 pub fn set_customer_managed_encryption<T>(mut self, v: T) -> Self
1837 where
1838 T: std::convert::Into<crate::model::CustomerManagedEncryptionStatus>,
1839 {
1840 self.customer_managed_encryption = std::option::Option::Some(v.into());
1841 self
1842 }
1843
1844 /// Sets or clears the value of [customer_managed_encryption][crate::model::replication_status::user_managed_status::ReplicaStatus::customer_managed_encryption].
1845 ///
1846 /// # Example
1847 /// ```ignore,no_run
1848 /// # use google_cloud_secretmanager_v1::model::replication_status::user_managed_status::ReplicaStatus;
1849 /// use google_cloud_secretmanager_v1::model::CustomerManagedEncryptionStatus;
1850 /// let x = ReplicaStatus::new().set_or_clear_customer_managed_encryption(Some(CustomerManagedEncryptionStatus::default()/* use setters */));
1851 /// let x = ReplicaStatus::new().set_or_clear_customer_managed_encryption(None::<CustomerManagedEncryptionStatus>);
1852 /// ```
1853 pub fn set_or_clear_customer_managed_encryption<T>(
1854 mut self,
1855 v: std::option::Option<T>,
1856 ) -> Self
1857 where
1858 T: std::convert::Into<crate::model::CustomerManagedEncryptionStatus>,
1859 {
1860 self.customer_managed_encryption = v.map(|x| x.into());
1861 self
1862 }
1863 }
1864
1865 impl wkt::message::Message for ReplicaStatus {
1866 fn typename() -> &'static str {
1867 "type.googleapis.com/google.cloud.secretmanager.v1.ReplicationStatus.UserManagedStatus.ReplicaStatus"
1868 }
1869 }
1870 }
1871
1872 /// The replication status of the
1873 /// [SecretVersion][google.cloud.secretmanager.v1.SecretVersion].
1874 ///
1875 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
1876 #[derive(Clone, Debug, PartialEq)]
1877 #[non_exhaustive]
1878 pub enum ReplicationStatus {
1879 /// Describes the replication status of a
1880 /// [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] with
1881 /// automatic replication.
1882 ///
1883 /// Only populated if the parent
1884 /// [Secret][google.cloud.secretmanager.v1.Secret] has an automatic
1885 /// replication policy.
1886 ///
1887 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
1888 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
1889 Automatic(std::boxed::Box<crate::model::replication_status::AutomaticStatus>),
1890 /// Describes the replication status of a
1891 /// [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] with
1892 /// user-managed replication.
1893 ///
1894 /// Only populated if the parent
1895 /// [Secret][google.cloud.secretmanager.v1.Secret] has a user-managed
1896 /// replication policy.
1897 ///
1898 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
1899 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
1900 UserManaged(std::boxed::Box<crate::model::replication_status::UserManagedStatus>),
1901 }
1902}
1903
1904/// Describes the status of customer-managed encryption.
1905#[derive(Clone, Default, PartialEq)]
1906#[non_exhaustive]
1907pub struct CustomerManagedEncryptionStatus {
1908 /// Required. The resource name of the Cloud KMS CryptoKeyVersion used to
1909 /// encrypt the secret payload, in the following format:
1910 /// `projects/*/locations/*/keyRings/*/cryptoKeys/*/versions/*`.
1911 pub kms_key_version_name: std::string::String,
1912
1913 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
1914}
1915
1916impl CustomerManagedEncryptionStatus {
1917 pub fn new() -> Self {
1918 std::default::Default::default()
1919 }
1920
1921 /// Sets the value of [kms_key_version_name][crate::model::CustomerManagedEncryptionStatus::kms_key_version_name].
1922 ///
1923 /// # Example
1924 /// ```ignore,no_run
1925 /// # use google_cloud_secretmanager_v1::model::CustomerManagedEncryptionStatus;
1926 /// let x = CustomerManagedEncryptionStatus::new().set_kms_key_version_name("example");
1927 /// ```
1928 pub fn set_kms_key_version_name<T: std::convert::Into<std::string::String>>(
1929 mut self,
1930 v: T,
1931 ) -> Self {
1932 self.kms_key_version_name = v.into();
1933 self
1934 }
1935}
1936
1937impl wkt::message::Message for CustomerManagedEncryptionStatus {
1938 fn typename() -> &'static str {
1939 "type.googleapis.com/google.cloud.secretmanager.v1.CustomerManagedEncryptionStatus"
1940 }
1941}
1942
1943/// A Pub/Sub topic which Secret Manager will publish to when control plane
1944/// events occur on this secret.
1945#[derive(Clone, Default, PartialEq)]
1946#[non_exhaustive]
1947pub struct Topic {
1948 /// Identifier. The resource name of the Pub/Sub topic that will be published
1949 /// to, in the following format: `projects/*/topics/*`. For publication to
1950 /// succeed, the Secret Manager service agent must have the
1951 /// `pubsub.topic.publish` permission on the topic. The Pub/Sub Publisher role
1952 /// (`roles/pubsub.publisher`) includes this permission.
1953 pub name: std::string::String,
1954
1955 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
1956}
1957
1958impl Topic {
1959 pub fn new() -> Self {
1960 std::default::Default::default()
1961 }
1962
1963 /// Sets the value of [name][crate::model::Topic::name].
1964 ///
1965 /// # Example
1966 /// ```ignore,no_run
1967 /// # use google_cloud_secretmanager_v1::model::Topic;
1968 /// let x = Topic::new().set_name("example");
1969 /// ```
1970 pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
1971 self.name = v.into();
1972 self
1973 }
1974}
1975
1976impl wkt::message::Message for Topic {
1977 fn typename() -> &'static str {
1978 "type.googleapis.com/google.cloud.secretmanager.v1.Topic"
1979 }
1980}
1981
1982/// The rotation time and period for a
1983/// [Secret][google.cloud.secretmanager.v1.Secret]. At next_rotation_time, Secret
1984/// Manager will send a Pub/Sub notification to the topics configured on the
1985/// Secret. [Secret.topics][google.cloud.secretmanager.v1.Secret.topics] must be
1986/// set to configure rotation.
1987///
1988/// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
1989/// [google.cloud.secretmanager.v1.Secret.topics]: crate::model::Secret::topics
1990#[derive(Clone, Default, PartialEq)]
1991#[non_exhaustive]
1992pub struct Rotation {
1993 /// Optional. Timestamp in UTC at which the
1994 /// [Secret][google.cloud.secretmanager.v1.Secret] is scheduled to rotate.
1995 /// Cannot be set to less than 300s (5 min) in the future and at most
1996 /// 3153600000s (100 years).
1997 ///
1998 /// [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time]
1999 /// MUST be set if
2000 /// [rotation_period][google.cloud.secretmanager.v1.Rotation.rotation_period]
2001 /// is set.
2002 ///
2003 /// [google.cloud.secretmanager.v1.Rotation.next_rotation_time]: crate::model::Rotation::next_rotation_time
2004 /// [google.cloud.secretmanager.v1.Rotation.rotation_period]: crate::model::Rotation::rotation_period
2005 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
2006 pub next_rotation_time: std::option::Option<wkt::Timestamp>,
2007
2008 /// Input only. The Duration between rotation notifications. Must be in seconds
2009 /// and at least 3600s (1h) and at most 3153600000s (100 years).
2010 ///
2011 /// If
2012 /// [rotation_period][google.cloud.secretmanager.v1.Rotation.rotation_period]
2013 /// is set,
2014 /// [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time]
2015 /// must be set.
2016 /// [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time]
2017 /// will be advanced by this period when the service automatically sends
2018 /// rotation notifications.
2019 ///
2020 /// [google.cloud.secretmanager.v1.Rotation.next_rotation_time]: crate::model::Rotation::next_rotation_time
2021 /// [google.cloud.secretmanager.v1.Rotation.rotation_period]: crate::model::Rotation::rotation_period
2022 pub rotation_period: std::option::Option<wkt::Duration>,
2023
2024 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
2025}
2026
2027impl Rotation {
2028 pub fn new() -> Self {
2029 std::default::Default::default()
2030 }
2031
2032 /// Sets the value of [next_rotation_time][crate::model::Rotation::next_rotation_time].
2033 ///
2034 /// # Example
2035 /// ```ignore,no_run
2036 /// # use google_cloud_secretmanager_v1::model::Rotation;
2037 /// use wkt::Timestamp;
2038 /// let x = Rotation::new().set_next_rotation_time(Timestamp::default()/* use setters */);
2039 /// ```
2040 pub fn set_next_rotation_time<T>(mut self, v: T) -> Self
2041 where
2042 T: std::convert::Into<wkt::Timestamp>,
2043 {
2044 self.next_rotation_time = std::option::Option::Some(v.into());
2045 self
2046 }
2047
2048 /// Sets or clears the value of [next_rotation_time][crate::model::Rotation::next_rotation_time].
2049 ///
2050 /// # Example
2051 /// ```ignore,no_run
2052 /// # use google_cloud_secretmanager_v1::model::Rotation;
2053 /// use wkt::Timestamp;
2054 /// let x = Rotation::new().set_or_clear_next_rotation_time(Some(Timestamp::default()/* use setters */));
2055 /// let x = Rotation::new().set_or_clear_next_rotation_time(None::<Timestamp>);
2056 /// ```
2057 pub fn set_or_clear_next_rotation_time<T>(mut self, v: std::option::Option<T>) -> Self
2058 where
2059 T: std::convert::Into<wkt::Timestamp>,
2060 {
2061 self.next_rotation_time = v.map(|x| x.into());
2062 self
2063 }
2064
2065 /// Sets the value of [rotation_period][crate::model::Rotation::rotation_period].
2066 ///
2067 /// # Example
2068 /// ```ignore,no_run
2069 /// # use google_cloud_secretmanager_v1::model::Rotation;
2070 /// use wkt::Duration;
2071 /// let x = Rotation::new().set_rotation_period(Duration::default()/* use setters */);
2072 /// ```
2073 pub fn set_rotation_period<T>(mut self, v: T) -> Self
2074 where
2075 T: std::convert::Into<wkt::Duration>,
2076 {
2077 self.rotation_period = std::option::Option::Some(v.into());
2078 self
2079 }
2080
2081 /// Sets or clears the value of [rotation_period][crate::model::Rotation::rotation_period].
2082 ///
2083 /// # Example
2084 /// ```ignore,no_run
2085 /// # use google_cloud_secretmanager_v1::model::Rotation;
2086 /// use wkt::Duration;
2087 /// let x = Rotation::new().set_or_clear_rotation_period(Some(Duration::default()/* use setters */));
2088 /// let x = Rotation::new().set_or_clear_rotation_period(None::<Duration>);
2089 /// ```
2090 pub fn set_or_clear_rotation_period<T>(mut self, v: std::option::Option<T>) -> Self
2091 where
2092 T: std::convert::Into<wkt::Duration>,
2093 {
2094 self.rotation_period = v.map(|x| x.into());
2095 self
2096 }
2097}
2098
2099impl wkt::message::Message for Rotation {
2100 fn typename() -> &'static str {
2101 "type.googleapis.com/google.cloud.secretmanager.v1.Rotation"
2102 }
2103}
2104
2105/// A secret payload resource in the Secret Manager API. This contains the
2106/// sensitive secret payload that is associated with a
2107/// [SecretVersion][google.cloud.secretmanager.v1.SecretVersion].
2108///
2109/// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
2110#[derive(Clone, Default, PartialEq)]
2111#[non_exhaustive]
2112pub struct SecretPayload {
2113 /// The secret data. Must be no larger than 64KiB.
2114 pub data: ::bytes::Bytes,
2115
2116 /// Optional. If specified,
2117 /// [SecretManagerService][google.cloud.secretmanager.v1.SecretManagerService]
2118 /// will verify the integrity of the received
2119 /// [data][google.cloud.secretmanager.v1.SecretPayload.data] on
2120 /// [SecretManagerService.AddSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AddSecretVersion]
2121 /// calls using the crc32c checksum and store it to include in future
2122 /// [SecretManagerService.AccessSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AccessSecretVersion]
2123 /// responses. If a checksum is not provided in the
2124 /// [SecretManagerService.AddSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AddSecretVersion]
2125 /// request, the
2126 /// [SecretManagerService][google.cloud.secretmanager.v1.SecretManagerService]
2127 /// will generate and store one for you.
2128 ///
2129 /// The CRC32C value is encoded as a Int64 for compatibility, and can be
2130 /// safely downconverted to uint32 in languages that support this type.
2131 /// <https://cloud.google.com/apis/design/design_patterns#integer_types>
2132 ///
2133 /// [google.cloud.secretmanager.v1.SecretManagerService]: crate::client::SecretManagerService
2134 /// [google.cloud.secretmanager.v1.SecretManagerService.AccessSecretVersion]: crate::client::SecretManagerService::access_secret_version
2135 /// [google.cloud.secretmanager.v1.SecretManagerService.AddSecretVersion]: crate::client::SecretManagerService::add_secret_version
2136 /// [google.cloud.secretmanager.v1.SecretPayload.data]: crate::model::SecretPayload::data
2137 pub data_crc32c: std::option::Option<i64>,
2138
2139 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
2140}
2141
2142impl SecretPayload {
2143 pub fn new() -> Self {
2144 std::default::Default::default()
2145 }
2146
2147 /// Sets the value of [data][crate::model::SecretPayload::data].
2148 ///
2149 /// # Example
2150 /// ```ignore,no_run
2151 /// # use google_cloud_secretmanager_v1::model::SecretPayload;
2152 /// let x = SecretPayload::new().set_data(bytes::Bytes::from_static(b"example"));
2153 /// ```
2154 pub fn set_data<T: std::convert::Into<::bytes::Bytes>>(mut self, v: T) -> Self {
2155 self.data = v.into();
2156 self
2157 }
2158
2159 /// Sets the value of [data_crc32c][crate::model::SecretPayload::data_crc32c].
2160 ///
2161 /// # Example
2162 /// ```ignore,no_run
2163 /// # use google_cloud_secretmanager_v1::model::SecretPayload;
2164 /// let x = SecretPayload::new().set_data_crc32c(42);
2165 /// ```
2166 pub fn set_data_crc32c<T>(mut self, v: T) -> Self
2167 where
2168 T: std::convert::Into<i64>,
2169 {
2170 self.data_crc32c = std::option::Option::Some(v.into());
2171 self
2172 }
2173
2174 /// Sets or clears the value of [data_crc32c][crate::model::SecretPayload::data_crc32c].
2175 ///
2176 /// # Example
2177 /// ```ignore,no_run
2178 /// # use google_cloud_secretmanager_v1::model::SecretPayload;
2179 /// let x = SecretPayload::new().set_or_clear_data_crc32c(Some(42));
2180 /// let x = SecretPayload::new().set_or_clear_data_crc32c(None::<i32>);
2181 /// ```
2182 pub fn set_or_clear_data_crc32c<T>(mut self, v: std::option::Option<T>) -> Self
2183 where
2184 T: std::convert::Into<i64>,
2185 {
2186 self.data_crc32c = v.map(|x| x.into());
2187 self
2188 }
2189}
2190
2191impl wkt::message::Message for SecretPayload {
2192 fn typename() -> &'static str {
2193 "type.googleapis.com/google.cloud.secretmanager.v1.SecretPayload"
2194 }
2195}
2196
2197/// Request message for
2198/// [SecretManagerService.ListSecrets][google.cloud.secretmanager.v1.SecretManagerService.ListSecrets].
2199///
2200/// [google.cloud.secretmanager.v1.SecretManagerService.ListSecrets]: crate::client::SecretManagerService::list_secrets
2201#[derive(Clone, Default, PartialEq)]
2202#[non_exhaustive]
2203pub struct ListSecretsRequest {
2204 /// Required. The resource name of the project associated with the
2205 /// [Secrets][google.cloud.secretmanager.v1.Secret], in the format `projects/*`
2206 /// or `projects/*/locations/*`
2207 ///
2208 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
2209 pub parent: std::string::String,
2210
2211 /// Optional. The maximum number of results to be returned in a single page. If
2212 /// set to 0, the server decides the number of results to return. If the
2213 /// number is greater than 25000, it is capped at 25000.
2214 pub page_size: i32,
2215
2216 /// Optional. Pagination token, returned earlier via
2217 /// [ListSecretsResponse.next_page_token][google.cloud.secretmanager.v1.ListSecretsResponse.next_page_token].
2218 ///
2219 /// [google.cloud.secretmanager.v1.ListSecretsResponse.next_page_token]: crate::model::ListSecretsResponse::next_page_token
2220 pub page_token: std::string::String,
2221
2222 /// Optional. Filter string, adhering to the rules in
2223 /// [List-operation
2224 /// filtering](https://cloud.google.com/secret-manager/docs/filtering). List
2225 /// only secrets matching the filter. If filter is empty, all secrets are
2226 /// listed.
2227 pub filter: std::string::String,
2228
2229 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
2230}
2231
2232impl ListSecretsRequest {
2233 pub fn new() -> Self {
2234 std::default::Default::default()
2235 }
2236
2237 /// Sets the value of [parent][crate::model::ListSecretsRequest::parent].
2238 ///
2239 /// # Example
2240 /// ```ignore,no_run
2241 /// # use google_cloud_secretmanager_v1::model::ListSecretsRequest;
2242 /// let x = ListSecretsRequest::new().set_parent("example");
2243 /// ```
2244 pub fn set_parent<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
2245 self.parent = v.into();
2246 self
2247 }
2248
2249 /// Sets the value of [page_size][crate::model::ListSecretsRequest::page_size].
2250 ///
2251 /// # Example
2252 /// ```ignore,no_run
2253 /// # use google_cloud_secretmanager_v1::model::ListSecretsRequest;
2254 /// let x = ListSecretsRequest::new().set_page_size(42);
2255 /// ```
2256 pub fn set_page_size<T: std::convert::Into<i32>>(mut self, v: T) -> Self {
2257 self.page_size = v.into();
2258 self
2259 }
2260
2261 /// Sets the value of [page_token][crate::model::ListSecretsRequest::page_token].
2262 ///
2263 /// # Example
2264 /// ```ignore,no_run
2265 /// # use google_cloud_secretmanager_v1::model::ListSecretsRequest;
2266 /// let x = ListSecretsRequest::new().set_page_token("example");
2267 /// ```
2268 pub fn set_page_token<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
2269 self.page_token = v.into();
2270 self
2271 }
2272
2273 /// Sets the value of [filter][crate::model::ListSecretsRequest::filter].
2274 ///
2275 /// # Example
2276 /// ```ignore,no_run
2277 /// # use google_cloud_secretmanager_v1::model::ListSecretsRequest;
2278 /// let x = ListSecretsRequest::new().set_filter("example");
2279 /// ```
2280 pub fn set_filter<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
2281 self.filter = v.into();
2282 self
2283 }
2284}
2285
2286impl wkt::message::Message for ListSecretsRequest {
2287 fn typename() -> &'static str {
2288 "type.googleapis.com/google.cloud.secretmanager.v1.ListSecretsRequest"
2289 }
2290}
2291
2292/// Response message for
2293/// [SecretManagerService.ListSecrets][google.cloud.secretmanager.v1.SecretManagerService.ListSecrets].
2294///
2295/// [google.cloud.secretmanager.v1.SecretManagerService.ListSecrets]: crate::client::SecretManagerService::list_secrets
2296#[derive(Clone, Default, PartialEq)]
2297#[non_exhaustive]
2298pub struct ListSecretsResponse {
2299 /// The list of [Secrets][google.cloud.secretmanager.v1.Secret] sorted in
2300 /// reverse by create_time (newest first).
2301 ///
2302 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
2303 pub secrets: std::vec::Vec<crate::model::Secret>,
2304
2305 /// A token to retrieve the next page of results. Pass this value in
2306 /// [ListSecretsRequest.page_token][google.cloud.secretmanager.v1.ListSecretsRequest.page_token]
2307 /// to retrieve the next page.
2308 ///
2309 /// [google.cloud.secretmanager.v1.ListSecretsRequest.page_token]: crate::model::ListSecretsRequest::page_token
2310 pub next_page_token: std::string::String,
2311
2312 /// The total number of [Secrets][google.cloud.secretmanager.v1.Secret] but 0
2313 /// when the
2314 /// [ListSecretsRequest.filter][google.cloud.secretmanager.v1.ListSecretsRequest.filter]
2315 /// field is set.
2316 ///
2317 /// [google.cloud.secretmanager.v1.ListSecretsRequest.filter]: crate::model::ListSecretsRequest::filter
2318 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
2319 pub total_size: i32,
2320
2321 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
2322}
2323
2324impl ListSecretsResponse {
2325 pub fn new() -> Self {
2326 std::default::Default::default()
2327 }
2328
2329 /// Sets the value of [secrets][crate::model::ListSecretsResponse::secrets].
2330 ///
2331 /// # Example
2332 /// ```ignore,no_run
2333 /// # use google_cloud_secretmanager_v1::model::ListSecretsResponse;
2334 /// use google_cloud_secretmanager_v1::model::Secret;
2335 /// let x = ListSecretsResponse::new()
2336 /// .set_secrets([
2337 /// Secret::default()/* use setters */,
2338 /// Secret::default()/* use (different) setters */,
2339 /// ]);
2340 /// ```
2341 pub fn set_secrets<T, V>(mut self, v: T) -> Self
2342 where
2343 T: std::iter::IntoIterator<Item = V>,
2344 V: std::convert::Into<crate::model::Secret>,
2345 {
2346 use std::iter::Iterator;
2347 self.secrets = v.into_iter().map(|i| i.into()).collect();
2348 self
2349 }
2350
2351 /// Sets the value of [next_page_token][crate::model::ListSecretsResponse::next_page_token].
2352 ///
2353 /// # Example
2354 /// ```ignore,no_run
2355 /// # use google_cloud_secretmanager_v1::model::ListSecretsResponse;
2356 /// let x = ListSecretsResponse::new().set_next_page_token("example");
2357 /// ```
2358 pub fn set_next_page_token<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
2359 self.next_page_token = v.into();
2360 self
2361 }
2362
2363 /// Sets the value of [total_size][crate::model::ListSecretsResponse::total_size].
2364 ///
2365 /// # Example
2366 /// ```ignore,no_run
2367 /// # use google_cloud_secretmanager_v1::model::ListSecretsResponse;
2368 /// let x = ListSecretsResponse::new().set_total_size(42);
2369 /// ```
2370 pub fn set_total_size<T: std::convert::Into<i32>>(mut self, v: T) -> Self {
2371 self.total_size = v.into();
2372 self
2373 }
2374}
2375
2376impl wkt::message::Message for ListSecretsResponse {
2377 fn typename() -> &'static str {
2378 "type.googleapis.com/google.cloud.secretmanager.v1.ListSecretsResponse"
2379 }
2380}
2381
2382#[doc(hidden)]
2383impl google_cloud_gax::paginator::internal::PageableResponse for ListSecretsResponse {
2384 type PageItem = crate::model::Secret;
2385
2386 fn items(self) -> std::vec::Vec<Self::PageItem> {
2387 self.secrets
2388 }
2389
2390 fn next_page_token(&self) -> std::string::String {
2391 use std::clone::Clone;
2392 self.next_page_token.clone()
2393 }
2394}
2395
2396/// Request message for
2397/// [SecretManagerService.CreateSecret][google.cloud.secretmanager.v1.SecretManagerService.CreateSecret].
2398///
2399/// [google.cloud.secretmanager.v1.SecretManagerService.CreateSecret]: crate::client::SecretManagerService::create_secret
2400#[derive(Clone, Default, PartialEq)]
2401#[non_exhaustive]
2402pub struct CreateSecretRequest {
2403 /// Required. The resource name of the project to associate with the
2404 /// [Secret][google.cloud.secretmanager.v1.Secret], in the format `projects/*`
2405 /// or `projects/*/locations/*`.
2406 ///
2407 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
2408 pub parent: std::string::String,
2409
2410 /// Required. This must be unique within the project.
2411 ///
2412 /// A secret ID is a string with a maximum length of 255 characters and can
2413 /// contain uppercase and lowercase letters, numerals, and the hyphen (`-`) and
2414 /// underscore (`_`) characters.
2415 pub secret_id: std::string::String,
2416
2417 /// Required. A [Secret][google.cloud.secretmanager.v1.Secret] with initial
2418 /// field values.
2419 ///
2420 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
2421 pub secret: std::option::Option<crate::model::Secret>,
2422
2423 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
2424}
2425
2426impl CreateSecretRequest {
2427 pub fn new() -> Self {
2428 std::default::Default::default()
2429 }
2430
2431 /// Sets the value of [parent][crate::model::CreateSecretRequest::parent].
2432 ///
2433 /// # Example
2434 /// ```ignore,no_run
2435 /// # use google_cloud_secretmanager_v1::model::CreateSecretRequest;
2436 /// let x = CreateSecretRequest::new().set_parent("example");
2437 /// ```
2438 pub fn set_parent<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
2439 self.parent = v.into();
2440 self
2441 }
2442
2443 /// Sets the value of [secret_id][crate::model::CreateSecretRequest::secret_id].
2444 ///
2445 /// # Example
2446 /// ```ignore,no_run
2447 /// # use google_cloud_secretmanager_v1::model::CreateSecretRequest;
2448 /// let x = CreateSecretRequest::new().set_secret_id("example");
2449 /// ```
2450 pub fn set_secret_id<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
2451 self.secret_id = v.into();
2452 self
2453 }
2454
2455 /// Sets the value of [secret][crate::model::CreateSecretRequest::secret].
2456 ///
2457 /// # Example
2458 /// ```ignore,no_run
2459 /// # use google_cloud_secretmanager_v1::model::CreateSecretRequest;
2460 /// use google_cloud_secretmanager_v1::model::Secret;
2461 /// let x = CreateSecretRequest::new().set_secret(Secret::default()/* use setters */);
2462 /// ```
2463 pub fn set_secret<T>(mut self, v: T) -> Self
2464 where
2465 T: std::convert::Into<crate::model::Secret>,
2466 {
2467 self.secret = std::option::Option::Some(v.into());
2468 self
2469 }
2470
2471 /// Sets or clears the value of [secret][crate::model::CreateSecretRequest::secret].
2472 ///
2473 /// # Example
2474 /// ```ignore,no_run
2475 /// # use google_cloud_secretmanager_v1::model::CreateSecretRequest;
2476 /// use google_cloud_secretmanager_v1::model::Secret;
2477 /// let x = CreateSecretRequest::new().set_or_clear_secret(Some(Secret::default()/* use setters */));
2478 /// let x = CreateSecretRequest::new().set_or_clear_secret(None::<Secret>);
2479 /// ```
2480 pub fn set_or_clear_secret<T>(mut self, v: std::option::Option<T>) -> Self
2481 where
2482 T: std::convert::Into<crate::model::Secret>,
2483 {
2484 self.secret = v.map(|x| x.into());
2485 self
2486 }
2487}
2488
2489impl wkt::message::Message for CreateSecretRequest {
2490 fn typename() -> &'static str {
2491 "type.googleapis.com/google.cloud.secretmanager.v1.CreateSecretRequest"
2492 }
2493}
2494
2495/// Request message for
2496/// [SecretManagerService.AddSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AddSecretVersion].
2497///
2498/// [google.cloud.secretmanager.v1.SecretManagerService.AddSecretVersion]: crate::client::SecretManagerService::add_secret_version
2499#[derive(Clone, Default, PartialEq)]
2500#[non_exhaustive]
2501pub struct AddSecretVersionRequest {
2502 /// Required. The resource name of the
2503 /// [Secret][google.cloud.secretmanager.v1.Secret] to associate with the
2504 /// [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] in the format
2505 /// `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`.
2506 ///
2507 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
2508 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
2509 pub parent: std::string::String,
2510
2511 /// Required. The secret payload of the
2512 /// [SecretVersion][google.cloud.secretmanager.v1.SecretVersion].
2513 ///
2514 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
2515 pub payload: std::option::Option<crate::model::SecretPayload>,
2516
2517 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
2518}
2519
2520impl AddSecretVersionRequest {
2521 pub fn new() -> Self {
2522 std::default::Default::default()
2523 }
2524
2525 /// Sets the value of [parent][crate::model::AddSecretVersionRequest::parent].
2526 ///
2527 /// # Example
2528 /// ```ignore,no_run
2529 /// # use google_cloud_secretmanager_v1::model::AddSecretVersionRequest;
2530 /// let x = AddSecretVersionRequest::new().set_parent("example");
2531 /// ```
2532 pub fn set_parent<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
2533 self.parent = v.into();
2534 self
2535 }
2536
2537 /// Sets the value of [payload][crate::model::AddSecretVersionRequest::payload].
2538 ///
2539 /// # Example
2540 /// ```ignore,no_run
2541 /// # use google_cloud_secretmanager_v1::model::AddSecretVersionRequest;
2542 /// use google_cloud_secretmanager_v1::model::SecretPayload;
2543 /// let x = AddSecretVersionRequest::new().set_payload(SecretPayload::default()/* use setters */);
2544 /// ```
2545 pub fn set_payload<T>(mut self, v: T) -> Self
2546 where
2547 T: std::convert::Into<crate::model::SecretPayload>,
2548 {
2549 self.payload = std::option::Option::Some(v.into());
2550 self
2551 }
2552
2553 /// Sets or clears the value of [payload][crate::model::AddSecretVersionRequest::payload].
2554 ///
2555 /// # Example
2556 /// ```ignore,no_run
2557 /// # use google_cloud_secretmanager_v1::model::AddSecretVersionRequest;
2558 /// use google_cloud_secretmanager_v1::model::SecretPayload;
2559 /// let x = AddSecretVersionRequest::new().set_or_clear_payload(Some(SecretPayload::default()/* use setters */));
2560 /// let x = AddSecretVersionRequest::new().set_or_clear_payload(None::<SecretPayload>);
2561 /// ```
2562 pub fn set_or_clear_payload<T>(mut self, v: std::option::Option<T>) -> Self
2563 where
2564 T: std::convert::Into<crate::model::SecretPayload>,
2565 {
2566 self.payload = v.map(|x| x.into());
2567 self
2568 }
2569}
2570
2571impl wkt::message::Message for AddSecretVersionRequest {
2572 fn typename() -> &'static str {
2573 "type.googleapis.com/google.cloud.secretmanager.v1.AddSecretVersionRequest"
2574 }
2575}
2576
2577/// Request message for
2578/// [SecretManagerService.GetSecret][google.cloud.secretmanager.v1.SecretManagerService.GetSecret].
2579///
2580/// [google.cloud.secretmanager.v1.SecretManagerService.GetSecret]: crate::client::SecretManagerService::get_secret
2581#[derive(Clone, Default, PartialEq)]
2582#[non_exhaustive]
2583pub struct GetSecretRequest {
2584 /// Required. The resource name of the
2585 /// [Secret][google.cloud.secretmanager.v1.Secret], in the format
2586 /// `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`.
2587 ///
2588 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
2589 pub name: std::string::String,
2590
2591 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
2592}
2593
2594impl GetSecretRequest {
2595 pub fn new() -> Self {
2596 std::default::Default::default()
2597 }
2598
2599 /// Sets the value of [name][crate::model::GetSecretRequest::name].
2600 ///
2601 /// # Example
2602 /// ```ignore,no_run
2603 /// # use google_cloud_secretmanager_v1::model::GetSecretRequest;
2604 /// let x = GetSecretRequest::new().set_name("example");
2605 /// ```
2606 pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
2607 self.name = v.into();
2608 self
2609 }
2610}
2611
2612impl wkt::message::Message for GetSecretRequest {
2613 fn typename() -> &'static str {
2614 "type.googleapis.com/google.cloud.secretmanager.v1.GetSecretRequest"
2615 }
2616}
2617
2618/// Request message for
2619/// [SecretManagerService.ListSecretVersions][google.cloud.secretmanager.v1.SecretManagerService.ListSecretVersions].
2620///
2621/// [google.cloud.secretmanager.v1.SecretManagerService.ListSecretVersions]: crate::client::SecretManagerService::list_secret_versions
2622#[derive(Clone, Default, PartialEq)]
2623#[non_exhaustive]
2624pub struct ListSecretVersionsRequest {
2625 /// Required. The resource name of the
2626 /// [Secret][google.cloud.secretmanager.v1.Secret] associated with the
2627 /// [SecretVersions][google.cloud.secretmanager.v1.SecretVersion] to list, in
2628 /// the format `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`.
2629 ///
2630 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
2631 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
2632 pub parent: std::string::String,
2633
2634 /// Optional. The maximum number of results to be returned in a single page. If
2635 /// set to 0, the server decides the number of results to return. If the
2636 /// number is greater than 25000, it is capped at 25000.
2637 pub page_size: i32,
2638
2639 /// Optional. Pagination token, returned earlier via
2640 /// ListSecretVersionsResponse.next_page_token][].
2641 pub page_token: std::string::String,
2642
2643 /// Optional. Filter string, adhering to the rules in
2644 /// [List-operation
2645 /// filtering](https://cloud.google.com/secret-manager/docs/filtering). List
2646 /// only secret versions matching the filter. If filter is empty, all secret
2647 /// versions are listed.
2648 pub filter: std::string::String,
2649
2650 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
2651}
2652
2653impl ListSecretVersionsRequest {
2654 pub fn new() -> Self {
2655 std::default::Default::default()
2656 }
2657
2658 /// Sets the value of [parent][crate::model::ListSecretVersionsRequest::parent].
2659 ///
2660 /// # Example
2661 /// ```ignore,no_run
2662 /// # use google_cloud_secretmanager_v1::model::ListSecretVersionsRequest;
2663 /// let x = ListSecretVersionsRequest::new().set_parent("example");
2664 /// ```
2665 pub fn set_parent<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
2666 self.parent = v.into();
2667 self
2668 }
2669
2670 /// Sets the value of [page_size][crate::model::ListSecretVersionsRequest::page_size].
2671 ///
2672 /// # Example
2673 /// ```ignore,no_run
2674 /// # use google_cloud_secretmanager_v1::model::ListSecretVersionsRequest;
2675 /// let x = ListSecretVersionsRequest::new().set_page_size(42);
2676 /// ```
2677 pub fn set_page_size<T: std::convert::Into<i32>>(mut self, v: T) -> Self {
2678 self.page_size = v.into();
2679 self
2680 }
2681
2682 /// Sets the value of [page_token][crate::model::ListSecretVersionsRequest::page_token].
2683 ///
2684 /// # Example
2685 /// ```ignore,no_run
2686 /// # use google_cloud_secretmanager_v1::model::ListSecretVersionsRequest;
2687 /// let x = ListSecretVersionsRequest::new().set_page_token("example");
2688 /// ```
2689 pub fn set_page_token<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
2690 self.page_token = v.into();
2691 self
2692 }
2693
2694 /// Sets the value of [filter][crate::model::ListSecretVersionsRequest::filter].
2695 ///
2696 /// # Example
2697 /// ```ignore,no_run
2698 /// # use google_cloud_secretmanager_v1::model::ListSecretVersionsRequest;
2699 /// let x = ListSecretVersionsRequest::new().set_filter("example");
2700 /// ```
2701 pub fn set_filter<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
2702 self.filter = v.into();
2703 self
2704 }
2705}
2706
2707impl wkt::message::Message for ListSecretVersionsRequest {
2708 fn typename() -> &'static str {
2709 "type.googleapis.com/google.cloud.secretmanager.v1.ListSecretVersionsRequest"
2710 }
2711}
2712
2713/// Response message for
2714/// [SecretManagerService.ListSecretVersions][google.cloud.secretmanager.v1.SecretManagerService.ListSecretVersions].
2715///
2716/// [google.cloud.secretmanager.v1.SecretManagerService.ListSecretVersions]: crate::client::SecretManagerService::list_secret_versions
2717#[derive(Clone, Default, PartialEq)]
2718#[non_exhaustive]
2719pub struct ListSecretVersionsResponse {
2720 /// The list of [SecretVersions][google.cloud.secretmanager.v1.SecretVersion]
2721 /// sorted in reverse by create_time (newest first).
2722 ///
2723 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
2724 pub versions: std::vec::Vec<crate::model::SecretVersion>,
2725
2726 /// A token to retrieve the next page of results. Pass this value in
2727 /// [ListSecretVersionsRequest.page_token][google.cloud.secretmanager.v1.ListSecretVersionsRequest.page_token]
2728 /// to retrieve the next page.
2729 ///
2730 /// [google.cloud.secretmanager.v1.ListSecretVersionsRequest.page_token]: crate::model::ListSecretVersionsRequest::page_token
2731 pub next_page_token: std::string::String,
2732
2733 /// The total number of
2734 /// [SecretVersions][google.cloud.secretmanager.v1.SecretVersion] but 0 when
2735 /// the
2736 /// [ListSecretsRequest.filter][google.cloud.secretmanager.v1.ListSecretsRequest.filter]
2737 /// field is set.
2738 ///
2739 /// [google.cloud.secretmanager.v1.ListSecretsRequest.filter]: crate::model::ListSecretsRequest::filter
2740 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
2741 pub total_size: i32,
2742
2743 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
2744}
2745
2746impl ListSecretVersionsResponse {
2747 pub fn new() -> Self {
2748 std::default::Default::default()
2749 }
2750
2751 /// Sets the value of [versions][crate::model::ListSecretVersionsResponse::versions].
2752 ///
2753 /// # Example
2754 /// ```ignore,no_run
2755 /// # use google_cloud_secretmanager_v1::model::ListSecretVersionsResponse;
2756 /// use google_cloud_secretmanager_v1::model::SecretVersion;
2757 /// let x = ListSecretVersionsResponse::new()
2758 /// .set_versions([
2759 /// SecretVersion::default()/* use setters */,
2760 /// SecretVersion::default()/* use (different) setters */,
2761 /// ]);
2762 /// ```
2763 pub fn set_versions<T, V>(mut self, v: T) -> Self
2764 where
2765 T: std::iter::IntoIterator<Item = V>,
2766 V: std::convert::Into<crate::model::SecretVersion>,
2767 {
2768 use std::iter::Iterator;
2769 self.versions = v.into_iter().map(|i| i.into()).collect();
2770 self
2771 }
2772
2773 /// Sets the value of [next_page_token][crate::model::ListSecretVersionsResponse::next_page_token].
2774 ///
2775 /// # Example
2776 /// ```ignore,no_run
2777 /// # use google_cloud_secretmanager_v1::model::ListSecretVersionsResponse;
2778 /// let x = ListSecretVersionsResponse::new().set_next_page_token("example");
2779 /// ```
2780 pub fn set_next_page_token<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
2781 self.next_page_token = v.into();
2782 self
2783 }
2784
2785 /// Sets the value of [total_size][crate::model::ListSecretVersionsResponse::total_size].
2786 ///
2787 /// # Example
2788 /// ```ignore,no_run
2789 /// # use google_cloud_secretmanager_v1::model::ListSecretVersionsResponse;
2790 /// let x = ListSecretVersionsResponse::new().set_total_size(42);
2791 /// ```
2792 pub fn set_total_size<T: std::convert::Into<i32>>(mut self, v: T) -> Self {
2793 self.total_size = v.into();
2794 self
2795 }
2796}
2797
2798impl wkt::message::Message for ListSecretVersionsResponse {
2799 fn typename() -> &'static str {
2800 "type.googleapis.com/google.cloud.secretmanager.v1.ListSecretVersionsResponse"
2801 }
2802}
2803
2804#[doc(hidden)]
2805impl google_cloud_gax::paginator::internal::PageableResponse for ListSecretVersionsResponse {
2806 type PageItem = crate::model::SecretVersion;
2807
2808 fn items(self) -> std::vec::Vec<Self::PageItem> {
2809 self.versions
2810 }
2811
2812 fn next_page_token(&self) -> std::string::String {
2813 use std::clone::Clone;
2814 self.next_page_token.clone()
2815 }
2816}
2817
2818/// Request message for
2819/// [SecretManagerService.GetSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.GetSecretVersion].
2820///
2821/// [google.cloud.secretmanager.v1.SecretManagerService.GetSecretVersion]: crate::client::SecretManagerService::get_secret_version
2822#[derive(Clone, Default, PartialEq)]
2823#[non_exhaustive]
2824pub struct GetSecretVersionRequest {
2825 /// Required. The resource name of the
2826 /// [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] in the format
2827 /// `projects/*/secrets/*/versions/*` or
2828 /// `projects/*/locations/*/secrets/*/versions/*`.
2829 ///
2830 /// `projects/*/secrets/*/versions/latest` or
2831 /// `projects/*/locations/*/secrets/*/versions/latest` is an alias to the most
2832 /// recently created
2833 /// [SecretVersion][google.cloud.secretmanager.v1.SecretVersion].
2834 ///
2835 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
2836 pub name: std::string::String,
2837
2838 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
2839}
2840
2841impl GetSecretVersionRequest {
2842 pub fn new() -> Self {
2843 std::default::Default::default()
2844 }
2845
2846 /// Sets the value of [name][crate::model::GetSecretVersionRequest::name].
2847 ///
2848 /// # Example
2849 /// ```ignore,no_run
2850 /// # use google_cloud_secretmanager_v1::model::GetSecretVersionRequest;
2851 /// let x = GetSecretVersionRequest::new().set_name("example");
2852 /// ```
2853 pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
2854 self.name = v.into();
2855 self
2856 }
2857}
2858
2859impl wkt::message::Message for GetSecretVersionRequest {
2860 fn typename() -> &'static str {
2861 "type.googleapis.com/google.cloud.secretmanager.v1.GetSecretVersionRequest"
2862 }
2863}
2864
2865/// Request message for
2866/// [SecretManagerService.UpdateSecret][google.cloud.secretmanager.v1.SecretManagerService.UpdateSecret].
2867///
2868/// [google.cloud.secretmanager.v1.SecretManagerService.UpdateSecret]: crate::client::SecretManagerService::update_secret
2869#[derive(Clone, Default, PartialEq)]
2870#[non_exhaustive]
2871pub struct UpdateSecretRequest {
2872 /// Required. [Secret][google.cloud.secretmanager.v1.Secret] with updated field
2873 /// values.
2874 ///
2875 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
2876 pub secret: std::option::Option<crate::model::Secret>,
2877
2878 /// Required. Specifies the fields to be updated.
2879 pub update_mask: std::option::Option<wkt::FieldMask>,
2880
2881 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
2882}
2883
2884impl UpdateSecretRequest {
2885 pub fn new() -> Self {
2886 std::default::Default::default()
2887 }
2888
2889 /// Sets the value of [secret][crate::model::UpdateSecretRequest::secret].
2890 ///
2891 /// # Example
2892 /// ```ignore,no_run
2893 /// # use google_cloud_secretmanager_v1::model::UpdateSecretRequest;
2894 /// use google_cloud_secretmanager_v1::model::Secret;
2895 /// let x = UpdateSecretRequest::new().set_secret(Secret::default()/* use setters */);
2896 /// ```
2897 pub fn set_secret<T>(mut self, v: T) -> Self
2898 where
2899 T: std::convert::Into<crate::model::Secret>,
2900 {
2901 self.secret = std::option::Option::Some(v.into());
2902 self
2903 }
2904
2905 /// Sets or clears the value of [secret][crate::model::UpdateSecretRequest::secret].
2906 ///
2907 /// # Example
2908 /// ```ignore,no_run
2909 /// # use google_cloud_secretmanager_v1::model::UpdateSecretRequest;
2910 /// use google_cloud_secretmanager_v1::model::Secret;
2911 /// let x = UpdateSecretRequest::new().set_or_clear_secret(Some(Secret::default()/* use setters */));
2912 /// let x = UpdateSecretRequest::new().set_or_clear_secret(None::<Secret>);
2913 /// ```
2914 pub fn set_or_clear_secret<T>(mut self, v: std::option::Option<T>) -> Self
2915 where
2916 T: std::convert::Into<crate::model::Secret>,
2917 {
2918 self.secret = v.map(|x| x.into());
2919 self
2920 }
2921
2922 /// Sets the value of [update_mask][crate::model::UpdateSecretRequest::update_mask].
2923 ///
2924 /// # Example
2925 /// ```ignore,no_run
2926 /// # use google_cloud_secretmanager_v1::model::UpdateSecretRequest;
2927 /// use wkt::FieldMask;
2928 /// let x = UpdateSecretRequest::new().set_update_mask(FieldMask::default()/* use setters */);
2929 /// ```
2930 pub fn set_update_mask<T>(mut self, v: T) -> Self
2931 where
2932 T: std::convert::Into<wkt::FieldMask>,
2933 {
2934 self.update_mask = std::option::Option::Some(v.into());
2935 self
2936 }
2937
2938 /// Sets or clears the value of [update_mask][crate::model::UpdateSecretRequest::update_mask].
2939 ///
2940 /// # Example
2941 /// ```ignore,no_run
2942 /// # use google_cloud_secretmanager_v1::model::UpdateSecretRequest;
2943 /// use wkt::FieldMask;
2944 /// let x = UpdateSecretRequest::new().set_or_clear_update_mask(Some(FieldMask::default()/* use setters */));
2945 /// let x = UpdateSecretRequest::new().set_or_clear_update_mask(None::<FieldMask>);
2946 /// ```
2947 pub fn set_or_clear_update_mask<T>(mut self, v: std::option::Option<T>) -> Self
2948 where
2949 T: std::convert::Into<wkt::FieldMask>,
2950 {
2951 self.update_mask = v.map(|x| x.into());
2952 self
2953 }
2954}
2955
2956impl wkt::message::Message for UpdateSecretRequest {
2957 fn typename() -> &'static str {
2958 "type.googleapis.com/google.cloud.secretmanager.v1.UpdateSecretRequest"
2959 }
2960}
2961
2962/// Request message for
2963/// [SecretManagerService.AccessSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AccessSecretVersion].
2964///
2965/// [google.cloud.secretmanager.v1.SecretManagerService.AccessSecretVersion]: crate::client::SecretManagerService::access_secret_version
2966#[derive(Clone, Default, PartialEq)]
2967#[non_exhaustive]
2968pub struct AccessSecretVersionRequest {
2969 /// Required. The resource name of the
2970 /// [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] in the format
2971 /// `projects/*/secrets/*/versions/*` or
2972 /// `projects/*/locations/*/secrets/*/versions/*`.
2973 ///
2974 /// `projects/*/secrets/*/versions/latest` or
2975 /// `projects/*/locations/*/secrets/*/versions/latest` is an alias to the most
2976 /// recently created
2977 /// [SecretVersion][google.cloud.secretmanager.v1.SecretVersion].
2978 ///
2979 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
2980 pub name: std::string::String,
2981
2982 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
2983}
2984
2985impl AccessSecretVersionRequest {
2986 pub fn new() -> Self {
2987 std::default::Default::default()
2988 }
2989
2990 /// Sets the value of [name][crate::model::AccessSecretVersionRequest::name].
2991 ///
2992 /// # Example
2993 /// ```ignore,no_run
2994 /// # use google_cloud_secretmanager_v1::model::AccessSecretVersionRequest;
2995 /// let x = AccessSecretVersionRequest::new().set_name("example");
2996 /// ```
2997 pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
2998 self.name = v.into();
2999 self
3000 }
3001}
3002
3003impl wkt::message::Message for AccessSecretVersionRequest {
3004 fn typename() -> &'static str {
3005 "type.googleapis.com/google.cloud.secretmanager.v1.AccessSecretVersionRequest"
3006 }
3007}
3008
3009/// Response message for
3010/// [SecretManagerService.AccessSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AccessSecretVersion].
3011///
3012/// [google.cloud.secretmanager.v1.SecretManagerService.AccessSecretVersion]: crate::client::SecretManagerService::access_secret_version
3013#[derive(Clone, Default, PartialEq)]
3014#[non_exhaustive]
3015pub struct AccessSecretVersionResponse {
3016 /// The resource name of the
3017 /// [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] in the format
3018 /// `projects/*/secrets/*/versions/*` or
3019 /// `projects/*/locations/*/secrets/*/versions/*`.
3020 ///
3021 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
3022 pub name: std::string::String,
3023
3024 /// Secret payload
3025 pub payload: std::option::Option<crate::model::SecretPayload>,
3026
3027 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
3028}
3029
3030impl AccessSecretVersionResponse {
3031 pub fn new() -> Self {
3032 std::default::Default::default()
3033 }
3034
3035 /// Sets the value of [name][crate::model::AccessSecretVersionResponse::name].
3036 ///
3037 /// # Example
3038 /// ```ignore,no_run
3039 /// # use google_cloud_secretmanager_v1::model::AccessSecretVersionResponse;
3040 /// let x = AccessSecretVersionResponse::new().set_name("example");
3041 /// ```
3042 pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
3043 self.name = v.into();
3044 self
3045 }
3046
3047 /// Sets the value of [payload][crate::model::AccessSecretVersionResponse::payload].
3048 ///
3049 /// # Example
3050 /// ```ignore,no_run
3051 /// # use google_cloud_secretmanager_v1::model::AccessSecretVersionResponse;
3052 /// use google_cloud_secretmanager_v1::model::SecretPayload;
3053 /// let x = AccessSecretVersionResponse::new().set_payload(SecretPayload::default()/* use setters */);
3054 /// ```
3055 pub fn set_payload<T>(mut self, v: T) -> Self
3056 where
3057 T: std::convert::Into<crate::model::SecretPayload>,
3058 {
3059 self.payload = std::option::Option::Some(v.into());
3060 self
3061 }
3062
3063 /// Sets or clears the value of [payload][crate::model::AccessSecretVersionResponse::payload].
3064 ///
3065 /// # Example
3066 /// ```ignore,no_run
3067 /// # use google_cloud_secretmanager_v1::model::AccessSecretVersionResponse;
3068 /// use google_cloud_secretmanager_v1::model::SecretPayload;
3069 /// let x = AccessSecretVersionResponse::new().set_or_clear_payload(Some(SecretPayload::default()/* use setters */));
3070 /// let x = AccessSecretVersionResponse::new().set_or_clear_payload(None::<SecretPayload>);
3071 /// ```
3072 pub fn set_or_clear_payload<T>(mut self, v: std::option::Option<T>) -> Self
3073 where
3074 T: std::convert::Into<crate::model::SecretPayload>,
3075 {
3076 self.payload = v.map(|x| x.into());
3077 self
3078 }
3079}
3080
3081impl wkt::message::Message for AccessSecretVersionResponse {
3082 fn typename() -> &'static str {
3083 "type.googleapis.com/google.cloud.secretmanager.v1.AccessSecretVersionResponse"
3084 }
3085}
3086
3087/// Request message for
3088/// [SecretManagerService.DeleteSecret][google.cloud.secretmanager.v1.SecretManagerService.DeleteSecret].
3089///
3090/// [google.cloud.secretmanager.v1.SecretManagerService.DeleteSecret]: crate::client::SecretManagerService::delete_secret
3091#[derive(Clone, Default, PartialEq)]
3092#[non_exhaustive]
3093pub struct DeleteSecretRequest {
3094 /// Required. The resource name of the
3095 /// [Secret][google.cloud.secretmanager.v1.Secret] to delete in the format
3096 /// `projects/*/secrets/*`.
3097 ///
3098 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
3099 pub name: std::string::String,
3100
3101 /// Optional. Etag of the [Secret][google.cloud.secretmanager.v1.Secret]. The
3102 /// request succeeds if it matches the etag of the currently stored secret
3103 /// object. If the etag is omitted, the request succeeds.
3104 ///
3105 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
3106 pub etag: std::string::String,
3107
3108 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
3109}
3110
3111impl DeleteSecretRequest {
3112 pub fn new() -> Self {
3113 std::default::Default::default()
3114 }
3115
3116 /// Sets the value of [name][crate::model::DeleteSecretRequest::name].
3117 ///
3118 /// # Example
3119 /// ```ignore,no_run
3120 /// # use google_cloud_secretmanager_v1::model::DeleteSecretRequest;
3121 /// let x = DeleteSecretRequest::new().set_name("example");
3122 /// ```
3123 pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
3124 self.name = v.into();
3125 self
3126 }
3127
3128 /// Sets the value of [etag][crate::model::DeleteSecretRequest::etag].
3129 ///
3130 /// # Example
3131 /// ```ignore,no_run
3132 /// # use google_cloud_secretmanager_v1::model::DeleteSecretRequest;
3133 /// let x = DeleteSecretRequest::new().set_etag("example");
3134 /// ```
3135 pub fn set_etag<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
3136 self.etag = v.into();
3137 self
3138 }
3139}
3140
3141impl wkt::message::Message for DeleteSecretRequest {
3142 fn typename() -> &'static str {
3143 "type.googleapis.com/google.cloud.secretmanager.v1.DeleteSecretRequest"
3144 }
3145}
3146
3147/// Request message for
3148/// [SecretManagerService.DisableSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.DisableSecretVersion].
3149///
3150/// [google.cloud.secretmanager.v1.SecretManagerService.DisableSecretVersion]: crate::client::SecretManagerService::disable_secret_version
3151#[derive(Clone, Default, PartialEq)]
3152#[non_exhaustive]
3153pub struct DisableSecretVersionRequest {
3154 /// Required. The resource name of the
3155 /// [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] to disable in
3156 /// the format `projects/*/secrets/*/versions/*` or
3157 /// `projects/*/locations/*/secrets/*/versions/*`.
3158 ///
3159 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
3160 pub name: std::string::String,
3161
3162 /// Optional. Etag of the
3163 /// [SecretVersion][google.cloud.secretmanager.v1.SecretVersion]. The request
3164 /// succeeds if it matches the etag of the currently stored secret version
3165 /// object. If the etag is omitted, the request succeeds.
3166 ///
3167 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
3168 pub etag: std::string::String,
3169
3170 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
3171}
3172
3173impl DisableSecretVersionRequest {
3174 pub fn new() -> Self {
3175 std::default::Default::default()
3176 }
3177
3178 /// Sets the value of [name][crate::model::DisableSecretVersionRequest::name].
3179 ///
3180 /// # Example
3181 /// ```ignore,no_run
3182 /// # use google_cloud_secretmanager_v1::model::DisableSecretVersionRequest;
3183 /// let x = DisableSecretVersionRequest::new().set_name("example");
3184 /// ```
3185 pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
3186 self.name = v.into();
3187 self
3188 }
3189
3190 /// Sets the value of [etag][crate::model::DisableSecretVersionRequest::etag].
3191 ///
3192 /// # Example
3193 /// ```ignore,no_run
3194 /// # use google_cloud_secretmanager_v1::model::DisableSecretVersionRequest;
3195 /// let x = DisableSecretVersionRequest::new().set_etag("example");
3196 /// ```
3197 pub fn set_etag<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
3198 self.etag = v.into();
3199 self
3200 }
3201}
3202
3203impl wkt::message::Message for DisableSecretVersionRequest {
3204 fn typename() -> &'static str {
3205 "type.googleapis.com/google.cloud.secretmanager.v1.DisableSecretVersionRequest"
3206 }
3207}
3208
3209/// Request message for
3210/// [SecretManagerService.EnableSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.EnableSecretVersion].
3211///
3212/// [google.cloud.secretmanager.v1.SecretManagerService.EnableSecretVersion]: crate::client::SecretManagerService::enable_secret_version
3213#[derive(Clone, Default, PartialEq)]
3214#[non_exhaustive]
3215pub struct EnableSecretVersionRequest {
3216 /// Required. The resource name of the
3217 /// [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] to enable in
3218 /// the format `projects/*/secrets/*/versions/*` or
3219 /// `projects/*/locations/*/secrets/*/versions/*`.
3220 ///
3221 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
3222 pub name: std::string::String,
3223
3224 /// Optional. Etag of the
3225 /// [SecretVersion][google.cloud.secretmanager.v1.SecretVersion]. The request
3226 /// succeeds if it matches the etag of the currently stored secret version
3227 /// object. If the etag is omitted, the request succeeds.
3228 ///
3229 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
3230 pub etag: std::string::String,
3231
3232 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
3233}
3234
3235impl EnableSecretVersionRequest {
3236 pub fn new() -> Self {
3237 std::default::Default::default()
3238 }
3239
3240 /// Sets the value of [name][crate::model::EnableSecretVersionRequest::name].
3241 ///
3242 /// # Example
3243 /// ```ignore,no_run
3244 /// # use google_cloud_secretmanager_v1::model::EnableSecretVersionRequest;
3245 /// let x = EnableSecretVersionRequest::new().set_name("example");
3246 /// ```
3247 pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
3248 self.name = v.into();
3249 self
3250 }
3251
3252 /// Sets the value of [etag][crate::model::EnableSecretVersionRequest::etag].
3253 ///
3254 /// # Example
3255 /// ```ignore,no_run
3256 /// # use google_cloud_secretmanager_v1::model::EnableSecretVersionRequest;
3257 /// let x = EnableSecretVersionRequest::new().set_etag("example");
3258 /// ```
3259 pub fn set_etag<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
3260 self.etag = v.into();
3261 self
3262 }
3263}
3264
3265impl wkt::message::Message for EnableSecretVersionRequest {
3266 fn typename() -> &'static str {
3267 "type.googleapis.com/google.cloud.secretmanager.v1.EnableSecretVersionRequest"
3268 }
3269}
3270
3271/// Request message for
3272/// [SecretManagerService.DestroySecretVersion][google.cloud.secretmanager.v1.SecretManagerService.DestroySecretVersion].
3273///
3274/// [google.cloud.secretmanager.v1.SecretManagerService.DestroySecretVersion]: crate::client::SecretManagerService::destroy_secret_version
3275#[derive(Clone, Default, PartialEq)]
3276#[non_exhaustive]
3277pub struct DestroySecretVersionRequest {
3278 /// Required. The resource name of the
3279 /// [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] to destroy in
3280 /// the format `projects/*/secrets/*/versions/*` or
3281 /// `projects/*/locations/*/secrets/*/versions/*`.
3282 ///
3283 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
3284 pub name: std::string::String,
3285
3286 /// Optional. Etag of the
3287 /// [SecretVersion][google.cloud.secretmanager.v1.SecretVersion]. The request
3288 /// succeeds if it matches the etag of the currently stored secret version
3289 /// object. If the etag is omitted, the request succeeds.
3290 ///
3291 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
3292 pub etag: std::string::String,
3293
3294 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
3295}
3296
3297impl DestroySecretVersionRequest {
3298 pub fn new() -> Self {
3299 std::default::Default::default()
3300 }
3301
3302 /// Sets the value of [name][crate::model::DestroySecretVersionRequest::name].
3303 ///
3304 /// # Example
3305 /// ```ignore,no_run
3306 /// # use google_cloud_secretmanager_v1::model::DestroySecretVersionRequest;
3307 /// let x = DestroySecretVersionRequest::new().set_name("example");
3308 /// ```
3309 pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
3310 self.name = v.into();
3311 self
3312 }
3313
3314 /// Sets the value of [etag][crate::model::DestroySecretVersionRequest::etag].
3315 ///
3316 /// # Example
3317 /// ```ignore,no_run
3318 /// # use google_cloud_secretmanager_v1::model::DestroySecretVersionRequest;
3319 /// let x = DestroySecretVersionRequest::new().set_etag("example");
3320 /// ```
3321 pub fn set_etag<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
3322 self.etag = v.into();
3323 self
3324 }
3325}
3326
3327impl wkt::message::Message for DestroySecretVersionRequest {
3328 fn typename() -> &'static str {
3329 "type.googleapis.com/google.cloud.secretmanager.v1.DestroySecretVersionRequest"
3330 }
3331}