Class Quota (2.27.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
TypeDescription
int

METRIC_RULES_FIELD_NUMBER

public static final int METRIC_RULES_FIELD_NUMBER
Field Value
TypeDescription
int

Static Methods

getDefaultInstance()

public static Quota getDefaultInstance()
Returns
TypeDescription
Quota

getDescriptor()

public static final Descriptors.Descriptor getDescriptor()
Returns
TypeDescription
Descriptor

newBuilder()

public static Quota.Builder newBuilder()
Returns
TypeDescription
Quota.Builder

newBuilder(Quota prototype)

public static Quota.Builder newBuilder(Quota prototype)
Parameter
NameDescription
prototypeQuota
Returns
TypeDescription
Quota.Builder

parseDelimitedFrom(InputStream input)

public static Quota parseDelimitedFrom(InputStream input)
Parameter
NameDescription
inputInputStream
Returns
TypeDescription
Quota
Exceptions
TypeDescription
IOException

parseDelimitedFrom(InputStream input, ExtensionRegistryLite extensionRegistry)

public static Quota parseDelimitedFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
Parameters
NameDescription
inputInputStream
extensionRegistryExtensionRegistryLite
Returns
TypeDescription
Quota
Exceptions
TypeDescription
IOException

parseFrom(byte[] data)

public static Quota parseFrom(byte[] data)
Parameter
NameDescription
databyte[]
Returns
TypeDescription
Quota
Exceptions
TypeDescription
InvalidProtocolBufferException

parseFrom(byte[] data, ExtensionRegistryLite extensionRegistry)

public static Quota parseFrom(byte[] data, ExtensionRegistryLite extensionRegistry)
Parameters
NameDescription
databyte[]
extensionRegistryExtensionRegistryLite
Returns
TypeDescription
Quota
Exceptions
TypeDescription
InvalidProtocolBufferException

parseFrom(ByteString data)

public static Quota parseFrom(ByteString data)
Parameter
NameDescription
dataByteString
Returns
TypeDescription
Quota
Exceptions
TypeDescription
InvalidProtocolBufferException

parseFrom(ByteString data, ExtensionRegistryLite extensionRegistry)

public static Quota parseFrom(ByteString data, ExtensionRegistryLite extensionRegistry)
Parameters
NameDescription
dataByteString
extensionRegistryExtensionRegistryLite
Returns
TypeDescription
Quota
Exceptions
TypeDescription
InvalidProtocolBufferException

parseFrom(CodedInputStream input)

public static Quota parseFrom(CodedInputStream input)
Parameter
NameDescription
inputCodedInputStream
Returns
TypeDescription
Quota
Exceptions
TypeDescription
IOException

parseFrom(CodedInputStream input, ExtensionRegistryLite extensionRegistry)

public static Quota parseFrom(CodedInputStream input, ExtensionRegistryLite extensionRegistry)
Parameters
NameDescription
inputCodedInputStream
extensionRegistryExtensionRegistryLite
Returns
TypeDescription
Quota
Exceptions
TypeDescription
IOException

parseFrom(InputStream input)

public static Quota parseFrom(InputStream input)
Parameter
NameDescription
inputInputStream
Returns
TypeDescription
Quota
Exceptions
TypeDescription
IOException

parseFrom(InputStream input, ExtensionRegistryLite extensionRegistry)

public static Quota parseFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
Parameters
NameDescription
inputInputStream
extensionRegistryExtensionRegistryLite
Returns
TypeDescription
Quota
Exceptions
TypeDescription
IOException

parseFrom(ByteBuffer data)

public static Quota parseFrom(ByteBuffer data)
Parameter
NameDescription
dataByteBuffer
Returns
TypeDescription
Quota
Exceptions
TypeDescription
InvalidProtocolBufferException

parseFrom(ByteBuffer data, ExtensionRegistryLite extensionRegistry)

public static Quota parseFrom(ByteBuffer data, ExtensionRegistryLite extensionRegistry)
Parameters
NameDescription
dataByteBuffer
extensionRegistryExtensionRegistryLite
Returns
TypeDescription
Quota
Exceptions
TypeDescription
InvalidProtocolBufferException

parser()

public static Parser<Quota> parser()
Returns
TypeDescription
Parser<Quota>

Methods

equals(Object obj)

public boolean equals(Object obj)
Parameter
NameDescription
objObject
Returns
TypeDescription
boolean
Overrides

getDefaultInstanceForType()

public Quota getDefaultInstanceForType()
Returns
TypeDescription
Quota

getLimits(int index)

public QuotaLimit getLimits(int index)

List of QuotaLimit definitions for the service.

repeated .google.api.QuotaLimit limits = 3;

Parameter
NameDescription
indexint
Returns
TypeDescription
QuotaLimit

getLimitsCount()

public int getLimitsCount()

List of QuotaLimit definitions for the service.

repeated .google.api.QuotaLimit limits = 3;

Returns
TypeDescription
int

getLimitsList()

public List<QuotaLimit> getLimitsList()

List of QuotaLimit definitions for the service.

repeated .google.api.QuotaLimit limits = 3;

Returns
TypeDescription
List<QuotaLimit>

getLimitsOrBuilder(int index)

public QuotaLimitOrBuilder getLimitsOrBuilder(int index)

List of QuotaLimit definitions for the service.

repeated .google.api.QuotaLimit limits = 3;

Parameter
NameDescription
indexint
Returns
TypeDescription
QuotaLimitOrBuilder

getLimitsOrBuilderList()

public List<? extends QuotaLimitOrBuilder> getLimitsOrBuilderList()

List of QuotaLimit definitions for the service.

repeated .google.api.QuotaLimit limits = 3;

Returns
TypeDescription
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
NameDescription
indexint
Returns
TypeDescription
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
TypeDescription
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
TypeDescription
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
NameDescription
indexint
Returns
TypeDescription
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
TypeDescription
List<? extends com.google.api.MetricRuleOrBuilder>

getParserForType()

public Parser<Quota> getParserForType()
Returns
TypeDescription
Parser<Quota>
Overrides

getSerializedSize()

public int getSerializedSize()
Returns
TypeDescription
int
Overrides

hashCode()

public int hashCode()
Returns
TypeDescription
int
Overrides

internalGetFieldAccessorTable()

protected GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
Returns
TypeDescription
FieldAccessorTable
Overrides

isInitialized()

public final boolean isInitialized()
Returns
TypeDescription
boolean
Overrides

newBuilderForType()

public Quota.Builder newBuilderForType()
Returns
TypeDescription
Quota.Builder

newBuilderForType(GeneratedMessageV3.BuilderParent parent)

protected Quota.Builder newBuilderForType(GeneratedMessageV3.BuilderParent parent)
Parameter
NameDescription
parentBuilderParent
Returns
TypeDescription
Quota.Builder
Overrides

newInstance(GeneratedMessageV3.UnusedPrivateParameter unused)

protected Object newInstance(GeneratedMessageV3.UnusedPrivateParameter unused)
Parameter
NameDescription
unusedUnusedPrivateParameter
Returns
TypeDescription
Object
Overrides

toBuilder()

public Quota.Builder toBuilder()
Returns
TypeDescription
Quota.Builder

writeTo(CodedOutputStream output)

public void writeTo(CodedOutputStream output)
Parameter
NameDescription
outputCodedOutputStream
Overrides
Exceptions
TypeDescription
IOException