summaryrefslogtreecommitdiff
path: root/src/rpc/envoy.config.accesslog.v2.rs
blob: 632728f02537e4f8b7c8efff05e4dbe857573eb2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
// @generated
// This file is @generated by prost-build.
// \[#protodoc-title: gRPC Access Log Service (ALS)\]

/// Configuration for the built-in *envoy.access_loggers.http_grpc*
/// :ref:`AccessLog <envoy_api_msg_config.filter.accesslog.v2.AccessLog>`. This configuration will
/// populate :ref:`StreamAccessLogsMessage.http_logs
/// <envoy_api_field_service.accesslog.v2.StreamAccessLogsMessage.http_logs>`.
/// \[#extension: envoy.access_loggers.http_grpc\]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HttpGrpcAccessLogConfig {
    #[prost(message, optional, tag="1")]
    pub common_config: ::core::option::Option<CommonGrpcAccessLogConfig>,
    /// Additional request headers to log in :ref:`HTTPRequestProperties.request_headers
    /// <envoy_api_field_data.accesslog.v2.HTTPRequestProperties.request_headers>`.
    #[prost(string, repeated, tag="2")]
    pub additional_request_headers_to_log: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    /// Additional response headers to log in :ref:`HTTPResponseProperties.response_headers
    /// <envoy_api_field_data.accesslog.v2.HTTPResponseProperties.response_headers>`.
    #[prost(string, repeated, tag="3")]
    pub additional_response_headers_to_log: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    /// Additional response trailers to log in :ref:`HTTPResponseProperties.response_trailers
    /// <envoy_api_field_data.accesslog.v2.HTTPResponseProperties.response_trailers>`.
    #[prost(string, repeated, tag="4")]
    pub additional_response_trailers_to_log: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
/// Configuration for the built-in *envoy.access_loggers.tcp_grpc* type. This configuration will
/// populate *StreamAccessLogsMessage.tcp_logs*.
/// \[#extension: envoy.access_loggers.tcp_grpc\]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TcpGrpcAccessLogConfig {
    #[prost(message, optional, tag="1")]
    pub common_config: ::core::option::Option<CommonGrpcAccessLogConfig>,
}
/// Common configuration for gRPC access logs.
/// \[#next-free-field: 6\]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CommonGrpcAccessLogConfig {
    /// The friendly name of the access log to be returned in :ref:`StreamAccessLogsMessage.Identifier
    /// <envoy_api_msg_service.accesslog.v2.StreamAccessLogsMessage.Identifier>`. This allows the
    /// access log server to differentiate between different access logs coming from the same Envoy.
    #[prost(string, tag="1")]
    pub log_name: ::prost::alloc::string::String,
    /// The gRPC service for the access log service.
    #[prost(message, optional, tag="2")]
    pub grpc_service: ::core::option::Option<super::super::super::api::v2::core::GrpcService>,
    /// Interval for flushing access logs to the gRPC stream. Logger will flush requests every time
    /// this interval is elapsed, or when batch size limit is hit, whichever comes first. Defaults to
    /// 1 second.
    #[prost(message, optional, tag="3")]
    pub buffer_flush_interval: ::core::option::Option<super::super::super::super::google::protobuf::Duration>,
    /// Soft size limit in bytes for access log entries buffer. Logger will buffer requests until
    /// this limit it hit, or every time flush interval is elapsed, whichever comes first. Setting it
    /// to zero effectively disables the batching. Defaults to 16384.
    #[prost(message, optional, tag="4")]
    pub buffer_size_bytes: ::core::option::Option<super::super::super::super::google::protobuf::UInt32Value>,
    /// Additional filter state objects to log in :ref:`filter_state_objects
    /// <envoy_api_field_data.accesslog.v2.AccessLogCommon.filter_state_objects>`.
    /// Logger will call `FilterState::Object::serializeAsProto` to serialize the filter state object.
    #[prost(string, repeated, tag="5")]
    pub filter_state_objects_to_log: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
// \[#protodoc-title: File access log\]
// \[#extension: envoy.access_loggers.file\]

/// Custom configuration for an :ref:`AccessLog <envoy_api_msg_config.filter.accesslog.v2.AccessLog>`
/// that writes log entries directly to a file. Configures the built-in *envoy.access_loggers.file*
/// AccessLog.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FileAccessLog {
    /// A path to a local file to which to write the access log entries.
    #[prost(string, tag="1")]
    pub path: ::prost::alloc::string::String,
    #[prost(oneof="file_access_log::AccessLogFormat", tags="2, 3, 4")]
    pub access_log_format: ::core::option::Option<file_access_log::AccessLogFormat>,
}
/// Nested message and enum types in `FileAccessLog`.
pub mod file_access_log {
    #[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum AccessLogFormat {
        /// Access log :ref:`format string<config_access_log_format_strings>`.
        /// Envoy supports :ref:`custom access log formats <config_access_log_format>` as well as a
        /// :ref:`default format <config_access_log_default_format>`.
        #[prost(string, tag="2")]
        Format(::prost::alloc::string::String),
        /// Access log :ref:`format dictionary<config_access_log_format_dictionaries>`. All values
        /// are rendered as strings.
        #[prost(message, tag="3")]
        JsonFormat(super::super::super::super::super::google::protobuf::Struct),
        /// Access log :ref:`format dictionary<config_access_log_format_dictionaries>`. Values are
        /// rendered as strings, numbers, or boolean values as appropriate. Nested JSON objects may
        /// be produced by some command operators (e.g.FILTER_STATE or DYNAMIC_METADATA). See the
        /// documentation for a specific command operator for details.
        #[prost(message, tag="4")]
        TypedJsonFormat(super::super::super::super::super::google::protobuf::Struct),
    }
}
// @@protoc_insertion_point(module)