...

Source file src/google.golang.org/genproto/googleapis/api/serviceconfig/quota.pb.go

Documentation: google.golang.org/genproto/googleapis/api/serviceconfig

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

View as plain text