Class DynamicModuleListenerFilter.Builder

java.lang.Object
com.google.protobuf.AbstractMessageLite.Builder
com.google.protobuf.AbstractMessage.Builder<BuilderT>
com.google.protobuf.GeneratedMessageV3.Builder<DynamicModuleListenerFilter.Builder>
io.envoyproxy.envoy.extensions.filters.listener.dynamic_modules.v3.DynamicModuleListenerFilter.Builder
All Implemented Interfaces:
com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, DynamicModuleListenerFilterOrBuilder, Cloneable
Enclosing class:
DynamicModuleListenerFilter

public static final class DynamicModuleListenerFilter.Builder extends com.google.protobuf.GeneratedMessageV3.Builder<DynamicModuleListenerFilter.Builder> implements DynamicModuleListenerFilterOrBuilder
 Configuration of the listener filter for dynamic modules. This filter allows loading shared object
 files that can be loaded via dlopen by the listener filter.

 A module can be loaded by multiple listener filters, hence the program can be structured in a way
 that the module is loaded only once and shared across multiple filters providing multiple
 functionalities.

 Unlike network filters which operate on established TCP connections, listener filters
 work with raw accepted sockets BEFORE a Connection object is created. The filter can:

 * Inspect initial bytes to detect protocols (TLS, HTTP, PostgreSQL, etc.).
 * Set socket properties (SNI, ALPN, transport protocol, fingerprints).
 * Modify connection addresses (original destination restoration).
 * Set dynamic metadata and filter state for downstream filters.
 * Rate limit incoming connections.
 
