Skip to main content

google_cloud_agentidentity_v1/
client.rs

1// Copyright 2026 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 Agent Identity API.
22///
23/// # Example
24/// ```
25/// # use google_cloud_agentidentity_v1::client::AuthProviderService;
26/// use google_cloud_gax::paginator::ItemPaginator as _;
27/// async fn sample(
28///    project_id: &str,
29///    location_id: &str,
30/// ) -> anyhow::Result<()> {
31///     let client = AuthProviderService::builder().build().await?;
32///     let mut list = client.list_auth_providers()
33///         .set_parent(format!("projects/{project_id}/locations/{location_id}"))
34///         .by_item();
35///     while let Some(item) = list.next().await.transpose()? {
36///         println!("{:?}", item);
37///     }
38///     Ok(())
39/// }
40/// ```
41///
42/// # Service Description
43///
44/// Service describing handlers for resources
45///
46/// # Configuration
47///
48/// To configure `AuthProviderService` use the `with_*` methods in the type returned
49/// by [builder()][AuthProviderService::builder]. The default configuration should
50/// work for most applications. Common configuration changes include
51///
52/// * [with_endpoint()]: by default this client uses the global default endpoint
53///   (`https://agentidentity.googleapis.com`). Applications using regional
54///   endpoints or running in restricted networks (e.g. a network configured
55///   with [Private Google Access with VPC Service Controls]) may want to
56///   override this default.
57/// * [with_credentials()]: by default this client uses
58///   [Application Default Credentials]. Applications using custom
59///   authentication may need to override this default.
60///
61/// [with_endpoint()]: super::builder::auth_provider_service::ClientBuilder::with_endpoint
62/// [with_credentials()]: super::builder::auth_provider_service::ClientBuilder::with_credentials
63/// [Private Google Access with VPC Service Controls]: https://cloud.google.com/vpc-service-controls/docs/private-connectivity
64/// [Application Default Credentials]: https://cloud.google.com/docs/authentication#adc
65///
66/// # Pooling and Cloning
67///
68/// `AuthProviderService` holds a connection pool internally, it is advised to
69/// create one and reuse it. You do not need to wrap `AuthProviderService` in
70/// an [Rc](std::rc::Rc) or [Arc](std::sync::Arc) to reuse it, because it
71/// already uses an `Arc` internally.
72#[derive(Clone, Debug)]
73pub struct AuthProviderService {
74    inner: std::sync::Arc<dyn super::stub::dynamic::AuthProviderService>,
75}
76
77impl AuthProviderService {
78    /// Returns a builder for [AuthProviderService].
79    ///
80    /// ```
81    /// # async fn sample() -> google_cloud_gax::client_builder::Result<()> {
82    /// # use google_cloud_agentidentity_v1::client::AuthProviderService;
83    /// let client = AuthProviderService::builder().build().await?;
84    /// # Ok(()) }
85    /// ```
86    pub fn builder() -> super::builder::auth_provider_service::ClientBuilder {
87        crate::new_client_builder(super::builder::auth_provider_service::client::Factory)
88    }
89
90    /// Creates a new client from the provided stub.
91    ///
92    /// The most common case for calling this function is in tests mocking the
93    /// client's behavior.
94    pub fn from_stub<T>(stub: impl Into<std::sync::Arc<T>>) -> Self
95    where
96        T: super::stub::AuthProviderService + 'static,
97    {
98        Self { inner: stub.into() }
99    }
100
101    pub(crate) async fn new(
102        config: gaxi::options::ClientConfig,
103    ) -> crate::ClientBuilderResult<Self> {
104        let inner = Self::build_inner(config).await?;
105        Ok(Self { inner })
106    }
107
108    async fn build_inner(
109        conf: gaxi::options::ClientConfig,
110    ) -> crate::ClientBuilderResult<std::sync::Arc<dyn super::stub::dynamic::AuthProviderService>>
111    {
112        if gaxi::options::tracing_enabled(&conf) {
113            return Ok(std::sync::Arc::new(Self::build_with_tracing(conf).await?));
114        }
115        Ok(std::sync::Arc::new(Self::build_transport(conf).await?))
116    }
117
118    async fn build_transport(
119        conf: gaxi::options::ClientConfig,
120    ) -> crate::ClientBuilderResult<impl super::stub::AuthProviderService> {
121        super::transport::AuthProviderService::new(conf).await
122    }
123
124    async fn build_with_tracing(
125        conf: gaxi::options::ClientConfig,
126    ) -> crate::ClientBuilderResult<impl super::stub::AuthProviderService> {
127        Self::build_transport(conf)
128            .await
129            .map(super::tracing::AuthProviderService::new)
130    }
131
132    /// Lists AuthProviders in a given project and location.
133    ///
134    /// # Example
135    /// ```
136    /// # use google_cloud_agentidentity_v1::client::AuthProviderService;
137    /// use google_cloud_gax::paginator::ItemPaginator as _;
138    /// use google_cloud_agentidentity_v1::Result;
139    /// async fn sample(
140    ///    client: &AuthProviderService, project_id: &str, location_id: &str
141    /// ) -> Result<()> {
142    ///     let mut list = client.list_auth_providers()
143    ///         .set_parent(format!("projects/{project_id}/locations/{location_id}"))
144    ///         .by_item();
145    ///     while let Some(item) = list.next().await.transpose()? {
146    ///         println!("{:?}", item);
147    ///     }
148    ///     Ok(())
149    /// }
150    /// ```
151    pub fn list_auth_providers(&self) -> super::builder::auth_provider_service::ListAuthProviders {
152        super::builder::auth_provider_service::ListAuthProviders::new(self.inner.clone())
153    }
154
155    /// Gets details of a single AuthProvider.
156    ///
157    /// # Example
158    /// ```
159    /// # use google_cloud_agentidentity_v1::client::AuthProviderService;
160    /// use google_cloud_agentidentity_v1::Result;
161    /// async fn sample(
162    ///    client: &AuthProviderService, project_id: &str, location_id: &str, auth_provider_id: &str
163    /// ) -> Result<()> {
164    ///     let response = client.get_auth_provider()
165    ///         .set_name(format!("projects/{project_id}/locations/{location_id}/authProviders/{auth_provider_id}"))
166    ///         .send().await?;
167    ///     println!("response {:?}", response);
168    ///     Ok(())
169    /// }
170    /// ```
171    pub fn get_auth_provider(&self) -> super::builder::auth_provider_service::GetAuthProvider {
172        super::builder::auth_provider_service::GetAuthProvider::new(self.inner.clone())
173    }
174
175    /// Creates a new AuthProvider in a given project and location.
176    ///
177    /// # Example
178    /// ```
179    /// # use google_cloud_agentidentity_v1::client::AuthProviderService;
180    /// use google_cloud_agentidentity_v1::model::AuthProvider;
181    /// use google_cloud_agentidentity_v1::Result;
182    /// async fn sample(
183    ///    client: &AuthProviderService, project_id: &str, location_id: &str
184    /// ) -> Result<()> {
185    ///     let response = client.create_auth_provider()
186    ///         .set_parent(format!("projects/{project_id}/locations/{location_id}"))
187    ///         .set_auth_provider(
188    ///             AuthProvider::new()/* set fields */
189    ///         )
190    ///         .send().await?;
191    ///     println!("response {:?}", response);
192    ///     Ok(())
193    /// }
194    /// ```
195    pub fn create_auth_provider(
196        &self,
197    ) -> super::builder::auth_provider_service::CreateAuthProvider {
198        super::builder::auth_provider_service::CreateAuthProvider::new(self.inner.clone())
199    }
200
201    /// Updates the parameters of a single AuthProvider.
202    ///
203    /// # Example
204    /// ```
205    /// # use google_cloud_agentidentity_v1::client::AuthProviderService;
206    /// # extern crate wkt as google_cloud_wkt;
207    /// use google_cloud_wkt::FieldMask;
208    /// use google_cloud_agentidentity_v1::model::AuthProvider;
209    /// use google_cloud_agentidentity_v1::Result;
210    /// async fn sample(
211    ///    client: &AuthProviderService, project_id: &str, location_id: &str, auth_provider_id: &str
212    /// ) -> Result<()> {
213    ///     let response = client.update_auth_provider()
214    ///         .set_auth_provider(
215    ///             AuthProvider::new().set_name(format!("projects/{project_id}/locations/{location_id}/authProviders/{auth_provider_id}"))/* set fields */
216    ///         )
217    ///         .set_update_mask(FieldMask::default().set_paths(["updated.field.path1", "updated.field.path2"]))
218    ///         .send().await?;
219    ///     println!("response {:?}", response);
220    ///     Ok(())
221    /// }
222    /// ```
223    pub fn update_auth_provider(
224        &self,
225    ) -> super::builder::auth_provider_service::UpdateAuthProvider {
226        super::builder::auth_provider_service::UpdateAuthProvider::new(self.inner.clone())
227    }
228
229    /// Deletes a single AuthProvider.
230    ///
231    /// # Example
232    /// ```
233    /// # use google_cloud_agentidentity_v1::client::AuthProviderService;
234    /// use google_cloud_agentidentity_v1::Result;
235    /// async fn sample(
236    ///    client: &AuthProviderService, project_id: &str, location_id: &str, auth_provider_id: &str
237    /// ) -> Result<()> {
238    ///     client.delete_auth_provider()
239    ///         .set_name(format!("projects/{project_id}/locations/{location_id}/authProviders/{auth_provider_id}"))
240    ///         .send().await?;
241    ///     Ok(())
242    /// }
243    /// ```
244    pub fn delete_auth_provider(
245        &self,
246    ) -> super::builder::auth_provider_service::DeleteAuthProvider {
247        super::builder::auth_provider_service::DeleteAuthProvider::new(self.inner.clone())
248    }
249
250    /// Undeletes a single AuthProvider.
251    ///
252    /// # Example
253    /// ```
254    /// # use google_cloud_agentidentity_v1::client::AuthProviderService;
255    /// use google_cloud_agentidentity_v1::Result;
256    /// async fn sample(
257    ///    client: &AuthProviderService, project_id: &str, location_id: &str, auth_provider_id: &str
258    /// ) -> Result<()> {
259    ///     let response = client.undelete_auth_provider()
260    ///         .set_name(format!("projects/{project_id}/locations/{location_id}/authProviders/{auth_provider_id}"))
261    ///         .send().await?;
262    ///     println!("response {:?}", response);
263    ///     Ok(())
264    /// }
265    /// ```
266    pub fn undelete_auth_provider(
267        &self,
268    ) -> super::builder::auth_provider_service::UndeleteAuthProvider {
269        super::builder::auth_provider_service::UndeleteAuthProvider::new(self.inner.clone())
270    }
271
272    /// Queries what all auth_providers are used by a given workload_id.
273    ///
274    /// # Example
275    /// ```
276    /// # use google_cloud_agentidentity_v1::client::AuthProviderService;
277    /// use google_cloud_agentidentity_v1::Result;
278    /// async fn sample(
279    ///    client: &AuthProviderService
280    /// ) -> Result<()> {
281    ///     let response = client.query_auth_providers()
282    ///         /* set fields */
283    ///         .send().await?;
284    ///     println!("response {:?}", response);
285    ///     Ok(())
286    /// }
287    /// ```
288    pub fn query_auth_providers(
289        &self,
290    ) -> super::builder::auth_provider_service::QueryAuthProviders {
291        super::builder::auth_provider_service::QueryAuthProviders::new(self.inner.clone())
292    }
293
294    /// Queries what all workloads are using a given auth_provider.
295    ///
296    /// # Example
297    /// ```
298    /// # use google_cloud_agentidentity_v1::client::AuthProviderService;
299    /// use google_cloud_agentidentity_v1::Result;
300    /// async fn sample(
301    ///    client: &AuthProviderService
302    /// ) -> Result<()> {
303    ///     let response = client.query_workloads()
304    ///         /* set fields */
305    ///         .send().await?;
306    ///     println!("response {:?}", response);
307    ///     Ok(())
308    /// }
309    /// ```
310    pub fn query_workloads(&self) -> super::builder::auth_provider_service::QueryWorkloads {
311        super::builder::auth_provider_service::QueryWorkloads::new(self.inner.clone())
312    }
313
314    /// Lists Authorizations in a given project and location.
315    ///
316    /// # Example
317    /// ```
318    /// # use google_cloud_agentidentity_v1::client::AuthProviderService;
319    /// use google_cloud_gax::paginator::ItemPaginator as _;
320    /// use google_cloud_agentidentity_v1::Result;
321    /// async fn sample(
322    ///    client: &AuthProviderService, project_id: &str, location_id: &str, auth_provider_id: &str
323    /// ) -> Result<()> {
324    ///     let mut list = client.list_authorizations()
325    ///         .set_parent(format!("projects/{project_id}/locations/{location_id}/authProviders/{auth_provider_id}"))
326    ///         .by_item();
327    ///     while let Some(item) = list.next().await.transpose()? {
328    ///         println!("{:?}", item);
329    ///     }
330    ///     Ok(())
331    /// }
332    /// ```
333    pub fn list_authorizations(&self) -> super::builder::auth_provider_service::ListAuthorizations {
334        super::builder::auth_provider_service::ListAuthorizations::new(self.inner.clone())
335    }
336
337    /// Gets details of a single Authorization.
338    ///
339    /// # Example
340    /// ```
341    /// # use google_cloud_agentidentity_v1::client::AuthProviderService;
342    /// use google_cloud_agentidentity_v1::Result;
343    /// async fn sample(
344    ///    client: &AuthProviderService, project_id: &str, location_id: &str, auth_provider_id: &str, authorization_id: &str
345    /// ) -> Result<()> {
346    ///     let response = client.get_authorization()
347    ///         .set_name(format!("projects/{project_id}/locations/{location_id}/authProviders/{auth_provider_id}/authorizations/{authorization_id}"))
348    ///         .send().await?;
349    ///     println!("response {:?}", response);
350    ///     Ok(())
351    /// }
352    /// ```
353    pub fn get_authorization(&self) -> super::builder::auth_provider_service::GetAuthorization {
354        super::builder::auth_provider_service::GetAuthorization::new(self.inner.clone())
355    }
356
357    /// Deletes a single Authorization.
358    ///
359    /// # Example
360    /// ```
361    /// # use google_cloud_agentidentity_v1::client::AuthProviderService;
362    /// use google_cloud_agentidentity_v1::Result;
363    /// async fn sample(
364    ///    client: &AuthProviderService, project_id: &str, location_id: &str, auth_provider_id: &str, authorization_id: &str
365    /// ) -> Result<()> {
366    ///     client.delete_authorization()
367    ///         .set_name(format!("projects/{project_id}/locations/{location_id}/authProviders/{auth_provider_id}/authorizations/{authorization_id}"))
368    ///         .send().await?;
369    ///     Ok(())
370    /// }
371    /// ```
372    pub fn delete_authorization(
373        &self,
374    ) -> super::builder::auth_provider_service::DeleteAuthorization {
375        super::builder::auth_provider_service::DeleteAuthorization::new(self.inner.clone())
376    }
377
378    /// Lists AccessSummaries in a given project and location.
379    /// Supported Filters:
380    ///
381    /// - `workload_id`: Filter by the SPIFFE ID of the agent.
382    ///   Example: `workload_id="spiffe://example.com/ns/default/sa/my-agent"`
383    ///
384    /// # Example
385    /// ```
386    /// # use google_cloud_agentidentity_v1::client::AuthProviderService;
387    /// use google_cloud_gax::paginator::ItemPaginator as _;
388    /// use google_cloud_agentidentity_v1::Result;
389    /// async fn sample(
390    ///    client: &AuthProviderService, project_id: &str, location_id: &str
391    /// ) -> Result<()> {
392    ///     let mut list = client.list_access_summaries()
393    ///         .set_parent(format!("projects/{project_id}/locations/{location_id}"))
394    ///         .by_item();
395    ///     while let Some(item) = list.next().await.transpose()? {
396    ///         println!("{:?}", item);
397    ///     }
398    ///     Ok(())
399    /// }
400    /// ```
401    pub fn list_access_summaries(
402        &self,
403    ) -> super::builder::auth_provider_service::ListAccessSummaries {
404        super::builder::auth_provider_service::ListAccessSummaries::new(self.inner.clone())
405    }
406
407    /// Gets details of a single AccessSummary.
408    ///
409    /// # Example
410    /// ```
411    /// # use google_cloud_agentidentity_v1::client::AuthProviderService;
412    /// use google_cloud_agentidentity_v1::Result;
413    /// async fn sample(
414    ///    client: &AuthProviderService, project_id: &str, location_id: &str, access_summary_id: &str
415    /// ) -> Result<()> {
416    ///     let response = client.get_access_summary()
417    ///         .set_name(format!("projects/{project_id}/locations/{location_id}/accessSummaries/{access_summary_id}"))
418    ///         .send().await?;
419    ///     println!("response {:?}", response);
420    ///     Ok(())
421    /// }
422    /// ```
423    pub fn get_access_summary(&self) -> super::builder::auth_provider_service::GetAccessSummary {
424        super::builder::auth_provider_service::GetAccessSummary::new(self.inner.clone())
425    }
426
427    /// Revokes all authorizations for a specific user on an AuthProvider.
428    /// This deletes all authorization records associated with the user and
429    /// AuthProvider, effectively revoking access across all agents.
430    ///
431    /// # Example
432    /// ```
433    /// # use google_cloud_agentidentity_v1::client::AuthProviderService;
434    /// use google_cloud_agentidentity_v1::Result;
435    /// async fn sample(
436    ///    client: &AuthProviderService
437    /// ) -> Result<()> {
438    ///     let response = client.revoke_authorization()
439    ///         /* set fields */
440    ///         .send().await?;
441    ///     println!("response {:?}", response);
442    ///     Ok(())
443    /// }
444    /// ```
445    pub fn revoke_authorization(
446        &self,
447    ) -> super::builder::auth_provider_service::RevokeAuthorization {
448        super::builder::auth_provider_service::RevokeAuthorization::new(self.inner.clone())
449    }
450
451    /// Enables a single AuthProvider.
452    ///
453    /// # Example
454    /// ```
455    /// # use google_cloud_agentidentity_v1::client::AuthProviderService;
456    /// use google_cloud_agentidentity_v1::Result;
457    /// async fn sample(
458    ///    client: &AuthProviderService
459    /// ) -> Result<()> {
460    ///     let response = client.enable_auth_provider()
461    ///         /* set fields */
462    ///         .send().await?;
463    ///     println!("response {:?}", response);
464    ///     Ok(())
465    /// }
466    /// ```
467    pub fn enable_auth_provider(
468        &self,
469    ) -> super::builder::auth_provider_service::EnableAuthProvider {
470        super::builder::auth_provider_service::EnableAuthProvider::new(self.inner.clone())
471    }
472
473    /// Disables a single AuthProvider.
474    ///
475    /// # Example
476    /// ```
477    /// # use google_cloud_agentidentity_v1::client::AuthProviderService;
478    /// use google_cloud_agentidentity_v1::Result;
479    /// async fn sample(
480    ///    client: &AuthProviderService
481    /// ) -> Result<()> {
482    ///     let response = client.disable_auth_provider()
483    ///         /* set fields */
484    ///         .send().await?;
485    ///     println!("response {:?}", response);
486    ///     Ok(())
487    /// }
488    /// ```
489    pub fn disable_auth_provider(
490        &self,
491    ) -> super::builder::auth_provider_service::DisableAuthProvider {
492        super::builder::auth_provider_service::DisableAuthProvider::new(self.inner.clone())
493    }
494
495    /// Lists information about the supported locations for this service.
496    ///
497    /// This method lists locations based on the resource scope provided in
498    /// the [ListLocationsRequest.name][google.cloud.location.ListLocationsRequest.name] field: *
499    /// **Global locations**: If `name` is empty, the method lists the
500    /// public locations available to all projects. * **Project-specific
501    /// locations**: If `name` follows the format
502    /// `projects/{project}`, the method lists locations visible to that
503    /// specific project. This includes public, private, or other
504    /// project-specific locations enabled for the project.
505    ///
506    /// For gRPC and client library implementations, the resource name is
507    /// passed as the `name` field. For direct service calls, the resource
508    /// name is
509    /// incorporated into the request path based on the specific service
510    /// implementation and version.
511    ///
512    /// [google.cloud.location.ListLocationsRequest.name]: google_cloud_location::model::ListLocationsRequest::name
513    ///
514    /// # Example
515    /// ```
516    /// # use google_cloud_agentidentity_v1::client::AuthProviderService;
517    /// use google_cloud_gax::paginator::ItemPaginator as _;
518    /// use google_cloud_agentidentity_v1::Result;
519    /// async fn sample(
520    ///    client: &AuthProviderService
521    /// ) -> Result<()> {
522    ///     let mut list = client.list_locations()
523    ///         /* set fields */
524    ///         .by_item();
525    ///     while let Some(item) = list.next().await.transpose()? {
526    ///         println!("{:?}", item);
527    ///     }
528    ///     Ok(())
529    /// }
530    /// ```
531    pub fn list_locations(&self) -> super::builder::auth_provider_service::ListLocations {
532        super::builder::auth_provider_service::ListLocations::new(self.inner.clone())
533    }
534
535    /// Gets information about a location.
536    ///
537    /// # Example
538    /// ```
539    /// # use google_cloud_agentidentity_v1::client::AuthProviderService;
540    /// use google_cloud_agentidentity_v1::Result;
541    /// async fn sample(
542    ///    client: &AuthProviderService
543    /// ) -> Result<()> {
544    ///     let response = client.get_location()
545    ///         /* set fields */
546    ///         .send().await?;
547    ///     println!("response {:?}", response);
548    ///     Ok(())
549    /// }
550    /// ```
551    pub fn get_location(&self) -> super::builder::auth_provider_service::GetLocation {
552        super::builder::auth_provider_service::GetLocation::new(self.inner.clone())
553    }
554
555    /// Sets the access control policy on the specified resource. Replaces
556    /// any existing policy.
557    ///
558    /// Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`
559    /// errors.
560    ///
561    /// # Example
562    /// ```
563    /// # use google_cloud_agentidentity_v1::client::AuthProviderService;
564    /// use google_cloud_agentidentity_v1::Result;
565    /// async fn sample(
566    ///    client: &AuthProviderService
567    /// ) -> Result<()> {
568    ///     let response = client.set_iam_policy()
569    ///         /* set fields */
570    ///         .send().await?;
571    ///     println!("response {:?}", response);
572    ///     Ok(())
573    /// }
574    /// ```
575    pub fn set_iam_policy(&self) -> super::builder::auth_provider_service::SetIamPolicy {
576        super::builder::auth_provider_service::SetIamPolicy::new(self.inner.clone())
577    }
578
579    /// Gets the access control policy for a resource. Returns an empty policy
580    /// if the resource exists and does not have a policy set.
581    ///
582    /// # Example
583    /// ```
584    /// # use google_cloud_agentidentity_v1::client::AuthProviderService;
585    /// use google_cloud_agentidentity_v1::Result;
586    /// async fn sample(
587    ///    client: &AuthProviderService
588    /// ) -> Result<()> {
589    ///     let response = client.get_iam_policy()
590    ///         /* set fields */
591    ///         .send().await?;
592    ///     println!("response {:?}", response);
593    ///     Ok(())
594    /// }
595    /// ```
596    pub fn get_iam_policy(&self) -> super::builder::auth_provider_service::GetIamPolicy {
597        super::builder::auth_provider_service::GetIamPolicy::new(self.inner.clone())
598    }
599
600    /// Returns permissions that a caller has on the specified resource. If the
601    /// resource does not exist, this will return an empty set of
602    /// permissions, not a `NOT_FOUND` error.
603    ///
604    /// Note: This operation is designed to be used for building
605    /// permission-aware UIs and command-line tools, not for authorization
606    /// checking. This operation may "fail open" without warning.
607    ///
608    /// # Example
609    /// ```
610    /// # use google_cloud_agentidentity_v1::client::AuthProviderService;
611    /// use google_cloud_agentidentity_v1::Result;
612    /// async fn sample(
613    ///    client: &AuthProviderService
614    /// ) -> Result<()> {
615    ///     let response = client.test_iam_permissions()
616    ///         /* set fields */
617    ///         .send().await?;
618    ///     println!("response {:?}", response);
619    ///     Ok(())
620    /// }
621    /// ```
622    pub fn test_iam_permissions(
623        &self,
624    ) -> super::builder::auth_provider_service::TestIamPermissions {
625        super::builder::auth_provider_service::TestIamPermissions::new(self.inner.clone())
626    }
627}