google_cloud_secretmanager_v1/client.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#![allow(rustdoc::bare_urls)]
17#![allow(rustdoc::broken_intra_doc_links)]
18#![allow(rustdoc::invalid_html_tags)]
19#![allow(rustdoc::redundant_explicit_links)]
20
21/// Implements a client for the Secret Manager API.
22///
23/// # Example
24/// ```
25/// # use google_cloud_secretmanager_v1::client::SecretManagerService;
26/// use google_cloud_gax::paginator::ItemPaginator as _;
27/// async fn sample(
28/// project_id: &str,
29/// ) -> anyhow::Result<()> {
30/// let client = SecretManagerService::builder().build().await?;
31/// let mut list = client.list_secrets()
32/// .set_parent(format!("projects/{project_id}"))
33/// .by_item();
34/// while let Some(item) = list.next().await.transpose()? {
35/// println!("{:?}", item);
36/// }
37/// Ok(())
38/// }
39/// ```
40///
41/// # Service Description
42///
43/// Secret Manager Service
44///
45/// Manages secrets and operations using those secrets. Implements a REST
46/// model with the following objects:
47///
48/// * [Secret][google.cloud.secretmanager.v1.Secret]
49/// * [SecretVersion][google.cloud.secretmanager.v1.SecretVersion]
50///
51/// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
52/// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
53///
54/// # Configuration
55///
56/// To configure `SecretManagerService` use the `with_*` methods in the type returned
57/// by [builder()][SecretManagerService::builder]. The default configuration should
58/// work for most applications. Common configuration changes include
59///
60/// * [with_endpoint()]: by default this client uses the global default endpoint
61/// (`https://secretmanager.googleapis.com`). Applications using regional
62/// endpoints or running in restricted networks (e.g. a network configured
63/// with [Private Google Access with VPC Service Controls]) may want to
64/// override this default.
65/// * [with_credentials()]: by default this client uses
66/// [Application Default Credentials]. Applications using custom
67/// authentication may need to override this default.
68///
69/// [with_endpoint()]: super::builder::secret_manager_service::ClientBuilder::with_endpoint
70/// [with_credentials()]: super::builder::secret_manager_service::ClientBuilder::with_credentials
71/// [Private Google Access with VPC Service Controls]: https://cloud.google.com/vpc-service-controls/docs/private-connectivity
72/// [Application Default Credentials]: https://cloud.google.com/docs/authentication#adc
73///
74/// # Pooling and Cloning
75///
76/// `SecretManagerService` holds a connection pool internally, it is advised to
77/// create one and reuse it. You do not need to wrap `SecretManagerService` in
78/// an [Rc](std::rc::Rc) or [Arc](std::sync::Arc) to reuse it, because it
79/// already uses an `Arc` internally.
80#[derive(Clone, Debug)]
81pub struct SecretManagerService {
82 inner: std::sync::Arc<dyn super::stub::dynamic::SecretManagerService>,
83}
84
85impl SecretManagerService {
86 /// Returns a builder for [SecretManagerService].
87 ///
88 /// ```
89 /// # async fn sample() -> google_cloud_gax::client_builder::Result<()> {
90 /// # use google_cloud_secretmanager_v1::client::SecretManagerService;
91 /// let client = SecretManagerService::builder().build().await?;
92 /// # Ok(()) }
93 /// ```
94 pub fn builder() -> super::builder::secret_manager_service::ClientBuilder {
95 crate::new_client_builder(super::builder::secret_manager_service::client::Factory)
96 }
97
98 /// Creates a new client from the provided stub.
99 ///
100 /// The most common case for calling this function is in tests mocking the
101 /// client's behavior.
102 pub fn from_stub<T>(stub: impl Into<std::sync::Arc<T>>) -> Self
103 where
104 T: super::stub::SecretManagerService + 'static,
105 {
106 Self { inner: stub.into() }
107 }
108
109 pub(crate) async fn new(
110 config: gaxi::options::ClientConfig,
111 ) -> crate::ClientBuilderResult<Self> {
112 let inner = Self::build_inner(config).await?;
113 Ok(Self { inner })
114 }
115
116 async fn build_inner(
117 conf: gaxi::options::ClientConfig,
118 ) -> crate::ClientBuilderResult<std::sync::Arc<dyn super::stub::dynamic::SecretManagerService>>
119 {
120 if gaxi::options::tracing_enabled(&conf) {
121 return Ok(std::sync::Arc::new(Self::build_with_tracing(conf).await?));
122 }
123 Ok(std::sync::Arc::new(Self::build_transport(conf).await?))
124 }
125
126 async fn build_transport(
127 conf: gaxi::options::ClientConfig,
128 ) -> crate::ClientBuilderResult<impl super::stub::SecretManagerService> {
129 super::transport::SecretManagerService::new(conf).await
130 }
131
132 async fn build_with_tracing(
133 conf: gaxi::options::ClientConfig,
134 ) -> crate::ClientBuilderResult<impl super::stub::SecretManagerService> {
135 Self::build_transport(conf)
136 .await
137 .map(super::tracing::SecretManagerService::new)
138 }
139
140 /// Lists [Secrets][google.cloud.secretmanager.v1.Secret].
141 ///
142 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
143 ///
144 /// # Example
145 /// ```
146 /// # use google_cloud_secretmanager_v1::client::SecretManagerService;
147 /// use google_cloud_gax::paginator::ItemPaginator as _;
148 /// use google_cloud_secretmanager_v1::Result;
149 /// async fn sample(
150 /// client: &SecretManagerService, project_id: &str
151 /// ) -> Result<()> {
152 /// let mut list = client.list_secrets()
153 /// .set_parent(format!("projects/{project_id}"))
154 /// .by_item();
155 /// while let Some(item) = list.next().await.transpose()? {
156 /// println!("{:?}", item);
157 /// }
158 /// Ok(())
159 /// }
160 /// ```
161 pub fn list_secrets(&self) -> super::builder::secret_manager_service::ListSecrets {
162 super::builder::secret_manager_service::ListSecrets::new(self.inner.clone())
163 }
164
165 /// Creates a new [Secret][google.cloud.secretmanager.v1.Secret] containing no
166 /// [SecretVersions][google.cloud.secretmanager.v1.SecretVersion].
167 ///
168 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
169 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
170 ///
171 /// # Example
172 /// ```
173 /// # use google_cloud_secretmanager_v1::client::SecretManagerService;
174 /// use google_cloud_secretmanager_v1::model::Secret;
175 /// use google_cloud_secretmanager_v1::Result;
176 /// async fn sample(
177 /// client: &SecretManagerService, project_id: &str
178 /// ) -> Result<()> {
179 /// let response = client.create_secret()
180 /// .set_parent(format!("projects/{project_id}"))
181 /// .set_secret_id("secret_id_value")
182 /// .set_secret(
183 /// Secret::new()/* set fields */
184 /// )
185 /// .send().await?;
186 /// println!("response {:?}", response);
187 /// Ok(())
188 /// }
189 /// ```
190 pub fn create_secret(&self) -> super::builder::secret_manager_service::CreateSecret {
191 super::builder::secret_manager_service::CreateSecret::new(self.inner.clone())
192 }
193
194 /// Creates a new [SecretVersion][google.cloud.secretmanager.v1.SecretVersion]
195 /// containing secret data and attaches it to an existing
196 /// [Secret][google.cloud.secretmanager.v1.Secret].
197 ///
198 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
199 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
200 ///
201 /// # Example
202 /// ```
203 /// # use google_cloud_secretmanager_v1::client::SecretManagerService;
204 /// use google_cloud_secretmanager_v1::Result;
205 /// async fn sample(
206 /// client: &SecretManagerService
207 /// ) -> Result<()> {
208 /// let response = client.add_secret_version()
209 /// /* set fields */
210 /// .send().await?;
211 /// println!("response {:?}", response);
212 /// Ok(())
213 /// }
214 /// ```
215 pub fn add_secret_version(&self) -> super::builder::secret_manager_service::AddSecretVersion {
216 super::builder::secret_manager_service::AddSecretVersion::new(self.inner.clone())
217 }
218
219 /// Gets metadata for a given [Secret][google.cloud.secretmanager.v1.Secret].
220 ///
221 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
222 ///
223 /// # Example
224 /// ```
225 /// # use google_cloud_secretmanager_v1::client::SecretManagerService;
226 /// use google_cloud_secretmanager_v1::Result;
227 /// async fn sample(
228 /// client: &SecretManagerService, project_id: &str, secret_id: &str
229 /// ) -> Result<()> {
230 /// let response = client.get_secret()
231 /// .set_name(format!("projects/{project_id}/secrets/{secret_id}"))
232 /// .send().await?;
233 /// println!("response {:?}", response);
234 /// Ok(())
235 /// }
236 /// ```
237 pub fn get_secret(&self) -> super::builder::secret_manager_service::GetSecret {
238 super::builder::secret_manager_service::GetSecret::new(self.inner.clone())
239 }
240
241 /// Updates metadata of an existing
242 /// [Secret][google.cloud.secretmanager.v1.Secret].
243 ///
244 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
245 ///
246 /// # Example
247 /// ```
248 /// # use google_cloud_secretmanager_v1::client::SecretManagerService;
249 /// # extern crate wkt as google_cloud_wkt;
250 /// use google_cloud_wkt::FieldMask;
251 /// use google_cloud_secretmanager_v1::model::Secret;
252 /// use google_cloud_secretmanager_v1::Result;
253 /// async fn sample(
254 /// client: &SecretManagerService, project_id: &str, secret_id: &str
255 /// ) -> Result<()> {
256 /// let response = client.update_secret()
257 /// .set_secret(
258 /// Secret::new().set_name(format!("projects/{project_id}/secrets/{secret_id}"))/* set fields */
259 /// )
260 /// .set_update_mask(FieldMask::default().set_paths(["updated.field.path1", "updated.field.path2"]))
261 /// .send().await?;
262 /// println!("response {:?}", response);
263 /// Ok(())
264 /// }
265 /// ```
266 pub fn update_secret(&self) -> super::builder::secret_manager_service::UpdateSecret {
267 super::builder::secret_manager_service::UpdateSecret::new(self.inner.clone())
268 }
269
270 /// Deletes a [Secret][google.cloud.secretmanager.v1.Secret].
271 ///
272 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
273 ///
274 /// # Example
275 /// ```
276 /// # use google_cloud_secretmanager_v1::client::SecretManagerService;
277 /// use google_cloud_secretmanager_v1::Result;
278 /// async fn sample(
279 /// client: &SecretManagerService, project_id: &str, secret_id: &str
280 /// ) -> Result<()> {
281 /// client.delete_secret()
282 /// .set_name(format!("projects/{project_id}/secrets/{secret_id}"))
283 /// .send().await?;
284 /// Ok(())
285 /// }
286 /// ```
287 pub fn delete_secret(&self) -> super::builder::secret_manager_service::DeleteSecret {
288 super::builder::secret_manager_service::DeleteSecret::new(self.inner.clone())
289 }
290
291 /// Lists [SecretVersions][google.cloud.secretmanager.v1.SecretVersion]. This
292 /// call does not return secret data.
293 ///
294 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
295 ///
296 /// # Example
297 /// ```
298 /// # use google_cloud_secretmanager_v1::client::SecretManagerService;
299 /// use google_cloud_gax::paginator::ItemPaginator as _;
300 /// use google_cloud_secretmanager_v1::Result;
301 /// async fn sample(
302 /// client: &SecretManagerService, project_id: &str, secret_id: &str
303 /// ) -> Result<()> {
304 /// let mut list = client.list_secret_versions()
305 /// .set_parent(format!("projects/{project_id}/secrets/{secret_id}"))
306 /// .by_item();
307 /// while let Some(item) = list.next().await.transpose()? {
308 /// println!("{:?}", item);
309 /// }
310 /// Ok(())
311 /// }
312 /// ```
313 pub fn list_secret_versions(
314 &self,
315 ) -> super::builder::secret_manager_service::ListSecretVersions {
316 super::builder::secret_manager_service::ListSecretVersions::new(self.inner.clone())
317 }
318
319 /// Gets metadata for a
320 /// [SecretVersion][google.cloud.secretmanager.v1.SecretVersion].
321 ///
322 /// `projects/*/secrets/*/versions/latest` is an alias to the most recently
323 /// created [SecretVersion][google.cloud.secretmanager.v1.SecretVersion].
324 ///
325 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
326 ///
327 /// # Example
328 /// ```
329 /// # use google_cloud_secretmanager_v1::client::SecretManagerService;
330 /// use google_cloud_secretmanager_v1::Result;
331 /// async fn sample(
332 /// client: &SecretManagerService, project_id: &str, secret_id: &str, secret_version_id: &str
333 /// ) -> Result<()> {
334 /// let response = client.get_secret_version()
335 /// .set_name(format!("projects/{project_id}/secrets/{secret_id}/versions/{secret_version_id}"))
336 /// .send().await?;
337 /// println!("response {:?}", response);
338 /// Ok(())
339 /// }
340 /// ```
341 pub fn get_secret_version(&self) -> super::builder::secret_manager_service::GetSecretVersion {
342 super::builder::secret_manager_service::GetSecretVersion::new(self.inner.clone())
343 }
344
345 /// Accesses a [SecretVersion][google.cloud.secretmanager.v1.SecretVersion].
346 /// This call returns the secret data.
347 ///
348 /// `projects/*/secrets/*/versions/latest` is an alias to the most recently
349 /// created [SecretVersion][google.cloud.secretmanager.v1.SecretVersion].
350 ///
351 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
352 ///
353 /// # Example
354 /// ```
355 /// # use google_cloud_secretmanager_v1::client::SecretManagerService;
356 /// use google_cloud_secretmanager_v1::Result;
357 /// async fn sample(
358 /// client: &SecretManagerService
359 /// ) -> Result<()> {
360 /// let response = client.access_secret_version()
361 /// /* set fields */
362 /// .send().await?;
363 /// println!("response {:?}", response);
364 /// Ok(())
365 /// }
366 /// ```
367 pub fn access_secret_version(
368 &self,
369 ) -> super::builder::secret_manager_service::AccessSecretVersion {
370 super::builder::secret_manager_service::AccessSecretVersion::new(self.inner.clone())
371 }
372
373 /// Disables a [SecretVersion][google.cloud.secretmanager.v1.SecretVersion].
374 ///
375 /// Sets the [state][google.cloud.secretmanager.v1.SecretVersion.state] of the
376 /// [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] to
377 /// [DISABLED][google.cloud.secretmanager.v1.SecretVersion.State.DISABLED].
378 ///
379 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
380 /// [google.cloud.secretmanager.v1.SecretVersion.State.DISABLED]: crate::model::secret_version::State::Disabled
381 /// [google.cloud.secretmanager.v1.SecretVersion.state]: crate::model::SecretVersion::state
382 ///
383 /// # Example
384 /// ```
385 /// # use google_cloud_secretmanager_v1::client::SecretManagerService;
386 /// use google_cloud_secretmanager_v1::Result;
387 /// async fn sample(
388 /// client: &SecretManagerService
389 /// ) -> Result<()> {
390 /// let response = client.disable_secret_version()
391 /// /* set fields */
392 /// .send().await?;
393 /// println!("response {:?}", response);
394 /// Ok(())
395 /// }
396 /// ```
397 pub fn disable_secret_version(
398 &self,
399 ) -> super::builder::secret_manager_service::DisableSecretVersion {
400 super::builder::secret_manager_service::DisableSecretVersion::new(self.inner.clone())
401 }
402
403 /// Enables a [SecretVersion][google.cloud.secretmanager.v1.SecretVersion].
404 ///
405 /// Sets the [state][google.cloud.secretmanager.v1.SecretVersion.state] of the
406 /// [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] to
407 /// [ENABLED][google.cloud.secretmanager.v1.SecretVersion.State.ENABLED].
408 ///
409 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
410 /// [google.cloud.secretmanager.v1.SecretVersion.State.ENABLED]: crate::model::secret_version::State::Enabled
411 /// [google.cloud.secretmanager.v1.SecretVersion.state]: crate::model::SecretVersion::state
412 ///
413 /// # Example
414 /// ```
415 /// # use google_cloud_secretmanager_v1::client::SecretManagerService;
416 /// use google_cloud_secretmanager_v1::Result;
417 /// async fn sample(
418 /// client: &SecretManagerService
419 /// ) -> Result<()> {
420 /// let response = client.enable_secret_version()
421 /// /* set fields */
422 /// .send().await?;
423 /// println!("response {:?}", response);
424 /// Ok(())
425 /// }
426 /// ```
427 pub fn enable_secret_version(
428 &self,
429 ) -> super::builder::secret_manager_service::EnableSecretVersion {
430 super::builder::secret_manager_service::EnableSecretVersion::new(self.inner.clone())
431 }
432
433 /// Destroys a [SecretVersion][google.cloud.secretmanager.v1.SecretVersion].
434 ///
435 /// Sets the [state][google.cloud.secretmanager.v1.SecretVersion.state] of the
436 /// [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] to
437 /// [DESTROYED][google.cloud.secretmanager.v1.SecretVersion.State.DESTROYED]
438 /// and irrevocably destroys the secret data.
439 ///
440 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
441 /// [google.cloud.secretmanager.v1.SecretVersion.State.DESTROYED]: crate::model::secret_version::State::Destroyed
442 /// [google.cloud.secretmanager.v1.SecretVersion.state]: crate::model::SecretVersion::state
443 ///
444 /// # Example
445 /// ```
446 /// # use google_cloud_secretmanager_v1::client::SecretManagerService;
447 /// use google_cloud_secretmanager_v1::Result;
448 /// async fn sample(
449 /// client: &SecretManagerService
450 /// ) -> Result<()> {
451 /// let response = client.destroy_secret_version()
452 /// /* set fields */
453 /// .send().await?;
454 /// println!("response {:?}", response);
455 /// Ok(())
456 /// }
457 /// ```
458 pub fn destroy_secret_version(
459 &self,
460 ) -> super::builder::secret_manager_service::DestroySecretVersion {
461 super::builder::secret_manager_service::DestroySecretVersion::new(self.inner.clone())
462 }
463
464 /// Sets the access control policy on the specified secret. Replaces any
465 /// existing policy.
466 ///
467 /// Permissions on
468 /// [SecretVersions][google.cloud.secretmanager.v1.SecretVersion] are enforced
469 /// according to the policy set on the associated
470 /// [Secret][google.cloud.secretmanager.v1.Secret].
471 ///
472 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
473 /// [google.cloud.secretmanager.v1.SecretVersion]: crate::model::SecretVersion
474 ///
475 /// # Example
476 /// ```
477 /// # use google_cloud_secretmanager_v1::client::SecretManagerService;
478 /// use google_cloud_secretmanager_v1::Result;
479 /// async fn sample(
480 /// client: &SecretManagerService
481 /// ) -> Result<()> {
482 /// let response = client.set_iam_policy()
483 /// /* set fields */
484 /// .send().await?;
485 /// println!("response {:?}", response);
486 /// Ok(())
487 /// }
488 /// ```
489 pub fn set_iam_policy(&self) -> super::builder::secret_manager_service::SetIamPolicy {
490 super::builder::secret_manager_service::SetIamPolicy::new(self.inner.clone())
491 }
492
493 /// Gets the access control policy for a secret.
494 /// Returns empty policy if the secret exists and does not have a policy set.
495 ///
496 /// # Example
497 /// ```
498 /// # use google_cloud_secretmanager_v1::client::SecretManagerService;
499 /// use google_cloud_secretmanager_v1::Result;
500 /// async fn sample(
501 /// client: &SecretManagerService
502 /// ) -> Result<()> {
503 /// let response = client.get_iam_policy()
504 /// /* set fields */
505 /// .send().await?;
506 /// println!("response {:?}", response);
507 /// Ok(())
508 /// }
509 /// ```
510 pub fn get_iam_policy(&self) -> super::builder::secret_manager_service::GetIamPolicy {
511 super::builder::secret_manager_service::GetIamPolicy::new(self.inner.clone())
512 }
513
514 /// Returns permissions that a caller has for the specified secret.
515 /// If the secret does not exist, this call returns an empty set of
516 /// permissions, not a NOT_FOUND error.
517 ///
518 /// Note: This operation is designed to be used for building permission-aware
519 /// UIs and command-line tools, not for authorization checking. This operation
520 /// may "fail open" without warning.
521 ///
522 /// # Example
523 /// ```
524 /// # use google_cloud_secretmanager_v1::client::SecretManagerService;
525 /// use google_cloud_secretmanager_v1::Result;
526 /// async fn sample(
527 /// client: &SecretManagerService
528 /// ) -> Result<()> {
529 /// let response = client.test_iam_permissions()
530 /// /* set fields */
531 /// .send().await?;
532 /// println!("response {:?}", response);
533 /// Ok(())
534 /// }
535 /// ```
536 pub fn test_iam_permissions(
537 &self,
538 ) -> super::builder::secret_manager_service::TestIamPermissions {
539 super::builder::secret_manager_service::TestIamPermissions::new(self.inner.clone())
540 }
541
542 /// Enables the managed rotation feature for a
543 /// [Secret][google.cloud.secretmanager.v1.Secret]. This method can only be
544 /// triggered once for a secret. In order to do further rotations, RotateSecret
545 /// should be used. This method will add a secret version and update the
546 /// password in Cloud SQL.
547 ///
548 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
549 ///
550 /// # Example
551 /// ```
552 /// # use google_cloud_secretmanager_v1::client::SecretManagerService;
553 /// use google_cloud_secretmanager_v1::Result;
554 /// async fn sample(
555 /// client: &SecretManagerService
556 /// ) -> Result<()> {
557 /// let response = client.enable_managed_rotation()
558 /// /* set fields */
559 /// .send().await?;
560 /// println!("response {:?}", response);
561 /// Ok(())
562 /// }
563 /// ```
564 pub fn enable_managed_rotation(
565 &self,
566 ) -> super::builder::secret_manager_service::EnableManagedRotation {
567 super::builder::secret_manager_service::EnableManagedRotation::new(self.inner.clone())
568 }
569
570 /// Do a managed rotation for a [Secret][google.cloud.secretmanager.v1.Secret].
571 /// This can only be triggered after Managed rotation has been enabled.
572 /// This method will add a secret version and update the password in Cloud SQL.
573 ///
574 /// [google.cloud.secretmanager.v1.Secret]: crate::model::Secret
575 ///
576 /// # Example
577 /// ```
578 /// # use google_cloud_secretmanager_v1::client::SecretManagerService;
579 /// use google_cloud_secretmanager_v1::Result;
580 /// async fn sample(
581 /// client: &SecretManagerService
582 /// ) -> Result<()> {
583 /// let response = client.rotate_secret()
584 /// /* set fields */
585 /// .send().await?;
586 /// println!("response {:?}", response);
587 /// Ok(())
588 /// }
589 /// ```
590 pub fn rotate_secret(&self) -> super::builder::secret_manager_service::RotateSecret {
591 super::builder::secret_manager_service::RotateSecret::new(self.inner.clone())
592 }
593
594 /// Lists information about the supported locations for this service.
595 ///
596 /// # Example
597 /// ```
598 /// # use google_cloud_secretmanager_v1::client::SecretManagerService;
599 /// use google_cloud_gax::paginator::ItemPaginator as _;
600 /// use google_cloud_secretmanager_v1::Result;
601 /// async fn sample(
602 /// client: &SecretManagerService
603 /// ) -> Result<()> {
604 /// let mut list = client.list_locations()
605 /// /* set fields */
606 /// .by_item();
607 /// while let Some(item) = list.next().await.transpose()? {
608 /// println!("{:?}", item);
609 /// }
610 /// Ok(())
611 /// }
612 /// ```
613 pub fn list_locations(&self) -> super::builder::secret_manager_service::ListLocations {
614 super::builder::secret_manager_service::ListLocations::new(self.inner.clone())
615 }
616
617 /// Gets information about a location.
618 ///
619 /// # Example
620 /// ```
621 /// # use google_cloud_secretmanager_v1::client::SecretManagerService;
622 /// use google_cloud_secretmanager_v1::Result;
623 /// async fn sample(
624 /// client: &SecretManagerService
625 /// ) -> Result<()> {
626 /// let response = client.get_location()
627 /// /* set fields */
628 /// .send().await?;
629 /// println!("response {:?}", response);
630 /// Ok(())
631 /// }
632 /// ```
633 pub fn get_location(&self) -> super::builder::secret_manager_service::GetLocation {
634 super::builder::secret_manager_service::GetLocation::new(self.inner.clone())
635 }
636}