Class RateLimitDescriptor.Builder

java.lang.Object
com.google.protobuf.AbstractMessageLite.Builder
com.google.protobuf.AbstractMessage.Builder<BuilderT>
com.google.protobuf.GeneratedMessageV3.Builder<RateLimitDescriptor.Builder>
io.envoyproxy.envoy.extensions.common.ratelimit.v3.RateLimitDescriptor.Builder
All Implemented Interfaces:
com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, RateLimitDescriptorOrBuilder, Cloneable
Enclosing class:
RateLimitDescriptor

public static final class RateLimitDescriptor.Builder extends com.google.protobuf.GeneratedMessageV3.Builder<RateLimitDescriptor.Builder> implements RateLimitDescriptorOrBuilder
 A RateLimitDescriptor is a list of hierarchical entries that are used by the service to
 determine the final rate limit key and overall allowed limit. Here are some examples of how
 they might be used for the domain "envoy".

 .. code-block:: cpp

   ["authenticated": "false"], ["remote_address": "10.0.0.1"]

 What it does: Limits all unauthenticated traffic for the IP address 10.0.0.1. The
 configuration supplies a default limit for the *remote_address* key. If there is a desire to
 raise the limit for 10.0.0.1 or block it entirely it can be specified directly in the
 configuration.

 .. code-block:: cpp

   ["authenticated": "false"], ["path": "/foo/bar"]

 What it does: Limits all unauthenticated traffic globally for a specific path (or prefix if
 configured that way in the service).

 .. code-block:: cpp

   ["authenticated": "false"], ["path": "/foo/bar"], ["remote_address": "10.0.0.1"]

 What it does: Limits unauthenticated traffic to a specific path for a specific IP address.
 Like (1) we can raise/block specific IP addresses if we want with an override configuration.

 .. code-block:: cpp

   ["authenticated": "true"], ["client_id": "foo"]

 What it does: Limits all traffic for an authenticated client "foo"

 .. code-block:: cpp

   ["authenticated": "true"], ["client_id": "foo"], ["path": "/foo/bar"]

 What it does: Limits traffic to a specific path for an authenticated client "foo"

 The idea behind the API is that (1)/(2)/(3) and (4)/(5) can be sent in 1 request if desired.
 This enables building complex application scenarios with a generic backend.

 Optionally the descriptor can contain a limit override under a "limit" key, that specifies
 the number of requests per unit to use instead of the number configured in the
 rate limiting service.
 
