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}