Class 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.
     
    Protobuf type envoy.api.v2.ratelimit.RateLimitDescriptor
    • Method Detail

      • 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

        public 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

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

        public int getEntriesCount()
         Descriptor entries.
         
        repeated .envoy.api.v2.ratelimit.RateLimitDescriptor.Entry entries = 1 [(.validate.rules) = { ... }
        Specified by:
        getEntriesCount in interface RateLimitDescriptorOrBuilder
      • clearEntries

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

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

        public RateLimitDescriptor.Entry.Builder getEntriesBuilder​(int index)
         Descriptor entries.
         
        repeated .envoy.api.v2.ratelimit.RateLimitDescriptor.Entry entries = 1 [(.validate.rules) = { ... }
      • addEntriesBuilder

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

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

        public List<RateLimitDescriptor.Entry.Builder> getEntriesBuilderList()
         Descriptor entries.
         
        repeated .envoy.api.v2.ratelimit.RateLimitDescriptor.Entry entries = 1 [(.validate.rules) = { ... }
      • 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>