pub struct ProcessingResponse {
pub dynamic_metadata: Option<Struct>,
pub mode_override: Option<ProcessingMode>,
pub override_message_timeout: Option<Duration>,
pub response: Option<Response>,
}
Expand description
For every ProcessingRequest received by the server with the observability_mode
field
set to false, the server must send back exactly one ProcessingResponse message.
[#next-free-field: 11]
Fields§
§dynamic_metadata: Option<Struct>
Optional metadata that will be emitted as dynamic metadata to be consumed by following filters. This metadata will be placed in the namespace(s) specified by the top-level field name(s) of the struct.
mode_override: Option<ProcessingMode>
Override how parts of the HTTP request and response are processed
for the duration of this particular request/response only. Servers
may use this to intelligently control how requests are processed
based on the headers and other metadata that they see.
This field is only applicable when servers responding to the header requests.
If it is set in the response to the body or trailer requests, it will be ignored by Envoy.
It is also ignored by Envoy when the ext_proc filter config
:ref:allow_mode_override <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.allow_mode_override>
is set to false.
override_message_timeout: Option<Duration>
When ext_proc server receives a request message, in case it needs more
time to process the message, it sends back a ProcessingResponse message
with a new timeout value. When Envoy receives this response message,
it ignores other fields in the response, just stop the original timer,
which has the timeout value specified in
:ref:message_timeout <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.message_timeout>
and start a new timer with this override_message_timeout
value and keep the
Envoy ext_proc filter state machine intact.
Has to be >= 1ms and <=
:ref:max_message_timeout <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.max_message_timeout>
Such message can be sent at most once in a particular Envoy ext_proc filter processing state.
To enable this API, one has to set max_message_timeout
to a number >= 1ms.
response: Option<Response>
Trait Implementations§
Source§impl Clone for ProcessingResponse
impl Clone for ProcessingResponse
Source§fn clone(&self) -> ProcessingResponse
fn clone(&self) -> ProcessingResponse
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for ProcessingResponse
impl Debug for ProcessingResponse
Source§impl Default for ProcessingResponse
impl Default for ProcessingResponse
Source§impl Message for ProcessingResponse
impl Message for ProcessingResponse
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self
. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self
.Source§impl Name for ProcessingResponse
impl Name for ProcessingResponse
Source§const NAME: &'static str = "ProcessingResponse"
const NAME: &'static str = "ProcessingResponse"
Message
.
This name is the same as it appears in the source .proto file, e.g. FooBar
.Source§const PACKAGE: &'static str = "envoy.service.ext_proc.v3"
const PACKAGE: &'static str = "envoy.service.ext_proc.v3"
.
, e.g. google.protobuf
.Source§fn full_name() -> String
fn full_name() -> String
Message
.
It’s prefixed with the package name and names of any parent messages,
e.g. google.rpc.BadRequest.FieldViolation
.
By default, this is the package name followed by the message name.
Fully-qualified names must be unique within a domain of Type URLs.Source§impl PartialEq for ProcessingResponse
impl PartialEq for ProcessingResponse
impl StructuralPartialEq for ProcessingResponse
Auto Trait Implementations§
impl Freeze for ProcessingResponse
impl RefUnwindSafe for ProcessingResponse
impl Send for ProcessingResponse
impl Sync for ProcessingResponse
impl Unpin for ProcessingResponse
impl UnwindSafe for ProcessingResponse
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request