Interface ExternalProcessorOrBuilder

All Superinterfaces:
com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder
All Known Implementing Classes:
ExternalProcessor, ExternalProcessor.Builder

public interface ExternalProcessorOrBuilder extends com.google.protobuf.MessageOrBuilder
  • Method Summary

    Modifier and Type
    Method
    Description
    When :ref:`allow_mode_override <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.allow_mode_override>` is enabled and ``allowed_override_modes`` is configured, the filter config :ref:`processing_mode <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.processing_mode>` can only be overridden by the response message from the external processing server iff the :ref:`mode_override <envoy_v3_api_field_service.ext_proc.v3.ProcessingResponse.mode_override>` is allowed by the ``allowed_override_modes`` allow-list below.
    int
    When :ref:`allow_mode_override <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.allow_mode_override>` is enabled and ``allowed_override_modes`` is configured, the filter config :ref:`processing_mode <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.processing_mode>` can only be overridden by the response message from the external processing server iff the :ref:`mode_override <envoy_v3_api_field_service.ext_proc.v3.ProcessingResponse.mode_override>` is allowed by the ``allowed_override_modes`` allow-list below.
    When :ref:`allow_mode_override <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.allow_mode_override>` is enabled and ``allowed_override_modes`` is configured, the filter config :ref:`processing_mode <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.processing_mode>` can only be overridden by the response message from the external processing server iff the :ref:`mode_override <envoy_v3_api_field_service.ext_proc.v3.ProcessingResponse.mode_override>` is allowed by the ``allowed_override_modes`` allow-list below.
    When :ref:`allow_mode_override <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.allow_mode_override>` is enabled and ``allowed_override_modes`` is configured, the filter config :ref:`processing_mode <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.processing_mode>` can only be overridden by the response message from the external processing server iff the :ref:`mode_override <envoy_v3_api_field_service.ext_proc.v3.ProcessingResponse.mode_override>` is allowed by the ``allowed_override_modes`` allow-list below.
    When :ref:`allow_mode_override <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.allow_mode_override>` is enabled and ``allowed_override_modes`` is configured, the filter config :ref:`processing_mode <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.processing_mode>` can only be overridden by the response message from the external processing server iff the :ref:`mode_override <envoy_v3_api_field_service.ext_proc.v3.ProcessingResponse.mode_override>` is allowed by the ``allowed_override_modes`` allow-list below.
    boolean
    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>`.
    com.google.protobuf.Duration
    Specifies the deferred closure timeout for gRPC stream that connects to external processor.
    com.google.protobuf.DurationOrBuilder
    Specifies the deferred closure timeout for gRPC stream that connects to external processor.
    boolean
    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.
    boolean
    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.
    boolean
    By default, if in the following cases: 1.
    com.google.protobuf.Struct
    Additional metadata to be added to the filter state for logging purposes.
    com.google.protobuf.StructOrBuilder
    Additional metadata to be added to the filter state for logging purposes.
    Allow headers matching the ``forward_rules`` to be forwarded to the external processing server.
    Allow headers matching the ``forward_rules`` to be forwarded to the external processing server.
    Configuration for the gRPC service that the filter will communicate with.
    Configuration for the gRPC service that the filter will communicate with.
    Configuration for the HTTP service that the filter will communicate with.
    Configuration for the HTTP service that the filter will communicate with.
    com.google.protobuf.Duration
    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.
    com.google.protobuf.DurationOrBuilder
    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.
    com.google.protobuf.Duration
    Specifies the timeout for each individual message sent on the stream.
    com.google.protobuf.DurationOrBuilder
    Specifies the timeout for each individual message sent on the stream.
    Options related to the sending and receiving of dynamic metadata.
    Options related to the sending and receiving of dynamic metadata.
    Rules that determine what modifications an external processing server may make to message headers.
    Rules that determine what modifications an external processing server may make to message headers.
    boolean
    If true, send each part of the HTTP request or response specified by ``ProcessingMode`` without pausing on filter chain iteration.
    Decorator to introduce custom logic that runs after a message received from the External Processor is processed, but before continuing filter chain iteration. .. note:: Response processors are currently in alpha.
    Decorator to introduce custom logic that runs after a message received from the External Processor is processed, but before continuing filter chain iteration. .. note:: Response processors are currently in alpha.
    Specifies default options for how HTTP headers, trailers, and bodies are sent.
    Specifies default options for how HTTP headers, trailers, and bodies are sent.
    Decorator to introduce custom logic that runs after the ``ProcessingRequest`` is constructed, but before it is sent to the External Processor.
    Decorator to introduce custom logic that runs after the ``ProcessingRequest`` is constructed, but before it is sent to the External Processor.
    The data plane provides a number of :ref:`attributes <arch_overview_attributes>` for expressive policies.
    com.google.protobuf.ByteString
    The data plane provides a number of :ref:`attributes <arch_overview_attributes>` for expressive policies.
    int
    The data plane provides a number of :ref:`attributes <arch_overview_attributes>` for expressive policies.
    The data plane provides a number of :ref:`attributes <arch_overview_attributes>` for expressive policies.
    The data plane provides a number of :ref:`attributes <arch_overview_attributes>` for expressive policies.
    com.google.protobuf.ByteString
    The data plane provides a number of :ref:`attributes <arch_overview_attributes>` for expressive policies.
    int
    The data plane provides a number of :ref:`attributes <arch_overview_attributes>` for expressive policies.
    The data plane provides a number of :ref:`attributes <arch_overview_attributes>` for expressive policies.
    Specifies the action to be taken when an external processor response is received in response to request headers.
    int
    Specifies the action to be taken when an external processor response is received in response to request headers.
    boolean
    Send body to the side stream server once it arrives without waiting for the header response from that server.
    Optional additional prefix to use when emitting statistics.
    com.google.protobuf.ByteString
    Optional additional prefix to use when emitting statistics.
    Sets the HTTP status code that is returned to the client when the external processing server returns an error, fails to respond, or cannot be reached.
    Sets the HTTP status code that is returned to the client when the external processing server returns an error, fails to respond, or cannot be reached.
    boolean
    Specifies the deferred closure timeout for gRPC stream that connects to external processor.
    boolean
    Additional metadata to be added to the filter state for logging purposes.
    boolean
    Allow headers matching the ``forward_rules`` to be forwarded to the external processing server.
    boolean
    Configuration for the gRPC service that the filter will communicate with.
    boolean
    Configuration for the HTTP service that the filter will communicate with.
    boolean
    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.
    boolean
    Specifies the timeout for each individual message sent on the stream.
    boolean
    Options related to the sending and receiving of dynamic metadata.
    boolean
    Rules that determine what modifications an external processing server may make to message headers.
    boolean
    Decorator to introduce custom logic that runs after a message received from the External Processor is processed, but before continuing filter chain iteration. .. note:: Response processors are currently in alpha.
    boolean
    Specifies default options for how HTTP headers, trailers, and bodies are sent.
    boolean
    Decorator to introduce custom logic that runs after the ``ProcessingRequest`` is constructed, but before it is sent to the External Processor.
    boolean
    Sets the HTTP status code that is returned to the client when the external processing server returns an error, fails to respond, or cannot be reached.

    Methods inherited from interface com.google.protobuf.MessageLiteOrBuilder

    isInitialized

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    findInitializationErrors, getAllFields, getDefaultInstanceForType, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
  • Method Details

    • hasGrpcService

      boolean hasGrpcService()
       Configuration for the gRPC service that the filter will communicate with.
       Only one of ``grpc_service`` or ``http_service`` can be set.
       It is required that one of them must be set.
       
      .envoy.config.core.v3.GrpcService grpc_service = 1 [(.udpa.annotations.field_migrate) = { ... }
      Returns:
      Whether the grpcService field is set.
    • getGrpcService

      GrpcService getGrpcService()
       Configuration for the gRPC service that the filter will communicate with.
       Only one of ``grpc_service`` or ``http_service`` can be set.
       It is required that one of them must be set.
       
      .envoy.config.core.v3.GrpcService grpc_service = 1 [(.udpa.annotations.field_migrate) = { ... }
      Returns:
      The grpcService.
    • getGrpcServiceOrBuilder

      GrpcServiceOrBuilder getGrpcServiceOrBuilder()
       Configuration for the gRPC service that the filter will communicate with.
       Only one of ``grpc_service`` or ``http_service`` can be set.
       It is required that one of them must be set.
       
      .envoy.config.core.v3.GrpcService grpc_service = 1 [(.udpa.annotations.field_migrate) = { ... }
    • hasHttpService

      boolean hasHttpService()
       Configuration for the HTTP service that the filter will communicate with.
       Only one of ``http_service`` or
       :ref:`grpc_service <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.grpc_service>`
       can be set. It is required that one of them must be set.
      
       If ``http_service`` is set, the
       :ref:`processing_mode <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.processing_mode>`
       cannot be configured to send any body or trailers. i.e., ``http_service`` only supports
       sending request or response headers to the side stream server.
      
       With this configuration, the data plane behavior is:
      
       1. The headers are first put in a proto message
       :ref:`ProcessingRequest <envoy_v3_api_msg_service.ext_proc.v3.ProcessingRequest>`.
      
       2. This proto message is then transcoded into a JSON text.
      
       3. The data plane then sends an HTTP POST message with content-type as "application/json",
       and this JSON text as body to the side stream server.
      
       After the side-stream receives this HTTP request message, it is expected to do as follows:
      
       1. It converts the body, which is a JSON string, into a ``ProcessingRequest``
       proto message to examine and mutate the headers.
      
       2. It then sets the mutated headers into a new proto message
       :ref:`ProcessingResponse <envoy_v3_api_msg_service.ext_proc.v3.ProcessingResponse>`.
      
       3. It converts the ``ProcessingResponse`` proto message into a JSON text.
      
       4. It then sends an HTTP response back to the data plane with status code as ``"200"``,
       ``content-type`` as ``"application/json"`` and sets the JSON text as the body.
       
      .envoy.extensions.filters.http.ext_proc.v3.ExtProcHttpService http_service = 20 [(.udpa.annotations.field_migrate) = { ... }
      Returns:
      Whether the httpService field is set.
    • getHttpService

      ExtProcHttpService getHttpService()
       Configuration for the HTTP service that the filter will communicate with.
       Only one of ``http_service`` or
       :ref:`grpc_service <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.grpc_service>`
       can be set. It is required that one of them must be set.
      
       If ``http_service`` is set, the
       :ref:`processing_mode <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.processing_mode>`
       cannot be configured to send any body or trailers. i.e., ``http_service`` only supports
       sending request or response headers to the side stream server.
      
       With this configuration, the data plane behavior is:
      
       1. The headers are first put in a proto message
       :ref:`ProcessingRequest <envoy_v3_api_msg_service.ext_proc.v3.ProcessingRequest>`.
      
       2. This proto message is then transcoded into a JSON text.
      
       3. The data plane then sends an HTTP POST message with content-type as "application/json",
       and this JSON text as body to the side stream server.
      
       After the side-stream receives this HTTP request message, it is expected to do as follows:
      
       1. It converts the body, which is a JSON string, into a ``ProcessingRequest``
       proto message to examine and mutate the headers.
      
       2. It then sets the mutated headers into a new proto message
       :ref:`ProcessingResponse <envoy_v3_api_msg_service.ext_proc.v3.ProcessingResponse>`.
      
       3. It converts the ``ProcessingResponse`` proto message into a JSON text.
      
       4. It then sends an HTTP response back to the data plane with status code as ``"200"``,
       ``content-type`` as ``"application/json"`` and sets the JSON text as the body.
       
      .envoy.extensions.filters.http.ext_proc.v3.ExtProcHttpService http_service = 20 [(.udpa.annotations.field_migrate) = { ... }
      Returns:
      The httpService.
    • getHttpServiceOrBuilder

      ExtProcHttpServiceOrBuilder getHttpServiceOrBuilder()
       Configuration for the HTTP service that the filter will communicate with.
       Only one of ``http_service`` or
       :ref:`grpc_service <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.grpc_service>`
       can be set. It is required that one of them must be set.
      
       If ``http_service`` is set, the
       :ref:`processing_mode <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.processing_mode>`
       cannot be configured to send any body or trailers. i.e., ``http_service`` only supports
       sending request or response headers to the side stream server.
      
       With this configuration, the data plane behavior is:
      
       1. The headers are first put in a proto message
       :ref:`ProcessingRequest <envoy_v3_api_msg_service.ext_proc.v3.ProcessingRequest>`.
      
       2. This proto message is then transcoded into a JSON text.
      
       3. The data plane then sends an HTTP POST message with content-type as "application/json",
       and this JSON text as body to the side stream server.
      
       After the side-stream receives this HTTP request message, it is expected to do as follows:
      
       1. It converts the body, which is a JSON string, into a ``ProcessingRequest``
       proto message to examine and mutate the headers.
      
       2. It then sets the mutated headers into a new proto message
       :ref:`ProcessingResponse <envoy_v3_api_msg_service.ext_proc.v3.ProcessingResponse>`.
      
       3. It converts the ``ProcessingResponse`` proto message into a JSON text.
      
       4. It then sends an HTTP response back to the data plane with status code as ``"200"``,
       ``content-type`` as ``"application/json"`` and sets the JSON text as the body.
       
      .envoy.extensions.filters.http.ext_proc.v3.ExtProcHttpService http_service = 20 [(.udpa.annotations.field_migrate) = { ... }
    • getFailureModeAllow

      boolean getFailureModeAllow()
       By default, if in the following cases:
      
       1. The gRPC stream cannot be established.
      
       2. The gRPC stream is closed prematurely with an error.
      
       3. The external processing timeouts.
      
       4. The ext_proc server sends back spurious response messages.
      
       The filter will fail and a local reply with error code
       504(for timeout case) or 500(for all other cases), will be sent to the downstream.
      
       However, with this parameter set to true and if the above cases happen, the processing
       continues without error.
       
      bool failure_mode_allow = 2;
      Returns:
      The failureModeAllow.
    • hasProcessingMode

      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;
      Returns:
      Whether the processingMode field is set.
    • getProcessingMode

      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;
      Returns:
      The processingMode.
    • getProcessingModeOrBuilder

      ProcessingModeOrBuilder getProcessingModeOrBuilder()
       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;
    • getRequestAttributesList

      List<String> getRequestAttributesList()
       The data plane 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
       :ref:`ProcessingRequest.attributes <envoy_v3_api_field_service.ext_proc.v3.ProcessingRequest.attributes>` field.
       See the :ref:`attribute documentation <arch_overview_request_attributes>`
       for the list of supported attributes and their types.
       
      repeated string request_attributes = 5;
      Returns:
      A list containing the requestAttributes.
    • getRequestAttributesCount

      int getRequestAttributesCount()
       The data plane 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
       :ref:`ProcessingRequest.attributes <envoy_v3_api_field_service.ext_proc.v3.ProcessingRequest.attributes>` field.
       See the :ref:`attribute documentation <arch_overview_request_attributes>`
       for the list of supported attributes and their types.
       
      repeated string request_attributes = 5;
      Returns:
      The count of requestAttributes.
    • getRequestAttributes

      String getRequestAttributes(int index)
       The data plane 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
       :ref:`ProcessingRequest.attributes <envoy_v3_api_field_service.ext_proc.v3.ProcessingRequest.attributes>` field.
       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 of the element to return.
      Returns:
      The requestAttributes at the given index.
    • getRequestAttributesBytes

      com.google.protobuf.ByteString getRequestAttributesBytes(int index)
       The data plane 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
       :ref:`ProcessingRequest.attributes <envoy_v3_api_field_service.ext_proc.v3.ProcessingRequest.attributes>` field.
       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 of the value to return.
      Returns:
      The bytes of the requestAttributes at the given index.
    • getResponseAttributesList

      List<String> getResponseAttributesList()
       The data plane 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
       :ref:`ProcessingRequest.attributes <envoy_v3_api_field_service.ext_proc.v3.ProcessingRequest.attributes>` field.
       See the :ref:`attribute documentation <arch_overview_attributes>`
       for the list of supported attributes and their types.
       
      repeated string response_attributes = 6;
      Returns:
      A list containing the responseAttributes.
    • getResponseAttributesCount

      int getResponseAttributesCount()
       The data plane 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
       :ref:`ProcessingRequest.attributes <envoy_v3_api_field_service.ext_proc.v3.ProcessingRequest.attributes>` field.
       See the :ref:`attribute documentation <arch_overview_attributes>`
       for the list of supported attributes and their types.
       
      repeated string response_attributes = 6;
      Returns:
      The count of responseAttributes.
    • getResponseAttributes

      String getResponseAttributes(int index)
       The data plane 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
       :ref:`ProcessingRequest.attributes <envoy_v3_api_field_service.ext_proc.v3.ProcessingRequest.attributes>` field.
       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 of the element to return.
      Returns:
      The responseAttributes at the given index.
    • getResponseAttributesBytes

      com.google.protobuf.ByteString getResponseAttributesBytes(int index)
       The data plane 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
       :ref:`ProcessingRequest.attributes <envoy_v3_api_field_service.ext_proc.v3.ProcessingRequest.attributes>` field.
       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 of the value to return.
      Returns:
      The bytes of the responseAttributes at the given index.
    • hasMessageTimeout

      boolean hasMessageTimeout()
       Specifies the timeout for each individual message sent on the stream.
       Whenever the data plane 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 observability mode or when the body send mode is
       ``FULL_DUPLEX_STREAMED`` or ``GRPC``. 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) = { ... }
      Returns:
      Whether the messageTimeout field is set.
    • getMessageTimeout

      com.google.protobuf.Duration getMessageTimeout()
       Specifies the timeout for each individual message sent on the stream.
       Whenever the data plane 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 observability mode or when the body send mode is
       ``FULL_DUPLEX_STREAMED`` or ``GRPC``. 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) = { ... }
      Returns:
      The messageTimeout.
    • getMessageTimeoutOrBuilder

      com.google.protobuf.DurationOrBuilder getMessageTimeoutOrBuilder()
       Specifies the timeout for each individual message sent on the stream.
       Whenever the data plane 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 observability mode or when the body send mode is
       ``FULL_DUPLEX_STREAMED`` or ``GRPC``. 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) = { ... }
    • getStatPrefix

      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;
      Returns:
      The statPrefix.
    • getStatPrefixBytes

      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;
      Returns:
      The bytes for statPrefix.
    • hasMutationRules

      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 the data plane'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;
      Returns:
      Whether the mutationRules field is set.
    • getMutationRules

      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 the data plane'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;
      Returns:
      The mutationRules.
    • getMutationRulesOrBuilder

      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 the data plane'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;
    • hasMaxMessageTimeout

      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) = { ... }
      Returns:
      Whether the maxMessageTimeout field is set.
    • getMaxMessageTimeout

      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) = { ... }
      Returns:
      The maxMessageTimeout.
    • getMaxMessageTimeoutOrBuilder

      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) = { ... }
    • hasForwardRules

      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;
      Returns:
      Whether the forwardRules field is set.
    • getForwardRules

      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;
      Returns:
      The forwardRules.
    • getForwardRulesOrBuilder

      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;
    • hasFilterMetadata

      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;
      Returns:
      Whether the filterMetadata field is set.
    • getFilterMetadata

      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;
      Returns:
      The filterMetadata.
    • getFilterMetadataOrBuilder

      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;
    • getAllowModeOverride

      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.
       Mode override is not supported if the body send mode is ``FULL_DUPLEX_STREAMED``.
       
      bool allow_mode_override = 14;
      Returns:
      The allowModeOverride.
    • getDisableImmediateResponse

      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;
      Returns:
      The disableImmediateResponse.
    • hasMetadataOptions

      boolean hasMetadataOptions()
       Options related to the sending and receiving of dynamic metadata.
       
      .envoy.extensions.filters.http.ext_proc.v3.MetadataOptions metadata_options = 16;
      Returns:
      Whether the metadataOptions field is set.
    • getMetadataOptions

      MetadataOptions getMetadataOptions()
       Options related to the sending and receiving of dynamic metadata.
       
      .envoy.extensions.filters.http.ext_proc.v3.MetadataOptions metadata_options = 16;
      Returns:
      The metadataOptions.
    • getMetadataOptionsOrBuilder

      MetadataOptionsOrBuilder getMetadataOptionsOrBuilder()
       Options related to the sending and receiving of dynamic metadata.
       
      .envoy.extensions.filters.http.ext_proc.v3.MetadataOptions metadata_options = 16;
    • getObservabilityMode

      boolean getObservabilityMode()
       If true, send each part of the HTTP request or response specified by ``ProcessingMode``
       without pausing on filter chain iteration. It is "Send and Go" mode that can be used
       by external processor to observe the request's data and status. In this mode:
      
       1. Only ``STREAMED``, ``GRPC``, and ``NONE`` body processing modes are supported; for any
       other body processing mode, the body will not be sent.
      
       2. External processor should not send back processing response, as any responses will be ignored.
       This also means that
       :ref:`message_timeout <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.message_timeout>`
       restriction doesn't apply to this mode.
      
       3. External processor may still close the stream to indicate that no more messages are needed.
      
       .. warning::
      
          Flow control is a necessary mechanism to prevent the fast sender (either downstream client or upstream server)
          from overwhelming the external processor when its processing speed is slower.
          This protective measure is being explored and developed but has not been ready yet, so please use your own
          discretion when enabling this feature.
          This work is currently tracked under https://github.com/envoyproxy/envoy/issues/33319.
       
      bool observability_mode = 17;
      Returns:
      The observabilityMode.
    • getDisableClearRouteCache

      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.
       Only one of ``disable_clear_route_cache`` or ``route_cache_action`` can be set.
       It is recommended to set ``route_cache_action`` which supersedes ``disable_clear_route_cache``.
       
      bool disable_clear_route_cache = 11 [(.udpa.annotations.field_migrate) = { ... }
      Returns:
      The disableClearRouteCache.
    • getRouteCacheActionValue

      int getRouteCacheActionValue()
       Specifies the action to be taken when an external processor response is
       received in response to request headers. It is recommended to set this field rather than set
       :ref:`disable_clear_route_cache <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.disable_clear_route_cache>`.
       Only one of ``disable_clear_route_cache`` or ``route_cache_action`` can be set.
       
      .envoy.extensions.filters.http.ext_proc.v3.ExternalProcessor.RouteCacheAction route_cache_action = 18 [(.udpa.annotations.field_migrate) = { ... }
      Returns:
      The enum numeric value on the wire for routeCacheAction.
    • getRouteCacheAction

      ExternalProcessor.RouteCacheAction getRouteCacheAction()
       Specifies the action to be taken when an external processor response is
       received in response to request headers. It is recommended to set this field rather than set
       :ref:`disable_clear_route_cache <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.disable_clear_route_cache>`.
       Only one of ``disable_clear_route_cache`` or ``route_cache_action`` can be set.
       
      .envoy.extensions.filters.http.ext_proc.v3.ExternalProcessor.RouteCacheAction route_cache_action = 18 [(.udpa.annotations.field_migrate) = { ... }
      Returns:
      The routeCacheAction.
    • hasDeferredCloseTimeout

      boolean hasDeferredCloseTimeout()
       Specifies the deferred closure timeout for gRPC stream that connects to external processor. Currently, the deferred stream closure
       is only used in :ref:`observability_mode <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.observability_mode>`.
       In observability mode, gRPC streams may be held open to the external processor longer than the lifetime of the regular client to
       backend stream lifetime. In this case, the data plane will eventually timeout the external processor stream according to this time limit.
       The default value is 5000 milliseconds (5 seconds) if not specified.
       
      .google.protobuf.Duration deferred_close_timeout = 19;
      Returns:
      Whether the deferredCloseTimeout field is set.
    • getDeferredCloseTimeout

      com.google.protobuf.Duration getDeferredCloseTimeout()
       Specifies the deferred closure timeout for gRPC stream that connects to external processor. Currently, the deferred stream closure
       is only used in :ref:`observability_mode <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.observability_mode>`.
       In observability mode, gRPC streams may be held open to the external processor longer than the lifetime of the regular client to
       backend stream lifetime. In this case, the data plane will eventually timeout the external processor stream according to this time limit.
       The default value is 5000 milliseconds (5 seconds) if not specified.
       
      .google.protobuf.Duration deferred_close_timeout = 19;
      Returns:
      The deferredCloseTimeout.
    • getDeferredCloseTimeoutOrBuilder

      com.google.protobuf.DurationOrBuilder getDeferredCloseTimeoutOrBuilder()
       Specifies the deferred closure timeout for gRPC stream that connects to external processor. Currently, the deferred stream closure
       is only used in :ref:`observability_mode <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.observability_mode>`.
       In observability mode, gRPC streams may be held open to the external processor longer than the lifetime of the regular client to
       backend stream lifetime. In this case, the data plane will eventually timeout the external processor stream according to this time limit.
       The default value is 5000 milliseconds (5 seconds) if not specified.
       
      .google.protobuf.Duration deferred_close_timeout = 19;
    • getSendBodyWithoutWaitingForHeaderResponse

      boolean getSendBodyWithoutWaitingForHeaderResponse()
       Send body to the side stream server once it arrives without waiting for the header response from that server.
       It only works for ``STREAMED`` body processing mode. For any other body
       processing modes, it is ignored.
       The server has two options upon receiving a header request:
      
       1. Instant Response: send the header response as soon as the header request is received.
      
       2. Delayed Response: wait for the body before sending any response.
      
       In all scenarios, the header-body ordering must always be maintained.
      
       If enabled the data plane will ignore the
       :ref:`mode_override <envoy_v3_api_field_service.ext_proc.v3.ProcessingResponse.mode_override>`
       value that the server sends in the header response. This is because the data plane may have already
       sent the body to the server, prior to processing the header response.
       
      bool send_body_without_waiting_for_header_response = 21;
      Returns:
      The sendBodyWithoutWaitingForHeaderResponse.
    • getAllowedOverrideModesList

      List<ProcessingMode> getAllowedOverrideModesList()
       When :ref:`allow_mode_override
       <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.allow_mode_override>` is enabled and
       ``allowed_override_modes`` is configured, the filter config :ref:`processing_mode
       <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.processing_mode>`
       can only be overridden by the response message from the external processing server iff the
       :ref:`mode_override <envoy_v3_api_field_service.ext_proc.v3.ProcessingResponse.mode_override>` is allowed by
       the ``allowed_override_modes`` allow-list below.
       Since ``request_header_mode`` is not applicable in any way, it's ignored in comparison.
       
      repeated .envoy.extensions.filters.http.ext_proc.v3.ProcessingMode allowed_override_modes = 22;
    • getAllowedOverrideModes

      ProcessingMode getAllowedOverrideModes(int index)
       When :ref:`allow_mode_override
       <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.allow_mode_override>` is enabled and
       ``allowed_override_modes`` is configured, the filter config :ref:`processing_mode
       <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.processing_mode>`
       can only be overridden by the response message from the external processing server iff the
       :ref:`mode_override <envoy_v3_api_field_service.ext_proc.v3.ProcessingResponse.mode_override>` is allowed by
       the ``allowed_override_modes`` allow-list below.
       Since ``request_header_mode`` is not applicable in any way, it's ignored in comparison.
       
      repeated .envoy.extensions.filters.http.ext_proc.v3.ProcessingMode allowed_override_modes = 22;
    • getAllowedOverrideModesCount

      int getAllowedOverrideModesCount()
       When :ref:`allow_mode_override
       <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.allow_mode_override>` is enabled and
       ``allowed_override_modes`` is configured, the filter config :ref:`processing_mode
       <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.processing_mode>`
       can only be overridden by the response message from the external processing server iff the
       :ref:`mode_override <envoy_v3_api_field_service.ext_proc.v3.ProcessingResponse.mode_override>` is allowed by
       the ``allowed_override_modes`` allow-list below.
       Since ``request_header_mode`` is not applicable in any way, it's ignored in comparison.
       
      repeated .envoy.extensions.filters.http.ext_proc.v3.ProcessingMode allowed_override_modes = 22;
    • getAllowedOverrideModesOrBuilderList

      List<? extends ProcessingModeOrBuilder> getAllowedOverrideModesOrBuilderList()
       When :ref:`allow_mode_override
       <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.allow_mode_override>` is enabled and
       ``allowed_override_modes`` is configured, the filter config :ref:`processing_mode
       <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.processing_mode>`
       can only be overridden by the response message from the external processing server iff the
       :ref:`mode_override <envoy_v3_api_field_service.ext_proc.v3.ProcessingResponse.mode_override>` is allowed by
       the ``allowed_override_modes`` allow-list below.
       Since ``request_header_mode`` is not applicable in any way, it's ignored in comparison.
       
      repeated .envoy.extensions.filters.http.ext_proc.v3.ProcessingMode allowed_override_modes = 22;
    • getAllowedOverrideModesOrBuilder

      ProcessingModeOrBuilder getAllowedOverrideModesOrBuilder(int index)
       When :ref:`allow_mode_override
       <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.allow_mode_override>` is enabled and
       ``allowed_override_modes`` is configured, the filter config :ref:`processing_mode
       <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.processing_mode>`
       can only be overridden by the response message from the external processing server iff the
       :ref:`mode_override <envoy_v3_api_field_service.ext_proc.v3.ProcessingResponse.mode_override>` is allowed by
       the ``allowed_override_modes`` allow-list below.
       Since ``request_header_mode`` is not applicable in any way, it's ignored in comparison.
       
      repeated .envoy.extensions.filters.http.ext_proc.v3.ProcessingMode allowed_override_modes = 22;
    • hasProcessingRequestModifier

      boolean hasProcessingRequestModifier()
       Decorator to introduce custom logic that runs after the ``ProcessingRequest`` is constructed, but
       before it is sent to the External Processor. The ``ProcessingRequest`` may be modified.
      
       .. note::
         Processing request modifiers are currently in alpha.
      
       [#extension-category: envoy.http.ext_proc.processing_request_modifiers]
       
      .envoy.config.core.v3.TypedExtensionConfig processing_request_modifier = 25 [(.xds.annotations.v3.field_status) = { ... }
      Returns:
      Whether the processingRequestModifier field is set.
    • getProcessingRequestModifier

      TypedExtensionConfig getProcessingRequestModifier()
       Decorator to introduce custom logic that runs after the ``ProcessingRequest`` is constructed, but
       before it is sent to the External Processor. The ``ProcessingRequest`` may be modified.
      
       .. note::
         Processing request modifiers are currently in alpha.
      
       [#extension-category: envoy.http.ext_proc.processing_request_modifiers]
       
      .envoy.config.core.v3.TypedExtensionConfig processing_request_modifier = 25 [(.xds.annotations.v3.field_status) = { ... }
      Returns:
      The processingRequestModifier.
    • getProcessingRequestModifierOrBuilder

      TypedExtensionConfigOrBuilder getProcessingRequestModifierOrBuilder()
       Decorator to introduce custom logic that runs after the ``ProcessingRequest`` is constructed, but
       before it is sent to the External Processor. The ``ProcessingRequest`` may be modified.
      
       .. note::
         Processing request modifiers are currently in alpha.
      
       [#extension-category: envoy.http.ext_proc.processing_request_modifiers]
       
      .envoy.config.core.v3.TypedExtensionConfig processing_request_modifier = 25 [(.xds.annotations.v3.field_status) = { ... }
    • hasOnProcessingResponse

      boolean hasOnProcessingResponse()
       Decorator to introduce custom logic that runs after a message received from
       the External Processor is processed, but before continuing filter chain iteration.
      
       .. note::
         Response processors are currently in alpha.
      
       [#extension-category: envoy.http.ext_proc.response_processors]
       
      .envoy.config.core.v3.TypedExtensionConfig on_processing_response = 23 [(.xds.annotations.v3.field_status) = { ... }
      Returns:
      Whether the onProcessingResponse field is set.
    • getOnProcessingResponse

      TypedExtensionConfig getOnProcessingResponse()
       Decorator to introduce custom logic that runs after a message received from
       the External Processor is processed, but before continuing filter chain iteration.
      
       .. note::
         Response processors are currently in alpha.
      
       [#extension-category: envoy.http.ext_proc.response_processors]
       
      .envoy.config.core.v3.TypedExtensionConfig on_processing_response = 23 [(.xds.annotations.v3.field_status) = { ... }
      Returns:
      The onProcessingResponse.
    • getOnProcessingResponseOrBuilder

      TypedExtensionConfigOrBuilder getOnProcessingResponseOrBuilder()
       Decorator to introduce custom logic that runs after a message received from
       the External Processor is processed, but before continuing filter chain iteration.
      
       .. note::
         Response processors are currently in alpha.
      
       [#extension-category: envoy.http.ext_proc.response_processors]
       
      .envoy.config.core.v3.TypedExtensionConfig on_processing_response = 23 [(.xds.annotations.v3.field_status) = { ... }
    • hasStatusOnError

      boolean hasStatusOnError()
       Sets the HTTP status code that is returned to the client when the external processing server returns
       an error, fails to respond, or cannot be reached.
      
       The default status is ``HTTP 500 Internal Server Error``.
       
      .envoy.type.v3.HttpStatus status_on_error = 24;
      Returns:
      Whether the statusOnError field is set.
    • getStatusOnError

      HttpStatus getStatusOnError()
       Sets the HTTP status code that is returned to the client when the external processing server returns
       an error, fails to respond, or cannot be reached.
      
       The default status is ``HTTP 500 Internal Server Error``.
       
      .envoy.type.v3.HttpStatus status_on_error = 24;
      Returns:
      The statusOnError.
    • getStatusOnErrorOrBuilder

      HttpStatusOrBuilder getStatusOnErrorOrBuilder()
       Sets the HTTP status code that is returned to the client when the external processing server returns
       an error, fails to respond, or cannot be reached.
      
       The default status is ``HTTP 500 Internal Server Error``.
       
      .envoy.type.v3.HttpStatus status_on_error = 24;