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