Class Quota (2.2.0)

public sealed class Quota : Protobuf.IMessage<Quota>, Protobuf.IBufferMessage

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

Inheritance

Object > Quota

Namespace

Google.Api

Assembly

Google.Api.CommonProtos.dll

Constructors

Quota()

public Quota()

Quota(Quota)

public Quota(Quota other)
Parameter
NameDescription
otherQuota

Fields

LimitsFieldNumber

public const int LimitsFieldNumber = 3

Field number for the "limits" field.

Field Value
TypeDescription
Int32

MetricRulesFieldNumber

public const int MetricRulesFieldNumber = 4

Field number for the "metric_rules" field.

Field Value
TypeDescription
Int32

Properties

Descriptor

public static Protobuf.Reflection.MessageDescriptor Descriptor { get; }
Property Value
TypeDescription
Protobuf.Reflection.MessageDescriptor

Limits

public Protobuf.Collections.RepeatedField<QuotaLimit> Limits { get; }

List of QuotaLimit definitions for the service.

Property Value
TypeDescription
Protobuf.Collections.RepeatedField<QuotaLimit>

MetricRules

public Protobuf.Collections.RepeatedField<MetricRule> MetricRules { get; }

List of MetricRule definitions, each one mapping a selected method to one or more metrics.

Property Value
TypeDescription
Protobuf.Collections.RepeatedField<MetricRule>

Parser

public static Protobuf.MessageParser<Quota> Parser { get; }
Property Value
TypeDescription
Protobuf.MessageParser<Quota>

Methods

CalculateSize()

public int CalculateSize()
Returns
TypeDescription
Int32

Clone()

public Quota Clone()
Returns
TypeDescription
Quota

Equals(Quota)

public bool Equals(Quota other)
Parameter
NameDescription
otherQuota
Returns
TypeDescription
Boolean

Equals(Object)

public override bool Equals(object other)
Parameter
NameDescription
otherObject
Returns
TypeDescription
Boolean

GetHashCode()

public override int GetHashCode()
Returns
TypeDescription
Int32

MergeFrom(Quota)

public void MergeFrom(Quota other)
Parameter
NameDescription
otherQuota

MergeFrom(Protobuf.CodedInputStream)

public void MergeFrom(Protobuf.CodedInputStream input)
Parameter
NameDescription
inputProtobuf.CodedInputStream

ToString()

public override string ToString()
Returns
TypeDescription
String

WriteTo(Protobuf.CodedOutputStream)

public void WriteTo(Protobuf.CodedOutputStream output)
Parameter
NameDescription
outputProtobuf.CodedOutputStream