Enum ProcessingMode.BodySendMode
java.lang.Object
java.lang.Enum<ProcessingMode.BodySendMode>
io.envoyproxy.envoy.extensions.filters.http.ext_proc.v3.ProcessingMode.BodySendMode
- All Implemented Interfaces:
com.google.protobuf.Internal.EnumLite,com.google.protobuf.ProtocolMessageEnum,Serializable,Comparable<ProcessingMode.BodySendMode>,java.lang.constant.Constable
- Enclosing class:
- ProcessingMode
public static enum ProcessingMode.BodySendMode
extends Enum<ProcessingMode.BodySendMode>
implements com.google.protobuf.ProtocolMessageEnum
Control how the request and response bodies are handled When body mutation by external processor is enabled, ext_proc filter will always remove the content length header in four cases below because content length can not be guaranteed to be set correctly: 1) STREAMED BodySendMode: header processing completes before body mutation comes back. 2) BUFFERED_PARTIAL BodySendMode: body is buffered and could be injected in different phases. 3) BUFFERED BodySendMode + SKIP HeaderSendMode: header processing (e.g., update content-length) is skipped. 4) FULL_DUPLEX_STREAMED BodySendMode: header processing completes before body mutation comes back. In Envoy's http1 codec implementation, removing content length will enable chunked transfer encoding whenever feasible. The recipient (either client or server) must be able to parse and decode the chunked transfer coding. (see `details in RFC9112 <https://tools.ietf.org/html/rfc9112#section-7.1>`_). In BUFFERED BodySendMode + SEND HeaderSendMode, content length header is allowed but it is external processor's responsibility to set the content length correctly matched to the length of mutated body. If they don't match, the corresponding body mutation will be rejected and local reply will be sent with an error message.Protobuf enum
envoy.extensions.filters.http.ext_proc.v3.ProcessingMode.BodySendMode-
Nested Class Summary
Nested classes/interfaces inherited from class java.lang.Enum
Enum.EnumDesc<E extends Enum<E>> -
Enum Constant Summary
Enum ConstantsEnum ConstantDescriptionBuffer the message body in memory and send the entire body at once.Buffer the message body in memory and send the entire body in one chunk.FULL_DUPLEX_STREAMED = 4;[#not-implemented-hide:] A mode for gRPC traffic.Do not send the body at all.Stream the body to the server in pieces as they are seen. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intBuffer the message body in memory and send the entire body in one chunk.static final intBuffer the message body in memory and send the entire body at once.static final intFULL_DUPLEX_STREAMED = 4;static final int[#not-implemented-hide:] A mode for gRPC traffic.static final intDo not send the body at all.static final intStream the body to the server in pieces as they are seen. -
Method Summary
Modifier and TypeMethodDescriptionstatic ProcessingMode.BodySendModeforNumber(int value) static final com.google.protobuf.Descriptors.EnumDescriptorfinal com.google.protobuf.Descriptors.EnumDescriptorfinal intfinal com.google.protobuf.Descriptors.EnumValueDescriptorstatic com.google.protobuf.Internal.EnumLiteMap<ProcessingMode.BodySendMode>static ProcessingMode.BodySendModevalueOf(int value) Deprecated.static ProcessingMode.BodySendModevalueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) Returns the enum constant of this type with the specified name.static ProcessingMode.BodySendModeReturns the enum constant of this type with the specified name.static ProcessingMode.BodySendMode[]values()Returns an array containing the constants of this enum type, in the order they are declared.
-
Enum Constant Details
-
NONE
Do not send the body at all. This is the default.
NONE = 0; -
STREAMED
Stream the body to the server in pieces as they are seen.
STREAMED = 1; -
BUFFERED
Buffer the message body in memory and send the entire body at once. If the body exceeds the configured buffer limit, then the downstream system will receive an error.
BUFFERED = 2; -
BUFFERED_PARTIAL
Buffer the message body in memory and send the entire body in one chunk. If the body exceeds the configured buffer limit, then the body contents up to the buffer limit will be sent.
BUFFERED_PARTIAL = 3; -
FULL_DUPLEX_STREAMED
FULL_DUPLEX_STREAMED = 4; -
GRPC
[#not-implemented-hide:] A mode for gRPC traffic. This is similar to ``FULL_DUPLEX_STREAMED``, except that instead of sending raw chunks of the HTTP/2 DATA frames, the ext_proc client will de-frame the individual gRPC messages inside the HTTP/2 DATA frames, and as each message is de-framed, it will be sent to the ext_proc server as a :ref:`request_body <envoy_v3_api_field_service.ext_proc.v3.ProcessingRequest.request_body>` or :ref:`response_body <envoy_v3_api_field_service.ext_proc.v3.ProcessingRequest.response_body>`. The ext_proc server will stream back individual gRPC messages in the :ref:`StreamedBodyResponse <envoy_v3_api_msg_service.ext_proc.v3.StreamedBodyResponse>` field, but the number of messages sent by the ext_proc server does not need to equal the number of messages sent by the data plane. This allows the ext_proc server to change the number of messages sent on the stream. In this mode, the client will send body and trailers to the server as they arrive.
GRPC = 5; -
UNRECOGNIZED
-
-
Field Details
-
NONE_VALUE
public static final int NONE_VALUEDo not send the body at all. This is the default.
NONE = 0;- See Also:
-
STREAMED_VALUE
public static final int STREAMED_VALUEStream the body to the server in pieces as they are seen.
STREAMED = 1;- See Also:
-
BUFFERED_VALUE
public static final int BUFFERED_VALUEBuffer the message body in memory and send the entire body at once. If the body exceeds the configured buffer limit, then the downstream system will receive an error.
BUFFERED = 2;- See Also:
-
BUFFERED_PARTIAL_VALUE
public static final int BUFFERED_PARTIAL_VALUEBuffer the message body in memory and send the entire body in one chunk. If the body exceeds the configured buffer limit, then the body contents up to the buffer limit will be sent.
BUFFERED_PARTIAL = 3;- See Also:
-
FULL_DUPLEX_STREAMED_VALUE
public static final int FULL_DUPLEX_STREAMED_VALUEFULL_DUPLEX_STREAMED = 4;- See Also:
-
GRPC_VALUE
public static final int GRPC_VALUE[#not-implemented-hide:] A mode for gRPC traffic. This is similar to ``FULL_DUPLEX_STREAMED``, except that instead of sending raw chunks of the HTTP/2 DATA frames, the ext_proc client will de-frame the individual gRPC messages inside the HTTP/2 DATA frames, and as each message is de-framed, it will be sent to the ext_proc server as a :ref:`request_body <envoy_v3_api_field_service.ext_proc.v3.ProcessingRequest.request_body>` or :ref:`response_body <envoy_v3_api_field_service.ext_proc.v3.ProcessingRequest.response_body>`. The ext_proc server will stream back individual gRPC messages in the :ref:`StreamedBodyResponse <envoy_v3_api_msg_service.ext_proc.v3.StreamedBodyResponse>` field, but the number of messages sent by the ext_proc server does not need to equal the number of messages sent by the data plane. This allows the ext_proc server to change the number of messages sent on the stream. In this mode, the client will send body and trailers to the server as they arrive.
GRPC = 5;- See Also:
-
-
Method Details
-
values
Returns an array containing the constants of this enum type, in the order they are declared.- Returns:
- an array containing the constants of this enum type, in the order they are declared
-
valueOf
Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)- Parameters:
name- the name of the enum constant to be returned.- Returns:
- the enum constant with the specified name
- Throws:
IllegalArgumentException- if this enum type has no constant with the specified nameNullPointerException- if the argument is null
-
getNumber
public final int getNumber()- Specified by:
getNumberin interfacecom.google.protobuf.Internal.EnumLite- Specified by:
getNumberin interfacecom.google.protobuf.ProtocolMessageEnum
-
valueOf
Deprecated.Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)- Parameters:
value- the name of the enum constant to be returned.- Returns:
- the enum constant with the specified name
- Throws:
IllegalArgumentException- if this enum type has no constant with the specified nameNullPointerException- if the argument is null
-
forNumber
- Parameters:
value- The numeric wire value of the corresponding enum entry.- Returns:
- The enum associated with the given numeric wire value.
-
internalGetValueMap
public static com.google.protobuf.Internal.EnumLiteMap<ProcessingMode.BodySendMode> internalGetValueMap() -
getValueDescriptor
public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()- Specified by:
getValueDescriptorin interfacecom.google.protobuf.ProtocolMessageEnum
-
getDescriptorForType
public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()- Specified by:
getDescriptorForTypein interfacecom.google.protobuf.ProtocolMessageEnum
-
getDescriptor
public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() -
valueOf
public static ProcessingMode.BodySendMode valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)- Parameters:
desc- the name of the enum constant to be returned.- Returns:
- the enum constant with the specified name
- Throws:
IllegalArgumentException- if this enum type has no constant with the specified nameNullPointerException- if the argument is null
-