1// Copyright 2019 Google LLC. 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14// 15 16// Code generated by protoc-gen-go. DO NOT EDIT. 17// versions: 18// protoc-gen-go v1.22.0 19// protoc v3.11.2 20// source: google/api/quota.proto 21 22package serviceconfig 23 24import ( 25 reflect "reflect" 26 sync "sync" 27 28 proto "github.com/golang/protobuf/proto" 29 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 30 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 31) 32 33const ( 34 // Verify that this generated code is sufficiently up-to-date. 35 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 36 // Verify that runtime/protoimpl is sufficiently up-to-date. 37 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 38) 39 40// This is a compile-time assertion that a sufficiently up-to-date version 41// of the legacy proto package is being used. 42const _ = proto.ProtoPackageIsVersion4 43 44// Quota configuration helps to achieve fairness and budgeting in service 45// usage. 46// 47// The metric based quota configuration works this way: 48// - The service configuration defines a set of metrics. 49// - For API calls, the quota.metric_rules maps methods to metrics with 50// corresponding costs. 51// - The quota.limits defines limits on the metrics, which will be used for 52// quota checks at runtime. 53// 54// An example quota configuration in yaml format: 55// 56// quota: 57// limits: 58// 59// - name: apiWriteQpsPerProject 60// metric: library.googleapis.com/write_calls 61// unit: "1/min/{project}" # rate limit for consumer projects 62// values: 63// STANDARD: 10000 64// 65// 66// # The metric rules bind all methods to the read_calls metric, 67// # except for the UpdateBook and DeleteBook methods. These two methods 68// # are mapped to the write_calls metric, with the UpdateBook method 69// # consuming at twice rate as the DeleteBook method. 70// metric_rules: 71// - selector: "*" 72// metric_costs: 73// library.googleapis.com/read_calls: 1 74// - selector: google.example.library.v1.LibraryService.UpdateBook 75// metric_costs: 76// library.googleapis.com/write_calls: 2 77// - selector: google.example.library.v1.LibraryService.DeleteBook 78// metric_costs: 79// library.googleapis.com/write_calls: 1 80// 81// Corresponding Metric definition: 82// 83// metrics: 84// - name: library.googleapis.com/read_calls 85// display_name: Read requests 86// metric_kind: DELTA 87// value_type: INT64 88// 89// - name: library.googleapis.com/write_calls 90// display_name: Write requests 91// metric_kind: DELTA 92// value_type: INT64 93// 94// 95type Quota struct { 96 state protoimpl.MessageState 97 sizeCache protoimpl.SizeCache 98 unknownFields protoimpl.UnknownFields 99 100 // List of `QuotaLimit` definitions for the service. 101 Limits []*QuotaLimit `protobuf:"bytes,3,rep,name=limits,proto3" json:"limits,omitempty"` 102 // List of `MetricRule` definitions, each one mapping a selected method to one 103 // or more metrics. 104 MetricRules []*MetricRule `protobuf:"bytes,4,rep,name=metric_rules,json=metricRules,proto3" json:"metric_rules,omitempty"` 105} 106 107func (x *Quota) Reset() { 108 *x = Quota{} 109 if protoimpl.UnsafeEnabled { 110 mi := &file_google_api_quota_proto_msgTypes[0] 111 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 112 ms.StoreMessageInfo(mi) 113 } 114} 115 116func (x *Quota) String() string { 117 return protoimpl.X.MessageStringOf(x) 118} 119 120func (*Quota) ProtoMessage() {} 121 122func (x *Quota) ProtoReflect() protoreflect.Message { 123 mi := &file_google_api_quota_proto_msgTypes[0] 124 if protoimpl.UnsafeEnabled && x != nil { 125 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 126 if ms.LoadMessageInfo() == nil { 127 ms.StoreMessageInfo(mi) 128 } 129 return ms 130 } 131 return mi.MessageOf(x) 132} 133 134// Deprecated: Use Quota.ProtoReflect.Descriptor instead. 135func (*Quota) Descriptor() ([]byte, []int) { 136 return file_google_api_quota_proto_rawDescGZIP(), []int{0} 137} 138 139func (x *Quota) GetLimits() []*QuotaLimit { 140 if x != nil { 141 return x.Limits 142 } 143 return nil 144} 145 146func (x *Quota) GetMetricRules() []*MetricRule { 147 if x != nil { 148 return x.MetricRules 149 } 150 return nil 151} 152 153// Bind API methods to metrics. Binding a method to a metric causes that 154// metric's configured quota behaviors to apply to the method call. 155type MetricRule struct { 156 state protoimpl.MessageState 157 sizeCache protoimpl.SizeCache 158 unknownFields protoimpl.UnknownFields 159 160 // Selects the methods to which this rule applies. 161 // 162 // Refer to [selector][google.api.DocumentationRule.selector] for syntax details. 163 Selector string `protobuf:"bytes,1,opt,name=selector,proto3" json:"selector,omitempty"` 164 // Metrics to update when the selected methods are called, and the associated 165 // cost applied to each metric. 166 // 167 // The key of the map is the metric name, and the values are the amount 168 // increased for the metric against which the quota limits are defined. 169 // The value must not be negative. 170 MetricCosts map[string]int64 `protobuf:"bytes,2,rep,name=metric_costs,json=metricCosts,proto3" json:"metric_costs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` 171} 172 173func (x *MetricRule) Reset() { 174 *x = MetricRule{} 175 if protoimpl.UnsafeEnabled { 176 mi := &file_google_api_quota_proto_msgTypes[1] 177 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 178 ms.StoreMessageInfo(mi) 179 } 180} 181 182func (x *MetricRule) String() string { 183 return protoimpl.X.MessageStringOf(x) 184} 185 186func (*MetricRule) ProtoMessage() {} 187 188func (x *MetricRule) ProtoReflect() protoreflect.Message { 189 mi := &file_google_api_quota_proto_msgTypes[1] 190 if protoimpl.UnsafeEnabled && x != nil { 191 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 192 if ms.LoadMessageInfo() == nil { 193 ms.StoreMessageInfo(mi) 194 } 195 return ms 196 } 197 return mi.MessageOf(x) 198} 199 200// Deprecated: Use MetricRule.ProtoReflect.Descriptor instead. 201func (*MetricRule) Descriptor() ([]byte, []int) { 202 return file_google_api_quota_proto_rawDescGZIP(), []int{1} 203} 204 205func (x *MetricRule) GetSelector() string { 206 if x != nil { 207 return x.Selector 208 } 209 return "" 210} 211 212func (x *MetricRule) GetMetricCosts() map[string]int64 { 213 if x != nil { 214 return x.MetricCosts 215 } 216 return nil 217} 218 219// `QuotaLimit` defines a specific limit that applies over a specified duration 220// for a limit type. There can be at most one limit for a duration and limit 221// type combination defined within a `QuotaGroup`. 222type QuotaLimit struct { 223 state protoimpl.MessageState 224 sizeCache protoimpl.SizeCache 225 unknownFields protoimpl.UnknownFields 226 227 // Name of the quota limit. 228 // 229 // The name must be provided, and it must be unique within the service. The 230 // name can only include alphanumeric characters as well as '-'. 231 // 232 // The maximum length of the limit name is 64 characters. 233 Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"` 234 // Optional. User-visible, extended description for this quota limit. 235 // Should be used only when more context is needed to understand this limit 236 // than provided by the limit's display name (see: `display_name`). 237 Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` 238 // Default number of tokens that can be consumed during the specified 239 // duration. This is the number of tokens assigned when a client 240 // application developer activates the service for his/her project. 241 // 242 // Specifying a value of 0 will block all requests. This can be used if you 243 // are provisioning quota to selected consumers and blocking others. 244 // Similarly, a value of -1 will indicate an unlimited quota. No other 245 // negative values are allowed. 246 // 247 // Used by group-based quotas only. 248 DefaultLimit int64 `protobuf:"varint,3,opt,name=default_limit,json=defaultLimit,proto3" json:"default_limit,omitempty"` 249 // Maximum number of tokens that can be consumed during the specified 250 // duration. Client application developers can override the default limit up 251 // to this maximum. If specified, this value cannot be set to a value less 252 // than the default limit. If not specified, it is set to the default limit. 253 // 254 // To allow clients to apply overrides with no upper bound, set this to -1, 255 // indicating unlimited maximum quota. 256 // 257 // Used by group-based quotas only. 258 MaxLimit int64 `protobuf:"varint,4,opt,name=max_limit,json=maxLimit,proto3" json:"max_limit,omitempty"` 259 // Free tier value displayed in the Developers Console for this limit. 260 // The free tier is the number of tokens that will be subtracted from the 261 // billed amount when billing is enabled. 262 // This field can only be set on a limit with duration "1d", in a billable 263 // group; it is invalid on any other limit. If this field is not set, it 264 // defaults to 0, indicating that there is no free tier for this service. 265 // 266 // Used by group-based quotas only. 267 FreeTier int64 `protobuf:"varint,7,opt,name=free_tier,json=freeTier,proto3" json:"free_tier,omitempty"` 268 // Duration of this limit in textual notation. Example: "100s", "24h", "1d". 269 // For duration longer than a day, only multiple of days is supported. We 270 // support only "100s" and "1d" for now. Additional support will be added in 271 // the future. "0" indicates indefinite duration. 272 // 273 // Used by group-based quotas only. 274 Duration string `protobuf:"bytes,5,opt,name=duration,proto3" json:"duration,omitempty"` 275 // The name of the metric this quota limit applies to. The quota limits with 276 // the same metric will be checked together during runtime. The metric must be 277 // defined within the service config. 278 Metric string `protobuf:"bytes,8,opt,name=metric,proto3" json:"metric,omitempty"` 279 // Specify the unit of the quota limit. It uses the same syntax as 280 // [Metric.unit][]. The supported unit kinds are determined by the quota 281 // backend system. 282 // 283 // Here are some examples: 284 // * "1/min/{project}" for quota per minute per project. 285 // 286 // Note: the order of unit components is insignificant. 287 // The "1" at the beginning is required to follow the metric unit syntax. 288 Unit string `protobuf:"bytes,9,opt,name=unit,proto3" json:"unit,omitempty"` 289 // Tiered limit values. You must specify this as a key:value pair, with an 290 // integer value that is the maximum number of requests allowed for the 291 // specified unit. Currently only STANDARD is supported. 292 Values map[string]int64 `protobuf:"bytes,10,rep,name=values,proto3" json:"values,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` 293 // User-visible display name for this limit. 294 // Optional. If not set, the UI will provide a default display name based on 295 // the quota configuration. This field can be used to override the default 296 // display name generated from the configuration. 297 DisplayName string `protobuf:"bytes,12,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` 298} 299 300func (x *QuotaLimit) Reset() { 301 *x = QuotaLimit{} 302 if protoimpl.UnsafeEnabled { 303 mi := &file_google_api_quota_proto_msgTypes[2] 304 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 305 ms.StoreMessageInfo(mi) 306 } 307} 308 309func (x *QuotaLimit) String() string { 310 return protoimpl.X.MessageStringOf(x) 311} 312 313func (*QuotaLimit) ProtoMessage() {} 314 315func (x *QuotaLimit) ProtoReflect() protoreflect.Message { 316 mi := &file_google_api_quota_proto_msgTypes[2] 317 if protoimpl.UnsafeEnabled && x != nil { 318 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 319 if ms.LoadMessageInfo() == nil { 320 ms.StoreMessageInfo(mi) 321 } 322 return ms 323 } 324 return mi.MessageOf(x) 325} 326 327// Deprecated: Use QuotaLimit.ProtoReflect.Descriptor instead. 328func (*QuotaLimit) Descriptor() ([]byte, []int) { 329 return file_google_api_quota_proto_rawDescGZIP(), []int{2} 330} 331 332func (x *QuotaLimit) GetName() string { 333 if x != nil { 334 return x.Name 335 } 336 return "" 337} 338 339func (x *QuotaLimit) GetDescription() string { 340 if x != nil { 341 return x.Description 342 } 343 return "" 344} 345 346func (x *QuotaLimit) GetDefaultLimit() int64 { 347 if x != nil { 348 return x.DefaultLimit 349 } 350 return 0 351} 352 353func (x *QuotaLimit) GetMaxLimit() int64 { 354 if x != nil { 355 return x.MaxLimit 356 } 357 return 0 358} 359 360func (x *QuotaLimit) GetFreeTier() int64 { 361 if x != nil { 362 return x.FreeTier 363 } 364 return 0 365} 366 367func (x *QuotaLimit) GetDuration() string { 368 if x != nil { 369 return x.Duration 370 } 371 return "" 372} 373 374func (x *QuotaLimit) GetMetric() string { 375 if x != nil { 376 return x.Metric 377 } 378 return "" 379} 380 381func (x *QuotaLimit) GetUnit() string { 382 if x != nil { 383 return x.Unit 384 } 385 return "" 386} 387 388func (x *QuotaLimit) GetValues() map[string]int64 { 389 if x != nil { 390 return x.Values 391 } 392 return nil 393} 394 395func (x *QuotaLimit) GetDisplayName() string { 396 if x != nil { 397 return x.DisplayName 398 } 399 return "" 400} 401 402var File_google_api_quota_proto protoreflect.FileDescriptor 403 404var file_google_api_quota_proto_rawDesc = []byte{ 405 0x0a, 0x16, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x71, 0x75, 0x6f, 406 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 407 0x2e, 0x61, 0x70, 0x69, 0x22, 0x72, 0x0a, 0x05, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x12, 0x2e, 0x0a, 408 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 409 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x61, 410 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x39, 0x0a, 411 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x04, 0x20, 412 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 413 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x0b, 0x6d, 0x65, 0x74, 414 0x72, 0x69, 0x63, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x22, 0xb4, 0x01, 0x0a, 0x0a, 0x4d, 0x65, 0x74, 415 0x72, 0x69, 0x63, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 416 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 417 0x74, 0x6f, 0x72, 0x12, 0x4a, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x63, 0x6f, 418 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 419 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x75, 0x6c, 420 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x43, 0x6f, 0x73, 0x74, 0x73, 0x45, 0x6e, 0x74, 421 0x72, 0x79, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x43, 0x6f, 0x73, 0x74, 0x73, 0x1a, 422 0x3e, 0x0a, 0x10, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x43, 0x6f, 0x73, 0x74, 0x73, 0x45, 0x6e, 423 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 424 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 425 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 426 0x83, 0x03, 0x0a, 0x0a, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 427 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 428 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 429 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 430 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 431 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x64, 0x65, 0x66, 432 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 433 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x61, 434 0x78, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x72, 0x65, 0x65, 0x5f, 0x74, 435 0x69, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x72, 0x65, 0x65, 0x54, 436 0x69, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 437 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 438 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 439 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 440 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x12, 0x3a, 0x0a, 0x06, 0x76, 441 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 442 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x4c, 0x69, 443 0x6d, 0x69, 0x74, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 444 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 445 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 446 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x39, 0x0a, 0x0b, 0x56, 0x61, 447 0x6c, 0x75, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 448 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 449 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 450 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x6c, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 451 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x0a, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x50, 0x72, 452 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x45, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 453 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 454 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x61, 0x70, 0x69, 455 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x3b, 0x73, 456 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0xa2, 0x02, 0x04, 0x47, 457 0x41, 0x50, 0x49, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 458} 459 460var ( 461 file_google_api_quota_proto_rawDescOnce sync.Once 462 file_google_api_quota_proto_rawDescData = file_google_api_quota_proto_rawDesc 463) 464 465func file_google_api_quota_proto_rawDescGZIP() []byte { 466 file_google_api_quota_proto_rawDescOnce.Do(func() { 467 file_google_api_quota_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_api_quota_proto_rawDescData) 468 }) 469 return file_google_api_quota_proto_rawDescData 470} 471 472var file_google_api_quota_proto_msgTypes = make([]protoimpl.MessageInfo, 5) 473var file_google_api_quota_proto_goTypes = []interface{}{ 474 (*Quota)(nil), // 0: google.api.Quota 475 (*MetricRule)(nil), // 1: google.api.MetricRule 476 (*QuotaLimit)(nil), // 2: google.api.QuotaLimit 477 nil, // 3: google.api.MetricRule.MetricCostsEntry 478 nil, // 4: google.api.QuotaLimit.ValuesEntry 479} 480var file_google_api_quota_proto_depIdxs = []int32{ 481 2, // 0: google.api.Quota.limits:type_name -> google.api.QuotaLimit 482 1, // 1: google.api.Quota.metric_rules:type_name -> google.api.MetricRule 483 3, // 2: google.api.MetricRule.metric_costs:type_name -> google.api.MetricRule.MetricCostsEntry 484 4, // 3: google.api.QuotaLimit.values:type_name -> google.api.QuotaLimit.ValuesEntry 485 4, // [4:4] is the sub-list for method output_type 486 4, // [4:4] is the sub-list for method input_type 487 4, // [4:4] is the sub-list for extension type_name 488 4, // [4:4] is the sub-list for extension extendee 489 0, // [0:4] is the sub-list for field type_name 490} 491 492func init() { file_google_api_quota_proto_init() } 493func file_google_api_quota_proto_init() { 494 if File_google_api_quota_proto != nil { 495 return 496 } 497 if !protoimpl.UnsafeEnabled { 498 file_google_api_quota_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 499 switch v := v.(*Quota); i { 500 case 0: 501 return &v.state 502 case 1: 503 return &v.sizeCache 504 case 2: 505 return &v.unknownFields 506 default: 507 return nil 508 } 509 } 510 file_google_api_quota_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 511 switch v := v.(*MetricRule); i { 512 case 0: 513 return &v.state 514 case 1: 515 return &v.sizeCache 516 case 2: 517 return &v.unknownFields 518 default: 519 return nil 520 } 521 } 522 file_google_api_quota_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 523 switch v := v.(*QuotaLimit); i { 524 case 0: 525 return &v.state 526 case 1: 527 return &v.sizeCache 528 case 2: 529 return &v.unknownFields 530 default: 531 return nil 532 } 533 } 534 } 535 type x struct{} 536 out := protoimpl.TypeBuilder{ 537 File: protoimpl.DescBuilder{ 538 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 539 RawDescriptor: file_google_api_quota_proto_rawDesc, 540 NumEnums: 0, 541 NumMessages: 5, 542 NumExtensions: 0, 543 NumServices: 0, 544 }, 545 GoTypes: file_google_api_quota_proto_goTypes, 546 DependencyIndexes: file_google_api_quota_proto_depIdxs, 547 MessageInfos: file_google_api_quota_proto_msgTypes, 548 }.Build() 549 File_google_api_quota_proto = out.File 550 file_google_api_quota_proto_rawDesc = nil 551 file_google_api_quota_proto_goTypes = nil 552 file_google_api_quota_proto_depIdxs = nil 553} 554