diff options
Diffstat (limited to 'src/rpc/envoy.data.tap.v3.rs')
| -rw-r--r-- | src/rpc/envoy.data.tap.v3.rs | 258 |
1 files changed, 258 insertions, 0 deletions
diff --git a/src/rpc/envoy.data.tap.v3.rs b/src/rpc/envoy.data.tap.v3.rs new file mode 100644 index 00000000..63b823ef --- /dev/null +++ b/src/rpc/envoy.data.tap.v3.rs @@ -0,0 +1,258 @@ +// @generated +// This file is @generated by prost-build. +// \[#protodoc-title: Tap common data\] + +/// Wrapper for tapped body data. This includes HTTP request/response body, transport socket received +/// and transmitted data, etc. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Body { + /// Specifies whether body data has been truncated to fit within the specified + /// :ref:`max_buffered_rx_bytes + /// <envoy_v3_api_field_config.tap.v3.OutputConfig.max_buffered_rx_bytes>` and + /// :ref:`max_buffered_tx_bytes + /// <envoy_v3_api_field_config.tap.v3.OutputConfig.max_buffered_tx_bytes>` settings. + #[prost(bool, tag="3")] + pub truncated: bool, + #[prost(oneof="body::BodyType", tags="1, 2")] + pub body_type: ::core::option::Option<body::BodyType>, +} +/// Nested message and enum types in `Body`. +pub mod body { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum BodyType { + /// Body data as bytes. By default, tap body data will be present in this field, as the proto + /// ``bytes`` type can contain any valid byte. + #[prost(bytes, tag="1")] + AsBytes(::prost::alloc::vec::Vec<u8>), + /// Body data as string. This field is only used when the :ref:`JSON_BODY_AS_STRING + /// <envoy_v3_api_enum_value_config.tap.v3.OutputSink.Format.JSON_BODY_AS_STRING>` sink + /// format type is selected. See the documentation for that option for why this is useful. + #[prost(string, tag="2")] + AsString(::prost::alloc::string::String), + } +} +/// Connection properties. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Connection { + /// Local address. + #[prost(message, optional, tag="1")] + pub local_address: ::core::option::Option<super::super::super::config::core::v3::Address>, + /// Remote address. + #[prost(message, optional, tag="2")] + pub remote_address: ::core::option::Option<super::super::super::config::core::v3::Address>, +} +// \[#protodoc-title: HTTP tap data\] + +/// A fully buffered HTTP trace message. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HttpBufferedTrace { + /// Request message. + #[prost(message, optional, tag="1")] + pub request: ::core::option::Option<http_buffered_trace::Message>, + /// Response message. + #[prost(message, optional, tag="2")] + pub response: ::core::option::Option<http_buffered_trace::Message>, + /// downstream connection + #[prost(message, optional, tag="3")] + pub downstream_connection: ::core::option::Option<Connection>, +} +/// Nested message and enum types in `HttpBufferedTrace`. +pub mod http_buffered_trace { + /// HTTP message wrapper. + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] + pub struct Message { + /// Message headers. + #[prost(message, repeated, tag="1")] + pub headers: ::prost::alloc::vec::Vec<super::super::super::super::config::core::v3::HeaderValue>, + /// Message body. + #[prost(message, optional, tag="2")] + pub body: ::core::option::Option<super::Body>, + /// Message trailers. + #[prost(message, repeated, tag="3")] + pub trailers: ::prost::alloc::vec::Vec<super::super::super::super::config::core::v3::HeaderValue>, + /// The timestamp after receiving the message headers. + #[prost(message, optional, tag="4")] + pub headers_received_time: ::core::option::Option<super::super::super::super::super::google::protobuf::Timestamp>, + } +} +/// A streamed HTTP trace segment. Multiple segments make up a full trace. +/// \[#next-free-field: 8\] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HttpStreamedTraceSegment { + /// Trace ID unique to the originating Envoy only. Trace IDs can repeat and should not be used + /// for long term stable uniqueness. + #[prost(uint64, tag="1")] + pub trace_id: u64, + #[prost(oneof="http_streamed_trace_segment::MessagePiece", tags="2, 3, 4, 5, 6, 7")] + pub message_piece: ::core::option::Option<http_streamed_trace_segment::MessagePiece>, +} +/// Nested message and enum types in `HttpStreamedTraceSegment`. +pub mod http_streamed_trace_segment { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum MessagePiece { + /// Request headers. + #[prost(message, tag="2")] + RequestHeaders(super::super::super::super::config::core::v3::HeaderMap), + /// Request body chunk. + #[prost(message, tag="3")] + RequestBodyChunk(super::Body), + /// Request trailers. + #[prost(message, tag="4")] + RequestTrailers(super::super::super::super::config::core::v3::HeaderMap), + /// Response headers. + #[prost(message, tag="5")] + ResponseHeaders(super::super::super::super::config::core::v3::HeaderMap), + /// Response body chunk. + #[prost(message, tag="6")] + ResponseBodyChunk(super::Body), + /// Response trailers. + #[prost(message, tag="7")] + ResponseTrailers(super::super::super::super::config::core::v3::HeaderMap), + } +} +// \[#protodoc-title: Transport tap data\] +// Trace format for the tap transport socket extension. This dumps plain text read/write +// sequences on a socket. + +/// Event in a socket trace. +/// \[#next-free-field: 6\] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SocketEvent { + /// Timestamp for event. + #[prost(message, optional, tag="1")] + pub timestamp: ::core::option::Option<super::super::super::super::google::protobuf::Timestamp>, + /// Connection information per event + #[prost(message, optional, tag="5")] + pub connection: ::core::option::Option<Connection>, + /// Read or write with content as bytes string. + #[prost(oneof="socket_event::EventSelector", tags="2, 3, 4")] + pub event_selector: ::core::option::Option<socket_event::EventSelector>, +} +/// Nested message and enum types in `SocketEvent`. +pub mod socket_event { + /// Data read by Envoy from the transport socket. + /// + /// TODO(htuch): Half-close for reads. + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] + pub struct Read { + /// Binary data read. + #[prost(message, optional, tag="1")] + pub data: ::core::option::Option<super::Body>, + } + /// Data written by Envoy to the transport socket. + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] + pub struct Write { + /// Binary data written. + #[prost(message, optional, tag="1")] + pub data: ::core::option::Option<super::Body>, + /// Stream was half closed after this write. + #[prost(bool, tag="2")] + pub end_stream: bool, + } + /// The connection was closed. + /// + /// TODO(mattklein123): Close event type. + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] + pub struct Closed { + } + /// Read or write with content as bytes string. + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum EventSelector { + #[prost(message, tag="2")] + Read(Read), + #[prost(message, tag="3")] + Write(Write), + #[prost(message, tag="4")] + Closed(Closed), + } +} +/// Sequence of read/write events that constitute a buffered trace on a socket. +/// \[#next-free-field: 6\] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SocketBufferedTrace { + /// Trace ID unique to the originating Envoy only. Trace IDs can repeat and should not be used + /// for long term stable uniqueness. Matches connection IDs used in Envoy logs. + #[prost(uint64, tag="1")] + pub trace_id: u64, + /// Connection properties. + #[prost(message, optional, tag="2")] + pub connection: ::core::option::Option<Connection>, + /// Sequence of observed events. + #[prost(message, repeated, tag="3")] + pub events: ::prost::alloc::vec::Vec<SocketEvent>, + /// Set to true if read events were truncated due to the :ref:`max_buffered_rx_bytes + /// <envoy_v3_api_field_config.tap.v3.OutputConfig.max_buffered_rx_bytes>` setting. + #[prost(bool, tag="4")] + pub read_truncated: bool, + /// Set to true if write events were truncated due to the :ref:`max_buffered_tx_bytes + /// <envoy_v3_api_field_config.tap.v3.OutputConfig.max_buffered_tx_bytes>` setting. + #[prost(bool, tag="5")] + pub write_truncated: bool, +} +/// A streamed socket trace segment. Multiple segments make up a full trace. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SocketStreamedTraceSegment { + /// Trace ID unique to the originating Envoy only. Trace IDs can repeat and should not be used + /// for long term stable uniqueness. Matches connection IDs used in Envoy logs. + #[prost(uint64, tag="1")] + pub trace_id: u64, + #[prost(oneof="socket_streamed_trace_segment::MessagePiece", tags="2, 3")] + pub message_piece: ::core::option::Option<socket_streamed_trace_segment::MessagePiece>, +} +/// Nested message and enum types in `SocketStreamedTraceSegment`. +pub mod socket_streamed_trace_segment { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum MessagePiece { + /// Connection properties. + #[prost(message, tag="2")] + Connection(super::Connection), + /// Socket event. + #[prost(message, tag="3")] + Event(super::SocketEvent), + } +} +// \[#protodoc-title: Tap data wrappers\] + +/// Wrapper for all fully buffered and streamed tap traces that Envoy emits. This is required for +/// sending traces over gRPC APIs or more easily persisting binary messages to files. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TraceWrapper { + #[prost(oneof="trace_wrapper::Trace", tags="1, 2, 3, 4")] + pub trace: ::core::option::Option<trace_wrapper::Trace>, +} +/// Nested message and enum types in `TraceWrapper`. +pub mod trace_wrapper { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Trace { + /// An HTTP buffered tap trace. + #[prost(message, tag="1")] + HttpBufferedTrace(super::HttpBufferedTrace), + /// An HTTP streamed tap trace segment. + #[prost(message, tag="2")] + HttpStreamedTraceSegment(super::HttpStreamedTraceSegment), + /// A socket buffered tap trace. + #[prost(message, tag="3")] + SocketBufferedTrace(super::SocketBufferedTrace), + /// A socket streamed tap trace segment. + #[prost(message, tag="4")] + SocketStreamedTraceSegment(super::SocketStreamedTraceSegment), + } +} +// @@protoc_insertion_point(module) |
