Package io.envoyproxy.envoy.type.v3
Class RateLimitStrategy.RequestsPerTimeUnit.Builder
- java.lang.Object
-
- com.google.protobuf.AbstractMessageLite.Builder
-
- com.google.protobuf.AbstractMessage.Builder<BuilderT>
-
- com.google.protobuf.GeneratedMessage.Builder<RateLimitStrategy.RequestsPerTimeUnit.Builder>
-
- io.envoyproxy.envoy.type.v3.RateLimitStrategy.RequestsPerTimeUnit.Builder
-
- All Implemented Interfaces:
com.google.protobuf.Message.Builder
,com.google.protobuf.MessageLite.Builder
,com.google.protobuf.MessageLiteOrBuilder
,com.google.protobuf.MessageOrBuilder
,RateLimitStrategy.RequestsPerTimeUnitOrBuilder
,java.lang.Cloneable
- Enclosing class:
- RateLimitStrategy.RequestsPerTimeUnit
public static final class RateLimitStrategy.RequestsPerTimeUnit.Builder extends com.google.protobuf.GeneratedMessage.Builder<RateLimitStrategy.RequestsPerTimeUnit.Builder> 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 typeenvoy.type.v3.RateLimitStrategy.RequestsPerTimeUnit
-
-
Field Summary
Fields Modifier and Type Field Description private int
bitField0_
private long
requestsPerTimeUnit_
private int
timeUnit_
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description RateLimitStrategy.RequestsPerTimeUnit
build()
RateLimitStrategy.RequestsPerTimeUnit
buildPartial()
private void
buildPartial0(RateLimitStrategy.RequestsPerTimeUnit result)
RateLimitStrategy.RequestsPerTimeUnit.Builder
clear()
RateLimitStrategy.RequestsPerTimeUnit.Builder
clearRequestsPerTimeUnit()
The desired number of requests per :ref:`time_unit <envoy_v3_api_field_type.v3.RateLimitStrategy.RequestsPerTimeUnit.time_unit>` to allow.RateLimitStrategy.RequestsPerTimeUnit.Builder
clearTimeUnit()
The unit of time.RateLimitStrategy.RequestsPerTimeUnit
getDefaultInstanceForType()
static com.google.protobuf.Descriptors.Descriptor
getDescriptor()
com.google.protobuf.Descriptors.Descriptor
getDescriptorForType()
long
getRequestsPerTimeUnit()
The desired number of requests per :ref:`time_unit <envoy_v3_api_field_type.v3.RateLimitStrategy.RequestsPerTimeUnit.time_unit>` to allow.RateLimitUnit
getTimeUnit()
The unit of time.int
getTimeUnitValue()
The unit of time.protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable()
boolean
isInitialized()
RateLimitStrategy.RequestsPerTimeUnit.Builder
mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
RateLimitStrategy.RequestsPerTimeUnit.Builder
mergeFrom(com.google.protobuf.Message other)
RateLimitStrategy.RequestsPerTimeUnit.Builder
mergeFrom(RateLimitStrategy.RequestsPerTimeUnit other)
RateLimitStrategy.RequestsPerTimeUnit.Builder
setRequestsPerTimeUnit(long value)
The desired number of requests per :ref:`time_unit <envoy_v3_api_field_type.v3.RateLimitStrategy.RequestsPerTimeUnit.time_unit>` to allow.RateLimitStrategy.RequestsPerTimeUnit.Builder
setTimeUnit(RateLimitUnit value)
The unit of time.RateLimitStrategy.RequestsPerTimeUnit.Builder
setTimeUnitValue(int value)
The unit of time.-
Methods inherited from class com.google.protobuf.GeneratedMessage.Builder
addRepeatedField, clearField, clearOneof, clone, getAllFields, getField, getFieldBuilder, getOneofFieldDescriptor, getParentForChildren, getRepeatedField, getRepeatedFieldBuilder, getRepeatedFieldCount, getUnknownFields, getUnknownFieldSetBuilder, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, internalGetMutableMapField, internalGetMutableMapFieldReflection, isClean, markClean, mergeUnknownFields, mergeUnknownLengthDelimitedField, mergeUnknownVarintField, newBuilderForField, onBuilt, onChanged, parseUnknownField, setField, setRepeatedField, setUnknownFields, setUnknownFieldSetBuilder, setUnknownFieldsProto3
-
Methods inherited from class com.google.protobuf.AbstractMessage.Builder
findInitializationErrors, getInitializationErrorString, internalMergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, newUninitializedMessageException, toString
-
Methods inherited from class com.google.protobuf.AbstractMessageLite.Builder
addAll, addAll, mergeDelimitedFrom, mergeDelimitedFrom, mergeFrom, newUninitializedMessageException
-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
-
-
-
Method Detail
-
getDescriptor
public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
-
internalGetFieldAccessorTable
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable()
- Specified by:
internalGetFieldAccessorTable
in classcom.google.protobuf.GeneratedMessage.Builder<RateLimitStrategy.RequestsPerTimeUnit.Builder>
-
clear
public RateLimitStrategy.RequestsPerTimeUnit.Builder clear()
- Specified by:
clear
in interfacecom.google.protobuf.Message.Builder
- Specified by:
clear
in interfacecom.google.protobuf.MessageLite.Builder
- Overrides:
clear
in classcom.google.protobuf.GeneratedMessage.Builder<RateLimitStrategy.RequestsPerTimeUnit.Builder>
-
getDescriptorForType
public com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
- Specified by:
getDescriptorForType
in interfacecom.google.protobuf.Message.Builder
- Specified by:
getDescriptorForType
in interfacecom.google.protobuf.MessageOrBuilder
- Overrides:
getDescriptorForType
in classcom.google.protobuf.GeneratedMessage.Builder<RateLimitStrategy.RequestsPerTimeUnit.Builder>
-
getDefaultInstanceForType
public RateLimitStrategy.RequestsPerTimeUnit getDefaultInstanceForType()
- Specified by:
getDefaultInstanceForType
in interfacecom.google.protobuf.MessageLiteOrBuilder
- Specified by:
getDefaultInstanceForType
in interfacecom.google.protobuf.MessageOrBuilder
-
build
public RateLimitStrategy.RequestsPerTimeUnit build()
- Specified by:
build
in interfacecom.google.protobuf.Message.Builder
- Specified by:
build
in interfacecom.google.protobuf.MessageLite.Builder
-
buildPartial
public RateLimitStrategy.RequestsPerTimeUnit buildPartial()
- Specified by:
buildPartial
in interfacecom.google.protobuf.Message.Builder
- Specified by:
buildPartial
in interfacecom.google.protobuf.MessageLite.Builder
-
buildPartial0
private void buildPartial0(RateLimitStrategy.RequestsPerTimeUnit result)
-
mergeFrom
public RateLimitStrategy.RequestsPerTimeUnit.Builder mergeFrom(com.google.protobuf.Message other)
- Specified by:
mergeFrom
in interfacecom.google.protobuf.Message.Builder
- Overrides:
mergeFrom
in classcom.google.protobuf.AbstractMessage.Builder<RateLimitStrategy.RequestsPerTimeUnit.Builder>
-
mergeFrom
public RateLimitStrategy.RequestsPerTimeUnit.Builder mergeFrom(RateLimitStrategy.RequestsPerTimeUnit other)
-
isInitialized
public final boolean isInitialized()
- Specified by:
isInitialized
in interfacecom.google.protobuf.MessageLiteOrBuilder
- Overrides:
isInitialized
in classcom.google.protobuf.GeneratedMessage.Builder<RateLimitStrategy.RequestsPerTimeUnit.Builder>
-
mergeFrom
public RateLimitStrategy.RequestsPerTimeUnit.Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException
- Specified by:
mergeFrom
in interfacecom.google.protobuf.Message.Builder
- Specified by:
mergeFrom
in interfacecom.google.protobuf.MessageLite.Builder
- Overrides:
mergeFrom
in classcom.google.protobuf.AbstractMessage.Builder<RateLimitStrategy.RequestsPerTimeUnit.Builder>
- Throws:
java.io.IOException
-
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 interfaceRateLimitStrategy.RequestsPerTimeUnitOrBuilder
- Returns:
- The requestsPerTimeUnit.
-
setRequestsPerTimeUnit
public RateLimitStrategy.RequestsPerTimeUnit.Builder setRequestsPerTimeUnit(long value)
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;
- Parameters:
value
- The requestsPerTimeUnit to set.- Returns:
- This builder for chaining.
-
clearRequestsPerTimeUnit
public RateLimitStrategy.RequestsPerTimeUnit.Builder clearRequestsPerTimeUnit()
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;
- Returns:
- This builder for chaining.
-
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 interfaceRateLimitStrategy.RequestsPerTimeUnitOrBuilder
- Returns:
- The enum numeric value on the wire for timeUnit.
-
setTimeUnitValue
public RateLimitStrategy.RequestsPerTimeUnit.Builder setTimeUnitValue(int value)
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) = { ... }
- Parameters:
value
- The enum numeric value on the wire for timeUnit to set.- Returns:
- This builder for chaining.
-
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 interfaceRateLimitStrategy.RequestsPerTimeUnitOrBuilder
- Returns:
- The timeUnit.
-
setTimeUnit
public RateLimitStrategy.RequestsPerTimeUnit.Builder setTimeUnit(RateLimitUnit value)
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) = { ... }
- Parameters:
value
- The timeUnit to set.- Returns:
- This builder for chaining.
-
clearTimeUnit
public RateLimitStrategy.RequestsPerTimeUnit.Builder clearTimeUnit()
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) = { ... }
- Returns:
- This builder for chaining.
-
-