Class Quota

  • All Implemented Interfaces:
    QuotaOrBuilder, com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, Serializable

    public final class Quota
    extends com.google.protobuf.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
    See Also:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  Quota.Builder
      Quota configuration helps to achieve fairness and budgeting in service usage.
      • Nested classes/interfaces inherited from class com.google.protobuf.GeneratedMessageV3

        com.google.protobuf.GeneratedMessageV3.BuilderParent, com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageType extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage,​BuilderType extends com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageType,​BuilderType>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageType extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage>, com.google.protobuf.GeneratedMessageV3.ExtendableMessageOrBuilder<MessageType extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage>, com.google.protobuf.GeneratedMessageV3.FieldAccessorTable, com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter
      • Nested classes/interfaces inherited from class com.google.protobuf.AbstractMessageLite

        com.google.protobuf.AbstractMessageLite.InternalOneOfEnum
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int LIMITS_FIELD_NUMBER  
      static int METRIC_RULES_FIELD_NUMBER  
      • Fields inherited from class com.google.protobuf.GeneratedMessageV3

        alwaysUseFieldBuilders, unknownFields
      • Fields inherited from class com.google.protobuf.AbstractMessage

        memoizedSize
      • Fields inherited from class com.google.protobuf.AbstractMessageLite

        memoizedHashCode
    • Method Detail

      • newInstance

        protected Object newInstance​(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
        Overrides:
        newInstance in class com.google.protobuf.GeneratedMessageV3
      • getUnknownFields

        public final com.google.protobuf.UnknownFieldSet getUnknownFields()
        Specified by:
        getUnknownFields in interface com.google.protobuf.MessageOrBuilder
        Overrides:
        getUnknownFields in class com.google.protobuf.GeneratedMessageV3
      • 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
      • 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
      • 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
      • 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
      • isInitialized

        public final boolean isInitialized()
        Specified by:
        isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
        Overrides:
        isInitialized in class com.google.protobuf.GeneratedMessageV3
      • writeTo

        public void writeTo​(com.google.protobuf.CodedOutputStream output)
                     throws IOException
        Specified by:
        writeTo in interface com.google.protobuf.MessageLite
        Overrides:
        writeTo in class com.google.protobuf.GeneratedMessageV3
        Throws:
        IOException
      • getSerializedSize

        public int getSerializedSize()
        Specified by:
        getSerializedSize in interface com.google.protobuf.MessageLite
        Overrides:
        getSerializedSize in class com.google.protobuf.GeneratedMessageV3
      • equals

        public boolean equals​(Object obj)
        Specified by:
        equals in interface com.google.protobuf.Message
        Overrides:
        equals in class com.google.protobuf.AbstractMessage
      • hashCode

        public int hashCode()
        Specified by:
        hashCode in interface com.google.protobuf.Message
        Overrides:
        hashCode in class com.google.protobuf.AbstractMessage
      • parseFrom

        public static Quota parseFrom​(ByteBuffer data)
                               throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static Quota parseFrom​(ByteBuffer data,
                                      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                               throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static Quota parseFrom​(com.google.protobuf.ByteString data)
                               throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static Quota parseFrom​(com.google.protobuf.ByteString data,
                                      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                               throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static Quota parseFrom​(byte[] data)
                               throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static Quota parseFrom​(byte[] data,
                                      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                               throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static Quota parseFrom​(com.google.protobuf.CodedInputStream input,
                                      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                               throws IOException
        Throws:
        IOException
      • newBuilderForType

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

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

        protected Quota.Builder newBuilderForType​(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
        Specified by:
        newBuilderForType in class com.google.protobuf.GeneratedMessageV3
      • getDefaultInstance

        public static Quota getDefaultInstance()
      • parser

        public static com.google.protobuf.Parser<Quota> parser()
      • getParserForType

        public com.google.protobuf.Parser<Quota> getParserForType()
        Specified by:
        getParserForType in interface com.google.protobuf.Message
        Specified by:
        getParserForType in interface com.google.protobuf.MessageLite
        Overrides:
        getParserForType in class com.google.protobuf.GeneratedMessageV3
      • getDefaultInstanceForType

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