#[allow(unused_imports)]
use crate::Error;
use crate::Result;
#[derive(Clone)]
pub struct ClusterManager {
inner: gaxi::http::ReqwestClient,
}
impl std::fmt::Debug for ClusterManager {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error> {
f.debug_struct("ClusterManager")
.field("inner", &self.inner)
.finish()
}
}
impl ClusterManager {
pub async fn new(config: gaxi::options::ClientConfig) -> crate::ClientBuilderResult<Self> {
let inner = gaxi::http::ReqwestClient::new(config, crate::DEFAULT_HOST).await?;
Ok(Self { inner })
}
}
impl super::stub::ClusterManager for ClusterManager {
async fn list_clusters(
&self,
req: crate::model::ListClustersRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ListClustersResponse>> {
use gaxi::http::reqwest::{HeaderValue, Method};
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
use google_cloud_gax::error::binding::BindingError;
let (builder, method) = None
.or_else(|| {
let var_parent = try_match(
Some(&req).map(|m| &m.parent).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}/clusters", var_parent,);
let builder = self.inner.builder(Method::GET, path);
let builder = builder.query(&[("projectId", &req.project_id)]);
let builder = builder.query(&[("zone", &req.zone)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET)))
})
.or_else(|| {
let var_project_id = try_match(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_zone = try_match(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let path = format!(
"/v1/projects/{}/zones/{}/clusters",
var_project_id, var_zone,
);
let builder = self.inner.builder(Method::GET, path);
let builder = builder.query(&[("parent", &req.parent)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.parent).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
],
"parent",
"projects/*/locations/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"project_id",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"zone",
"*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
let options = google_cloud_gax::options::internal::set_default_idempotency(
options,
gaxi::http::default_idempotency(&method),
);
let builder = builder.query(&[("$alt", "json;enum-encoding=int")]).header(
"x-goog-api-client",
HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(None::<gaxi::http::NoBody>, &method);
self.inner.execute(builder, body, options).await
}
async fn get_cluster(
&self,
req: crate::model::GetClusterRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Cluster>> {
use gaxi::http::reqwest::{HeaderValue, Method};
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
use google_cloud_gax::error::binding::BindingError;
let (builder, method) = None
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}", var_name,);
let builder = self.inner.builder(Method::GET, path);
let builder = builder.query(&[("projectId", &req.project_id)]);
let builder = builder.query(&[("zone", &req.zone)]);
let builder = builder.query(&[("clusterId", &req.cluster_id)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET)))
})
.or_else(|| {
let var_project_id = try_match(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_zone = try_match(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_cluster_id = try_match(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let path = format!(
"/v1/projects/{}/zones/{}/clusters/{}",
var_project_id, var_zone, var_cluster_id,
);
let builder = self.inner.builder(Method::GET, path);
let builder = builder.query(&[("name", &req.name)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/*/clusters/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"project_id",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"zone",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"cluster_id",
"*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
let options = google_cloud_gax::options::internal::set_default_idempotency(
options,
gaxi::http::default_idempotency(&method),
);
let builder = builder.query(&[("$alt", "json;enum-encoding=int")]).header(
"x-goog-api-client",
HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(None::<gaxi::http::NoBody>, &method);
self.inner.execute(builder, body, options).await
}
async fn create_cluster(
&self,
req: crate::model::CreateClusterRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
use gaxi::http::reqwest::{HeaderValue, Method};
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
use google_cloud_gax::error::binding::BindingError;
let (builder, method) = None
.or_else(|| {
let var_parent = try_match(
Some(&req).map(|m| &m.parent).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}/clusters", var_parent,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.or_else(|| {
let var_project_id = try_match(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_zone = try_match(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let path = format!(
"/v1/projects/{}/zones/{}/clusters",
var_project_id, var_zone,
);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.parent).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
],
"parent",
"projects/*/locations/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"project_id",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"zone",
"*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
let options = google_cloud_gax::options::internal::set_default_idempotency(
options,
gaxi::http::default_idempotency(&method),
);
let builder = builder.query(&[("$alt", "json;enum-encoding=int")]).header(
"x-goog-api-client",
HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(Some(req), &method);
self.inner.execute(builder, body, options).await
}
async fn update_cluster(
&self,
req: crate::model::UpdateClusterRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
use gaxi::http::reqwest::{HeaderValue, Method};
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
use google_cloud_gax::error::binding::BindingError;
let (builder, method) = None
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}", var_name,);
let builder = self.inner.builder(Method::PUT, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::PUT)))
})
.or_else(|| {
let var_project_id = try_match(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_zone = try_match(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_cluster_id = try_match(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let path = format!(
"/v1/projects/{}/zones/{}/clusters/{}",
var_project_id, var_zone, var_cluster_id,
);
let builder = self.inner.builder(Method::PUT, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::PUT)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/*/clusters/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"project_id",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"zone",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"cluster_id",
"*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
let options = google_cloud_gax::options::internal::set_default_idempotency(
options,
gaxi::http::default_idempotency(&method),
);
let builder = builder.query(&[("$alt", "json;enum-encoding=int")]).header(
"x-goog-api-client",
HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(Some(req), &method);
self.inner.execute(builder, body, options).await
}
async fn update_node_pool(
&self,
req: crate::model::UpdateNodePoolRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
use gaxi::http::reqwest::{HeaderValue, Method};
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
use google_cloud_gax::error::binding::BindingError;
let (builder, method) = None
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
Segment::Literal("/nodePools/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}", var_name,);
let builder = self.inner.builder(Method::PUT, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::PUT)))
})
.or_else(|| {
let var_project_id = try_match(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_zone = try_match(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_cluster_id = try_match(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_node_pool_id = try_match(
Some(&req).map(|m| &m.node_pool_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let path = format!(
"/v1/projects/{}/zones/{}/clusters/{}/nodePools/{}/update",
var_project_id, var_zone, var_cluster_id, var_node_pool_id,
);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
Segment::Literal("/nodePools/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/*/clusters/*/nodePools/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"project_id",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"zone",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"cluster_id",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.node_pool_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"node_pool_id",
"*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
let options = google_cloud_gax::options::internal::set_default_idempotency(
options,
gaxi::http::default_idempotency(&method),
);
let builder = builder.query(&[("$alt", "json;enum-encoding=int")]).header(
"x-goog-api-client",
HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(Some(req), &method);
self.inner.execute(builder, body, options).await
}
async fn set_node_pool_autoscaling(
&self,
req: crate::model::SetNodePoolAutoscalingRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
use gaxi::http::reqwest::{HeaderValue, Method};
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
use google_cloud_gax::error::binding::BindingError;
let (builder, method) = None
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
Segment::Literal("/nodePools/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:setAutoscaling", var_name,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.or_else(|| {
let var_project_id = try_match(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_zone = try_match(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_cluster_id = try_match(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_node_pool_id = try_match(
Some(&req).map(|m| &m.node_pool_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let path = format!(
"/v1/projects/{}/zones/{}/clusters/{}/nodePools/{}/autoscaling",
var_project_id, var_zone, var_cluster_id, var_node_pool_id,
);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
Segment::Literal("/nodePools/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/*/clusters/*/nodePools/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"project_id",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"zone",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"cluster_id",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.node_pool_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"node_pool_id",
"*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
let options = google_cloud_gax::options::internal::set_default_idempotency(
options,
gaxi::http::default_idempotency(&method),
);
let builder = builder.query(&[("$alt", "json;enum-encoding=int")]).header(
"x-goog-api-client",
HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(Some(req), &method);
self.inner.execute(builder, body, options).await
}
async fn set_logging_service(
&self,
req: crate::model::SetLoggingServiceRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
use gaxi::http::reqwest::{HeaderValue, Method};
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
use google_cloud_gax::error::binding::BindingError;
let (builder, method) = None
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:setLogging", var_name,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.or_else(|| {
let var_project_id = try_match(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_zone = try_match(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_cluster_id = try_match(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let path = format!(
"/v1/projects/{}/zones/{}/clusters/{}/logging",
var_project_id, var_zone, var_cluster_id,
);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/*/clusters/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"project_id",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"zone",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"cluster_id",
"*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
let options = google_cloud_gax::options::internal::set_default_idempotency(
options,
gaxi::http::default_idempotency(&method),
);
let builder = builder.query(&[("$alt", "json;enum-encoding=int")]).header(
"x-goog-api-client",
HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(Some(req), &method);
self.inner.execute(builder, body, options).await
}
async fn set_monitoring_service(
&self,
req: crate::model::SetMonitoringServiceRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
use gaxi::http::reqwest::{HeaderValue, Method};
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
use google_cloud_gax::error::binding::BindingError;
let (builder, method) = None
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:setMonitoring", var_name,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.or_else(|| {
let var_project_id = try_match(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_zone = try_match(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_cluster_id = try_match(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let path = format!(
"/v1/projects/{}/zones/{}/clusters/{}/monitoring",
var_project_id, var_zone, var_cluster_id,
);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/*/clusters/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"project_id",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"zone",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"cluster_id",
"*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
let options = google_cloud_gax::options::internal::set_default_idempotency(
options,
gaxi::http::default_idempotency(&method),
);
let builder = builder.query(&[("$alt", "json;enum-encoding=int")]).header(
"x-goog-api-client",
HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(Some(req), &method);
self.inner.execute(builder, body, options).await
}
async fn set_addons_config(
&self,
req: crate::model::SetAddonsConfigRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
use gaxi::http::reqwest::{HeaderValue, Method};
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
use google_cloud_gax::error::binding::BindingError;
let (builder, method) = None
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:setAddons", var_name,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.or_else(|| {
let var_project_id = try_match(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_zone = try_match(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_cluster_id = try_match(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let path = format!(
"/v1/projects/{}/zones/{}/clusters/{}/addons",
var_project_id, var_zone, var_cluster_id,
);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/*/clusters/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"project_id",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"zone",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"cluster_id",
"*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
let options = google_cloud_gax::options::internal::set_default_idempotency(
options,
gaxi::http::default_idempotency(&method),
);
let builder = builder.query(&[("$alt", "json;enum-encoding=int")]).header(
"x-goog-api-client",
HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(Some(req), &method);
self.inner.execute(builder, body, options).await
}
async fn set_locations(
&self,
req: crate::model::SetLocationsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
use gaxi::http::reqwest::{HeaderValue, Method};
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
use google_cloud_gax::error::binding::BindingError;
let (builder, method) = None
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:setLocations", var_name,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.or_else(|| {
let var_project_id = try_match(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_zone = try_match(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_cluster_id = try_match(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let path = format!(
"/v1/projects/{}/zones/{}/clusters/{}/locations",
var_project_id, var_zone, var_cluster_id,
);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/*/clusters/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"project_id",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"zone",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"cluster_id",
"*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
let options = google_cloud_gax::options::internal::set_default_idempotency(
options,
gaxi::http::default_idempotency(&method),
);
let builder = builder.query(&[("$alt", "json;enum-encoding=int")]).header(
"x-goog-api-client",
HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(Some(req), &method);
self.inner.execute(builder, body, options).await
}
async fn update_master(
&self,
req: crate::model::UpdateMasterRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
use gaxi::http::reqwest::{HeaderValue, Method};
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
use google_cloud_gax::error::binding::BindingError;
let (builder, method) = None
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:updateMaster", var_name,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.or_else(|| {
let var_project_id = try_match(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_zone = try_match(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_cluster_id = try_match(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let path = format!(
"/v1/projects/{}/zones/{}/clusters/{}/master",
var_project_id, var_zone, var_cluster_id,
);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/*/clusters/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"project_id",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"zone",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"cluster_id",
"*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
let options = google_cloud_gax::options::internal::set_default_idempotency(
options,
gaxi::http::default_idempotency(&method),
);
let builder = builder.query(&[("$alt", "json;enum-encoding=int")]).header(
"x-goog-api-client",
HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(Some(req), &method);
self.inner.execute(builder, body, options).await
}
async fn set_master_auth(
&self,
req: crate::model::SetMasterAuthRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
use gaxi::http::reqwest::{HeaderValue, Method};
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
use google_cloud_gax::error::binding::BindingError;
let (builder, method) = None
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:setMasterAuth", var_name,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.or_else(|| {
let var_project_id = try_match(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_zone = try_match(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_cluster_id = try_match(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let path = format!(
"/v1/projects/{}/zones/{}/clusters/{}:setMasterAuth",
var_project_id, var_zone, var_cluster_id,
);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/*/clusters/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"project_id",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"zone",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"cluster_id",
"*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
let options = google_cloud_gax::options::internal::set_default_idempotency(
options,
gaxi::http::default_idempotency(&method),
);
let builder = builder.query(&[("$alt", "json;enum-encoding=int")]).header(
"x-goog-api-client",
HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(Some(req), &method);
self.inner.execute(builder, body, options).await
}
async fn delete_cluster(
&self,
req: crate::model::DeleteClusterRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
use gaxi::http::reqwest::{HeaderValue, Method};
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
use google_cloud_gax::error::binding::BindingError;
let (builder, method) = None
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}", var_name,);
let builder = self.inner.builder(Method::DELETE, path);
let builder = builder.query(&[("projectId", &req.project_id)]);
let builder = builder.query(&[("zone", &req.zone)]);
let builder = builder.query(&[("clusterId", &req.cluster_id)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::DELETE)))
})
.or_else(|| {
let var_project_id = try_match(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_zone = try_match(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_cluster_id = try_match(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let path = format!(
"/v1/projects/{}/zones/{}/clusters/{}",
var_project_id, var_zone, var_cluster_id,
);
let builder = self.inner.builder(Method::DELETE, path);
let builder = builder.query(&[("name", &req.name)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::DELETE)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/*/clusters/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"project_id",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"zone",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"cluster_id",
"*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
let options = google_cloud_gax::options::internal::set_default_idempotency(
options,
gaxi::http::default_idempotency(&method),
);
let builder = builder.query(&[("$alt", "json;enum-encoding=int")]).header(
"x-goog-api-client",
HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(None::<gaxi::http::NoBody>, &method);
self.inner.execute(builder, body, options).await
}
async fn list_operations(
&self,
req: crate::model::ListOperationsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ListOperationsResponse>> {
use gaxi::http::reqwest::{HeaderValue, Method};
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
use google_cloud_gax::error::binding::BindingError;
let (builder, method) = None
.or_else(|| {
let var_parent = try_match(
Some(&req).map(|m| &m.parent).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}/operations", var_parent,);
let builder = self.inner.builder(Method::GET, path);
let builder = builder.query(&[("projectId", &req.project_id)]);
let builder = builder.query(&[("zone", &req.zone)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET)))
})
.or_else(|| {
let var_project_id = try_match(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_zone = try_match(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let path = format!(
"/v1/projects/{}/zones/{}/operations",
var_project_id, var_zone,
);
let builder = self.inner.builder(Method::GET, path);
let builder = builder.query(&[("parent", &req.parent)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.parent).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
],
"parent",
"projects/*/locations/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"project_id",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"zone",
"*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
let options = google_cloud_gax::options::internal::set_default_idempotency(
options,
gaxi::http::default_idempotency(&method),
);
let builder = builder.query(&[("$alt", "json;enum-encoding=int")]).header(
"x-goog-api-client",
HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(None::<gaxi::http::NoBody>, &method);
self.inner.execute(builder, body, options).await
}
async fn get_operation(
&self,
req: crate::model::GetOperationRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
use gaxi::http::reqwest::{HeaderValue, Method};
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
use google_cloud_gax::error::binding::BindingError;
let (builder, method) = None
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/operations/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}", var_name,);
let builder = self.inner.builder(Method::GET, path);
let builder = builder.query(&[("projectId", &req.project_id)]);
let builder = builder.query(&[("zone", &req.zone)]);
let builder = builder.query(&[("operationId", &req.operation_id)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET)))
})
.or_else(|| {
let var_project_id = try_match(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_zone = try_match(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_operation_id = try_match(
Some(&req).map(|m| &m.operation_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let path = format!(
"/v1/projects/{}/zones/{}/operations/{}",
var_project_id, var_zone, var_operation_id,
);
let builder = self.inner.builder(Method::GET, path);
let builder = builder.query(&[("name", &req.name)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/operations/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/*/operations/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"project_id",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"zone",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.operation_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"operation_id",
"*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
let options = google_cloud_gax::options::internal::set_default_idempotency(
options,
gaxi::http::default_idempotency(&method),
);
let builder = builder.query(&[("$alt", "json;enum-encoding=int")]).header(
"x-goog-api-client",
HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(None::<gaxi::http::NoBody>, &method);
self.inner.execute(builder, body, options).await
}
async fn cancel_operation(
&self,
req: crate::model::CancelOperationRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<()>> {
use gaxi::http::reqwest::{HeaderValue, Method};
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
use google_cloud_gax::error::binding::BindingError;
let (builder, method) = None
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/operations/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:cancel", var_name,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.or_else(|| {
let var_project_id = try_match(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_zone = try_match(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_operation_id = try_match(
Some(&req).map(|m| &m.operation_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let path = format!(
"/v1/projects/{}/zones/{}/operations/{}:cancel",
var_project_id, var_zone, var_operation_id,
);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/operations/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/*/operations/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"project_id",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"zone",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.operation_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"operation_id",
"*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
let options = google_cloud_gax::options::internal::set_default_idempotency(
options,
gaxi::http::default_idempotency(&method),
);
let builder = builder.query(&[("$alt", "json;enum-encoding=int")]).header(
"x-goog-api-client",
HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(Some(req), &method);
self.inner
.execute(builder, body, options)
.await
.map(|r: crate::Response<wkt::Empty>| {
let (parts, _) = r.into_parts();
crate::Response::from_parts(parts, ())
})
}
async fn get_server_config(
&self,
req: crate::model::GetServerConfigRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ServerConfig>> {
use gaxi::http::reqwest::{HeaderValue, Method};
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
use google_cloud_gax::error::binding::BindingError;
let (builder, method) = None
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}/serverConfig", var_name,);
let builder = self.inner.builder(Method::GET, path);
let builder = builder.query(&[("projectId", &req.project_id)]);
let builder = builder.query(&[("zone", &req.zone)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET)))
})
.or_else(|| {
let var_project_id = try_match(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_zone = try_match(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let path = format!(
"/v1/projects/{}/zones/{}/serverconfig",
var_project_id, var_zone,
);
let builder = self.inner.builder(Method::GET, path);
let builder = builder.query(&[("name", &req.name)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"project_id",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"zone",
"*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
let options = google_cloud_gax::options::internal::set_default_idempotency(
options,
gaxi::http::default_idempotency(&method),
);
let builder = builder.query(&[("$alt", "json;enum-encoding=int")]).header(
"x-goog-api-client",
HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(None::<gaxi::http::NoBody>, &method);
self.inner.execute(builder, body, options).await
}
async fn get_json_web_keys(
&self,
req: crate::model::GetJSONWebKeysRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::GetJSONWebKeysResponse>> {
use gaxi::http::reqwest::{HeaderValue, Method};
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
use google_cloud_gax::error::binding::BindingError;
let (builder, method) = None
.or_else(|| {
let var_parent = try_match(
Some(&req).map(|m| &m.parent).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}/jwks", var_parent,);
let builder = self.inner.builder(Method::GET, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.parent).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
"parent",
"projects/*/locations/*/clusters/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
let options = google_cloud_gax::options::internal::set_default_idempotency(
options,
gaxi::http::default_idempotency(&method),
);
let builder = builder.query(&[("$alt", "json;enum-encoding=int")]).header(
"x-goog-api-client",
HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(None::<gaxi::http::NoBody>, &method);
self.inner.execute(builder, body, options).await
}
async fn list_node_pools(
&self,
req: crate::model::ListNodePoolsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ListNodePoolsResponse>> {
use gaxi::http::reqwest::{HeaderValue, Method};
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
use google_cloud_gax::error::binding::BindingError;
let (builder, method) = None
.or_else(|| {
let var_parent = try_match(
Some(&req).map(|m| &m.parent).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}/nodePools", var_parent,);
let builder = self.inner.builder(Method::GET, path);
let builder = builder.query(&[("projectId", &req.project_id)]);
let builder = builder.query(&[("zone", &req.zone)]);
let builder = builder.query(&[("clusterId", &req.cluster_id)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET)))
})
.or_else(|| {
let var_project_id = try_match(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_zone = try_match(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_cluster_id = try_match(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let path = format!(
"/v1/projects/{}/zones/{}/clusters/{}/nodePools",
var_project_id, var_zone, var_cluster_id,
);
let builder = self.inner.builder(Method::GET, path);
let builder = builder.query(&[("parent", &req.parent)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.parent).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
"parent",
"projects/*/locations/*/clusters/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"project_id",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"zone",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"cluster_id",
"*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
let options = google_cloud_gax::options::internal::set_default_idempotency(
options,
gaxi::http::default_idempotency(&method),
);
let builder = builder.query(&[("$alt", "json;enum-encoding=int")]).header(
"x-goog-api-client",
HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(None::<gaxi::http::NoBody>, &method);
self.inner.execute(builder, body, options).await
}
async fn get_node_pool(
&self,
req: crate::model::GetNodePoolRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::NodePool>> {
use gaxi::http::reqwest::{HeaderValue, Method};
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
use google_cloud_gax::error::binding::BindingError;
let (builder, method) = None
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
Segment::Literal("/nodePools/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}", var_name,);
let builder = self.inner.builder(Method::GET, path);
let builder = builder.query(&[("projectId", &req.project_id)]);
let builder = builder.query(&[("zone", &req.zone)]);
let builder = builder.query(&[("clusterId", &req.cluster_id)]);
let builder = builder.query(&[("nodePoolId", &req.node_pool_id)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET)))
})
.or_else(|| {
let var_project_id = try_match(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_zone = try_match(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_cluster_id = try_match(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_node_pool_id = try_match(
Some(&req).map(|m| &m.node_pool_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let path = format!(
"/v1/projects/{}/zones/{}/clusters/{}/nodePools/{}",
var_project_id, var_zone, var_cluster_id, var_node_pool_id,
);
let builder = self.inner.builder(Method::GET, path);
let builder = builder.query(&[("name", &req.name)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
Segment::Literal("/nodePools/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/*/clusters/*/nodePools/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"project_id",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"zone",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"cluster_id",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.node_pool_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"node_pool_id",
"*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
let options = google_cloud_gax::options::internal::set_default_idempotency(
options,
gaxi::http::default_idempotency(&method),
);
let builder = builder.query(&[("$alt", "json;enum-encoding=int")]).header(
"x-goog-api-client",
HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(None::<gaxi::http::NoBody>, &method);
self.inner.execute(builder, body, options).await
}
async fn create_node_pool(
&self,
req: crate::model::CreateNodePoolRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
use gaxi::http::reqwest::{HeaderValue, Method};
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
use google_cloud_gax::error::binding::BindingError;
let (builder, method) = None
.or_else(|| {
let var_parent = try_match(
Some(&req).map(|m| &m.parent).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}/nodePools", var_parent,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.or_else(|| {
let var_project_id = try_match(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_zone = try_match(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_cluster_id = try_match(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let path = format!(
"/v1/projects/{}/zones/{}/clusters/{}/nodePools",
var_project_id, var_zone, var_cluster_id,
);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.parent).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
"parent",
"projects/*/locations/*/clusters/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"project_id",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"zone",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"cluster_id",
"*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
let options = google_cloud_gax::options::internal::set_default_idempotency(
options,
gaxi::http::default_idempotency(&method),
);
let builder = builder.query(&[("$alt", "json;enum-encoding=int")]).header(
"x-goog-api-client",
HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(Some(req), &method);
self.inner.execute(builder, body, options).await
}
async fn delete_node_pool(
&self,
req: crate::model::DeleteNodePoolRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
use gaxi::http::reqwest::{HeaderValue, Method};
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
use google_cloud_gax::error::binding::BindingError;
let (builder, method) = None
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
Segment::Literal("/nodePools/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}", var_name,);
let builder = self.inner.builder(Method::DELETE, path);
let builder = builder.query(&[("projectId", &req.project_id)]);
let builder = builder.query(&[("zone", &req.zone)]);
let builder = builder.query(&[("clusterId", &req.cluster_id)]);
let builder = builder.query(&[("nodePoolId", &req.node_pool_id)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::DELETE)))
})
.or_else(|| {
let var_project_id = try_match(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_zone = try_match(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_cluster_id = try_match(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_node_pool_id = try_match(
Some(&req).map(|m| &m.node_pool_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let path = format!(
"/v1/projects/{}/zones/{}/clusters/{}/nodePools/{}",
var_project_id, var_zone, var_cluster_id, var_node_pool_id,
);
let builder = self.inner.builder(Method::DELETE, path);
let builder = builder.query(&[("name", &req.name)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::DELETE)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
Segment::Literal("/nodePools/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/*/clusters/*/nodePools/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"project_id",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"zone",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"cluster_id",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.node_pool_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"node_pool_id",
"*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
let options = google_cloud_gax::options::internal::set_default_idempotency(
options,
gaxi::http::default_idempotency(&method),
);
let builder = builder.query(&[("$alt", "json;enum-encoding=int")]).header(
"x-goog-api-client",
HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(None::<gaxi::http::NoBody>, &method);
self.inner.execute(builder, body, options).await
}
async fn complete_node_pool_upgrade(
&self,
req: crate::model::CompleteNodePoolUpgradeRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<()>> {
use gaxi::http::reqwest::{HeaderValue, Method};
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
use google_cloud_gax::error::binding::BindingError;
let (builder, method) = None
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
Segment::Literal("/nodePools/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:completeUpgrade", var_name,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
Segment::Literal("/nodePools/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/*/clusters/*/nodePools/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
let options = google_cloud_gax::options::internal::set_default_idempotency(
options,
gaxi::http::default_idempotency(&method),
);
let builder = builder.query(&[("$alt", "json;enum-encoding=int")]).header(
"x-goog-api-client",
HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(Some(req), &method);
self.inner
.execute(builder, body, options)
.await
.map(|r: crate::Response<wkt::Empty>| {
let (parts, _) = r.into_parts();
crate::Response::from_parts(parts, ())
})
}
async fn rollback_node_pool_upgrade(
&self,
req: crate::model::RollbackNodePoolUpgradeRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
use gaxi::http::reqwest::{HeaderValue, Method};
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
use google_cloud_gax::error::binding::BindingError;
let (builder, method) = None
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
Segment::Literal("/nodePools/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:rollback", var_name,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.or_else(|| {
let var_project_id = try_match(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_zone = try_match(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_cluster_id = try_match(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_node_pool_id = try_match(
Some(&req).map(|m| &m.node_pool_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let path = format!(
"/v1/projects/{}/zones/{}/clusters/{}/nodePools/{}:rollback",
var_project_id, var_zone, var_cluster_id, var_node_pool_id,
);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
Segment::Literal("/nodePools/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/*/clusters/*/nodePools/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"project_id",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"zone",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"cluster_id",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.node_pool_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"node_pool_id",
"*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
let options = google_cloud_gax::options::internal::set_default_idempotency(
options,
gaxi::http::default_idempotency(&method),
);
let builder = builder.query(&[("$alt", "json;enum-encoding=int")]).header(
"x-goog-api-client",
HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(Some(req), &method);
self.inner.execute(builder, body, options).await
}
async fn set_node_pool_management(
&self,
req: crate::model::SetNodePoolManagementRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
use gaxi::http::reqwest::{HeaderValue, Method};
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
use google_cloud_gax::error::binding::BindingError;
let (builder, method) = None
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
Segment::Literal("/nodePools/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:setManagement", var_name,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.or_else(|| {
let var_project_id = try_match(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_zone = try_match(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_cluster_id = try_match(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_node_pool_id = try_match(
Some(&req).map(|m| &m.node_pool_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let path = format!(
"/v1/projects/{}/zones/{}/clusters/{}/nodePools/{}/setManagement",
var_project_id, var_zone, var_cluster_id, var_node_pool_id,
);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
Segment::Literal("/nodePools/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/*/clusters/*/nodePools/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"project_id",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"zone",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"cluster_id",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.node_pool_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"node_pool_id",
"*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
let options = google_cloud_gax::options::internal::set_default_idempotency(
options,
gaxi::http::default_idempotency(&method),
);
let builder = builder.query(&[("$alt", "json;enum-encoding=int")]).header(
"x-goog-api-client",
HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(Some(req), &method);
self.inner.execute(builder, body, options).await
}
async fn set_labels(
&self,
req: crate::model::SetLabelsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
use gaxi::http::reqwest::{HeaderValue, Method};
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
use google_cloud_gax::error::binding::BindingError;
let (builder, method) = None
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:setResourceLabels", var_name,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.or_else(|| {
let var_project_id = try_match(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_zone = try_match(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_cluster_id = try_match(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let path = format!(
"/v1/projects/{}/zones/{}/clusters/{}/resourceLabels",
var_project_id, var_zone, var_cluster_id,
);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/*/clusters/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"project_id",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"zone",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"cluster_id",
"*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
let options = google_cloud_gax::options::internal::set_default_idempotency(
options,
gaxi::http::default_idempotency(&method),
);
let builder = builder.query(&[("$alt", "json;enum-encoding=int")]).header(
"x-goog-api-client",
HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(Some(req), &method);
self.inner.execute(builder, body, options).await
}
async fn set_legacy_abac(
&self,
req: crate::model::SetLegacyAbacRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
use gaxi::http::reqwest::{HeaderValue, Method};
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
use google_cloud_gax::error::binding::BindingError;
let (builder, method) = None
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:setLegacyAbac", var_name,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.or_else(|| {
let var_project_id = try_match(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_zone = try_match(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_cluster_id = try_match(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let path = format!(
"/v1/projects/{}/zones/{}/clusters/{}/legacyAbac",
var_project_id, var_zone, var_cluster_id,
);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/*/clusters/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"project_id",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"zone",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"cluster_id",
"*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
let options = google_cloud_gax::options::internal::set_default_idempotency(
options,
gaxi::http::default_idempotency(&method),
);
let builder = builder.query(&[("$alt", "json;enum-encoding=int")]).header(
"x-goog-api-client",
HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(Some(req), &method);
self.inner.execute(builder, body, options).await
}
async fn start_ip_rotation(
&self,
req: crate::model::StartIPRotationRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
use gaxi::http::reqwest::{HeaderValue, Method};
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
use google_cloud_gax::error::binding::BindingError;
let (builder, method) = None
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:startIpRotation", var_name,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.or_else(|| {
let var_project_id = try_match(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_zone = try_match(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_cluster_id = try_match(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let path = format!(
"/v1/projects/{}/zones/{}/clusters/{}:startIpRotation",
var_project_id, var_zone, var_cluster_id,
);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/*/clusters/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"project_id",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"zone",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"cluster_id",
"*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
let options = google_cloud_gax::options::internal::set_default_idempotency(
options,
gaxi::http::default_idempotency(&method),
);
let builder = builder.query(&[("$alt", "json;enum-encoding=int")]).header(
"x-goog-api-client",
HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(Some(req), &method);
self.inner.execute(builder, body, options).await
}
async fn complete_ip_rotation(
&self,
req: crate::model::CompleteIPRotationRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
use gaxi::http::reqwest::{HeaderValue, Method};
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
use google_cloud_gax::error::binding::BindingError;
let (builder, method) = None
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:completeIpRotation", var_name,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.or_else(|| {
let var_project_id = try_match(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_zone = try_match(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_cluster_id = try_match(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let path = format!(
"/v1/projects/{}/zones/{}/clusters/{}:completeIpRotation",
var_project_id, var_zone, var_cluster_id,
);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/*/clusters/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"project_id",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"zone",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"cluster_id",
"*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
let options = google_cloud_gax::options::internal::set_default_idempotency(
options,
gaxi::http::default_idempotency(&method),
);
let builder = builder.query(&[("$alt", "json;enum-encoding=int")]).header(
"x-goog-api-client",
HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(Some(req), &method);
self.inner.execute(builder, body, options).await
}
async fn set_node_pool_size(
&self,
req: crate::model::SetNodePoolSizeRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
use gaxi::http::reqwest::{HeaderValue, Method};
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
use google_cloud_gax::error::binding::BindingError;
let (builder, method) = None
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
Segment::Literal("/nodePools/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:setSize", var_name,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.or_else(|| {
let var_project_id = try_match(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_zone = try_match(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_cluster_id = try_match(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_node_pool_id = try_match(
Some(&req).map(|m| &m.node_pool_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let path = format!(
"/v1/projects/{}/zones/{}/clusters/{}/nodePools/{}/setSize",
var_project_id, var_zone, var_cluster_id, var_node_pool_id,
);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
Segment::Literal("/nodePools/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/*/clusters/*/nodePools/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"project_id",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"zone",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"cluster_id",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.node_pool_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"node_pool_id",
"*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
let options = google_cloud_gax::options::internal::set_default_idempotency(
options,
gaxi::http::default_idempotency(&method),
);
let builder = builder.query(&[("$alt", "json;enum-encoding=int")]).header(
"x-goog-api-client",
HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(Some(req), &method);
self.inner.execute(builder, body, options).await
}
async fn set_network_policy(
&self,
req: crate::model::SetNetworkPolicyRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
use gaxi::http::reqwest::{HeaderValue, Method};
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
use google_cloud_gax::error::binding::BindingError;
let (builder, method) = None
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:setNetworkPolicy", var_name,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.or_else(|| {
let var_project_id = try_match(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_zone = try_match(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_cluster_id = try_match(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let path = format!(
"/v1/projects/{}/zones/{}/clusters/{}:setNetworkPolicy",
var_project_id, var_zone, var_cluster_id,
);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/*/clusters/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"project_id",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"zone",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"cluster_id",
"*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
let options = google_cloud_gax::options::internal::set_default_idempotency(
options,
gaxi::http::default_idempotency(&method),
);
let builder = builder.query(&[("$alt", "json;enum-encoding=int")]).header(
"x-goog-api-client",
HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(Some(req), &method);
self.inner.execute(builder, body, options).await
}
async fn set_maintenance_policy(
&self,
req: crate::model::SetMaintenancePolicyRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Operation>> {
use gaxi::http::reqwest::{HeaderValue, Method};
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
use google_cloud_gax::error::binding::BindingError;
let (builder, method) = None
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:setMaintenancePolicy", var_name,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.or_else(|| {
let var_project_id = try_match(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_zone = try_match(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let var_cluster_id = try_match(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
)?;
let path = format!(
"/v1/projects/{}/zones/{}/clusters/{}:setMaintenancePolicy",
var_project_id, var_zone, var_cluster_id,
);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/*/clusters/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.project_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"project_id",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.zone).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"zone",
"*",
);
let builder = builder.maybe_add(
Some(&req).map(|m| &m.cluster_id).map(|s| s.as_str()),
&[Segment::SingleWildcard],
"cluster_id",
"*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
let options = google_cloud_gax::options::internal::set_default_idempotency(
options,
gaxi::http::default_idempotency(&method),
);
let builder = builder.query(&[("$alt", "json;enum-encoding=int")]).header(
"x-goog-api-client",
HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(Some(req), &method);
self.inner.execute(builder, body, options).await
}
async fn list_usable_subnetworks(
&self,
req: crate::model::ListUsableSubnetworksRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ListUsableSubnetworksResponse>> {
use gaxi::http::reqwest::{HeaderValue, Method};
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
use google_cloud_gax::error::binding::BindingError;
let (builder, method) = None
.or_else(|| {
let var_parent = try_match(
Some(&req).map(|m| &m.parent).map(|s| s.as_str()),
&[Segment::Literal("projects/"), Segment::SingleWildcard],
)?;
let path = format!("/v1/{}/aggregated/usableSubnetworks", var_parent,);
let builder = self.inner.builder(Method::GET, path);
let builder = builder.query(&[("filter", &req.filter)]);
let builder = builder.query(&[("pageSize", &req.page_size)]);
let builder = builder.query(&[("pageToken", &req.page_token)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.parent).map(|s| s.as_str()),
&[Segment::Literal("projects/"), Segment::SingleWildcard],
"parent",
"projects/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
let options = google_cloud_gax::options::internal::set_default_idempotency(
options,
gaxi::http::default_idempotency(&method),
);
let builder = builder.query(&[("$alt", "json;enum-encoding=int")]).header(
"x-goog-api-client",
HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(None::<gaxi::http::NoBody>, &method);
self.inner.execute(builder, body, options).await
}
async fn check_autopilot_compatibility(
&self,
req: crate::model::CheckAutopilotCompatibilityRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::CheckAutopilotCompatibilityResponse>> {
use gaxi::http::reqwest::{HeaderValue, Method};
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
use google_cloud_gax::error::binding::BindingError;
let (builder, method) = None
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:checkAutopilotCompatibility", var_name,);
let builder = self.inner.builder(Method::GET, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/*/clusters/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
let options = google_cloud_gax::options::internal::set_default_idempotency(
options,
gaxi::http::default_idempotency(&method),
);
let builder = builder.query(&[("$alt", "json;enum-encoding=int")]).header(
"x-goog-api-client",
HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(None::<gaxi::http::NoBody>, &method);
self.inner.execute(builder, body, options).await
}
async fn fetch_cluster_upgrade_info(
&self,
req: crate::model::FetchClusterUpgradeInfoRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ClusterUpgradeInfo>> {
use gaxi::http::reqwest::{HeaderValue, Method};
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
use google_cloud_gax::error::binding::BindingError;
let (builder, method) = None
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:fetchClusterUpgradeInfo", var_name,);
let builder = self.inner.builder(Method::GET, path);
let builder = builder.query(&[("version", &req.version)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET)))
})
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/zones/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:fetchClusterUpgradeInfo", var_name,);
let builder = self.inner.builder(Method::GET, path);
let builder = builder.query(&[("version", &req.version)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/*/clusters/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/zones/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
"name",
"projects/*/zones/*/clusters/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
let options = google_cloud_gax::options::internal::set_default_idempotency(
options,
gaxi::http::default_idempotency(&method),
);
let builder = builder.query(&[("$alt", "json;enum-encoding=int")]).header(
"x-goog-api-client",
HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(None::<gaxi::http::NoBody>, &method);
self.inner.execute(builder, body, options).await
}
async fn fetch_node_pool_upgrade_info(
&self,
req: crate::model::FetchNodePoolUpgradeInfoRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::NodePoolUpgradeInfo>> {
use gaxi::http::reqwest::{HeaderValue, Method};
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
use google_cloud_gax::error::binding::BindingError;
let (builder, method) = None
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
Segment::Literal("/nodePools/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:fetchNodePoolUpgradeInfo", var_name,);
let builder = self.inner.builder(Method::GET, path);
let builder = builder.query(&[("version", &req.version)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET)))
})
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/zones/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
Segment::Literal("/nodePools/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:fetchNodePoolUpgradeInfo", var_name,);
let builder = self.inner.builder(Method::GET, path);
let builder = builder.query(&[("version", &req.version)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
Segment::Literal("/nodePools/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/*/clusters/*/nodePools/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/zones/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
Segment::Literal("/nodePools/"),
Segment::SingleWildcard,
],
"name",
"projects/*/zones/*/clusters/*/nodePools/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
let options = google_cloud_gax::options::internal::set_default_idempotency(
options,
gaxi::http::default_idempotency(&method),
);
let builder = builder.query(&[("$alt", "json;enum-encoding=int")]).header(
"x-goog-api-client",
HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(None::<gaxi::http::NoBody>, &method);
self.inner.execute(builder, body, options).await
}
}