public final class Quota extends GeneratedMessageV3 implements QuotaOrBuilder
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
Protobuf type google.api.Quota
Inherited Members
com.google.protobuf.GeneratedMessageV3.<ListT>makeMutableCopy(ListT)
com.google.protobuf.GeneratedMessageV3.<ListT>makeMutableCopy(ListT,int)
com.google.protobuf.GeneratedMessageV3.<T>emptyList(java.lang.Class<T>)
Static Fields
LIMITS_FIELD_NUMBER
public static final int LIMITS_FIELD_NUMBER
Field Value |
---|
Type | Description |
int | |
METRIC_RULES_FIELD_NUMBER
public static final int METRIC_RULES_FIELD_NUMBER
Field Value |
---|
Type | Description |
int | |
Static Methods
getDefaultInstance()
public static Quota getDefaultInstance()
Returns |
---|
Type | Description |
Quota | |
getDescriptor()
public static final Descriptors.Descriptor getDescriptor()
newBuilder()
public static Quota.Builder newBuilder()
newBuilder(Quota prototype)
public static Quota.Builder newBuilder(Quota prototype)
Parameter |
---|
Name | Description |
prototype | Quota
|
public static Quota parseDelimitedFrom(InputStream input)
Returns |
---|
Type | Description |
Quota | |
public static Quota parseDelimitedFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
Returns |
---|
Type | Description |
Quota | |
parseFrom(byte[] data)
public static Quota parseFrom(byte[] data)
Parameter |
---|
Name | Description |
data | byte[]
|
Returns |
---|
Type | Description |
Quota | |
parseFrom(byte[] data, ExtensionRegistryLite extensionRegistry)
public static Quota parseFrom(byte[] data, ExtensionRegistryLite extensionRegistry)
Returns |
---|
Type | Description |
Quota | |
parseFrom(ByteString data)
public static Quota parseFrom(ByteString data)
Returns |
---|
Type | Description |
Quota | |
parseFrom(ByteString data, ExtensionRegistryLite extensionRegistry)
public static Quota parseFrom(ByteString data, ExtensionRegistryLite extensionRegistry)
Returns |
---|
Type | Description |
Quota | |
public static Quota parseFrom(CodedInputStream input)
Returns |
---|
Type | Description |
Quota | |
public static Quota parseFrom(CodedInputStream input, ExtensionRegistryLite extensionRegistry)
Returns |
---|
Type | Description |
Quota | |
public static Quota parseFrom(InputStream input)
Returns |
---|
Type | Description |
Quota | |
public static Quota parseFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
Returns |
---|
Type | Description |
Quota | |
parseFrom(ByteBuffer data)
public static Quota parseFrom(ByteBuffer data)
Returns |
---|
Type | Description |
Quota | |
parseFrom(ByteBuffer data, ExtensionRegistryLite extensionRegistry)
public static Quota parseFrom(ByteBuffer data, ExtensionRegistryLite extensionRegistry)
Returns |
---|
Type | Description |
Quota | |
parser()
public static Parser<Quota> parser()
Methods
equals(Object obj)
public boolean equals(Object obj)
Parameter |
---|
Name | Description |
obj | Object
|
Overrides
getDefaultInstanceForType()
public Quota getDefaultInstanceForType()
Returns |
---|
Type | Description |
Quota | |
getLimits(int index)
public QuotaLimit getLimits(int index)
List of QuotaLimit definitions for the service.
repeated .google.api.QuotaLimit limits = 3;
Parameter |
---|
Name | Description |
index | int
|
getLimitsCount()
public int getLimitsCount()
List of QuotaLimit definitions for the service.
repeated .google.api.QuotaLimit limits = 3;
Returns |
---|
Type | Description |
int | |
getLimitsList()
public List<QuotaLimit> getLimitsList()
List of QuotaLimit definitions for the service.
repeated .google.api.QuotaLimit limits = 3;
getLimitsOrBuilder(int index)
public QuotaLimitOrBuilder getLimitsOrBuilder(int index)
List of QuotaLimit definitions for the service.
repeated .google.api.QuotaLimit limits = 3;
Parameter |
---|
Name | Description |
index | int
|
getLimitsOrBuilderList()
public List<? extends QuotaLimitOrBuilder> getLimitsOrBuilderList()
List of QuotaLimit definitions for the service.
repeated .google.api.QuotaLimit limits = 3;
Returns |
---|
Type | Description |
List<? extends com.google.api.QuotaLimitOrBuilder> | |
getMetricRules(int index)
public MetricRule getMetricRules(int index)
List of MetricRule definitions, each one mapping a selected method to one
or more metrics.
repeated .google.api.MetricRule metric_rules = 4;
Parameter |
---|
Name | Description |
index | int
|
getMetricRulesCount()
public int getMetricRulesCount()
List of MetricRule definitions, each one mapping a selected method to one
or more metrics.
repeated .google.api.MetricRule metric_rules = 4;
Returns |
---|
Type | Description |
int | |
getMetricRulesList()
public List<MetricRule> getMetricRulesList()
List of MetricRule definitions, each one mapping a selected method to one
or more metrics.
repeated .google.api.MetricRule metric_rules = 4;
getMetricRulesOrBuilder(int index)
public MetricRuleOrBuilder getMetricRulesOrBuilder(int index)
List of MetricRule definitions, each one mapping a selected method to one
or more metrics.
repeated .google.api.MetricRule metric_rules = 4;
Parameter |
---|
Name | Description |
index | int
|
getMetricRulesOrBuilderList()
public List<? extends MetricRuleOrBuilder> getMetricRulesOrBuilderList()
List of MetricRule definitions, each one mapping a selected method to one
or more metrics.
repeated .google.api.MetricRule metric_rules = 4;
Returns |
---|
Type | Description |
List<? extends com.google.api.MetricRuleOrBuilder> | |
getParserForType()
public Parser<Quota> getParserForType()
Overrides
getSerializedSize()
public int getSerializedSize()
Returns |
---|
Type | Description |
int | |
Overrides
hashCode()
Returns |
---|
Type | Description |
int | |
Overrides
internalGetFieldAccessorTable()
protected GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
Overrides
isInitialized()
public final boolean isInitialized()
Overrides
newBuilderForType()
public Quota.Builder newBuilderForType()
newBuilderForType(GeneratedMessageV3.BuilderParent parent)
protected Quota.Builder newBuilderForType(GeneratedMessageV3.BuilderParent parent)
Overrides
newInstance(GeneratedMessageV3.UnusedPrivateParameter unused)
protected Object newInstance(GeneratedMessageV3.UnusedPrivateParameter unused)
Overrides
toBuilder()
public Quota.Builder toBuilder()
writeTo(CodedOutputStream output)
public void writeTo(CodedOutputStream output)
Overrides