Class Quota (2.2.0)
Version 2.2.0keyboard_arrow_down
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
Namespace
Google.Api
Assembly
Google.Api.CommonProtos.dll
Constructors
Quota()
Quota(Quota)
public Quota(Quota other)
Parameter
Name
Description
other
Quota
Fields
LimitsFieldNumber
public const int LimitsFieldNumber = 3
Field number for the "limits" field.
Field Value
Type
Description
Int32
MetricRulesFieldNumber
public const int MetricRulesFieldNumber = 4
Field number for the "metric_rules" field.
Field Value
Type
Description
Int32
Properties
Descriptor
public static Protobuf.Reflection.MessageDescriptor Descriptor { get; }
Limits
public Protobuf.Collections.RepeatedField<QuotaLimit> Limits { get; }
List of QuotaLimit
definitions for the service.
MetricRules
public Protobuf.Collections.RepeatedField<MetricRule> MetricRules { get; }
List of MetricRule
definitions, each one mapping a selected method to one
or more metrics.
Parser
public static Protobuf.MessageParser<Quota> Parser { get; }
Methods
CalculateSize()
public int CalculateSize()
Returns
Type
Description
Int32
Clone()
Returns
Type
Description
Quota
Equals(Quota)
public bool Equals(Quota other)
Parameter
Name
Description
other
Quota
Equals(Object)
public override bool Equals(object other)
Parameter
Name
Description
other
Object
GetHashCode()
public override int GetHashCode()
Returns
Type
Description
Int32
MergeFrom(Quota)
public void MergeFrom(Quota other)
Parameter
Name
Description
other
Quota
public void MergeFrom(Protobuf.CodedInputStream input)
ToString()
public override string ToString()
Returns
Type
Description
String
WriteTo(Protobuf.CodedOutputStream)
public void WriteTo(Protobuf.CodedOutputStream output)
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License , and code samples are licensed under the Apache 2.0 License . For details, see the Google Developers Site Policies . Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-10-10 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-10-10 UTC."],[],[]]