Class Quota.Builder

  • All Implemented Interfaces:
    QuotaOrBuilder, com.google.protobuf.GeneratedMessage.ExtendableMessageOrBuilder<com.google.protobuf.GeneratedMessageV3>, com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, java.lang.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 Detail

      • getDescriptor

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

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
        Overrides:
        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.GeneratedMessage.Builder<Quota.Builder>
      • getDefaultInstanceForType

        public Quota getDefaultInstanceForType()
        Specified by:
        getDefaultInstanceForType in interface com.google.protobuf.GeneratedMessage.ExtendableMessageOrBuilder<com.google.protobuf.GeneratedMessageV3>
        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,
                                      java.lang.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,
                                              java.lang.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,
                                              java.lang.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>
      • isInitialized

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

        public Quota.Builder mergeFrom​(com.google.protobuf.CodedInputStream input,
                                       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                throws java.io.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:
        java.io.IOException
      • getLimitsList

        public java.util.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​(java.lang.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;
      • 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 java.util.List<QuotaLimit.Builder> getLimitsBuilderList()
         List of QuotaLimit definitions for the service.
         
        repeated .google.api.QuotaLimit limits = 3;
      • getMetricRulesList

        public java.util.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​(java.lang.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 java.util.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 java.util.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>