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/// # tokio_test::block_on(async {
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/// # gax::client_builder::Result::<()>::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    /// # tokio_test::block_on(async {
77    /// # use google_cloud_baremetalsolution_v2::client::BareMetalSolution;
78    /// let client = BareMetalSolution::builder().build().await?;
79    /// # gax::client_builder::Result::<()>::Ok(()) });
80    /// ```
81    pub fn builder() -> super::builder::bare_metal_solution::ClientBuilder {
82        gax::client_builder::internal::new_builder(
83            super::builder::bare_metal_solution::client::Factory,
84        )
85    }
86
87    /// Creates a new client from the provided stub.
88    ///
89    /// The most common case for calling this function is in tests mocking the
90    /// client's behavior.
91    pub fn from_stub<T>(stub: T) -> Self
92    where
93        T: super::stub::BareMetalSolution + 'static,
94    {
95        Self {
96            inner: std::sync::Arc::new(stub),
97        }
98    }
99
100    pub(crate) async fn new(
101        config: gaxi::options::ClientConfig,
102    ) -> gax::client_builder::Result<Self> {
103        let inner = Self::build_inner(config).await?;
104        Ok(Self { inner })
105    }
106
107    async fn build_inner(
108        conf: gaxi::options::ClientConfig,
109    ) -> gax::client_builder::Result<std::sync::Arc<dyn super::stub::dynamic::BareMetalSolution>>
110    {
111        if gaxi::options::tracing_enabled(&conf) {
112            return Ok(std::sync::Arc::new(Self::build_with_tracing(conf).await?));
113        }
114        Ok(std::sync::Arc::new(Self::build_transport(conf).await?))
115    }
116
117    async fn build_transport(
118        conf: gaxi::options::ClientConfig,
119    ) -> gax::client_builder::Result<impl super::stub::BareMetalSolution> {
120        super::transport::BareMetalSolution::new(conf).await
121    }
122
123    async fn build_with_tracing(
124        conf: gaxi::options::ClientConfig,
125    ) -> gax::client_builder::Result<impl super::stub::BareMetalSolution> {
126        Self::build_transport(conf)
127            .await
128            .map(super::tracing::BareMetalSolution::new)
129    }
130
131    /// List servers in a given project and location.
132    pub fn list_instances(&self) -> super::builder::bare_metal_solution::ListInstances {
133        super::builder::bare_metal_solution::ListInstances::new(self.inner.clone())
134    }
135
136    /// Get details about a single server.
137    pub fn get_instance(&self) -> super::builder::bare_metal_solution::GetInstance {
138        super::builder::bare_metal_solution::GetInstance::new(self.inner.clone())
139    }
140
141    /// Update details of a single server.
142    ///
143    /// # Long running operations
144    ///
145    /// This method is used to start, and/or poll a [long-running Operation].
146    /// The [Working with long-running operations] chapter in the [user guide]
147    /// covers these operations in detail.
148    ///
149    /// [long-running operation]: https://google.aip.dev/151
150    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
151    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
152    pub fn update_instance(&self) -> super::builder::bare_metal_solution::UpdateInstance {
153        super::builder::bare_metal_solution::UpdateInstance::new(self.inner.clone())
154    }
155
156    /// RenameInstance sets a new name for an instance.
157    /// Use with caution, previous names become immediately invalidated.
158    pub fn rename_instance(&self) -> super::builder::bare_metal_solution::RenameInstance {
159        super::builder::bare_metal_solution::RenameInstance::new(self.inner.clone())
160    }
161
162    /// Perform an ungraceful, hard reset on a server. Equivalent to shutting the
163    /// power off and then turning it back on.
164    ///
165    /// # Long running operations
166    ///
167    /// This method is used to start, and/or poll a [long-running Operation].
168    /// The [Working with long-running operations] chapter in the [user guide]
169    /// covers these operations in detail.
170    ///
171    /// [long-running operation]: https://google.aip.dev/151
172    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
173    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
174    pub fn reset_instance(&self) -> super::builder::bare_metal_solution::ResetInstance {
175        super::builder::bare_metal_solution::ResetInstance::new(self.inner.clone())
176    }
177
178    /// Starts a server that was shutdown.
179    ///
180    /// # Long running operations
181    ///
182    /// This method is used to start, and/or poll a [long-running Operation].
183    /// The [Working with long-running operations] chapter in the [user guide]
184    /// covers these operations in detail.
185    ///
186    /// [long-running operation]: https://google.aip.dev/151
187    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
188    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
189    pub fn start_instance(&self) -> super::builder::bare_metal_solution::StartInstance {
190        super::builder::bare_metal_solution::StartInstance::new(self.inner.clone())
191    }
192
193    /// Stop a running server.
194    ///
195    /// # Long running operations
196    ///
197    /// This method is used to start, and/or poll a [long-running Operation].
198    /// The [Working with long-running operations] chapter in the [user guide]
199    /// covers these operations in detail.
200    ///
201    /// [long-running operation]: https://google.aip.dev/151
202    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
203    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
204    pub fn stop_instance(&self) -> super::builder::bare_metal_solution::StopInstance {
205        super::builder::bare_metal_solution::StopInstance::new(self.inner.clone())
206    }
207
208    /// Enable the interactive serial console feature on an instance.
209    ///
210    /// # Long running operations
211    ///
212    /// This method is used to start, and/or poll a [long-running Operation].
213    /// The [Working with long-running operations] chapter in the [user guide]
214    /// covers these operations in detail.
215    ///
216    /// [long-running operation]: https://google.aip.dev/151
217    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
218    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
219    pub fn enable_interactive_serial_console(
220        &self,
221    ) -> super::builder::bare_metal_solution::EnableInteractiveSerialConsole {
222        super::builder::bare_metal_solution::EnableInteractiveSerialConsole::new(self.inner.clone())
223    }
224
225    /// Disable the interactive serial console feature on an instance.
226    ///
227    /// # Long running operations
228    ///
229    /// This method is used to start, and/or poll a [long-running Operation].
230    /// The [Working with long-running operations] chapter in the [user guide]
231    /// covers these operations in detail.
232    ///
233    /// [long-running operation]: https://google.aip.dev/151
234    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
235    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
236    pub fn disable_interactive_serial_console(
237        &self,
238    ) -> super::builder::bare_metal_solution::DisableInteractiveSerialConsole {
239        super::builder::bare_metal_solution::DisableInteractiveSerialConsole::new(
240            self.inner.clone(),
241        )
242    }
243
244    /// Detach LUN from Instance.
245    ///
246    /// # Long running operations
247    ///
248    /// This method is used to start, and/or poll a [long-running Operation].
249    /// The [Working with long-running operations] chapter in the [user guide]
250    /// covers these operations in detail.
251    ///
252    /// [long-running operation]: https://google.aip.dev/151
253    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
254    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
255    pub fn detach_lun(&self) -> super::builder::bare_metal_solution::DetachLun {
256        super::builder::bare_metal_solution::DetachLun::new(self.inner.clone())
257    }
258
259    /// Lists the public SSH keys registered for the specified project.
260    /// These SSH keys are used only for the interactive serial console feature.
261    pub fn list_ssh_keys(&self) -> super::builder::bare_metal_solution::ListSSHKeys {
262        super::builder::bare_metal_solution::ListSSHKeys::new(self.inner.clone())
263    }
264
265    /// Register a public SSH key in the specified project for use with the
266    /// interactive serial console feature.
267    pub fn create_ssh_key(&self) -> super::builder::bare_metal_solution::CreateSSHKey {
268        super::builder::bare_metal_solution::CreateSSHKey::new(self.inner.clone())
269    }
270
271    /// Deletes a public SSH key registered in the specified project.
272    pub fn delete_ssh_key(&self) -> super::builder::bare_metal_solution::DeleteSSHKey {
273        super::builder::bare_metal_solution::DeleteSSHKey::new(self.inner.clone())
274    }
275
276    /// List storage volumes in a given project and location.
277    pub fn list_volumes(&self) -> super::builder::bare_metal_solution::ListVolumes {
278        super::builder::bare_metal_solution::ListVolumes::new(self.inner.clone())
279    }
280
281    /// Get details of a single storage volume.
282    pub fn get_volume(&self) -> super::builder::bare_metal_solution::GetVolume {
283        super::builder::bare_metal_solution::GetVolume::new(self.inner.clone())
284    }
285
286    /// Update details of a single storage volume.
287    ///
288    /// # Long running operations
289    ///
290    /// This method is used to start, and/or poll a [long-running Operation].
291    /// The [Working with long-running operations] chapter in the [user guide]
292    /// covers these operations in detail.
293    ///
294    /// [long-running operation]: https://google.aip.dev/151
295    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
296    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
297    pub fn update_volume(&self) -> super::builder::bare_metal_solution::UpdateVolume {
298        super::builder::bare_metal_solution::UpdateVolume::new(self.inner.clone())
299    }
300
301    /// RenameVolume sets a new name for a volume.
302    /// Use with caution, previous names become immediately invalidated.
303    pub fn rename_volume(&self) -> super::builder::bare_metal_solution::RenameVolume {
304        super::builder::bare_metal_solution::RenameVolume::new(self.inner.clone())
305    }
306
307    /// Skips volume's cooloff and deletes it now.
308    /// Volume must be in cooloff state.
309    ///
310    /// # Long running operations
311    ///
312    /// This method is used to start, and/or poll a [long-running Operation].
313    /// The [Working with long-running operations] chapter in the [user guide]
314    /// covers these operations in detail.
315    ///
316    /// [long-running operation]: https://google.aip.dev/151
317    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
318    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
319    pub fn evict_volume(&self) -> super::builder::bare_metal_solution::EvictVolume {
320        super::builder::bare_metal_solution::EvictVolume::new(self.inner.clone())
321    }
322
323    /// Emergency Volume resize.
324    ///
325    /// # Long running operations
326    ///
327    /// This method is used to start, and/or poll a [long-running Operation].
328    /// The [Working with long-running operations] chapter in the [user guide]
329    /// covers these operations in detail.
330    ///
331    /// [long-running operation]: https://google.aip.dev/151
332    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
333    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
334    pub fn resize_volume(&self) -> super::builder::bare_metal_solution::ResizeVolume {
335        super::builder::bare_metal_solution::ResizeVolume::new(self.inner.clone())
336    }
337
338    /// List network in a given project and location.
339    pub fn list_networks(&self) -> super::builder::bare_metal_solution::ListNetworks {
340        super::builder::bare_metal_solution::ListNetworks::new(self.inner.clone())
341    }
342
343    /// List all Networks (and used IPs for each Network) in the vendor account
344    /// associated with the specified project.
345    pub fn list_network_usage(&self) -> super::builder::bare_metal_solution::ListNetworkUsage {
346        super::builder::bare_metal_solution::ListNetworkUsage::new(self.inner.clone())
347    }
348
349    /// Get details of a single network.
350    pub fn get_network(&self) -> super::builder::bare_metal_solution::GetNetwork {
351        super::builder::bare_metal_solution::GetNetwork::new(self.inner.clone())
352    }
353
354    /// Update details of a single network.
355    ///
356    /// # Long running operations
357    ///
358    /// This method is used to start, and/or poll a [long-running Operation].
359    /// The [Working with long-running operations] chapter in the [user guide]
360    /// covers these operations in detail.
361    ///
362    /// [long-running operation]: https://google.aip.dev/151
363    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
364    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
365    pub fn update_network(&self) -> super::builder::bare_metal_solution::UpdateNetwork {
366        super::builder::bare_metal_solution::UpdateNetwork::new(self.inner.clone())
367    }
368
369    /// Takes a snapshot of a boot volume.
370    /// Returns INVALID_ARGUMENT if called for a non-boot volume.
371    pub fn create_volume_snapshot(
372        &self,
373    ) -> super::builder::bare_metal_solution::CreateVolumeSnapshot {
374        super::builder::bare_metal_solution::CreateVolumeSnapshot::new(self.inner.clone())
375    }
376
377    /// Uses the specified snapshot to restore its parent volume.
378    /// Returns INVALID_ARGUMENT if called for a non-boot volume.
379    ///
380    /// # Long running operations
381    ///
382    /// This method is used to start, and/or poll a [long-running Operation].
383    /// The [Working with long-running operations] chapter in the [user guide]
384    /// covers these operations in detail.
385    ///
386    /// [long-running operation]: https://google.aip.dev/151
387    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
388    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
389    pub fn restore_volume_snapshot(
390        &self,
391    ) -> super::builder::bare_metal_solution::RestoreVolumeSnapshot {
392        super::builder::bare_metal_solution::RestoreVolumeSnapshot::new(self.inner.clone())
393    }
394
395    /// Deletes a volume snapshot.
396    /// Returns INVALID_ARGUMENT if called for a non-boot volume.
397    pub fn delete_volume_snapshot(
398        &self,
399    ) -> super::builder::bare_metal_solution::DeleteVolumeSnapshot {
400        super::builder::bare_metal_solution::DeleteVolumeSnapshot::new(self.inner.clone())
401    }
402
403    /// Returns the specified snapshot resource.
404    /// Returns INVALID_ARGUMENT if called for a non-boot volume.
405    pub fn get_volume_snapshot(&self) -> super::builder::bare_metal_solution::GetVolumeSnapshot {
406        super::builder::bare_metal_solution::GetVolumeSnapshot::new(self.inner.clone())
407    }
408
409    /// Retrieves the list of snapshots for the specified volume.
410    /// Returns a response with an empty list of snapshots if called
411    /// for a non-boot volume.
412    pub fn list_volume_snapshots(
413        &self,
414    ) -> super::builder::bare_metal_solution::ListVolumeSnapshots {
415        super::builder::bare_metal_solution::ListVolumeSnapshots::new(self.inner.clone())
416    }
417
418    /// Get details of a single storage logical unit number(LUN).
419    pub fn get_lun(&self) -> super::builder::bare_metal_solution::GetLun {
420        super::builder::bare_metal_solution::GetLun::new(self.inner.clone())
421    }
422
423    /// List storage volume luns for given storage volume.
424    pub fn list_luns(&self) -> super::builder::bare_metal_solution::ListLuns {
425        super::builder::bare_metal_solution::ListLuns::new(self.inner.clone())
426    }
427
428    /// Skips lun's cooloff and deletes it now.
429    /// Lun must be in cooloff state.
430    ///
431    /// # Long running operations
432    ///
433    /// This method is used to start, and/or poll a [long-running Operation].
434    /// The [Working with long-running operations] chapter in the [user guide]
435    /// covers these operations in detail.
436    ///
437    /// [long-running operation]: https://google.aip.dev/151
438    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
439    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
440    pub fn evict_lun(&self) -> super::builder::bare_metal_solution::EvictLun {
441        super::builder::bare_metal_solution::EvictLun::new(self.inner.clone())
442    }
443
444    /// Get details of a single NFS share.
445    pub fn get_nfs_share(&self) -> super::builder::bare_metal_solution::GetNfsShare {
446        super::builder::bare_metal_solution::GetNfsShare::new(self.inner.clone())
447    }
448
449    /// List NFS shares.
450    pub fn list_nfs_shares(&self) -> super::builder::bare_metal_solution::ListNfsShares {
451        super::builder::bare_metal_solution::ListNfsShares::new(self.inner.clone())
452    }
453
454    /// Update details of a single NFS share.
455    ///
456    /// # Long running operations
457    ///
458    /// This method is used to start, and/or poll a [long-running Operation].
459    /// The [Working with long-running operations] chapter in the [user guide]
460    /// covers these operations in detail.
461    ///
462    /// [long-running operation]: https://google.aip.dev/151
463    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
464    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
465    pub fn update_nfs_share(&self) -> super::builder::bare_metal_solution::UpdateNfsShare {
466        super::builder::bare_metal_solution::UpdateNfsShare::new(self.inner.clone())
467    }
468
469    /// Create an NFS share.
470    ///
471    /// # Long running operations
472    ///
473    /// This method is used to start, and/or poll a [long-running Operation].
474    /// The [Working with long-running operations] chapter in the [user guide]
475    /// covers these operations in detail.
476    ///
477    /// [long-running operation]: https://google.aip.dev/151
478    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
479    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
480    pub fn create_nfs_share(&self) -> super::builder::bare_metal_solution::CreateNfsShare {
481        super::builder::bare_metal_solution::CreateNfsShare::new(self.inner.clone())
482    }
483
484    /// RenameNfsShare sets a new name for an nfsshare.
485    /// Use with caution, previous names become immediately invalidated.
486    pub fn rename_nfs_share(&self) -> super::builder::bare_metal_solution::RenameNfsShare {
487        super::builder::bare_metal_solution::RenameNfsShare::new(self.inner.clone())
488    }
489
490    /// Delete an NFS share. The underlying volume is automatically deleted.
491    ///
492    /// # Long running operations
493    ///
494    /// This method is used to start, and/or poll a [long-running Operation].
495    /// The [Working with long-running operations] chapter in the [user guide]
496    /// covers these operations in detail.
497    ///
498    /// [long-running operation]: https://google.aip.dev/151
499    /// [user guide]: https://googleapis.github.io/google-cloud-rust/
500    /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
501    pub fn delete_nfs_share(&self) -> super::builder::bare_metal_solution::DeleteNfsShare {
502        super::builder::bare_metal_solution::DeleteNfsShare::new(self.inner.clone())
503    }
504
505    /// List the budget details to provision resources on a given project.
506    pub fn list_provisioning_quotas(
507        &self,
508    ) -> super::builder::bare_metal_solution::ListProvisioningQuotas {
509        super::builder::bare_metal_solution::ListProvisioningQuotas::new(self.inner.clone())
510    }
511
512    /// Submit a provisiong configuration for a given project.
513    pub fn submit_provisioning_config(
514        &self,
515    ) -> super::builder::bare_metal_solution::SubmitProvisioningConfig {
516        super::builder::bare_metal_solution::SubmitProvisioningConfig::new(self.inner.clone())
517    }
518
519    /// Get ProvisioningConfig by name.
520    pub fn get_provisioning_config(
521        &self,
522    ) -> super::builder::bare_metal_solution::GetProvisioningConfig {
523        super::builder::bare_metal_solution::GetProvisioningConfig::new(self.inner.clone())
524    }
525
526    /// Create new ProvisioningConfig.
527    pub fn create_provisioning_config(
528        &self,
529    ) -> super::builder::bare_metal_solution::CreateProvisioningConfig {
530        super::builder::bare_metal_solution::CreateProvisioningConfig::new(self.inner.clone())
531    }
532
533    /// Update existing ProvisioningConfig.
534    pub fn update_provisioning_config(
535        &self,
536    ) -> super::builder::bare_metal_solution::UpdateProvisioningConfig {
537        super::builder::bare_metal_solution::UpdateProvisioningConfig::new(self.inner.clone())
538    }
539
540    /// RenameNetwork sets a new name for a network.
541    /// Use with caution, previous names become immediately invalidated.
542    pub fn rename_network(&self) -> super::builder::bare_metal_solution::RenameNetwork {
543        super::builder::bare_metal_solution::RenameNetwork::new(self.inner.clone())
544    }
545
546    /// Retrieves the list of OS images which are currently approved.
547    pub fn list_os_images(&self) -> super::builder::bare_metal_solution::ListOSImages {
548        super::builder::bare_metal_solution::ListOSImages::new(self.inner.clone())
549    }
550
551    /// Lists information about the supported locations for this service.
552    pub fn list_locations(&self) -> super::builder::bare_metal_solution::ListLocations {
553        super::builder::bare_metal_solution::ListLocations::new(self.inner.clone())
554    }
555
556    /// Gets information about a location.
557    pub fn get_location(&self) -> super::builder::bare_metal_solution::GetLocation {
558        super::builder::bare_metal_solution::GetLocation::new(self.inner.clone())
559    }
560
561    /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
562    ///
563    /// [google.longrunning.Operations]: longrunning::client::Operations
564    pub fn get_operation(&self) -> super::builder::bare_metal_solution::GetOperation {
565        super::builder::bare_metal_solution::GetOperation::new(self.inner.clone())
566    }
567}