#[allow(unused_imports)]
use crate::Error;
use crate::Result;
#[derive(Clone)]
pub struct ReachabilityService {
inner: gaxi::http::ReqwestClient,
}
impl std::fmt::Debug for ReachabilityService {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error> {
f.debug_struct("ReachabilityService")
.field("inner", &self.inner)
.finish()
}
}
impl ReachabilityService {
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::ReachabilityService for ReachabilityService {
async fn list_connectivity_tests(
&self,
req: crate::model::ListConnectivityTestsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ListConnectivityTestsResponse>> {
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("/locations/global"),
],
)?;
let path = format!("/v1/{}/connectivityTests", var_parent,);
let path_template = "/v1/{parent}/connectivityTests";
let resource_name = format!("//networkmanagement.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(&[("filter", &req.filter)]);
let builder = builder.query(&[("orderBy", &req.order_by)]);
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("/locations/global"),
],
"parent",
"projects/*/locations/global",
);
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.cloud.networkmanagement.v1.ReachabilityService/ListConnectivityTests")
.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_connectivity_test(
&self,
req: crate::model::GetConnectivityTestRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ConnectivityTest>> {
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("/locations/global/connectivityTests/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}", var_name,);
let path_template = "/v1/{name}";
let resource_name = format!("//networkmanagement.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("/locations/global/connectivityTests/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/global/connectivityTests/*",
);
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.cloud.networkmanagement.v1.ReachabilityService/GetConnectivityTest",
)
.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_connectivity_test(
&self,
req: crate::model::CreateConnectivityTestRequest,
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("/locations/global"),
],
)?;
let path = format!("/v1/{}/connectivityTests", var_parent,);
let path_template = "/v1/{parent}/connectivityTests";
let resource_name = format!("//networkmanagement.googleapis.com/{}", var_parent,);
let builder = self.inner.builder(Method::POST, path);
let builder = builder.query(&[("testId", &req.test_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("/locations/global"),
],
"parent",
"projects/*/locations/global",
);
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.cloud.networkmanagement.v1.ReachabilityService/CreateConnectivityTest")
.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.resource, &method);
self.inner.execute(builder, body, options).await
}
async fn update_connectivity_test(
&self,
req: crate::model::UpdateConnectivityTestRequest,
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_resource_name = try_match(
Some(&req)
.and_then(|m| m.resource.as_ref())
.map(|m| &m.name)
.map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/connectivityTests/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}", var_resource_name,);
let path_template = "/v1/{resource.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.resource.as_ref())
.map(|m| &m.name)
.map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/connectivityTests/"),
Segment::SingleWildcard,
],
"resource.name",
"projects/*/locations/global/connectivityTests/*",
);
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.cloud.networkmanagement.v1.ReachabilityService/UpdateConnectivityTest")
.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.resource, &method);
self.inner.execute(builder, body, options).await
}
async fn rerun_connectivity_test(
&self,
req: crate::model::RerunConnectivityTestRequest,
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("/locations/global/connectivityTests/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:rerun", var_name,);
let path_template = "/v1/{name}:rerun";
let resource_name = format!("//networkmanagement.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("/locations/global/connectivityTests/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/global/connectivityTests/*",
);
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.cloud.networkmanagement.v1.ReachabilityService/RerunConnectivityTest")
.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 delete_connectivity_test(
&self,
req: crate::model::DeleteConnectivityTestRequest,
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("/locations/global/connectivityTests/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}", var_name,);
let path_template = "/v1/{name}";
let resource_name = format!("//networkmanagement.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("/locations/global/connectivityTests/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/global/connectivityTests/*",
);
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.cloud.networkmanagement.v1.ReachabilityService/DeleteConnectivityTest")
.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_locations(
&self,
req: google_cloud_location::model::ListLocationsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_location::model::ListLocationsResponse>> {
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],
)?;
let path = format!("/v1/{}/locations", var_name,);
let path_template = "/v1/{name}/locations";
let builder = self.inner.builder(Method::GET, path);
let builder = builder.query(&[("filter", &req.filter)]);
let builder = builder.query(&[("pageSize", &req.page_size)]);
let builder = builder.query(&[("pageToken", &req.page_token)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET, path_template)))
})
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[Segment::Literal("organizations/"), Segment::SingleWildcard],
)?;
let path = format!("/v1/{}/locations", var_name,);
let path_template = "/v1/{name}/locations";
let builder = self.inner.builder(Method::GET, path);
let builder = builder.query(&[("filter", &req.filter)]);
let builder = builder.query(&[("pageSize", &req.page_size)]);
let builder = builder.query(&[("pageToken", &req.page_token)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET, 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],
"name",
"projects/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[Segment::Literal("organizations/"), Segment::SingleWildcard],
"name",
"organizations/*",
);
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.cloud.location.Locations/ListLocations")
.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_location(
&self,
req: google_cloud_location::model::GetLocationRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_location::model::Location>> {
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("/locations/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}", var_name,);
let path_template = "/v1/{name}";
let builder = self.inner.builder(Method::GET, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET, path_template)))
})
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}", var_name,);
let path_template = "/v1/{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("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
],
"name",
"organizations/*/locations/*",
);
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.cloud.location.Locations/GetLocation")
.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 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("/locations/global/connectivityTests/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:setIamPolicy", var_resource,);
let path_template = "/v1/{resource}:setIamPolicy";
let resource_name = format!("//networkmanagement.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("/locations/global/connectivityTests/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/locations/global/connectivityTests/*",
);
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.iam.v1.IAMPolicy/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 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("/locations/global/connectivityTests/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:getIamPolicy", var_resource,);
let path_template = "/v1/{resource}:getIamPolicy";
let resource_name = format!("//networkmanagement.googleapis.com/{}", var_resource,);
let builder = self.inner.builder(Method::GET, path);
let builder = (|| {
let builder = req
.options
.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, "options")
});
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.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/connectivityTests/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/locations/global/connectivityTests/*",
);
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.iam.v1.IAMPolicy/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(None::<gaxi::http::NoBody>, &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("/locations/global/connectivityTests/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:testIamPermissions", var_resource,);
let path_template = "/v1/{resource}:testIamPermissions";
let resource_name = format!("//networkmanagement.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("/locations/global/connectivityTests/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/locations/global/connectivityTests/*",
);
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.iam.v1.IAMPolicy/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_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("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global"),
],
)?;
let path = format!("/v1/{}/operations", var_name,);
let path_template = "/v1/{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)))
})
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global"),
],
)?;
let path = format!("/v1/{}/operations", var_name,);
let path_template = "/v1/{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("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global"),
],
"name",
"projects/*/locations/global",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global"),
],
"name",
"organizations/*/locations/global",
);
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("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/operations/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}", var_name,);
let path_template = "/v1/{name}";
let builder = self.inner.builder(Method::GET, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET, path_template)))
})
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/operations/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}", var_name,);
let path_template = "/v1/{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("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/operations/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/global/operations/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/operations/"),
Segment::SingleWildcard,
],
"name",
"organizations/*/locations/global/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("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/operations/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}", var_name,);
let path_template = "/v1/{name}";
let builder = self.inner.builder(Method::DELETE, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::DELETE, path_template)))
})
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/operations/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}", var_name,);
let path_template = "/v1/{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("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/operations/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/global/operations/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/operations/"),
Segment::SingleWildcard,
],
"name",
"organizations/*/locations/global/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("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/operations/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:cancel", var_name,);
let path_template = "/v1/{name}:cancel";
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template)))
})
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/operations/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:cancel", var_name,);
let path_template = "/v1/{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("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/operations/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/global/operations/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/operations/"),
Segment::SingleWildcard,
],
"name",
"organizations/*/locations/global/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(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, ())
})
}
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 VpcFlowLogsService {
inner: gaxi::http::ReqwestClient,
}
impl std::fmt::Debug for VpcFlowLogsService {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error> {
f.debug_struct("VpcFlowLogsService")
.field("inner", &self.inner)
.finish()
}
}
impl VpcFlowLogsService {
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::VpcFlowLogsService for VpcFlowLogsService {
async fn list_vpc_flow_logs_configs(
&self,
req: crate::model::ListVpcFlowLogsConfigsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ListVpcFlowLogsConfigsResponse>> {
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("/locations/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}/vpcFlowLogsConfigs", var_parent,);
let path_template = "/v1/{parent}/vpcFlowLogsConfigs";
let resource_name = format!("//networkmanagement.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(&[("filter", &req.filter)]);
let builder = builder.query(&[("orderBy", &req.order_by)]);
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("/locations/"),
Segment::SingleWildcard,
],
"parent",
"projects/*/locations/*",
);
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.cloud.networkmanagement.v1.VpcFlowLogsService/ListVpcFlowLogsConfigs")
.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_vpc_flow_logs_config(
&self,
req: crate::model::GetVpcFlowLogsConfigRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::VpcFlowLogsConfig>> {
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("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/vpcFlowLogsConfigs/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}", var_name,);
let path_template = "/v1/{name}";
let resource_name = format!("//networkmanagement.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("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/vpcFlowLogsConfigs/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/*/vpcFlowLogsConfigs/*",
);
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.cloud.networkmanagement.v1.VpcFlowLogsService/GetVpcFlowLogsConfig",
)
.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_vpc_flow_logs_config(
&self,
req: crate::model::CreateVpcFlowLogsConfigRequest,
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("/locations/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}/vpcFlowLogsConfigs", var_parent,);
let path_template = "/v1/{parent}/vpcFlowLogsConfigs";
let resource_name = format!("//networkmanagement.googleapis.com/{}", var_parent,);
let builder = self.inner.builder(Method::POST, path);
let builder =
builder.query(&[("vpcFlowLogsConfigId", &req.vpc_flow_logs_config_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("/locations/"),
Segment::SingleWildcard,
],
"parent",
"projects/*/locations/*",
);
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.cloud.networkmanagement.v1.VpcFlowLogsService/CreateVpcFlowLogsConfig")
.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.vpc_flow_logs_config, &method);
self.inner.execute(builder, body, options).await
}
async fn update_vpc_flow_logs_config(
&self,
req: crate::model::UpdateVpcFlowLogsConfigRequest,
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_vpc_flow_logs_config_name = try_match(
Some(&req)
.and_then(|m| m.vpc_flow_logs_config.as_ref())
.map(|m| &m.name)
.map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/vpcFlowLogsConfigs/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}", var_vpc_flow_logs_config_name,);
let path_template = "/v1/{vpc_flow_logs_config.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.vpc_flow_logs_config.as_ref())
.map(|m| &m.name)
.map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/vpcFlowLogsConfigs/"),
Segment::SingleWildcard,
],
"vpc_flow_logs_config.name",
"projects/*/locations/*/vpcFlowLogsConfigs/*",
);
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.cloud.networkmanagement.v1.VpcFlowLogsService/UpdateVpcFlowLogsConfig")
.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.vpc_flow_logs_config, &method);
self.inner.execute(builder, body, options).await
}
async fn delete_vpc_flow_logs_config(
&self,
req: crate::model::DeleteVpcFlowLogsConfigRequest,
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("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/vpcFlowLogsConfigs/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}", var_name,);
let path_template = "/v1/{name}";
let resource_name = format!("//networkmanagement.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("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/vpcFlowLogsConfigs/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/*/vpcFlowLogsConfigs/*",
);
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.cloud.networkmanagement.v1.VpcFlowLogsService/DeleteVpcFlowLogsConfig")
.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 query_org_vpc_flow_logs_configs(
&self,
req: crate::model::QueryOrgVpcFlowLogsConfigsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::QueryOrgVpcFlowLogsConfigsResponse>> {
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("/locations/"),
Segment::SingleWildcard,
],
)?;
let path = format!(
"/v1/{}/vpcFlowLogsConfigs:queryOrgVpcFlowLogsConfigs",
var_parent,
);
let path_template = "/v1/{parent}/vpcFlowLogsConfigs:queryOrgVpcFlowLogsConfigs";
let resource_name = format!("//networkmanagement.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(&[("filter", &req.filter)]);
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("/locations/"),
Segment::SingleWildcard,
],
"parent",
"projects/*/locations/*",
);
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.cloud.networkmanagement.v1.VpcFlowLogsService/QueryOrgVpcFlowLogsConfigs")
.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 show_effective_flow_logs_configs(
&self,
req: crate::model::ShowEffectiveFlowLogsConfigsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ShowEffectiveFlowLogsConfigsResponse>> {
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("/locations/"),
Segment::SingleWildcard,
],
)?;
let path = format!(
"/v1/{}/vpcFlowLogsConfigs:showEffectiveFlowLogsConfigs",
var_parent,
);
let path_template = "/v1/{parent}/vpcFlowLogsConfigs:showEffectiveFlowLogsConfigs";
let resource_name = format!("//networkmanagement.googleapis.com/{}", var_parent,);
let builder = self.inner.builder(Method::GET, path);
let builder = builder.query(&[("resource", &req.resource)]);
let builder = builder.query(&[("pageSize", &req.page_size)]);
let builder = builder.query(&[("pageToken", &req.page_token)]);
let builder = builder.query(&[("filter", &req.filter)]);
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("/locations/"),
Segment::SingleWildcard,
],
"parent",
"projects/*/locations/*",
);
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.cloud.networkmanagement.v1.VpcFlowLogsService/ShowEffectiveFlowLogsConfigs")
.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_locations(
&self,
req: google_cloud_location::model::ListLocationsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_location::model::ListLocationsResponse>> {
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],
)?;
let path = format!("/v1/{}/locations", var_name,);
let path_template = "/v1/{name}/locations";
let builder = self.inner.builder(Method::GET, path);
let builder = builder.query(&[("filter", &req.filter)]);
let builder = builder.query(&[("pageSize", &req.page_size)]);
let builder = builder.query(&[("pageToken", &req.page_token)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET, path_template)))
})
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[Segment::Literal("organizations/"), Segment::SingleWildcard],
)?;
let path = format!("/v1/{}/locations", var_name,);
let path_template = "/v1/{name}/locations";
let builder = self.inner.builder(Method::GET, path);
let builder = builder.query(&[("filter", &req.filter)]);
let builder = builder.query(&[("pageSize", &req.page_size)]);
let builder = builder.query(&[("pageToken", &req.page_token)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET, 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],
"name",
"projects/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[Segment::Literal("organizations/"), Segment::SingleWildcard],
"name",
"organizations/*",
);
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.cloud.location.Locations/ListLocations")
.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_location(
&self,
req: google_cloud_location::model::GetLocationRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_location::model::Location>> {
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("/locations/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}", var_name,);
let path_template = "/v1/{name}";
let builder = self.inner.builder(Method::GET, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET, path_template)))
})
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}", var_name,);
let path_template = "/v1/{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("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
],
"name",
"organizations/*/locations/*",
);
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.cloud.location.Locations/GetLocation")
.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 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("/locations/global/connectivityTests/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:setIamPolicy", var_resource,);
let path_template = "/v1/{resource}:setIamPolicy";
let resource_name = format!("//networkmanagement.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("/locations/global/connectivityTests/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/locations/global/connectivityTests/*",
);
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.iam.v1.IAMPolicy/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 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("/locations/global/connectivityTests/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:getIamPolicy", var_resource,);
let path_template = "/v1/{resource}:getIamPolicy";
let resource_name = format!("//networkmanagement.googleapis.com/{}", var_resource,);
let builder = self.inner.builder(Method::GET, path);
let builder = (|| {
let builder = req
.options
.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, "options")
});
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.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/connectivityTests/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/locations/global/connectivityTests/*",
);
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.iam.v1.IAMPolicy/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(None::<gaxi::http::NoBody>, &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("/locations/global/connectivityTests/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:testIamPermissions", var_resource,);
let path_template = "/v1/{resource}:testIamPermissions";
let resource_name = format!("//networkmanagement.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("/locations/global/connectivityTests/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/locations/global/connectivityTests/*",
);
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.iam.v1.IAMPolicy/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_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("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global"),
],
)?;
let path = format!("/v1/{}/operations", var_name,);
let path_template = "/v1/{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)))
})
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global"),
],
)?;
let path = format!("/v1/{}/operations", var_name,);
let path_template = "/v1/{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("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global"),
],
"name",
"projects/*/locations/global",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global"),
],
"name",
"organizations/*/locations/global",
);
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("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/operations/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}", var_name,);
let path_template = "/v1/{name}";
let builder = self.inner.builder(Method::GET, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET, path_template)))
})
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/operations/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}", var_name,);
let path_template = "/v1/{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("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/operations/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/global/operations/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/operations/"),
Segment::SingleWildcard,
],
"name",
"organizations/*/locations/global/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("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/operations/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}", var_name,);
let path_template = "/v1/{name}";
let builder = self.inner.builder(Method::DELETE, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::DELETE, path_template)))
})
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/operations/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}", var_name,);
let path_template = "/v1/{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("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/operations/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/global/operations/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/operations/"),
Segment::SingleWildcard,
],
"name",
"organizations/*/locations/global/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("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/operations/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:cancel", var_name,);
let path_template = "/v1/{name}:cancel";
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template)))
})
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/operations/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:cancel", var_name,);
let path_template = "/v1/{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("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/operations/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/global/operations/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/operations/"),
Segment::SingleWildcard,
],
"name",
"organizations/*/locations/global/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(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, ())
})
}
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 OrganizationVpcFlowLogsService {
inner: gaxi::http::ReqwestClient,
}
impl std::fmt::Debug for OrganizationVpcFlowLogsService {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error> {
f.debug_struct("OrganizationVpcFlowLogsService")
.field("inner", &self.inner)
.finish()
}
}
impl OrganizationVpcFlowLogsService {
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::OrganizationVpcFlowLogsService for OrganizationVpcFlowLogsService {
async fn list_vpc_flow_logs_configs(
&self,
req: crate::model::ListVpcFlowLogsConfigsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ListVpcFlowLogsConfigsResponse>> {
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("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}/vpcFlowLogsConfigs", var_parent,);
let path_template = "/v1/{parent}/vpcFlowLogsConfigs";
let resource_name = format!("//networkmanagement.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(&[("filter", &req.filter)]);
let builder = builder.query(&[("orderBy", &req.order_by)]);
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("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
],
"parent",
"organizations/*/locations/*",
);
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.cloud.networkmanagement.v1.OrganizationVpcFlowLogsService/ListVpcFlowLogsConfigs")
.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_vpc_flow_logs_config(
&self,
req: crate::model::GetVpcFlowLogsConfigRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::VpcFlowLogsConfig>> {
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("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/vpcFlowLogsConfigs/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}", var_name,);
let path_template = "/v1/{name}";
let resource_name = format!("//networkmanagement.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("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/vpcFlowLogsConfigs/"),
Segment::SingleWildcard,
],
"name",
"organizations/*/locations/*/vpcFlowLogsConfigs/*",
);
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.cloud.networkmanagement.v1.OrganizationVpcFlowLogsService/GetVpcFlowLogsConfig")
.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_vpc_flow_logs_config(
&self,
req: crate::model::CreateVpcFlowLogsConfigRequest,
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("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}/vpcFlowLogsConfigs", var_parent,);
let path_template = "/v1/{parent}/vpcFlowLogsConfigs";
let resource_name = format!("//networkmanagement.googleapis.com/{}", var_parent,);
let builder = self.inner.builder(Method::POST, path);
let builder =
builder.query(&[("vpcFlowLogsConfigId", &req.vpc_flow_logs_config_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("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
],
"parent",
"organizations/*/locations/*",
);
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.cloud.networkmanagement.v1.OrganizationVpcFlowLogsService/CreateVpcFlowLogsConfig")
.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.vpc_flow_logs_config, &method);
self.inner.execute(builder, body, options).await
}
async fn update_vpc_flow_logs_config(
&self,
req: crate::model::UpdateVpcFlowLogsConfigRequest,
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_vpc_flow_logs_config_name = try_match(
Some(&req)
.and_then(|m| m.vpc_flow_logs_config.as_ref())
.map(|m| &m.name)
.map(|s| s.as_str()),
&[
Segment::Literal("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/vpcFlowLogsConfigs/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}", var_vpc_flow_logs_config_name,);
let path_template = "/v1/{vpc_flow_logs_config.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.vpc_flow_logs_config.as_ref())
.map(|m| &m.name)
.map(|s| s.as_str()),
&[
Segment::Literal("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/vpcFlowLogsConfigs/"),
Segment::SingleWildcard,
],
"vpc_flow_logs_config.name",
"organizations/*/locations/*/vpcFlowLogsConfigs/*",
);
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.cloud.networkmanagement.v1.OrganizationVpcFlowLogsService/UpdateVpcFlowLogsConfig")
.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.vpc_flow_logs_config, &method);
self.inner.execute(builder, body, options).await
}
async fn delete_vpc_flow_logs_config(
&self,
req: crate::model::DeleteVpcFlowLogsConfigRequest,
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("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/vpcFlowLogsConfigs/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}", var_name,);
let path_template = "/v1/{name}";
let resource_name = format!("//networkmanagement.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("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
Segment::Literal("/vpcFlowLogsConfigs/"),
Segment::SingleWildcard,
],
"name",
"organizations/*/locations/*/vpcFlowLogsConfigs/*",
);
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.cloud.networkmanagement.v1.OrganizationVpcFlowLogsService/DeleteVpcFlowLogsConfig")
.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_locations(
&self,
req: google_cloud_location::model::ListLocationsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_location::model::ListLocationsResponse>> {
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],
)?;
let path = format!("/v1/{}/locations", var_name,);
let path_template = "/v1/{name}/locations";
let builder = self.inner.builder(Method::GET, path);
let builder = builder.query(&[("filter", &req.filter)]);
let builder = builder.query(&[("pageSize", &req.page_size)]);
let builder = builder.query(&[("pageToken", &req.page_token)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET, path_template)))
})
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[Segment::Literal("organizations/"), Segment::SingleWildcard],
)?;
let path = format!("/v1/{}/locations", var_name,);
let path_template = "/v1/{name}/locations";
let builder = self.inner.builder(Method::GET, path);
let builder = builder.query(&[("filter", &req.filter)]);
let builder = builder.query(&[("pageSize", &req.page_size)]);
let builder = builder.query(&[("pageToken", &req.page_token)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET, 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],
"name",
"projects/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[Segment::Literal("organizations/"), Segment::SingleWildcard],
"name",
"organizations/*",
);
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.cloud.location.Locations/ListLocations")
.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_location(
&self,
req: google_cloud_location::model::GetLocationRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_location::model::Location>> {
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("/locations/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}", var_name,);
let path_template = "/v1/{name}";
let builder = self.inner.builder(Method::GET, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET, path_template)))
})
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}", var_name,);
let path_template = "/v1/{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("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/"),
Segment::SingleWildcard,
],
"name",
"organizations/*/locations/*",
);
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.cloud.location.Locations/GetLocation")
.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 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("/locations/global/connectivityTests/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:setIamPolicy", var_resource,);
let path_template = "/v1/{resource}:setIamPolicy";
let resource_name = format!("//networkmanagement.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("/locations/global/connectivityTests/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/locations/global/connectivityTests/*",
);
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.iam.v1.IAMPolicy/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 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("/locations/global/connectivityTests/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:getIamPolicy", var_resource,);
let path_template = "/v1/{resource}:getIamPolicy";
let resource_name = format!("//networkmanagement.googleapis.com/{}", var_resource,);
let builder = self.inner.builder(Method::GET, path);
let builder = (|| {
let builder = req
.options
.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, "options")
});
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.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/connectivityTests/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/locations/global/connectivityTests/*",
);
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.iam.v1.IAMPolicy/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(None::<gaxi::http::NoBody>, &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("/locations/global/connectivityTests/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:testIamPermissions", var_resource,);
let path_template = "/v1/{resource}:testIamPermissions";
let resource_name = format!("//networkmanagement.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("/locations/global/connectivityTests/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/locations/global/connectivityTests/*",
);
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.iam.v1.IAMPolicy/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_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("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global"),
],
)?;
let path = format!("/v1/{}/operations", var_name,);
let path_template = "/v1/{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)))
})
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global"),
],
)?;
let path = format!("/v1/{}/operations", var_name,);
let path_template = "/v1/{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("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global"),
],
"name",
"projects/*/locations/global",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global"),
],
"name",
"organizations/*/locations/global",
);
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("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/operations/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}", var_name,);
let path_template = "/v1/{name}";
let builder = self.inner.builder(Method::GET, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::GET, path_template)))
})
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/operations/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}", var_name,);
let path_template = "/v1/{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("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/operations/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/global/operations/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/operations/"),
Segment::SingleWildcard,
],
"name",
"organizations/*/locations/global/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("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/operations/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}", var_name,);
let path_template = "/v1/{name}";
let builder = self.inner.builder(Method::DELETE, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::DELETE, path_template)))
})
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/operations/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}", var_name,);
let path_template = "/v1/{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("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/operations/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/global/operations/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/operations/"),
Segment::SingleWildcard,
],
"name",
"organizations/*/locations/global/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("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/operations/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:cancel", var_name,);
let path_template = "/v1/{name}:cancel";
let builder = self.inner.builder(Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, Method::POST, path_template)))
})
.or_else(|| {
let var_name = try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/operations/"),
Segment::SingleWildcard,
],
)?;
let path = format!("/v1/{}:cancel", var_name,);
let path_template = "/v1/{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("projects/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/operations/"),
Segment::SingleWildcard,
],
"name",
"projects/*/locations/global/operations/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("organizations/"),
Segment::SingleWildcard,
Segment::Literal("/locations/global/operations/"),
Segment::SingleWildcard,
],
"name",
"organizations/*/locations/global/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(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, ())
})
}
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)
}
}