Class Quota (2.40.0)

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

Implements

QuotaOrBuilder

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()
Returns
Type Description
Descriptor

newBuilder()

public static Quota.Builder newBuilder()
Returns
Type Description
Quota.Builder

newBuilder(Quota prototype)

public static Quota.Builder newBuilder(Quota prototype)
Parameter
Name Description
prototype Quota
Returns
Type Description
Quota.Builder

parseDelimitedFrom(InputStream input)

public static Quota parseDelimitedFrom(InputStream input)
Parameter
Name Description
input InputStream
Returns
Type Description
Quota
Exceptions
Type Description
IOException

parseDelimitedFrom(InputStream input, ExtensionRegistryLite extensionRegistry)

public static Quota parseDelimitedFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
Parameters
Name Description
input InputStream
extensionRegistry ExtensionRegistryLite
Returns
Type Description
Quota
Exceptions
Type Description
IOException

parseFrom(byte[] data)

public static Quota parseFrom(byte[] data)
Parameter
Name Description
data byte[]
Returns
Type Description
Quota
Exceptions
Type Description
InvalidProtocolBufferException

parseFrom(byte[] data, ExtensionRegistryLite extensionRegistry)

public static Quota parseFrom(byte[] data, ExtensionRegistryLite extensionRegistry)
Parameters
Name Description
data byte[]
extensionRegistry ExtensionRegistryLite
Returns
Type Description
Quota
Exceptions
Type Description
InvalidProtocolBufferException

parseFrom(ByteString data)

public static Quota parseFrom(ByteString data)
Parameter
Name Description
data ByteString
Returns
Type Description
Quota
Exceptions
Type Description
InvalidProtocolBufferException

parseFrom(ByteString data, ExtensionRegistryLite extensionRegistry)

public static Quota parseFrom(ByteString data, ExtensionRegistryLite extensionRegistry)
Parameters
Name Description
data ByteString
extensionRegistry ExtensionRegistryLite
Returns
Type Description
Quota
Exceptions
Type Description
InvalidProtocolBufferException

parseFrom(CodedInputStream input)

public static Quota parseFrom(CodedInputStream input)
Parameter
Name Description
input CodedInputStream
Returns
Type Description
Quota
Exceptions
Type Description
IOException

parseFrom(CodedInputStream input, ExtensionRegistryLite extensionRegistry)

public static Quota parseFrom(CodedInputStream input, ExtensionRegistryLite extensionRegistry)
Parameters
Name Description
input CodedInputStream
extensionRegistry ExtensionRegistryLite
Returns
Type Description
Quota
Exceptions
Type Description
IOException

parseFrom(InputStream input)

public static Quota parseFrom(InputStream input)
Parameter
Name Description
input InputStream
Returns
Type Description
Quota
Exceptions
Type Description
IOException

parseFrom(InputStream input, ExtensionRegistryLite extensionRegistry)

public static Quota parseFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
Parameters
Name Description
input InputStream
extensionRegistry ExtensionRegistryLite
Returns
Type Description
Quota
Exceptions
Type Description
IOException

parseFrom(ByteBuffer data)

public static Quota parseFrom(ByteBuffer data)
Parameter
Name Description
data ByteBuffer
Returns
Type Description
Quota
Exceptions
Type Description
InvalidProtocolBufferException

parseFrom(ByteBuffer data, ExtensionRegistryLite extensionRegistry)

public static Quota parseFrom(ByteBuffer data, ExtensionRegistryLite extensionRegistry)
Parameters
Name Description
data ByteBuffer
extensionRegistry ExtensionRegistryLite
Returns
Type Description
Quota
Exceptions
Type Description
InvalidProtocolBufferException

parser()

public static Parser<Quota> parser()
Returns
Type Description
Parser<Quota>

Methods

equals(Object obj)

public boolean equals(Object obj)
Parameter
Name Description
obj Object
Returns
Type Description
boolean
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
Returns
Type Description
QuotaLimit

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;

Returns
Type Description
List<QuotaLimit>

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
Returns
Type Description
QuotaLimitOrBuilder

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
Returns
Type Description
MetricRule

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;

Returns
Type Description
List<MetricRule>

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
Returns
Type Description
MetricRuleOrBuilder

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()
Returns
Type Description
Parser<Quota>
Overrides

getSerializedSize()

public int getSerializedSize()
Returns
Type Description
int
Overrides

hashCode()

public int hashCode()
Returns
Type Description
int
Overrides

internalGetFieldAccessorTable()

protected GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
Returns
Type Description
FieldAccessorTable
Overrides

isInitialized()

public final boolean isInitialized()
Returns
Type Description
boolean
Overrides

newBuilderForType()

public Quota.Builder newBuilderForType()
Returns
Type Description
Quota.Builder

newBuilderForType(GeneratedMessageV3.BuilderParent parent)

protected Quota.Builder newBuilderForType(GeneratedMessageV3.BuilderParent parent)
Parameter
Name Description
parent BuilderParent
Returns
Type Description
Quota.Builder
Overrides

newInstance(GeneratedMessageV3.UnusedPrivateParameter unused)

protected Object newInstance(GeneratedMessageV3.UnusedPrivateParameter unused)
Parameter
Name Description
unused UnusedPrivateParameter
Returns
Type Description
Object
Overrides

toBuilder()

public Quota.Builder toBuilder()
Returns
Type Description
Quota.Builder

writeTo(CodedOutputStream output)

public void writeTo(CodedOutputStream output)
Parameter
Name Description
output CodedOutputStream
Overrides
Exceptions
Type Description
IOException