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 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227
|
# frozen_string_literal: true
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: google/api/quota.proto
require 'google/protobuf'
descriptor_data = "\n\x16google/api/quota.proto\x12\ngoogle.api\"]\n\x05Quota\x12&\n\x06limits\x18\x03 \x03(\x0b\x32\x16.google.api.QuotaLimit\x12,\n\x0cmetric_rules\x18\x04 \x03(\x0b\x32\x16.google.api.MetricRule\"\x91\x01\n\nMetricRule\x12\x10\n\x08selector\x18\x01 \x01(\t\x12=\n\x0cmetric_costs\x18\x02 \x03(\x0b\x32\'.google.api.MetricRule.MetricCostsEntry\x1a\x32\n\x10MetricCostsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\"\x95\x02\n\nQuotaLimit\x12\x0c\n\x04name\x18\x06 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x15\n\rdefault_limit\x18\x03 \x01(\x03\x12\x11\n\tmax_limit\x18\x04 \x01(\x03\x12\x11\n\tfree_tier\x18\x07 \x01(\x03\x12\x10\n\x08\x64uration\x18\x05 \x01(\t\x12\x0e\n\x06metric\x18\x08 \x01(\t\x12\x0c\n\x04unit\x18\t \x01(\t\x12\x32\n\x06values\x18\n \x03(\x0b\x32\".google.api.QuotaLimit.ValuesEntry\x12\x14\n\x0c\x64isplay_name\x18\x0c \x01(\t\x1a-\n\x0bValuesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\x42l\n\x0e\x63om.google.apiB\nQuotaProtoP\x01ZEgoogle.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig\xa2\x02\x04GAPIb\x06proto3"
pool = Google::Protobuf::DescriptorPool.generated_pool
begin
pool.add_serialized_file(descriptor_data)
rescue TypeError
# Compatibility code: will be removed in the next major version.
require 'google/protobuf/descriptor_pb'
parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
parsed.clear_dependency
serialized = parsed.class.encode(parsed)
file = pool.add_serialized_file(serialized)
warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
imports = [
]
imports.each do |type_name, expected_filename|
import_file = pool.lookup(type_name).file_descriptor
if import_file.name != expected_filename
warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
end
end
warn "Each proto file must use a consistent fully-qualified name."
warn "This will become an error in the next major version."
end
module Google
module Api
Quota = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.api.Quota").msgclass
MetricRule = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.api.MetricRule").msgclass
QuotaLimit = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.api.QuotaLimit").msgclass
end
end
#### Source proto file: google/api/quota.proto ####
#
# // Copyright 2023 Google LLC
# //
# // Licensed under the Apache License, Version 2.0 (the "License");
# // you may not use this file except in compliance with the License.
# // You may obtain a copy of the License at
# //
# // http://www.apache.org/licenses/LICENSE-2.0
# //
# // Unless required by applicable law or agreed to in writing, software
# // distributed under the License is distributed on an "AS IS" BASIS,
# // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# // See the License for the specific language governing permissions and
# // limitations under the License.
#
# syntax = "proto3";
#
# package google.api;
#
# option go_package = "google.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig";
# option java_multiple_files = true;
# option java_outer_classname = "QuotaProto";
# option java_package = "com.google.api";
# option objc_class_prefix = "GAPI";
#
# // Quota configuration helps to achieve fairness and budgeting in service
# // usage.
# //
# // The metric based quota configuration works this way:
# // - The service configuration defines a set of metrics.
# // - For API calls, the quota.metric_rules maps methods to metrics with
# // corresponding costs.
# // - The quota.limits defines limits on the metrics, which will be used for
# // quota checks at runtime.
# //
# // An example quota configuration in yaml format:
# //
# // quota:
# // limits:
# //
# // - name: apiWriteQpsPerProject
# // metric: library.googleapis.com/write_calls
# // unit: "1/min/{project}" # rate limit for consumer projects
# // values:
# // STANDARD: 10000
# //
# //
# // (The metric rules bind all methods to the read_calls metric,
# // except for the UpdateBook and DeleteBook methods. These two methods
# // are mapped to the write_calls metric, with the UpdateBook method
# // consuming at twice rate as the DeleteBook method.)
# // metric_rules:
# // - selector: "*"
# // metric_costs:
# // library.googleapis.com/read_calls: 1
# // - selector: google.example.library.v1.LibraryService.UpdateBook
# // metric_costs:
# // library.googleapis.com/write_calls: 2
# // - selector: google.example.library.v1.LibraryService.DeleteBook
# // metric_costs:
# // library.googleapis.com/write_calls: 1
# //
# // Corresponding Metric definition:
# //
# // metrics:
# // - name: library.googleapis.com/read_calls
# // display_name: Read requests
# // metric_kind: DELTA
# // value_type: INT64
# //
# // - name: library.googleapis.com/write_calls
# // display_name: Write requests
# // metric_kind: DELTA
# // value_type: INT64
# //
# //
# message Quota {
# // List of QuotaLimit definitions for the service.
# repeated QuotaLimit limits = 3;
#
# // List of MetricRule definitions, each one mapping a selected method to one
# // or more metrics.
# repeated MetricRule metric_rules = 4;
# }
#
# // Bind API methods to metrics. Binding a method to a metric causes that
# // metric's configured quota behaviors to apply to the method call.
# message MetricRule {
# // Selects the methods to which this rule applies.
# //
# // Refer to [selector][google.api.DocumentationRule.selector] for syntax
# // details.
# string selector = 1;
#
# // Metrics to update when the selected methods are called, and the associated
# // cost applied to each metric.
# //
# // The key of the map is the metric name, and the values are the amount
# // increased for the metric against which the quota limits are defined.
# // The value must not be negative.
# map<string, int64> metric_costs = 2;
# }
#
# // `QuotaLimit` defines a specific limit that applies over a specified duration
# // for a limit type. There can be at most one limit for a duration and limit
# // type combination defined within a `QuotaGroup`.
# message QuotaLimit {
# // Name of the quota limit.
# //
# // The name must be provided, and it must be unique within the service. The
# // name can only include alphanumeric characters as well as '-'.
# //
# // The maximum length of the limit name is 64 characters.
# string name = 6;
#
# // Optional. User-visible, extended description for this quota limit.
# // Should be used only when more context is needed to understand this limit
# // than provided by the limit's display name (see: `display_name`).
# string description = 2;
#
# // Default number of tokens that can be consumed during the specified
# // duration. This is the number of tokens assigned when a client
# // application developer activates the service for his/her project.
# //
# // Specifying a value of 0 will block all requests. This can be used if you
# // are provisioning quota to selected consumers and blocking others.
# // Similarly, a value of -1 will indicate an unlimited quota. No other
# // negative values are allowed.
# //
# // Used by group-based quotas only.
# int64 default_limit = 3;
#
# // Maximum number of tokens that can be consumed during the specified
# // duration. Client application developers can override the default limit up
# // to this maximum. If specified, this value cannot be set to a value less
# // than the default limit. If not specified, it is set to the default limit.
# //
# // To allow clients to apply overrides with no upper bound, set this to -1,
# // indicating unlimited maximum quota.
# //
# // Used by group-based quotas only.
# int64 max_limit = 4;
#
# // Free tier value displayed in the Developers Console for this limit.
# // The free tier is the number of tokens that will be subtracted from the
# // billed amount when billing is enabled.
# // This field can only be set on a limit with duration "1d", in a billable
# // group; it is invalid on any other limit. If this field is not set, it
# // defaults to 0, indicating that there is no free tier for this service.
# //
# // Used by group-based quotas only.
# int64 free_tier = 7;
#
# // Duration of this limit in textual notation. Must be "100s" or "1d".
# //
# // Used by group-based quotas only.
# string duration = 5;
#
# // The name of the metric this quota limit applies to. The quota limits with
# // the same metric will be checked together during runtime. The metric must be
# // defined within the service config.
# string metric = 8;
#
# // Specify the unit of the quota limit. It uses the same syntax as
# // [Metric.unit][]. The supported unit kinds are determined by the quota
# // backend system.
# //
# // Here are some examples:
# // * "1/min/{project}" for quota per minute per project.
# //
# // Note: the order of unit components is insignificant.
# // The "1" at the beginning is required to follow the metric unit syntax.
# string unit = 9;
#
# // Tiered limit values. You must specify this as a key:value pair, with an
# // integer value that is the maximum number of requests allowed for the
# // specified unit. Currently only STANDARD is supported.
# map<string, int64> values = 10;
#
# // User-visible display name for this limit.
# // Optional. If not set, the UI will provide a default display name based on
# // the quota configuration. This field can be used to override the default
# // display name generated from the configuration.
# string display_name = 12;
# }
|