Class ExternalProcessor.Builder

  • All Implemented Interfaces:
    com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, ExternalProcessorOrBuilder, Cloneable
    Enclosing class:
    ExternalProcessor

    public static final class ExternalProcessor.Builder
    extends com.google.protobuf.GeneratedMessageV3.Builder<ExternalProcessor.Builder>
    implements ExternalProcessorOrBuilder
     The filter communicates with an external gRPC service called an "external processor"
     that can do a variety of things with the request and response:
     * Access and modify the HTTP headers on the request, response, or both
     * Access and modify the HTTP request and response bodies
     * Access and modify the dynamic stream metadata
     * Immediately send an HTTP response downstream and terminate other processing
     The filter communicates with the server using a gRPC bidirectional stream. After the initial
     request, the external server is in control over what additional data is sent to it
     and how it should be processed.
     By implementing the protocol specified by the stream, the external server can choose:
     * Whether it receives the response message at all
     * Whether it receives the message body at all, in separate chunks, or as a single buffer
     * Whether subsequent HTTP requests are transmitted synchronously or whether they are
       sent asynchronously.
     * To modify request or response trailers if they already exist
     The filter supports up to six different processing steps. Each is represented by
     a gRPC stream message that is sent to the external processor. For each message, the
     processor must send a matching response.
     * Request headers: Contains the headers from the original HTTP request.
     * Request body: Delivered if they are present and sent in a single message if
       the BUFFERED or BUFFERED_PARTIAL mode is chosen, in multiple messages if the
       STREAMED mode is chosen, and not at all otherwise.
     * Request trailers: Delivered if they are present and if the trailer mode is set
       to SEND.
     * Response headers: Contains the headers from the HTTP response. Keep in mind
       that if the upstream system sends them before processing the request body that
       this message may arrive before the complete body.
     * Response body: Sent according to the processing mode like the request body.
     * Response trailers: Delivered according to the processing mode like the
       request trailers.
     By default, the processor sends only the request and response headers messages.
     This may be changed to include any of the six steps by changing the processing_mode
     setting of the filter configuration, or by setting the mode_override of any response
     from the external processor. The latter is only enabled if allow_mode_override is
     set to true. This way, a processor may, for example, use information
     in the request header to determine whether the message body must be examined, or whether
     the proxy should simply stream it straight through.
     All of this together allows a server to process the filter traffic in fairly
     sophisticated ways. For example:
     * A server may choose to examine all or part of the HTTP message bodies depending
       on the content of the headers.
     * A server may choose to immediately reject some messages based on their HTTP
       headers (or other dynamic metadata) and more carefully examine others.
     * A server may asynchronously monitor traffic coming through the filter by inspecting
       headers, bodies, or both, and then decide to switch to a synchronous processing
       mode, either permanently or temporarily.
     The protocol itself is based on a bidirectional gRPC stream. Envoy will send the
     server
     :ref:`ProcessingRequest <envoy_v3_api_msg_service.ext_proc.v3.ProcessingRequest>`
     messages, and the server must reply with
     :ref:`ProcessingResponse <envoy_v3_api_msg_service.ext_proc.v3.ProcessingResponse>`.
     Stats about each gRPC call are recorded in a :ref:`dynamic filter state
     <arch_overview_advanced_filter_state_sharing>` object in a namespace matching the filter
     name.
     [#next-free-field: 16]
     
    Protobuf type envoy.extensions.filters.http.ext_proc.v3.ExternalProcessor
    • 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<ExternalProcessor.Builder>
      • clear

        public ExternalProcessor.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<ExternalProcessor.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<ExternalProcessor.Builder>
      • getDefaultInstanceForType

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

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

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

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

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

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

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

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

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

        public ExternalProcessor.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<ExternalProcessor.Builder>
      • isInitialized

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

        public ExternalProcessor.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<ExternalProcessor.Builder>
        Throws:
        IOException
      • hasGrpcService

        public boolean hasGrpcService()
         Configuration for the gRPC service that the filter will communicate with.
         The filter supports both the "Envoy" and "Google" gRPC clients.
         
        .envoy.config.core.v3.GrpcService grpc_service = 1 [(.validate.rules) = { ... }
        Specified by:
        hasGrpcService in interface ExternalProcessorOrBuilder
        Returns:
        Whether the grpcService field is set.
      • getGrpcService

        public GrpcService getGrpcService()
         Configuration for the gRPC service that the filter will communicate with.
         The filter supports both the "Envoy" and "Google" gRPC clients.
         
        .envoy.config.core.v3.GrpcService grpc_service = 1 [(.validate.rules) = { ... }
        Specified by:
        getGrpcService in interface ExternalProcessorOrBuilder
        Returns:
        The grpcService.
      • setGrpcService

        public ExternalProcessor.Builder setGrpcService​(GrpcService value)
         Configuration for the gRPC service that the filter will communicate with.
         The filter supports both the "Envoy" and "Google" gRPC clients.
         
        .envoy.config.core.v3.GrpcService grpc_service = 1 [(.validate.rules) = { ... }
      • setGrpcService

        public ExternalProcessor.Builder setGrpcService​(GrpcService.Builder builderForValue)
         Configuration for the gRPC service that the filter will communicate with.
         The filter supports both the "Envoy" and "Google" gRPC clients.
         
        .envoy.config.core.v3.GrpcService grpc_service = 1 [(.validate.rules) = { ... }
      • mergeGrpcService

        public ExternalProcessor.Builder mergeGrpcService​(GrpcService value)
         Configuration for the gRPC service that the filter will communicate with.
         The filter supports both the "Envoy" and "Google" gRPC clients.
         
        .envoy.config.core.v3.GrpcService grpc_service = 1 [(.validate.rules) = { ... }
      • clearGrpcService

        public ExternalProcessor.Builder clearGrpcService()
         Configuration for the gRPC service that the filter will communicate with.
         The filter supports both the "Envoy" and "Google" gRPC clients.
         
        .envoy.config.core.v3.GrpcService grpc_service = 1 [(.validate.rules) = { ... }
      • getGrpcServiceBuilder

        public GrpcService.Builder getGrpcServiceBuilder()
         Configuration for the gRPC service that the filter will communicate with.
         The filter supports both the "Envoy" and "Google" gRPC clients.
         
        .envoy.config.core.v3.GrpcService grpc_service = 1 [(.validate.rules) = { ... }
      • getGrpcServiceOrBuilder

        public GrpcServiceOrBuilder getGrpcServiceOrBuilder()
         Configuration for the gRPC service that the filter will communicate with.
         The filter supports both the "Envoy" and "Google" gRPC clients.
         
        .envoy.config.core.v3.GrpcService grpc_service = 1 [(.validate.rules) = { ... }
        Specified by:
        getGrpcServiceOrBuilder in interface ExternalProcessorOrBuilder
      • getFailureModeAllow

        public boolean getFailureModeAllow()
         By default, if the gRPC stream cannot be established, or if it is closed
         prematurely with an error, the filter will fail. Specifically, if the
         response headers have not yet been delivered, then it will return a 500
         error downstream. If they have been delivered, then instead the HTTP stream to the
         downstream client will be reset.
         With this parameter set to true, however, then if the gRPC stream is prematurely closed
         or could not be opened, processing continues without error.
         
        bool failure_mode_allow = 2;
        Specified by:
        getFailureModeAllow in interface ExternalProcessorOrBuilder
        Returns:
        The failureModeAllow.
      • setFailureModeAllow

        public ExternalProcessor.Builder setFailureModeAllow​(boolean value)
         By default, if the gRPC stream cannot be established, or if it is closed
         prematurely with an error, the filter will fail. Specifically, if the
         response headers have not yet been delivered, then it will return a 500
         error downstream. If they have been delivered, then instead the HTTP stream to the
         downstream client will be reset.
         With this parameter set to true, however, then if the gRPC stream is prematurely closed
         or could not be opened, processing continues without error.
         
        bool failure_mode_allow = 2;
        Parameters:
        value - The failureModeAllow to set.
        Returns:
        This builder for chaining.
      • clearFailureModeAllow

        public ExternalProcessor.Builder clearFailureModeAllow()
         By default, if the gRPC stream cannot be established, or if it is closed
         prematurely with an error, the filter will fail. Specifically, if the
         response headers have not yet been delivered, then it will return a 500
         error downstream. If they have been delivered, then instead the HTTP stream to the
         downstream client will be reset.
         With this parameter set to true, however, then if the gRPC stream is prematurely closed
         or could not be opened, processing continues without error.
         
        bool failure_mode_allow = 2;
        Returns:
        This builder for chaining.
      • hasProcessingMode

        public boolean hasProcessingMode()
         Specifies default options for how HTTP headers, trailers, and bodies are
         sent. See ProcessingMode for details.
         
        .envoy.extensions.filters.http.ext_proc.v3.ProcessingMode processing_mode = 3;
        Specified by:
        hasProcessingMode in interface ExternalProcessorOrBuilder
        Returns:
        Whether the processingMode field is set.
      • getProcessingMode

        public ProcessingMode getProcessingMode()
         Specifies default options for how HTTP headers, trailers, and bodies are
         sent. See ProcessingMode for details.
         
        .envoy.extensions.filters.http.ext_proc.v3.ProcessingMode processing_mode = 3;
        Specified by:
        getProcessingMode in interface ExternalProcessorOrBuilder
        Returns:
        The processingMode.
      • setProcessingMode

        public ExternalProcessor.Builder setProcessingMode​(ProcessingMode value)
         Specifies default options for how HTTP headers, trailers, and bodies are
         sent. See ProcessingMode for details.
         
        .envoy.extensions.filters.http.ext_proc.v3.ProcessingMode processing_mode = 3;
      • setProcessingMode

        public ExternalProcessor.Builder setProcessingMode​(ProcessingMode.Builder builderForValue)
         Specifies default options for how HTTP headers, trailers, and bodies are
         sent. See ProcessingMode for details.
         
        .envoy.extensions.filters.http.ext_proc.v3.ProcessingMode processing_mode = 3;
      • mergeProcessingMode

        public ExternalProcessor.Builder mergeProcessingMode​(ProcessingMode value)
         Specifies default options for how HTTP headers, trailers, and bodies are
         sent. See ProcessingMode for details.
         
        .envoy.extensions.filters.http.ext_proc.v3.ProcessingMode processing_mode = 3;
      • clearProcessingMode

        public ExternalProcessor.Builder clearProcessingMode()
         Specifies default options for how HTTP headers, trailers, and bodies are
         sent. See ProcessingMode for details.
         
        .envoy.extensions.filters.http.ext_proc.v3.ProcessingMode processing_mode = 3;
      • getProcessingModeBuilder

        public ProcessingMode.Builder getProcessingModeBuilder()
         Specifies default options for how HTTP headers, trailers, and bodies are
         sent. See ProcessingMode for details.
         
        .envoy.extensions.filters.http.ext_proc.v3.ProcessingMode processing_mode = 3;
      • getAsyncMode

        public boolean getAsyncMode()
         [#not-implemented-hide:]
         If true, send each part of the HTTP request or response specified by ProcessingMode
         asynchronously -- in other words, send the message on the gRPC stream and then continue
         filter processing. If false, which is the default, suspend filter execution after
         each message is sent to the remote service and wait up to "message_timeout"
         for a reply.
         
        bool async_mode = 4;
        Specified by:
        getAsyncMode in interface ExternalProcessorOrBuilder
        Returns:
        The asyncMode.
      • setAsyncMode

        public ExternalProcessor.Builder setAsyncMode​(boolean value)
         [#not-implemented-hide:]
         If true, send each part of the HTTP request or response specified by ProcessingMode
         asynchronously -- in other words, send the message on the gRPC stream and then continue
         filter processing. If false, which is the default, suspend filter execution after
         each message is sent to the remote service and wait up to "message_timeout"
         for a reply.
         
        bool async_mode = 4;
        Parameters:
        value - The asyncMode to set.
        Returns:
        This builder for chaining.
      • clearAsyncMode

        public ExternalProcessor.Builder clearAsyncMode()
         [#not-implemented-hide:]
         If true, send each part of the HTTP request or response specified by ProcessingMode
         asynchronously -- in other words, send the message on the gRPC stream and then continue
         filter processing. If false, which is the default, suspend filter execution after
         each message is sent to the remote service and wait up to "message_timeout"
         for a reply.
         
        bool async_mode = 4;
        Returns:
        This builder for chaining.
      • getRequestAttributesList

        public com.google.protobuf.ProtocolStringList getRequestAttributesList()
         [#not-implemented-hide:]
         Envoy provides a number of :ref:`attributes <arch_overview_attributes>`
         for expressive policies. Each attribute name provided in this field will be
         matched against that list and populated in the request_headers message.
         See the :ref:`attribute documentation <arch_overview_request_attributes>`
         for the list of supported attributes and their types.
         
        repeated string request_attributes = 5;
        Specified by:
        getRequestAttributesList in interface ExternalProcessorOrBuilder
        Returns:
        A list containing the requestAttributes.
      • getRequestAttributesCount

        public int getRequestAttributesCount()
         [#not-implemented-hide:]
         Envoy provides a number of :ref:`attributes <arch_overview_attributes>`
         for expressive policies. Each attribute name provided in this field will be
         matched against that list and populated in the request_headers message.
         See the :ref:`attribute documentation <arch_overview_request_attributes>`
         for the list of supported attributes and their types.
         
        repeated string request_attributes = 5;
        Specified by:
        getRequestAttributesCount in interface ExternalProcessorOrBuilder
        Returns:
        The count of requestAttributes.
      • getRequestAttributes

        public String getRequestAttributes​(int index)
         [#not-implemented-hide:]
         Envoy provides a number of :ref:`attributes <arch_overview_attributes>`
         for expressive policies. Each attribute name provided in this field will be
         matched against that list and populated in the request_headers message.
         See the :ref:`attribute documentation <arch_overview_request_attributes>`
         for the list of supported attributes and their types.
         
        repeated string request_attributes = 5;
        Specified by:
        getRequestAttributes in interface ExternalProcessorOrBuilder
        Parameters:
        index - The index of the element to return.
        Returns:
        The requestAttributes at the given index.
      • getRequestAttributesBytes

        public com.google.protobuf.ByteString getRequestAttributesBytes​(int index)
         [#not-implemented-hide:]
         Envoy provides a number of :ref:`attributes <arch_overview_attributes>`
         for expressive policies. Each attribute name provided in this field will be
         matched against that list and populated in the request_headers message.
         See the :ref:`attribute documentation <arch_overview_request_attributes>`
         for the list of supported attributes and their types.
         
        repeated string request_attributes = 5;
        Specified by:
        getRequestAttributesBytes in interface ExternalProcessorOrBuilder
        Parameters:
        index - The index of the value to return.
        Returns:
        The bytes of the requestAttributes at the given index.
      • setRequestAttributes

        public ExternalProcessor.Builder setRequestAttributes​(int index,
                                                              String value)
         [#not-implemented-hide:]
         Envoy provides a number of :ref:`attributes <arch_overview_attributes>`
         for expressive policies. Each attribute name provided in this field will be
         matched against that list and populated in the request_headers message.
         See the :ref:`attribute documentation <arch_overview_request_attributes>`
         for the list of supported attributes and their types.
         
        repeated string request_attributes = 5;
        Parameters:
        index - The index to set the value at.
        value - The requestAttributes to set.
        Returns:
        This builder for chaining.
      • addRequestAttributes

        public ExternalProcessor.Builder addRequestAttributes​(String value)
         [#not-implemented-hide:]
         Envoy provides a number of :ref:`attributes <arch_overview_attributes>`
         for expressive policies. Each attribute name provided in this field will be
         matched against that list and populated in the request_headers message.
         See the :ref:`attribute documentation <arch_overview_request_attributes>`
         for the list of supported attributes and their types.
         
        repeated string request_attributes = 5;
        Parameters:
        value - The requestAttributes to add.
        Returns:
        This builder for chaining.
      • addAllRequestAttributes

        public ExternalProcessor.Builder addAllRequestAttributes​(Iterable<String> values)
         [#not-implemented-hide:]
         Envoy provides a number of :ref:`attributes <arch_overview_attributes>`
         for expressive policies. Each attribute name provided in this field will be
         matched against that list and populated in the request_headers message.
         See the :ref:`attribute documentation <arch_overview_request_attributes>`
         for the list of supported attributes and their types.
         
        repeated string request_attributes = 5;
        Parameters:
        values - The requestAttributes to add.
        Returns:
        This builder for chaining.
      • clearRequestAttributes

        public ExternalProcessor.Builder clearRequestAttributes()
         [#not-implemented-hide:]
         Envoy provides a number of :ref:`attributes <arch_overview_attributes>`
         for expressive policies. Each attribute name provided in this field will be
         matched against that list and populated in the request_headers message.
         See the :ref:`attribute documentation <arch_overview_request_attributes>`
         for the list of supported attributes and their types.
         
        repeated string request_attributes = 5;
        Returns:
        This builder for chaining.
      • addRequestAttributesBytes

        public ExternalProcessor.Builder addRequestAttributesBytes​(com.google.protobuf.ByteString value)
         [#not-implemented-hide:]
         Envoy provides a number of :ref:`attributes <arch_overview_attributes>`
         for expressive policies. Each attribute name provided in this field will be
         matched against that list and populated in the request_headers message.
         See the :ref:`attribute documentation <arch_overview_request_attributes>`
         for the list of supported attributes and their types.
         
        repeated string request_attributes = 5;
        Parameters:
        value - The bytes of the requestAttributes to add.
        Returns:
        This builder for chaining.
      • getResponseAttributesList

        public com.google.protobuf.ProtocolStringList getResponseAttributesList()
         [#not-implemented-hide:]
         Envoy provides a number of :ref:`attributes <arch_overview_attributes>`
         for expressive policies. Each attribute name provided in this field will be
         matched against that list and populated in the response_headers message.
         See the :ref:`attribute documentation <arch_overview_attributes>`
         for the list of supported attributes and their types.
         
        repeated string response_attributes = 6;
        Specified by:
        getResponseAttributesList in interface ExternalProcessorOrBuilder
        Returns:
        A list containing the responseAttributes.
      • getResponseAttributesCount

        public int getResponseAttributesCount()
         [#not-implemented-hide:]
         Envoy provides a number of :ref:`attributes <arch_overview_attributes>`
         for expressive policies. Each attribute name provided in this field will be
         matched against that list and populated in the response_headers message.
         See the :ref:`attribute documentation <arch_overview_attributes>`
         for the list of supported attributes and their types.
         
        repeated string response_attributes = 6;
        Specified by:
        getResponseAttributesCount in interface ExternalProcessorOrBuilder
        Returns:
        The count of responseAttributes.
      • getResponseAttributes

        public String getResponseAttributes​(int index)
         [#not-implemented-hide:]
         Envoy provides a number of :ref:`attributes <arch_overview_attributes>`
         for expressive policies. Each attribute name provided in this field will be
         matched against that list and populated in the response_headers message.
         See the :ref:`attribute documentation <arch_overview_attributes>`
         for the list of supported attributes and their types.
         
        repeated string response_attributes = 6;
        Specified by:
        getResponseAttributes in interface ExternalProcessorOrBuilder
        Parameters:
        index - The index of the element to return.
        Returns:
        The responseAttributes at the given index.
      • getResponseAttributesBytes

        public com.google.protobuf.ByteString getResponseAttributesBytes​(int index)
         [#not-implemented-hide:]
         Envoy provides a number of :ref:`attributes <arch_overview_attributes>`
         for expressive policies. Each attribute name provided in this field will be
         matched against that list and populated in the response_headers message.
         See the :ref:`attribute documentation <arch_overview_attributes>`
         for the list of supported attributes and their types.
         
        repeated string response_attributes = 6;
        Specified by:
        getResponseAttributesBytes in interface ExternalProcessorOrBuilder
        Parameters:
        index - The index of the value to return.
        Returns:
        The bytes of the responseAttributes at the given index.
      • setResponseAttributes

        public ExternalProcessor.Builder setResponseAttributes​(int index,
                                                               String value)
         [#not-implemented-hide:]
         Envoy provides a number of :ref:`attributes <arch_overview_attributes>`
         for expressive policies. Each attribute name provided in this field will be
         matched against that list and populated in the response_headers message.
         See the :ref:`attribute documentation <arch_overview_attributes>`
         for the list of supported attributes and their types.
         
        repeated string response_attributes = 6;
        Parameters:
        index - The index to set the value at.
        value - The responseAttributes to set.
        Returns:
        This builder for chaining.
      • addResponseAttributes

        public ExternalProcessor.Builder addResponseAttributes​(String value)
         [#not-implemented-hide:]
         Envoy provides a number of :ref:`attributes <arch_overview_attributes>`
         for expressive policies. Each attribute name provided in this field will be
         matched against that list and populated in the response_headers message.
         See the :ref:`attribute documentation <arch_overview_attributes>`
         for the list of supported attributes and their types.
         
        repeated string response_attributes = 6;
        Parameters:
        value - The responseAttributes to add.
        Returns:
        This builder for chaining.
      • addAllResponseAttributes

        public ExternalProcessor.Builder addAllResponseAttributes​(Iterable<String> values)
         [#not-implemented-hide:]
         Envoy provides a number of :ref:`attributes <arch_overview_attributes>`
         for expressive policies. Each attribute name provided in this field will be
         matched against that list and populated in the response_headers message.
         See the :ref:`attribute documentation <arch_overview_attributes>`
         for the list of supported attributes and their types.
         
        repeated string response_attributes = 6;
        Parameters:
        values - The responseAttributes to add.
        Returns:
        This builder for chaining.
      • clearResponseAttributes

        public ExternalProcessor.Builder clearResponseAttributes()
         [#not-implemented-hide:]
         Envoy provides a number of :ref:`attributes <arch_overview_attributes>`
         for expressive policies. Each attribute name provided in this field will be
         matched against that list and populated in the response_headers message.
         See the :ref:`attribute documentation <arch_overview_attributes>`
         for the list of supported attributes and their types.
         
        repeated string response_attributes = 6;
        Returns:
        This builder for chaining.
      • addResponseAttributesBytes

        public ExternalProcessor.Builder addResponseAttributesBytes​(com.google.protobuf.ByteString value)
         [#not-implemented-hide:]
         Envoy provides a number of :ref:`attributes <arch_overview_attributes>`
         for expressive policies. Each attribute name provided in this field will be
         matched against that list and populated in the response_headers message.
         See the :ref:`attribute documentation <arch_overview_attributes>`
         for the list of supported attributes and their types.
         
        repeated string response_attributes = 6;
        Parameters:
        value - The bytes of the responseAttributes to add.
        Returns:
        This builder for chaining.
      • hasMessageTimeout

        public boolean hasMessageTimeout()
         Specifies the timeout for each individual message sent on the stream and
         when the filter is running in synchronous mode. Whenever the proxy sends
         a message on the stream that requires a response, it will reset this timer,
         and will stop processing and return an error (subject to the processing mode)
         if the timer expires before a matching response is received. There is no
         timeout when the filter is running in asynchronous mode. Zero is a valid
         config which means the timer will be triggered immediately. If not
         configured, default is 200 milliseconds.
         
        .google.protobuf.Duration message_timeout = 7 [(.validate.rules) = { ... }
        Specified by:
        hasMessageTimeout in interface ExternalProcessorOrBuilder
        Returns:
        Whether the messageTimeout field is set.
      • getMessageTimeout

        public com.google.protobuf.Duration getMessageTimeout()
         Specifies the timeout for each individual message sent on the stream and
         when the filter is running in synchronous mode. Whenever the proxy sends
         a message on the stream that requires a response, it will reset this timer,
         and will stop processing and return an error (subject to the processing mode)
         if the timer expires before a matching response is received. There is no
         timeout when the filter is running in asynchronous mode. Zero is a valid
         config which means the timer will be triggered immediately. If not
         configured, default is 200 milliseconds.
         
        .google.protobuf.Duration message_timeout = 7 [(.validate.rules) = { ... }
        Specified by:
        getMessageTimeout in interface ExternalProcessorOrBuilder
        Returns:
        The messageTimeout.
      • setMessageTimeout

        public ExternalProcessor.Builder setMessageTimeout​(com.google.protobuf.Duration value)
         Specifies the timeout for each individual message sent on the stream and
         when the filter is running in synchronous mode. Whenever the proxy sends
         a message on the stream that requires a response, it will reset this timer,
         and will stop processing and return an error (subject to the processing mode)
         if the timer expires before a matching response is received. There is no
         timeout when the filter is running in asynchronous mode. Zero is a valid
         config which means the timer will be triggered immediately. If not
         configured, default is 200 milliseconds.
         
        .google.protobuf.Duration message_timeout = 7 [(.validate.rules) = { ... }
      • setMessageTimeout

        public ExternalProcessor.Builder setMessageTimeout​(com.google.protobuf.Duration.Builder builderForValue)
         Specifies the timeout for each individual message sent on the stream and
         when the filter is running in synchronous mode. Whenever the proxy sends
         a message on the stream that requires a response, it will reset this timer,
         and will stop processing and return an error (subject to the processing mode)
         if the timer expires before a matching response is received. There is no
         timeout when the filter is running in asynchronous mode. Zero is a valid
         config which means the timer will be triggered immediately. If not
         configured, default is 200 milliseconds.
         
        .google.protobuf.Duration message_timeout = 7 [(.validate.rules) = { ... }
      • mergeMessageTimeout

        public ExternalProcessor.Builder mergeMessageTimeout​(com.google.protobuf.Duration value)
         Specifies the timeout for each individual message sent on the stream and
         when the filter is running in synchronous mode. Whenever the proxy sends
         a message on the stream that requires a response, it will reset this timer,
         and will stop processing and return an error (subject to the processing mode)
         if the timer expires before a matching response is received. There is no
         timeout when the filter is running in asynchronous mode. Zero is a valid
         config which means the timer will be triggered immediately. If not
         configured, default is 200 milliseconds.
         
        .google.protobuf.Duration message_timeout = 7 [(.validate.rules) = { ... }
      • clearMessageTimeout

        public ExternalProcessor.Builder clearMessageTimeout()
         Specifies the timeout for each individual message sent on the stream and
         when the filter is running in synchronous mode. Whenever the proxy sends
         a message on the stream that requires a response, it will reset this timer,
         and will stop processing and return an error (subject to the processing mode)
         if the timer expires before a matching response is received. There is no
         timeout when the filter is running in asynchronous mode. Zero is a valid
         config which means the timer will be triggered immediately. If not
         configured, default is 200 milliseconds.
         
        .google.protobuf.Duration message_timeout = 7 [(.validate.rules) = { ... }
      • getMessageTimeoutBuilder

        public com.google.protobuf.Duration.Builder getMessageTimeoutBuilder()
         Specifies the timeout for each individual message sent on the stream and
         when the filter is running in synchronous mode. Whenever the proxy sends
         a message on the stream that requires a response, it will reset this timer,
         and will stop processing and return an error (subject to the processing mode)
         if the timer expires before a matching response is received. There is no
         timeout when the filter is running in asynchronous mode. Zero is a valid
         config which means the timer will be triggered immediately. If not
         configured, default is 200 milliseconds.
         
        .google.protobuf.Duration message_timeout = 7 [(.validate.rules) = { ... }
      • getMessageTimeoutOrBuilder

        public com.google.protobuf.DurationOrBuilder getMessageTimeoutOrBuilder()
         Specifies the timeout for each individual message sent on the stream and
         when the filter is running in synchronous mode. Whenever the proxy sends
         a message on the stream that requires a response, it will reset this timer,
         and will stop processing and return an error (subject to the processing mode)
         if the timer expires before a matching response is received. There is no
         timeout when the filter is running in asynchronous mode. Zero is a valid
         config which means the timer will be triggered immediately. If not
         configured, default is 200 milliseconds.
         
        .google.protobuf.Duration message_timeout = 7 [(.validate.rules) = { ... }
        Specified by:
        getMessageTimeoutOrBuilder in interface ExternalProcessorOrBuilder
      • getStatPrefix

        public String getStatPrefix()
         Optional additional prefix to use when emitting statistics. This allows to distinguish
         emitted statistics between configured *ext_proc* filters in an HTTP filter chain.
         
        string stat_prefix = 8;
        Specified by:
        getStatPrefix in interface ExternalProcessorOrBuilder
        Returns:
        The statPrefix.
      • getStatPrefixBytes

        public com.google.protobuf.ByteString getStatPrefixBytes()
         Optional additional prefix to use when emitting statistics. This allows to distinguish
         emitted statistics between configured *ext_proc* filters in an HTTP filter chain.
         
        string stat_prefix = 8;
        Specified by:
        getStatPrefixBytes in interface ExternalProcessorOrBuilder
        Returns:
        The bytes for statPrefix.
      • setStatPrefix

        public ExternalProcessor.Builder setStatPrefix​(String value)
         Optional additional prefix to use when emitting statistics. This allows to distinguish
         emitted statistics between configured *ext_proc* filters in an HTTP filter chain.
         
        string stat_prefix = 8;
        Parameters:
        value - The statPrefix to set.
        Returns:
        This builder for chaining.
      • clearStatPrefix

        public ExternalProcessor.Builder clearStatPrefix()
         Optional additional prefix to use when emitting statistics. This allows to distinguish
         emitted statistics between configured *ext_proc* filters in an HTTP filter chain.
         
        string stat_prefix = 8;
        Returns:
        This builder for chaining.
      • setStatPrefixBytes

        public ExternalProcessor.Builder setStatPrefixBytes​(com.google.protobuf.ByteString value)
         Optional additional prefix to use when emitting statistics. This allows to distinguish
         emitted statistics between configured *ext_proc* filters in an HTTP filter chain.
         
        string stat_prefix = 8;
        Parameters:
        value - The bytes for statPrefix to set.
        Returns:
        This builder for chaining.
      • hasMutationRules

        public boolean hasMutationRules()
         Rules that determine what modifications an external processing server may
         make to message headers. If not set, all headers may be modified except
         for "host", ":authority", ":scheme", ":method", and headers that start
         with the header prefix set via
         :ref:`header_prefix <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.header_prefix>`
         (which is usually "x-envoy").
         Note that changing headers such as "host" or ":authority" may not in itself
         change Envoy's routing decision, as routes can be cached. To also force the
         route to be recomputed, set the
         :ref:`clear_route_cache <envoy_v3_api_field_service.ext_proc.v3.CommonResponse.clear_route_cache>`
         field to true in the same response.
         
        .envoy.config.common.mutation_rules.v3.HeaderMutationRules mutation_rules = 9;
        Specified by:
        hasMutationRules in interface ExternalProcessorOrBuilder
        Returns:
        Whether the mutationRules field is set.
      • getMutationRules

        public HeaderMutationRules getMutationRules()
         Rules that determine what modifications an external processing server may
         make to message headers. If not set, all headers may be modified except
         for "host", ":authority", ":scheme", ":method", and headers that start
         with the header prefix set via
         :ref:`header_prefix <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.header_prefix>`
         (which is usually "x-envoy").
         Note that changing headers such as "host" or ":authority" may not in itself
         change Envoy's routing decision, as routes can be cached. To also force the
         route to be recomputed, set the
         :ref:`clear_route_cache <envoy_v3_api_field_service.ext_proc.v3.CommonResponse.clear_route_cache>`
         field to true in the same response.
         
        .envoy.config.common.mutation_rules.v3.HeaderMutationRules mutation_rules = 9;
        Specified by:
        getMutationRules in interface ExternalProcessorOrBuilder
        Returns:
        The mutationRules.
      • setMutationRules

        public ExternalProcessor.Builder setMutationRules​(HeaderMutationRules value)
         Rules that determine what modifications an external processing server may
         make to message headers. If not set, all headers may be modified except
         for "host", ":authority", ":scheme", ":method", and headers that start
         with the header prefix set via
         :ref:`header_prefix <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.header_prefix>`
         (which is usually "x-envoy").
         Note that changing headers such as "host" or ":authority" may not in itself
         change Envoy's routing decision, as routes can be cached. To also force the
         route to be recomputed, set the
         :ref:`clear_route_cache <envoy_v3_api_field_service.ext_proc.v3.CommonResponse.clear_route_cache>`
         field to true in the same response.
         
        .envoy.config.common.mutation_rules.v3.HeaderMutationRules mutation_rules = 9;
      • setMutationRules

        public ExternalProcessor.Builder setMutationRules​(HeaderMutationRules.Builder builderForValue)
         Rules that determine what modifications an external processing server may
         make to message headers. If not set, all headers may be modified except
         for "host", ":authority", ":scheme", ":method", and headers that start
         with the header prefix set via
         :ref:`header_prefix <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.header_prefix>`
         (which is usually "x-envoy").
         Note that changing headers such as "host" or ":authority" may not in itself
         change Envoy's routing decision, as routes can be cached. To also force the
         route to be recomputed, set the
         :ref:`clear_route_cache <envoy_v3_api_field_service.ext_proc.v3.CommonResponse.clear_route_cache>`
         field to true in the same response.
         
        .envoy.config.common.mutation_rules.v3.HeaderMutationRules mutation_rules = 9;
      • mergeMutationRules

        public ExternalProcessor.Builder mergeMutationRules​(HeaderMutationRules value)
         Rules that determine what modifications an external processing server may
         make to message headers. If not set, all headers may be modified except
         for "host", ":authority", ":scheme", ":method", and headers that start
         with the header prefix set via
         :ref:`header_prefix <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.header_prefix>`
         (which is usually "x-envoy").
         Note that changing headers such as "host" or ":authority" may not in itself
         change Envoy's routing decision, as routes can be cached. To also force the
         route to be recomputed, set the
         :ref:`clear_route_cache <envoy_v3_api_field_service.ext_proc.v3.CommonResponse.clear_route_cache>`
         field to true in the same response.
         
        .envoy.config.common.mutation_rules.v3.HeaderMutationRules mutation_rules = 9;
      • clearMutationRules

        public ExternalProcessor.Builder clearMutationRules()
         Rules that determine what modifications an external processing server may
         make to message headers. If not set, all headers may be modified except
         for "host", ":authority", ":scheme", ":method", and headers that start
         with the header prefix set via
         :ref:`header_prefix <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.header_prefix>`
         (which is usually "x-envoy").
         Note that changing headers such as "host" or ":authority" may not in itself
         change Envoy's routing decision, as routes can be cached. To also force the
         route to be recomputed, set the
         :ref:`clear_route_cache <envoy_v3_api_field_service.ext_proc.v3.CommonResponse.clear_route_cache>`
         field to true in the same response.
         
        .envoy.config.common.mutation_rules.v3.HeaderMutationRules mutation_rules = 9;
      • getMutationRulesBuilder

        public HeaderMutationRules.Builder getMutationRulesBuilder()
         Rules that determine what modifications an external processing server may
         make to message headers. If not set, all headers may be modified except
         for "host", ":authority", ":scheme", ":method", and headers that start
         with the header prefix set via
         :ref:`header_prefix <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.header_prefix>`
         (which is usually "x-envoy").
         Note that changing headers such as "host" or ":authority" may not in itself
         change Envoy's routing decision, as routes can be cached. To also force the
         route to be recomputed, set the
         :ref:`clear_route_cache <envoy_v3_api_field_service.ext_proc.v3.CommonResponse.clear_route_cache>`
         field to true in the same response.
         
        .envoy.config.common.mutation_rules.v3.HeaderMutationRules mutation_rules = 9;
      • getMutationRulesOrBuilder

        public HeaderMutationRulesOrBuilder getMutationRulesOrBuilder()
         Rules that determine what modifications an external processing server may
         make to message headers. If not set, all headers may be modified except
         for "host", ":authority", ":scheme", ":method", and headers that start
         with the header prefix set via
         :ref:`header_prefix <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.header_prefix>`
         (which is usually "x-envoy").
         Note that changing headers such as "host" or ":authority" may not in itself
         change Envoy's routing decision, as routes can be cached. To also force the
         route to be recomputed, set the
         :ref:`clear_route_cache <envoy_v3_api_field_service.ext_proc.v3.CommonResponse.clear_route_cache>`
         field to true in the same response.
         
        .envoy.config.common.mutation_rules.v3.HeaderMutationRules mutation_rules = 9;
        Specified by:
        getMutationRulesOrBuilder in interface ExternalProcessorOrBuilder
      • hasMaxMessageTimeout

        public boolean hasMaxMessageTimeout()
         Specify the upper bound of
         :ref:`override_message_timeout <envoy_v3_api_field_service.ext_proc.v3.ProcessingResponse.override_message_timeout>`
         If not specified, by default it is 0, which will effectively disable the ``override_message_timeout`` API.
         
        .google.protobuf.Duration max_message_timeout = 10 [(.validate.rules) = { ... }
        Specified by:
        hasMaxMessageTimeout in interface ExternalProcessorOrBuilder
        Returns:
        Whether the maxMessageTimeout field is set.
      • getMaxMessageTimeout

        public com.google.protobuf.Duration getMaxMessageTimeout()
         Specify the upper bound of
         :ref:`override_message_timeout <envoy_v3_api_field_service.ext_proc.v3.ProcessingResponse.override_message_timeout>`
         If not specified, by default it is 0, which will effectively disable the ``override_message_timeout`` API.
         
        .google.protobuf.Duration max_message_timeout = 10 [(.validate.rules) = { ... }
        Specified by:
        getMaxMessageTimeout in interface ExternalProcessorOrBuilder
        Returns:
        The maxMessageTimeout.
      • setMaxMessageTimeout

        public ExternalProcessor.Builder setMaxMessageTimeout​(com.google.protobuf.Duration value)
         Specify the upper bound of
         :ref:`override_message_timeout <envoy_v3_api_field_service.ext_proc.v3.ProcessingResponse.override_message_timeout>`
         If not specified, by default it is 0, which will effectively disable the ``override_message_timeout`` API.
         
        .google.protobuf.Duration max_message_timeout = 10 [(.validate.rules) = { ... }
      • setMaxMessageTimeout

        public ExternalProcessor.Builder setMaxMessageTimeout​(com.google.protobuf.Duration.Builder builderForValue)
         Specify the upper bound of
         :ref:`override_message_timeout <envoy_v3_api_field_service.ext_proc.v3.ProcessingResponse.override_message_timeout>`
         If not specified, by default it is 0, which will effectively disable the ``override_message_timeout`` API.
         
        .google.protobuf.Duration max_message_timeout = 10 [(.validate.rules) = { ... }
      • mergeMaxMessageTimeout

        public ExternalProcessor.Builder mergeMaxMessageTimeout​(com.google.protobuf.Duration value)
         Specify the upper bound of
         :ref:`override_message_timeout <envoy_v3_api_field_service.ext_proc.v3.ProcessingResponse.override_message_timeout>`
         If not specified, by default it is 0, which will effectively disable the ``override_message_timeout`` API.
         
        .google.protobuf.Duration max_message_timeout = 10 [(.validate.rules) = { ... }
      • clearMaxMessageTimeout

        public ExternalProcessor.Builder clearMaxMessageTimeout()
         Specify the upper bound of
         :ref:`override_message_timeout <envoy_v3_api_field_service.ext_proc.v3.ProcessingResponse.override_message_timeout>`
         If not specified, by default it is 0, which will effectively disable the ``override_message_timeout`` API.
         
        .google.protobuf.Duration max_message_timeout = 10 [(.validate.rules) = { ... }
      • getMaxMessageTimeoutBuilder

        public com.google.protobuf.Duration.Builder getMaxMessageTimeoutBuilder()
         Specify the upper bound of
         :ref:`override_message_timeout <envoy_v3_api_field_service.ext_proc.v3.ProcessingResponse.override_message_timeout>`
         If not specified, by default it is 0, which will effectively disable the ``override_message_timeout`` API.
         
        .google.protobuf.Duration max_message_timeout = 10 [(.validate.rules) = { ... }
      • getMaxMessageTimeoutOrBuilder

        public com.google.protobuf.DurationOrBuilder getMaxMessageTimeoutOrBuilder()
         Specify the upper bound of
         :ref:`override_message_timeout <envoy_v3_api_field_service.ext_proc.v3.ProcessingResponse.override_message_timeout>`
         If not specified, by default it is 0, which will effectively disable the ``override_message_timeout`` API.
         
        .google.protobuf.Duration max_message_timeout = 10 [(.validate.rules) = { ... }
        Specified by:
        getMaxMessageTimeoutOrBuilder in interface ExternalProcessorOrBuilder
      • getDisableClearRouteCache

        public boolean getDisableClearRouteCache()
         Prevents clearing the route-cache when the
         :ref:`clear_route_cache <envoy_v3_api_field_service.ext_proc.v3.CommonResponse.clear_route_cache>`
         field is set in an external processor response.
         
        bool disable_clear_route_cache = 11;
        Specified by:
        getDisableClearRouteCache in interface ExternalProcessorOrBuilder
        Returns:
        The disableClearRouteCache.
      • setDisableClearRouteCache

        public ExternalProcessor.Builder setDisableClearRouteCache​(boolean value)
         Prevents clearing the route-cache when the
         :ref:`clear_route_cache <envoy_v3_api_field_service.ext_proc.v3.CommonResponse.clear_route_cache>`
         field is set in an external processor response.
         
        bool disable_clear_route_cache = 11;
        Parameters:
        value - The disableClearRouteCache to set.
        Returns:
        This builder for chaining.
      • clearDisableClearRouteCache

        public ExternalProcessor.Builder clearDisableClearRouteCache()
         Prevents clearing the route-cache when the
         :ref:`clear_route_cache <envoy_v3_api_field_service.ext_proc.v3.CommonResponse.clear_route_cache>`
         field is set in an external processor response.
         
        bool disable_clear_route_cache = 11;
        Returns:
        This builder for chaining.
      • hasForwardRules

        public boolean hasForwardRules()
         Allow headers matching the ``forward_rules`` to be forwarded to the external processing server.
         If not set, all headers are forwarded to the external processing server.
         
        .envoy.extensions.filters.http.ext_proc.v3.HeaderForwardingRules forward_rules = 12;
        Specified by:
        hasForwardRules in interface ExternalProcessorOrBuilder
        Returns:
        Whether the forwardRules field is set.
      • getForwardRules

        public HeaderForwardingRules getForwardRules()
         Allow headers matching the ``forward_rules`` to be forwarded to the external processing server.
         If not set, all headers are forwarded to the external processing server.
         
        .envoy.extensions.filters.http.ext_proc.v3.HeaderForwardingRules forward_rules = 12;
        Specified by:
        getForwardRules in interface ExternalProcessorOrBuilder
        Returns:
        The forwardRules.
      • setForwardRules

        public ExternalProcessor.Builder setForwardRules​(HeaderForwardingRules value)
         Allow headers matching the ``forward_rules`` to be forwarded to the external processing server.
         If not set, all headers are forwarded to the external processing server.
         
        .envoy.extensions.filters.http.ext_proc.v3.HeaderForwardingRules forward_rules = 12;
      • setForwardRules

        public ExternalProcessor.Builder setForwardRules​(HeaderForwardingRules.Builder builderForValue)
         Allow headers matching the ``forward_rules`` to be forwarded to the external processing server.
         If not set, all headers are forwarded to the external processing server.
         
        .envoy.extensions.filters.http.ext_proc.v3.HeaderForwardingRules forward_rules = 12;
      • mergeForwardRules

        public ExternalProcessor.Builder mergeForwardRules​(HeaderForwardingRules value)
         Allow headers matching the ``forward_rules`` to be forwarded to the external processing server.
         If not set, all headers are forwarded to the external processing server.
         
        .envoy.extensions.filters.http.ext_proc.v3.HeaderForwardingRules forward_rules = 12;
      • clearForwardRules

        public ExternalProcessor.Builder clearForwardRules()
         Allow headers matching the ``forward_rules`` to be forwarded to the external processing server.
         If not set, all headers are forwarded to the external processing server.
         
        .envoy.extensions.filters.http.ext_proc.v3.HeaderForwardingRules forward_rules = 12;
      • getForwardRulesBuilder

        public HeaderForwardingRules.Builder getForwardRulesBuilder()
         Allow headers matching the ``forward_rules`` to be forwarded to the external processing server.
         If not set, all headers are forwarded to the external processing server.
         
        .envoy.extensions.filters.http.ext_proc.v3.HeaderForwardingRules forward_rules = 12;
      • getForwardRulesOrBuilder

        public HeaderForwardingRulesOrBuilder getForwardRulesOrBuilder()
         Allow headers matching the ``forward_rules`` to be forwarded to the external processing server.
         If not set, all headers are forwarded to the external processing server.
         
        .envoy.extensions.filters.http.ext_proc.v3.HeaderForwardingRules forward_rules = 12;
        Specified by:
        getForwardRulesOrBuilder in interface ExternalProcessorOrBuilder
      • hasFilterMetadata

        public boolean hasFilterMetadata()
         Additional metadata to be added to the filter state for logging purposes. The metadata
         will be added to StreamInfo's filter state under the namespace corresponding to the
         ext_proc filter name.
         
        .google.protobuf.Struct filter_metadata = 13;
        Specified by:
        hasFilterMetadata in interface ExternalProcessorOrBuilder
        Returns:
        Whether the filterMetadata field is set.
      • getFilterMetadata

        public com.google.protobuf.Struct getFilterMetadata()
         Additional metadata to be added to the filter state for logging purposes. The metadata
         will be added to StreamInfo's filter state under the namespace corresponding to the
         ext_proc filter name.
         
        .google.protobuf.Struct filter_metadata = 13;
        Specified by:
        getFilterMetadata in interface ExternalProcessorOrBuilder
        Returns:
        The filterMetadata.
      • setFilterMetadata

        public ExternalProcessor.Builder setFilterMetadata​(com.google.protobuf.Struct value)
         Additional metadata to be added to the filter state for logging purposes. The metadata
         will be added to StreamInfo's filter state under the namespace corresponding to the
         ext_proc filter name.
         
        .google.protobuf.Struct filter_metadata = 13;
      • setFilterMetadata

        public ExternalProcessor.Builder setFilterMetadata​(com.google.protobuf.Struct.Builder builderForValue)
         Additional metadata to be added to the filter state for logging purposes. The metadata
         will be added to StreamInfo's filter state under the namespace corresponding to the
         ext_proc filter name.
         
        .google.protobuf.Struct filter_metadata = 13;
      • mergeFilterMetadata

        public ExternalProcessor.Builder mergeFilterMetadata​(com.google.protobuf.Struct value)
         Additional metadata to be added to the filter state for logging purposes. The metadata
         will be added to StreamInfo's filter state under the namespace corresponding to the
         ext_proc filter name.
         
        .google.protobuf.Struct filter_metadata = 13;
      • clearFilterMetadata

        public ExternalProcessor.Builder clearFilterMetadata()
         Additional metadata to be added to the filter state for logging purposes. The metadata
         will be added to StreamInfo's filter state under the namespace corresponding to the
         ext_proc filter name.
         
        .google.protobuf.Struct filter_metadata = 13;
      • getFilterMetadataBuilder

        public com.google.protobuf.Struct.Builder getFilterMetadataBuilder()
         Additional metadata to be added to the filter state for logging purposes. The metadata
         will be added to StreamInfo's filter state under the namespace corresponding to the
         ext_proc filter name.
         
        .google.protobuf.Struct filter_metadata = 13;
      • getFilterMetadataOrBuilder

        public com.google.protobuf.StructOrBuilder getFilterMetadataOrBuilder()
         Additional metadata to be added to the filter state for logging purposes. The metadata
         will be added to StreamInfo's filter state under the namespace corresponding to the
         ext_proc filter name.
         
        .google.protobuf.Struct filter_metadata = 13;
        Specified by:
        getFilterMetadataOrBuilder in interface ExternalProcessorOrBuilder
      • getAllowModeOverride

        public boolean getAllowModeOverride()
         If ``allow_mode_override`` is set to true, the filter config :ref:`processing_mode
         <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.processing_mode>`
         can be overridden by the response message from the external processing server
         :ref:`mode_override <envoy_v3_api_field_service.ext_proc.v3.ProcessingResponse.mode_override>`.
         If not set, ``mode_override`` API in the response message will be ignored.
         
        bool allow_mode_override = 14;
        Specified by:
        getAllowModeOverride in interface ExternalProcessorOrBuilder
        Returns:
        The allowModeOverride.
      • setAllowModeOverride

        public ExternalProcessor.Builder setAllowModeOverride​(boolean value)
         If ``allow_mode_override`` is set to true, the filter config :ref:`processing_mode
         <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.processing_mode>`
         can be overridden by the response message from the external processing server
         :ref:`mode_override <envoy_v3_api_field_service.ext_proc.v3.ProcessingResponse.mode_override>`.
         If not set, ``mode_override`` API in the response message will be ignored.
         
        bool allow_mode_override = 14;
        Parameters:
        value - The allowModeOverride to set.
        Returns:
        This builder for chaining.
      • clearAllowModeOverride

        public ExternalProcessor.Builder clearAllowModeOverride()
         If ``allow_mode_override`` is set to true, the filter config :ref:`processing_mode
         <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.processing_mode>`
         can be overridden by the response message from the external processing server
         :ref:`mode_override <envoy_v3_api_field_service.ext_proc.v3.ProcessingResponse.mode_override>`.
         If not set, ``mode_override`` API in the response message will be ignored.
         
        bool allow_mode_override = 14;
        Returns:
        This builder for chaining.
      • getDisableImmediateResponse

        public boolean getDisableImmediateResponse()
         If set to true, ignore the
         :ref:`immediate_response <envoy_v3_api_field_service.ext_proc.v3.ProcessingResponse.immediate_response>`
         message in an external processor response. In such case, no local reply will be sent.
         Instead, the stream to the external processor will be closed. There will be no
         more external processing for this stream from now on.
         
        bool disable_immediate_response = 15;
        Specified by:
        getDisableImmediateResponse in interface ExternalProcessorOrBuilder
        Returns:
        The disableImmediateResponse.
      • setDisableImmediateResponse

        public ExternalProcessor.Builder setDisableImmediateResponse​(boolean value)
         If set to true, ignore the
         :ref:`immediate_response <envoy_v3_api_field_service.ext_proc.v3.ProcessingResponse.immediate_response>`
         message in an external processor response. In such case, no local reply will be sent.
         Instead, the stream to the external processor will be closed. There will be no
         more external processing for this stream from now on.
         
        bool disable_immediate_response = 15;
        Parameters:
        value - The disableImmediateResponse to set.
        Returns:
        This builder for chaining.
      • clearDisableImmediateResponse

        public ExternalProcessor.Builder clearDisableImmediateResponse()
         If set to true, ignore the
         :ref:`immediate_response <envoy_v3_api_field_service.ext_proc.v3.ProcessingResponse.immediate_response>`
         message in an external processor response. In such case, no local reply will be sent.
         Instead, the stream to the external processor will be closed. There will be no
         more external processing for this stream from now on.
         
        bool disable_immediate_response = 15;
        Returns:
        This builder for chaining.
      • setUnknownFields

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

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