#[allow(unused_imports)]
use crate::Error;
use crate::Result;
#[derive(Clone)]
pub struct BigtableInstanceAdmin {
inner: gaxi::http::ReqwestClient,
}
impl std::fmt::Debug for BigtableInstanceAdmin {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error> {
f.debug_struct("BigtableInstanceAdmin")
.field("inner", &self.inner)
.finish()
}
}
impl BigtableInstanceAdmin {
pub async fn new(config: gaxi::options::ClientConfig) -> crate::ClientBuilderResult<Self> {
let tracing_is_enabled = gaxi::options::tracing_enabled(&config);
let inner = gaxi::http::ReqwestClient::new(config, crate::DEFAULT_HOST).await?;
let inner = if tracing_is_enabled {
inner.with_instrumentation(&super::tracing::info::INSTRUMENTATION_CLIENT_INFO)
} else {
inner
};
Ok(Self { inner })
}
}
impl super::stub::BigtableInstanceAdmin for BigtableInstanceAdmin {
async fn create_instance(
&self,
req: crate::model::CreateInstanceRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::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, _path_template, _resource_name) = 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!("/v2/{}/instances", var_parent,);
let path_template = "/v2/{parent}/instances";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_parent,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.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 })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableInstanceAdmin/CreateInstance")
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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 get_instance(
&self,
req: crate::model::GetInstanceRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Instance>> {
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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}", var_name,);
let path_template = "/v2/{name}";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_name,);
let builder = self.inner.builder(Method::GET, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
],
"name",
"projects/*/instances/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableInstanceAdmin/GetInstance")
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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_instances(
&self,
req: crate::model::ListInstancesRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ListInstancesResponse>> {
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, _path_template, _resource_name) = 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!("/v2/{}/instances", var_parent,);
let path_template = "/v2/{parent}/instances";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_parent,);
let builder = self.inner.builder(Method::GET, path);
let builder = builder.query(&[("pageToken", &req.page_token)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET, path_template, resource_name)))
})
.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 })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableInstanceAdmin/ListInstances")
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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 update_instance(
&self,
req: crate::model::Instance,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Instance>> {
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, _path_template) = 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("/instances/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}", var_name,);
let path_template = "/v2/{name}";
let builder = self.inner.builder(Method::PUT, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::PUT, path_template)))
})
.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("/instances/"),
Segment::SingleWildcard,
],
"name",
"projects/*/instances/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableInstanceAdmin/UpdateInstance")
.set_url_template(_path_template),
);
}
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 partial_update_instance(
&self,
req: crate::model::PartialUpdateInstanceRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::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, _path_template) = None
.or_else(|| {
let var_instance_name = try_match(
Some(&req)
.and_then(|m| m.instance.as_ref())
.map(|m| &m.name)
.map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}", var_instance_name,);
let path_template = "/v2/{instance.name}";
let builder = self.inner.builder(Method::PATCH, path);
let builder = (|| {
let builder = req
.update_mask
.as_ref()
.map(|p| serde_json::to_value(p).map_err(Error::ser))
.transpose()?
.into_iter()
.fold(builder, |builder, v| {
use gaxi::query_parameter::QueryParameter;
v.add(builder, "updateMask")
});
Ok(builder)
})();
Some(builder.map(|b| (b, Method::PATCH, path_template)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req)
.and_then(|m| m.instance.as_ref())
.map(|m| &m.name)
.map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
],
"instance.name",
"projects/*/instances/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method(
"google.bigtable.admin.v2.BigtableInstanceAdmin/PartialUpdateInstance",
)
.set_url_template(_path_template),
);
}
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(req.instance, &method);
self.inner.execute(builder, body, options).await
}
async fn delete_instance(
&self,
req: crate::model::DeleteInstanceRequest,
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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}", var_name,);
let path_template = "/v2/{name}";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_name,);
let builder = self.inner.builder(Method::DELETE, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::DELETE, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
],
"name",
"projects/*/instances/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableInstanceAdmin/DeleteInstance")
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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
.map(|r: crate::Response<wkt::Empty>| {
let (parts, _) = r.into_parts();
crate::Response::from_parts(parts, ())
})
}
async fn create_cluster(
&self,
req: crate::model::CreateClusterRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}/clusters", var_parent,);
let path_template = "/v2/{parent}/clusters";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_parent,);
let builder = self.inner.builder(Method::POST, path);
let builder = builder.query(&[("clusterId", &req.cluster_id)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
],
"parent",
"projects/*/instances/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableInstanceAdmin/CreateCluster")
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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(req.cluster, &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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}", var_name,);
let path_template = "/v2/{name}";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_name,);
let builder = self.inner.builder(Method::GET, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
"name",
"projects/*/instances/*/clusters/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableInstanceAdmin/GetCluster")
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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_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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}/clusters", var_parent,);
let path_template = "/v2/{parent}/clusters";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_parent,);
let builder = self.inner.builder(Method::GET, path);
let builder = builder.query(&[("pageToken", &req.page_token)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
],
"parent",
"projects/*/instances/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableInstanceAdmin/ListClusters")
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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 update_cluster(
&self,
req: crate::model::Cluster,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::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, _path_template) = 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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}", var_name,);
let path_template = "/v2/{name}";
let builder = self.inner.builder(Method::PUT, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::PUT, path_template)))
})
.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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
"name",
"projects/*/instances/*/clusters/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableInstanceAdmin/UpdateCluster")
.set_url_template(_path_template),
);
}
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 partial_update_cluster(
&self,
req: crate::model::PartialUpdateClusterRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::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, _path_template) = None
.or_else(|| {
let var_cluster_name = try_match(
Some(&req)
.and_then(|m| m.cluster.as_ref())
.map(|m| &m.name)
.map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}", var_cluster_name,);
let path_template = "/v2/{cluster.name}";
let builder = self.inner.builder(Method::PATCH, path);
let builder = (|| {
let builder = req
.update_mask
.as_ref()
.map(|p| serde_json::to_value(p).map_err(Error::ser))
.transpose()?
.into_iter()
.fold(builder, |builder, v| {
use gaxi::query_parameter::QueryParameter;
v.add(builder, "updateMask")
});
Ok(builder)
})();
Some(builder.map(|b| (b, Method::PATCH, path_template)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req)
.and_then(|m| m.cluster.as_ref())
.map(|m| &m.name)
.map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
"cluster.name",
"projects/*/instances/*/clusters/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method(
"google.bigtable.admin.v2.BigtableInstanceAdmin/PartialUpdateCluster",
)
.set_url_template(_path_template),
);
}
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(req.cluster, &method);
self.inner.execute(builder, body, options).await
}
async fn delete_cluster(
&self,
req: crate::model::DeleteClusterRequest,
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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}", var_name,);
let path_template = "/v2/{name}";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_name,);
let builder = self.inner.builder(Method::DELETE, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::DELETE, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
"name",
"projects/*/instances/*/clusters/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableInstanceAdmin/DeleteCluster")
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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
.map(|r: crate::Response<wkt::Empty>| {
let (parts, _) = r.into_parts();
crate::Response::from_parts(parts, ())
})
}
async fn create_app_profile(
&self,
req: crate::model::CreateAppProfileRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::AppProfile>> {
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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}/appProfiles", var_parent,);
let path_template = "/v2/{parent}/appProfiles";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_parent,);
let builder = self.inner.builder(Method::POST, path);
let builder = builder.query(&[("appProfileId", &req.app_profile_id)]);
let builder = builder.query(&[("ignoreWarnings", &req.ignore_warnings)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
],
"parent",
"projects/*/instances/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method(
"google.bigtable.admin.v2.BigtableInstanceAdmin/CreateAppProfile",
)
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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(req.app_profile, &method);
self.inner.execute(builder, body, options).await
}
async fn get_app_profile(
&self,
req: crate::model::GetAppProfileRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::AppProfile>> {
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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/appProfiles/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}", var_name,);
let path_template = "/v2/{name}";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_name,);
let builder = self.inner.builder(Method::GET, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/appProfiles/"),
Segment::SingleWildcard,
],
"name",
"projects/*/instances/*/appProfiles/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableInstanceAdmin/GetAppProfile")
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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_app_profiles(
&self,
req: crate::model::ListAppProfilesRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ListAppProfilesResponse>> {
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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}/appProfiles", var_parent,);
let path_template = "/v2/{parent}/appProfiles";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_parent,);
let builder = self.inner.builder(Method::GET, path);
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, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
],
"parent",
"projects/*/instances/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method(
"google.bigtable.admin.v2.BigtableInstanceAdmin/ListAppProfiles",
)
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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 update_app_profile(
&self,
req: crate::model::UpdateAppProfileRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::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, _path_template) = None
.or_else(|| {
let var_app_profile_name = try_match(
Some(&req)
.and_then(|m| m.app_profile.as_ref())
.map(|m| &m.name)
.map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/appProfiles/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}", var_app_profile_name,);
let path_template = "/v2/{app_profile.name}";
let builder = self.inner.builder(Method::PATCH, path);
let builder = (|| {
let builder = req
.update_mask
.as_ref()
.map(|p| serde_json::to_value(p).map_err(Error::ser))
.transpose()?
.into_iter()
.fold(builder, |builder, v| {
use gaxi::query_parameter::QueryParameter;
v.add(builder, "updateMask")
});
let builder = builder.query(&[("ignoreWarnings", &req.ignore_warnings)]);
Ok(builder)
})();
Some(builder.map(|b| (b, Method::PATCH, path_template)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req)
.and_then(|m| m.app_profile.as_ref())
.map(|m| &m.name)
.map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/appProfiles/"),
Segment::SingleWildcard,
],
"app_profile.name",
"projects/*/instances/*/appProfiles/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method(
"google.bigtable.admin.v2.BigtableInstanceAdmin/UpdateAppProfile",
)
.set_url_template(_path_template),
);
}
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(req.app_profile, &method);
self.inner.execute(builder, body, options).await
}
async fn delete_app_profile(
&self,
req: crate::model::DeleteAppProfileRequest,
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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/appProfiles/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}", var_name,);
let path_template = "/v2/{name}";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_name,);
let builder = self.inner.builder(Method::DELETE, path);
let builder = builder.query(&[("ignoreWarnings", &req.ignore_warnings)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::DELETE, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/appProfiles/"),
Segment::SingleWildcard,
],
"name",
"projects/*/instances/*/appProfiles/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method(
"google.bigtable.admin.v2.BigtableInstanceAdmin/DeleteAppProfile",
)
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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
.map(|r: crate::Response<wkt::Empty>| {
let (parts, _) = r.into_parts();
crate::Response::from_parts(parts, ())
})
}
async fn get_iam_policy(
&self,
req: google_cloud_iam_v1::model::GetIamPolicyRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_iam_v1::model::Policy>> {
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, _path_template, _resource_name) = None
.or_else(|| {
let var_resource = try_match(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}:getIamPolicy", var_resource,);
let path_template = "/v2/{resource}:getIamPolicy";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_resource,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.or_else(|| {
let var_resource = try_match(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/materializedViews/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}:getIamPolicy", var_resource,);
let path_template = "/v2/{resource}:getIamPolicy";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_resource,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.or_else(|| {
let var_resource = try_match(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/logicalViews/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}:getIamPolicy", var_resource,);
let path_template = "/v2/{resource}:getIamPolicy";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_resource,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/instances/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/materializedViews/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/instances/*/materializedViews/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/logicalViews/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/instances/*/logicalViews/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableInstanceAdmin/GetIamPolicy")
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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_iam_policy(
&self,
req: google_cloud_iam_v1::model::SetIamPolicyRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_iam_v1::model::Policy>> {
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, _path_template, _resource_name) = None
.or_else(|| {
let var_resource = try_match(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}:setIamPolicy", var_resource,);
let path_template = "/v2/{resource}:setIamPolicy";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_resource,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.or_else(|| {
let var_resource = try_match(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/materializedViews/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}:setIamPolicy", var_resource,);
let path_template = "/v2/{resource}:setIamPolicy";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_resource,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.or_else(|| {
let var_resource = try_match(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/logicalViews/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}:setIamPolicy", var_resource,);
let path_template = "/v2/{resource}:setIamPolicy";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_resource,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/instances/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/materializedViews/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/instances/*/materializedViews/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/logicalViews/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/instances/*/logicalViews/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableInstanceAdmin/SetIamPolicy")
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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 test_iam_permissions(
&self,
req: google_cloud_iam_v1::model::TestIamPermissionsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_iam_v1::model::TestIamPermissionsResponse>> {
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, _path_template, _resource_name) = None
.or_else(|| {
let var_resource = try_match(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}:testIamPermissions", var_resource,);
let path_template = "/v2/{resource}:testIamPermissions";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_resource,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.or_else(|| {
let var_resource = try_match(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/materializedViews/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}:testIamPermissions", var_resource,);
let path_template = "/v2/{resource}:testIamPermissions";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_resource,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.or_else(|| {
let var_resource = try_match(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/logicalViews/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}:testIamPermissions", var_resource,);
let path_template = "/v2/{resource}:testIamPermissions";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_resource,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/instances/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/materializedViews/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/instances/*/materializedViews/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/logicalViews/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/instances/*/logicalViews/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method(
"google.bigtable.admin.v2.BigtableInstanceAdmin/TestIamPermissions",
)
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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_hot_tablets(
&self,
req: crate::model::ListHotTabletsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ListHotTabletsResponse>> {
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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}/hotTablets", var_parent,);
let path_template = "/v2/{parent}/hotTablets";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_parent,);
let builder = self.inner.builder(Method::GET, path);
let builder = (|| {
let builder = req
.start_time
.as_ref()
.map(|p| serde_json::to_value(p).map_err(Error::ser))
.transpose()?
.into_iter()
.fold(builder, |builder, v| {
use gaxi::query_parameter::QueryParameter;
v.add(builder, "startTime")
});
let builder = req
.end_time
.as_ref()
.map(|p| serde_json::to_value(p).map_err(Error::ser))
.transpose()?
.into_iter()
.fold(builder, |builder, v| {
use gaxi::query_parameter::QueryParameter;
v.add(builder, "endTime")
});
let builder = builder.query(&[("pageSize", &req.page_size)]);
let builder = builder.query(&[("pageToken", &req.page_token)]);
Ok(builder)
})();
Some(builder.map(|b| (b, Method::GET, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
"parent",
"projects/*/instances/*/clusters/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableInstanceAdmin/ListHotTablets")
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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_logical_view(
&self,
req: crate::model::CreateLogicalViewRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}/logicalViews", var_parent,);
let path_template = "/v2/{parent}/logicalViews";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_parent,);
let builder = self.inner.builder(Method::POST, path);
let builder = builder.query(&[("logicalViewId", &req.logical_view_id)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
],
"parent",
"projects/*/instances/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method(
"google.bigtable.admin.v2.BigtableInstanceAdmin/CreateLogicalView",
)
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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(req.logical_view, &method);
self.inner.execute(builder, body, options).await
}
async fn get_logical_view(
&self,
req: crate::model::GetLogicalViewRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::LogicalView>> {
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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/logicalViews/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}", var_name,);
let path_template = "/v2/{name}";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_name,);
let builder = self.inner.builder(Method::GET, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/logicalViews/"),
Segment::SingleWildcard,
],
"name",
"projects/*/instances/*/logicalViews/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableInstanceAdmin/GetLogicalView")
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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_logical_views(
&self,
req: crate::model::ListLogicalViewsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ListLogicalViewsResponse>> {
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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}/logicalViews", var_parent,);
let path_template = "/v2/{parent}/logicalViews";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_parent,);
let builder = self.inner.builder(Method::GET, path);
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, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
],
"parent",
"projects/*/instances/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method(
"google.bigtable.admin.v2.BigtableInstanceAdmin/ListLogicalViews",
)
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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 update_logical_view(
&self,
req: crate::model::UpdateLogicalViewRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::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, _path_template) = None
.or_else(|| {
let var_logical_view_name = try_match(
Some(&req)
.and_then(|m| m.logical_view.as_ref())
.map(|m| &m.name)
.map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/logicalViews/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}", var_logical_view_name,);
let path_template = "/v2/{logical_view.name}";
let builder = self.inner.builder(Method::PATCH, path);
let builder = (|| {
let builder = req
.update_mask
.as_ref()
.map(|p| serde_json::to_value(p).map_err(Error::ser))
.transpose()?
.into_iter()
.fold(builder, |builder, v| {
use gaxi::query_parameter::QueryParameter;
v.add(builder, "updateMask")
});
Ok(builder)
})();
Some(builder.map(|b| (b, Method::PATCH, path_template)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req)
.and_then(|m| m.logical_view.as_ref())
.map(|m| &m.name)
.map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/logicalViews/"),
Segment::SingleWildcard,
],
"logical_view.name",
"projects/*/instances/*/logicalViews/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method(
"google.bigtable.admin.v2.BigtableInstanceAdmin/UpdateLogicalView",
)
.set_url_template(_path_template),
);
}
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(req.logical_view, &method);
self.inner.execute(builder, body, options).await
}
async fn delete_logical_view(
&self,
req: crate::model::DeleteLogicalViewRequest,
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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/logicalViews/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}", var_name,);
let path_template = "/v2/{name}";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_name,);
let builder = self.inner.builder(Method::DELETE, path);
let builder = builder.query(&[("etag", &req.etag)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::DELETE, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/logicalViews/"),
Segment::SingleWildcard,
],
"name",
"projects/*/instances/*/logicalViews/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method(
"google.bigtable.admin.v2.BigtableInstanceAdmin/DeleteLogicalView",
)
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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
.map(|r: crate::Response<wkt::Empty>| {
let (parts, _) = r.into_parts();
crate::Response::from_parts(parts, ())
})
}
async fn create_materialized_view(
&self,
req: crate::model::CreateMaterializedViewRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}/materializedViews", var_parent,);
let path_template = "/v2/{parent}/materializedViews";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_parent,);
let builder = self.inner.builder(Method::POST, path);
let builder = builder.query(&[("materializedViewId", &req.materialized_view_id)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
],
"parent",
"projects/*/instances/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method(
"google.bigtable.admin.v2.BigtableInstanceAdmin/CreateMaterializedView",
)
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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(req.materialized_view, &method);
self.inner.execute(builder, body, options).await
}
async fn get_materialized_view(
&self,
req: crate::model::GetMaterializedViewRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::MaterializedView>> {
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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/materializedViews/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}", var_name,);
let path_template = "/v2/{name}";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_name,);
let builder = self.inner.builder(Method::GET, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/materializedViews/"),
Segment::SingleWildcard,
],
"name",
"projects/*/instances/*/materializedViews/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method(
"google.bigtable.admin.v2.BigtableInstanceAdmin/GetMaterializedView",
)
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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_materialized_views(
&self,
req: crate::model::ListMaterializedViewsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ListMaterializedViewsResponse>> {
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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}/materializedViews", var_parent,);
let path_template = "/v2/{parent}/materializedViews";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_parent,);
let builder = self.inner.builder(Method::GET, path);
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, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
],
"parent",
"projects/*/instances/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method(
"google.bigtable.admin.v2.BigtableInstanceAdmin/ListMaterializedViews",
)
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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 update_materialized_view(
&self,
req: crate::model::UpdateMaterializedViewRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::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, _path_template) = None
.or_else(|| {
let var_materialized_view_name = try_match(
Some(&req)
.and_then(|m| m.materialized_view.as_ref())
.map(|m| &m.name)
.map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/materializedViews/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}", var_materialized_view_name,);
let path_template = "/v2/{materialized_view.name}";
let builder = self.inner.builder(Method::PATCH, path);
let builder = (|| {
let builder = req
.update_mask
.as_ref()
.map(|p| serde_json::to_value(p).map_err(Error::ser))
.transpose()?
.into_iter()
.fold(builder, |builder, v| {
use gaxi::query_parameter::QueryParameter;
v.add(builder, "updateMask")
});
Ok(builder)
})();
Some(builder.map(|b| (b, Method::PATCH, path_template)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req)
.and_then(|m| m.materialized_view.as_ref())
.map(|m| &m.name)
.map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/materializedViews/"),
Segment::SingleWildcard,
],
"materialized_view.name",
"projects/*/instances/*/materializedViews/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method(
"google.bigtable.admin.v2.BigtableInstanceAdmin/UpdateMaterializedView",
)
.set_url_template(_path_template),
);
}
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(req.materialized_view, &method);
self.inner.execute(builder, body, options).await
}
async fn delete_materialized_view(
&self,
req: crate::model::DeleteMaterializedViewRequest,
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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/materializedViews/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}", var_name,);
let path_template = "/v2/{name}";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_name,);
let builder = self.inner.builder(Method::DELETE, path);
let builder = builder.query(&[("etag", &req.etag)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::DELETE, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/materializedViews/"),
Segment::SingleWildcard,
],
"name",
"projects/*/instances/*/materializedViews/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method(
"google.bigtable.admin.v2.BigtableInstanceAdmin/DeleteMaterializedView",
)
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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
.map(|r: crate::Response<wkt::Empty>| {
let (parts, _) = r.into_parts();
crate::Response::from_parts(parts, ())
})
}
async fn list_operations(
&self,
req: google_cloud_longrunning::model::ListOperationsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::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, _path_template) = None
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("operations/projects"),
Segment::TrailingMultiWildcard,
],
)?;
let path = format!("/v2/{}/operations", var_name,);
let path_template = "/v2/{name}/operations";
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 =
builder.query(&[("returnPartialSuccess", &req.return_partial_success)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET, path_template)))
})
.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("operations/projects"),
Segment::TrailingMultiWildcard,
],
"name",
"operations/projects/**",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.longrunning.Operations/ListOperations")
.set_url_template(_path_template),
);
}
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: google_cloud_longrunning::model::GetOperationRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::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, _path_template) = None
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("operations"),
Segment::TrailingMultiWildcard,
],
)?;
let path = format!("/v2/{}", var_name,);
let path_template = "/v2/{name}";
let builder = self.inner.builder(Method::GET, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET, path_template)))
})
.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("operations"),
Segment::TrailingMultiWildcard,
],
"name",
"operations/**",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.longrunning.Operations/GetOperation")
.set_url_template(_path_template),
);
}
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 delete_operation(
&self,
req: google_cloud_longrunning::model::DeleteOperationRequest,
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, _path_template) = None
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("operations"),
Segment::TrailingMultiWildcard,
],
)?;
let path = format!("/v2/{}", var_name,);
let path_template = "/v2/{name}";
let builder = self.inner.builder(Method::DELETE, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::DELETE, path_template)))
})
.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("operations"),
Segment::TrailingMultiWildcard,
],
"name",
"operations/**",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.longrunning.Operations/DeleteOperation")
.set_url_template(_path_template),
);
}
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
.map(|r: crate::Response<wkt::Empty>| {
let (parts, _) = r.into_parts();
crate::Response::from_parts(parts, ())
})
}
async fn cancel_operation(
&self,
req: google_cloud_longrunning::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, _path_template) = None
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("operations"),
Segment::TrailingMultiWildcard,
],
)?;
let path = format!("/v2/{}:cancel", var_name,);
let path_template = "/v2/{name}:cancel";
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template)))
})
.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("operations"),
Segment::TrailingMultiWildcard,
],
"name",
"operations/**",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.longrunning.Operations/CancelOperation")
.set_url_template(_path_template),
);
}
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
.map(|r: crate::Response<wkt::Empty>| {
let (parts, _) = r.into_parts();
crate::Response::from_parts(parts, ())
})
}
fn get_polling_error_policy(
&self,
options: &crate::RequestOptions,
) -> std::sync::Arc<dyn google_cloud_gax::polling_error_policy::PollingErrorPolicy> {
self.inner.get_polling_error_policy(options)
}
fn get_polling_backoff_policy(
&self,
options: &crate::RequestOptions,
) -> std::sync::Arc<dyn google_cloud_gax::polling_backoff_policy::PollingBackoffPolicy> {
self.inner.get_polling_backoff_policy(options)
}
}
#[derive(Clone)]
pub struct BigtableTableAdmin {
inner: gaxi::http::ReqwestClient,
}
impl std::fmt::Debug for BigtableTableAdmin {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error> {
f.debug_struct("BigtableTableAdmin")
.field("inner", &self.inner)
.finish()
}
}
impl BigtableTableAdmin {
pub async fn new(config: gaxi::options::ClientConfig) -> crate::ClientBuilderResult<Self> {
let tracing_is_enabled = gaxi::options::tracing_enabled(&config);
let inner = gaxi::http::ReqwestClient::new(config, crate::DEFAULT_HOST).await?;
let inner = if tracing_is_enabled {
inner.with_instrumentation(&super::tracing::info::INSTRUMENTATION_CLIENT_INFO)
} else {
inner
};
Ok(Self { inner })
}
}
impl super::stub::BigtableTableAdmin for BigtableTableAdmin {
async fn create_table(
&self,
req: crate::model::CreateTableRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Table>> {
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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}/tables", var_parent,);
let path_template = "/v2/{parent}/tables";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_parent,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
],
"parent",
"projects/*/instances/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableTableAdmin/CreateTable")
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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 create_table_from_snapshot(
&self,
req: crate::model::CreateTableFromSnapshotRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}/tables:createFromSnapshot", var_parent,);
let path_template = "/v2/{parent}/tables:createFromSnapshot";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_parent,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
],
"parent",
"projects/*/instances/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method(
"google.bigtable.admin.v2.BigtableTableAdmin/CreateTableFromSnapshot",
)
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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_tables(
&self,
req: crate::model::ListTablesRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ListTablesResponse>> {
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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}/tables", var_parent,);
let path_template = "/v2/{parent}/tables";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_parent,);
let builder = self.inner.builder(Method::GET, path);
let builder = builder.query(&[("view", &req.view)]);
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, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
],
"parent",
"projects/*/instances/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableTableAdmin/ListTables")
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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_table(
&self,
req: crate::model::GetTableRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Table>> {
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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}", var_name,);
let path_template = "/v2/{name}";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_name,);
let builder = self.inner.builder(Method::GET, path);
let builder = builder.query(&[("view", &req.view)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
],
"name",
"projects/*/instances/*/tables/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableTableAdmin/GetTable")
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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 update_table(
&self,
req: crate::model::UpdateTableRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::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, _path_template) = None
.or_else(|| {
let var_table_name = try_match(
Some(&req)
.and_then(|m| m.table.as_ref())
.map(|m| &m.name)
.map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}", var_table_name,);
let path_template = "/v2/{table.name}";
let builder = self.inner.builder(Method::PATCH, path);
let builder = (|| {
let builder = req
.update_mask
.as_ref()
.map(|p| serde_json::to_value(p).map_err(Error::ser))
.transpose()?
.into_iter()
.fold(builder, |builder, v| {
use gaxi::query_parameter::QueryParameter;
v.add(builder, "updateMask")
});
let builder = builder.query(&[("ignoreWarnings", &req.ignore_warnings)]);
Ok(builder)
})();
Some(builder.map(|b| (b, Method::PATCH, path_template)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req)
.and_then(|m| m.table.as_ref())
.map(|m| &m.name)
.map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
],
"table.name",
"projects/*/instances/*/tables/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableTableAdmin/UpdateTable")
.set_url_template(_path_template),
);
}
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(req.table, &method);
self.inner.execute(builder, body, options).await
}
async fn delete_table(
&self,
req: crate::model::DeleteTableRequest,
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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}", var_name,);
let path_template = "/v2/{name}";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_name,);
let builder = self.inner.builder(Method::DELETE, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::DELETE, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
],
"name",
"projects/*/instances/*/tables/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableTableAdmin/DeleteTable")
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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
.map(|r: crate::Response<wkt::Empty>| {
let (parts, _) = r.into_parts();
crate::Response::from_parts(parts, ())
})
}
async fn undelete_table(
&self,
req: crate::model::UndeleteTableRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}:undelete", var_name,);
let path_template = "/v2/{name}:undelete";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_name,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
],
"name",
"projects/*/instances/*/tables/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableTableAdmin/UndeleteTable")
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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 create_authorized_view(
&self,
req: crate::model::CreateAuthorizedViewRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}/authorizedViews", var_parent,);
let path_template = "/v2/{parent}/authorizedViews";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_parent,);
let builder = self.inner.builder(Method::POST, path);
let builder = builder.query(&[("authorizedViewId", &req.authorized_view_id)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
],
"parent",
"projects/*/instances/*/tables/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method(
"google.bigtable.admin.v2.BigtableTableAdmin/CreateAuthorizedView",
)
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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(req.authorized_view, &method);
self.inner.execute(builder, body, options).await
}
async fn list_authorized_views(
&self,
req: crate::model::ListAuthorizedViewsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ListAuthorizedViewsResponse>> {
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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}/authorizedViews", var_parent,);
let path_template = "/v2/{parent}/authorizedViews";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_parent,);
let builder = self.inner.builder(Method::GET, path);
let builder = builder.query(&[("pageSize", &req.page_size)]);
let builder = builder.query(&[("pageToken", &req.page_token)]);
let builder = builder.query(&[("view", &req.view)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
],
"parent",
"projects/*/instances/*/tables/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method(
"google.bigtable.admin.v2.BigtableTableAdmin/ListAuthorizedViews",
)
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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_authorized_view(
&self,
req: crate::model::GetAuthorizedViewRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::AuthorizedView>> {
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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
Segment::Literal("/authorizedViews/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}", var_name,);
let path_template = "/v2/{name}";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_name,);
let builder = self.inner.builder(Method::GET, path);
let builder = builder.query(&[("view", &req.view)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
Segment::Literal("/authorizedViews/"),
Segment::SingleWildcard,
],
"name",
"projects/*/instances/*/tables/*/authorizedViews/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableTableAdmin/GetAuthorizedView")
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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 update_authorized_view(
&self,
req: crate::model::UpdateAuthorizedViewRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::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, _path_template) = None
.or_else(|| {
let var_authorized_view_name = try_match(
Some(&req)
.and_then(|m| m.authorized_view.as_ref())
.map(|m| &m.name)
.map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
Segment::Literal("/authorizedViews/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}", var_authorized_view_name,);
let path_template = "/v2/{authorized_view.name}";
let builder = self.inner.builder(Method::PATCH, path);
let builder = (|| {
let builder = req
.update_mask
.as_ref()
.map(|p| serde_json::to_value(p).map_err(Error::ser))
.transpose()?
.into_iter()
.fold(builder, |builder, v| {
use gaxi::query_parameter::QueryParameter;
v.add(builder, "updateMask")
});
let builder = builder.query(&[("ignoreWarnings", &req.ignore_warnings)]);
Ok(builder)
})();
Some(builder.map(|b| (b, Method::PATCH, path_template)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req)
.and_then(|m| m.authorized_view.as_ref())
.map(|m| &m.name)
.map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
Segment::Literal("/authorizedViews/"),
Segment::SingleWildcard,
],
"authorized_view.name",
"projects/*/instances/*/tables/*/authorizedViews/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method(
"google.bigtable.admin.v2.BigtableTableAdmin/UpdateAuthorizedView",
)
.set_url_template(_path_template),
);
}
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(req.authorized_view, &method);
self.inner.execute(builder, body, options).await
}
async fn delete_authorized_view(
&self,
req: crate::model::DeleteAuthorizedViewRequest,
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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
Segment::Literal("/authorizedViews/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}", var_name,);
let path_template = "/v2/{name}";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_name,);
let builder = self.inner.builder(Method::DELETE, path);
let builder = builder.query(&[("etag", &req.etag)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::DELETE, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
Segment::Literal("/authorizedViews/"),
Segment::SingleWildcard,
],
"name",
"projects/*/instances/*/tables/*/authorizedViews/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method(
"google.bigtable.admin.v2.BigtableTableAdmin/DeleteAuthorizedView",
)
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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
.map(|r: crate::Response<wkt::Empty>| {
let (parts, _) = r.into_parts();
crate::Response::from_parts(parts, ())
})
}
async fn modify_column_families(
&self,
req: crate::model::ModifyColumnFamiliesRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Table>> {
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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}:modifyColumnFamilies", var_name,);
let path_template = "/v2/{name}:modifyColumnFamilies";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_name,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
],
"name",
"projects/*/instances/*/tables/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method(
"google.bigtable.admin.v2.BigtableTableAdmin/ModifyColumnFamilies",
)
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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 drop_row_range(
&self,
req: crate::model::DropRowRangeRequest,
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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}:dropRowRange", var_name,);
let path_template = "/v2/{name}:dropRowRange";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_name,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
],
"name",
"projects/*/instances/*/tables/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableTableAdmin/DropRowRange")
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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 generate_consistency_token(
&self,
req: crate::model::GenerateConsistencyTokenRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::GenerateConsistencyTokenResponse>> {
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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}:generateConsistencyToken", var_name,);
let path_template = "/v2/{name}:generateConsistencyToken";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_name,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
],
"name",
"projects/*/instances/*/tables/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method(
"google.bigtable.admin.v2.BigtableTableAdmin/GenerateConsistencyToken",
)
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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 check_consistency(
&self,
req: crate::model::CheckConsistencyRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::CheckConsistencyResponse>> {
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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}:checkConsistency", var_name,);
let path_template = "/v2/{name}:checkConsistency";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_name,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
],
"name",
"projects/*/instances/*/tables/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableTableAdmin/CheckConsistency")
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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 snapshot_table(
&self,
req: crate::model::SnapshotTableRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}:snapshot", var_name,);
let path_template = "/v2/{name}:snapshot";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_name,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
],
"name",
"projects/*/instances/*/tables/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableTableAdmin/SnapshotTable")
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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 get_snapshot(
&self,
req: crate::model::GetSnapshotRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Snapshot>> {
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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
Segment::Literal("/snapshots/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}", var_name,);
let path_template = "/v2/{name}";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_name,);
let builder = self.inner.builder(Method::GET, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
Segment::Literal("/snapshots/"),
Segment::SingleWildcard,
],
"name",
"projects/*/instances/*/clusters/*/snapshots/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableTableAdmin/GetSnapshot")
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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_snapshots(
&self,
req: crate::model::ListSnapshotsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ListSnapshotsResponse>> {
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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}/snapshots", var_parent,);
let path_template = "/v2/{parent}/snapshots";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_parent,);
let builder = self.inner.builder(Method::GET, path);
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, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
"parent",
"projects/*/instances/*/clusters/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableTableAdmin/ListSnapshots")
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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 delete_snapshot(
&self,
req: crate::model::DeleteSnapshotRequest,
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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
Segment::Literal("/snapshots/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}", var_name,);
let path_template = "/v2/{name}";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_name,);
let builder = self.inner.builder(Method::DELETE, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::DELETE, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
Segment::Literal("/snapshots/"),
Segment::SingleWildcard,
],
"name",
"projects/*/instances/*/clusters/*/snapshots/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableTableAdmin/DeleteSnapshot")
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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
.map(|r: crate::Response<wkt::Empty>| {
let (parts, _) = r.into_parts();
crate::Response::from_parts(parts, ())
})
}
async fn create_backup(
&self,
req: crate::model::CreateBackupRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}/backups", var_parent,);
let path_template = "/v2/{parent}/backups";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_parent,);
let builder = self.inner.builder(Method::POST, path);
let builder = builder.query(&[("backupId", &req.backup_id)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
"parent",
"projects/*/instances/*/clusters/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableTableAdmin/CreateBackup")
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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(req.backup, &method);
self.inner.execute(builder, body, options).await
}
async fn get_backup(
&self,
req: crate::model::GetBackupRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Backup>> {
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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
Segment::Literal("/backups/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}", var_name,);
let path_template = "/v2/{name}";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_name,);
let builder = self.inner.builder(Method::GET, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
Segment::Literal("/backups/"),
Segment::SingleWildcard,
],
"name",
"projects/*/instances/*/clusters/*/backups/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableTableAdmin/GetBackup")
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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 update_backup(
&self,
req: crate::model::UpdateBackupRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Backup>> {
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, _path_template) = None
.or_else(|| {
let var_backup_name = try_match(
Some(&req)
.and_then(|m| m.backup.as_ref())
.map(|m| &m.name)
.map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
Segment::Literal("/backups/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}", var_backup_name,);
let path_template = "/v2/{backup.name}";
let builder = self.inner.builder(Method::PATCH, path);
let builder = (|| {
let builder = req
.update_mask
.as_ref()
.map(|p| serde_json::to_value(p).map_err(Error::ser))
.transpose()?
.into_iter()
.fold(builder, |builder, v| {
use gaxi::query_parameter::QueryParameter;
v.add(builder, "updateMask")
});
Ok(builder)
})();
Some(builder.map(|b| (b, Method::PATCH, path_template)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req)
.and_then(|m| m.backup.as_ref())
.map(|m| &m.name)
.map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
Segment::Literal("/backups/"),
Segment::SingleWildcard,
],
"backup.name",
"projects/*/instances/*/clusters/*/backups/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableTableAdmin/UpdateBackup")
.set_url_template(_path_template),
);
}
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(req.backup, &method);
self.inner.execute(builder, body, options).await
}
async fn delete_backup(
&self,
req: crate::model::DeleteBackupRequest,
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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
Segment::Literal("/backups/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}", var_name,);
let path_template = "/v2/{name}";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_name,);
let builder = self.inner.builder(Method::DELETE, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::DELETE, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
Segment::Literal("/backups/"),
Segment::SingleWildcard,
],
"name",
"projects/*/instances/*/clusters/*/backups/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableTableAdmin/DeleteBackup")
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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
.map(|r: crate::Response<wkt::Empty>| {
let (parts, _) = r.into_parts();
crate::Response::from_parts(parts, ())
})
}
async fn list_backups(
&self,
req: crate::model::ListBackupsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ListBackupsResponse>> {
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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}/backups", var_parent,);
let path_template = "/v2/{parent}/backups";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_parent,);
let builder = self.inner.builder(Method::GET, path);
let builder = builder.query(&[("filter", &req.filter)]);
let builder = builder.query(&[("orderBy", &req.order_by)]);
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, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
"parent",
"projects/*/instances/*/clusters/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableTableAdmin/ListBackups")
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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 restore_table(
&self,
req: crate::model::RestoreTableRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}/tables:restore", var_parent,);
let path_template = "/v2/{parent}/tables:restore";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_parent,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
],
"parent",
"projects/*/instances/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableTableAdmin/RestoreTable")
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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 copy_backup(
&self,
req: crate::model::CopyBackupRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}/backups:copy", var_parent,);
let path_template = "/v2/{parent}/backups:copy";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_parent,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
],
"parent",
"projects/*/instances/*/clusters/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableTableAdmin/CopyBackup")
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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 get_iam_policy(
&self,
req: google_cloud_iam_v1::model::GetIamPolicyRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_iam_v1::model::Policy>> {
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, _path_template, _resource_name) = None
.or_else(|| {
let var_resource = try_match(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}:getIamPolicy", var_resource,);
let path_template = "/v2/{resource}:getIamPolicy";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_resource,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.or_else(|| {
let var_resource = try_match(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
Segment::Literal("/backups/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}:getIamPolicy", var_resource,);
let path_template = "/v2/{resource}:getIamPolicy";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_resource,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.or_else(|| {
let var_resource = try_match(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
Segment::Literal("/authorizedViews/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}:getIamPolicy", var_resource,);
let path_template = "/v2/{resource}:getIamPolicy";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_resource,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.or_else(|| {
let var_resource = try_match(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
Segment::Literal("/schemaBundles/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}:getIamPolicy", var_resource,);
let path_template = "/v2/{resource}:getIamPolicy";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_resource,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/instances/*/tables/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
Segment::Literal("/backups/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/instances/*/clusters/*/backups/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
Segment::Literal("/authorizedViews/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/instances/*/tables/*/authorizedViews/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
Segment::Literal("/schemaBundles/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/instances/*/tables/*/schemaBundles/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableTableAdmin/GetIamPolicy")
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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_iam_policy(
&self,
req: google_cloud_iam_v1::model::SetIamPolicyRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_iam_v1::model::Policy>> {
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, _path_template, _resource_name) = None
.or_else(|| {
let var_resource = try_match(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}:setIamPolicy", var_resource,);
let path_template = "/v2/{resource}:setIamPolicy";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_resource,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.or_else(|| {
let var_resource = try_match(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
Segment::Literal("/backups/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}:setIamPolicy", var_resource,);
let path_template = "/v2/{resource}:setIamPolicy";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_resource,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.or_else(|| {
let var_resource = try_match(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
Segment::Literal("/authorizedViews/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}:setIamPolicy", var_resource,);
let path_template = "/v2/{resource}:setIamPolicy";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_resource,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.or_else(|| {
let var_resource = try_match(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
Segment::Literal("/schemaBundles/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}:setIamPolicy", var_resource,);
let path_template = "/v2/{resource}:setIamPolicy";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_resource,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/instances/*/tables/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
Segment::Literal("/backups/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/instances/*/clusters/*/backups/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
Segment::Literal("/authorizedViews/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/instances/*/tables/*/authorizedViews/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
Segment::Literal("/schemaBundles/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/instances/*/tables/*/schemaBundles/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableTableAdmin/SetIamPolicy")
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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 test_iam_permissions(
&self,
req: google_cloud_iam_v1::model::TestIamPermissionsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_iam_v1::model::TestIamPermissionsResponse>> {
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, _path_template, _resource_name) = None
.or_else(|| {
let var_resource = try_match(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}:testIamPermissions", var_resource,);
let path_template = "/v2/{resource}:testIamPermissions";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_resource,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.or_else(|| {
let var_resource = try_match(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
Segment::Literal("/backups/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}:testIamPermissions", var_resource,);
let path_template = "/v2/{resource}:testIamPermissions";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_resource,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.or_else(|| {
let var_resource = try_match(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
Segment::Literal("/authorizedViews/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}:testIamPermissions", var_resource,);
let path_template = "/v2/{resource}:testIamPermissions";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_resource,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.or_else(|| {
let var_resource = try_match(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
Segment::Literal("/schemaBundles/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}:testIamPermissions", var_resource,);
let path_template = "/v2/{resource}:testIamPermissions";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_resource,);
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/instances/*/tables/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/clusters/"),
Segment::SingleWildcard,
Segment::Literal("/backups/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/instances/*/clusters/*/backups/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
Segment::Literal("/authorizedViews/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/instances/*/tables/*/authorizedViews/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
Segment::Literal("/schemaBundles/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/instances/*/tables/*/schemaBundles/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method(
"google.bigtable.admin.v2.BigtableTableAdmin/TestIamPermissions",
)
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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 create_schema_bundle(
&self,
req: crate::model::CreateSchemaBundleRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}/schemaBundles", var_parent,);
let path_template = "/v2/{parent}/schemaBundles";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_parent,);
let builder = self.inner.builder(Method::POST, path);
let builder = builder.query(&[("schemaBundleId", &req.schema_bundle_id)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
],
"parent",
"projects/*/instances/*/tables/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method(
"google.bigtable.admin.v2.BigtableTableAdmin/CreateSchemaBundle",
)
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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(req.schema_bundle, &method);
self.inner.execute(builder, body, options).await
}
async fn update_schema_bundle(
&self,
req: crate::model::UpdateSchemaBundleRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::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, _path_template) = None
.or_else(|| {
let var_schema_bundle_name = try_match(
Some(&req)
.and_then(|m| m.schema_bundle.as_ref())
.map(|m| &m.name)
.map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
Segment::Literal("/schemaBundles/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}", var_schema_bundle_name,);
let path_template = "/v2/{schema_bundle.name}";
let builder = self.inner.builder(Method::PATCH, path);
let builder = (|| {
let builder = req
.update_mask
.as_ref()
.map(|p| serde_json::to_value(p).map_err(Error::ser))
.transpose()?
.into_iter()
.fold(builder, |builder, v| {
use gaxi::query_parameter::QueryParameter;
v.add(builder, "updateMask")
});
let builder = builder.query(&[("ignoreWarnings", &req.ignore_warnings)]);
Ok(builder)
})();
Some(builder.map(|b| (b, Method::PATCH, path_template)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req)
.and_then(|m| m.schema_bundle.as_ref())
.map(|m| &m.name)
.map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
Segment::Literal("/schemaBundles/"),
Segment::SingleWildcard,
],
"schema_bundle.name",
"projects/*/instances/*/tables/*/schemaBundles/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method(
"google.bigtable.admin.v2.BigtableTableAdmin/UpdateSchemaBundle",
)
.set_url_template(_path_template),
);
}
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(req.schema_bundle, &method);
self.inner.execute(builder, body, options).await
}
async fn get_schema_bundle(
&self,
req: crate::model::GetSchemaBundleRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::SchemaBundle>> {
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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
Segment::Literal("/schemaBundles/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}", var_name,);
let path_template = "/v2/{name}";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_name,);
let builder = self.inner.builder(Method::GET, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
Segment::Literal("/schemaBundles/"),
Segment::SingleWildcard,
],
"name",
"projects/*/instances/*/tables/*/schemaBundles/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableTableAdmin/GetSchemaBundle")
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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_schema_bundles(
&self,
req: crate::model::ListSchemaBundlesRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ListSchemaBundlesResponse>> {
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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}/schemaBundles", var_parent,);
let path_template = "/v2/{parent}/schemaBundles";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_parent,);
let builder = self.inner.builder(Method::GET, path);
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, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
],
"parent",
"projects/*/instances/*/tables/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.bigtable.admin.v2.BigtableTableAdmin/ListSchemaBundles")
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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 delete_schema_bundle(
&self,
req: crate::model::DeleteSchemaBundleRequest,
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, _path_template, _resource_name) = 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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
Segment::Literal("/schemaBundles/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v2/{}", var_name,);
let path_template = "/v2/{name}";
let resource_name = format!("//bigtableadmin.googleapis.com/{}", var_name,);
let builder = self.inner.builder(Method::DELETE, path);
let builder = builder.query(&[("etag", &req.etag)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::DELETE, path_template, resource_name)))
})
.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("/instances/"),
Segment::SingleWildcard,
Segment::Literal("/tables/"),
Segment::SingleWildcard,
Segment::Literal("/schemaBundles/"),
Segment::SingleWildcard,
],
"name",
"projects/*/instances/*/tables/*/schemaBundles/*",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method(
"google.bigtable.admin.v2.BigtableTableAdmin/DeleteSchemaBundle",
)
.set_url_template(_path_template)
.set_resource_name(_resource_name),
);
}
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
.map(|r: crate::Response<wkt::Empty>| {
let (parts, _) = r.into_parts();
crate::Response::from_parts(parts, ())
})
}
async fn list_operations(
&self,
req: google_cloud_longrunning::model::ListOperationsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::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, _path_template) = None
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("operations/projects"),
Segment::TrailingMultiWildcard,
],
)?;
let path = format!("/v2/{}/operations", var_name,);
let path_template = "/v2/{name}/operations";
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 =
builder.query(&[("returnPartialSuccess", &req.return_partial_success)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET, path_template)))
})
.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("operations/projects"),
Segment::TrailingMultiWildcard,
],
"name",
"operations/projects/**",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.longrunning.Operations/ListOperations")
.set_url_template(_path_template),
);
}
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: google_cloud_longrunning::model::GetOperationRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::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, _path_template) = None
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("operations"),
Segment::TrailingMultiWildcard,
],
)?;
let path = format!("/v2/{}", var_name,);
let path_template = "/v2/{name}";
let builder = self.inner.builder(Method::GET, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET, path_template)))
})
.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("operations"),
Segment::TrailingMultiWildcard,
],
"name",
"operations/**",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.longrunning.Operations/GetOperation")
.set_url_template(_path_template),
);
}
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 delete_operation(
&self,
req: google_cloud_longrunning::model::DeleteOperationRequest,
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, _path_template) = None
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("operations"),
Segment::TrailingMultiWildcard,
],
)?;
let path = format!("/v2/{}", var_name,);
let path_template = "/v2/{name}";
let builder = self.inner.builder(Method::DELETE, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::DELETE, path_template)))
})
.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("operations"),
Segment::TrailingMultiWildcard,
],
"name",
"operations/**",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.longrunning.Operations/DeleteOperation")
.set_url_template(_path_template),
);
}
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
.map(|r: crate::Response<wkt::Empty>| {
let (parts, _) = r.into_parts();
crate::Response::from_parts(parts, ())
})
}
async fn cancel_operation(
&self,
req: google_cloud_longrunning::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, _path_template) = None
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("operations"),
Segment::TrailingMultiWildcard,
],
)?;
let path = format!("/v2/{}:cancel", var_name,);
let path_template = "/v2/{name}:cancel";
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template)))
})
.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("operations"),
Segment::TrailingMultiWildcard,
],
"name",
"operations/**",
);
paths.push(builder.build());
}
google_cloud_gax::error::Error::binding(BindingError { paths })
})??;
if let Some(recorder) = gaxi::observability::RequestRecorder::current() {
recorder.on_client_request(
gaxi::observability::ClientRequestAttributes::default()
.set_rpc_method("google.longrunning.Operations/CancelOperation")
.set_url_template(_path_template),
);
}
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
.map(|r: crate::Response<wkt::Empty>| {
let (parts, _) = r.into_parts();
crate::Response::from_parts(parts, ())
})
}
fn get_polling_error_policy(
&self,
options: &crate::RequestOptions,
) -> std::sync::Arc<dyn google_cloud_gax::polling_error_policy::PollingErrorPolicy> {
self.inner.get_polling_error_policy(options)
}
fn get_polling_backoff_policy(
&self,
options: &crate::RequestOptions,
) -> std::sync::Arc<dyn google_cloud_gax::polling_backoff_policy::PollingBackoffPolicy> {
self.inner.get_polling_backoff_policy(options)
}
}