1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182
// This file is @generated by prost-build.
/// The group information for methods in the Merchant API. The quota is shared
/// between all methods in the group. Even if none of the methods within the
/// group have usage the information for the group is returned.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QuotaGroup {
/// Identifier. The resource name of the quota group.
/// Format: accounts/{account}/quotas/{group}
/// Note: There is no guarantee on the format of {group}
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
/// Output only. The current quota usage, meaning the number of calls already
/// made on a given day to the methods in the group. The daily quota limits
/// reset at at 12:00 PM midday UTC.
#[prost(int64, tag = "2")]
pub quota_usage: i64,
/// Output only. The maximum number of calls allowed per day for the group.
#[prost(int64, tag = "3")]
pub quota_limit: i64,
/// Output only. The maximum number of calls allowed per minute for the group.
#[prost(int64, tag = "5")]
pub quota_minute_limit: i64,
/// Output only. List of all methods group quota applies to.
#[prost(message, repeated, tag = "4")]
pub method_details: ::prost::alloc::vec::Vec<MethodDetails>,
}
/// The method details per method in the Merchant API.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MethodDetails {
/// Output only. The name of the method for example `products.list`.
#[prost(string, tag = "1")]
pub method: ::prost::alloc::string::String,
/// Output only. The API version that the method belongs to.
#[prost(string, tag = "2")]
pub version: ::prost::alloc::string::String,
/// Output only. The sub-API that the method belongs to.
#[prost(string, tag = "3")]
pub subapi: ::prost::alloc::string::String,
/// Output only. The path for the method such as
/// `products/v1/productInputs.insert`
#[prost(string, tag = "4")]
pub path: ::prost::alloc::string::String,
}
/// Request message for the ListQuotaGroups method.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListQuotaGroupsRequest {
/// Required. The merchant account who owns the collection of method quotas
/// Format: accounts/{account}
#[prost(string, tag = "1")]
pub parent: ::prost::alloc::string::String,
/// Optional. The maximum number of quotas to return in the response, used
/// for paging. Defaults to 500; values above 1000 will be coerced to 1000.
#[prost(int32, tag = "2")]
pub page_size: i32,
/// Optional. Token (if provided) to retrieve the subsequent page. All other
/// parameters must match the original call that provided the page token.
#[prost(string, tag = "3")]
pub page_token: ::prost::alloc::string::String,
}
/// Response message for the ListMethodGroups method.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListQuotaGroupsResponse {
/// The methods, current quota usage and limits per each group. The quota is
/// shared between all methods in the group. The groups are sorted in
/// descending order based on
/// [quotaUsage][google.shopping.merchant.quota.v1main.QuotaGroup.quota_usage].
#[prost(message, repeated, tag = "1")]
pub quota_groups: ::prost::alloc::vec::Vec<QuotaGroup>,
/// A token, which can be sent as `page_token` to retrieve the next page.
/// If this field is omitted, there are no subsequent pages.
#[prost(string, tag = "2")]
pub next_page_token: ::prost::alloc::string::String,
}
/// Generated client implementations.
pub mod quota_service_client {
#![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
use tonic::codegen::*;
use tonic::codegen::http::Uri;
/// Service to get method call quota information per Merchant API method.
#[derive(Debug, Clone)]
pub struct QuotaServiceClient<T> {
inner: tonic::client::Grpc<T>,
}
impl<T> QuotaServiceClient<T>
where
T: tonic::client::GrpcService<tonic::body::BoxBody>,
T::Error: Into<StdError>,
T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
<T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
{
pub fn new(inner: T) -> Self {
let inner = tonic::client::Grpc::new(inner);
Self { inner }
}
pub fn with_origin(inner: T, origin: Uri) -> Self {
let inner = tonic::client::Grpc::with_origin(inner, origin);
Self { inner }
}
pub fn with_interceptor<F>(
inner: T,
interceptor: F,
) -> QuotaServiceClient<InterceptedService<T, F>>
where
F: tonic::service::Interceptor,
T::ResponseBody: Default,
T: tonic::codegen::Service<
http::Request<tonic::body::BoxBody>,
Response = http::Response<
<T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
>,
>,
<T as tonic::codegen::Service<
http::Request<tonic::body::BoxBody>,
>>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
{
QuotaServiceClient::new(InterceptedService::new(inner, interceptor))
}
/// Compress requests with the given encoding.
///
/// This requires the server to support it otherwise it might respond with an
/// error.
#[must_use]
pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.inner = self.inner.send_compressed(encoding);
self
}
/// Enable decompressing responses.
#[must_use]
pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.inner = self.inner.accept_compressed(encoding);
self
}
/// Limits the maximum size of a decoded message.
///
/// Default: `4MB`
#[must_use]
pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
self.inner = self.inner.max_decoding_message_size(limit);
self
}
/// Limits the maximum size of an encoded message.
///
/// Default: `usize::MAX`
#[must_use]
pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
self.inner = self.inner.max_encoding_message_size(limit);
self
}
/// Lists the daily call quota and usage per group for your Merchant
/// Center account.
pub async fn list_quota_groups(
&mut self,
request: impl tonic::IntoRequest<super::ListQuotaGroupsRequest>,
) -> std::result::Result<
tonic::Response<super::ListQuotaGroupsResponse>,
tonic::Status,
> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.shopping.merchant.quota.v1beta.QuotaService/ListQuotaGroups",
);
let mut req = request.into_request();
req.extensions_mut()
.insert(
GrpcMethod::new(
"google.shopping.merchant.quota.v1beta.QuotaService",
"ListQuotaGroups",
),
);
self.inner.unary(req, path, codec).await
}
}
}