#![allow(rustdoc::redundant_explicit_links)]
#![allow(rustdoc::broken_intra_doc_links)]
use crate::Result;
#[derive(Clone, Debug)]
pub struct Tpu {
inner: std::sync::Arc<dyn super::stub::dynamic::Tpu>,
}
impl Tpu {
pub fn builder() -> super::builder::tpu::ClientBuilder {
gax::client_builder::internal::new_builder(super::builder::tpu::client::Factory)
}
pub fn from_stub<T>(stub: T) -> Self
where
T: super::stub::Tpu + 'static,
{
Self {
inner: std::sync::Arc::new(stub),
}
}
pub(crate) async fn new(config: gaxi::options::ClientConfig) -> Result<Self> {
let inner = Self::build_inner(config).await?;
Ok(Self { inner })
}
async fn build_inner(
conf: gaxi::options::ClientConfig,
) -> Result<std::sync::Arc<dyn super::stub::dynamic::Tpu>> {
if gaxi::options::tracing_enabled(&conf) {
return Ok(std::sync::Arc::new(Self::build_with_tracing(conf).await?));
}
Ok(std::sync::Arc::new(Self::build_transport(conf).await?))
}
async fn build_transport(conf: gaxi::options::ClientConfig) -> Result<impl super::stub::Tpu> {
super::transport::Tpu::new(conf).await
}
async fn build_with_tracing(
conf: gaxi::options::ClientConfig,
) -> Result<impl super::stub::Tpu> {
Self::build_transport(conf)
.await
.map(super::tracing::Tpu::new)
}
pub fn list_nodes(&self) -> super::builder::tpu::ListNodes {
super::builder::tpu::ListNodes::new(self.inner.clone())
}
pub fn get_node(&self) -> super::builder::tpu::GetNode {
super::builder::tpu::GetNode::new(self.inner.clone())
}
pub fn create_node(&self) -> super::builder::tpu::CreateNode {
super::builder::tpu::CreateNode::new(self.inner.clone())
}
pub fn delete_node(&self) -> super::builder::tpu::DeleteNode {
super::builder::tpu::DeleteNode::new(self.inner.clone())
}
pub fn stop_node(&self) -> super::builder::tpu::StopNode {
super::builder::tpu::StopNode::new(self.inner.clone())
}
pub fn start_node(&self) -> super::builder::tpu::StartNode {
super::builder::tpu::StartNode::new(self.inner.clone())
}
pub fn update_node(&self) -> super::builder::tpu::UpdateNode {
super::builder::tpu::UpdateNode::new(self.inner.clone())
}
pub fn list_queued_resources(&self) -> super::builder::tpu::ListQueuedResources {
super::builder::tpu::ListQueuedResources::new(self.inner.clone())
}
pub fn get_queued_resource(&self) -> super::builder::tpu::GetQueuedResource {
super::builder::tpu::GetQueuedResource::new(self.inner.clone())
}
pub fn create_queued_resource(&self) -> super::builder::tpu::CreateQueuedResource {
super::builder::tpu::CreateQueuedResource::new(self.inner.clone())
}
pub fn delete_queued_resource(&self) -> super::builder::tpu::DeleteQueuedResource {
super::builder::tpu::DeleteQueuedResource::new(self.inner.clone())
}
pub fn reset_queued_resource(&self) -> super::builder::tpu::ResetQueuedResource {
super::builder::tpu::ResetQueuedResource::new(self.inner.clone())
}
pub fn generate_service_identity(&self) -> super::builder::tpu::GenerateServiceIdentity {
super::builder::tpu::GenerateServiceIdentity::new(self.inner.clone())
}
pub fn list_accelerator_types(&self) -> super::builder::tpu::ListAcceleratorTypes {
super::builder::tpu::ListAcceleratorTypes::new(self.inner.clone())
}
pub fn get_accelerator_type(&self) -> super::builder::tpu::GetAcceleratorType {
super::builder::tpu::GetAcceleratorType::new(self.inner.clone())
}
pub fn list_runtime_versions(&self) -> super::builder::tpu::ListRuntimeVersions {
super::builder::tpu::ListRuntimeVersions::new(self.inner.clone())
}
pub fn get_runtime_version(&self) -> super::builder::tpu::GetRuntimeVersion {
super::builder::tpu::GetRuntimeVersion::new(self.inner.clone())
}
pub fn get_guest_attributes(&self) -> super::builder::tpu::GetGuestAttributes {
super::builder::tpu::GetGuestAttributes::new(self.inner.clone())
}
pub fn list_locations(&self) -> super::builder::tpu::ListLocations {
super::builder::tpu::ListLocations::new(self.inner.clone())
}
pub fn get_location(&self) -> super::builder::tpu::GetLocation {
super::builder::tpu::GetLocation::new(self.inner.clone())
}
pub fn list_operations(&self) -> super::builder::tpu::ListOperations {
super::builder::tpu::ListOperations::new(self.inner.clone())
}
pub fn get_operation(&self) -> super::builder::tpu::GetOperation {
super::builder::tpu::GetOperation::new(self.inner.clone())
}
pub fn delete_operation(&self) -> super::builder::tpu::DeleteOperation {
super::builder::tpu::DeleteOperation::new(self.inner.clone())
}
pub fn cancel_operation(&self) -> super::builder::tpu::CancelOperation {
super::builder::tpu::CancelOperation::new(self.inner.clone())
}
}