Skip to main content

google_cloud_baremetalsolution_v2/
client.rs

1// Copyright 2025 Google LLC
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     https://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14//
15// Code generated by sidekick. DO NOT EDIT.
16#![allow(rustdoc::redundant_explicit_links)]
17#![allow(rustdoc::broken_intra_doc_links)]
18
19/// Implements a client for the Bare Metal Solution API.
20///
21/// # Example
22/// ```
23/// # async fn sample() -> google_cloud_gax::client_builder::Result<()> {
24/// # use google_cloud_baremetalsolution_v2::client::BareMetalSolution;
25/// let client = BareMetalSolution::builder().build().await?;
26/// // use `client` to make requests to the Bare Metal Solution API.
27/// # Ok(()) }
28/// ```
29///
30/// # Service Description
31///
32/// Performs management operations on Bare Metal Solution servers.
33///
34/// The `baremetalsolution.googleapis.com` service provides management
35/// capabilities for Bare Metal Solution servers. To access the API methods, you
36/// must assign Bare Metal Solution IAM roles containing the desired permissions
37/// to your staff in your Google Cloud project. You must also enable the Bare
38/// Metal Solution API. Once enabled, the methods act
39/// upon specific servers in your Bare Metal Solution environment.
40///
41/// # Configuration
42///
43/// To configure `BareMetalSolution` use the `with_*` methods in the type returned
44/// by [builder()][BareMetalSolution::builder]. The default configuration should
45/// work for most applications. Common configuration changes include
46///
47/// * [with_endpoint()]: by default this client uses the global default endpoint
48///   (`https://baremetalsolution.googleapis.com`). Applications using regional
49///   endpoints or running in restricted networks (e.g. a network configured
50//    with [Private Google Access with VPC Service Controls]) may want to
51///   override this default.
52/// * [with_credentials()]: by default this client uses
53///   [Application Default Credentials]. Applications using custom
54///   authentication may need to override this default.
55///
56/// [with_endpoint()]: super::builder::bare_metal_solution::ClientBuilder::with_endpoint
57/// [with_credentials()]: super::builder::bare_metal_solution::ClientBuilder::credentials
58/// [Private Google Access with VPC Service Controls]: https://cloud.google.com/vpc-service-controls/docs/private-connectivity
59/// [Application Default Credentials]: https://cloud.google.com/docs/authentication#adc
60///
61/// # Pooling and Cloning
62///
63/// `BareMetalSolution` holds a connection pool internally, it is advised to
64/// create one and the reuse it.  You do not need to wrap `BareMetalSolution` in
65/// an [Rc](std::rc::Rc) or [Arc](std::sync::Arc) to reuse it, because it
66/// already uses an `Arc` internally.
67#[derive(Clone, Debug)]
68pub struct BareMetalSolution {
69    inner: std::sync::Arc<dyn super::stub::dynamic::BareMetalSolution>,
70}
71
72impl BareMetalSolution {
73    /// Returns a builder for [BareMetalSolution].
74    ///
75    /// ```
76    /// # async fn sample() -> google_cloud_gax::client_builder::Result<()> {
77    /// # use google_cloud_baremetalsolution_v2::client::BareMetalSolution;
78    /// let client = BareMetalSolution::builder().build().await?;
79    /// # Ok(()) }
80    /// ```
81    pub fn builder() -> super::builder::bare_metal_solution::ClientBuilder {
82        crate::new_client_builder(super::builder::bare_metal_solution::client::Factory)
83    }
84
85    /// Creates a new client from the provided stub.
86    ///
87    /// The most common case for calling this function is in tests mocking the
88    /// client's behavior.
89    pub fn from_stub<T>(stub: T) -> Self
90    where
91        T: super::stub::BareMetalSolution + 'static,
92    {
93        Self {
94            inner: std::sync::Arc::new(stub),
95        }
96    }
97
98    pub(crate) async fn new(
99        config: gaxi::options::ClientConfig,
100    ) -> crate::ClientBuilderResult<Self> {
101        let inner = Self::build_inner(config).await?;
102        Ok(Self { inner })
103    }
104
105    async fn build_inner(
106        conf: gaxi::options::ClientConfig,
107    ) -> crate::ClientBuilderResult<std::sync::Arc<dyn super::stub::dynamic::BareMetalSolution>>
108    {
109        if gaxi::options::tracing_enabled(&conf) {
110            return Ok(std::sync::Arc::new(Self::build_with_tracing(conf).await?));
111        }
112        Ok(std::sync::Arc::new(Self::build_transport(conf).await?))
113    }
114
115    async fn build_transport(
116        conf: gaxi::options::ClientConfig,
117    ) -> crate::ClientBuilderResult<impl super::stub::BareMetalSolution> {
118        super::transport::BareMetalSolution::new(conf).await
119    }
120
121    async fn build_with_tracing(
122        conf: gaxi::options::ClientConfig,
123    ) -> crate::ClientBuilderResult<impl super::stub::BareMetalSolution> {
124        Self::build_transport(conf)
125            .await
126            .map(super::tracing::BareMetalSolution::new)
127    }
128
129    /// List servers in a given project and location.
130    pub fn list_instances(&self) -> super::builder::bare_metal_solution::ListInstances {
131        super::builder::bare_metal_solution::ListInstances::new(self.inner.clone())
132    }
133
134    /// Get details about a single server.
135    pub fn get_instance(&self) -> super::builder::bare_metal_solution::GetInstance {
136        super::builder::bare_metal_solution::GetInstance::new(self.inner.clone())
137    }
138
139    /// Update details of a single server.
140    ///
141    /// # Long running operations
142    ///
143    /// This method is used to start, and/or poll a [long-running Operation].
144    /// The [Working with long-running operations] chapter in the [user guide]
145    /// covers these operations in detail.
146    ///
147    /// [long-running operation]: https://google.aip.dev/151
148    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
149    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
150    pub fn update_instance(&self) -> super::builder::bare_metal_solution::UpdateInstance {
151        super::builder::bare_metal_solution::UpdateInstance::new(self.inner.clone())
152    }
153
154    /// RenameInstance sets a new name for an instance.
155    /// Use with caution, previous names become immediately invalidated.
156    pub fn rename_instance(&self) -> super::builder::bare_metal_solution::RenameInstance {
157        super::builder::bare_metal_solution::RenameInstance::new(self.inner.clone())
158    }
159
160    /// Perform an ungraceful, hard reset on a server. Equivalent to shutting the
161    /// power off and then turning it back on.
162    ///
163    /// # Long running operations
164    ///
165    /// This method is used to start, and/or poll a [long-running Operation].
166    /// The [Working with long-running operations] chapter in the [user guide]
167    /// covers these operations in detail.
168    ///
169    /// [long-running operation]: https://google.aip.dev/151
170    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
171    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
172    pub fn reset_instance(&self) -> super::builder::bare_metal_solution::ResetInstance {
173        super::builder::bare_metal_solution::ResetInstance::new(self.inner.clone())
174    }
175
176    /// Starts a server that was shutdown.
177    ///
178    /// # Long running operations
179    ///
180    /// This method is used to start, and/or poll a [long-running Operation].
181    /// The [Working with long-running operations] chapter in the [user guide]
182    /// covers these operations in detail.
183    ///
184    /// [long-running operation]: https://google.aip.dev/151
185    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
186    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
187    pub fn start_instance(&self) -> super::builder::bare_metal_solution::StartInstance {
188        super::builder::bare_metal_solution::StartInstance::new(self.inner.clone())
189    }
190
191    /// Stop a running server.
192    ///
193    /// # Long running operations
194    ///
195    /// This method is used to start, and/or poll a [long-running Operation].
196    /// The [Working with long-running operations] chapter in the [user guide]
197    /// covers these operations in detail.
198    ///
199    /// [long-running operation]: https://google.aip.dev/151
200    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
201    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
202    pub fn stop_instance(&self) -> super::builder::bare_metal_solution::StopInstance {
203        super::builder::bare_metal_solution::StopInstance::new(self.inner.clone())
204    }
205
206    /// Enable the interactive serial console feature on an instance.
207    ///
208    /// # Long running operations
209    ///
210    /// This method is used to start, and/or poll a [long-running Operation].
211    /// The [Working with long-running operations] chapter in the [user guide]
212    /// covers these operations in detail.
213    ///
214    /// [long-running operation]: https://google.aip.dev/151
215    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
216    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
217    pub fn enable_interactive_serial_console(
218        &self,
219    ) -> super::builder::bare_metal_solution::EnableInteractiveSerialConsole {
220        super::builder::bare_metal_solution::EnableInteractiveSerialConsole::new(self.inner.clone())
221    }
222
223    /// Disable the interactive serial console feature on an instance.
224    ///
225    /// # Long running operations
226    ///
227    /// This method is used to start, and/or poll a [long-running Operation].
228    /// The [Working with long-running operations] chapter in the [user guide]
229    /// covers these operations in detail.
230    ///
231    /// [long-running operation]: https://google.aip.dev/151
232    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
233    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
234    pub fn disable_interactive_serial_console(
235        &self,
236    ) -> super::builder::bare_metal_solution::DisableInteractiveSerialConsole {
237        super::builder::bare_metal_solution::DisableInteractiveSerialConsole::new(
238            self.inner.clone(),
239        )
240    }
241
242    /// Detach LUN from Instance.
243    ///
244    /// # Long running operations
245    ///
246    /// This method is used to start, and/or poll a [long-running Operation].
247    /// The [Working with long-running operations] chapter in the [user guide]
248    /// covers these operations in detail.
249    ///
250    /// [long-running operation]: https://google.aip.dev/151
251    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
252    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
253    pub fn detach_lun(&self) -> super::builder::bare_metal_solution::DetachLun {
254        super::builder::bare_metal_solution::DetachLun::new(self.inner.clone())
255    }
256
257    /// Lists the public SSH keys registered for the specified project.
258    /// These SSH keys are used only for the interactive serial console feature.
259    pub fn list_ssh_keys(&self) -> super::builder::bare_metal_solution::ListSSHKeys {
260        super::builder::bare_metal_solution::ListSSHKeys::new(self.inner.clone())
261    }
262
263    /// Register a public SSH key in the specified project for use with the
264    /// interactive serial console feature.
265    pub fn create_ssh_key(&self) -> super::builder::bare_metal_solution::CreateSSHKey {
266        super::builder::bare_metal_solution::CreateSSHKey::new(self.inner.clone())
267    }
268
269    /// Deletes a public SSH key registered in the specified project.
270    pub fn delete_ssh_key(&self) -> super::builder::bare_metal_solution::DeleteSSHKey {
271        super::builder::bare_metal_solution::DeleteSSHKey::new(self.inner.clone())
272    }
273
274    /// List storage volumes in a given project and location.
275    pub fn list_volumes(&self) -> super::builder::bare_metal_solution::ListVolumes {
276        super::builder::bare_metal_solution::ListVolumes::new(self.inner.clone())
277    }
278
279    /// Get details of a single storage volume.
280    pub fn get_volume(&self) -> super::builder::bare_metal_solution::GetVolume {
281        super::builder::bare_metal_solution::GetVolume::new(self.inner.clone())
282    }
283
284    /// Update details of a single storage volume.
285    ///
286    /// # Long running operations
287    ///
288    /// This method is used to start, and/or poll a [long-running Operation].
289    /// The [Working with long-running operations] chapter in the [user guide]
290    /// covers these operations in detail.
291    ///
292    /// [long-running operation]: https://google.aip.dev/151
293    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
294    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
295    pub fn update_volume(&self) -> super::builder::bare_metal_solution::UpdateVolume {
296        super::builder::bare_metal_solution::UpdateVolume::new(self.inner.clone())
297    }
298
299    /// RenameVolume sets a new name for a volume.
300    /// Use with caution, previous names become immediately invalidated.
301    pub fn rename_volume(&self) -> super::builder::bare_metal_solution::RenameVolume {
302        super::builder::bare_metal_solution::RenameVolume::new(self.inner.clone())
303    }
304
305    /// Skips volume's cooloff and deletes it now.
306    /// Volume must be in cooloff state.
307    ///
308    /// # Long running operations
309    ///
310    /// This method is used to start, and/or poll a [long-running Operation].
311    /// The [Working with long-running operations] chapter in the [user guide]
312    /// covers these operations in detail.
313    ///
314    /// [long-running operation]: https://google.aip.dev/151
315    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
316    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
317    pub fn evict_volume(&self) -> super::builder::bare_metal_solution::EvictVolume {
318        super::builder::bare_metal_solution::EvictVolume::new(self.inner.clone())
319    }
320
321    /// Emergency Volume resize.
322    ///
323    /// # Long running operations
324    ///
325    /// This method is used to start, and/or poll a [long-running Operation].
326    /// The [Working with long-running operations] chapter in the [user guide]
327    /// covers these operations in detail.
328    ///
329    /// [long-running operation]: https://google.aip.dev/151
330    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
331    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
332    pub fn resize_volume(&self) -> super::builder::bare_metal_solution::ResizeVolume {
333        super::builder::bare_metal_solution::ResizeVolume::new(self.inner.clone())
334    }
335
336    /// List network in a given project and location.
337    pub fn list_networks(&self) -> super::builder::bare_metal_solution::ListNetworks {
338        super::builder::bare_metal_solution::ListNetworks::new(self.inner.clone())
339    }
340
341    /// List all Networks (and used IPs for each Network) in the vendor account
342    /// associated with the specified project.
343    pub fn list_network_usage(&self) -> super::builder::bare_metal_solution::ListNetworkUsage {
344        super::builder::bare_metal_solution::ListNetworkUsage::new(self.inner.clone())
345    }
346
347    /// Get details of a single network.
348    pub fn get_network(&self) -> super::builder::bare_metal_solution::GetNetwork {
349        super::builder::bare_metal_solution::GetNetwork::new(self.inner.clone())
350    }
351
352    /// Update details of a single network.
353    ///
354    /// # Long running operations
355    ///
356    /// This method is used to start, and/or poll a [long-running Operation].
357    /// The [Working with long-running operations] chapter in the [user guide]
358    /// covers these operations in detail.
359    ///
360    /// [long-running operation]: https://google.aip.dev/151
361    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
362    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
363    pub fn update_network(&self) -> super::builder::bare_metal_solution::UpdateNetwork {
364        super::builder::bare_metal_solution::UpdateNetwork::new(self.inner.clone())
365    }
366
367    /// Takes a snapshot of a boot volume.
368    /// Returns INVALID_ARGUMENT if called for a non-boot volume.
369    pub fn create_volume_snapshot(
370        &self,
371    ) -> super::builder::bare_metal_solution::CreateVolumeSnapshot {
372        super::builder::bare_metal_solution::CreateVolumeSnapshot::new(self.inner.clone())
373    }
374
375    /// Uses the specified snapshot to restore its parent volume.
376    /// Returns INVALID_ARGUMENT if called for a non-boot volume.
377    ///
378    /// # Long running operations
379    ///
380    /// This method is used to start, and/or poll a [long-running Operation].
381    /// The [Working with long-running operations] chapter in the [user guide]
382    /// covers these operations in detail.
383    ///
384    /// [long-running operation]: https://google.aip.dev/151
385    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
386    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
387    pub fn restore_volume_snapshot(
388        &self,
389    ) -> super::builder::bare_metal_solution::RestoreVolumeSnapshot {
390        super::builder::bare_metal_solution::RestoreVolumeSnapshot::new(self.inner.clone())
391    }
392
393    /// Deletes a volume snapshot.
394    /// Returns INVALID_ARGUMENT if called for a non-boot volume.
395    pub fn delete_volume_snapshot(
396        &self,
397    ) -> super::builder::bare_metal_solution::DeleteVolumeSnapshot {
398        super::builder::bare_metal_solution::DeleteVolumeSnapshot::new(self.inner.clone())
399    }
400
401    /// Returns the specified snapshot resource.
402    /// Returns INVALID_ARGUMENT if called for a non-boot volume.
403    pub fn get_volume_snapshot(&self) -> super::builder::bare_metal_solution::GetVolumeSnapshot {
404        super::builder::bare_metal_solution::GetVolumeSnapshot::new(self.inner.clone())
405    }
406
407    /// Retrieves the list of snapshots for the specified volume.
408    /// Returns a response with an empty list of snapshots if called
409    /// for a non-boot volume.
410    pub fn list_volume_snapshots(
411        &self,
412    ) -> super::builder::bare_metal_solution::ListVolumeSnapshots {
413        super::builder::bare_metal_solution::ListVolumeSnapshots::new(self.inner.clone())
414    }
415
416    /// Get details of a single storage logical unit number(LUN).
417    pub fn get_lun(&self) -> super::builder::bare_metal_solution::GetLun {
418        super::builder::bare_metal_solution::GetLun::new(self.inner.clone())
419    }
420
421    /// List storage volume luns for given storage volume.
422    pub fn list_luns(&self) -> super::builder::bare_metal_solution::ListLuns {
423        super::builder::bare_metal_solution::ListLuns::new(self.inner.clone())
424    }
425
426    /// Skips lun's cooloff and deletes it now.
427    /// Lun must be in cooloff state.
428    ///
429    /// # Long running operations
430    ///
431    /// This method is used to start, and/or poll a [long-running Operation].
432    /// The [Working with long-running operations] chapter in the [user guide]
433    /// covers these operations in detail.
434    ///
435    /// [long-running operation]: https://google.aip.dev/151
436    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
437    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
438    pub fn evict_lun(&self) -> super::builder::bare_metal_solution::EvictLun {
439        super::builder::bare_metal_solution::EvictLun::new(self.inner.clone())
440    }
441
442    /// Get details of a single NFS share.
443    pub fn get_nfs_share(&self) -> super::builder::bare_metal_solution::GetNfsShare {
444        super::builder::bare_metal_solution::GetNfsShare::new(self.inner.clone())
445    }
446
447    /// List NFS shares.
448    pub fn list_nfs_shares(&self) -> super::builder::bare_metal_solution::ListNfsShares {
449        super::builder::bare_metal_solution::ListNfsShares::new(self.inner.clone())
450    }
451
452    /// Update details of a single NFS share.
453    ///
454    /// # Long running operations
455    ///
456    /// This method is used to start, and/or poll a [long-running Operation].
457    /// The [Working with long-running operations] chapter in the [user guide]
458    /// covers these operations in detail.
459    ///
460    /// [long-running operation]: https://google.aip.dev/151
461    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
462    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
463    pub fn update_nfs_share(&self) -> super::builder::bare_metal_solution::UpdateNfsShare {
464        super::builder::bare_metal_solution::UpdateNfsShare::new(self.inner.clone())
465    }
466
467    /// Create an NFS share.
468    ///
469    /// # Long running operations
470    ///
471    /// This method is used to start, and/or poll a [long-running Operation].
472    /// The [Working with long-running operations] chapter in the [user guide]
473    /// covers these operations in detail.
474    ///
475    /// [long-running operation]: https://google.aip.dev/151
476    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
477    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
478    pub fn create_nfs_share(&self) -> super::builder::bare_metal_solution::CreateNfsShare {
479        super::builder::bare_metal_solution::CreateNfsShare::new(self.inner.clone())
480    }
481
482    /// RenameNfsShare sets a new name for an nfsshare.
483    /// Use with caution, previous names become immediately invalidated.
484    pub fn rename_nfs_share(&self) -> super::builder::bare_metal_solution::RenameNfsShare {
485        super::builder::bare_metal_solution::RenameNfsShare::new(self.inner.clone())
486    }
487
488    /// Delete an NFS share. The underlying volume is automatically deleted.
489    ///
490    /// # Long running operations
491    ///
492    /// This method is used to start, and/or poll a [long-running Operation].
493    /// The [Working with long-running operations] chapter in the [user guide]
494    /// covers these operations in detail.
495    ///
496    /// [long-running operation]: https://google.aip.dev/151
497    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
498    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
499    pub fn delete_nfs_share(&self) -> super::builder::bare_metal_solution::DeleteNfsShare {
500        super::builder::bare_metal_solution::DeleteNfsShare::new(self.inner.clone())
501    }
502
503    /// List the budget details to provision resources on a given project.
504    pub fn list_provisioning_quotas(
505        &self,
506    ) -> super::builder::bare_metal_solution::ListProvisioningQuotas {
507        super::builder::bare_metal_solution::ListProvisioningQuotas::new(self.inner.clone())
508    }
509
510    /// Submit a provisiong configuration for a given project.
511    pub fn submit_provisioning_config(
512        &self,
513    ) -> super::builder::bare_metal_solution::SubmitProvisioningConfig {
514        super::builder::bare_metal_solution::SubmitProvisioningConfig::new(self.inner.clone())
515    }
516
517    /// Get ProvisioningConfig by name.
518    pub fn get_provisioning_config(
519        &self,
520    ) -> super::builder::bare_metal_solution::GetProvisioningConfig {
521        super::builder::bare_metal_solution::GetProvisioningConfig::new(self.inner.clone())
522    }
523
524    /// Create new ProvisioningConfig.
525    pub fn create_provisioning_config(
526        &self,
527    ) -> super::builder::bare_metal_solution::CreateProvisioningConfig {
528        super::builder::bare_metal_solution::CreateProvisioningConfig::new(self.inner.clone())
529    }
530
531    /// Update existing ProvisioningConfig.
532    pub fn update_provisioning_config(
533        &self,
534    ) -> super::builder::bare_metal_solution::UpdateProvisioningConfig {
535        super::builder::bare_metal_solution::UpdateProvisioningConfig::new(self.inner.clone())
536    }
537
538    /// RenameNetwork sets a new name for a network.
539    /// Use with caution, previous names become immediately invalidated.
540    pub fn rename_network(&self) -> super::builder::bare_metal_solution::RenameNetwork {
541        super::builder::bare_metal_solution::RenameNetwork::new(self.inner.clone())
542    }
543
544    /// Retrieves the list of OS images which are currently approved.
545    pub fn list_os_images(&self) -> super::builder::bare_metal_solution::ListOSImages {
546        super::builder::bare_metal_solution::ListOSImages::new(self.inner.clone())
547    }
548
549    /// Lists information about the supported locations for this service.
550    pub fn list_locations(&self) -> super::builder::bare_metal_solution::ListLocations {
551        super::builder::bare_metal_solution::ListLocations::new(self.inner.clone())
552    }
553
554    /// Gets information about a location.
555    pub fn get_location(&self) -> super::builder::bare_metal_solution::GetLocation {
556        super::builder::bare_metal_solution::GetLocation::new(self.inner.clone())
557    }
558
559    /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
560    ///
561    /// [google.longrunning.Operations]: google-cloud-longrunning::client::Operations
562    pub fn get_operation(&self) -> super::builder::bare_metal_solution::GetOperation {
563        super::builder::bare_metal_solution::GetOperation::new(self.inner.clone())
564    }
565}