Class Quota.Builder

java.lang.Object
com.google.protobuf.AbstractMessageLite.Builder
com.google.protobuf.AbstractMessage.Builder<BuilderType>
com.google.protobuf.GeneratedMessageV3.Builder<Quota.Builder>
com.google.api.Quota.Builder
All Implemented Interfaces:
QuotaOrBuilder, com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, Cloneable
Enclosing class:
Quota

public static final class Quota.Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Quota.Builder> 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
  • Method Details

    • getDescriptor

      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
    • internalGetFieldAccessorTable

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      Specified by:
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3.Builder<Quota.Builder>
    • clear

      public Quota.Builder clear()
      Specified by:
      clear in interface com.google.protobuf.Message.Builder
      Specified by:
      clear in interface com.google.protobuf.MessageLite.Builder
      Overrides:
      clear in class com.google.protobuf.GeneratedMessageV3.Builder<Quota.Builder>
    • getDescriptorForType

      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
      Specified by:
      getDescriptorForType in interface com.google.protobuf.Message.Builder
      Specified by:
      getDescriptorForType in interface com.google.protobuf.MessageOrBuilder
      Overrides:
      getDescriptorForType in class com.google.protobuf.GeneratedMessageV3.Builder<Quota.Builder>
    • getDefaultInstanceForType

      public Quota getDefaultInstanceForType()
      Specified by:
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      Specified by:
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
    • build

      public Quota build()
      Specified by:
      build in interface com.google.protobuf.Message.Builder
      Specified by:
      build in interface com.google.protobuf.MessageLite.Builder
    • buildPartial

      public Quota buildPartial()
      Specified by:
      buildPartial in interface com.google.protobuf.Message.Builder
      Specified by:
      buildPartial in interface com.google.protobuf.MessageLite.Builder
    • clone

      public Quota.Builder clone()
      Specified by:
      clone in interface com.google.protobuf.Message.Builder
      Specified by:
      clone in interface com.google.protobuf.MessageLite.Builder
      Overrides:
      clone in class com.google.protobuf.GeneratedMessageV3.Builder<Quota.Builder>
    • setField

      public Quota.Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, Object value)
      Specified by:
      setField in interface com.google.protobuf.Message.Builder
      Overrides:
      setField in class com.google.protobuf.GeneratedMessageV3.Builder<Quota.Builder>
    • clearField

      public Quota.Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
      Specified by:
      clearField in interface com.google.protobuf.Message.Builder
      Overrides:
      clearField in class com.google.protobuf.GeneratedMessageV3.Builder<Quota.Builder>
    • clearOneof

      public Quota.Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
      Specified by:
      clearOneof in interface com.google.protobuf.Message.Builder
      Overrides:
      clearOneof in class com.google.protobuf.GeneratedMessageV3.Builder<Quota.Builder>
    • setRepeatedField

      public Quota.Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, Object value)
      Specified by:
      setRepeatedField in interface com.google.protobuf.Message.Builder
      Overrides:
      setRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<Quota.Builder>
    • addRepeatedField

      public Quota.Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, Object value)
      Specified by:
      addRepeatedField in interface com.google.protobuf.Message.Builder
      Overrides:
      addRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<Quota.Builder>
    • mergeFrom

      public Quota.Builder mergeFrom(com.google.protobuf.Message other)
      Specified by:
      mergeFrom in interface com.google.protobuf.Message.Builder
      Overrides:
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<Quota.Builder>
    • mergeFrom

      public Quota.Builder mergeFrom(Quota other)
    • isInitialized

      public final boolean isInitialized()
      Specified by:
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      Overrides:
      isInitialized in class com.google.protobuf.GeneratedMessageV3.Builder<Quota.Builder>
    • mergeFrom

      public Quota.Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Specified by:
      mergeFrom in interface com.google.protobuf.Message.Builder
      Specified by:
      mergeFrom in interface com.google.protobuf.MessageLite.Builder
      Overrides:
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<Quota.Builder>
      Throws:
      IOException
    • getLimitsList

      public List<QuotaLimit> getLimitsList()
       List of `QuotaLimit` definitions for the service.
       
      repeated .google.api.QuotaLimit limits = 3;
      Specified by:
      getLimitsList in interface QuotaOrBuilder
    • getLimitsCount

      public int getLimitsCount()
       List of `QuotaLimit` definitions for the service.
       
      repeated .google.api.QuotaLimit limits = 3;
      Specified by:
      getLimitsCount in interface QuotaOrBuilder
    • getLimits

      public QuotaLimit getLimits(int index)
       List of `QuotaLimit` definitions for the service.
       
      repeated .google.api.QuotaLimit limits = 3;
      Specified by:
      getLimits in interface QuotaOrBuilder
    • setLimits

      public Quota.Builder setLimits(int index, QuotaLimit value)
       List of `QuotaLimit` definitions for the service.
       
      repeated .google.api.QuotaLimit limits = 3;
    • setLimits

      public Quota.Builder setLimits(int index, QuotaLimit.Builder builderForValue)
       List of `QuotaLimit` definitions for the service.
       
      repeated .google.api.QuotaLimit limits = 3;
    • addLimits

      public Quota.Builder addLimits(QuotaLimit value)
       List of `QuotaLimit` definitions for the service.
       
      repeated .google.api.QuotaLimit limits = 3;
    • addLimits

      public Quota.Builder addLimits(int index, QuotaLimit value)
       List of `QuotaLimit` definitions for the service.
       
      repeated .google.api.QuotaLimit limits = 3;
    • addLimits

      public Quota.Builder addLimits(QuotaLimit.Builder builderForValue)
       List of `QuotaLimit` definitions for the service.
       
      repeated .google.api.QuotaLimit limits = 3;
    • addLimits

      public Quota.Builder addLimits(int index, QuotaLimit.Builder builderForValue)
       List of `QuotaLimit` definitions for the service.
       
      repeated .google.api.QuotaLimit limits = 3;
    • addAllLimits

      public Quota.Builder addAllLimits(Iterable<? extends QuotaLimit> values)
       List of `QuotaLimit` definitions for the service.
       
      repeated .google.api.QuotaLimit limits = 3;
    • clearLimits

      public Quota.Builder clearLimits()
       List of `QuotaLimit` definitions for the service.
       
      repeated .google.api.QuotaLimit limits = 3;
    • removeLimits

      public Quota.Builder removeLimits(int index)
       List of `QuotaLimit` definitions for the service.
       
      repeated .google.api.QuotaLimit limits = 3;
    • getLimitsBuilder

      public QuotaLimit.Builder getLimitsBuilder(int index)
       List of `QuotaLimit` definitions for the service.
       
      repeated .google.api.QuotaLimit limits = 3;
    • getLimitsOrBuilder

      public QuotaLimitOrBuilder getLimitsOrBuilder(int index)
       List of `QuotaLimit` definitions for the service.
       
      repeated .google.api.QuotaLimit limits = 3;
      Specified by:
      getLimitsOrBuilder in interface QuotaOrBuilder
    • getLimitsOrBuilderList

      public List<? extends QuotaLimitOrBuilder> getLimitsOrBuilderList()
       List of `QuotaLimit` definitions for the service.
       
      repeated .google.api.QuotaLimit limits = 3;
      Specified by:
      getLimitsOrBuilderList in interface QuotaOrBuilder
    • addLimitsBuilder

      public QuotaLimit.Builder addLimitsBuilder()
       List of `QuotaLimit` definitions for the service.
       
      repeated .google.api.QuotaLimit limits = 3;
    • addLimitsBuilder

      public QuotaLimit.Builder addLimitsBuilder(int index)
       List of `QuotaLimit` definitions for the service.
       
      repeated .google.api.QuotaLimit limits = 3;
    • getLimitsBuilderList

      public List<QuotaLimit.Builder> getLimitsBuilderList()
       List of `QuotaLimit` definitions for the service.
       
      repeated .google.api.QuotaLimit limits = 3;
    • 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;
      Specified by:
      getMetricRulesList in interface QuotaOrBuilder
    • 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;
      Specified by:
      getMetricRulesCount in interface QuotaOrBuilder
    • getMetricRules

      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;
      Specified by:
      getMetricRules in interface QuotaOrBuilder
    • setMetricRules

      public Quota.Builder setMetricRules(int index, MetricRule value)
       List of `MetricRule` definitions, each one mapping a selected method to one
       or more metrics.
       
      repeated .google.api.MetricRule metric_rules = 4;
    • setMetricRules

      public Quota.Builder setMetricRules(int index, MetricRule.Builder builderForValue)
       List of `MetricRule` definitions, each one mapping a selected method to one
       or more metrics.
       
      repeated .google.api.MetricRule metric_rules = 4;
    • addMetricRules

      public Quota.Builder addMetricRules(MetricRule value)
       List of `MetricRule` definitions, each one mapping a selected method to one
       or more metrics.
       
      repeated .google.api.MetricRule metric_rules = 4;
    • addMetricRules

      public Quota.Builder addMetricRules(int index, MetricRule value)
       List of `MetricRule` definitions, each one mapping a selected method to one
       or more metrics.
       
      repeated .google.api.MetricRule metric_rules = 4;
    • addMetricRules

      public Quota.Builder addMetricRules(MetricRule.Builder builderForValue)
       List of `MetricRule` definitions, each one mapping a selected method to one
       or more metrics.
       
      repeated .google.api.MetricRule metric_rules = 4;
    • addMetricRules

      public Quota.Builder addMetricRules(int index, MetricRule.Builder builderForValue)
       List of `MetricRule` definitions, each one mapping a selected method to one
       or more metrics.
       
      repeated .google.api.MetricRule metric_rules = 4;
    • addAllMetricRules

      public Quota.Builder addAllMetricRules(Iterable<? extends MetricRule> values)
       List of `MetricRule` definitions, each one mapping a selected method to one
       or more metrics.
       
      repeated .google.api.MetricRule metric_rules = 4;
    • clearMetricRules

      public Quota.Builder clearMetricRules()
       List of `MetricRule` definitions, each one mapping a selected method to one
       or more metrics.
       
      repeated .google.api.MetricRule metric_rules = 4;
    • removeMetricRules

      public Quota.Builder removeMetricRules(int index)
       List of `MetricRule` definitions, each one mapping a selected method to one
       or more metrics.
       
      repeated .google.api.MetricRule metric_rules = 4;
    • getMetricRulesBuilder

      public MetricRule.Builder getMetricRulesBuilder(int index)
       List of `MetricRule` definitions, each one mapping a selected method to one
       or more metrics.
       
      repeated .google.api.MetricRule metric_rules = 4;
    • getMetricRulesOrBuilder

      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;
      Specified by:
      getMetricRulesOrBuilder in interface QuotaOrBuilder
    • 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;
      Specified by:
      getMetricRulesOrBuilderList in interface QuotaOrBuilder
    • addMetricRulesBuilder

      public MetricRule.Builder addMetricRulesBuilder()
       List of `MetricRule` definitions, each one mapping a selected method to one
       or more metrics.
       
      repeated .google.api.MetricRule metric_rules = 4;
    • addMetricRulesBuilder

      public MetricRule.Builder addMetricRulesBuilder(int index)
       List of `MetricRule` definitions, each one mapping a selected method to one
       or more metrics.
       
      repeated .google.api.MetricRule metric_rules = 4;
    • getMetricRulesBuilderList

      public List<MetricRule.Builder> getMetricRulesBuilderList()
       List of `MetricRule` definitions, each one mapping a selected method to one
       or more metrics.
       
      repeated .google.api.MetricRule metric_rules = 4;
    • setUnknownFields

      public final Quota.Builder setUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      Specified by:
      setUnknownFields in interface com.google.protobuf.Message.Builder
      Overrides:
      setUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<Quota.Builder>
    • mergeUnknownFields

      public final Quota.Builder mergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      Specified by:
      mergeUnknownFields in interface com.google.protobuf.Message.Builder
      Overrides:
      mergeUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<Quota.Builder>