Class RateLimitStrategy.RequestsPerTimeUnit

java.lang.Object
com.google.protobuf.AbstractMessageLite
com.google.protobuf.AbstractMessage
com.google.protobuf.GeneratedMessage
io.envoyproxy.envoy.type.v3.RateLimitStrategy.RequestsPerTimeUnit
All Implemented Interfaces:
com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, RateLimitStrategy.RequestsPerTimeUnitOrBuilder, Serializable
Enclosing class:
RateLimitStrategy

public static final class RateLimitStrategy.RequestsPerTimeUnit extends com.google.protobuf.GeneratedMessage implements RateLimitStrategy.RequestsPerTimeUnitOrBuilder
 Best-effort limit of the number of requests per time unit.

 Allows to specify the desired requests per second (RPS, QPS), requests per minute (QPM, RPM),
 etc., without specifying a rate limiting algorithm implementation.

 ``RequestsPerTimeUnit`` strategy does not demand any specific rate limiting algorithm to be
 used (in contrast to the :ref:`TokenBucket <envoy_v3_api_msg_type.v3.TokenBucket>`,
 for example). It implies that the implementation details of rate limiting algorithm are
 irrelevant as long as the configured number of "requests per time unit" is achieved.

 Note that the ``TokenBucket`` is still a valid implementation of the ``RequestsPerTimeUnit``
 strategy, and may be chosen to enforce the rate limit. However, there's no guarantee it will be
 the ``TokenBucket`` in particular, and not the Leaky Bucket, the Sliding Window, or any other
 rate limiting algorithm that fulfills the requirements.
 
Protobuf type envoy.type.v3.RateLimitStrategy.RequestsPerTimeUnit
See Also:
  • Field Details

  • Constructor Details

    • RequestsPerTimeUnit

      private RequestsPerTimeUnit(com.google.protobuf.GeneratedMessage.Builder<?> builder)
    • RequestsPerTimeUnit

      private RequestsPerTimeUnit()
  • Method Details

    • getDescriptor

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

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable()
      Specified by:
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessage
    • getRequestsPerTimeUnit

      public long getRequestsPerTimeUnit()
       The desired number of requests per :ref:`time_unit
       <envoy_v3_api_field_type.v3.RateLimitStrategy.RequestsPerTimeUnit.time_unit>` to allow.
       If set to ``0``, deny all (equivalent to ``BlanketRule.DENY_ALL``).
      
       .. note::
       Note that the algorithm implementation determines the course of action for the requests
       over the limit. As long as the ``requests_per_time_unit`` converges on the desired value,
       it's allowed to treat this field as a soft-limit: allow bursts, redistribute the allowance
       over time, etc.
       
      uint64 requests_per_time_unit = 1;
      Specified by:
      getRequestsPerTimeUnit in interface RateLimitStrategy.RequestsPerTimeUnitOrBuilder
      Returns:
      The requestsPerTimeUnit.
    • getTimeUnitValue

      public int getTimeUnitValue()
       The unit of time. Ignored when :ref:`requests_per_time_unit
       <envoy_v3_api_field_type.v3.RateLimitStrategy.RequestsPerTimeUnit.requests_per_time_unit>`
       is ``0`` (deny all).
       
      .envoy.type.v3.RateLimitUnit time_unit = 2 [(.validate.rules) = { ... }
      Specified by:
      getTimeUnitValue in interface RateLimitStrategy.RequestsPerTimeUnitOrBuilder
      Returns:
      The enum numeric value on the wire for timeUnit.
    • getTimeUnit

      public RateLimitUnit getTimeUnit()
       The unit of time. Ignored when :ref:`requests_per_time_unit
       <envoy_v3_api_field_type.v3.RateLimitStrategy.RequestsPerTimeUnit.requests_per_time_unit>`
       is ``0`` (deny all).
       
      .envoy.type.v3.RateLimitUnit time_unit = 2 [(.validate.rules) = { ... }
      Specified by:
      getTimeUnit in interface RateLimitStrategy.RequestsPerTimeUnitOrBuilder
      Returns:
      The timeUnit.
    • isInitialized

      public final boolean isInitialized()
      Specified by:
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      Overrides:
      isInitialized in class com.google.protobuf.GeneratedMessage
    • 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.GeneratedMessage
      Throws:
      IOException
    • getSerializedSize

      public int getSerializedSize()
      Specified by:
      getSerializedSize in interface com.google.protobuf.MessageLite
      Overrides:
      getSerializedSize in class com.google.protobuf.GeneratedMessage
    • 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 RateLimitStrategy.RequestsPerTimeUnit parseFrom(ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

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

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

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

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

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

      public static RateLimitStrategy.RequestsPerTimeUnit parseFrom(InputStream input) throws IOException
      Throws:
      IOException
    • parseFrom

      public static RateLimitStrategy.RequestsPerTimeUnit parseFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Throws:
      IOException
    • parseDelimitedFrom

      public static RateLimitStrategy.RequestsPerTimeUnit parseDelimitedFrom(InputStream input) throws IOException
      Throws:
      IOException
    • parseDelimitedFrom

      public static RateLimitStrategy.RequestsPerTimeUnit parseDelimitedFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Throws:
      IOException
    • parseFrom

      public static RateLimitStrategy.RequestsPerTimeUnit parseFrom(com.google.protobuf.CodedInputStream input) throws IOException
      Throws:
      IOException
    • parseFrom

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

      Specified by:
      newBuilderForType in interface com.google.protobuf.Message
      Specified by:
      newBuilderForType in interface com.google.protobuf.MessageLite
    • newBuilder

    • newBuilder

    • toBuilder

      Specified by:
      toBuilder in interface com.google.protobuf.Message
      Specified by:
      toBuilder in interface com.google.protobuf.MessageLite
    • newBuilderForType

      protected RateLimitStrategy.RequestsPerTimeUnit.Builder newBuilderForType(com.google.protobuf.AbstractMessage.BuilderParent parent)
      Overrides:
      newBuilderForType in class com.google.protobuf.AbstractMessage
    • getDefaultInstance

      public static RateLimitStrategy.RequestsPerTimeUnit getDefaultInstance()
    • parser

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

      public com.google.protobuf.Parser<RateLimitStrategy.RequestsPerTimeUnit> 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.GeneratedMessage
    • getDefaultInstanceForType

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