Protobuf type envoy.extensions.common.ratelimit.v3.RateLimitDescriptor
  • 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<RateLimitDescriptor.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<RateLimitDescriptor.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<RateLimitDescriptor.Builder>
    • getDefaultInstanceForType

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

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

      public RateLimitDescriptor buildPartial()
      Specified by:
      buildPartial in interface com.google.protobuf.Message.Builder
      Specified by:
      buildPartial in interface com.google.protobuf.MessageLite.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<RateLimitDescriptor.Builder>
    • setField

      public RateLimitDescriptor.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<RateLimitDescriptor.Builder>
    • clearField

      public RateLimitDescriptor.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<RateLimitDescriptor.Builder>
    • clearOneof

      public RateLimitDescriptor.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<RateLimitDescriptor.Builder>
    • setRepeatedField

      public RateLimitDescriptor.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<RateLimitDescriptor.Builder>
    • addRepeatedField

      public RateLimitDescriptor.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<RateLimitDescriptor.Builder>
    • mergeFrom

      public RateLimitDescriptor.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<RateLimitDescriptor.Builder>
    • mergeFrom

    • isInitialized

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

      public RateLimitDescriptor.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<RateLimitDescriptor.Builder>
      Throws:
      IOException
    • getEntriesList

      public List<RateLimitDescriptor.Entry> getEntriesList()
       Descriptor entries.
       
      repeated .envoy.extensions.common.ratelimit.v3.RateLimitDescriptor.Entry entries = 1 [(.validate.rules) = { ... }
      Specified by:
      getEntriesList in interface RateLimitDescriptorOrBuilder
    • getEntriesCount

      public int getEntriesCount()
       Descriptor entries.
       
      repeated .envoy.extensions.common.ratelimit.v3.RateLimitDescriptor.Entry entries = 1 [(.validate.rules) = { ... }
      Specified by:
      getEntriesCount in interface RateLimitDescriptorOrBuilder
    • getEntries

      public RateLimitDescriptor.Entry getEntries(int index)
       Descriptor entries.
       
      repeated .envoy.extensions.common.ratelimit.v3.RateLimitDescriptor.Entry entries = 1 [(.validate.rules) = { ... }
      Specified by:
      getEntries in interface RateLimitDescriptorOrBuilder
    • setEntries

      public RateLimitDescriptor.Builder setEntries(int index, RateLimitDescriptor.Entry value)
       Descriptor entries.
       
      repeated .envoy.extensions.common.ratelimit.v3.RateLimitDescriptor.Entry entries = 1 [(.validate.rules) = { ... }
    • setEntries

      public RateLimitDescriptor.Builder setEntries(int index, RateLimitDescriptor.Entry.Builder builderForValue)
       Descriptor entries.
       
      repeated .envoy.extensions.common.ratelimit.v3.RateLimitDescriptor.Entry entries = 1 [(.validate.rules) = { ... }
    • addEntries

       Descriptor entries.
       
      repeated .envoy.extensions.common.ratelimit.v3.RateLimitDescriptor.Entry entries = 1 [(.validate.rules) = { ... }
    • addEntries

      public RateLimitDescriptor.Builder addEntries(int index, RateLimitDescriptor.Entry value)
       Descriptor entries.
       
      repeated .envoy.extensions.common.ratelimit.v3.RateLimitDescriptor.Entry entries = 1 [(.validate.rules) = { ... }
    • addEntries

       Descriptor entries.
       
      repeated .envoy.extensions.common.ratelimit.v3.RateLimitDescriptor.Entry entries = 1 [(.validate.rules) = { ... }
    • addEntries

      public RateLimitDescriptor.Builder addEntries(int index, RateLimitDescriptor.Entry.Builder builderForValue)
       Descriptor entries.
       
      repeated .envoy.extensions.common.ratelimit.v3.RateLimitDescriptor.Entry entries = 1 [(.validate.rules) = { ... }
    • addAllEntries

      public RateLimitDescriptor.Builder addAllEntries(Iterable<? extends RateLimitDescriptor.Entry> values)
       Descriptor entries.
       
      repeated .envoy.extensions.common.ratelimit.v3.RateLimitDescriptor.Entry entries = 1 [(.validate.rules) = { ... }
    • clearEntries

      public RateLimitDescriptor.Builder clearEntries()
       Descriptor entries.
       
      repeated .envoy.extensions.common.ratelimit.v3.RateLimitDescriptor.Entry entries = 1 [(.validate.rules) = { ... }
    • removeEntries

      public RateLimitDescriptor.Builder removeEntries(int index)
       Descriptor entries.
       
      repeated .envoy.extensions.common.ratelimit.v3.RateLimitDescriptor.Entry entries = 1 [(.validate.rules) = { ... }
    • getEntriesBuilder

      public RateLimitDescriptor.Entry.Builder getEntriesBuilder(int index)
       Descriptor entries.
       
      repeated .envoy.extensions.common.ratelimit.v3.RateLimitDescriptor.Entry entries = 1 [(.validate.rules) = { ... }
    • getEntriesOrBuilder

      public RateLimitDescriptor.EntryOrBuilder getEntriesOrBuilder(int index)
       Descriptor entries.
       
      repeated .envoy.extensions.common.ratelimit.v3.RateLimitDescriptor.Entry entries = 1 [(.validate.rules) = { ... }
      Specified by:
      getEntriesOrBuilder in interface RateLimitDescriptorOrBuilder
    • getEntriesOrBuilderList

      public List<? extends RateLimitDescriptor.EntryOrBuilder> getEntriesOrBuilderList()
       Descriptor entries.
       
      repeated .envoy.extensions.common.ratelimit.v3.RateLimitDescriptor.Entry entries = 1 [(.validate.rules) = { ... }
      Specified by:
      getEntriesOrBuilderList in interface RateLimitDescriptorOrBuilder
    • addEntriesBuilder

      public RateLimitDescriptor.Entry.Builder addEntriesBuilder()
       Descriptor entries.
       
      repeated .envoy.extensions.common.ratelimit.v3.RateLimitDescriptor.Entry entries = 1 [(.validate.rules) = { ... }
    • addEntriesBuilder

      public RateLimitDescriptor.Entry.Builder addEntriesBuilder(int index)
       Descriptor entries.
       
      repeated .envoy.extensions.common.ratelimit.v3.RateLimitDescriptor.Entry entries = 1 [(.validate.rules) = { ... }
    • getEntriesBuilderList

      public List<RateLimitDescriptor.Entry.Builder> getEntriesBuilderList()
       Descriptor entries.
       
      repeated .envoy.extensions.common.ratelimit.v3.RateLimitDescriptor.Entry entries = 1 [(.validate.rules) = { ... }
    • hasLimit

      public boolean hasLimit()
       Optional rate limit override to supply to the ratelimit service.
       
      .envoy.extensions.common.ratelimit.v3.RateLimitDescriptor.RateLimitOverride limit = 2;
      Specified by:
      hasLimit in interface RateLimitDescriptorOrBuilder
      Returns:
      Whether the limit field is set.
    • getLimit

       Optional rate limit override to supply to the ratelimit service.
       
      .envoy.extensions.common.ratelimit.v3.RateLimitDescriptor.RateLimitOverride limit = 2;
      Specified by:
      getLimit in interface RateLimitDescriptorOrBuilder
      Returns:
      The limit.
    • setLimit

       Optional rate limit override to supply to the ratelimit service.
       
      .envoy.extensions.common.ratelimit.v3.RateLimitDescriptor.RateLimitOverride limit = 2;
    • setLimit

       Optional rate limit override to supply to the ratelimit service.
       
      .envoy.extensions.common.ratelimit.v3.RateLimitDescriptor.RateLimitOverride limit = 2;
    • mergeLimit

       Optional rate limit override to supply to the ratelimit service.
       
      .envoy.extensions.common.ratelimit.v3.RateLimitDescriptor.RateLimitOverride limit = 2;
    • clearLimit

      public RateLimitDescriptor.Builder clearLimit()
       Optional rate limit override to supply to the ratelimit service.
       
      .envoy.extensions.common.ratelimit.v3.RateLimitDescriptor.RateLimitOverride limit = 2;
    • getLimitBuilder

       Optional rate limit override to supply to the ratelimit service.
       
      .envoy.extensions.common.ratelimit.v3.RateLimitDescriptor.RateLimitOverride limit = 2;
    • getLimitOrBuilder

       Optional rate limit override to supply to the ratelimit service.
       
      .envoy.extensions.common.ratelimit.v3.RateLimitDescriptor.RateLimitOverride limit = 2;
      Specified by:
      getLimitOrBuilder in interface RateLimitDescriptorOrBuilder
    • hasHitsAddend

      public boolean hasHitsAddend()
       Optional hits_addend for the rate limit descriptor. If set the value will override the
       request level hits_addend.
       
      .google.protobuf.UInt64Value hits_addend = 3;
      Specified by:
      hasHitsAddend in interface RateLimitDescriptorOrBuilder
      Returns:
      Whether the hitsAddend field is set.
    • getHitsAddend

      public com.google.protobuf.UInt64Value getHitsAddend()
       Optional hits_addend for the rate limit descriptor. If set the value will override the
       request level hits_addend.
       
      .google.protobuf.UInt64Value hits_addend = 3;
      Specified by:
      getHitsAddend in interface RateLimitDescriptorOrBuilder
      Returns:
      The hitsAddend.
    • setHitsAddend

      public RateLimitDescriptor.Builder setHitsAddend(com.google.protobuf.UInt64Value value)
       Optional hits_addend for the rate limit descriptor. If set the value will override the
       request level hits_addend.
       
      .google.protobuf.UInt64Value hits_addend = 3;
    • setHitsAddend

      public RateLimitDescriptor.Builder setHitsAddend(com.google.protobuf.UInt64Value.Builder builderForValue)
       Optional hits_addend for the rate limit descriptor. If set the value will override the
       request level hits_addend.
       
      .google.protobuf.UInt64Value hits_addend = 3;
    • mergeHitsAddend

      public RateLimitDescriptor.Builder mergeHitsAddend(com.google.protobuf.UInt64Value value)
       Optional hits_addend for the rate limit descriptor. If set the value will override the
       request level hits_addend.
       
      .google.protobuf.UInt64Value hits_addend = 3;
    • clearHitsAddend

      public RateLimitDescriptor.Builder clearHitsAddend()
       Optional hits_addend for the rate limit descriptor. If set the value will override the
       request level hits_addend.
       
      .google.protobuf.UInt64Value hits_addend = 3;
    • getHitsAddendBuilder

      public com.google.protobuf.UInt64Value.Builder getHitsAddendBuilder()
       Optional hits_addend for the rate limit descriptor. If set the value will override the
       request level hits_addend.
       
      .google.protobuf.UInt64Value hits_addend = 3;
    • getHitsAddendOrBuilder

      public com.google.protobuf.UInt64ValueOrBuilder getHitsAddendOrBuilder()
       Optional hits_addend for the rate limit descriptor. If set the value will override the
       request level hits_addend.
       
      .google.protobuf.UInt64Value hits_addend = 3;
      Specified by:
      getHitsAddendOrBuilder in interface RateLimitDescriptorOrBuilder
    • setUnknownFields

      public final RateLimitDescriptor.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<RateLimitDescriptor.Builder>
    • mergeUnknownFields

      public final RateLimitDescriptor.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<RateLimitDescriptor.Builder>