Protobuf type envoy.extensions.filters.listener.dynamic_modules.v3.DynamicModuleListenerFilter
  • 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<DynamicModuleListenerFilter.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<DynamicModuleListenerFilter.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<DynamicModuleListenerFilter.Builder>
    • getDefaultInstanceForType

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

      Specified by:
      build in interface com.google.protobuf.Message.Builder
      Specified by:
      build in interface com.google.protobuf.MessageLite.Builder
    • buildPartial

      public DynamicModuleListenerFilter 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<DynamicModuleListenerFilter.Builder>
    • setField

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

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

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

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

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

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

      public DynamicModuleListenerFilter.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<DynamicModuleListenerFilter.Builder>
      Throws:
      IOException
    • hasDynamicModuleConfig

      public boolean hasDynamicModuleConfig()
       Specifies the shared-object level configuration.
       
      .envoy.extensions.dynamic_modules.v3.DynamicModuleConfig dynamic_module_config = 1;
      Specified by:
      hasDynamicModuleConfig in interface DynamicModuleListenerFilterOrBuilder
      Returns:
      Whether the dynamicModuleConfig field is set.
    • getDynamicModuleConfig

      public DynamicModuleConfig getDynamicModuleConfig()
       Specifies the shared-object level configuration.
       
      .envoy.extensions.dynamic_modules.v3.DynamicModuleConfig dynamic_module_config = 1;
      Specified by:
      getDynamicModuleConfig in interface DynamicModuleListenerFilterOrBuilder
      Returns:
      The dynamicModuleConfig.
    • setDynamicModuleConfig

      public DynamicModuleListenerFilter.Builder setDynamicModuleConfig(DynamicModuleConfig value)
       Specifies the shared-object level configuration.
       
      .envoy.extensions.dynamic_modules.v3.DynamicModuleConfig dynamic_module_config = 1;
    • setDynamicModuleConfig

      public DynamicModuleListenerFilter.Builder setDynamicModuleConfig(DynamicModuleConfig.Builder builderForValue)
       Specifies the shared-object level configuration.
       
      .envoy.extensions.dynamic_modules.v3.DynamicModuleConfig dynamic_module_config = 1;
    • mergeDynamicModuleConfig

      public DynamicModuleListenerFilter.Builder mergeDynamicModuleConfig(DynamicModuleConfig value)
       Specifies the shared-object level configuration.
       
      .envoy.extensions.dynamic_modules.v3.DynamicModuleConfig dynamic_module_config = 1;
    • clearDynamicModuleConfig

      public DynamicModuleListenerFilter.Builder clearDynamicModuleConfig()
       Specifies the shared-object level configuration.
       
      .envoy.extensions.dynamic_modules.v3.DynamicModuleConfig dynamic_module_config = 1;
    • getDynamicModuleConfigBuilder

      public DynamicModuleConfig.Builder getDynamicModuleConfigBuilder()
       Specifies the shared-object level configuration.
       
      .envoy.extensions.dynamic_modules.v3.DynamicModuleConfig dynamic_module_config = 1;
    • getDynamicModuleConfigOrBuilder

      public DynamicModuleConfigOrBuilder getDynamicModuleConfigOrBuilder()
       Specifies the shared-object level configuration.
       
      .envoy.extensions.dynamic_modules.v3.DynamicModuleConfig dynamic_module_config = 1;
      Specified by:
      getDynamicModuleConfigOrBuilder in interface DynamicModuleListenerFilterOrBuilder
    • getFilterName

      public String getFilterName()
       The name for this filter configuration. This can be used to distinguish between different
       filter implementations inside a dynamic module. For example, a module can have completely
       different filter implementations (TLS inspector, rate limiter, proxy protocol parser).
       When Envoy receives this configuration, it passes the ``filter_name`` to the dynamic module's
       listener filter config init function together with the ``filter_config``. That way a module
       can decide which in-module filter implementation to use based on the name at load time.
       
      string filter_name = 2;
      Specified by:
      getFilterName in interface DynamicModuleListenerFilterOrBuilder
      Returns:
      The filterName.
    • getFilterNameBytes

      public com.google.protobuf.ByteString getFilterNameBytes()
       The name for this filter configuration. This can be used to distinguish between different
       filter implementations inside a dynamic module. For example, a module can have completely
       different filter implementations (TLS inspector, rate limiter, proxy protocol parser).
       When Envoy receives this configuration, it passes the ``filter_name`` to the dynamic module's
       listener filter config init function together with the ``filter_config``. That way a module
       can decide which in-module filter implementation to use based on the name at load time.
       
      string filter_name = 2;
      Specified by:
      getFilterNameBytes in interface DynamicModuleListenerFilterOrBuilder
      Returns:
      The bytes for filterName.
    • setFilterName

      public DynamicModuleListenerFilter.Builder setFilterName(String value)
       The name for this filter configuration. This can be used to distinguish between different
       filter implementations inside a dynamic module. For example, a module can have completely
       different filter implementations (TLS inspector, rate limiter, proxy protocol parser).
       When Envoy receives this configuration, it passes the ``filter_name`` to the dynamic module's
       listener filter config init function together with the ``filter_config``. That way a module
       can decide which in-module filter implementation to use based on the name at load time.
       
      string filter_name = 2;
      Parameters:
      value - The filterName to set.
      Returns:
      This builder for chaining.
    • clearFilterName

      public DynamicModuleListenerFilter.Builder clearFilterName()
       The name for this filter configuration. This can be used to distinguish between different
       filter implementations inside a dynamic module. For example, a module can have completely
       different filter implementations (TLS inspector, rate limiter, proxy protocol parser).
       When Envoy receives this configuration, it passes the ``filter_name`` to the dynamic module's
       listener filter config init function together with the ``filter_config``. That way a module
       can decide which in-module filter implementation to use based on the name at load time.
       
      string filter_name = 2;
      Returns:
      This builder for chaining.
    • setFilterNameBytes

      public DynamicModuleListenerFilter.Builder setFilterNameBytes(com.google.protobuf.ByteString value)
       The name for this filter configuration. This can be used to distinguish between different
       filter implementations inside a dynamic module. For example, a module can have completely
       different filter implementations (TLS inspector, rate limiter, proxy protocol parser).
       When Envoy receives this configuration, it passes the ``filter_name`` to the dynamic module's
       listener filter config init function together with the ``filter_config``. That way a module
       can decide which in-module filter implementation to use based on the name at load time.
       
      string filter_name = 2;
      Parameters:
      value - The bytes for filterName to set.
      Returns:
      This builder for chaining.
    • hasFilterConfig

      public boolean hasFilterConfig()
       The configuration for the filter chosen by ``filter_name``. This is passed to the module's
       listener filter initialization function. Together with the ``filter_name``, the module can
       decide which in-module filter implementation to use and fine-tune the behavior of the filter.
      
       For example, if a module has two filter implementations, one for TLS inspection and one for
       rate limiting, ``filter_name`` is used to choose either TLS or rate limiting. The ``filter_config``
       can be used to configure the TLS inspection options or the rate limiting parameters.
      
       ``google.protobuf.Struct`` is serialized as JSON before passing it to the module.
       ``google.protobuf.BytesValue`` and ``google.protobuf.StringValue`` are passed directly
       without the wrapper.
      
       .. code-block:: yaml
      
        # Passing a string value
        filter_config:
          "@type": "type.googleapis.com/google.protobuf.StringValue"
          value: hello
      
        # Passing raw bytes
        filter_config:
          "@type": "type.googleapis.com/google.protobuf.BytesValue"
          value: aGVsbG8=  # echo -n "hello" | base64
       
      .google.protobuf.Any filter_config = 3;
      Specified by:
      hasFilterConfig in interface DynamicModuleListenerFilterOrBuilder
      Returns:
      Whether the filterConfig field is set.
    • getFilterConfig

      public com.google.protobuf.Any getFilterConfig()
       The configuration for the filter chosen by ``filter_name``. This is passed to the module's
       listener filter initialization function. Together with the ``filter_name``, the module can
       decide which in-module filter implementation to use and fine-tune the behavior of the filter.
      
       For example, if a module has two filter implementations, one for TLS inspection and one for
       rate limiting, ``filter_name`` is used to choose either TLS or rate limiting. The ``filter_config``
       can be used to configure the TLS inspection options or the rate limiting parameters.
      
       ``google.protobuf.Struct`` is serialized as JSON before passing it to the module.
       ``google.protobuf.BytesValue`` and ``google.protobuf.StringValue`` are passed directly
       without the wrapper.
      
       .. code-block:: yaml
      
        # Passing a string value
        filter_config:
          "@type": "type.googleapis.com/google.protobuf.StringValue"
          value: hello
      
        # Passing raw bytes
        filter_config:
          "@type": "type.googleapis.com/google.protobuf.BytesValue"
          value: aGVsbG8=  # echo -n "hello" | base64
       
      .google.protobuf.Any filter_config = 3;
      Specified by:
      getFilterConfig in interface DynamicModuleListenerFilterOrBuilder
      Returns:
      The filterConfig.
    • setFilterConfig

      public DynamicModuleListenerFilter.Builder setFilterConfig(com.google.protobuf.Any value)
       The configuration for the filter chosen by ``filter_name``. This is passed to the module's
       listener filter initialization function. Together with the ``filter_name``, the module can
       decide which in-module filter implementation to use and fine-tune the behavior of the filter.
      
       For example, if a module has two filter implementations, one for TLS inspection and one for
       rate limiting, ``filter_name`` is used to choose either TLS or rate limiting. The ``filter_config``
       can be used to configure the TLS inspection options or the rate limiting parameters.
      
       ``google.protobuf.Struct`` is serialized as JSON before passing it to the module.
       ``google.protobuf.BytesValue`` and ``google.protobuf.StringValue`` are passed directly
       without the wrapper.
      
       .. code-block:: yaml
      
        # Passing a string value
        filter_config:
          "@type": "type.googleapis.com/google.protobuf.StringValue"
          value: hello
      
        # Passing raw bytes
        filter_config:
          "@type": "type.googleapis.com/google.protobuf.BytesValue"
          value: aGVsbG8=  # echo -n "hello" | base64
       
      .google.protobuf.Any filter_config = 3;
    • setFilterConfig

      public DynamicModuleListenerFilter.Builder setFilterConfig(com.google.protobuf.Any.Builder builderForValue)
       The configuration for the filter chosen by ``filter_name``. This is passed to the module's
       listener filter initialization function. Together with the ``filter_name``, the module can
       decide which in-module filter implementation to use and fine-tune the behavior of the filter.
      
       For example, if a module has two filter implementations, one for TLS inspection and one for
       rate limiting, ``filter_name`` is used to choose either TLS or rate limiting. The ``filter_config``
       can be used to configure the TLS inspection options or the rate limiting parameters.
      
       ``google.protobuf.Struct`` is serialized as JSON before passing it to the module.
       ``google.protobuf.BytesValue`` and ``google.protobuf.StringValue`` are passed directly
       without the wrapper.
      
       .. code-block:: yaml
      
        # Passing a string value
        filter_config:
          "@type": "type.googleapis.com/google.protobuf.StringValue"
          value: hello
      
        # Passing raw bytes
        filter_config:
          "@type": "type.googleapis.com/google.protobuf.BytesValue"
          value: aGVsbG8=  # echo -n "hello" | base64
       
      .google.protobuf.Any filter_config = 3;
    • mergeFilterConfig

      public DynamicModuleListenerFilter.Builder mergeFilterConfig(com.google.protobuf.Any value)
       The configuration for the filter chosen by ``filter_name``. This is passed to the module's
       listener filter initialization function. Together with the ``filter_name``, the module can
       decide which in-module filter implementation to use and fine-tune the behavior of the filter.
      
       For example, if a module has two filter implementations, one for TLS inspection and one for
       rate limiting, ``filter_name`` is used to choose either TLS or rate limiting. The ``filter_config``
       can be used to configure the TLS inspection options or the rate limiting parameters.
      
       ``google.protobuf.Struct`` is serialized as JSON before passing it to the module.
       ``google.protobuf.BytesValue`` and ``google.protobuf.StringValue`` are passed directly
       without the wrapper.
      
       .. code-block:: yaml
      
        # Passing a string value
        filter_config:
          "@type": "type.googleapis.com/google.protobuf.StringValue"
          value: hello
      
        # Passing raw bytes
        filter_config:
          "@type": "type.googleapis.com/google.protobuf.BytesValue"
          value: aGVsbG8=  # echo -n "hello" | base64
       
      .google.protobuf.Any filter_config = 3;
    • clearFilterConfig

      public DynamicModuleListenerFilter.Builder clearFilterConfig()
       The configuration for the filter chosen by ``filter_name``. This is passed to the module's
       listener filter initialization function. Together with the ``filter_name``, the module can
       decide which in-module filter implementation to use and fine-tune the behavior of the filter.
      
       For example, if a module has two filter implementations, one for TLS inspection and one for
       rate limiting, ``filter_name`` is used to choose either TLS or rate limiting. The ``filter_config``
       can be used to configure the TLS inspection options or the rate limiting parameters.
      
       ``google.protobuf.Struct`` is serialized as JSON before passing it to the module.
       ``google.protobuf.BytesValue`` and ``google.protobuf.StringValue`` are passed directly
       without the wrapper.
      
       .. code-block:: yaml
      
        # Passing a string value
        filter_config:
          "@type": "type.googleapis.com/google.protobuf.StringValue"
          value: hello
      
        # Passing raw bytes
        filter_config:
          "@type": "type.googleapis.com/google.protobuf.BytesValue"
          value: aGVsbG8=  # echo -n "hello" | base64
       
      .google.protobuf.Any filter_config = 3;
    • getFilterConfigBuilder

      public com.google.protobuf.Any.Builder getFilterConfigBuilder()
       The configuration for the filter chosen by ``filter_name``. This is passed to the module's
       listener filter initialization function. Together with the ``filter_name``, the module can
       decide which in-module filter implementation to use and fine-tune the behavior of the filter.
      
       For example, if a module has two filter implementations, one for TLS inspection and one for
       rate limiting, ``filter_name`` is used to choose either TLS or rate limiting. The ``filter_config``
       can be used to configure the TLS inspection options or the rate limiting parameters.
      
       ``google.protobuf.Struct`` is serialized as JSON before passing it to the module.
       ``google.protobuf.BytesValue`` and ``google.protobuf.StringValue`` are passed directly
       without the wrapper.
      
       .. code-block:: yaml
      
        # Passing a string value
        filter_config:
          "@type": "type.googleapis.com/google.protobuf.StringValue"
          value: hello
      
        # Passing raw bytes
        filter_config:
          "@type": "type.googleapis.com/google.protobuf.BytesValue"
          value: aGVsbG8=  # echo -n "hello" | base64
       
      .google.protobuf.Any filter_config = 3;
    • getFilterConfigOrBuilder

      public com.google.protobuf.AnyOrBuilder getFilterConfigOrBuilder()
       The configuration for the filter chosen by ``filter_name``. This is passed to the module's
       listener filter initialization function. Together with the ``filter_name``, the module can
       decide which in-module filter implementation to use and fine-tune the behavior of the filter.
      
       For example, if a module has two filter implementations, one for TLS inspection and one for
       rate limiting, ``filter_name`` is used to choose either TLS or rate limiting. The ``filter_config``
       can be used to configure the TLS inspection options or the rate limiting parameters.
      
       ``google.protobuf.Struct`` is serialized as JSON before passing it to the module.
       ``google.protobuf.BytesValue`` and ``google.protobuf.StringValue`` are passed directly
       without the wrapper.
      
       .. code-block:: yaml
      
        # Passing a string value
        filter_config:
          "@type": "type.googleapis.com/google.protobuf.StringValue"
          value: hello
      
        # Passing raw bytes
        filter_config:
          "@type": "type.googleapis.com/google.protobuf.BytesValue"
          value: aGVsbG8=  # echo -n "hello" | base64
       
      .google.protobuf.Any filter_config = 3;
      Specified by:
      getFilterConfigOrBuilder in interface DynamicModuleListenerFilterOrBuilder
    • setUnknownFields

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

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