Skip to main content

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/// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
24/// use google_cloud_gax::paginator::ItemPaginator as _;
25/// # async fn sample() -> Result<(), Box<dyn std::error::Error>> {
26///     let client = VmwareEngine::builder().build().await?;
27///     let parent = "parent_value";
28///     let mut list = client.list_vmware_engine_networks()
29///         .set_parent(parent)
30///         .by_item();
31///     while let Some(item) = list.next().await.transpose()? {
32///         println!("{:?}", item);
33///     }
34/// # Ok(()) }
35/// ```
36///
37/// # Service Description
38///
39/// VMwareEngine manages VMware's private clusters in the Cloud.
40///
41/// # Configuration
42///
43/// To configure `VmwareEngine` use the `with_*` methods in the type returned
44/// by [builder()][VmwareEngine::builder]. The default configuration should
45/// work for most applications. Common configuration changes include
46///
47/// * [with_endpoint()]: by default this client uses the global default endpoint
48///   (`https://vmwareengine.googleapis.com`). Applications using regional
49///   endpoints or running in restricted networks (e.g. a network configured
50//    with [Private Google Access with VPC Service Controls]) may want to
51///   override this default.
52/// * [with_credentials()]: by default this client uses
53///   [Application Default Credentials]. Applications using custom
54///   authentication may need to override this default.
55///
56/// [with_endpoint()]: super::builder::vmware_engine::ClientBuilder::with_endpoint
57/// [with_credentials()]: super::builder::vmware_engine::ClientBuilder::with_credentials
58/// [Private Google Access with VPC Service Controls]: https://cloud.google.com/vpc-service-controls/docs/private-connectivity
59/// [Application Default Credentials]: https://cloud.google.com/docs/authentication#adc
60///
61/// # Pooling and Cloning
62///
63/// `VmwareEngine` holds a connection pool internally, it is advised to
64/// create one and reuse it. You do not need to wrap `VmwareEngine` in
65/// an [Rc](std::rc::Rc) or [Arc](std::sync::Arc) to reuse it, because it
66/// already uses an `Arc` internally.
67#[derive(Clone, Debug)]
68pub struct VmwareEngine {
69    inner: std::sync::Arc<dyn super::stub::dynamic::VmwareEngine>,
70}
71
72impl VmwareEngine {
73    /// Returns a builder for [VmwareEngine].
74    ///
75    /// ```
76    /// # async fn sample() -> google_cloud_gax::client_builder::Result<()> {
77    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
78    /// let client = VmwareEngine::builder().build().await?;
79    /// # Ok(()) }
80    /// ```
81    pub fn builder() -> super::builder::vmware_engine::ClientBuilder {
82        crate::new_client_builder(super::builder::vmware_engine::client::Factory)
83    }
84
85    /// Creates a new client from the provided stub.
86    ///
87    /// The most common case for calling this function is in tests mocking the
88    /// client's behavior.
89    pub fn from_stub<T>(stub: T) -> Self
90    where
91        T: super::stub::VmwareEngine + 'static,
92    {
93        Self {
94            inner: std::sync::Arc::new(stub),
95        }
96    }
97
98    pub(crate) async fn new(
99        config: gaxi::options::ClientConfig,
100    ) -> crate::ClientBuilderResult<Self> {
101        let inner = Self::build_inner(config).await?;
102        Ok(Self { inner })
103    }
104
105    async fn build_inner(
106        conf: gaxi::options::ClientConfig,
107    ) -> crate::ClientBuilderResult<std::sync::Arc<dyn super::stub::dynamic::VmwareEngine>> {
108        if gaxi::options::tracing_enabled(&conf) {
109            return Ok(std::sync::Arc::new(Self::build_with_tracing(conf).await?));
110        }
111        Ok(std::sync::Arc::new(Self::build_transport(conf).await?))
112    }
113
114    async fn build_transport(
115        conf: gaxi::options::ClientConfig,
116    ) -> crate::ClientBuilderResult<impl super::stub::VmwareEngine> {
117        super::transport::VmwareEngine::new(conf).await
118    }
119
120    async fn build_with_tracing(
121        conf: gaxi::options::ClientConfig,
122    ) -> crate::ClientBuilderResult<impl super::stub::VmwareEngine> {
123        Self::build_transport(conf)
124            .await
125            .map(super::tracing::VmwareEngine::new)
126    }
127
128    /// Lists `PrivateCloud` resources in a given project and location.
129    ///
130    /// # Example
131    /// ```
132    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
133    /// use google_cloud_gax::paginator::ItemPaginator as _;
134    /// use google_cloud_vmwareengine_v1::Result;
135    /// async fn sample(
136    ///    client: &VmwareEngine, parent: &str
137    /// ) -> Result<()> {
138    ///     let mut list = client.list_private_clouds()
139    ///         .set_parent(parent)
140    ///         .by_item();
141    ///     while let Some(item) = list.next().await.transpose()? {
142    ///         println!("{:?}", item);
143    ///     }
144    ///     Ok(())
145    /// }
146    /// ```
147    pub fn list_private_clouds(&self) -> super::builder::vmware_engine::ListPrivateClouds {
148        super::builder::vmware_engine::ListPrivateClouds::new(self.inner.clone())
149    }
150
151    /// Retrieves a `PrivateCloud` resource by its resource name.
152    ///
153    /// # Example
154    /// ```
155    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
156    /// use google_cloud_vmwareengine_v1::Result;
157    /// async fn sample(
158    ///    client: &VmwareEngine, name: &str
159    /// ) -> Result<()> {
160    ///     let response = client.get_private_cloud()
161    ///         .set_name(name)
162    ///         .send().await?;
163    ///     println!("response {:?}", response);
164    ///     Ok(())
165    /// }
166    /// ```
167    pub fn get_private_cloud(&self) -> super::builder::vmware_engine::GetPrivateCloud {
168        super::builder::vmware_engine::GetPrivateCloud::new(self.inner.clone())
169    }
170
171    /// Creates a new `PrivateCloud` resource in a given project and location.
172    /// Private clouds of type `STANDARD` and
173    /// `TIME_LIMITED` are zonal resources, `STRETCHED` private clouds are
174    /// regional.
175    /// Creating a private cloud also creates a [management
176    /// cluster](https://cloud.google.com/vmware-engine/docs/concepts-vmware-components)
177    /// for that private cloud.
178    ///
179    /// # Long running operations
180    ///
181    /// This method is used to start, and/or poll a [long-running Operation].
182    /// The [Working with long-running operations] chapter in the [user guide]
183    /// covers these operations in detail.
184    ///
185    /// [long-running operation]: https://google.aip.dev/151
186    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
187    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
188    ///
189    /// # Example
190    /// ```
191    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
192    /// use google_cloud_lro::Poller;
193    /// use google_cloud_vmwareengine_v1::model::PrivateCloud;
194    /// use google_cloud_vmwareengine_v1::Result;
195    /// async fn sample(
196    ///    client: &VmwareEngine, parent: &str
197    /// ) -> Result<()> {
198    ///     let response = client.create_private_cloud()
199    ///         .set_parent(parent)
200    ///         .set_private_cloud(
201    ///             PrivateCloud::new()/* set fields */
202    ///         )
203    ///         .poller().until_done().await?;
204    ///     println!("response {:?}", response);
205    ///     Ok(())
206    /// }
207    /// ```
208    pub fn create_private_cloud(&self) -> super::builder::vmware_engine::CreatePrivateCloud {
209        super::builder::vmware_engine::CreatePrivateCloud::new(self.inner.clone())
210    }
211
212    /// Modifies a `PrivateCloud` resource. Only the following fields can be
213    /// updated: `description`.
214    /// Only fields specified in `updateMask` are applied.
215    ///
216    /// During operation processing, the resource is temporarily in the `ACTIVE`
217    /// state before the operation fully completes. For that period of time, you
218    /// can't update the resource. Use the operation status to determine when the
219    /// processing fully completes.
220    ///
221    /// # Long running operations
222    ///
223    /// This method is used to start, and/or poll a [long-running Operation].
224    /// The [Working with long-running operations] chapter in the [user guide]
225    /// covers these operations in detail.
226    ///
227    /// [long-running operation]: https://google.aip.dev/151
228    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
229    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
230    ///
231    /// # Example
232    /// ```
233    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
234    /// use google_cloud_lro::Poller;
235    /// # extern crate wkt as google_cloud_wkt;
236    /// use google_cloud_wkt::FieldMask;
237    /// use google_cloud_vmwareengine_v1::model::PrivateCloud;
238    /// use google_cloud_vmwareengine_v1::Result;
239    /// async fn sample(
240    ///    client: &VmwareEngine, name: &str
241    /// ) -> Result<()> {
242    ///     let response = client.update_private_cloud()
243    ///         .set_private_cloud(
244    ///             PrivateCloud::new().set_name(name)/* set fields */
245    ///         )
246    ///         .set_update_mask(FieldMask::default().set_paths(["updated.field.path1", "updated.field.path2"]))
247    ///         .poller().until_done().await?;
248    ///     println!("response {:?}", response);
249    ///     Ok(())
250    /// }
251    /// ```
252    pub fn update_private_cloud(&self) -> super::builder::vmware_engine::UpdatePrivateCloud {
253        super::builder::vmware_engine::UpdatePrivateCloud::new(self.inner.clone())
254    }
255
256    /// Schedules a `PrivateCloud` resource for deletion.
257    ///
258    /// A `PrivateCloud` resource scheduled for deletion has `PrivateCloud.state`
259    /// set to `DELETED` and `expireTime` set to the time when deletion is final
260    /// and can no longer be reversed. The delete operation is marked as done
261    /// as soon as the `PrivateCloud` is successfully scheduled for deletion
262    /// (this also applies when `delayHours` is set to zero), and the operation is
263    /// not kept in pending state until `PrivateCloud` is purged.
264    /// `PrivateCloud` can be restored using `UndeletePrivateCloud` method before
265    /// the `expireTime` elapses. When `expireTime` is reached, deletion is final
266    /// and all private cloud resources are irreversibly removed and billing stops.
267    /// During the final removal process, `PrivateCloud.state` is set to `PURGING`.
268    /// `PrivateCloud` can be polled using standard `GET` method for the whole
269    /// period of deletion and purging. It will not be returned only
270    /// when it is completely purged.
271    ///
272    /// # Long running operations
273    ///
274    /// This method is used to start, and/or poll a [long-running Operation].
275    /// The [Working with long-running operations] chapter in the [user guide]
276    /// covers these operations in detail.
277    ///
278    /// [long-running operation]: https://google.aip.dev/151
279    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
280    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
281    ///
282    /// # Example
283    /// ```
284    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
285    /// use google_cloud_lro::Poller;
286    /// use google_cloud_vmwareengine_v1::Result;
287    /// async fn sample(
288    ///    client: &VmwareEngine, name: &str
289    /// ) -> Result<()> {
290    ///     let response = client.delete_private_cloud()
291    ///         .set_name(name)
292    ///         .poller().until_done().await?;
293    ///     println!("response {:?}", response);
294    ///     Ok(())
295    /// }
296    /// ```
297    pub fn delete_private_cloud(&self) -> super::builder::vmware_engine::DeletePrivateCloud {
298        super::builder::vmware_engine::DeletePrivateCloud::new(self.inner.clone())
299    }
300
301    /// Restores a private cloud that was previously scheduled for deletion by
302    /// `DeletePrivateCloud`. A `PrivateCloud` resource scheduled for deletion has
303    /// `PrivateCloud.state` set to `DELETED` and `PrivateCloud.expireTime` set to
304    /// the time when deletion can no longer be reversed.
305    ///
306    /// # Long running operations
307    ///
308    /// This method is used to start, and/or poll a [long-running Operation].
309    /// The [Working with long-running operations] chapter in the [user guide]
310    /// covers these operations in detail.
311    ///
312    /// [long-running operation]: https://google.aip.dev/151
313    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
314    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
315    ///
316    /// # Example
317    /// ```
318    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
319    /// use google_cloud_lro::Poller;
320    /// use google_cloud_vmwareengine_v1::Result;
321    /// async fn sample(
322    ///    client: &VmwareEngine, name: &str
323    /// ) -> Result<()> {
324    ///     let response = client.undelete_private_cloud()
325    ///         .set_name(name)
326    ///         .poller().until_done().await?;
327    ///     println!("response {:?}", response);
328    ///     Ok(())
329    /// }
330    /// ```
331    pub fn undelete_private_cloud(&self) -> super::builder::vmware_engine::UndeletePrivateCloud {
332        super::builder::vmware_engine::UndeletePrivateCloud::new(self.inner.clone())
333    }
334
335    /// Lists `Cluster` resources in a given private cloud.
336    ///
337    /// # Example
338    /// ```
339    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
340    /// use google_cloud_gax::paginator::ItemPaginator as _;
341    /// use google_cloud_vmwareengine_v1::Result;
342    /// async fn sample(
343    ///    client: &VmwareEngine, parent: &str
344    /// ) -> Result<()> {
345    ///     let mut list = client.list_clusters()
346    ///         .set_parent(parent)
347    ///         .by_item();
348    ///     while let Some(item) = list.next().await.transpose()? {
349    ///         println!("{:?}", item);
350    ///     }
351    ///     Ok(())
352    /// }
353    /// ```
354    pub fn list_clusters(&self) -> super::builder::vmware_engine::ListClusters {
355        super::builder::vmware_engine::ListClusters::new(self.inner.clone())
356    }
357
358    /// Retrieves a `Cluster` resource by its resource name.
359    ///
360    /// # Example
361    /// ```
362    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
363    /// use google_cloud_vmwareengine_v1::Result;
364    /// async fn sample(
365    ///    client: &VmwareEngine, name: &str
366    /// ) -> Result<()> {
367    ///     let response = client.get_cluster()
368    ///         .set_name(name)
369    ///         .send().await?;
370    ///     println!("response {:?}", response);
371    ///     Ok(())
372    /// }
373    /// ```
374    pub fn get_cluster(&self) -> super::builder::vmware_engine::GetCluster {
375        super::builder::vmware_engine::GetCluster::new(self.inner.clone())
376    }
377
378    /// Creates a new cluster in a given private cloud.
379    /// Creating a new cluster provides additional nodes for
380    /// use in the parent private cloud and requires sufficient [node
381    /// quota](https://cloud.google.com/vmware-engine/quotas).
382    ///
383    /// # Long running operations
384    ///
385    /// This method is used to start, and/or poll a [long-running Operation].
386    /// The [Working with long-running operations] chapter in the [user guide]
387    /// covers these operations in detail.
388    ///
389    /// [long-running operation]: https://google.aip.dev/151
390    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
391    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
392    ///
393    /// # Example
394    /// ```
395    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
396    /// use google_cloud_lro::Poller;
397    /// use google_cloud_vmwareengine_v1::model::Cluster;
398    /// use google_cloud_vmwareengine_v1::Result;
399    /// async fn sample(
400    ///    client: &VmwareEngine, parent: &str
401    /// ) -> Result<()> {
402    ///     let response = client.create_cluster()
403    ///         .set_parent(parent)
404    ///         .set_cluster_id("cluster_id_value")
405    ///         .set_cluster(
406    ///             Cluster::new()/* set fields */
407    ///         )
408    ///         .poller().until_done().await?;
409    ///     println!("response {:?}", response);
410    ///     Ok(())
411    /// }
412    /// ```
413    pub fn create_cluster(&self) -> super::builder::vmware_engine::CreateCluster {
414        super::builder::vmware_engine::CreateCluster::new(self.inner.clone())
415    }
416
417    /// Modifies a `Cluster` resource. Only fields specified in `updateMask` are
418    /// applied.
419    ///
420    /// During operation processing, the resource is temporarily in the `ACTIVE`
421    /// state before the operation fully completes. For that period of time, you
422    /// can't update the resource. Use the operation status to determine when the
423    /// processing fully completes.
424    ///
425    /// # Long running operations
426    ///
427    /// This method is used to start, and/or poll a [long-running Operation].
428    /// The [Working with long-running operations] chapter in the [user guide]
429    /// covers these operations in detail.
430    ///
431    /// [long-running operation]: https://google.aip.dev/151
432    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
433    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
434    ///
435    /// # Example
436    /// ```
437    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
438    /// use google_cloud_lro::Poller;
439    /// # extern crate wkt as google_cloud_wkt;
440    /// use google_cloud_wkt::FieldMask;
441    /// use google_cloud_vmwareengine_v1::model::Cluster;
442    /// use google_cloud_vmwareengine_v1::Result;
443    /// async fn sample(
444    ///    client: &VmwareEngine, name: &str
445    /// ) -> Result<()> {
446    ///     let response = client.update_cluster()
447    ///         .set_cluster(
448    ///             Cluster::new().set_name(name)/* set fields */
449    ///         )
450    ///         .set_update_mask(FieldMask::default().set_paths(["updated.field.path1", "updated.field.path2"]))
451    ///         .poller().until_done().await?;
452    ///     println!("response {:?}", response);
453    ///     Ok(())
454    /// }
455    /// ```
456    pub fn update_cluster(&self) -> super::builder::vmware_engine::UpdateCluster {
457        super::builder::vmware_engine::UpdateCluster::new(self.inner.clone())
458    }
459
460    /// Deletes a `Cluster` resource. To avoid unintended data loss, migrate or
461    /// gracefully shut down any workloads running on the cluster before deletion.
462    /// You cannot delete the management cluster of a private cloud using this
463    /// method.
464    ///
465    /// # Long running operations
466    ///
467    /// This method is used to start, and/or poll a [long-running Operation].
468    /// The [Working with long-running operations] chapter in the [user guide]
469    /// covers these operations in detail.
470    ///
471    /// [long-running operation]: https://google.aip.dev/151
472    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
473    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
474    ///
475    /// # Example
476    /// ```
477    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
478    /// use google_cloud_lro::Poller;
479    /// use google_cloud_vmwareengine_v1::Result;
480    /// async fn sample(
481    ///    client: &VmwareEngine, name: &str
482    /// ) -> Result<()> {
483    ///     client.delete_cluster()
484    ///         .set_name(name)
485    ///         .poller().until_done().await?;
486    ///     Ok(())
487    /// }
488    /// ```
489    pub fn delete_cluster(&self) -> super::builder::vmware_engine::DeleteCluster {
490        super::builder::vmware_engine::DeleteCluster::new(self.inner.clone())
491    }
492
493    /// Lists nodes in a given cluster.
494    ///
495    /// # Example
496    /// ```
497    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
498    /// use google_cloud_gax::paginator::ItemPaginator as _;
499    /// use google_cloud_vmwareengine_v1::Result;
500    /// async fn sample(
501    ///    client: &VmwareEngine, parent: &str
502    /// ) -> Result<()> {
503    ///     let mut list = client.list_nodes()
504    ///         .set_parent(parent)
505    ///         .by_item();
506    ///     while let Some(item) = list.next().await.transpose()? {
507    ///         println!("{:?}", item);
508    ///     }
509    ///     Ok(())
510    /// }
511    /// ```
512    pub fn list_nodes(&self) -> super::builder::vmware_engine::ListNodes {
513        super::builder::vmware_engine::ListNodes::new(self.inner.clone())
514    }
515
516    /// Gets details of a single node.
517    ///
518    /// # Example
519    /// ```
520    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
521    /// use google_cloud_vmwareengine_v1::Result;
522    /// async fn sample(
523    ///    client: &VmwareEngine, name: &str
524    /// ) -> Result<()> {
525    ///     let response = client.get_node()
526    ///         .set_name(name)
527    ///         .send().await?;
528    ///     println!("response {:?}", response);
529    ///     Ok(())
530    /// }
531    /// ```
532    pub fn get_node(&self) -> super::builder::vmware_engine::GetNode {
533        super::builder::vmware_engine::GetNode::new(self.inner.clone())
534    }
535
536    /// Lists external IP addresses assigned to VMware workload VMs in a given
537    /// private cloud.
538    ///
539    /// # Example
540    /// ```
541    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
542    /// use google_cloud_gax::paginator::ItemPaginator as _;
543    /// use google_cloud_vmwareengine_v1::Result;
544    /// async fn sample(
545    ///    client: &VmwareEngine, parent: &str
546    /// ) -> Result<()> {
547    ///     let mut list = client.list_external_addresses()
548    ///         .set_parent(parent)
549    ///         .by_item();
550    ///     while let Some(item) = list.next().await.transpose()? {
551    ///         println!("{:?}", item);
552    ///     }
553    ///     Ok(())
554    /// }
555    /// ```
556    pub fn list_external_addresses(&self) -> super::builder::vmware_engine::ListExternalAddresses {
557        super::builder::vmware_engine::ListExternalAddresses::new(self.inner.clone())
558    }
559
560    /// Lists external IP addresses assigned to VMware workload VMs within the
561    /// scope of the given network policy.
562    ///
563    /// # Example
564    /// ```
565    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
566    /// use google_cloud_gax::paginator::ItemPaginator as _;
567    /// use google_cloud_vmwareengine_v1::Result;
568    /// async fn sample(
569    ///    client: &VmwareEngine
570    /// ) -> Result<()> {
571    ///     let mut list = client.fetch_network_policy_external_addresses()
572    ///         /* set fields */
573    ///         .by_item();
574    ///     while let Some(item) = list.next().await.transpose()? {
575    ///         println!("{:?}", item);
576    ///     }
577    ///     Ok(())
578    /// }
579    /// ```
580    pub fn fetch_network_policy_external_addresses(
581        &self,
582    ) -> super::builder::vmware_engine::FetchNetworkPolicyExternalAddresses {
583        super::builder::vmware_engine::FetchNetworkPolicyExternalAddresses::new(self.inner.clone())
584    }
585
586    /// Gets details of a single external IP address.
587    ///
588    /// # Example
589    /// ```
590    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
591    /// use google_cloud_vmwareengine_v1::Result;
592    /// async fn sample(
593    ///    client: &VmwareEngine, name: &str
594    /// ) -> Result<()> {
595    ///     let response = client.get_external_address()
596    ///         .set_name(name)
597    ///         .send().await?;
598    ///     println!("response {:?}", response);
599    ///     Ok(())
600    /// }
601    /// ```
602    pub fn get_external_address(&self) -> super::builder::vmware_engine::GetExternalAddress {
603        super::builder::vmware_engine::GetExternalAddress::new(self.inner.clone())
604    }
605
606    /// Creates a new `ExternalAddress` resource in a given private cloud. The
607    /// network policy that corresponds to the private cloud must have the external
608    /// IP address network service enabled (`NetworkPolicy.external_ip`).
609    ///
610    /// # Long running operations
611    ///
612    /// This method is used to start, and/or poll a [long-running Operation].
613    /// The [Working with long-running operations] chapter in the [user guide]
614    /// covers these operations in detail.
615    ///
616    /// [long-running operation]: https://google.aip.dev/151
617    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
618    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
619    ///
620    /// # Example
621    /// ```
622    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
623    /// use google_cloud_lro::Poller;
624    /// use google_cloud_vmwareengine_v1::model::ExternalAddress;
625    /// use google_cloud_vmwareengine_v1::Result;
626    /// async fn sample(
627    ///    client: &VmwareEngine, parent: &str
628    /// ) -> Result<()> {
629    ///     let response = client.create_external_address()
630    ///         .set_parent(parent)
631    ///         .set_external_address(
632    ///             ExternalAddress::new()/* set fields */
633    ///         )
634    ///         .poller().until_done().await?;
635    ///     println!("response {:?}", response);
636    ///     Ok(())
637    /// }
638    /// ```
639    pub fn create_external_address(&self) -> super::builder::vmware_engine::CreateExternalAddress {
640        super::builder::vmware_engine::CreateExternalAddress::new(self.inner.clone())
641    }
642
643    /// Updates the parameters of a single external IP address.
644    /// Only fields specified in `update_mask` are applied.
645    ///
646    /// During operation processing, the resource is temporarily in the `ACTIVE`
647    /// state before the operation fully completes. For that period of time, you
648    /// can't update the resource. Use the operation status to determine when the
649    /// processing fully completes.
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    ///
661    /// # Example
662    /// ```
663    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
664    /// use google_cloud_lro::Poller;
665    /// # extern crate wkt as google_cloud_wkt;
666    /// use google_cloud_wkt::FieldMask;
667    /// use google_cloud_vmwareengine_v1::model::ExternalAddress;
668    /// use google_cloud_vmwareengine_v1::Result;
669    /// async fn sample(
670    ///    client: &VmwareEngine, name: &str
671    /// ) -> Result<()> {
672    ///     let response = client.update_external_address()
673    ///         .set_external_address(
674    ///             ExternalAddress::new().set_name(name)/* set fields */
675    ///         )
676    ///         .set_update_mask(FieldMask::default().set_paths(["updated.field.path1", "updated.field.path2"]))
677    ///         .poller().until_done().await?;
678    ///     println!("response {:?}", response);
679    ///     Ok(())
680    /// }
681    /// ```
682    pub fn update_external_address(&self) -> super::builder::vmware_engine::UpdateExternalAddress {
683        super::builder::vmware_engine::UpdateExternalAddress::new(self.inner.clone())
684    }
685
686    /// Deletes a single external IP address. When you delete an external IP
687    /// address, connectivity between the external IP address and the corresponding
688    /// internal IP address is lost.
689    ///
690    /// # Long running operations
691    ///
692    /// This method is used to start, and/or poll a [long-running Operation].
693    /// The [Working with long-running operations] chapter in the [user guide]
694    /// covers these operations in detail.
695    ///
696    /// [long-running operation]: https://google.aip.dev/151
697    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
698    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
699    ///
700    /// # Example
701    /// ```
702    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
703    /// use google_cloud_lro::Poller;
704    /// use google_cloud_vmwareengine_v1::Result;
705    /// async fn sample(
706    ///    client: &VmwareEngine, name: &str
707    /// ) -> Result<()> {
708    ///     client.delete_external_address()
709    ///         .set_name(name)
710    ///         .poller().until_done().await?;
711    ///     Ok(())
712    /// }
713    /// ```
714    pub fn delete_external_address(&self) -> super::builder::vmware_engine::DeleteExternalAddress {
715        super::builder::vmware_engine::DeleteExternalAddress::new(self.inner.clone())
716    }
717
718    /// Lists subnets in a given private cloud.
719    ///
720    /// # Example
721    /// ```
722    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
723    /// use google_cloud_gax::paginator::ItemPaginator as _;
724    /// use google_cloud_vmwareengine_v1::Result;
725    /// async fn sample(
726    ///    client: &VmwareEngine, parent: &str
727    /// ) -> Result<()> {
728    ///     let mut list = client.list_subnets()
729    ///         .set_parent(parent)
730    ///         .by_item();
731    ///     while let Some(item) = list.next().await.transpose()? {
732    ///         println!("{:?}", item);
733    ///     }
734    ///     Ok(())
735    /// }
736    /// ```
737    pub fn list_subnets(&self) -> super::builder::vmware_engine::ListSubnets {
738        super::builder::vmware_engine::ListSubnets::new(self.inner.clone())
739    }
740
741    /// Gets details of a single subnet.
742    ///
743    /// # Example
744    /// ```
745    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
746    /// use google_cloud_vmwareengine_v1::Result;
747    /// async fn sample(
748    ///    client: &VmwareEngine, name: &str
749    /// ) -> Result<()> {
750    ///     let response = client.get_subnet()
751    ///         .set_name(name)
752    ///         .send().await?;
753    ///     println!("response {:?}", response);
754    ///     Ok(())
755    /// }
756    /// ```
757    pub fn get_subnet(&self) -> super::builder::vmware_engine::GetSubnet {
758        super::builder::vmware_engine::GetSubnet::new(self.inner.clone())
759    }
760
761    /// Updates the parameters of a single subnet. Only fields specified in
762    /// `update_mask` are applied.
763    ///
764    /// *Note*: This API is synchronous and always returns a successful
765    /// `google.longrunning.Operation` (LRO). The returned LRO will only have
766    /// `done` and `response` fields.
767    ///
768    /// # Long running operations
769    ///
770    /// This method is used to start, and/or poll a [long-running Operation].
771    /// The [Working with long-running operations] chapter in the [user guide]
772    /// covers these operations in detail.
773    ///
774    /// [long-running operation]: https://google.aip.dev/151
775    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
776    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
777    ///
778    /// # Example
779    /// ```
780    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
781    /// use google_cloud_lro::Poller;
782    /// # extern crate wkt as google_cloud_wkt;
783    /// use google_cloud_wkt::FieldMask;
784    /// use google_cloud_vmwareengine_v1::model::Subnet;
785    /// use google_cloud_vmwareengine_v1::Result;
786    /// async fn sample(
787    ///    client: &VmwareEngine, name: &str
788    /// ) -> Result<()> {
789    ///     let response = client.update_subnet()
790    ///         .set_subnet(
791    ///             Subnet::new().set_name(name)/* set fields */
792    ///         )
793    ///         .set_update_mask(FieldMask::default().set_paths(["updated.field.path1", "updated.field.path2"]))
794    ///         .poller().until_done().await?;
795    ///     println!("response {:?}", response);
796    ///     Ok(())
797    /// }
798    /// ```
799    pub fn update_subnet(&self) -> super::builder::vmware_engine::UpdateSubnet {
800        super::builder::vmware_engine::UpdateSubnet::new(self.inner.clone())
801    }
802
803    /// Lists `ExternalAccessRule` resources in the specified network policy.
804    ///
805    /// # Example
806    /// ```
807    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
808    /// use google_cloud_gax::paginator::ItemPaginator as _;
809    /// use google_cloud_vmwareengine_v1::Result;
810    /// async fn sample(
811    ///    client: &VmwareEngine, parent: &str
812    /// ) -> Result<()> {
813    ///     let mut list = client.list_external_access_rules()
814    ///         .set_parent(parent)
815    ///         .by_item();
816    ///     while let Some(item) = list.next().await.transpose()? {
817    ///         println!("{:?}", item);
818    ///     }
819    ///     Ok(())
820    /// }
821    /// ```
822    pub fn list_external_access_rules(
823        &self,
824    ) -> super::builder::vmware_engine::ListExternalAccessRules {
825        super::builder::vmware_engine::ListExternalAccessRules::new(self.inner.clone())
826    }
827
828    /// Gets details of a single external access rule.
829    ///
830    /// # Example
831    /// ```
832    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
833    /// use google_cloud_vmwareengine_v1::Result;
834    /// async fn sample(
835    ///    client: &VmwareEngine, name: &str
836    /// ) -> Result<()> {
837    ///     let response = client.get_external_access_rule()
838    ///         .set_name(name)
839    ///         .send().await?;
840    ///     println!("response {:?}", response);
841    ///     Ok(())
842    /// }
843    /// ```
844    pub fn get_external_access_rule(&self) -> super::builder::vmware_engine::GetExternalAccessRule {
845        super::builder::vmware_engine::GetExternalAccessRule::new(self.inner.clone())
846    }
847
848    /// Creates a new external access rule in a given network policy.
849    ///
850    /// # Long running operations
851    ///
852    /// This method is used to start, and/or poll a [long-running Operation].
853    /// The [Working with long-running operations] chapter in the [user guide]
854    /// covers these operations in detail.
855    ///
856    /// [long-running operation]: https://google.aip.dev/151
857    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
858    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
859    ///
860    /// # Example
861    /// ```
862    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
863    /// use google_cloud_lro::Poller;
864    /// use google_cloud_vmwareengine_v1::model::ExternalAccessRule;
865    /// use google_cloud_vmwareengine_v1::Result;
866    /// async fn sample(
867    ///    client: &VmwareEngine, parent: &str
868    /// ) -> Result<()> {
869    ///     let response = client.create_external_access_rule()
870    ///         .set_parent(parent)
871    ///         .set_external_access_rule(
872    ///             ExternalAccessRule::new()/* set fields */
873    ///         )
874    ///         .poller().until_done().await?;
875    ///     println!("response {:?}", response);
876    ///     Ok(())
877    /// }
878    /// ```
879    pub fn create_external_access_rule(
880        &self,
881    ) -> super::builder::vmware_engine::CreateExternalAccessRule {
882        super::builder::vmware_engine::CreateExternalAccessRule::new(self.inner.clone())
883    }
884
885    /// Updates the parameters of a single external access rule.
886    /// Only fields specified in `update_mask` are applied.
887    ///
888    /// # Long running operations
889    ///
890    /// This method is used to start, and/or poll a [long-running Operation].
891    /// The [Working with long-running operations] chapter in the [user guide]
892    /// covers these operations in detail.
893    ///
894    /// [long-running operation]: https://google.aip.dev/151
895    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
896    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
897    ///
898    /// # Example
899    /// ```
900    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
901    /// use google_cloud_lro::Poller;
902    /// # extern crate wkt as google_cloud_wkt;
903    /// use google_cloud_wkt::FieldMask;
904    /// use google_cloud_vmwareengine_v1::model::ExternalAccessRule;
905    /// use google_cloud_vmwareengine_v1::Result;
906    /// async fn sample(
907    ///    client: &VmwareEngine, name: &str
908    /// ) -> Result<()> {
909    ///     let response = client.update_external_access_rule()
910    ///         .set_external_access_rule(
911    ///             ExternalAccessRule::new().set_name(name)/* set fields */
912    ///         )
913    ///         .set_update_mask(FieldMask::default().set_paths(["updated.field.path1", "updated.field.path2"]))
914    ///         .poller().until_done().await?;
915    ///     println!("response {:?}", response);
916    ///     Ok(())
917    /// }
918    /// ```
919    pub fn update_external_access_rule(
920        &self,
921    ) -> super::builder::vmware_engine::UpdateExternalAccessRule {
922        super::builder::vmware_engine::UpdateExternalAccessRule::new(self.inner.clone())
923    }
924
925    /// Deletes a single external access rule.
926    ///
927    /// # Long running operations
928    ///
929    /// This method is used to start, and/or poll a [long-running Operation].
930    /// The [Working with long-running operations] chapter in the [user guide]
931    /// covers these operations in detail.
932    ///
933    /// [long-running operation]: https://google.aip.dev/151
934    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
935    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
936    ///
937    /// # Example
938    /// ```
939    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
940    /// use google_cloud_lro::Poller;
941    /// use google_cloud_vmwareengine_v1::Result;
942    /// async fn sample(
943    ///    client: &VmwareEngine, name: &str
944    /// ) -> Result<()> {
945    ///     client.delete_external_access_rule()
946    ///         .set_name(name)
947    ///         .poller().until_done().await?;
948    ///     Ok(())
949    /// }
950    /// ```
951    pub fn delete_external_access_rule(
952        &self,
953    ) -> super::builder::vmware_engine::DeleteExternalAccessRule {
954        super::builder::vmware_engine::DeleteExternalAccessRule::new(self.inner.clone())
955    }
956
957    /// Lists logging servers configured for a given private
958    /// cloud.
959    ///
960    /// # Example
961    /// ```
962    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
963    /// use google_cloud_gax::paginator::ItemPaginator as _;
964    /// use google_cloud_vmwareengine_v1::Result;
965    /// async fn sample(
966    ///    client: &VmwareEngine, parent: &str
967    /// ) -> Result<()> {
968    ///     let mut list = client.list_logging_servers()
969    ///         .set_parent(parent)
970    ///         .by_item();
971    ///     while let Some(item) = list.next().await.transpose()? {
972    ///         println!("{:?}", item);
973    ///     }
974    ///     Ok(())
975    /// }
976    /// ```
977    pub fn list_logging_servers(&self) -> super::builder::vmware_engine::ListLoggingServers {
978        super::builder::vmware_engine::ListLoggingServers::new(self.inner.clone())
979    }
980
981    /// Gets details of a logging server.
982    ///
983    /// # Example
984    /// ```
985    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
986    /// use google_cloud_vmwareengine_v1::Result;
987    /// async fn sample(
988    ///    client: &VmwareEngine, name: &str
989    /// ) -> Result<()> {
990    ///     let response = client.get_logging_server()
991    ///         .set_name(name)
992    ///         .send().await?;
993    ///     println!("response {:?}", response);
994    ///     Ok(())
995    /// }
996    /// ```
997    pub fn get_logging_server(&self) -> super::builder::vmware_engine::GetLoggingServer {
998        super::builder::vmware_engine::GetLoggingServer::new(self.inner.clone())
999    }
1000
1001    /// Create a new logging server for a given private cloud.
1002    ///
1003    /// # Long running operations
1004    ///
1005    /// This method is used to start, and/or poll a [long-running Operation].
1006    /// The [Working with long-running operations] chapter in the [user guide]
1007    /// covers these operations in detail.
1008    ///
1009    /// [long-running operation]: https://google.aip.dev/151
1010    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
1011    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
1012    ///
1013    /// # Example
1014    /// ```
1015    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
1016    /// use google_cloud_lro::Poller;
1017    /// use google_cloud_vmwareengine_v1::model::LoggingServer;
1018    /// use google_cloud_vmwareengine_v1::Result;
1019    /// async fn sample(
1020    ///    client: &VmwareEngine, parent: &str
1021    /// ) -> Result<()> {
1022    ///     let response = client.create_logging_server()
1023    ///         .set_parent(parent)
1024    ///         .set_logging_server(
1025    ///             LoggingServer::new()/* set fields */
1026    ///         )
1027    ///         .poller().until_done().await?;
1028    ///     println!("response {:?}", response);
1029    ///     Ok(())
1030    /// }
1031    /// ```
1032    pub fn create_logging_server(&self) -> super::builder::vmware_engine::CreateLoggingServer {
1033        super::builder::vmware_engine::CreateLoggingServer::new(self.inner.clone())
1034    }
1035
1036    /// Updates the parameters of a single logging server.
1037    /// Only fields specified in `update_mask` are applied.
1038    ///
1039    /// # Long running operations
1040    ///
1041    /// This method is used to start, and/or poll a [long-running Operation].
1042    /// The [Working with long-running operations] chapter in the [user guide]
1043    /// covers these operations in detail.
1044    ///
1045    /// [long-running operation]: https://google.aip.dev/151
1046    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
1047    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
1048    ///
1049    /// # Example
1050    /// ```
1051    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
1052    /// use google_cloud_lro::Poller;
1053    /// # extern crate wkt as google_cloud_wkt;
1054    /// use google_cloud_wkt::FieldMask;
1055    /// use google_cloud_vmwareengine_v1::model::LoggingServer;
1056    /// use google_cloud_vmwareengine_v1::Result;
1057    /// async fn sample(
1058    ///    client: &VmwareEngine, name: &str
1059    /// ) -> Result<()> {
1060    ///     let response = client.update_logging_server()
1061    ///         .set_logging_server(
1062    ///             LoggingServer::new().set_name(name)/* set fields */
1063    ///         )
1064    ///         .set_update_mask(FieldMask::default().set_paths(["updated.field.path1", "updated.field.path2"]))
1065    ///         .poller().until_done().await?;
1066    ///     println!("response {:?}", response);
1067    ///     Ok(())
1068    /// }
1069    /// ```
1070    pub fn update_logging_server(&self) -> super::builder::vmware_engine::UpdateLoggingServer {
1071        super::builder::vmware_engine::UpdateLoggingServer::new(self.inner.clone())
1072    }
1073
1074    /// Deletes a single logging server.
1075    ///
1076    /// # Long running operations
1077    ///
1078    /// This method is used to start, and/or poll a [long-running Operation].
1079    /// The [Working with long-running operations] chapter in the [user guide]
1080    /// covers these operations in detail.
1081    ///
1082    /// [long-running operation]: https://google.aip.dev/151
1083    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
1084    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
1085    ///
1086    /// # Example
1087    /// ```
1088    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
1089    /// use google_cloud_lro::Poller;
1090    /// use google_cloud_vmwareengine_v1::Result;
1091    /// async fn sample(
1092    ///    client: &VmwareEngine, name: &str
1093    /// ) -> Result<()> {
1094    ///     client.delete_logging_server()
1095    ///         .set_name(name)
1096    ///         .poller().until_done().await?;
1097    ///     Ok(())
1098    /// }
1099    /// ```
1100    pub fn delete_logging_server(&self) -> super::builder::vmware_engine::DeleteLoggingServer {
1101        super::builder::vmware_engine::DeleteLoggingServer::new(self.inner.clone())
1102    }
1103
1104    /// Lists node types
1105    ///
1106    /// # Example
1107    /// ```
1108    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
1109    /// use google_cloud_gax::paginator::ItemPaginator as _;
1110    /// use google_cloud_vmwareengine_v1::Result;
1111    /// async fn sample(
1112    ///    client: &VmwareEngine, parent: &str
1113    /// ) -> Result<()> {
1114    ///     let mut list = client.list_node_types()
1115    ///         .set_parent(parent)
1116    ///         .by_item();
1117    ///     while let Some(item) = list.next().await.transpose()? {
1118    ///         println!("{:?}", item);
1119    ///     }
1120    ///     Ok(())
1121    /// }
1122    /// ```
1123    pub fn list_node_types(&self) -> super::builder::vmware_engine::ListNodeTypes {
1124        super::builder::vmware_engine::ListNodeTypes::new(self.inner.clone())
1125    }
1126
1127    /// Gets details of a single `NodeType`.
1128    ///
1129    /// # Example
1130    /// ```
1131    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
1132    /// use google_cloud_vmwareengine_v1::Result;
1133    /// async fn sample(
1134    ///    client: &VmwareEngine, name: &str
1135    /// ) -> Result<()> {
1136    ///     let response = client.get_node_type()
1137    ///         .set_name(name)
1138    ///         .send().await?;
1139    ///     println!("response {:?}", response);
1140    ///     Ok(())
1141    /// }
1142    /// ```
1143    pub fn get_node_type(&self) -> super::builder::vmware_engine::GetNodeType {
1144        super::builder::vmware_engine::GetNodeType::new(self.inner.clone())
1145    }
1146
1147    /// Gets details of credentials for NSX appliance.
1148    ///
1149    /// # Example
1150    /// ```
1151    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
1152    /// use google_cloud_vmwareengine_v1::Result;
1153    /// async fn sample(
1154    ///    client: &VmwareEngine
1155    /// ) -> Result<()> {
1156    ///     let response = client.show_nsx_credentials()
1157    ///         /* set fields */
1158    ///         .send().await?;
1159    ///     println!("response {:?}", response);
1160    ///     Ok(())
1161    /// }
1162    /// ```
1163    pub fn show_nsx_credentials(&self) -> super::builder::vmware_engine::ShowNsxCredentials {
1164        super::builder::vmware_engine::ShowNsxCredentials::new(self.inner.clone())
1165    }
1166
1167    /// Gets details of credentials for Vcenter appliance.
1168    ///
1169    /// # Example
1170    /// ```
1171    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
1172    /// use google_cloud_vmwareengine_v1::Result;
1173    /// async fn sample(
1174    ///    client: &VmwareEngine
1175    /// ) -> Result<()> {
1176    ///     let response = client.show_vcenter_credentials()
1177    ///         /* set fields */
1178    ///         .send().await?;
1179    ///     println!("response {:?}", response);
1180    ///     Ok(())
1181    /// }
1182    /// ```
1183    pub fn show_vcenter_credentials(
1184        &self,
1185    ) -> super::builder::vmware_engine::ShowVcenterCredentials {
1186        super::builder::vmware_engine::ShowVcenterCredentials::new(self.inner.clone())
1187    }
1188
1189    /// Resets credentials of the NSX appliance.
1190    ///
1191    /// # Long running operations
1192    ///
1193    /// This method is used to start, and/or poll a [long-running Operation].
1194    /// The [Working with long-running operations] chapter in the [user guide]
1195    /// covers these operations in detail.
1196    ///
1197    /// [long-running operation]: https://google.aip.dev/151
1198    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
1199    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
1200    ///
1201    /// # Example
1202    /// ```
1203    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
1204    /// use google_cloud_lro::Poller;
1205    /// use google_cloud_vmwareengine_v1::Result;
1206    /// async fn sample(
1207    ///    client: &VmwareEngine
1208    /// ) -> Result<()> {
1209    ///     let response = client.reset_nsx_credentials()
1210    ///         /* set fields */
1211    ///         .poller().until_done().await?;
1212    ///     println!("response {:?}", response);
1213    ///     Ok(())
1214    /// }
1215    /// ```
1216    pub fn reset_nsx_credentials(&self) -> super::builder::vmware_engine::ResetNsxCredentials {
1217        super::builder::vmware_engine::ResetNsxCredentials::new(self.inner.clone())
1218    }
1219
1220    /// Resets credentials of the Vcenter appliance.
1221    ///
1222    /// # Long running operations
1223    ///
1224    /// This method is used to start, and/or poll a [long-running Operation].
1225    /// The [Working with long-running operations] chapter in the [user guide]
1226    /// covers these operations in detail.
1227    ///
1228    /// [long-running operation]: https://google.aip.dev/151
1229    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
1230    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
1231    ///
1232    /// # Example
1233    /// ```
1234    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
1235    /// use google_cloud_lro::Poller;
1236    /// use google_cloud_vmwareengine_v1::Result;
1237    /// async fn sample(
1238    ///    client: &VmwareEngine
1239    /// ) -> Result<()> {
1240    ///     let response = client.reset_vcenter_credentials()
1241    ///         /* set fields */
1242    ///         .poller().until_done().await?;
1243    ///     println!("response {:?}", response);
1244    ///     Ok(())
1245    /// }
1246    /// ```
1247    pub fn reset_vcenter_credentials(
1248        &self,
1249    ) -> super::builder::vmware_engine::ResetVcenterCredentials {
1250        super::builder::vmware_engine::ResetVcenterCredentials::new(self.inner.clone())
1251    }
1252
1253    /// Gets details of the `DnsForwarding` config.
1254    ///
1255    /// # Example
1256    /// ```
1257    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
1258    /// use google_cloud_vmwareengine_v1::Result;
1259    /// async fn sample(
1260    ///    client: &VmwareEngine, name: &str
1261    /// ) -> Result<()> {
1262    ///     let response = client.get_dns_forwarding()
1263    ///         .set_name(name)
1264    ///         .send().await?;
1265    ///     println!("response {:?}", response);
1266    ///     Ok(())
1267    /// }
1268    /// ```
1269    pub fn get_dns_forwarding(&self) -> super::builder::vmware_engine::GetDnsForwarding {
1270        super::builder::vmware_engine::GetDnsForwarding::new(self.inner.clone())
1271    }
1272
1273    /// Updates the parameters of the `DnsForwarding` config, like associated
1274    /// domains. Only fields specified in `update_mask` are applied.
1275    ///
1276    /// # Long running operations
1277    ///
1278    /// This method is used to start, and/or poll a [long-running Operation].
1279    /// The [Working with long-running operations] chapter in the [user guide]
1280    /// covers these operations in detail.
1281    ///
1282    /// [long-running operation]: https://google.aip.dev/151
1283    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
1284    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
1285    ///
1286    /// # Example
1287    /// ```
1288    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
1289    /// use google_cloud_lro::Poller;
1290    /// # extern crate wkt as google_cloud_wkt;
1291    /// use google_cloud_wkt::FieldMask;
1292    /// use google_cloud_vmwareengine_v1::model::DnsForwarding;
1293    /// use google_cloud_vmwareengine_v1::Result;
1294    /// async fn sample(
1295    ///    client: &VmwareEngine, name: &str
1296    /// ) -> Result<()> {
1297    ///     let response = client.update_dns_forwarding()
1298    ///         .set_dns_forwarding(
1299    ///             DnsForwarding::new().set_name(name)/* set fields */
1300    ///         )
1301    ///         .set_update_mask(FieldMask::default().set_paths(["updated.field.path1", "updated.field.path2"]))
1302    ///         .poller().until_done().await?;
1303    ///     println!("response {:?}", response);
1304    ///     Ok(())
1305    /// }
1306    /// ```
1307    pub fn update_dns_forwarding(&self) -> super::builder::vmware_engine::UpdateDnsForwarding {
1308        super::builder::vmware_engine::UpdateDnsForwarding::new(self.inner.clone())
1309    }
1310
1311    /// Retrieves a `NetworkPeering` resource by its resource name. The resource
1312    /// contains details of the network peering, such as peered
1313    /// networks, import and export custom route configurations, and peering state.
1314    /// NetworkPeering is a global resource and location can only be global.
1315    ///
1316    /// # Example
1317    /// ```
1318    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
1319    /// use google_cloud_vmwareengine_v1::Result;
1320    /// async fn sample(
1321    ///    client: &VmwareEngine, name: &str
1322    /// ) -> Result<()> {
1323    ///     let response = client.get_network_peering()
1324    ///         .set_name(name)
1325    ///         .send().await?;
1326    ///     println!("response {:?}", response);
1327    ///     Ok(())
1328    /// }
1329    /// ```
1330    pub fn get_network_peering(&self) -> super::builder::vmware_engine::GetNetworkPeering {
1331        super::builder::vmware_engine::GetNetworkPeering::new(self.inner.clone())
1332    }
1333
1334    /// Lists `NetworkPeering` resources in a given project. NetworkPeering is a
1335    /// global resource and location can only be global.
1336    ///
1337    /// # Example
1338    /// ```
1339    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
1340    /// use google_cloud_gax::paginator::ItemPaginator as _;
1341    /// use google_cloud_vmwareengine_v1::Result;
1342    /// async fn sample(
1343    ///    client: &VmwareEngine, parent: &str
1344    /// ) -> Result<()> {
1345    ///     let mut list = client.list_network_peerings()
1346    ///         .set_parent(parent)
1347    ///         .by_item();
1348    ///     while let Some(item) = list.next().await.transpose()? {
1349    ///         println!("{:?}", item);
1350    ///     }
1351    ///     Ok(())
1352    /// }
1353    /// ```
1354    pub fn list_network_peerings(&self) -> super::builder::vmware_engine::ListNetworkPeerings {
1355        super::builder::vmware_engine::ListNetworkPeerings::new(self.inner.clone())
1356    }
1357
1358    /// Creates a new network peering between the peer network and VMware Engine
1359    /// network provided in a `NetworkPeering` resource. NetworkPeering is a
1360    /// global resource and location can only be global.
1361    ///
1362    /// # Long running operations
1363    ///
1364    /// This method is used to start, and/or poll a [long-running Operation].
1365    /// The [Working with long-running operations] chapter in the [user guide]
1366    /// covers these operations in detail.
1367    ///
1368    /// [long-running operation]: https://google.aip.dev/151
1369    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
1370    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
1371    ///
1372    /// # Example
1373    /// ```
1374    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
1375    /// use google_cloud_lro::Poller;
1376    /// use google_cloud_vmwareengine_v1::model::NetworkPeering;
1377    /// use google_cloud_vmwareengine_v1::Result;
1378    /// async fn sample(
1379    ///    client: &VmwareEngine, parent: &str
1380    /// ) -> Result<()> {
1381    ///     let response = client.create_network_peering()
1382    ///         .set_parent(parent)
1383    ///         .set_network_peering(
1384    ///             NetworkPeering::new()/* set fields */
1385    ///         )
1386    ///         .poller().until_done().await?;
1387    ///     println!("response {:?}", response);
1388    ///     Ok(())
1389    /// }
1390    /// ```
1391    pub fn create_network_peering(&self) -> super::builder::vmware_engine::CreateNetworkPeering {
1392        super::builder::vmware_engine::CreateNetworkPeering::new(self.inner.clone())
1393    }
1394
1395    /// Deletes a `NetworkPeering` resource. When a network peering is deleted for
1396    /// a VMware Engine network, the peer network becomes inaccessible to that
1397    /// VMware Engine network. NetworkPeering is a global resource and location can
1398    /// only be global.
1399    ///
1400    /// # Long running operations
1401    ///
1402    /// This method is used to start, and/or poll a [long-running Operation].
1403    /// The [Working with long-running operations] chapter in the [user guide]
1404    /// covers these operations in detail.
1405    ///
1406    /// [long-running operation]: https://google.aip.dev/151
1407    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
1408    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
1409    ///
1410    /// # Example
1411    /// ```
1412    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
1413    /// use google_cloud_lro::Poller;
1414    /// use google_cloud_vmwareengine_v1::Result;
1415    /// async fn sample(
1416    ///    client: &VmwareEngine, name: &str
1417    /// ) -> Result<()> {
1418    ///     client.delete_network_peering()
1419    ///         .set_name(name)
1420    ///         .poller().until_done().await?;
1421    ///     Ok(())
1422    /// }
1423    /// ```
1424    pub fn delete_network_peering(&self) -> super::builder::vmware_engine::DeleteNetworkPeering {
1425        super::builder::vmware_engine::DeleteNetworkPeering::new(self.inner.clone())
1426    }
1427
1428    /// Modifies a `NetworkPeering` resource. Only the `description` field can be
1429    /// updated. Only fields specified in `updateMask` are applied. NetworkPeering
1430    /// is a global resource and location can only be global.
1431    ///
1432    /// # Long running operations
1433    ///
1434    /// This method is used to start, and/or poll a [long-running Operation].
1435    /// The [Working with long-running operations] chapter in the [user guide]
1436    /// covers these operations in detail.
1437    ///
1438    /// [long-running operation]: https://google.aip.dev/151
1439    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
1440    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
1441    ///
1442    /// # Example
1443    /// ```
1444    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
1445    /// use google_cloud_lro::Poller;
1446    /// # extern crate wkt as google_cloud_wkt;
1447    /// use google_cloud_wkt::FieldMask;
1448    /// use google_cloud_vmwareengine_v1::model::NetworkPeering;
1449    /// use google_cloud_vmwareengine_v1::Result;
1450    /// async fn sample(
1451    ///    client: &VmwareEngine, name: &str
1452    /// ) -> Result<()> {
1453    ///     let response = client.update_network_peering()
1454    ///         .set_network_peering(
1455    ///             NetworkPeering::new().set_name(name)/* set fields */
1456    ///         )
1457    ///         .set_update_mask(FieldMask::default().set_paths(["updated.field.path1", "updated.field.path2"]))
1458    ///         .poller().until_done().await?;
1459    ///     println!("response {:?}", response);
1460    ///     Ok(())
1461    /// }
1462    /// ```
1463    pub fn update_network_peering(&self) -> super::builder::vmware_engine::UpdateNetworkPeering {
1464        super::builder::vmware_engine::UpdateNetworkPeering::new(self.inner.clone())
1465    }
1466
1467    /// Lists the network peering routes exchanged over a peering connection.
1468    /// NetworkPeering is a global resource and location can only be global.
1469    ///
1470    /// # Example
1471    /// ```
1472    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
1473    /// use google_cloud_gax::paginator::ItemPaginator as _;
1474    /// use google_cloud_vmwareengine_v1::Result;
1475    /// async fn sample(
1476    ///    client: &VmwareEngine
1477    /// ) -> Result<()> {
1478    ///     let mut list = client.list_peering_routes()
1479    ///         /* set fields */
1480    ///         .by_item();
1481    ///     while let Some(item) = list.next().await.transpose()? {
1482    ///         println!("{:?}", item);
1483    ///     }
1484    ///     Ok(())
1485    /// }
1486    /// ```
1487    pub fn list_peering_routes(&self) -> super::builder::vmware_engine::ListPeeringRoutes {
1488        super::builder::vmware_engine::ListPeeringRoutes::new(self.inner.clone())
1489    }
1490
1491    /// Creates a new HCX activation key in a given private cloud.
1492    ///
1493    /// # Long running operations
1494    ///
1495    /// This method is used to start, and/or poll a [long-running Operation].
1496    /// The [Working with long-running operations] chapter in the [user guide]
1497    /// covers these operations in detail.
1498    ///
1499    /// [long-running operation]: https://google.aip.dev/151
1500    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
1501    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
1502    ///
1503    /// # Example
1504    /// ```
1505    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
1506    /// use google_cloud_lro::Poller;
1507    /// use google_cloud_vmwareengine_v1::model::HcxActivationKey;
1508    /// use google_cloud_vmwareengine_v1::Result;
1509    /// async fn sample(
1510    ///    client: &VmwareEngine, parent: &str
1511    /// ) -> Result<()> {
1512    ///     let response = client.create_hcx_activation_key()
1513    ///         .set_parent(parent)
1514    ///         .set_hcx_activation_key(
1515    ///             HcxActivationKey::new()/* set fields */
1516    ///         )
1517    ///         .poller().until_done().await?;
1518    ///     println!("response {:?}", response);
1519    ///     Ok(())
1520    /// }
1521    /// ```
1522    pub fn create_hcx_activation_key(
1523        &self,
1524    ) -> super::builder::vmware_engine::CreateHcxActivationKey {
1525        super::builder::vmware_engine::CreateHcxActivationKey::new(self.inner.clone())
1526    }
1527
1528    /// Lists `HcxActivationKey` resources in a given private cloud.
1529    ///
1530    /// # Example
1531    /// ```
1532    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
1533    /// use google_cloud_gax::paginator::ItemPaginator as _;
1534    /// use google_cloud_vmwareengine_v1::Result;
1535    /// async fn sample(
1536    ///    client: &VmwareEngine, parent: &str
1537    /// ) -> Result<()> {
1538    ///     let mut list = client.list_hcx_activation_keys()
1539    ///         .set_parent(parent)
1540    ///         .by_item();
1541    ///     while let Some(item) = list.next().await.transpose()? {
1542    ///         println!("{:?}", item);
1543    ///     }
1544    ///     Ok(())
1545    /// }
1546    /// ```
1547    pub fn list_hcx_activation_keys(&self) -> super::builder::vmware_engine::ListHcxActivationKeys {
1548        super::builder::vmware_engine::ListHcxActivationKeys::new(self.inner.clone())
1549    }
1550
1551    /// Retrieves a `HcxActivationKey` resource by its resource name.
1552    ///
1553    /// # Example
1554    /// ```
1555    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
1556    /// use google_cloud_vmwareengine_v1::Result;
1557    /// async fn sample(
1558    ///    client: &VmwareEngine, name: &str
1559    /// ) -> Result<()> {
1560    ///     let response = client.get_hcx_activation_key()
1561    ///         .set_name(name)
1562    ///         .send().await?;
1563    ///     println!("response {:?}", response);
1564    ///     Ok(())
1565    /// }
1566    /// ```
1567    pub fn get_hcx_activation_key(&self) -> super::builder::vmware_engine::GetHcxActivationKey {
1568        super::builder::vmware_engine::GetHcxActivationKey::new(self.inner.clone())
1569    }
1570
1571    /// Retrieves a `NetworkPolicy` resource by its resource name.
1572    ///
1573    /// # Example
1574    /// ```
1575    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
1576    /// use google_cloud_vmwareengine_v1::Result;
1577    /// async fn sample(
1578    ///    client: &VmwareEngine, name: &str
1579    /// ) -> Result<()> {
1580    ///     let response = client.get_network_policy()
1581    ///         .set_name(name)
1582    ///         .send().await?;
1583    ///     println!("response {:?}", response);
1584    ///     Ok(())
1585    /// }
1586    /// ```
1587    pub fn get_network_policy(&self) -> super::builder::vmware_engine::GetNetworkPolicy {
1588        super::builder::vmware_engine::GetNetworkPolicy::new(self.inner.clone())
1589    }
1590
1591    /// Lists `NetworkPolicy` resources in a specified project and location.
1592    ///
1593    /// # Example
1594    /// ```
1595    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
1596    /// use google_cloud_gax::paginator::ItemPaginator as _;
1597    /// use google_cloud_vmwareengine_v1::Result;
1598    /// async fn sample(
1599    ///    client: &VmwareEngine, parent: &str
1600    /// ) -> Result<()> {
1601    ///     let mut list = client.list_network_policies()
1602    ///         .set_parent(parent)
1603    ///         .by_item();
1604    ///     while let Some(item) = list.next().await.transpose()? {
1605    ///         println!("{:?}", item);
1606    ///     }
1607    ///     Ok(())
1608    /// }
1609    /// ```
1610    pub fn list_network_policies(&self) -> super::builder::vmware_engine::ListNetworkPolicies {
1611        super::builder::vmware_engine::ListNetworkPolicies::new(self.inner.clone())
1612    }
1613
1614    /// Creates a new network policy in a given VMware Engine network of a
1615    /// project and location (region). A new network policy cannot be created if
1616    /// another network policy already exists in the same scope.
1617    ///
1618    /// # Long running operations
1619    ///
1620    /// This method is used to start, and/or poll a [long-running Operation].
1621    /// The [Working with long-running operations] chapter in the [user guide]
1622    /// covers these operations in detail.
1623    ///
1624    /// [long-running operation]: https://google.aip.dev/151
1625    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
1626    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
1627    ///
1628    /// # Example
1629    /// ```
1630    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
1631    /// use google_cloud_lro::Poller;
1632    /// use google_cloud_vmwareengine_v1::model::NetworkPolicy;
1633    /// use google_cloud_vmwareengine_v1::Result;
1634    /// async fn sample(
1635    ///    client: &VmwareEngine, parent: &str
1636    /// ) -> Result<()> {
1637    ///     let response = client.create_network_policy()
1638    ///         .set_parent(parent)
1639    ///         .set_network_policy(
1640    ///             NetworkPolicy::new()/* set fields */
1641    ///         )
1642    ///         .poller().until_done().await?;
1643    ///     println!("response {:?}", response);
1644    ///     Ok(())
1645    /// }
1646    /// ```
1647    pub fn create_network_policy(&self) -> super::builder::vmware_engine::CreateNetworkPolicy {
1648        super::builder::vmware_engine::CreateNetworkPolicy::new(self.inner.clone())
1649    }
1650
1651    /// Modifies a `NetworkPolicy` resource. Only the following fields can be
1652    /// updated: `internet_access`, `external_ip`, `edge_services_cidr`.
1653    /// Only fields specified in `updateMask` are applied. When updating a network
1654    /// policy, the external IP network service can only be disabled if there are
1655    /// no external IP addresses present in the scope of the policy. Also, a
1656    /// `NetworkService` cannot be updated when `NetworkService.state` is set
1657    /// to `RECONCILING`.
1658    ///
1659    /// During operation processing, the resource is temporarily in the `ACTIVE`
1660    /// state before the operation fully completes. For that period of time, you
1661    /// can't update the resource. Use the operation status to determine when the
1662    /// processing fully completes.
1663    ///
1664    /// # Long running operations
1665    ///
1666    /// This method is used to start, and/or poll a [long-running Operation].
1667    /// The [Working with long-running operations] chapter in the [user guide]
1668    /// covers these operations in detail.
1669    ///
1670    /// [long-running operation]: https://google.aip.dev/151
1671    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
1672    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
1673    ///
1674    /// # Example
1675    /// ```
1676    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
1677    /// use google_cloud_lro::Poller;
1678    /// # extern crate wkt as google_cloud_wkt;
1679    /// use google_cloud_wkt::FieldMask;
1680    /// use google_cloud_vmwareengine_v1::model::NetworkPolicy;
1681    /// use google_cloud_vmwareengine_v1::Result;
1682    /// async fn sample(
1683    ///    client: &VmwareEngine, name: &str
1684    /// ) -> Result<()> {
1685    ///     let response = client.update_network_policy()
1686    ///         .set_network_policy(
1687    ///             NetworkPolicy::new().set_name(name)/* set fields */
1688    ///         )
1689    ///         .set_update_mask(FieldMask::default().set_paths(["updated.field.path1", "updated.field.path2"]))
1690    ///         .poller().until_done().await?;
1691    ///     println!("response {:?}", response);
1692    ///     Ok(())
1693    /// }
1694    /// ```
1695    pub fn update_network_policy(&self) -> super::builder::vmware_engine::UpdateNetworkPolicy {
1696        super::builder::vmware_engine::UpdateNetworkPolicy::new(self.inner.clone())
1697    }
1698
1699    /// Deletes a `NetworkPolicy` resource. A network policy cannot be deleted
1700    /// when `NetworkService.state` is set to `RECONCILING` for either its external
1701    /// IP or internet access service.
1702    ///
1703    /// # Long running operations
1704    ///
1705    /// This method is used to start, and/or poll a [long-running Operation].
1706    /// The [Working with long-running operations] chapter in the [user guide]
1707    /// covers these operations in detail.
1708    ///
1709    /// [long-running operation]: https://google.aip.dev/151
1710    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
1711    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
1712    ///
1713    /// # Example
1714    /// ```
1715    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
1716    /// use google_cloud_lro::Poller;
1717    /// use google_cloud_vmwareengine_v1::Result;
1718    /// async fn sample(
1719    ///    client: &VmwareEngine, name: &str
1720    /// ) -> Result<()> {
1721    ///     client.delete_network_policy()
1722    ///         .set_name(name)
1723    ///         .poller().until_done().await?;
1724    ///     Ok(())
1725    /// }
1726    /// ```
1727    pub fn delete_network_policy(&self) -> super::builder::vmware_engine::DeleteNetworkPolicy {
1728        super::builder::vmware_engine::DeleteNetworkPolicy::new(self.inner.clone())
1729    }
1730
1731    /// Lists Consumer VPCs bound to Management DNS Zone of a given private cloud.
1732    ///
1733    /// # Example
1734    /// ```
1735    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
1736    /// use google_cloud_gax::paginator::ItemPaginator as _;
1737    /// use google_cloud_vmwareengine_v1::Result;
1738    /// async fn sample(
1739    ///    client: &VmwareEngine, parent: &str
1740    /// ) -> Result<()> {
1741    ///     let mut list = client.list_management_dns_zone_bindings()
1742    ///         .set_parent(parent)
1743    ///         .by_item();
1744    ///     while let Some(item) = list.next().await.transpose()? {
1745    ///         println!("{:?}", item);
1746    ///     }
1747    ///     Ok(())
1748    /// }
1749    /// ```
1750    pub fn list_management_dns_zone_bindings(
1751        &self,
1752    ) -> super::builder::vmware_engine::ListManagementDnsZoneBindings {
1753        super::builder::vmware_engine::ListManagementDnsZoneBindings::new(self.inner.clone())
1754    }
1755
1756    /// Retrieves a 'ManagementDnsZoneBinding' resource by its resource name.
1757    ///
1758    /// # Example
1759    /// ```
1760    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
1761    /// use google_cloud_vmwareengine_v1::Result;
1762    /// async fn sample(
1763    ///    client: &VmwareEngine, name: &str
1764    /// ) -> Result<()> {
1765    ///     let response = client.get_management_dns_zone_binding()
1766    ///         .set_name(name)
1767    ///         .send().await?;
1768    ///     println!("response {:?}", response);
1769    ///     Ok(())
1770    /// }
1771    /// ```
1772    pub fn get_management_dns_zone_binding(
1773        &self,
1774    ) -> super::builder::vmware_engine::GetManagementDnsZoneBinding {
1775        super::builder::vmware_engine::GetManagementDnsZoneBinding::new(self.inner.clone())
1776    }
1777
1778    /// Creates a new `ManagementDnsZoneBinding` resource in a private cloud.
1779    /// This RPC creates the DNS binding and the resource that represents the
1780    /// DNS binding of the consumer VPC network to the management DNS zone. A
1781    /// management DNS zone is the Cloud DNS cross-project binding zone that
1782    /// VMware Engine creates for each private cloud. It contains FQDNs and
1783    /// corresponding IP addresses for the private cloud's ESXi hosts and
1784    /// management VM appliances like vCenter and NSX Manager.
1785    ///
1786    /// # Long running operations
1787    ///
1788    /// This method is used to start, and/or poll a [long-running Operation].
1789    /// The [Working with long-running operations] chapter in the [user guide]
1790    /// covers these operations in detail.
1791    ///
1792    /// [long-running operation]: https://google.aip.dev/151
1793    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
1794    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
1795    ///
1796    /// # Example
1797    /// ```
1798    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
1799    /// use google_cloud_lro::Poller;
1800    /// use google_cloud_vmwareengine_v1::model::ManagementDnsZoneBinding;
1801    /// use google_cloud_vmwareengine_v1::Result;
1802    /// async fn sample(
1803    ///    client: &VmwareEngine, parent: &str
1804    /// ) -> Result<()> {
1805    ///     let response = client.create_management_dns_zone_binding()
1806    ///         .set_parent(parent)
1807    ///         .set_management_dns_zone_binding(
1808    ///             ManagementDnsZoneBinding::new()/* set fields */
1809    ///         )
1810    ///         .poller().until_done().await?;
1811    ///     println!("response {:?}", response);
1812    ///     Ok(())
1813    /// }
1814    /// ```
1815    pub fn create_management_dns_zone_binding(
1816        &self,
1817    ) -> super::builder::vmware_engine::CreateManagementDnsZoneBinding {
1818        super::builder::vmware_engine::CreateManagementDnsZoneBinding::new(self.inner.clone())
1819    }
1820
1821    /// Updates a `ManagementDnsZoneBinding` resource.
1822    /// Only fields specified in `update_mask` are applied.
1823    ///
1824    /// # Long running operations
1825    ///
1826    /// This method is used to start, and/or poll a [long-running Operation].
1827    /// The [Working with long-running operations] chapter in the [user guide]
1828    /// covers these operations in detail.
1829    ///
1830    /// [long-running operation]: https://google.aip.dev/151
1831    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
1832    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
1833    ///
1834    /// # Example
1835    /// ```
1836    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
1837    /// use google_cloud_lro::Poller;
1838    /// # extern crate wkt as google_cloud_wkt;
1839    /// use google_cloud_wkt::FieldMask;
1840    /// use google_cloud_vmwareengine_v1::model::ManagementDnsZoneBinding;
1841    /// use google_cloud_vmwareengine_v1::Result;
1842    /// async fn sample(
1843    ///    client: &VmwareEngine, name: &str
1844    /// ) -> Result<()> {
1845    ///     let response = client.update_management_dns_zone_binding()
1846    ///         .set_management_dns_zone_binding(
1847    ///             ManagementDnsZoneBinding::new().set_name(name)/* set fields */
1848    ///         )
1849    ///         .set_update_mask(FieldMask::default().set_paths(["updated.field.path1", "updated.field.path2"]))
1850    ///         .poller().until_done().await?;
1851    ///     println!("response {:?}", response);
1852    ///     Ok(())
1853    /// }
1854    /// ```
1855    pub fn update_management_dns_zone_binding(
1856        &self,
1857    ) -> super::builder::vmware_engine::UpdateManagementDnsZoneBinding {
1858        super::builder::vmware_engine::UpdateManagementDnsZoneBinding::new(self.inner.clone())
1859    }
1860
1861    /// Deletes a `ManagementDnsZoneBinding` resource. When a management DNS zone
1862    /// binding is deleted, the corresponding consumer VPC network is no longer
1863    /// bound to the management DNS zone.
1864    ///
1865    /// # Long running operations
1866    ///
1867    /// This method is used to start, and/or poll a [long-running Operation].
1868    /// The [Working with long-running operations] chapter in the [user guide]
1869    /// covers these operations in detail.
1870    ///
1871    /// [long-running operation]: https://google.aip.dev/151
1872    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
1873    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
1874    ///
1875    /// # Example
1876    /// ```
1877    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
1878    /// use google_cloud_lro::Poller;
1879    /// use google_cloud_vmwareengine_v1::Result;
1880    /// async fn sample(
1881    ///    client: &VmwareEngine, name: &str
1882    /// ) -> Result<()> {
1883    ///     client.delete_management_dns_zone_binding()
1884    ///         .set_name(name)
1885    ///         .poller().until_done().await?;
1886    ///     Ok(())
1887    /// }
1888    /// ```
1889    pub fn delete_management_dns_zone_binding(
1890        &self,
1891    ) -> super::builder::vmware_engine::DeleteManagementDnsZoneBinding {
1892        super::builder::vmware_engine::DeleteManagementDnsZoneBinding::new(self.inner.clone())
1893    }
1894
1895    /// Retries to create a `ManagementDnsZoneBinding` resource that is
1896    /// in failed state.
1897    ///
1898    /// # Long running operations
1899    ///
1900    /// This method is used to start, and/or poll a [long-running Operation].
1901    /// The [Working with long-running operations] chapter in the [user guide]
1902    /// covers these operations in detail.
1903    ///
1904    /// [long-running operation]: https://google.aip.dev/151
1905    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
1906    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
1907    ///
1908    /// # Example
1909    /// ```
1910    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
1911    /// use google_cloud_lro::Poller;
1912    /// use google_cloud_vmwareengine_v1::Result;
1913    /// async fn sample(
1914    ///    client: &VmwareEngine
1915    /// ) -> Result<()> {
1916    ///     let response = client.repair_management_dns_zone_binding()
1917    ///         /* set fields */
1918    ///         .poller().until_done().await?;
1919    ///     println!("response {:?}", response);
1920    ///     Ok(())
1921    /// }
1922    /// ```
1923    pub fn repair_management_dns_zone_binding(
1924        &self,
1925    ) -> super::builder::vmware_engine::RepairManagementDnsZoneBinding {
1926        super::builder::vmware_engine::RepairManagementDnsZoneBinding::new(self.inner.clone())
1927    }
1928
1929    /// Creates a new VMware Engine network that can be used by a private cloud.
1930    ///
1931    /// # Long running operations
1932    ///
1933    /// This method is used to start, and/or poll a [long-running Operation].
1934    /// The [Working with long-running operations] chapter in the [user guide]
1935    /// covers these operations in detail.
1936    ///
1937    /// [long-running operation]: https://google.aip.dev/151
1938    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
1939    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
1940    ///
1941    /// # Example
1942    /// ```
1943    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
1944    /// use google_cloud_lro::Poller;
1945    /// use google_cloud_vmwareengine_v1::model::VmwareEngineNetwork;
1946    /// use google_cloud_vmwareengine_v1::Result;
1947    /// async fn sample(
1948    ///    client: &VmwareEngine, parent: &str
1949    /// ) -> Result<()> {
1950    ///     let response = client.create_vmware_engine_network()
1951    ///         .set_parent(parent)
1952    ///         .set_vmware_engine_network(
1953    ///             VmwareEngineNetwork::new()/* set fields */
1954    ///         )
1955    ///         .poller().until_done().await?;
1956    ///     println!("response {:?}", response);
1957    ///     Ok(())
1958    /// }
1959    /// ```
1960    pub fn create_vmware_engine_network(
1961        &self,
1962    ) -> super::builder::vmware_engine::CreateVmwareEngineNetwork {
1963        super::builder::vmware_engine::CreateVmwareEngineNetwork::new(self.inner.clone())
1964    }
1965
1966    /// Modifies a VMware Engine network resource. Only the following fields can be
1967    /// updated: `description`. Only fields specified in `updateMask` are
1968    /// applied.
1969    ///
1970    /// # Long running operations
1971    ///
1972    /// This method is used to start, and/or poll a [long-running Operation].
1973    /// The [Working with long-running operations] chapter in the [user guide]
1974    /// covers these operations in detail.
1975    ///
1976    /// [long-running operation]: https://google.aip.dev/151
1977    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
1978    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
1979    ///
1980    /// # Example
1981    /// ```
1982    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
1983    /// use google_cloud_lro::Poller;
1984    /// # extern crate wkt as google_cloud_wkt;
1985    /// use google_cloud_wkt::FieldMask;
1986    /// use google_cloud_vmwareengine_v1::model::VmwareEngineNetwork;
1987    /// use google_cloud_vmwareengine_v1::Result;
1988    /// async fn sample(
1989    ///    client: &VmwareEngine, name: &str
1990    /// ) -> Result<()> {
1991    ///     let response = client.update_vmware_engine_network()
1992    ///         .set_vmware_engine_network(
1993    ///             VmwareEngineNetwork::new().set_name(name)/* set fields */
1994    ///         )
1995    ///         .set_update_mask(FieldMask::default().set_paths(["updated.field.path1", "updated.field.path2"]))
1996    ///         .poller().until_done().await?;
1997    ///     println!("response {:?}", response);
1998    ///     Ok(())
1999    /// }
2000    /// ```
2001    pub fn update_vmware_engine_network(
2002        &self,
2003    ) -> super::builder::vmware_engine::UpdateVmwareEngineNetwork {
2004        super::builder::vmware_engine::UpdateVmwareEngineNetwork::new(self.inner.clone())
2005    }
2006
2007    /// Deletes a `VmwareEngineNetwork` resource. You can only delete a VMware
2008    /// Engine network after all resources that refer to it are deleted. For
2009    /// example, a private cloud, a network peering, and a network policy can all
2010    /// refer to the same VMware Engine network.
2011    ///
2012    /// # Long running operations
2013    ///
2014    /// This method is used to start, and/or poll a [long-running Operation].
2015    /// The [Working with long-running operations] chapter in the [user guide]
2016    /// covers these operations in detail.
2017    ///
2018    /// [long-running operation]: https://google.aip.dev/151
2019    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
2020    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
2021    ///
2022    /// # Example
2023    /// ```
2024    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
2025    /// use google_cloud_lro::Poller;
2026    /// use google_cloud_vmwareengine_v1::Result;
2027    /// async fn sample(
2028    ///    client: &VmwareEngine, name: &str
2029    /// ) -> Result<()> {
2030    ///     client.delete_vmware_engine_network()
2031    ///         .set_name(name)
2032    ///         .poller().until_done().await?;
2033    ///     Ok(())
2034    /// }
2035    /// ```
2036    pub fn delete_vmware_engine_network(
2037        &self,
2038    ) -> super::builder::vmware_engine::DeleteVmwareEngineNetwork {
2039        super::builder::vmware_engine::DeleteVmwareEngineNetwork::new(self.inner.clone())
2040    }
2041
2042    /// Retrieves a `VmwareEngineNetwork` resource by its resource name. The
2043    /// resource contains details of the VMware Engine network, such as its VMware
2044    /// Engine network type, peered networks in a service project, and state
2045    /// (for example, `CREATING`, `ACTIVE`, `DELETING`).
2046    ///
2047    /// # Example
2048    /// ```
2049    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
2050    /// use google_cloud_vmwareengine_v1::Result;
2051    /// async fn sample(
2052    ///    client: &VmwareEngine, name: &str
2053    /// ) -> Result<()> {
2054    ///     let response = client.get_vmware_engine_network()
2055    ///         .set_name(name)
2056    ///         .send().await?;
2057    ///     println!("response {:?}", response);
2058    ///     Ok(())
2059    /// }
2060    /// ```
2061    pub fn get_vmware_engine_network(
2062        &self,
2063    ) -> super::builder::vmware_engine::GetVmwareEngineNetwork {
2064        super::builder::vmware_engine::GetVmwareEngineNetwork::new(self.inner.clone())
2065    }
2066
2067    /// Lists `VmwareEngineNetwork` resources in a given project and location.
2068    ///
2069    /// # Example
2070    /// ```
2071    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
2072    /// use google_cloud_gax::paginator::ItemPaginator as _;
2073    /// use google_cloud_vmwareengine_v1::Result;
2074    /// async fn sample(
2075    ///    client: &VmwareEngine, parent: &str
2076    /// ) -> Result<()> {
2077    ///     let mut list = client.list_vmware_engine_networks()
2078    ///         .set_parent(parent)
2079    ///         .by_item();
2080    ///     while let Some(item) = list.next().await.transpose()? {
2081    ///         println!("{:?}", item);
2082    ///     }
2083    ///     Ok(())
2084    /// }
2085    /// ```
2086    pub fn list_vmware_engine_networks(
2087        &self,
2088    ) -> super::builder::vmware_engine::ListVmwareEngineNetworks {
2089        super::builder::vmware_engine::ListVmwareEngineNetworks::new(self.inner.clone())
2090    }
2091
2092    /// Creates a new private connection that can be used for accessing private
2093    /// Clouds.
2094    ///
2095    /// # Long running operations
2096    ///
2097    /// This method is used to start, and/or poll a [long-running Operation].
2098    /// The [Working with long-running operations] chapter in the [user guide]
2099    /// covers these operations in detail.
2100    ///
2101    /// [long-running operation]: https://google.aip.dev/151
2102    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
2103    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
2104    ///
2105    /// # Example
2106    /// ```
2107    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
2108    /// use google_cloud_lro::Poller;
2109    /// use google_cloud_vmwareengine_v1::model::PrivateConnection;
2110    /// use google_cloud_vmwareengine_v1::Result;
2111    /// async fn sample(
2112    ///    client: &VmwareEngine, parent: &str
2113    /// ) -> Result<()> {
2114    ///     let response = client.create_private_connection()
2115    ///         .set_parent(parent)
2116    ///         .set_private_connection(
2117    ///             PrivateConnection::new()/* set fields */
2118    ///         )
2119    ///         .poller().until_done().await?;
2120    ///     println!("response {:?}", response);
2121    ///     Ok(())
2122    /// }
2123    /// ```
2124    pub fn create_private_connection(
2125        &self,
2126    ) -> super::builder::vmware_engine::CreatePrivateConnection {
2127        super::builder::vmware_engine::CreatePrivateConnection::new(self.inner.clone())
2128    }
2129
2130    /// Retrieves a `PrivateConnection` resource by its resource name. The resource
2131    /// contains details of the private connection, such as connected
2132    /// network, routing mode and state.
2133    ///
2134    /// # Example
2135    /// ```
2136    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
2137    /// use google_cloud_vmwareengine_v1::Result;
2138    /// async fn sample(
2139    ///    client: &VmwareEngine, name: &str
2140    /// ) -> Result<()> {
2141    ///     let response = client.get_private_connection()
2142    ///         .set_name(name)
2143    ///         .send().await?;
2144    ///     println!("response {:?}", response);
2145    ///     Ok(())
2146    /// }
2147    /// ```
2148    pub fn get_private_connection(&self) -> super::builder::vmware_engine::GetPrivateConnection {
2149        super::builder::vmware_engine::GetPrivateConnection::new(self.inner.clone())
2150    }
2151
2152    /// Lists `PrivateConnection` resources in a given project and location.
2153    ///
2154    /// # Example
2155    /// ```
2156    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
2157    /// use google_cloud_gax::paginator::ItemPaginator as _;
2158    /// use google_cloud_vmwareengine_v1::Result;
2159    /// async fn sample(
2160    ///    client: &VmwareEngine, parent: &str
2161    /// ) -> Result<()> {
2162    ///     let mut list = client.list_private_connections()
2163    ///         .set_parent(parent)
2164    ///         .by_item();
2165    ///     while let Some(item) = list.next().await.transpose()? {
2166    ///         println!("{:?}", item);
2167    ///     }
2168    ///     Ok(())
2169    /// }
2170    /// ```
2171    pub fn list_private_connections(
2172        &self,
2173    ) -> super::builder::vmware_engine::ListPrivateConnections {
2174        super::builder::vmware_engine::ListPrivateConnections::new(self.inner.clone())
2175    }
2176
2177    /// Modifies a `PrivateConnection` resource. Only `description` and
2178    /// `routing_mode` fields can be updated. Only fields specified in `updateMask`
2179    /// are applied.
2180    ///
2181    /// # Long running operations
2182    ///
2183    /// This method is used to start, and/or poll a [long-running Operation].
2184    /// The [Working with long-running operations] chapter in the [user guide]
2185    /// covers these operations in detail.
2186    ///
2187    /// [long-running operation]: https://google.aip.dev/151
2188    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
2189    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
2190    ///
2191    /// # Example
2192    /// ```
2193    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
2194    /// use google_cloud_lro::Poller;
2195    /// # extern crate wkt as google_cloud_wkt;
2196    /// use google_cloud_wkt::FieldMask;
2197    /// use google_cloud_vmwareengine_v1::model::PrivateConnection;
2198    /// use google_cloud_vmwareengine_v1::Result;
2199    /// async fn sample(
2200    ///    client: &VmwareEngine, name: &str
2201    /// ) -> Result<()> {
2202    ///     let response = client.update_private_connection()
2203    ///         .set_private_connection(
2204    ///             PrivateConnection::new().set_name(name)/* set fields */
2205    ///         )
2206    ///         .set_update_mask(FieldMask::default().set_paths(["updated.field.path1", "updated.field.path2"]))
2207    ///         .poller().until_done().await?;
2208    ///     println!("response {:?}", response);
2209    ///     Ok(())
2210    /// }
2211    /// ```
2212    pub fn update_private_connection(
2213        &self,
2214    ) -> super::builder::vmware_engine::UpdatePrivateConnection {
2215        super::builder::vmware_engine::UpdatePrivateConnection::new(self.inner.clone())
2216    }
2217
2218    /// Deletes a `PrivateConnection` resource. When a private connection is
2219    /// deleted for a VMware Engine network, the connected network becomes
2220    /// inaccessible to that VMware Engine network.
2221    ///
2222    /// # Long running operations
2223    ///
2224    /// This method is used to start, and/or poll a [long-running Operation].
2225    /// The [Working with long-running operations] chapter in the [user guide]
2226    /// covers these operations in detail.
2227    ///
2228    /// [long-running operation]: https://google.aip.dev/151
2229    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
2230    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
2231    ///
2232    /// # Example
2233    /// ```
2234    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
2235    /// use google_cloud_lro::Poller;
2236    /// use google_cloud_vmwareengine_v1::Result;
2237    /// async fn sample(
2238    ///    client: &VmwareEngine, name: &str
2239    /// ) -> Result<()> {
2240    ///     client.delete_private_connection()
2241    ///         .set_name(name)
2242    ///         .poller().until_done().await?;
2243    ///     Ok(())
2244    /// }
2245    /// ```
2246    pub fn delete_private_connection(
2247        &self,
2248    ) -> super::builder::vmware_engine::DeletePrivateConnection {
2249        super::builder::vmware_engine::DeletePrivateConnection::new(self.inner.clone())
2250    }
2251
2252    /// Lists the private connection routes exchanged over a peering connection.
2253    ///
2254    /// # Example
2255    /// ```
2256    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
2257    /// use google_cloud_gax::paginator::ItemPaginator as _;
2258    /// use google_cloud_vmwareengine_v1::Result;
2259    /// async fn sample(
2260    ///    client: &VmwareEngine
2261    /// ) -> Result<()> {
2262    ///     let mut list = client.list_private_connection_peering_routes()
2263    ///         /* set fields */
2264    ///         .by_item();
2265    ///     while let Some(item) = list.next().await.transpose()? {
2266    ///         println!("{:?}", item);
2267    ///     }
2268    ///     Ok(())
2269    /// }
2270    /// ```
2271    pub fn list_private_connection_peering_routes(
2272        &self,
2273    ) -> super::builder::vmware_engine::ListPrivateConnectionPeeringRoutes {
2274        super::builder::vmware_engine::ListPrivateConnectionPeeringRoutes::new(self.inner.clone())
2275    }
2276
2277    /// Grants the bind permission to the customer provided principal(user /
2278    /// service account) to bind their DNS zone with the intranet VPC associated
2279    /// with the project. DnsBindPermission is a global resource and location can
2280    /// only be global.
2281    ///
2282    /// # Long running operations
2283    ///
2284    /// This method is used to start, and/or poll a [long-running Operation].
2285    /// The [Working with long-running operations] chapter in the [user guide]
2286    /// covers these operations in detail.
2287    ///
2288    /// [long-running operation]: https://google.aip.dev/151
2289    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
2290    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
2291    ///
2292    /// # Example
2293    /// ```
2294    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
2295    /// use google_cloud_lro::Poller;
2296    /// use google_cloud_vmwareengine_v1::Result;
2297    /// async fn sample(
2298    ///    client: &VmwareEngine
2299    /// ) -> Result<()> {
2300    ///     let response = client.grant_dns_bind_permission()
2301    ///         /* set fields */
2302    ///         .poller().until_done().await?;
2303    ///     println!("response {:?}", response);
2304    ///     Ok(())
2305    /// }
2306    /// ```
2307    pub fn grant_dns_bind_permission(
2308        &self,
2309    ) -> super::builder::vmware_engine::GrantDnsBindPermission {
2310        super::builder::vmware_engine::GrantDnsBindPermission::new(self.inner.clone())
2311    }
2312
2313    /// Gets all the principals having bind permission on the intranet VPC
2314    /// associated with the consumer project granted by the Grant API.
2315    /// DnsBindPermission is a global resource and location can only be global.
2316    ///
2317    /// # Example
2318    /// ```
2319    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
2320    /// use google_cloud_vmwareengine_v1::Result;
2321    /// async fn sample(
2322    ///    client: &VmwareEngine, name: &str
2323    /// ) -> Result<()> {
2324    ///     let response = client.get_dns_bind_permission()
2325    ///         .set_name(name)
2326    ///         .send().await?;
2327    ///     println!("response {:?}", response);
2328    ///     Ok(())
2329    /// }
2330    /// ```
2331    pub fn get_dns_bind_permission(&self) -> super::builder::vmware_engine::GetDnsBindPermission {
2332        super::builder::vmware_engine::GetDnsBindPermission::new(self.inner.clone())
2333    }
2334
2335    /// Revokes the bind permission from the customer provided principal(user /
2336    /// service account) on the intranet VPC associated with the consumer project.
2337    /// DnsBindPermission is a global resource and location can only be global.
2338    ///
2339    /// # Long running operations
2340    ///
2341    /// This method is used to start, and/or poll a [long-running Operation].
2342    /// The [Working with long-running operations] chapter in the [user guide]
2343    /// covers these operations in detail.
2344    ///
2345    /// [long-running operation]: https://google.aip.dev/151
2346    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
2347    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
2348    ///
2349    /// # Example
2350    /// ```
2351    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
2352    /// use google_cloud_lro::Poller;
2353    /// use google_cloud_vmwareengine_v1::Result;
2354    /// async fn sample(
2355    ///    client: &VmwareEngine
2356    /// ) -> Result<()> {
2357    ///     let response = client.revoke_dns_bind_permission()
2358    ///         /* set fields */
2359    ///         .poller().until_done().await?;
2360    ///     println!("response {:?}", response);
2361    ///     Ok(())
2362    /// }
2363    /// ```
2364    pub fn revoke_dns_bind_permission(
2365        &self,
2366    ) -> super::builder::vmware_engine::RevokeDnsBindPermission {
2367        super::builder::vmware_engine::RevokeDnsBindPermission::new(self.inner.clone())
2368    }
2369
2370    /// Lists information about the supported locations for this service.
2371    ///
2372    /// # Example
2373    /// ```
2374    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
2375    /// use google_cloud_gax::paginator::ItemPaginator as _;
2376    /// use google_cloud_vmwareengine_v1::Result;
2377    /// async fn sample(
2378    ///    client: &VmwareEngine
2379    /// ) -> Result<()> {
2380    ///     let mut list = client.list_locations()
2381    ///         /* set fields */
2382    ///         .by_item();
2383    ///     while let Some(item) = list.next().await.transpose()? {
2384    ///         println!("{:?}", item);
2385    ///     }
2386    ///     Ok(())
2387    /// }
2388    /// ```
2389    pub fn list_locations(&self) -> super::builder::vmware_engine::ListLocations {
2390        super::builder::vmware_engine::ListLocations::new(self.inner.clone())
2391    }
2392
2393    /// Gets information about a location.
2394    ///
2395    /// # Example
2396    /// ```
2397    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
2398    /// use google_cloud_vmwareengine_v1::Result;
2399    /// async fn sample(
2400    ///    client: &VmwareEngine
2401    /// ) -> Result<()> {
2402    ///     let response = client.get_location()
2403    ///         /* set fields */
2404    ///         .send().await?;
2405    ///     println!("response {:?}", response);
2406    ///     Ok(())
2407    /// }
2408    /// ```
2409    pub fn get_location(&self) -> super::builder::vmware_engine::GetLocation {
2410        super::builder::vmware_engine::GetLocation::new(self.inner.clone())
2411    }
2412
2413    /// Sets the access control policy on the specified resource. Replaces
2414    /// any existing policy.
2415    ///
2416    /// Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`
2417    /// errors.
2418    ///
2419    /// # Example
2420    /// ```
2421    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
2422    /// use google_cloud_vmwareengine_v1::Result;
2423    /// async fn sample(
2424    ///    client: &VmwareEngine
2425    /// ) -> Result<()> {
2426    ///     let response = client.set_iam_policy()
2427    ///         /* set fields */
2428    ///         .send().await?;
2429    ///     println!("response {:?}", response);
2430    ///     Ok(())
2431    /// }
2432    /// ```
2433    pub fn set_iam_policy(&self) -> super::builder::vmware_engine::SetIamPolicy {
2434        super::builder::vmware_engine::SetIamPolicy::new(self.inner.clone())
2435    }
2436
2437    /// Gets the access control policy for a resource. Returns an empty policy
2438    /// if the resource exists and does not have a policy set.
2439    ///
2440    /// # Example
2441    /// ```
2442    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
2443    /// use google_cloud_vmwareengine_v1::Result;
2444    /// async fn sample(
2445    ///    client: &VmwareEngine
2446    /// ) -> Result<()> {
2447    ///     let response = client.get_iam_policy()
2448    ///         /* set fields */
2449    ///         .send().await?;
2450    ///     println!("response {:?}", response);
2451    ///     Ok(())
2452    /// }
2453    /// ```
2454    pub fn get_iam_policy(&self) -> super::builder::vmware_engine::GetIamPolicy {
2455        super::builder::vmware_engine::GetIamPolicy::new(self.inner.clone())
2456    }
2457
2458    /// Returns permissions that a caller has on the specified resource. If the
2459    /// resource does not exist, this will return an empty set of
2460    /// permissions, not a `NOT_FOUND` error.
2461    ///
2462    /// Note: This operation is designed to be used for building
2463    /// permission-aware UIs and command-line tools, not for authorization
2464    /// checking. This operation may "fail open" without warning.
2465    ///
2466    /// # Example
2467    /// ```
2468    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
2469    /// use google_cloud_vmwareengine_v1::Result;
2470    /// async fn sample(
2471    ///    client: &VmwareEngine
2472    /// ) -> Result<()> {
2473    ///     let response = client.test_iam_permissions()
2474    ///         /* set fields */
2475    ///         .send().await?;
2476    ///     println!("response {:?}", response);
2477    ///     Ok(())
2478    /// }
2479    /// ```
2480    pub fn test_iam_permissions(&self) -> super::builder::vmware_engine::TestIamPermissions {
2481        super::builder::vmware_engine::TestIamPermissions::new(self.inner.clone())
2482    }
2483
2484    /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
2485    ///
2486    /// [google.longrunning.Operations]: google-cloud-longrunning::client::Operations
2487    ///
2488    /// # Example
2489    /// ```
2490    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
2491    /// use google_cloud_gax::paginator::ItemPaginator as _;
2492    /// use google_cloud_vmwareengine_v1::Result;
2493    /// async fn sample(
2494    ///    client: &VmwareEngine
2495    /// ) -> Result<()> {
2496    ///     let mut list = client.list_operations()
2497    ///         /* set fields */
2498    ///         .by_item();
2499    ///     while let Some(item) = list.next().await.transpose()? {
2500    ///         println!("{:?}", item);
2501    ///     }
2502    ///     Ok(())
2503    /// }
2504    /// ```
2505    pub fn list_operations(&self) -> super::builder::vmware_engine::ListOperations {
2506        super::builder::vmware_engine::ListOperations::new(self.inner.clone())
2507    }
2508
2509    /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
2510    ///
2511    /// [google.longrunning.Operations]: google-cloud-longrunning::client::Operations
2512    ///
2513    /// # Example
2514    /// ```
2515    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
2516    /// use google_cloud_vmwareengine_v1::Result;
2517    /// async fn sample(
2518    ///    client: &VmwareEngine
2519    /// ) -> Result<()> {
2520    ///     let response = client.get_operation()
2521    ///         /* set fields */
2522    ///         .send().await?;
2523    ///     println!("response {:?}", response);
2524    ///     Ok(())
2525    /// }
2526    /// ```
2527    pub fn get_operation(&self) -> super::builder::vmware_engine::GetOperation {
2528        super::builder::vmware_engine::GetOperation::new(self.inner.clone())
2529    }
2530
2531    /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
2532    ///
2533    /// [google.longrunning.Operations]: google-cloud-longrunning::client::Operations
2534    ///
2535    /// # Example
2536    /// ```
2537    /// # use google_cloud_vmwareengine_v1::client::VmwareEngine;
2538    /// use google_cloud_vmwareengine_v1::Result;
2539    /// async fn sample(
2540    ///    client: &VmwareEngine
2541    /// ) -> Result<()> {
2542    ///     client.delete_operation()
2543    ///         /* set fields */
2544    ///         .send().await?;
2545    ///     Ok(())
2546    /// }
2547    /// ```
2548    pub fn delete_operation(&self) -> super::builder::vmware_engine::DeleteOperation {
2549        super::builder::vmware_engine::DeleteOperation::new(self.inner.clone())
2550    }
2551}