use crate::Result;
#[derive(Clone, Debug)]
pub struct ClusterManager<T>
where
T: super::stub::ClusterManager + std::fmt::Debug + Send + Sync,
{
inner: T,
duration: gaxi::observability::DurationMetric,
}
impl<T> ClusterManager<T>
where
T: super::stub::ClusterManager + std::fmt::Debug + Send + Sync,
{
pub fn new(inner: T) -> Self {
Self {
inner,
duration: gaxi::observability::DurationMetric::new(&info::INSTRUMENTATION_CLIENT_INFO),
}
}
}
impl<T> super::stub::ClusterManager for ClusterManager<T>
where
T: super::stub::ClusterManager + std::fmt::Debug + Send + Sync,
{
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn list_clusters(
&self,
req: crate::model::ListClustersRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ListClustersResponse>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ClusterManager::list_clusters",
self.inner.list_clusters(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn get_cluster(
&self,
req: crate::model::GetClusterRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Cluster>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ClusterManager::get_cluster",
self.inner.get_cluster(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn create_cluster(
&self,
req: crate::model::CreateClusterRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ClusterManager::create_cluster",
self.inner.create_cluster(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn update_cluster(
&self,
req: crate::model::UpdateClusterRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ClusterManager::update_cluster",
self.inner.update_cluster(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn update_node_pool(
&self,
req: crate::model::UpdateNodePoolRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ClusterManager::update_node_pool",
self.inner.update_node_pool(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn set_node_pool_autoscaling(
&self,
req: crate::model::SetNodePoolAutoscalingRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ClusterManager::set_node_pool_autoscaling",
self.inner.set_node_pool_autoscaling(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn set_logging_service(
&self,
req: crate::model::SetLoggingServiceRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ClusterManager::set_logging_service",
self.inner.set_logging_service(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn set_monitoring_service(
&self,
req: crate::model::SetMonitoringServiceRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ClusterManager::set_monitoring_service",
self.inner.set_monitoring_service(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn set_addons_config(
&self,
req: crate::model::SetAddonsConfigRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ClusterManager::set_addons_config",
self.inner.set_addons_config(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn set_locations(
&self,
req: crate::model::SetLocationsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ClusterManager::set_locations",
self.inner.set_locations(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn update_master(
&self,
req: crate::model::UpdateMasterRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ClusterManager::update_master",
self.inner.update_master(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn set_master_auth(
&self,
req: crate::model::SetMasterAuthRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ClusterManager::set_master_auth",
self.inner.set_master_auth(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn delete_cluster(
&self,
req: crate::model::DeleteClusterRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ClusterManager::delete_cluster",
self.inner.delete_cluster(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn list_operations(
&self,
req: crate::model::ListOperationsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ListOperationsResponse>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ClusterManager::list_operations",
self.inner.list_operations(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn get_operation(
&self,
req: crate::model::GetOperationRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ClusterManager::get_operation",
self.inner.get_operation(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn cancel_operation(
&self,
req: crate::model::CancelOperationRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<()>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ClusterManager::cancel_operation",
self.inner.cancel_operation(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn get_server_config(
&self,
req: crate::model::GetServerConfigRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ServerConfig>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ClusterManager::get_server_config",
self.inner.get_server_config(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn get_json_web_keys(
&self,
req: crate::model::GetJSONWebKeysRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::GetJSONWebKeysResponse>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ClusterManager::get_json_web_keys",
self.inner.get_json_web_keys(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn list_node_pools(
&self,
req: crate::model::ListNodePoolsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ListNodePoolsResponse>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ClusterManager::list_node_pools",
self.inner.list_node_pools(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn get_node_pool(
&self,
req: crate::model::GetNodePoolRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::NodePool>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ClusterManager::get_node_pool",
self.inner.get_node_pool(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn create_node_pool(
&self,
req: crate::model::CreateNodePoolRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ClusterManager::create_node_pool",
self.inner.create_node_pool(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn delete_node_pool(
&self,
req: crate::model::DeleteNodePoolRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ClusterManager::delete_node_pool",
self.inner.delete_node_pool(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn complete_node_pool_upgrade(
&self,
req: crate::model::CompleteNodePoolUpgradeRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<()>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ClusterManager::complete_node_pool_upgrade",
self.inner.complete_node_pool_upgrade(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn rollback_node_pool_upgrade(
&self,
req: crate::model::RollbackNodePoolUpgradeRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ClusterManager::rollback_node_pool_upgrade",
self.inner.rollback_node_pool_upgrade(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn set_node_pool_management(
&self,
req: crate::model::SetNodePoolManagementRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ClusterManager::set_node_pool_management",
self.inner.set_node_pool_management(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn set_labels(
&self,
req: crate::model::SetLabelsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ClusterManager::set_labels",
self.inner.set_labels(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn set_legacy_abac(
&self,
req: crate::model::SetLegacyAbacRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ClusterManager::set_legacy_abac",
self.inner.set_legacy_abac(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn start_ip_rotation(
&self,
req: crate::model::StartIPRotationRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ClusterManager::start_ip_rotation",
self.inner.start_ip_rotation(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn complete_ip_rotation(
&self,
req: crate::model::CompleteIPRotationRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ClusterManager::complete_ip_rotation",
self.inner.complete_ip_rotation(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn set_node_pool_size(
&self,
req: crate::model::SetNodePoolSizeRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ClusterManager::set_node_pool_size",
self.inner.set_node_pool_size(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn set_network_policy(
&self,
req: crate::model::SetNetworkPolicyRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ClusterManager::set_network_policy",
self.inner.set_network_policy(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn set_maintenance_policy(
&self,
req: crate::model::SetMaintenancePolicyRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ClusterManager::set_maintenance_policy",
self.inner.set_maintenance_policy(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn list_usable_subnetworks(
&self,
req: crate::model::ListUsableSubnetworksRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ListUsableSubnetworksResponse>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ClusterManager::list_usable_subnetworks",
self.inner.list_usable_subnetworks(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn check_autopilot_compatibility(
&self,
req: crate::model::CheckAutopilotCompatibilityRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::CheckAutopilotCompatibilityResponse>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ClusterManager::check_autopilot_compatibility",
self.inner.check_autopilot_compatibility(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn fetch_cluster_upgrade_info(
&self,
req: crate::model::FetchClusterUpgradeInfoRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ClusterUpgradeInfo>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ClusterManager::fetch_cluster_upgrade_info",
self.inner.fetch_cluster_upgrade_info(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn fetch_node_pool_upgrade_info(
&self,
req: crate::model::FetchNodePoolUpgradeInfoRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::NodePoolUpgradeInfo>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ClusterManager::fetch_node_pool_upgrade_info",
self.inner.fetch_node_pool_upgrade_info(req, options));
pending.await
}
}
pub(crate) mod info {
const NAME: &str = env!("CARGO_PKG_NAME");
const VERSION: &str = env!("CARGO_PKG_VERSION");
pub(crate) static INSTRUMENTATION_CLIENT_INFO: std::sync::LazyLock<
gaxi::options::InstrumentationClientInfo,
> = std::sync::LazyLock::new(|| {
let mut info = gaxi::options::InstrumentationClientInfo::default();
info.service_name = "container";
info.client_version = VERSION;
info.client_artifact = NAME;
info.default_host = "container";
info
});
}