use crate::Result;
#[allow(unused_imports)]
use gax::error::Error;
#[derive(Clone)]
pub struct TopicAdmin {
inner: gaxi::http::ReqwestClient,
}
impl std::fmt::Debug for TopicAdmin {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error> {
f.debug_struct("TopicAdmin")
.field("inner", &self.inner)
.finish()
}
}
impl TopicAdmin {
pub async fn new(config: gaxi::options::ClientConfig) -> gax::client_builder::Result<Self> {
let inner = gaxi::http::ReqwestClient::new(config, crate::DEFAULT_HOST).await?;
Ok(Self { inner })
}
}
impl super::stub::TopicAdmin for TopicAdmin {
async fn create_topic(
&self,
req: crate::model::Topic,
options: gax::options::RequestOptions,
) -> Result<gax::response::Response<crate::model::Topic>> {
use gax::error::binding::BindingError;
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
let (builder, method) = None
.or_else(|| {
let path = format!(
"/v1/{}",
try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/topics/"),
Segment::SingleWildcard
]
)?,
);
let builder = self.inner.builder(reqwest::Method::PUT, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, reqwest::Method::PUT)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/topics/"),
Segment::SingleWildcard,
],
"name",
"projects/*/topics/*",
);
paths.push(builder.build());
}
gax::error::Error::binding(BindingError { paths })
})??;
let options = 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",
reqwest::header::HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(Some(req), &method);
self.inner.execute(builder, body, options).await
}
async fn update_topic(
&self,
req: crate::model::UpdateTopicRequest,
options: gax::options::RequestOptions,
) -> Result<gax::response::Response<crate::model::Topic>> {
use gax::error::binding::BindingError;
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
let (builder, method) = None
.or_else(|| {
let path = format!(
"/v1/{}",
try_match(
Some(&req)
.and_then(|m| m.topic.as_ref())
.map(|m| &m.name)
.map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/topics/"),
Segment::SingleWildcard
]
)?,
);
let builder = self.inner.builder(reqwest::Method::PATCH, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, reqwest::Method::PATCH)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req)
.and_then(|m| m.topic.as_ref())
.map(|m| &m.name)
.map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/topics/"),
Segment::SingleWildcard,
],
"topic.name",
"projects/*/topics/*",
);
paths.push(builder.build());
}
gax::error::Error::binding(BindingError { paths })
})??;
let options = 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",
reqwest::header::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_topic(
&self,
req: crate::model::GetTopicRequest,
options: gax::options::RequestOptions,
) -> Result<gax::response::Response<crate::model::Topic>> {
use gax::error::binding::BindingError;
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
let (builder, method) = None
.or_else(|| {
let path = format!(
"/v1/{}",
try_match(
Some(&req).map(|m| &m.topic).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/topics/"),
Segment::SingleWildcard
]
)?,
);
let builder = self.inner.builder(reqwest::Method::GET, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, reqwest::Method::GET)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.topic).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/topics/"),
Segment::SingleWildcard,
],
"topic",
"projects/*/topics/*",
);
paths.push(builder.build());
}
gax::error::Error::binding(BindingError { paths })
})??;
let options = 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",
reqwest::header::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_topics(
&self,
req: crate::model::ListTopicsRequest,
options: gax::options::RequestOptions,
) -> Result<gax::response::Response<crate::model::ListTopicsResponse>> {
use gax::error::binding::BindingError;
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
let (builder, method) = None
.or_else(|| {
let path = format!(
"/v1/{}/topics",
try_match(
Some(&req).map(|m| &m.project).map(|s| s.as_str()),
&[Segment::Literal("projects/"), Segment::SingleWildcard]
)?,
);
let builder = self.inner.builder(reqwest::Method::GET, path);
let builder = builder.query(&[("pageSize", &req.page_size)]);
let builder = builder.query(&[("pageToken", &req.page_token)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, reqwest::Method::GET)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.project).map(|s| s.as_str()),
&[Segment::Literal("projects/"), Segment::SingleWildcard],
"project",
"projects/*",
);
paths.push(builder.build());
}
gax::error::Error::binding(BindingError { paths })
})??;
let options = 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",
reqwest::header::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_topic_subscriptions(
&self,
req: crate::model::ListTopicSubscriptionsRequest,
options: gax::options::RequestOptions,
) -> Result<gax::response::Response<crate::model::ListTopicSubscriptionsResponse>> {
use gax::error::binding::BindingError;
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
let (builder, method) = None
.or_else(|| {
let path = format!(
"/v1/{}/subscriptions",
try_match(
Some(&req).map(|m| &m.topic).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/topics/"),
Segment::SingleWildcard
]
)?,
);
let builder = self.inner.builder(reqwest::Method::GET, path);
let builder = builder.query(&[("pageSize", &req.page_size)]);
let builder = builder.query(&[("pageToken", &req.page_token)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, reqwest::Method::GET)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.topic).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/topics/"),
Segment::SingleWildcard,
],
"topic",
"projects/*/topics/*",
);
paths.push(builder.build());
}
gax::error::Error::binding(BindingError { paths })
})??;
let options = 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",
reqwest::header::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_topic_snapshots(
&self,
req: crate::model::ListTopicSnapshotsRequest,
options: gax::options::RequestOptions,
) -> Result<gax::response::Response<crate::model::ListTopicSnapshotsResponse>> {
use gax::error::binding::BindingError;
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
let (builder, method) = None
.or_else(|| {
let path = format!(
"/v1/{}/snapshots",
try_match(
Some(&req).map(|m| &m.topic).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/topics/"),
Segment::SingleWildcard
]
)?,
);
let builder = self.inner.builder(reqwest::Method::GET, path);
let builder = builder.query(&[("pageSize", &req.page_size)]);
let builder = builder.query(&[("pageToken", &req.page_token)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, reqwest::Method::GET)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.topic).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/topics/"),
Segment::SingleWildcard,
],
"topic",
"projects/*/topics/*",
);
paths.push(builder.build());
}
gax::error::Error::binding(BindingError { paths })
})??;
let options = 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",
reqwest::header::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_topic(
&self,
req: crate::model::DeleteTopicRequest,
options: gax::options::RequestOptions,
) -> Result<gax::response::Response<()>> {
use gax::error::binding::BindingError;
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
let (builder, method) = None
.or_else(|| {
let path = format!(
"/v1/{}",
try_match(
Some(&req).map(|m| &m.topic).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/topics/"),
Segment::SingleWildcard
]
)?,
);
let builder = self.inner.builder(reqwest::Method::DELETE, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, reqwest::Method::DELETE)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.topic).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/topics/"),
Segment::SingleWildcard,
],
"topic",
"projects/*/topics/*",
);
paths.push(builder.build());
}
gax::error::Error::binding(BindingError { paths })
})??;
let options = 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",
reqwest::header::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: gax::response::Response<wkt::Empty>| {
let (parts, _) = r.into_parts();
gax::response::Response::from_parts(parts, ())
},
)
}
async fn detach_subscription(
&self,
req: crate::model::DetachSubscriptionRequest,
options: gax::options::RequestOptions,
) -> Result<gax::response::Response<crate::model::DetachSubscriptionResponse>> {
use gax::error::binding::BindingError;
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
let (builder, method) = None
.or_else(|| {
let path = format!(
"/v1/{}:detach",
try_match(
Some(&req).map(|m| &m.subscription).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/subscriptions/"),
Segment::SingleWildcard
]
)?,
);
let builder = self.inner.builder(reqwest::Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, reqwest::Method::POST)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.subscription).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/subscriptions/"),
Segment::SingleWildcard,
],
"subscription",
"projects/*/subscriptions/*",
);
paths.push(builder.build());
}
gax::error::Error::binding(BindingError { paths })
})??;
let options = 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",
reqwest::header::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
}
}
#[derive(Clone)]
pub struct SubscriptionAdmin {
inner: gaxi::http::ReqwestClient,
}
impl std::fmt::Debug for SubscriptionAdmin {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error> {
f.debug_struct("SubscriptionAdmin")
.field("inner", &self.inner)
.finish()
}
}
impl SubscriptionAdmin {
pub async fn new(config: gaxi::options::ClientConfig) -> gax::client_builder::Result<Self> {
let inner = gaxi::http::ReqwestClient::new(config, crate::DEFAULT_HOST).await?;
Ok(Self { inner })
}
}
impl super::stub::SubscriptionAdmin for SubscriptionAdmin {
async fn create_subscription(
&self,
req: crate::model::Subscription,
options: gax::options::RequestOptions,
) -> Result<gax::response::Response<crate::model::Subscription>> {
use gax::error::binding::BindingError;
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
let (builder, method) = None
.or_else(|| {
let path = format!(
"/v1/{}",
try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/subscriptions/"),
Segment::SingleWildcard
]
)?,
);
let builder = self.inner.builder(reqwest::Method::PUT, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, reqwest::Method::PUT)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/subscriptions/"),
Segment::SingleWildcard,
],
"name",
"projects/*/subscriptions/*",
);
paths.push(builder.build());
}
gax::error::Error::binding(BindingError { paths })
})??;
let options = 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",
reqwest::header::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_subscription(
&self,
req: crate::model::GetSubscriptionRequest,
options: gax::options::RequestOptions,
) -> Result<gax::response::Response<crate::model::Subscription>> {
use gax::error::binding::BindingError;
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
let (builder, method) = None
.or_else(|| {
let path = format!(
"/v1/{}",
try_match(
Some(&req).map(|m| &m.subscription).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/subscriptions/"),
Segment::SingleWildcard
]
)?,
);
let builder = self.inner.builder(reqwest::Method::GET, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, reqwest::Method::GET)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.subscription).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/subscriptions/"),
Segment::SingleWildcard,
],
"subscription",
"projects/*/subscriptions/*",
);
paths.push(builder.build());
}
gax::error::Error::binding(BindingError { paths })
})??;
let options = 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",
reqwest::header::HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(None::<gaxi::http::NoBody>, &method);
self.inner.execute(builder, body, options).await
}
async fn update_subscription(
&self,
req: crate::model::UpdateSubscriptionRequest,
options: gax::options::RequestOptions,
) -> Result<gax::response::Response<crate::model::Subscription>> {
use gax::error::binding::BindingError;
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
let (builder, method) = None
.or_else(|| {
let path = format!(
"/v1/{}",
try_match(
Some(&req)
.and_then(|m| m.subscription.as_ref())
.map(|m| &m.name)
.map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/subscriptions/"),
Segment::SingleWildcard
]
)?,
);
let builder = self.inner.builder(reqwest::Method::PATCH, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, reqwest::Method::PATCH)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req)
.and_then(|m| m.subscription.as_ref())
.map(|m| &m.name)
.map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/subscriptions/"),
Segment::SingleWildcard,
],
"subscription.name",
"projects/*/subscriptions/*",
);
paths.push(builder.build());
}
gax::error::Error::binding(BindingError { paths })
})??;
let options = 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",
reqwest::header::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_subscriptions(
&self,
req: crate::model::ListSubscriptionsRequest,
options: gax::options::RequestOptions,
) -> Result<gax::response::Response<crate::model::ListSubscriptionsResponse>> {
use gax::error::binding::BindingError;
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
let (builder, method) = None
.or_else(|| {
let path = format!(
"/v1/{}/subscriptions",
try_match(
Some(&req).map(|m| &m.project).map(|s| s.as_str()),
&[Segment::Literal("projects/"), Segment::SingleWildcard]
)?,
);
let builder = self.inner.builder(reqwest::Method::GET, path);
let builder = builder.query(&[("pageSize", &req.page_size)]);
let builder = builder.query(&[("pageToken", &req.page_token)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, reqwest::Method::GET)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.project).map(|s| s.as_str()),
&[Segment::Literal("projects/"), Segment::SingleWildcard],
"project",
"projects/*",
);
paths.push(builder.build());
}
gax::error::Error::binding(BindingError { paths })
})??;
let options = 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",
reqwest::header::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_subscription(
&self,
req: crate::model::DeleteSubscriptionRequest,
options: gax::options::RequestOptions,
) -> Result<gax::response::Response<()>> {
use gax::error::binding::BindingError;
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
let (builder, method) = None
.or_else(|| {
let path = format!(
"/v1/{}",
try_match(
Some(&req).map(|m| &m.subscription).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/subscriptions/"),
Segment::SingleWildcard
]
)?,
);
let builder = self.inner.builder(reqwest::Method::DELETE, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, reqwest::Method::DELETE)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.subscription).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/subscriptions/"),
Segment::SingleWildcard,
],
"subscription",
"projects/*/subscriptions/*",
);
paths.push(builder.build());
}
gax::error::Error::binding(BindingError { paths })
})??;
let options = 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",
reqwest::header::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: gax::response::Response<wkt::Empty>| {
let (parts, _) = r.into_parts();
gax::response::Response::from_parts(parts, ())
},
)
}
async fn modify_push_config(
&self,
req: crate::model::ModifyPushConfigRequest,
options: gax::options::RequestOptions,
) -> Result<gax::response::Response<()>> {
use gax::error::binding::BindingError;
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
let (builder, method) = None
.or_else(|| {
let path = format!(
"/v1/{}:modifyPushConfig",
try_match(
Some(&req).map(|m| &m.subscription).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/subscriptions/"),
Segment::SingleWildcard
]
)?,
);
let builder = self.inner.builder(reqwest::Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, reqwest::Method::POST)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.subscription).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/subscriptions/"),
Segment::SingleWildcard,
],
"subscription",
"projects/*/subscriptions/*",
);
paths.push(builder.build());
}
gax::error::Error::binding(BindingError { paths })
})??;
let options = 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",
reqwest::header::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: gax::response::Response<wkt::Empty>| {
let (parts, _) = r.into_parts();
gax::response::Response::from_parts(parts, ())
},
)
}
async fn get_snapshot(
&self,
req: crate::model::GetSnapshotRequest,
options: gax::options::RequestOptions,
) -> Result<gax::response::Response<crate::model::Snapshot>> {
use gax::error::binding::BindingError;
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
let (builder, method) = None
.or_else(|| {
let path = format!(
"/v1/{}",
try_match(
Some(&req).map(|m| &m.snapshot).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/snapshots/"),
Segment::SingleWildcard
]
)?,
);
let builder = self.inner.builder(reqwest::Method::GET, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, reqwest::Method::GET)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.snapshot).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/snapshots/"),
Segment::SingleWildcard,
],
"snapshot",
"projects/*/snapshots/*",
);
paths.push(builder.build());
}
gax::error::Error::binding(BindingError { paths })
})??;
let options = 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",
reqwest::header::HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(None::<gaxi::http::NoBody>, &method);
self.inner.execute(builder, body, options).await
}
async fn list_snapshots(
&self,
req: crate::model::ListSnapshotsRequest,
options: gax::options::RequestOptions,
) -> Result<gax::response::Response<crate::model::ListSnapshotsResponse>> {
use gax::error::binding::BindingError;
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
let (builder, method) = None
.or_else(|| {
let path = format!(
"/v1/{}/snapshots",
try_match(
Some(&req).map(|m| &m.project).map(|s| s.as_str()),
&[Segment::Literal("projects/"), Segment::SingleWildcard]
)?,
);
let builder = self.inner.builder(reqwest::Method::GET, path);
let builder = builder.query(&[("pageSize", &req.page_size)]);
let builder = builder.query(&[("pageToken", &req.page_token)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, reqwest::Method::GET)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.project).map(|s| s.as_str()),
&[Segment::Literal("projects/"), Segment::SingleWildcard],
"project",
"projects/*",
);
paths.push(builder.build());
}
gax::error::Error::binding(BindingError { paths })
})??;
let options = 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",
reqwest::header::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_snapshot(
&self,
req: crate::model::CreateSnapshotRequest,
options: gax::options::RequestOptions,
) -> Result<gax::response::Response<crate::model::Snapshot>> {
use gax::error::binding::BindingError;
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
let (builder, method) = None
.or_else(|| {
let path = format!(
"/v1/{}",
try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/snapshots/"),
Segment::SingleWildcard
]
)?,
);
let builder = self.inner.builder(reqwest::Method::PUT, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, reqwest::Method::PUT)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/snapshots/"),
Segment::SingleWildcard,
],
"name",
"projects/*/snapshots/*",
);
paths.push(builder.build());
}
gax::error::Error::binding(BindingError { paths })
})??;
let options = 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",
reqwest::header::HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(Some(req), &method);
self.inner.execute(builder, body, options).await
}
async fn update_snapshot(
&self,
req: crate::model::UpdateSnapshotRequest,
options: gax::options::RequestOptions,
) -> Result<gax::response::Response<crate::model::Snapshot>> {
use gax::error::binding::BindingError;
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
let (builder, method) = None
.or_else(|| {
let path = format!(
"/v1/{}",
try_match(
Some(&req)
.and_then(|m| m.snapshot.as_ref())
.map(|m| &m.name)
.map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/snapshots/"),
Segment::SingleWildcard
]
)?,
);
let builder = self.inner.builder(reqwest::Method::PATCH, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, reqwest::Method::PATCH)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req)
.and_then(|m| m.snapshot.as_ref())
.map(|m| &m.name)
.map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/snapshots/"),
Segment::SingleWildcard,
],
"snapshot.name",
"projects/*/snapshots/*",
);
paths.push(builder.build());
}
gax::error::Error::binding(BindingError { paths })
})??;
let options = 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",
reqwest::header::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_snapshot(
&self,
req: crate::model::DeleteSnapshotRequest,
options: gax::options::RequestOptions,
) -> Result<gax::response::Response<()>> {
use gax::error::binding::BindingError;
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
let (builder, method) = None
.or_else(|| {
let path = format!(
"/v1/{}",
try_match(
Some(&req).map(|m| &m.snapshot).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/snapshots/"),
Segment::SingleWildcard
]
)?,
);
let builder = self.inner.builder(reqwest::Method::DELETE, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, reqwest::Method::DELETE)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.snapshot).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/snapshots/"),
Segment::SingleWildcard,
],
"snapshot",
"projects/*/snapshots/*",
);
paths.push(builder.build());
}
gax::error::Error::binding(BindingError { paths })
})??;
let options = 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",
reqwest::header::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: gax::response::Response<wkt::Empty>| {
let (parts, _) = r.into_parts();
gax::response::Response::from_parts(parts, ())
},
)
}
async fn seek(
&self,
req: crate::model::SeekRequest,
options: gax::options::RequestOptions,
) -> Result<gax::response::Response<crate::model::SeekResponse>> {
use gax::error::binding::BindingError;
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
let (builder, method) = None
.or_else(|| {
let path = format!(
"/v1/{}:seek",
try_match(
Some(&req).map(|m| &m.subscription).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/subscriptions/"),
Segment::SingleWildcard
]
)?,
);
let builder = self.inner.builder(reqwest::Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, reqwest::Method::POST)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.subscription).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/subscriptions/"),
Segment::SingleWildcard,
],
"subscription",
"projects/*/subscriptions/*",
);
paths.push(builder.build());
}
gax::error::Error::binding(BindingError { paths })
})??;
let options = 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",
reqwest::header::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
}
}
#[derive(Clone)]
pub struct SchemaService {
inner: gaxi::http::ReqwestClient,
}
impl std::fmt::Debug for SchemaService {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error> {
f.debug_struct("SchemaService")
.field("inner", &self.inner)
.finish()
}
}
impl SchemaService {
pub async fn new(config: gaxi::options::ClientConfig) -> gax::client_builder::Result<Self> {
let inner = gaxi::http::ReqwestClient::new(config, crate::DEFAULT_HOST).await?;
Ok(Self { inner })
}
}
impl super::stub::SchemaService for SchemaService {
async fn create_schema(
&self,
req: crate::model::CreateSchemaRequest,
options: gax::options::RequestOptions,
) -> Result<gax::response::Response<crate::model::Schema>> {
use gax::error::binding::BindingError;
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
let (builder, method) = None
.or_else(|| {
let path = format!(
"/v1/{}/schemas",
try_match(
Some(&req).map(|m| &m.parent).map(|s| s.as_str()),
&[Segment::Literal("projects/"), Segment::SingleWildcard]
)?,
);
let builder = self.inner.builder(reqwest::Method::POST, path);
let builder = builder.query(&[("schemaId", &req.schema_id)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, reqwest::Method::POST)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.parent).map(|s| s.as_str()),
&[Segment::Literal("projects/"), Segment::SingleWildcard],
"parent",
"projects/*",
);
paths.push(builder.build());
}
gax::error::Error::binding(BindingError { paths })
})??;
let options = 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",
reqwest::header::HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(req.schema, &method);
self.inner.execute(builder, body, options).await
}
async fn get_schema(
&self,
req: crate::model::GetSchemaRequest,
options: gax::options::RequestOptions,
) -> Result<gax::response::Response<crate::model::Schema>> {
use gax::error::binding::BindingError;
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
let (builder, method) = None
.or_else(|| {
let path = format!(
"/v1/{}",
try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/schemas/"),
Segment::SingleWildcard
]
)?,
);
let builder = self.inner.builder(reqwest::Method::GET, path);
let builder = builder.query(&[("view", &req.view)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, reqwest::Method::GET)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/schemas/"),
Segment::SingleWildcard,
],
"name",
"projects/*/schemas/*",
);
paths.push(builder.build());
}
gax::error::Error::binding(BindingError { paths })
})??;
let options = 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",
reqwest::header::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_schemas(
&self,
req: crate::model::ListSchemasRequest,
options: gax::options::RequestOptions,
) -> Result<gax::response::Response<crate::model::ListSchemasResponse>> {
use gax::error::binding::BindingError;
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
let (builder, method) = None
.or_else(|| {
let path = format!(
"/v1/{}/schemas",
try_match(
Some(&req).map(|m| &m.parent).map(|s| s.as_str()),
&[Segment::Literal("projects/"), Segment::SingleWildcard]
)?,
);
let builder = self.inner.builder(reqwest::Method::GET, path);
let builder = builder.query(&[("view", &req.view)]);
let builder = builder.query(&[("pageSize", &req.page_size)]);
let builder = builder.query(&[("pageToken", &req.page_token)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, reqwest::Method::GET)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.parent).map(|s| s.as_str()),
&[Segment::Literal("projects/"), Segment::SingleWildcard],
"parent",
"projects/*",
);
paths.push(builder.build());
}
gax::error::Error::binding(BindingError { paths })
})??;
let options = 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",
reqwest::header::HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(None::<gaxi::http::NoBody>, &method);
self.inner.execute(builder, body, options).await
}
async fn list_schema_revisions(
&self,
req: crate::model::ListSchemaRevisionsRequest,
options: gax::options::RequestOptions,
) -> Result<gax::response::Response<crate::model::ListSchemaRevisionsResponse>> {
use gax::error::binding::BindingError;
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
let (builder, method) = None
.or_else(|| {
let path = format!(
"/v1/{}:listRevisions",
try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/schemas/"),
Segment::SingleWildcard
]
)?,
);
let builder = self.inner.builder(reqwest::Method::GET, path);
let builder = builder.query(&[("view", &req.view)]);
let builder = builder.query(&[("pageSize", &req.page_size)]);
let builder = builder.query(&[("pageToken", &req.page_token)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, reqwest::Method::GET)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/schemas/"),
Segment::SingleWildcard,
],
"name",
"projects/*/schemas/*",
);
paths.push(builder.build());
}
gax::error::Error::binding(BindingError { paths })
})??;
let options = 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",
reqwest::header::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 commit_schema(
&self,
req: crate::model::CommitSchemaRequest,
options: gax::options::RequestOptions,
) -> Result<gax::response::Response<crate::model::Schema>> {
use gax::error::binding::BindingError;
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
let (builder, method) = None
.or_else(|| {
let path = format!(
"/v1/{}:commit",
try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/schemas/"),
Segment::SingleWildcard
]
)?,
);
let builder = self.inner.builder(reqwest::Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, reqwest::Method::POST)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/schemas/"),
Segment::SingleWildcard,
],
"name",
"projects/*/schemas/*",
);
paths.push(builder.build());
}
gax::error::Error::binding(BindingError { paths })
})??;
let options = 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",
reqwest::header::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 rollback_schema(
&self,
req: crate::model::RollbackSchemaRequest,
options: gax::options::RequestOptions,
) -> Result<gax::response::Response<crate::model::Schema>> {
use gax::error::binding::BindingError;
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
let (builder, method) = None
.or_else(|| {
let path = format!(
"/v1/{}:rollback",
try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/schemas/"),
Segment::SingleWildcard
]
)?,
);
let builder = self.inner.builder(reqwest::Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, reqwest::Method::POST)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/schemas/"),
Segment::SingleWildcard,
],
"name",
"projects/*/schemas/*",
);
paths.push(builder.build());
}
gax::error::Error::binding(BindingError { paths })
})??;
let options = 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",
reqwest::header::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_schema_revision(
&self,
req: crate::model::DeleteSchemaRevisionRequest,
options: gax::options::RequestOptions,
) -> Result<gax::response::Response<crate::model::Schema>> {
use gax::error::binding::BindingError;
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
let (builder, method) = None
.or_else(|| {
let path = format!(
"/v1/{}:deleteRevision",
try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/schemas/"),
Segment::SingleWildcard
]
)?,
);
let builder = self.inner.builder(reqwest::Method::DELETE, path);
let builder = builder.query(&[("revisionId", &req.revision_id)]);
let builder = Ok(builder);
Some(builder.map(|b| (b, reqwest::Method::DELETE)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/schemas/"),
Segment::SingleWildcard,
],
"name",
"projects/*/schemas/*",
);
paths.push(builder.build());
}
gax::error::Error::binding(BindingError { paths })
})??;
let options = 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",
reqwest::header::HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(None::<gaxi::http::NoBody>, &method);
self.inner.execute(builder, body, options).await
}
async fn delete_schema(
&self,
req: crate::model::DeleteSchemaRequest,
options: gax::options::RequestOptions,
) -> Result<gax::response::Response<()>> {
use gax::error::binding::BindingError;
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
let (builder, method) = None
.or_else(|| {
let path = format!(
"/v1/{}",
try_match(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/schemas/"),
Segment::SingleWildcard
]
)?,
);
let builder = self.inner.builder(reqwest::Method::DELETE, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, reqwest::Method::DELETE)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.name).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/schemas/"),
Segment::SingleWildcard,
],
"name",
"projects/*/schemas/*",
);
paths.push(builder.build());
}
gax::error::Error::binding(BindingError { paths })
})??;
let options = 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",
reqwest::header::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: gax::response::Response<wkt::Empty>| {
let (parts, _) = r.into_parts();
gax::response::Response::from_parts(parts, ())
},
)
}
async fn validate_schema(
&self,
req: crate::model::ValidateSchemaRequest,
options: gax::options::RequestOptions,
) -> Result<gax::response::Response<crate::model::ValidateSchemaResponse>> {
use gax::error::binding::BindingError;
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
let (builder, method) = None
.or_else(|| {
let path = format!(
"/v1/{}/schemas:validate",
try_match(
Some(&req).map(|m| &m.parent).map(|s| s.as_str()),
&[Segment::Literal("projects/"), Segment::SingleWildcard]
)?,
);
let builder = self.inner.builder(reqwest::Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, reqwest::Method::POST)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.parent).map(|s| s.as_str()),
&[Segment::Literal("projects/"), Segment::SingleWildcard],
"parent",
"projects/*",
);
paths.push(builder.build());
}
gax::error::Error::binding(BindingError { paths })
})??;
let options = 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",
reqwest::header::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 validate_message(
&self,
req: crate::model::ValidateMessageRequest,
options: gax::options::RequestOptions,
) -> Result<gax::response::Response<crate::model::ValidateMessageResponse>> {
use gax::error::binding::BindingError;
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
let (builder, method) = None
.or_else(|| {
let path = format!(
"/v1/{}/schemas:validateMessage",
try_match(
Some(&req).map(|m| &m.parent).map(|s| s.as_str()),
&[Segment::Literal("projects/"), Segment::SingleWildcard]
)?,
);
let builder = self.inner.builder(reqwest::Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, reqwest::Method::POST)))
})
.ok_or_else(|| {
let mut paths = Vec::new();
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.parent).map(|s| s.as_str()),
&[Segment::Literal("projects/"), Segment::SingleWildcard],
"parent",
"projects/*",
);
paths.push(builder.build());
}
gax::error::Error::binding(BindingError { paths })
})??;
let options = 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",
reqwest::header::HeaderValue::from_static(&crate::info::X_GOOG_API_CLIENT_HEADER),
);
let body = gaxi::http::handle_empty(Some(req), &method);
self.inner.execute(builder, body, options).await
}
async fn set_iam_policy(
&self,
req: iam_v1::model::SetIamPolicyRequest,
options: gax::options::RequestOptions,
) -> Result<gax::response::Response<iam_v1::model::Policy>> {
use gax::error::binding::BindingError;
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
let (builder, method) = None
.or_else(|| {
let path = format!(
"/v1/{}:setIamPolicy",
try_match(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/topics/"),
Segment::SingleWildcard
]
)?,
);
let builder = self.inner.builder(reqwest::Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, reqwest::Method::POST)))
})
.or_else(|| {
let path = format!(
"/v1/{}:setIamPolicy",
try_match(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/subscriptions/"),
Segment::SingleWildcard
]
)?,
);
let builder = self.inner.builder(reqwest::Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, reqwest::Method::POST)))
})
.or_else(|| {
let path = format!(
"/v1/{}:setIamPolicy",
try_match(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/snapshots/"),
Segment::SingleWildcard
]
)?,
);
let builder = self.inner.builder(reqwest::Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, reqwest::Method::POST)))
})
.or_else(|| {
let path = format!(
"/v1/{}:setIamPolicy",
try_match(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/schemas/"),
Segment::SingleWildcard
]
)?,
);
let builder = self.inner.builder(reqwest::Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, reqwest::Method::POST)))
})
.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("/topics/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/topics/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/subscriptions/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/subscriptions/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/snapshots/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/snapshots/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/schemas/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/schemas/*",
);
paths.push(builder.build());
}
gax::error::Error::binding(BindingError { paths })
})??;
let options = 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",
reqwest::header::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: iam_v1::model::GetIamPolicyRequest,
options: gax::options::RequestOptions,
) -> Result<gax::response::Response<iam_v1::model::Policy>> {
use gax::error::binding::BindingError;
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
let (builder, method) = None
.or_else(|| {
let path = format!(
"/v1/{}:getIamPolicy",
try_match(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/topics/"),
Segment::SingleWildcard
]
)?,
);
let builder = self.inner.builder(reqwest::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, reqwest::Method::GET)))
})
.or_else(|| {
let path = format!(
"/v1/{}:getIamPolicy",
try_match(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/subscriptions/"),
Segment::SingleWildcard
]
)?,
);
let builder = self.inner.builder(reqwest::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, reqwest::Method::GET)))
})
.or_else(|| {
let path = format!(
"/v1/{}:getIamPolicy",
try_match(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/snapshots/"),
Segment::SingleWildcard
]
)?,
);
let builder = self.inner.builder(reqwest::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, reqwest::Method::GET)))
})
.or_else(|| {
let path = format!(
"/v1/{}:getIamPolicy",
try_match(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/schemas/"),
Segment::SingleWildcard
]
)?,
);
let builder = self.inner.builder(reqwest::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, reqwest::Method::GET)))
})
.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("/topics/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/topics/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/subscriptions/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/subscriptions/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/snapshots/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/snapshots/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/schemas/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/schemas/*",
);
paths.push(builder.build());
}
gax::error::Error::binding(BindingError { paths })
})??;
let options = 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",
reqwest::header::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: iam_v1::model::TestIamPermissionsRequest,
options: gax::options::RequestOptions,
) -> Result<gax::response::Response<iam_v1::model::TestIamPermissionsResponse>> {
use gax::error::binding::BindingError;
use gaxi::path_parameter::PathMismatchBuilder;
use gaxi::path_parameter::try_match;
use gaxi::routing_parameter::Segment;
let (builder, method) = None
.or_else(|| {
let path = format!(
"/v1/{}:testIamPermissions",
try_match(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/subscriptions/"),
Segment::SingleWildcard
]
)?,
);
let builder = self.inner.builder(reqwest::Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, reqwest::Method::POST)))
})
.or_else(|| {
let path = format!(
"/v1/{}:testIamPermissions",
try_match(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/topics/"),
Segment::SingleWildcard
]
)?,
);
let builder = self.inner.builder(reqwest::Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, reqwest::Method::POST)))
})
.or_else(|| {
let path = format!(
"/v1/{}:testIamPermissions",
try_match(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/snapshots/"),
Segment::SingleWildcard
]
)?,
);
let builder = self.inner.builder(reqwest::Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, reqwest::Method::POST)))
})
.or_else(|| {
let path = format!(
"/v1/{}:testIamPermissions",
try_match(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/schemas/"),
Segment::SingleWildcard
]
)?,
);
let builder = self.inner.builder(reqwest::Method::POST, path);
let builder = Ok(builder);
Some(builder.map(|b| (b, reqwest::Method::POST)))
})
.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("/subscriptions/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/subscriptions/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/topics/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/topics/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/snapshots/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/snapshots/*",
);
paths.push(builder.build());
}
{
let builder = PathMismatchBuilder::default();
let builder = builder.maybe_add(
Some(&req).map(|m| &m.resource).map(|s| s.as_str()),
&[
Segment::Literal("projects/"),
Segment::SingleWildcard,
Segment::Literal("/schemas/"),
Segment::SingleWildcard,
],
"resource",
"projects/*/schemas/*",
);
paths.push(builder.build());
}
gax::error::Error::binding(BindingError { paths })
})??;
let options = 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",
reqwest::header::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
}
}