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