#[async_trait::async_trait]
pub trait BareMetalSolution: std::fmt::Debug + Send + Sync {
async fn list_instances(
&self,
req: crate::model::ListInstancesRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListInstancesResponse>>;
async fn get_instance(
&self,
req: crate::model::GetInstanceRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Instance>>;
async fn update_instance(
&self,
req: crate::model::UpdateInstanceRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_longrunning::model::Operation>>;
async fn rename_instance(
&self,
req: crate::model::RenameInstanceRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Instance>>;
async fn reset_instance(
&self,
req: crate::model::ResetInstanceRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_longrunning::model::Operation>>;
async fn start_instance(
&self,
req: crate::model::StartInstanceRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_longrunning::model::Operation>>;
async fn stop_instance(
&self,
req: crate::model::StopInstanceRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_longrunning::model::Operation>>;
async fn enable_interactive_serial_console(
&self,
req: crate::model::EnableInteractiveSerialConsoleRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_longrunning::model::Operation>>;
async fn disable_interactive_serial_console(
&self,
req: crate::model::DisableInteractiveSerialConsoleRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_longrunning::model::Operation>>;
async fn detach_lun(
&self,
req: crate::model::DetachLunRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_longrunning::model::Operation>>;
async fn list_ssh_keys(
&self,
req: crate::model::ListSSHKeysRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListSSHKeysResponse>>;
async fn create_ssh_key(
&self,
req: crate::model::CreateSSHKeyRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::SSHKey>>;
async fn delete_ssh_key(
&self,
req: crate::model::DeleteSSHKeyRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>>;
async fn list_volumes(
&self,
req: crate::model::ListVolumesRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListVolumesResponse>>;
async fn get_volume(
&self,
req: crate::model::GetVolumeRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Volume>>;
async fn update_volume(
&self,
req: crate::model::UpdateVolumeRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_longrunning::model::Operation>>;
async fn rename_volume(
&self,
req: crate::model::RenameVolumeRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Volume>>;
async fn evict_volume(
&self,
req: crate::model::EvictVolumeRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_longrunning::model::Operation>>;
async fn resize_volume(
&self,
req: crate::model::ResizeVolumeRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_longrunning::model::Operation>>;
async fn list_networks(
&self,
req: crate::model::ListNetworksRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListNetworksResponse>>;
async fn list_network_usage(
&self,
req: crate::model::ListNetworkUsageRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListNetworkUsageResponse>>;
async fn get_network(
&self,
req: crate::model::GetNetworkRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Network>>;
async fn update_network(
&self,
req: crate::model::UpdateNetworkRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_longrunning::model::Operation>>;
async fn create_volume_snapshot(
&self,
req: crate::model::CreateVolumeSnapshotRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::VolumeSnapshot>>;
async fn restore_volume_snapshot(
&self,
req: crate::model::RestoreVolumeSnapshotRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_longrunning::model::Operation>>;
async fn delete_volume_snapshot(
&self,
req: crate::model::DeleteVolumeSnapshotRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>>;
async fn get_volume_snapshot(
&self,
req: crate::model::GetVolumeSnapshotRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::VolumeSnapshot>>;
async fn list_volume_snapshots(
&self,
req: crate::model::ListVolumeSnapshotsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListVolumeSnapshotsResponse>>;
async fn get_lun(
&self,
req: crate::model::GetLunRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Lun>>;
async fn list_luns(
&self,
req: crate::model::ListLunsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListLunsResponse>>;
async fn evict_lun(
&self,
req: crate::model::EvictLunRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_longrunning::model::Operation>>;
async fn get_nfs_share(
&self,
req: crate::model::GetNfsShareRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::NfsShare>>;
async fn list_nfs_shares(
&self,
req: crate::model::ListNfsSharesRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListNfsSharesResponse>>;
async fn update_nfs_share(
&self,
req: crate::model::UpdateNfsShareRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_longrunning::model::Operation>>;
async fn create_nfs_share(
&self,
req: crate::model::CreateNfsShareRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_longrunning::model::Operation>>;
async fn rename_nfs_share(
&self,
req: crate::model::RenameNfsShareRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::NfsShare>>;
async fn delete_nfs_share(
&self,
req: crate::model::DeleteNfsShareRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_longrunning::model::Operation>>;
async fn list_provisioning_quotas(
&self,
req: crate::model::ListProvisioningQuotasRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListProvisioningQuotasResponse>>;
async fn submit_provisioning_config(
&self,
req: crate::model::SubmitProvisioningConfigRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::SubmitProvisioningConfigResponse>>;
async fn get_provisioning_config(
&self,
req: crate::model::GetProvisioningConfigRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ProvisioningConfig>>;
async fn create_provisioning_config(
&self,
req: crate::model::CreateProvisioningConfigRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ProvisioningConfig>>;
async fn update_provisioning_config(
&self,
req: crate::model::UpdateProvisioningConfigRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ProvisioningConfig>>;
async fn rename_network(
&self,
req: crate::model::RenameNetworkRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Network>>;
async fn list_os_images(
&self,
req: crate::model::ListOSImagesRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListOSImagesResponse>>;
async fn list_locations(
&self,
req: google_cloud_location::model::ListLocationsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_location::model::ListLocationsResponse>>;
async fn get_location(
&self,
req: google_cloud_location::model::GetLocationRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_location::model::Location>>;
async fn get_operation(
&self,
req: google_cloud_longrunning::model::GetOperationRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_longrunning::model::Operation>>;
fn get_polling_error_policy(
&self,
options: &crate::RequestOptions,
) -> std::sync::Arc<dyn google_cloud_gax::polling_error_policy::PollingErrorPolicy>;
fn get_polling_backoff_policy(
&self,
options: &crate::RequestOptions,
) -> std::sync::Arc<dyn google_cloud_gax::polling_backoff_policy::PollingBackoffPolicy>;
}
#[async_trait::async_trait]
impl<T: super::BareMetalSolution> BareMetalSolution for T {
async fn list_instances(
&self,
req: crate::model::ListInstancesRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListInstancesResponse>> {
T::list_instances(self, req, options).await
}
async fn get_instance(
&self,
req: crate::model::GetInstanceRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Instance>> {
T::get_instance(self, req, options).await
}
async fn update_instance(
&self,
req: crate::model::UpdateInstanceRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_longrunning::model::Operation>> {
T::update_instance(self, req, options).await
}
async fn rename_instance(
&self,
req: crate::model::RenameInstanceRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Instance>> {
T::rename_instance(self, req, options).await
}
async fn reset_instance(
&self,
req: crate::model::ResetInstanceRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_longrunning::model::Operation>> {
T::reset_instance(self, req, options).await
}
async fn start_instance(
&self,
req: crate::model::StartInstanceRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_longrunning::model::Operation>> {
T::start_instance(self, req, options).await
}
async fn stop_instance(
&self,
req: crate::model::StopInstanceRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_longrunning::model::Operation>> {
T::stop_instance(self, req, options).await
}
async fn enable_interactive_serial_console(
&self,
req: crate::model::EnableInteractiveSerialConsoleRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_longrunning::model::Operation>> {
T::enable_interactive_serial_console(self, req, options).await
}
async fn disable_interactive_serial_console(
&self,
req: crate::model::DisableInteractiveSerialConsoleRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_longrunning::model::Operation>> {
T::disable_interactive_serial_console(self, req, options).await
}
async fn detach_lun(
&self,
req: crate::model::DetachLunRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_longrunning::model::Operation>> {
T::detach_lun(self, req, options).await
}
async fn list_ssh_keys(
&self,
req: crate::model::ListSSHKeysRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListSSHKeysResponse>> {
T::list_ssh_keys(self, req, options).await
}
async fn create_ssh_key(
&self,
req: crate::model::CreateSSHKeyRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::SSHKey>> {
T::create_ssh_key(self, req, options).await
}
async fn delete_ssh_key(
&self,
req: crate::model::DeleteSSHKeyRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>> {
T::delete_ssh_key(self, req, options).await
}
async fn list_volumes(
&self,
req: crate::model::ListVolumesRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListVolumesResponse>> {
T::list_volumes(self, req, options).await
}
async fn get_volume(
&self,
req: crate::model::GetVolumeRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Volume>> {
T::get_volume(self, req, options).await
}
async fn update_volume(
&self,
req: crate::model::UpdateVolumeRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_longrunning::model::Operation>> {
T::update_volume(self, req, options).await
}
async fn rename_volume(
&self,
req: crate::model::RenameVolumeRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Volume>> {
T::rename_volume(self, req, options).await
}
async fn evict_volume(
&self,
req: crate::model::EvictVolumeRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_longrunning::model::Operation>> {
T::evict_volume(self, req, options).await
}
async fn resize_volume(
&self,
req: crate::model::ResizeVolumeRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_longrunning::model::Operation>> {
T::resize_volume(self, req, options).await
}
async fn list_networks(
&self,
req: crate::model::ListNetworksRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListNetworksResponse>> {
T::list_networks(self, req, options).await
}
async fn list_network_usage(
&self,
req: crate::model::ListNetworkUsageRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListNetworkUsageResponse>> {
T::list_network_usage(self, req, options).await
}
async fn get_network(
&self,
req: crate::model::GetNetworkRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Network>> {
T::get_network(self, req, options).await
}
async fn update_network(
&self,
req: crate::model::UpdateNetworkRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_longrunning::model::Operation>> {
T::update_network(self, req, options).await
}
async fn create_volume_snapshot(
&self,
req: crate::model::CreateVolumeSnapshotRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::VolumeSnapshot>> {
T::create_volume_snapshot(self, req, options).await
}
async fn restore_volume_snapshot(
&self,
req: crate::model::RestoreVolumeSnapshotRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_longrunning::model::Operation>> {
T::restore_volume_snapshot(self, req, options).await
}
async fn delete_volume_snapshot(
&self,
req: crate::model::DeleteVolumeSnapshotRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>> {
T::delete_volume_snapshot(self, req, options).await
}
async fn get_volume_snapshot(
&self,
req: crate::model::GetVolumeSnapshotRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::VolumeSnapshot>> {
T::get_volume_snapshot(self, req, options).await
}
async fn list_volume_snapshots(
&self,
req: crate::model::ListVolumeSnapshotsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListVolumeSnapshotsResponse>> {
T::list_volume_snapshots(self, req, options).await
}
async fn get_lun(
&self,
req: crate::model::GetLunRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Lun>> {
T::get_lun(self, req, options).await
}
async fn list_luns(
&self,
req: crate::model::ListLunsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListLunsResponse>> {
T::list_luns(self, req, options).await
}
async fn evict_lun(
&self,
req: crate::model::EvictLunRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_longrunning::model::Operation>> {
T::evict_lun(self, req, options).await
}
async fn get_nfs_share(
&self,
req: crate::model::GetNfsShareRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::NfsShare>> {
T::get_nfs_share(self, req, options).await
}
async fn list_nfs_shares(
&self,
req: crate::model::ListNfsSharesRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListNfsSharesResponse>> {
T::list_nfs_shares(self, req, options).await
}
async fn update_nfs_share(
&self,
req: crate::model::UpdateNfsShareRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_longrunning::model::Operation>> {
T::update_nfs_share(self, req, options).await
}
async fn create_nfs_share(
&self,
req: crate::model::CreateNfsShareRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_longrunning::model::Operation>> {
T::create_nfs_share(self, req, options).await
}
async fn rename_nfs_share(
&self,
req: crate::model::RenameNfsShareRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::NfsShare>> {
T::rename_nfs_share(self, req, options).await
}
async fn delete_nfs_share(
&self,
req: crate::model::DeleteNfsShareRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_longrunning::model::Operation>> {
T::delete_nfs_share(self, req, options).await
}
async fn list_provisioning_quotas(
&self,
req: crate::model::ListProvisioningQuotasRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListProvisioningQuotasResponse>> {
T::list_provisioning_quotas(self, req, options).await
}
async fn submit_provisioning_config(
&self,
req: crate::model::SubmitProvisioningConfigRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::SubmitProvisioningConfigResponse>> {
T::submit_provisioning_config(self, req, options).await
}
async fn get_provisioning_config(
&self,
req: crate::model::GetProvisioningConfigRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ProvisioningConfig>> {
T::get_provisioning_config(self, req, options).await
}
async fn create_provisioning_config(
&self,
req: crate::model::CreateProvisioningConfigRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ProvisioningConfig>> {
T::create_provisioning_config(self, req, options).await
}
async fn update_provisioning_config(
&self,
req: crate::model::UpdateProvisioningConfigRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ProvisioningConfig>> {
T::update_provisioning_config(self, req, options).await
}
async fn rename_network(
&self,
req: crate::model::RenameNetworkRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Network>> {
T::rename_network(self, req, options).await
}
async fn list_os_images(
&self,
req: crate::model::ListOSImagesRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListOSImagesResponse>> {
T::list_os_images(self, req, options).await
}
async fn list_locations(
&self,
req: google_cloud_location::model::ListLocationsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_location::model::ListLocationsResponse>> {
T::list_locations(self, req, options).await
}
async fn get_location(
&self,
req: google_cloud_location::model::GetLocationRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_location::model::Location>> {
T::get_location(self, req, options).await
}
async fn get_operation(
&self,
req: google_cloud_longrunning::model::GetOperationRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_longrunning::model::Operation>> {
T::get_operation(self, req, options).await
}
fn get_polling_error_policy(
&self,
options: &crate::RequestOptions,
) -> std::sync::Arc<dyn google_cloud_gax::polling_error_policy::PollingErrorPolicy> {
T::get_polling_error_policy(self, options)
}
fn get_polling_backoff_policy(
&self,
options: &crate::RequestOptions,
) -> std::sync::Arc<dyn google_cloud_gax::polling_backoff_policy::PollingBackoffPolicy> {
T::get_polling_backoff_policy(self, options)
}
}