google_cloud_vmwareengine_v1/
client.rs

1// Copyright 2025 Google LLC
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     https://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14//
15// Code generated by sidekick. DO NOT EDIT.
16#![allow(rustdoc::redundant_explicit_links)]
17#![allow(rustdoc::broken_intra_doc_links)]
18
19/// Implements a client for the VMware Engine API.
20///
21/// # Example
22/// ```
23/// # tokio_test::block_on(async {
24/// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
25/// let client = VmwareEngine::builder().build().await?;
26/// // use `client` to make requests to the VMware Engine API.
27/// # gax::client_builder::Result::<()>::Ok(()) });
28/// ```
29///
30/// # Service Description
31///
32/// VMwareEngine manages VMware's private clusters in the Cloud.
33///
34/// # Configuration
35///
36/// To configure `VmwareEngine` use the `with_*` methods in the type returned
37/// by [builder()][VmwareEngine::builder]. The default configuration should
38/// work for most applications. Common configuration changes include
39///
40/// * [with_endpoint()]: by default this client uses the global default endpoint
41///   (`https://vmwareengine.googleapis.com`). Applications using regional
42///   endpoints or running in restricted networks (e.g. a network configured
43//    with [Private Google Access with VPC Service Controls]) may want to
44///   override this default.
45/// * [with_credentials()]: by default this client uses
46///   [Application Default Credentials]. Applications using custom
47///   authentication may need to override this default.
48///
49/// [with_endpoint()]: super::builder::vmware_engine::ClientBuilder::with_endpoint
50/// [with_credentials()]: super::builder::vmware_engine::ClientBuilder::credentials
51/// [Private Google Access with VPC Service Controls]: https://cloud.google.com/vpc-service-controls/docs/private-connectivity
52/// [Application Default Credentials]: https://cloud.google.com/docs/authentication#adc
53///
54/// # Pooling and Cloning
55///
56/// `VmwareEngine` holds a connection pool internally, it is advised to
57/// create one and the reuse it.  You do not need to wrap `VmwareEngine` in
58/// an [Rc](std::rc::Rc) or [Arc](std::sync::Arc) to reuse it, because it
59/// already uses an `Arc` internally.
60#[derive(Clone, Debug)]
61pub struct VmwareEngine {
62    inner: std::sync::Arc<dyn super::stub::dynamic::VmwareEngine>,
63}
64
65impl VmwareEngine {
66    /// Returns a builder for [VmwareEngine].
67    ///
68    /// ```
69    /// # tokio_test::block_on(async {
70    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
71    /// let client = VmwareEngine::builder().build().await?;
72    /// # gax::client_builder::Result::<()>::Ok(()) });
73    /// ```
74    pub fn builder() -> super::builder::vmware_engine::ClientBuilder {
75        gax::client_builder::internal::new_builder(super::builder::vmware_engine::client::Factory)
76    }
77
78    /// Creates a new client from the provided stub.
79    ///
80    /// The most common case for calling this function is in tests mocking the
81    /// client's behavior.
82    pub fn from_stub<T>(stub: T) -> Self
83    where
84        T: super::stub::VmwareEngine + 'static,
85    {
86        Self {
87            inner: std::sync::Arc::new(stub),
88        }
89    }
90
91    pub(crate) async fn new(
92        config: gaxi::options::ClientConfig,
93    ) -> gax::client_builder::Result<Self> {
94        let inner = Self::build_inner(config).await?;
95        Ok(Self { inner })
96    }
97
98    async fn build_inner(
99        conf: gaxi::options::ClientConfig,
100    ) -> gax::client_builder::Result<std::sync::Arc<dyn super::stub::dynamic::VmwareEngine>> {
101        if gaxi::options::tracing_enabled(&conf) {
102            return Ok(std::sync::Arc::new(Self::build_with_tracing(conf).await?));
103        }
104        Ok(std::sync::Arc::new(Self::build_transport(conf).await?))
105    }
106
107    async fn build_transport(
108        conf: gaxi::options::ClientConfig,
109    ) -> gax::client_builder::Result<impl super::stub::VmwareEngine> {
110        super::transport::VmwareEngine::new(conf).await
111    }
112
113    async fn build_with_tracing(
114        conf: gaxi::options::ClientConfig,
115    ) -> gax::client_builder::Result<impl super::stub::VmwareEngine> {
116        Self::build_transport(conf)
117            .await
118            .map(super::tracing::VmwareEngine::new)
119    }
120
121    /// Lists `PrivateCloud` resources in a given project and location.
122    pub fn list_private_clouds(&self) -> super::builder::vmware_engine::ListPrivateClouds {
123        super::builder::vmware_engine::ListPrivateClouds::new(self.inner.clone())
124    }
125
126    /// Retrieves a `PrivateCloud` resource by its resource name.
127    pub fn get_private_cloud(&self) -> super::builder::vmware_engine::GetPrivateCloud {
128        super::builder::vmware_engine::GetPrivateCloud::new(self.inner.clone())
129    }
130
131    /// Creates a new `PrivateCloud` resource in a given project and location.
132    /// Private clouds of type `STANDARD` and
133    /// `TIME_LIMITED` are zonal resources, `STRETCHED` private clouds are
134    /// regional.
135    /// Creating a private cloud also creates a [management
136    /// cluster](https://cloud.google.com/vmware-engine/docs/concepts-vmware-components)
137    /// for that private cloud.
138    ///
139    /// # Long running operations
140    ///
141    /// This method is used to start, and/or poll a [long-running Operation].
142    /// The [Working with long-running operations] chapter in the [user guide]
143    /// covers these operations in detail.
144    ///
145    /// [long-running operation]: https://google.aip.dev/151
146    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
147    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
148    pub fn create_private_cloud(&self) -> super::builder::vmware_engine::CreatePrivateCloud {
149        super::builder::vmware_engine::CreatePrivateCloud::new(self.inner.clone())
150    }
151
152    /// Modifies a `PrivateCloud` resource. Only the following fields can be
153    /// updated: `description`.
154    /// Only fields specified in `updateMask` are applied.
155    ///
156    /// During operation processing, the resource is temporarily in the `ACTIVE`
157    /// state before the operation fully completes. For that period of time, you
158    /// can't update the resource. Use the operation status to determine when the
159    /// processing fully completes.
160    ///
161    /// # Long running operations
162    ///
163    /// This method is used to start, and/or poll a [long-running Operation].
164    /// The [Working with long-running operations] chapter in the [user guide]
165    /// covers these operations in detail.
166    ///
167    /// [long-running operation]: https://google.aip.dev/151
168    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
169    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
170    pub fn update_private_cloud(&self) -> super::builder::vmware_engine::UpdatePrivateCloud {
171        super::builder::vmware_engine::UpdatePrivateCloud::new(self.inner.clone())
172    }
173
174    /// Schedules a `PrivateCloud` resource for deletion.
175    ///
176    /// A `PrivateCloud` resource scheduled for deletion has `PrivateCloud.state`
177    /// set to `DELETED` and `expireTime` set to the time when deletion is final
178    /// and can no longer be reversed. The delete operation is marked as done
179    /// as soon as the `PrivateCloud` is successfully scheduled for deletion
180    /// (this also applies when `delayHours` is set to zero), and the operation is
181    /// not kept in pending state until `PrivateCloud` is purged.
182    /// `PrivateCloud` can be restored using `UndeletePrivateCloud` method before
183    /// the `expireTime` elapses. When `expireTime` is reached, deletion is final
184    /// and all private cloud resources are irreversibly removed and billing stops.
185    /// During the final removal process, `PrivateCloud.state` is set to `PURGING`.
186    /// `PrivateCloud` can be polled using standard `GET` method for the whole
187    /// period of deletion and purging. It will not be returned only
188    /// when it is completely purged.
189    ///
190    /// # Long running operations
191    ///
192    /// This method is used to start, and/or poll a [long-running Operation].
193    /// The [Working with long-running operations] chapter in the [user guide]
194    /// covers these operations in detail.
195    ///
196    /// [long-running operation]: https://google.aip.dev/151
197    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
198    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
199    pub fn delete_private_cloud(&self) -> super::builder::vmware_engine::DeletePrivateCloud {
200        super::builder::vmware_engine::DeletePrivateCloud::new(self.inner.clone())
201    }
202
203    /// Restores a private cloud that was previously scheduled for deletion by
204    /// `DeletePrivateCloud`. A `PrivateCloud` resource scheduled for deletion has
205    /// `PrivateCloud.state` set to `DELETED` and `PrivateCloud.expireTime` set to
206    /// the time when deletion can no longer be reversed.
207    ///
208    /// # Long running operations
209    ///
210    /// This method is used to start, and/or poll a [long-running Operation].
211    /// The [Working with long-running operations] chapter in the [user guide]
212    /// covers these operations in detail.
213    ///
214    /// [long-running operation]: https://google.aip.dev/151
215    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
216    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
217    pub fn undelete_private_cloud(&self) -> super::builder::vmware_engine::UndeletePrivateCloud {
218        super::builder::vmware_engine::UndeletePrivateCloud::new(self.inner.clone())
219    }
220
221    /// Lists `Cluster` resources in a given private cloud.
222    pub fn list_clusters(&self) -> super::builder::vmware_engine::ListClusters {
223        super::builder::vmware_engine::ListClusters::new(self.inner.clone())
224    }
225
226    /// Retrieves a `Cluster` resource by its resource name.
227    pub fn get_cluster(&self) -> super::builder::vmware_engine::GetCluster {
228        super::builder::vmware_engine::GetCluster::new(self.inner.clone())
229    }
230
231    /// Creates a new cluster in a given private cloud.
232    /// Creating a new cluster provides additional nodes for
233    /// use in the parent private cloud and requires sufficient [node
234    /// quota](https://cloud.google.com/vmware-engine/quotas).
235    ///
236    /// # Long running operations
237    ///
238    /// This method is used to start, and/or poll a [long-running Operation].
239    /// The [Working with long-running operations] chapter in the [user guide]
240    /// covers these operations in detail.
241    ///
242    /// [long-running operation]: https://google.aip.dev/151
243    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
244    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
245    pub fn create_cluster(&self) -> super::builder::vmware_engine::CreateCluster {
246        super::builder::vmware_engine::CreateCluster::new(self.inner.clone())
247    }
248
249    /// Modifies a `Cluster` resource. Only fields specified in `updateMask` are
250    /// applied.
251    ///
252    /// During operation processing, the resource is temporarily in the `ACTIVE`
253    /// state before the operation fully completes. For that period of time, you
254    /// can't update the resource. Use the operation status to determine when the
255    /// processing fully completes.
256    ///
257    /// # Long running operations
258    ///
259    /// This method is used to start, and/or poll a [long-running Operation].
260    /// The [Working with long-running operations] chapter in the [user guide]
261    /// covers these operations in detail.
262    ///
263    /// [long-running operation]: https://google.aip.dev/151
264    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
265    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
266    pub fn update_cluster(&self) -> super::builder::vmware_engine::UpdateCluster {
267        super::builder::vmware_engine::UpdateCluster::new(self.inner.clone())
268    }
269
270    /// Deletes a `Cluster` resource. To avoid unintended data loss, migrate or
271    /// gracefully shut down any workloads running on the cluster before deletion.
272    /// You cannot delete the management cluster of a private cloud using this
273    /// method.
274    ///
275    /// # Long running operations
276    ///
277    /// This method is used to start, and/or poll a [long-running Operation].
278    /// The [Working with long-running operations] chapter in the [user guide]
279    /// covers these operations in detail.
280    ///
281    /// [long-running operation]: https://google.aip.dev/151
282    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
283    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
284    pub fn delete_cluster(&self) -> super::builder::vmware_engine::DeleteCluster {
285        super::builder::vmware_engine::DeleteCluster::new(self.inner.clone())
286    }
287
288    /// Lists nodes in a given cluster.
289    pub fn list_nodes(&self) -> super::builder::vmware_engine::ListNodes {
290        super::builder::vmware_engine::ListNodes::new(self.inner.clone())
291    }
292
293    /// Gets details of a single node.
294    pub fn get_node(&self) -> super::builder::vmware_engine::GetNode {
295        super::builder::vmware_engine::GetNode::new(self.inner.clone())
296    }
297
298    /// Lists external IP addresses assigned to VMware workload VMs in a given
299    /// private cloud.
300    pub fn list_external_addresses(&self) -> super::builder::vmware_engine::ListExternalAddresses {
301        super::builder::vmware_engine::ListExternalAddresses::new(self.inner.clone())
302    }
303
304    /// Lists external IP addresses assigned to VMware workload VMs within the
305    /// scope of the given network policy.
306    pub fn fetch_network_policy_external_addresses(
307        &self,
308    ) -> super::builder::vmware_engine::FetchNetworkPolicyExternalAddresses {
309        super::builder::vmware_engine::FetchNetworkPolicyExternalAddresses::new(self.inner.clone())
310    }
311
312    /// Gets details of a single external IP address.
313    pub fn get_external_address(&self) -> super::builder::vmware_engine::GetExternalAddress {
314        super::builder::vmware_engine::GetExternalAddress::new(self.inner.clone())
315    }
316
317    /// Creates a new `ExternalAddress` resource in a given private cloud. The
318    /// network policy that corresponds to the private cloud must have the external
319    /// IP address network service enabled (`NetworkPolicy.external_ip`).
320    ///
321    /// # Long running operations
322    ///
323    /// This method is used to start, and/or poll a [long-running Operation].
324    /// The [Working with long-running operations] chapter in the [user guide]
325    /// covers these operations in detail.
326    ///
327    /// [long-running operation]: https://google.aip.dev/151
328    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
329    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
330    pub fn create_external_address(&self) -> super::builder::vmware_engine::CreateExternalAddress {
331        super::builder::vmware_engine::CreateExternalAddress::new(self.inner.clone())
332    }
333
334    /// Updates the parameters of a single external IP address.
335    /// Only fields specified in `update_mask` are applied.
336    ///
337    /// During operation processing, the resource is temporarily in the `ACTIVE`
338    /// state before the operation fully completes. For that period of time, you
339    /// can't update the resource. Use the operation status to determine when the
340    /// processing fully completes.
341    ///
342    /// # Long running operations
343    ///
344    /// This method is used to start, and/or poll a [long-running Operation].
345    /// The [Working with long-running operations] chapter in the [user guide]
346    /// covers these operations in detail.
347    ///
348    /// [long-running operation]: https://google.aip.dev/151
349    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
350    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
351    pub fn update_external_address(&self) -> super::builder::vmware_engine::UpdateExternalAddress {
352        super::builder::vmware_engine::UpdateExternalAddress::new(self.inner.clone())
353    }
354
355    /// Deletes a single external IP address. When you delete an external IP
356    /// address, connectivity between the external IP address and the corresponding
357    /// internal IP address is lost.
358    ///
359    /// # Long running operations
360    ///
361    /// This method is used to start, and/or poll a [long-running Operation].
362    /// The [Working with long-running operations] chapter in the [user guide]
363    /// covers these operations in detail.
364    ///
365    /// [long-running operation]: https://google.aip.dev/151
366    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
367    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
368    pub fn delete_external_address(&self) -> super::builder::vmware_engine::DeleteExternalAddress {
369        super::builder::vmware_engine::DeleteExternalAddress::new(self.inner.clone())
370    }
371
372    /// Lists subnets in a given private cloud.
373    pub fn list_subnets(&self) -> super::builder::vmware_engine::ListSubnets {
374        super::builder::vmware_engine::ListSubnets::new(self.inner.clone())
375    }
376
377    /// Gets details of a single subnet.
378    pub fn get_subnet(&self) -> super::builder::vmware_engine::GetSubnet {
379        super::builder::vmware_engine::GetSubnet::new(self.inner.clone())
380    }
381
382    /// Updates the parameters of a single subnet. Only fields specified in
383    /// `update_mask` are applied.
384    ///
385    /// *Note*: This API is synchronous and always returns a successful
386    /// `google.longrunning.Operation` (LRO). The returned LRO will only have
387    /// `done` and `response` fields.
388    ///
389    /// # Long running operations
390    ///
391    /// This method is used to start, and/or poll a [long-running Operation].
392    /// The [Working with long-running operations] chapter in the [user guide]
393    /// covers these operations in detail.
394    ///
395    /// [long-running operation]: https://google.aip.dev/151
396    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
397    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
398    pub fn update_subnet(&self) -> super::builder::vmware_engine::UpdateSubnet {
399        super::builder::vmware_engine::UpdateSubnet::new(self.inner.clone())
400    }
401
402    /// Lists `ExternalAccessRule` resources in the specified network policy.
403    pub fn list_external_access_rules(
404        &self,
405    ) -> super::builder::vmware_engine::ListExternalAccessRules {
406        super::builder::vmware_engine::ListExternalAccessRules::new(self.inner.clone())
407    }
408
409    /// Gets details of a single external access rule.
410    pub fn get_external_access_rule(&self) -> super::builder::vmware_engine::GetExternalAccessRule {
411        super::builder::vmware_engine::GetExternalAccessRule::new(self.inner.clone())
412    }
413
414    /// Creates a new external access rule in a given network policy.
415    ///
416    /// # Long running operations
417    ///
418    /// This method is used to start, and/or poll a [long-running Operation].
419    /// The [Working with long-running operations] chapter in the [user guide]
420    /// covers these operations in detail.
421    ///
422    /// [long-running operation]: https://google.aip.dev/151
423    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
424    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
425    pub fn create_external_access_rule(
426        &self,
427    ) -> super::builder::vmware_engine::CreateExternalAccessRule {
428        super::builder::vmware_engine::CreateExternalAccessRule::new(self.inner.clone())
429    }
430
431    /// Updates the parameters of a single external access rule.
432    /// Only fields specified in `update_mask` are applied.
433    ///
434    /// # Long running operations
435    ///
436    /// This method is used to start, and/or poll a [long-running Operation].
437    /// The [Working with long-running operations] chapter in the [user guide]
438    /// covers these operations in detail.
439    ///
440    /// [long-running operation]: https://google.aip.dev/151
441    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
442    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
443    pub fn update_external_access_rule(
444        &self,
445    ) -> super::builder::vmware_engine::UpdateExternalAccessRule {
446        super::builder::vmware_engine::UpdateExternalAccessRule::new(self.inner.clone())
447    }
448
449    /// Deletes a single external access rule.
450    ///
451    /// # Long running operations
452    ///
453    /// This method is used to start, and/or poll a [long-running Operation].
454    /// The [Working with long-running operations] chapter in the [user guide]
455    /// covers these operations in detail.
456    ///
457    /// [long-running operation]: https://google.aip.dev/151
458    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
459    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
460    pub fn delete_external_access_rule(
461        &self,
462    ) -> super::builder::vmware_engine::DeleteExternalAccessRule {
463        super::builder::vmware_engine::DeleteExternalAccessRule::new(self.inner.clone())
464    }
465
466    /// Lists logging servers configured for a given private
467    /// cloud.
468    pub fn list_logging_servers(&self) -> super::builder::vmware_engine::ListLoggingServers {
469        super::builder::vmware_engine::ListLoggingServers::new(self.inner.clone())
470    }
471
472    /// Gets details of a logging server.
473    pub fn get_logging_server(&self) -> super::builder::vmware_engine::GetLoggingServer {
474        super::builder::vmware_engine::GetLoggingServer::new(self.inner.clone())
475    }
476
477    /// Create a new logging server for a given private cloud.
478    ///
479    /// # Long running operations
480    ///
481    /// This method is used to start, and/or poll a [long-running Operation].
482    /// The [Working with long-running operations] chapter in the [user guide]
483    /// covers these operations in detail.
484    ///
485    /// [long-running operation]: https://google.aip.dev/151
486    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
487    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
488    pub fn create_logging_server(&self) -> super::builder::vmware_engine::CreateLoggingServer {
489        super::builder::vmware_engine::CreateLoggingServer::new(self.inner.clone())
490    }
491
492    /// Updates the parameters of a single logging server.
493    /// Only fields specified in `update_mask` are applied.
494    ///
495    /// # Long running operations
496    ///
497    /// This method is used to start, and/or poll a [long-running Operation].
498    /// The [Working with long-running operations] chapter in the [user guide]
499    /// covers these operations in detail.
500    ///
501    /// [long-running operation]: https://google.aip.dev/151
502    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
503    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
504    pub fn update_logging_server(&self) -> super::builder::vmware_engine::UpdateLoggingServer {
505        super::builder::vmware_engine::UpdateLoggingServer::new(self.inner.clone())
506    }
507
508    /// Deletes a single logging server.
509    ///
510    /// # Long running operations
511    ///
512    /// This method is used to start, and/or poll a [long-running Operation].
513    /// The [Working with long-running operations] chapter in the [user guide]
514    /// covers these operations in detail.
515    ///
516    /// [long-running operation]: https://google.aip.dev/151
517    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
518    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
519    pub fn delete_logging_server(&self) -> super::builder::vmware_engine::DeleteLoggingServer {
520        super::builder::vmware_engine::DeleteLoggingServer::new(self.inner.clone())
521    }
522
523    /// Lists node types
524    pub fn list_node_types(&self) -> super::builder::vmware_engine::ListNodeTypes {
525        super::builder::vmware_engine::ListNodeTypes::new(self.inner.clone())
526    }
527
528    /// Gets details of a single `NodeType`.
529    pub fn get_node_type(&self) -> super::builder::vmware_engine::GetNodeType {
530        super::builder::vmware_engine::GetNodeType::new(self.inner.clone())
531    }
532
533    /// Gets details of credentials for NSX appliance.
534    pub fn show_nsx_credentials(&self) -> super::builder::vmware_engine::ShowNsxCredentials {
535        super::builder::vmware_engine::ShowNsxCredentials::new(self.inner.clone())
536    }
537
538    /// Gets details of credentials for Vcenter appliance.
539    pub fn show_vcenter_credentials(
540        &self,
541    ) -> super::builder::vmware_engine::ShowVcenterCredentials {
542        super::builder::vmware_engine::ShowVcenterCredentials::new(self.inner.clone())
543    }
544
545    /// Resets credentials of the NSX appliance.
546    ///
547    /// # Long running operations
548    ///
549    /// This method is used to start, and/or poll a [long-running Operation].
550    /// The [Working with long-running operations] chapter in the [user guide]
551    /// covers these operations in detail.
552    ///
553    /// [long-running operation]: https://google.aip.dev/151
554    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
555    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
556    pub fn reset_nsx_credentials(&self) -> super::builder::vmware_engine::ResetNsxCredentials {
557        super::builder::vmware_engine::ResetNsxCredentials::new(self.inner.clone())
558    }
559
560    /// Resets credentials of the Vcenter appliance.
561    ///
562    /// # Long running operations
563    ///
564    /// This method is used to start, and/or poll a [long-running Operation].
565    /// The [Working with long-running operations] chapter in the [user guide]
566    /// covers these operations in detail.
567    ///
568    /// [long-running operation]: https://google.aip.dev/151
569    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
570    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
571    pub fn reset_vcenter_credentials(
572        &self,
573    ) -> super::builder::vmware_engine::ResetVcenterCredentials {
574        super::builder::vmware_engine::ResetVcenterCredentials::new(self.inner.clone())
575    }
576
577    /// Gets details of the `DnsForwarding` config.
578    pub fn get_dns_forwarding(&self) -> super::builder::vmware_engine::GetDnsForwarding {
579        super::builder::vmware_engine::GetDnsForwarding::new(self.inner.clone())
580    }
581
582    /// Updates the parameters of the `DnsForwarding` config, like associated
583    /// domains. Only fields specified in `update_mask` are applied.
584    ///
585    /// # Long running operations
586    ///
587    /// This method is used to start, and/or poll a [long-running Operation].
588    /// The [Working with long-running operations] chapter in the [user guide]
589    /// covers these operations in detail.
590    ///
591    /// [long-running operation]: https://google.aip.dev/151
592    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
593    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
594    pub fn update_dns_forwarding(&self) -> super::builder::vmware_engine::UpdateDnsForwarding {
595        super::builder::vmware_engine::UpdateDnsForwarding::new(self.inner.clone())
596    }
597
598    /// Retrieves a `NetworkPeering` resource by its resource name. The resource
599    /// contains details of the network peering, such as peered
600    /// networks, import and export custom route configurations, and peering state.
601    /// NetworkPeering is a global resource and location can only be global.
602    pub fn get_network_peering(&self) -> super::builder::vmware_engine::GetNetworkPeering {
603        super::builder::vmware_engine::GetNetworkPeering::new(self.inner.clone())
604    }
605
606    /// Lists `NetworkPeering` resources in a given project. NetworkPeering is a
607    /// global resource and location can only be global.
608    pub fn list_network_peerings(&self) -> super::builder::vmware_engine::ListNetworkPeerings {
609        super::builder::vmware_engine::ListNetworkPeerings::new(self.inner.clone())
610    }
611
612    /// Creates a new network peering between the peer network and VMware Engine
613    /// network provided in a `NetworkPeering` resource. NetworkPeering is a
614    /// global resource and location can only be global.
615    ///
616    /// # Long running operations
617    ///
618    /// This method is used to start, and/or poll a [long-running Operation].
619    /// The [Working with long-running operations] chapter in the [user guide]
620    /// covers these operations in detail.
621    ///
622    /// [long-running operation]: https://google.aip.dev/151
623    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
624    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
625    pub fn create_network_peering(&self) -> super::builder::vmware_engine::CreateNetworkPeering {
626        super::builder::vmware_engine::CreateNetworkPeering::new(self.inner.clone())
627    }
628
629    /// Deletes a `NetworkPeering` resource. When a network peering is deleted for
630    /// a VMware Engine network, the peer network becomes inaccessible to that
631    /// VMware Engine network. NetworkPeering is a global resource and location can
632    /// only be global.
633    ///
634    /// # Long running operations
635    ///
636    /// This method is used to start, and/or poll a [long-running Operation].
637    /// The [Working with long-running operations] chapter in the [user guide]
638    /// covers these operations in detail.
639    ///
640    /// [long-running operation]: https://google.aip.dev/151
641    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
642    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
643    pub fn delete_network_peering(&self) -> super::builder::vmware_engine::DeleteNetworkPeering {
644        super::builder::vmware_engine::DeleteNetworkPeering::new(self.inner.clone())
645    }
646
647    /// Modifies a `NetworkPeering` resource. Only the `description` field can be
648    /// updated. Only fields specified in `updateMask` are applied. NetworkPeering
649    /// is a global resource and location can only be global.
650    ///
651    /// # Long running operations
652    ///
653    /// This method is used to start, and/or poll a [long-running Operation].
654    /// The [Working with long-running operations] chapter in the [user guide]
655    /// covers these operations in detail.
656    ///
657    /// [long-running operation]: https://google.aip.dev/151
658    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
659    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
660    pub fn update_network_peering(&self) -> super::builder::vmware_engine::UpdateNetworkPeering {
661        super::builder::vmware_engine::UpdateNetworkPeering::new(self.inner.clone())
662    }
663
664    /// Lists the network peering routes exchanged over a peering connection.
665    /// NetworkPeering is a global resource and location can only be global.
666    pub fn list_peering_routes(&self) -> super::builder::vmware_engine::ListPeeringRoutes {
667        super::builder::vmware_engine::ListPeeringRoutes::new(self.inner.clone())
668    }
669
670    /// Creates a new HCX activation key in a given private cloud.
671    ///
672    /// # Long running operations
673    ///
674    /// This method is used to start, and/or poll a [long-running Operation].
675    /// The [Working with long-running operations] chapter in the [user guide]
676    /// covers these operations in detail.
677    ///
678    /// [long-running operation]: https://google.aip.dev/151
679    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
680    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
681    pub fn create_hcx_activation_key(
682        &self,
683    ) -> super::builder::vmware_engine::CreateHcxActivationKey {
684        super::builder::vmware_engine::CreateHcxActivationKey::new(self.inner.clone())
685    }
686
687    /// Lists `HcxActivationKey` resources in a given private cloud.
688    pub fn list_hcx_activation_keys(&self) -> super::builder::vmware_engine::ListHcxActivationKeys {
689        super::builder::vmware_engine::ListHcxActivationKeys::new(self.inner.clone())
690    }
691
692    /// Retrieves a `HcxActivationKey` resource by its resource name.
693    pub fn get_hcx_activation_key(&self) -> super::builder::vmware_engine::GetHcxActivationKey {
694        super::builder::vmware_engine::GetHcxActivationKey::new(self.inner.clone())
695    }
696
697    /// Retrieves a `NetworkPolicy` resource by its resource name.
698    pub fn get_network_policy(&self) -> super::builder::vmware_engine::GetNetworkPolicy {
699        super::builder::vmware_engine::GetNetworkPolicy::new(self.inner.clone())
700    }
701
702    /// Lists `NetworkPolicy` resources in a specified project and location.
703    pub fn list_network_policies(&self) -> super::builder::vmware_engine::ListNetworkPolicies {
704        super::builder::vmware_engine::ListNetworkPolicies::new(self.inner.clone())
705    }
706
707    /// Creates a new network policy in a given VMware Engine network of a
708    /// project and location (region). A new network policy cannot be created if
709    /// another network policy already exists in the same scope.
710    ///
711    /// # Long running operations
712    ///
713    /// This method is used to start, and/or poll a [long-running Operation].
714    /// The [Working with long-running operations] chapter in the [user guide]
715    /// covers these operations in detail.
716    ///
717    /// [long-running operation]: https://google.aip.dev/151
718    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
719    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
720    pub fn create_network_policy(&self) -> super::builder::vmware_engine::CreateNetworkPolicy {
721        super::builder::vmware_engine::CreateNetworkPolicy::new(self.inner.clone())
722    }
723
724    /// Modifies a `NetworkPolicy` resource. Only the following fields can be
725    /// updated: `internet_access`, `external_ip`, `edge_services_cidr`.
726    /// Only fields specified in `updateMask` are applied. When updating a network
727    /// policy, the external IP network service can only be disabled if there are
728    /// no external IP addresses present in the scope of the policy. Also, a
729    /// `NetworkService` cannot be updated when `NetworkService.state` is set
730    /// to `RECONCILING`.
731    ///
732    /// During operation processing, the resource is temporarily in the `ACTIVE`
733    /// state before the operation fully completes. For that period of time, you
734    /// can't update the resource. Use the operation status to determine when the
735    /// processing fully completes.
736    ///
737    /// # Long running operations
738    ///
739    /// This method is used to start, and/or poll a [long-running Operation].
740    /// The [Working with long-running operations] chapter in the [user guide]
741    /// covers these operations in detail.
742    ///
743    /// [long-running operation]: https://google.aip.dev/151
744    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
745    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
746    pub fn update_network_policy(&self) -> super::builder::vmware_engine::UpdateNetworkPolicy {
747        super::builder::vmware_engine::UpdateNetworkPolicy::new(self.inner.clone())
748    }
749
750    /// Deletes a `NetworkPolicy` resource. A network policy cannot be deleted
751    /// when `NetworkService.state` is set to `RECONCILING` for either its external
752    /// IP or internet access service.
753    ///
754    /// # Long running operations
755    ///
756    /// This method is used to start, and/or poll a [long-running Operation].
757    /// The [Working with long-running operations] chapter in the [user guide]
758    /// covers these operations in detail.
759    ///
760    /// [long-running operation]: https://google.aip.dev/151
761    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
762    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
763    pub fn delete_network_policy(&self) -> super::builder::vmware_engine::DeleteNetworkPolicy {
764        super::builder::vmware_engine::DeleteNetworkPolicy::new(self.inner.clone())
765    }
766
767    /// Lists Consumer VPCs bound to Management DNS Zone of a given private cloud.
768    pub fn list_management_dns_zone_bindings(
769        &self,
770    ) -> super::builder::vmware_engine::ListManagementDnsZoneBindings {
771        super::builder::vmware_engine::ListManagementDnsZoneBindings::new(self.inner.clone())
772    }
773
774    /// Retrieves a 'ManagementDnsZoneBinding' resource by its resource name.
775    pub fn get_management_dns_zone_binding(
776        &self,
777    ) -> super::builder::vmware_engine::GetManagementDnsZoneBinding {
778        super::builder::vmware_engine::GetManagementDnsZoneBinding::new(self.inner.clone())
779    }
780
781    /// Creates a new `ManagementDnsZoneBinding` resource in a private cloud.
782    /// This RPC creates the DNS binding and the resource that represents the
783    /// DNS binding of the consumer VPC network to the management DNS zone. A
784    /// management DNS zone is the Cloud DNS cross-project binding zone that
785    /// VMware Engine creates for each private cloud. It contains FQDNs and
786    /// corresponding IP addresses for the private cloud's ESXi hosts and
787    /// management VM appliances like vCenter and NSX Manager.
788    ///
789    /// # Long running operations
790    ///
791    /// This method is used to start, and/or poll a [long-running Operation].
792    /// The [Working with long-running operations] chapter in the [user guide]
793    /// covers these operations in detail.
794    ///
795    /// [long-running operation]: https://google.aip.dev/151
796    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
797    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
798    pub fn create_management_dns_zone_binding(
799        &self,
800    ) -> super::builder::vmware_engine::CreateManagementDnsZoneBinding {
801        super::builder::vmware_engine::CreateManagementDnsZoneBinding::new(self.inner.clone())
802    }
803
804    /// Updates a `ManagementDnsZoneBinding` resource.
805    /// Only fields specified in `update_mask` are applied.
806    ///
807    /// # Long running operations
808    ///
809    /// This method is used to start, and/or poll a [long-running Operation].
810    /// The [Working with long-running operations] chapter in the [user guide]
811    /// covers these operations in detail.
812    ///
813    /// [long-running operation]: https://google.aip.dev/151
814    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
815    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
816    pub fn update_management_dns_zone_binding(
817        &self,
818    ) -> super::builder::vmware_engine::UpdateManagementDnsZoneBinding {
819        super::builder::vmware_engine::UpdateManagementDnsZoneBinding::new(self.inner.clone())
820    }
821
822    /// Deletes a `ManagementDnsZoneBinding` resource. When a management DNS zone
823    /// binding is deleted, the corresponding consumer VPC network is no longer
824    /// bound to the management DNS zone.
825    ///
826    /// # Long running operations
827    ///
828    /// This method is used to start, and/or poll a [long-running Operation].
829    /// The [Working with long-running operations] chapter in the [user guide]
830    /// covers these operations in detail.
831    ///
832    /// [long-running operation]: https://google.aip.dev/151
833    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
834    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
835    pub fn delete_management_dns_zone_binding(
836        &self,
837    ) -> super::builder::vmware_engine::DeleteManagementDnsZoneBinding {
838        super::builder::vmware_engine::DeleteManagementDnsZoneBinding::new(self.inner.clone())
839    }
840
841    /// Retries to create a `ManagementDnsZoneBinding` resource that is
842    /// in failed state.
843    ///
844    /// # Long running operations
845    ///
846    /// This method is used to start, and/or poll a [long-running Operation].
847    /// The [Working with long-running operations] chapter in the [user guide]
848    /// covers these operations in detail.
849    ///
850    /// [long-running operation]: https://google.aip.dev/151
851    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
852    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
853    pub fn repair_management_dns_zone_binding(
854        &self,
855    ) -> super::builder::vmware_engine::RepairManagementDnsZoneBinding {
856        super::builder::vmware_engine::RepairManagementDnsZoneBinding::new(self.inner.clone())
857    }
858
859    /// Creates a new VMware Engine network that can be used by a private cloud.
860    ///
861    /// # Long running operations
862    ///
863    /// This method is used to start, and/or poll a [long-running Operation].
864    /// The [Working with long-running operations] chapter in the [user guide]
865    /// covers these operations in detail.
866    ///
867    /// [long-running operation]: https://google.aip.dev/151
868    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
869    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
870    pub fn create_vmware_engine_network(
871        &self,
872    ) -> super::builder::vmware_engine::CreateVmwareEngineNetwork {
873        super::builder::vmware_engine::CreateVmwareEngineNetwork::new(self.inner.clone())
874    }
875
876    /// Modifies a VMware Engine network resource. Only the following fields can be
877    /// updated: `description`. Only fields specified in `updateMask` are
878    /// applied.
879    ///
880    /// # Long running operations
881    ///
882    /// This method is used to start, and/or poll a [long-running Operation].
883    /// The [Working with long-running operations] chapter in the [user guide]
884    /// covers these operations in detail.
885    ///
886    /// [long-running operation]: https://google.aip.dev/151
887    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
888    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
889    pub fn update_vmware_engine_network(
890        &self,
891    ) -> super::builder::vmware_engine::UpdateVmwareEngineNetwork {
892        super::builder::vmware_engine::UpdateVmwareEngineNetwork::new(self.inner.clone())
893    }
894
895    /// Deletes a `VmwareEngineNetwork` resource. You can only delete a VMware
896    /// Engine network after all resources that refer to it are deleted. For
897    /// example, a private cloud, a network peering, and a network policy can all
898    /// refer to the same VMware Engine network.
899    ///
900    /// # Long running operations
901    ///
902    /// This method is used to start, and/or poll a [long-running Operation].
903    /// The [Working with long-running operations] chapter in the [user guide]
904    /// covers these operations in detail.
905    ///
906    /// [long-running operation]: https://google.aip.dev/151
907    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
908    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
909    pub fn delete_vmware_engine_network(
910        &self,
911    ) -> super::builder::vmware_engine::DeleteVmwareEngineNetwork {
912        super::builder::vmware_engine::DeleteVmwareEngineNetwork::new(self.inner.clone())
913    }
914
915    /// Retrieves a `VmwareEngineNetwork` resource by its resource name. The
916    /// resource contains details of the VMware Engine network, such as its VMware
917    /// Engine network type, peered networks in a service project, and state
918    /// (for example, `CREATING`, `ACTIVE`, `DELETING`).
919    pub fn get_vmware_engine_network(
920        &self,
921    ) -> super::builder::vmware_engine::GetVmwareEngineNetwork {
922        super::builder::vmware_engine::GetVmwareEngineNetwork::new(self.inner.clone())
923    }
924
925    /// Lists `VmwareEngineNetwork` resources in a given project and location.
926    pub fn list_vmware_engine_networks(
927        &self,
928    ) -> super::builder::vmware_engine::ListVmwareEngineNetworks {
929        super::builder::vmware_engine::ListVmwareEngineNetworks::new(self.inner.clone())
930    }
931
932    /// Creates a new private connection that can be used for accessing private
933    /// Clouds.
934    ///
935    /// # Long running operations
936    ///
937    /// This method is used to start, and/or poll a [long-running Operation].
938    /// The [Working with long-running operations] chapter in the [user guide]
939    /// covers these operations in detail.
940    ///
941    /// [long-running operation]: https://google.aip.dev/151
942    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
943    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
944    pub fn create_private_connection(
945        &self,
946    ) -> super::builder::vmware_engine::CreatePrivateConnection {
947        super::builder::vmware_engine::CreatePrivateConnection::new(self.inner.clone())
948    }
949
950    /// Retrieves a `PrivateConnection` resource by its resource name. The resource
951    /// contains details of the private connection, such as connected
952    /// network, routing mode and state.
953    pub fn get_private_connection(&self) -> super::builder::vmware_engine::GetPrivateConnection {
954        super::builder::vmware_engine::GetPrivateConnection::new(self.inner.clone())
955    }
956
957    /// Lists `PrivateConnection` resources in a given project and location.
958    pub fn list_private_connections(
959        &self,
960    ) -> super::builder::vmware_engine::ListPrivateConnections {
961        super::builder::vmware_engine::ListPrivateConnections::new(self.inner.clone())
962    }
963
964    /// Modifies a `PrivateConnection` resource. Only `description` and
965    /// `routing_mode` fields can be updated. Only fields specified in `updateMask`
966    /// are applied.
967    ///
968    /// # Long running operations
969    ///
970    /// This method is used to start, and/or poll a [long-running Operation].
971    /// The [Working with long-running operations] chapter in the [user guide]
972    /// covers these operations in detail.
973    ///
974    /// [long-running operation]: https://google.aip.dev/151
975    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
976    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
977    pub fn update_private_connection(
978        &self,
979    ) -> super::builder::vmware_engine::UpdatePrivateConnection {
980        super::builder::vmware_engine::UpdatePrivateConnection::new(self.inner.clone())
981    }
982
983    /// Deletes a `PrivateConnection` resource. When a private connection is
984    /// deleted for a VMware Engine network, the connected network becomes
985    /// inaccessible to that VMware Engine network.
986    ///
987    /// # Long running operations
988    ///
989    /// This method is used to start, and/or poll a [long-running Operation].
990    /// The [Working with long-running operations] chapter in the [user guide]
991    /// covers these operations in detail.
992    ///
993    /// [long-running operation]: https://google.aip.dev/151
994    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
995    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
996    pub fn delete_private_connection(
997        &self,
998    ) -> super::builder::vmware_engine::DeletePrivateConnection {
999        super::builder::vmware_engine::DeletePrivateConnection::new(self.inner.clone())
1000    }
1001
1002    /// Lists the private connection routes exchanged over a peering connection.
1003    pub fn list_private_connection_peering_routes(
1004        &self,
1005    ) -> super::builder::vmware_engine::ListPrivateConnectionPeeringRoutes {
1006        super::builder::vmware_engine::ListPrivateConnectionPeeringRoutes::new(self.inner.clone())
1007    }
1008
1009    /// Grants the bind permission to the customer provided principal(user /
1010    /// service account) to bind their DNS zone with the intranet VPC associated
1011    /// with the project. DnsBindPermission is a global resource and location can
1012    /// only be global.
1013    ///
1014    /// # Long running operations
1015    ///
1016    /// This method is used to start, and/or poll a [long-running Operation].
1017    /// The [Working with long-running operations] chapter in the [user guide]
1018    /// covers these operations in detail.
1019    ///
1020    /// [long-running operation]: https://google.aip.dev/151
1021    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
1022    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
1023    pub fn grant_dns_bind_permission(
1024        &self,
1025    ) -> super::builder::vmware_engine::GrantDnsBindPermission {
1026        super::builder::vmware_engine::GrantDnsBindPermission::new(self.inner.clone())
1027    }
1028
1029    /// Gets all the principals having bind permission on the intranet VPC
1030    /// associated with the consumer project granted by the Grant API.
1031    /// DnsBindPermission is a global resource and location can only be global.
1032    pub fn get_dns_bind_permission(&self) -> super::builder::vmware_engine::GetDnsBindPermission {
1033        super::builder::vmware_engine::GetDnsBindPermission::new(self.inner.clone())
1034    }
1035
1036    /// Revokes the bind permission from the customer provided principal(user /
1037    /// service account) on the intranet VPC associated with the consumer project.
1038    /// DnsBindPermission is a global resource and location can only be global.
1039    ///
1040    /// # Long running operations
1041    ///
1042    /// This method is used to start, and/or poll a [long-running Operation].
1043    /// The [Working with long-running operations] chapter in the [user guide]
1044    /// covers these operations in detail.
1045    ///
1046    /// [long-running operation]: https://google.aip.dev/151
1047    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
1048    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
1049    pub fn revoke_dns_bind_permission(
1050        &self,
1051    ) -> super::builder::vmware_engine::RevokeDnsBindPermission {
1052        super::builder::vmware_engine::RevokeDnsBindPermission::new(self.inner.clone())
1053    }
1054
1055    /// Lists information about the supported locations for this service.
1056    pub fn list_locations(&self) -> super::builder::vmware_engine::ListLocations {
1057        super::builder::vmware_engine::ListLocations::new(self.inner.clone())
1058    }
1059
1060    /// Gets information about a location.
1061    pub fn get_location(&self) -> super::builder::vmware_engine::GetLocation {
1062        super::builder::vmware_engine::GetLocation::new(self.inner.clone())
1063    }
1064
1065    /// Sets the access control policy on the specified resource. Replaces
1066    /// any existing policy.
1067    ///
1068    /// Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`
1069    /// errors.
1070    pub fn set_iam_policy(&self) -> super::builder::vmware_engine::SetIamPolicy {
1071        super::builder::vmware_engine::SetIamPolicy::new(self.inner.clone())
1072    }
1073
1074    /// Gets the access control policy for a resource. Returns an empty policy
1075    /// if the resource exists and does not have a policy set.
1076    pub fn get_iam_policy(&self) -> super::builder::vmware_engine::GetIamPolicy {
1077        super::builder::vmware_engine::GetIamPolicy::new(self.inner.clone())
1078    }
1079
1080    /// Returns permissions that a caller has on the specified resource. If the
1081    /// resource does not exist, this will return an empty set of
1082    /// permissions, not a `NOT_FOUND` error.
1083    ///
1084    /// Note: This operation is designed to be used for building
1085    /// permission-aware UIs and command-line tools, not for authorization
1086    /// checking. This operation may "fail open" without warning.
1087    pub fn test_iam_permissions(&self) -> super::builder::vmware_engine::TestIamPermissions {
1088        super::builder::vmware_engine::TestIamPermissions::new(self.inner.clone())
1089    }
1090
1091    /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
1092    ///
1093    /// [google.longrunning.Operations]: longrunning::client::Operations
1094    pub fn list_operations(&self) -> super::builder::vmware_engine::ListOperations {
1095        super::builder::vmware_engine::ListOperations::new(self.inner.clone())
1096    }
1097
1098    /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
1099    ///
1100    /// [google.longrunning.Operations]: longrunning::client::Operations
1101    pub fn get_operation(&self) -> super::builder::vmware_engine::GetOperation {
1102        super::builder::vmware_engine::GetOperation::new(self.inner.clone())
1103    }
1104
1105    /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
1106    ///
1107    /// [google.longrunning.Operations]: longrunning::client::Operations
1108    pub fn delete_operation(&self) -> super::builder::vmware_engine::DeleteOperation {
1109        super::builder::vmware_engine::DeleteOperation::new(self.inner.clone())
1110    }
1111}