Coverage Report

Created: 2024-12-17 06:15

/rust/registry/src/index.crates.io-6f17d22bba15001f/linkerd2-proxy-api-0.15.0/src/gen/io.linkerd.proxy.inbound.rs
Line
Count
Source (jump to first uncovered line)
1
#[allow(clippy::derive_partial_eq_without_eq)]
2
0
#[derive(Clone, PartialEq, ::prost::Message)]
Unexecuted instantiation: <linkerd2_proxy_api::inbound::PortSpec as prost::message::Message>::clear
Unexecuted instantiation: <linkerd2_proxy_api::inbound::PortSpec as core::default::Default>::default
Unexecuted instantiation: <linkerd2_proxy_api::inbound::PortSpec as core::fmt::Debug>::fmt::ScalarWrapper::<&alloc::string::String>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::PortSpec as core::fmt::Debug>::fmt::ScalarWrapper::<&u32>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::PortSpec as prost::message::Message>::encode_raw::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::PortSpec as prost::message::Message>::merge_field::<_>::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::PortSpec as prost::message::Message>::merge_field::<_>::{closure#1}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::PortSpec as prost::message::Message>::encoded_len
Unexecuted instantiation: <linkerd2_proxy_api::inbound::PortSpec as core::fmt::Debug>::fmt
Unexecuted instantiation: <linkerd2_proxy_api::inbound::PortSpec as prost::message::Message>::merge_field::<_>
3
pub struct PortSpec {
4
    /// Identifies a proxy workload (e.g., pod name).
5
    #[prost(string, tag = "1")]
6
    pub workload: ::prost::alloc::string::String,
7
    /// An inbound port on _workload_.
8
    #[prost(uint32, tag = "2")]
9
    pub port: u32,
10
}
11
#[allow(clippy::derive_partial_eq_without_eq)]
12
0
#[derive(Clone, PartialEq, ::prost::Message)]
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Server as prost::message::Message>::clear
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Server as core::default::Default>::default
Unexecuted instantiation: <<linkerd2_proxy_api::inbound::Server as core::fmt::Debug>::fmt::MapWrapper as core::fmt::Debug>::fmt::KeyWrapper::<&alloc::string::String>
Unexecuted instantiation: <<linkerd2_proxy_api::inbound::Server as core::fmt::Debug>::fmt::MapWrapper as core::fmt::Debug>::fmt::ValueWrapper::<&alloc::string::String>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Server as prost::message::Message>::encode_raw::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Server as prost::message::Message>::merge_field::<_>::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Server as prost::message::Message>::merge_field::<_>::{closure#1}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Server as prost::message::Message>::merge_field::<_>::{closure#2}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Server as prost::message::Message>::merge_field::<_>::{closure#3}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Server as prost::message::Message>::encoded_len::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Server as core::fmt::Debug>::fmt
Unexecuted instantiation: <<linkerd2_proxy_api::inbound::Server as core::fmt::Debug>::fmt::MapWrapper as core::fmt::Debug>::fmt
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Server as prost::message::Message>::merge_field::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Server as prost::message::Message>::encoded_len
13
pub struct Server {
14
    /// If set, indicates how the proxy should proxy connections on the specified
15
    /// port.
16
    #[prost(message, optional, tag = "1")]
17
    pub protocol: ::core::option::Option<ProxyProtocol>,
18
    /// Indicates the IP addresses on which the proxy may receive connections.
19
    /// Connections targetting other IP addresses will be dropped.
20
    #[prost(message, repeated, tag = "2")]
21
    pub server_ips: ::prost::alloc::vec::Vec<super::net::IpAddress>,
22
    /// Configures a proxy to allow connections from the specified clients.
23
    ///
24
    /// If unset, no connections are permitted.
25
    #[prost(message, repeated, tag = "3")]
26
    pub authorizations: ::prost::alloc::vec::Vec<Authz>,
27
    /// Descriptive labels to be added to metrics, etc.
28
    ///
29
    /// A control plane SHOULD return the same keys in all policies. That is, we do
30
    /// NOT want to return arbitrary pod labels in this field.
31
    #[prost(map = "string, string", tag = "4")]
32
    pub labels: ::std::collections::HashMap<
33
        ::prost::alloc::string::String,
34
        ::prost::alloc::string::String,
35
    >,
36
}
37
#[allow(clippy::derive_partial_eq_without_eq)]
38
0
#[derive(Clone, PartialEq, ::prost::Message)]
Unexecuted instantiation: <linkerd2_proxy_api::inbound::ProxyProtocol as prost::message::Message>::clear
Unexecuted instantiation: <linkerd2_proxy_api::inbound::ProxyProtocol as core::default::Default>::default
Unexecuted instantiation: <linkerd2_proxy_api::inbound::ProxyProtocol as core::fmt::Debug>::fmt
Unexecuted instantiation: <linkerd2_proxy_api::inbound::ProxyProtocol as prost::message::Message>::encode_raw::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::ProxyProtocol as prost::message::Message>::merge_field::<_>::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::ProxyProtocol as prost::message::Message>::encoded_len
39
pub struct ProxyProtocol {
40
    #[prost(oneof = "proxy_protocol::Kind", tags = "1, 2, 3, 4, 5, 6")]
41
    pub kind: ::core::option::Option<proxy_protocol::Kind>,
42
}
43
/// Nested message and enum types in `ProxyProtocol`.
44
pub mod proxy_protocol {
45
    #[allow(clippy::derive_partial_eq_without_eq)]
46
0
    #[derive(Clone, PartialEq, ::prost::Message)]
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Detect as prost::message::Message>::clear
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Detect as core::default::Default>::default
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Detect as core::fmt::Debug>::fmt
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Detect as prost::message::Message>::encode_raw::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Detect as prost::message::Message>::merge_field::<_>::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Detect as prost::message::Message>::merge_field::<_>::{closure#1}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Detect as prost::message::Message>::merge_field::<_>::{closure#2}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Detect as prost::message::Message>::encoded_len::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Detect as prost::message::Message>::encoded_len::{closure#1}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Detect as prost::message::Message>::merge_field::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Detect as prost::message::Message>::encoded_len
47
    pub struct Detect {
48
        #[prost(message, optional, tag = "1")]
49
        pub timeout: ::core::option::Option<::prost_types::Duration>,
50
        /// If the protocol detected as HTTP, a list of HTTP routes that should be
51
        /// matched.
52
        #[prost(message, repeated, tag = "3")]
53
        pub http_routes: ::prost::alloc::vec::Vec<super::HttpRoute>,
54
        /// If the protocol detected as HTTP, applicable rate limit.
55
        #[prost(message, optional, tag = "4")]
56
        pub http_local_rate_limit: ::core::option::Option<super::HttpLocalRateLimit>,
57
    }
58
    #[allow(clippy::derive_partial_eq_without_eq)]
59
0
    #[derive(Clone, PartialEq, ::prost::Message)]
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Http1 as prost::message::Message>::clear
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Http1 as core::default::Default>::default
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Http1 as core::fmt::Debug>::fmt
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Http1 as prost::message::Message>::encode_raw::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Http1 as prost::message::Message>::merge_field::<_>::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Http1 as prost::message::Message>::merge_field::<_>::{closure#1}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Http1 as prost::message::Message>::encoded_len::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Http1 as prost::message::Message>::merge_field::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Http1 as prost::message::Message>::encoded_len
60
    pub struct Http1 {
61
        #[prost(message, repeated, tag = "2")]
62
        pub routes: ::prost::alloc::vec::Vec<super::HttpRoute>,
63
        #[prost(message, optional, tag = "3")]
64
        pub local_rate_limit: ::core::option::Option<super::HttpLocalRateLimit>,
65
    }
66
    #[allow(clippy::derive_partial_eq_without_eq)]
67
0
    #[derive(Clone, PartialEq, ::prost::Message)]
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Http2 as prost::message::Message>::clear
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Http2 as core::default::Default>::default
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Http2 as core::fmt::Debug>::fmt
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Http2 as prost::message::Message>::encode_raw::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Http2 as prost::message::Message>::merge_field::<_>::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Http2 as prost::message::Message>::merge_field::<_>::{closure#1}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Http2 as prost::message::Message>::encoded_len::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Http2 as prost::message::Message>::merge_field::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Http2 as prost::message::Message>::encoded_len
68
    pub struct Http2 {
69
        #[prost(message, repeated, tag = "2")]
70
        pub routes: ::prost::alloc::vec::Vec<super::HttpRoute>,
71
        #[prost(message, optional, tag = "3")]
72
        pub local_rate_limit: ::core::option::Option<super::HttpLocalRateLimit>,
73
    }
74
    #[allow(clippy::derive_partial_eq_without_eq)]
75
0
    #[derive(Clone, PartialEq, ::prost::Message)]
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Grpc as prost::message::Message>::clear
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Grpc as core::default::Default>::default
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Grpc as core::fmt::Debug>::fmt
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Grpc as prost::message::Message>::encode_raw::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Grpc as prost::message::Message>::merge_field::<_>::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Grpc as prost::message::Message>::encoded_len
76
    pub struct Grpc {
77
        #[prost(message, repeated, tag = "2")]
78
        pub routes: ::prost::alloc::vec::Vec<super::GrpcRoute>,
79
    }
80
    /// TODO: opaque TLS settings (versions, algorithms, SNI)
81
    #[allow(clippy::derive_partial_eq_without_eq)]
82
0
    #[derive(Clone, PartialEq, ::prost::Message)]
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Opaque as prost::message::Message>::clear
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Opaque as core::default::Default>::default
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Opaque as core::fmt::Debug>::fmt
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Opaque as prost::message::Message>::encode_raw::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Opaque as prost::message::Message>::merge_field::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Opaque as prost::message::Message>::encoded_len
83
    pub struct Opaque {}
84
    #[allow(clippy::derive_partial_eq_without_eq)]
85
0
    #[derive(Clone, PartialEq, ::prost::Message)]
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Tls as prost::message::Message>::clear
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Tls as core::default::Default>::default
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Tls as core::fmt::Debug>::fmt
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Tls as prost::message::Message>::encode_raw::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Tls as prost::message::Message>::merge_field::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Tls as prost::message::Message>::encoded_len
86
    pub struct Tls {}
87
    #[allow(clippy::derive_partial_eq_without_eq)]
88
0
    #[derive(Clone, PartialEq, ::prost::Oneof)]
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Kind as core::fmt::Debug>::fmt
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Kind>::encode::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Kind>::merge::<_>::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Kind>::merge::<_>::{closure#1}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Kind>::merge::<_>::{closure#2}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Kind>::merge::<_>::{closure#3}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Kind>::merge::<_>::{closure#4}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Kind>::merge::<_>::{closure#5}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::proxy_protocol::Kind>::encoded_len
89
    pub enum Kind {
90
        #[prost(message, tag = "1")]
91
        Detect(Detect),
92
        #[prost(message, tag = "2")]
93
        Opaque(Opaque),
94
        #[prost(message, tag = "3")]
95
        Tls(Tls),
96
        #[prost(message, tag = "4")]
97
        Http1(Http1),
98
        #[prost(message, tag = "5")]
99
        Http2(Http2),
100
        #[prost(message, tag = "6")]
101
        Grpc(Grpc),
102
    }
103
}
104
#[allow(clippy::derive_partial_eq_without_eq)]
105
0
#[derive(Clone, PartialEq, ::prost::Message)]
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Authz as prost::message::Message>::clear
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Authz as core::default::Default>::default
Unexecuted instantiation: <<linkerd2_proxy_api::inbound::Authz as core::fmt::Debug>::fmt::MapWrapper as core::fmt::Debug>::fmt::KeyWrapper::<&alloc::string::String>
Unexecuted instantiation: <<linkerd2_proxy_api::inbound::Authz as core::fmt::Debug>::fmt::MapWrapper as core::fmt::Debug>::fmt::ValueWrapper::<&alloc::string::String>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Authz as prost::message::Message>::encode_raw::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Authz as prost::message::Message>::merge_field::<_>::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Authz as prost::message::Message>::merge_field::<_>::{closure#1}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Authz as prost::message::Message>::merge_field::<_>::{closure#2}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Authz as prost::message::Message>::merge_field::<_>::{closure#3}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Authz as prost::message::Message>::encoded_len::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Authz as prost::message::Message>::encoded_len::{closure#1}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Authz as core::fmt::Debug>::fmt
Unexecuted instantiation: <<linkerd2_proxy_api::inbound::Authz as core::fmt::Debug>::fmt::MapWrapper as core::fmt::Debug>::fmt
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Authz as prost::message::Message>::merge_field::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Authz as prost::message::Message>::encoded_len
106
pub struct Authz {
107
    /// Limits this authorization to client addresses in the provided networks.
108
    ///
109
    /// Must have at least one network, otherwise the authorization must be
110
    /// ignored. An authorization matches all clients by including an explicit
111
    /// match on, i.e., `\[0.0.0.0/0, 0::/0\]``.
112
    #[prost(message, repeated, tag = "1")]
113
    pub networks: ::prost::alloc::vec::Vec<Network>,
114
    /// Must be set.
115
    #[prost(message, optional, tag = "2")]
116
    pub authentication: ::core::option::Option<Authn>,
117
    /// Descriptive labels to be added to metrics, etc.
118
    ///
119
    /// A control plane SHOULD return the same keys in all authorizations. That is,
120
    /// we do NOT want to return arbitrary pod labels in this field.
121
    ///
122
    /// `labels` should be considered deprecated. `metadata` is preferred. However,
123
    /// controllers should continue to set `labels` for compatibility with older
124
    /// proxies.
125
    #[prost(map = "string, string", tag = "3")]
126
    pub labels: ::std::collections::HashMap<
127
        ::prost::alloc::string::String,
128
        ::prost::alloc::string::String,
129
    >,
130
    /// If set, describes an Authorization configuration. Replaces the free-from
131
    /// `labels` field.
132
    #[prost(message, optional, tag = "4")]
133
    pub metadata: ::core::option::Option<super::meta::Metadata>,
134
}
135
/// Describes a network of authorized clients.
136
#[allow(clippy::derive_partial_eq_without_eq)]
137
0
#[derive(Clone, PartialEq, ::prost::Message)]
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Network as prost::message::Message>::clear
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Network as core::default::Default>::default
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Network as core::fmt::Debug>::fmt
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Network as prost::message::Message>::encode_raw::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Network as prost::message::Message>::merge_field::<_>::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Network as prost::message::Message>::merge_field::<_>::{closure#1}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Network as prost::message::Message>::encoded_len::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Network as prost::message::Message>::merge_field::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Network as prost::message::Message>::encoded_len
138
pub struct Network {
139
    #[prost(message, optional, tag = "1")]
140
    pub net: ::core::option::Option<super::net::IpNetwork>,
141
    #[prost(message, repeated, tag = "2")]
142
    pub except: ::prost::alloc::vec::Vec<super::net::IpNetwork>,
143
}
144
#[allow(clippy::derive_partial_eq_without_eq)]
145
0
#[derive(Clone, PartialEq, ::prost::Message)]
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Authn as prost::message::Message>::clear
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Authn as core::default::Default>::default
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Authn as core::fmt::Debug>::fmt
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Authn as prost::message::Message>::encode_raw::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Authn as prost::message::Message>::merge_field::<_>::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Authn as prost::message::Message>::encoded_len
146
pub struct Authn {
147
    #[prost(oneof = "authn::Permit", tags = "1, 2")]
148
    pub permit: ::core::option::Option<authn::Permit>,
149
}
150
/// Nested message and enum types in `Authn`.
151
pub mod authn {
152
    #[allow(clippy::derive_partial_eq_without_eq)]
153
0
    #[derive(Clone, PartialEq, ::prost::Message)]
Unexecuted instantiation: <linkerd2_proxy_api::inbound::authn::PermitUnauthenticated as prost::message::Message>::clear
Unexecuted instantiation: <linkerd2_proxy_api::inbound::authn::PermitUnauthenticated as core::default::Default>::default
Unexecuted instantiation: <linkerd2_proxy_api::inbound::authn::PermitUnauthenticated as core::fmt::Debug>::fmt
Unexecuted instantiation: <linkerd2_proxy_api::inbound::authn::PermitUnauthenticated as prost::message::Message>::encode_raw::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::authn::PermitUnauthenticated as prost::message::Message>::merge_field::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::authn::PermitUnauthenticated as prost::message::Message>::encoded_len
154
    pub struct PermitUnauthenticated {}
155
    #[allow(clippy::derive_partial_eq_without_eq)]
156
0
    #[derive(Clone, PartialEq, ::prost::Message)]
Unexecuted instantiation: <linkerd2_proxy_api::inbound::authn::PermitMeshTls as prost::message::Message>::clear
Unexecuted instantiation: <linkerd2_proxy_api::inbound::authn::PermitMeshTls as core::default::Default>::default
Unexecuted instantiation: <linkerd2_proxy_api::inbound::authn::PermitMeshTls as core::fmt::Debug>::fmt
Unexecuted instantiation: <linkerd2_proxy_api::inbound::authn::PermitMeshTls as prost::message::Message>::encode_raw::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::authn::PermitMeshTls as prost::message::Message>::merge_field::<_>::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::authn::PermitMeshTls as prost::message::Message>::encoded_len
157
    pub struct PermitMeshTls {
158
        #[prost(oneof = "permit_mesh_tls::Clients", tags = "1, 2")]
159
        pub clients: ::core::option::Option<permit_mesh_tls::Clients>,
160
    }
161
    /// Nested message and enum types in `PermitMeshTLS`.
162
    pub mod permit_mesh_tls {
163
        #[allow(clippy::derive_partial_eq_without_eq)]
164
0
        #[derive(Clone, PartialEq, ::prost::Message)]
Unexecuted instantiation: <linkerd2_proxy_api::inbound::authn::permit_mesh_tls::PermitClientIdentities as prost::message::Message>::clear
Unexecuted instantiation: <linkerd2_proxy_api::inbound::authn::permit_mesh_tls::PermitClientIdentities as core::default::Default>::default
Unexecuted instantiation: <linkerd2_proxy_api::inbound::authn::permit_mesh_tls::PermitClientIdentities as core::fmt::Debug>::fmt
Unexecuted instantiation: <linkerd2_proxy_api::inbound::authn::permit_mesh_tls::PermitClientIdentities as prost::message::Message>::encode_raw::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::authn::permit_mesh_tls::PermitClientIdentities as prost::message::Message>::merge_field::<_>::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::authn::permit_mesh_tls::PermitClientIdentities as prost::message::Message>::merge_field::<_>::{closure#1}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::authn::permit_mesh_tls::PermitClientIdentities as prost::message::Message>::encoded_len
165
        pub struct PermitClientIdentities {
166
            /// A list of literal identities.
167
            #[prost(message, repeated, tag = "1")]
168
            pub identities: ::prost::alloc::vec::Vec<super::super::Identity>,
169
            /// A list of identity suffixes.
170
            ///
171
            /// If this contains an empty suffix, all identities are matched.
172
            #[prost(message, repeated, tag = "2")]
173
            pub suffixes: ::prost::alloc::vec::Vec<super::super::IdentitySuffix>,
174
        }
175
        #[allow(clippy::derive_partial_eq_without_eq)]
176
0
        #[derive(Clone, PartialEq, ::prost::Oneof)]
Unexecuted instantiation: <linkerd2_proxy_api::inbound::authn::permit_mesh_tls::Clients as core::fmt::Debug>::fmt
Unexecuted instantiation: <linkerd2_proxy_api::inbound::authn::permit_mesh_tls::Clients>::encode::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::authn::permit_mesh_tls::Clients>::merge::<_>::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::authn::permit_mesh_tls::Clients>::merge::<_>::{closure#1}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::authn::permit_mesh_tls::Clients>::encoded_len
177
        pub enum Clients {
178
            /// Indicates that client identities are not required.
179
            #[prost(message, tag = "1")]
180
            Unauthenticated(super::PermitUnauthenticated),
181
            /// Indicates that mutually-authenticated connections are permitted from
182
            /// clients with matching identities.
183
            #[prost(message, tag = "2")]
184
            Identities(PermitClientIdentities),
185
        }
186
    }
187
    #[allow(clippy::derive_partial_eq_without_eq)]
188
0
    #[derive(Clone, PartialEq, ::prost::Oneof)]
Unexecuted instantiation: <linkerd2_proxy_api::inbound::authn::Permit as core::fmt::Debug>::fmt
Unexecuted instantiation: <linkerd2_proxy_api::inbound::authn::Permit>::encode::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::authn::Permit>::merge::<_>::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::authn::Permit>::merge::<_>::{closure#1}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::authn::Permit>::encoded_len
189
    pub enum Permit {
190
        #[prost(message, tag = "1")]
191
        Unauthenticated(PermitUnauthenticated),
192
        /// If set, requires that the connection is transported over mesh TLS.
193
        #[prost(message, tag = "2")]
194
        MeshTls(PermitMeshTls),
195
    }
196
}
197
#[allow(clippy::derive_partial_eq_without_eq)]
198
0
#[derive(Clone, PartialEq, ::prost::Message)]
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Identity as prost::message::Message>::clear
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Identity as core::default::Default>::default
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Identity as core::fmt::Debug>::fmt::ScalarWrapper::<&alloc::string::String>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Identity as prost::message::Message>::encode_raw::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Identity as prost::message::Message>::merge_field::<_>::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Identity as prost::message::Message>::encoded_len
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Identity as core::fmt::Debug>::fmt
Unexecuted instantiation: <linkerd2_proxy_api::inbound::Identity as prost::message::Message>::merge_field::<_>
199
pub struct Identity {
200
    #[prost(string, tag = "1")]
201
    pub name: ::prost::alloc::string::String,
202
}
203
/// Encodes a DNS-like name suffix as sequence of parts.
204
///
205
/// An empty list is equivalent to `.` (matching all names); the list `["foo",
206
/// "bar"]` is equivalent to "foo.bar." (matching `*.foo.bar`), etc.
207
#[allow(clippy::derive_partial_eq_without_eq)]
208
0
#[derive(Clone, PartialEq, ::prost::Message)]
Unexecuted instantiation: <linkerd2_proxy_api::inbound::IdentitySuffix as prost::message::Message>::clear
Unexecuted instantiation: <linkerd2_proxy_api::inbound::IdentitySuffix as core::default::Default>::default
Unexecuted instantiation: <<linkerd2_proxy_api::inbound::IdentitySuffix as core::fmt::Debug>::fmt::ScalarWrapper as core::fmt::Debug>::fmt::Inner::<&alloc::string::String>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::IdentitySuffix as prost::message::Message>::encode_raw::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::IdentitySuffix as prost::message::Message>::merge_field::<_>::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::IdentitySuffix as prost::message::Message>::encoded_len
Unexecuted instantiation: <linkerd2_proxy_api::inbound::IdentitySuffix as core::fmt::Debug>::fmt
Unexecuted instantiation: <<linkerd2_proxy_api::inbound::IdentitySuffix as core::fmt::Debug>::fmt::ScalarWrapper as core::fmt::Debug>::fmt
Unexecuted instantiation: <linkerd2_proxy_api::inbound::IdentitySuffix as prost::message::Message>::merge_field::<_>
209
pub struct IdentitySuffix {
210
    #[prost(string, repeated, tag = "1")]
211
    pub parts: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
212
}
213
/// Inbound-specific HTTP route configuration (based on the
214
/// [Gateway API](<https://gateway-api.sigs.k8s.io/v1alpha2/references/spec/#gateway.networking.k8s.io/v1alpha2.HTTPRoute>)).
215
#[allow(clippy::derive_partial_eq_without_eq)]
216
0
#[derive(Clone, PartialEq, ::prost::Message)]
Unexecuted instantiation: <linkerd2_proxy_api::inbound::HttpRoute as prost::message::Message>::clear
Unexecuted instantiation: <linkerd2_proxy_api::inbound::HttpRoute as core::default::Default>::default
Unexecuted instantiation: <linkerd2_proxy_api::inbound::HttpRoute as core::fmt::Debug>::fmt
Unexecuted instantiation: <linkerd2_proxy_api::inbound::HttpRoute as prost::message::Message>::encode_raw::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::HttpRoute as prost::message::Message>::merge_field::<_>::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::HttpRoute as prost::message::Message>::merge_field::<_>::{closure#1}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::HttpRoute as prost::message::Message>::merge_field::<_>::{closure#2}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::HttpRoute as prost::message::Message>::merge_field::<_>::{closure#3}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::HttpRoute as prost::message::Message>::encoded_len::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::HttpRoute as prost::message::Message>::merge_field::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::HttpRoute as prost::message::Message>::encoded_len
217
pub struct HttpRoute {
218
    #[prost(message, optional, tag = "1")]
219
    pub metadata: ::core::option::Option<super::meta::Metadata>,
220
    /// If empty, the host value is ignored.
221
    #[prost(message, repeated, tag = "2")]
222
    pub hosts: ::prost::alloc::vec::Vec<super::http_route::HostMatch>,
223
    /// Extends the list of authorizations on the `Server` with authorizations
224
    /// specific to this route.
225
    #[prost(message, repeated, tag = "3")]
226
    pub authorizations: ::prost::alloc::vec::Vec<Authz>,
227
    /// Must have at least one rule.
228
    #[prost(message, repeated, tag = "4")]
229
    pub rules: ::prost::alloc::vec::Vec<http_route::Rule>,
230
}
231
/// Nested message and enum types in `HttpRoute`.
232
pub mod http_route {
233
    #[allow(clippy::derive_partial_eq_without_eq)]
234
0
    #[derive(Clone, PartialEq, ::prost::Message)]
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_route::Rule as prost::message::Message>::clear
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_route::Rule as core::default::Default>::default
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_route::Rule as core::fmt::Debug>::fmt
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_route::Rule as prost::message::Message>::encode_raw::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_route::Rule as prost::message::Message>::merge_field::<_>::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_route::Rule as prost::message::Message>::merge_field::<_>::{closure#1}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_route::Rule as prost::message::Message>::encoded_len
235
    pub struct Rule {
236
        #[prost(message, repeated, tag = "1")]
237
        pub matches: ::prost::alloc::vec::Vec<super::super::http_route::HttpRouteMatch>,
238
        #[prost(message, repeated, tag = "2")]
239
        pub filters: ::prost::alloc::vec::Vec<Filter>,
240
    }
241
    #[allow(clippy::derive_partial_eq_without_eq)]
242
0
    #[derive(Clone, PartialEq, ::prost::Message)]
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_route::Filter as prost::message::Message>::clear
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_route::Filter as core::default::Default>::default
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_route::Filter as core::fmt::Debug>::fmt
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_route::Filter as prost::message::Message>::encode_raw::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_route::Filter as prost::message::Message>::merge_field::<_>::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_route::Filter as prost::message::Message>::encoded_len
243
    pub struct Filter {
244
        #[prost(oneof = "filter::Kind", tags = "1, 2, 3")]
245
        pub kind: ::core::option::Option<filter::Kind>,
246
    }
247
    /// Nested message and enum types in `Filter`.
248
    pub mod filter {
249
        #[allow(clippy::derive_partial_eq_without_eq)]
250
0
        #[derive(Clone, PartialEq, ::prost::Oneof)]
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_route::filter::Kind as core::fmt::Debug>::fmt
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_route::filter::Kind>::encode::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_route::filter::Kind>::merge::<_>::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_route::filter::Kind>::merge::<_>::{closure#1}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_route::filter::Kind>::merge::<_>::{closure#2}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_route::filter::Kind>::encoded_len
251
        pub enum Kind {
252
            #[prost(message, tag = "1")]
253
            FailureInjector(super::super::super::http_route::HttpFailureInjector),
254
            #[prost(message, tag = "2")]
255
            RequestHeaderModifier(
256
                super::super::super::http_route::RequestHeaderModifier,
257
            ),
258
            #[prost(message, tag = "3")]
259
            Redirect(super::super::super::http_route::RequestRedirect),
260
        }
261
    }
262
}
263
/// Inbound-specific gRPC route configuration.
264
#[allow(clippy::derive_partial_eq_without_eq)]
265
0
#[derive(Clone, PartialEq, ::prost::Message)]
Unexecuted instantiation: <linkerd2_proxy_api::inbound::GrpcRoute as prost::message::Message>::clear
Unexecuted instantiation: <linkerd2_proxy_api::inbound::GrpcRoute as core::default::Default>::default
Unexecuted instantiation: <linkerd2_proxy_api::inbound::GrpcRoute as core::fmt::Debug>::fmt
Unexecuted instantiation: <linkerd2_proxy_api::inbound::GrpcRoute as prost::message::Message>::encode_raw::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::GrpcRoute as prost::message::Message>::merge_field::<_>::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::GrpcRoute as prost::message::Message>::merge_field::<_>::{closure#1}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::GrpcRoute as prost::message::Message>::merge_field::<_>::{closure#2}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::GrpcRoute as prost::message::Message>::merge_field::<_>::{closure#3}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::GrpcRoute as prost::message::Message>::encoded_len::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::GrpcRoute as prost::message::Message>::merge_field::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::GrpcRoute as prost::message::Message>::encoded_len
266
pub struct GrpcRoute {
267
    #[prost(message, optional, tag = "1")]
268
    pub metadata: ::core::option::Option<super::meta::Metadata>,
269
    /// If empty, the host value is ignored.
270
    #[prost(message, repeated, tag = "2")]
271
    pub hosts: ::prost::alloc::vec::Vec<super::http_route::HostMatch>,
272
    /// The server MUST return at least one authorization, otherwise all requests
273
    /// to this route will fail with an unauthorized response.
274
    #[prost(message, repeated, tag = "3")]
275
    pub authorizations: ::prost::alloc::vec::Vec<Authz>,
276
    /// Must have at least one rule.
277
    #[prost(message, repeated, tag = "4")]
278
    pub rules: ::prost::alloc::vec::Vec<grpc_route::Rule>,
279
}
280
/// Nested message and enum types in `GrpcRoute`.
281
pub mod grpc_route {
282
    #[allow(clippy::derive_partial_eq_without_eq)]
283
0
    #[derive(Clone, PartialEq, ::prost::Message)]
Unexecuted instantiation: <linkerd2_proxy_api::inbound::grpc_route::Rule as prost::message::Message>::clear
Unexecuted instantiation: <linkerd2_proxy_api::inbound::grpc_route::Rule as core::default::Default>::default
Unexecuted instantiation: <linkerd2_proxy_api::inbound::grpc_route::Rule as core::fmt::Debug>::fmt
Unexecuted instantiation: <linkerd2_proxy_api::inbound::grpc_route::Rule as prost::message::Message>::encode_raw::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::grpc_route::Rule as prost::message::Message>::merge_field::<_>::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::grpc_route::Rule as prost::message::Message>::merge_field::<_>::{closure#1}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::grpc_route::Rule as prost::message::Message>::encoded_len
284
    pub struct Rule {
285
        #[prost(message, repeated, tag = "1")]
286
        pub matches: ::prost::alloc::vec::Vec<super::super::grpc_route::GrpcRouteMatch>,
287
        #[prost(message, repeated, tag = "2")]
288
        pub filters: ::prost::alloc::vec::Vec<Filter>,
289
    }
290
    #[allow(clippy::derive_partial_eq_without_eq)]
291
0
    #[derive(Clone, PartialEq, ::prost::Message)]
Unexecuted instantiation: <linkerd2_proxy_api::inbound::grpc_route::Filter as prost::message::Message>::clear
Unexecuted instantiation: <linkerd2_proxy_api::inbound::grpc_route::Filter as core::default::Default>::default
Unexecuted instantiation: <linkerd2_proxy_api::inbound::grpc_route::Filter as core::fmt::Debug>::fmt
Unexecuted instantiation: <linkerd2_proxy_api::inbound::grpc_route::Filter as prost::message::Message>::encode_raw::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::grpc_route::Filter as prost::message::Message>::merge_field::<_>::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::grpc_route::Filter as prost::message::Message>::encoded_len
292
    pub struct Filter {
293
        #[prost(oneof = "filter::Kind", tags = "1, 2")]
294
        pub kind: ::core::option::Option<filter::Kind>,
295
    }
296
    /// Nested message and enum types in `Filter`.
297
    pub mod filter {
298
        #[allow(clippy::derive_partial_eq_without_eq)]
299
0
        #[derive(Clone, PartialEq, ::prost::Oneof)]
Unexecuted instantiation: <linkerd2_proxy_api::inbound::grpc_route::filter::Kind as core::fmt::Debug>::fmt
Unexecuted instantiation: <linkerd2_proxy_api::inbound::grpc_route::filter::Kind>::encode::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::grpc_route::filter::Kind>::merge::<_>::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::grpc_route::filter::Kind>::merge::<_>::{closure#1}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::grpc_route::filter::Kind>::encoded_len
300
        pub enum Kind {
301
            #[prost(message, tag = "1")]
302
            FailureInjector(super::super::super::grpc_route::GrpcFailureInjector),
303
            #[prost(message, tag = "2")]
304
            RequestHeaderModifier(
305
                super::super::super::http_route::RequestHeaderModifier,
306
            ),
307
        }
308
    }
309
}
310
#[allow(clippy::derive_partial_eq_without_eq)]
311
0
#[derive(Clone, PartialEq, ::prost::Message)]
Unexecuted instantiation: <linkerd2_proxy_api::inbound::HttpLocalRateLimit as prost::message::Message>::clear
Unexecuted instantiation: <linkerd2_proxy_api::inbound::HttpLocalRateLimit as core::default::Default>::default
Unexecuted instantiation: <linkerd2_proxy_api::inbound::HttpLocalRateLimit as core::fmt::Debug>::fmt
Unexecuted instantiation: <linkerd2_proxy_api::inbound::HttpLocalRateLimit as prost::message::Message>::encode_raw::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::HttpLocalRateLimit as prost::message::Message>::merge_field::<_>::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::HttpLocalRateLimit as prost::message::Message>::merge_field::<_>::{closure#1}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::HttpLocalRateLimit as prost::message::Message>::merge_field::<_>::{closure#2}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::HttpLocalRateLimit as prost::message::Message>::merge_field::<_>::{closure#3}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::HttpLocalRateLimit as prost::message::Message>::encoded_len::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::HttpLocalRateLimit as prost::message::Message>::encoded_len::{closure#1}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::HttpLocalRateLimit as prost::message::Message>::encoded_len::{closure#2}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::HttpLocalRateLimit as prost::message::Message>::merge_field::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::HttpLocalRateLimit as prost::message::Message>::encoded_len
312
pub struct HttpLocalRateLimit {
313
    /// Describes the associated HTTPLocalRateLimitPolicy resource
314
    #[prost(message, optional, tag = "1")]
315
    pub metadata: ::core::option::Option<super::meta::Metadata>,
316
    /// Overall rate-limit, which all traffic coming to this server should abide
317
    /// to. If unset no overall limit is applied.
318
    #[prost(message, optional, tag = "2")]
319
    pub total: ::core::option::Option<http_local_rate_limit::Limit>,
320
    /// Fairness for individual identities; each separate client, grouped by
321
    /// identity, will have this rate-limit.
322
    #[prost(message, optional, tag = "3")]
323
    pub identity: ::core::option::Option<http_local_rate_limit::Limit>,
324
    /// Limit overrides for traffic from a specific client.
325
    #[prost(message, repeated, tag = "4")]
326
    pub overrides: ::prost::alloc::vec::Vec<http_local_rate_limit::Override>,
327
}
328
/// Nested message and enum types in `HttpLocalRateLimit`.
329
pub mod http_local_rate_limit {
330
    #[allow(clippy::derive_partial_eq_without_eq)]
331
0
    #[derive(Clone, PartialEq, ::prost::Message)]
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_local_rate_limit::Override as prost::message::Message>::clear
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_local_rate_limit::Override as core::default::Default>::default
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_local_rate_limit::Override as core::fmt::Debug>::fmt
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_local_rate_limit::Override as prost::message::Message>::encode_raw::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_local_rate_limit::Override as prost::message::Message>::merge_field::<_>::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_local_rate_limit::Override as prost::message::Message>::merge_field::<_>::{closure#1}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_local_rate_limit::Override as prost::message::Message>::encoded_len::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_local_rate_limit::Override as prost::message::Message>::encoded_len::{closure#1}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_local_rate_limit::Override as prost::message::Message>::merge_field::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_local_rate_limit::Override as prost::message::Message>::encoded_len
332
    pub struct Override {
333
        #[prost(message, optional, tag = "1")]
334
        pub limit: ::core::option::Option<Limit>,
335
        #[prost(message, optional, tag = "2")]
336
        pub clients: ::core::option::Option<r#override::ClientIdentities>,
337
    }
338
    /// Nested message and enum types in `Override`.
339
    pub mod r#override {
340
        #[allow(clippy::derive_partial_eq_without_eq)]
341
0
        #[derive(Clone, PartialEq, ::prost::Message)]
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_local_rate_limit::override::ClientIdentities as prost::message::Message>::clear
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_local_rate_limit::override::ClientIdentities as core::default::Default>::default
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_local_rate_limit::override::ClientIdentities as core::fmt::Debug>::fmt
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_local_rate_limit::override::ClientIdentities as prost::message::Message>::encode_raw::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_local_rate_limit::override::ClientIdentities as prost::message::Message>::merge_field::<_>::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_local_rate_limit::override::ClientIdentities as prost::message::Message>::encoded_len
342
        pub struct ClientIdentities {
343
            /// A list of literal identities.
344
            #[prost(message, repeated, tag = "1")]
345
            pub identities: ::prost::alloc::vec::Vec<super::super::Identity>,
346
        }
347
    }
348
    #[allow(clippy::derive_partial_eq_without_eq)]
349
0
    #[derive(Clone, PartialEq, ::prost::Message)]
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_local_rate_limit::Limit as prost::message::Message>::clear
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_local_rate_limit::Limit as core::default::Default>::default
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_local_rate_limit::Limit as core::fmt::Debug>::fmt::ScalarWrapper::<&u32>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_local_rate_limit::Limit as prost::message::Message>::encode_raw::<_>
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_local_rate_limit::Limit as prost::message::Message>::merge_field::<_>::{closure#0}
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_local_rate_limit::Limit as prost::message::Message>::encoded_len
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_local_rate_limit::Limit as core::fmt::Debug>::fmt
Unexecuted instantiation: <linkerd2_proxy_api::inbound::http_local_rate_limit::Limit as prost::message::Message>::merge_field::<_>
350
    pub struct Limit {
351
        #[prost(uint32, tag = "1")]
352
        pub requests_per_second: u32,
353
    }
354
}
355
/// Generated client implementations.
356
pub mod inbound_server_policies_client {
357
    #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
358
    use tonic::codegen::*;
359
    use tonic::codegen::http::Uri;
360
    /// / An API exposed to the linkerd2-proxy to configure the inbound proxy with per-port configuration
361
    /// /
362
    /// / Proxies are expected to watch policies for each known port. As policies change, proxies update
363
    /// / their behavior for newly accepted connections.
364
    /// /
365
    /// / The unary `GetPort` endpoint is exposed as a convenience for clients to query policies for
366
    /// / diagnostic purposes.
367
    #[derive(Debug, Clone)]
368
    pub struct InboundServerPoliciesClient<T> {
369
        inner: tonic::client::Grpc<T>,
370
    }
371
    impl<T> InboundServerPoliciesClient<T>
372
    where
373
        T: tonic::client::GrpcService<tonic::body::BoxBody>,
374
        T::Error: Into<StdError>,
375
        T::ResponseBody: Body<Data = Bytes> + Send + 'static,
376
        <T::ResponseBody as Body>::Error: Into<StdError> + Send,
377
    {
378
0
        pub fn new(inner: T) -> Self {
379
0
            let inner = tonic::client::Grpc::new(inner);
380
0
            Self { inner }
381
0
        }
382
0
        pub fn with_origin(inner: T, origin: Uri) -> Self {
383
0
            let inner = tonic::client::Grpc::with_origin(inner, origin);
384
0
            Self { inner }
385
0
        }
386
0
        pub fn with_interceptor<F>(
387
0
            inner: T,
388
0
            interceptor: F,
389
0
        ) -> InboundServerPoliciesClient<InterceptedService<T, F>>
390
0
        where
391
0
            F: tonic::service::Interceptor,
392
0
            T::ResponseBody: Default,
393
0
            T: tonic::codegen::Service<
394
0
                http::Request<tonic::body::BoxBody>,
395
0
                Response = http::Response<
396
0
                    <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
397
0
                >,
398
0
            >,
399
0
            <T as tonic::codegen::Service<
400
0
                http::Request<tonic::body::BoxBody>,
401
0
            >>::Error: Into<StdError> + Send + Sync,
402
0
        {
403
0
            InboundServerPoliciesClient::new(InterceptedService::new(inner, interceptor))
404
0
        }
405
        /// Compress requests with the given encoding.
406
        ///
407
        /// This requires the server to support it otherwise it might respond with an
408
        /// error.
409
        #[must_use]
410
0
        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
411
0
            self.inner = self.inner.send_compressed(encoding);
412
0
            self
413
0
        }
414
        /// Enable decompressing responses.
415
        #[must_use]
416
0
        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
417
0
            self.inner = self.inner.accept_compressed(encoding);
418
0
            self
419
0
        }
420
        /// Limits the maximum size of a decoded message.
421
        ///
422
        /// Default: `4MB`
423
        #[must_use]
424
0
        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
425
0
            self.inner = self.inner.max_decoding_message_size(limit);
426
0
            self
427
0
        }
428
        /// Limits the maximum size of an encoded message.
429
        ///
430
        /// Default: `usize::MAX`
431
        #[must_use]
432
0
        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
433
0
            self.inner = self.inner.max_encoding_message_size(limit);
434
0
            self
435
0
        }
436
        /// / Gets the inbound server policy for a given workload port.
437
0
        pub async fn get_port(
438
0
            &mut self,
439
0
            request: impl tonic::IntoRequest<super::PortSpec>,
440
0
        ) -> std::result::Result<tonic::Response<super::Server>, tonic::Status> {
441
0
            self.inner
442
0
                .ready()
443
0
                .await
444
0
                .map_err(|e| {
445
0
                    tonic::Status::new(
446
0
                        tonic::Code::Unknown,
447
0
                        format!("Service was not ready: {}", e.into()),
448
0
                    )
449
0
                })?;
450
0
            let codec = tonic::codec::ProstCodec::default();
451
0
            let path = http::uri::PathAndQuery::from_static(
452
0
                "/io.linkerd.proxy.inbound.InboundServerPolicies/GetPort",
453
0
            );
454
0
            let mut req = request.into_request();
455
0
            req.extensions_mut()
456
0
                .insert(
457
0
                    GrpcMethod::new(
458
0
                        "io.linkerd.proxy.inbound.InboundServerPolicies",
459
0
                        "GetPort",
460
0
                    ),
461
0
                );
462
0
            self.inner.unary(req, path, codec).await
463
0
        }
464
        /// / Watches the inbound server policy for a given workload port.
465
0
        pub async fn watch_port(
466
0
            &mut self,
467
0
            request: impl tonic::IntoRequest<super::PortSpec>,
468
0
        ) -> std::result::Result<
469
0
            tonic::Response<tonic::codec::Streaming<super::Server>>,
470
0
            tonic::Status,
471
0
        > {
472
0
            self.inner
473
0
                .ready()
474
0
                .await
475
0
                .map_err(|e| {
476
0
                    tonic::Status::new(
477
0
                        tonic::Code::Unknown,
478
0
                        format!("Service was not ready: {}", e.into()),
479
0
                    )
480
0
                })?;
481
0
            let codec = tonic::codec::ProstCodec::default();
482
0
            let path = http::uri::PathAndQuery::from_static(
483
0
                "/io.linkerd.proxy.inbound.InboundServerPolicies/WatchPort",
484
0
            );
485
0
            let mut req = request.into_request();
486
0
            req.extensions_mut()
487
0
                .insert(
488
0
                    GrpcMethod::new(
489
0
                        "io.linkerd.proxy.inbound.InboundServerPolicies",
490
0
                        "WatchPort",
491
0
                    ),
492
0
                );
493
0
            self.inner.server_streaming(req, path, codec).await
494
0
        }
495
    }
496
}
497
/// Generated server implementations.
498
pub mod inbound_server_policies_server {
499
    #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
500
    use tonic::codegen::*;
501
    /// Generated trait containing gRPC methods that should be implemented for use with InboundServerPoliciesServer.
502
    #[async_trait]
503
    pub trait InboundServerPolicies: Send + Sync + 'static {
504
        /// / Gets the inbound server policy for a given workload port.
505
        async fn get_port(
506
            &self,
507
            request: tonic::Request<super::PortSpec>,
508
        ) -> std::result::Result<tonic::Response<super::Server>, tonic::Status>;
509
        /// Server streaming response type for the WatchPort method.
510
        type WatchPortStream: tonic::codegen::tokio_stream::Stream<
511
                Item = std::result::Result<super::Server, tonic::Status>,
512
            >
513
            + Send
514
            + 'static;
515
        /// / Watches the inbound server policy for a given workload port.
516
        async fn watch_port(
517
            &self,
518
            request: tonic::Request<super::PortSpec>,
519
        ) -> std::result::Result<tonic::Response<Self::WatchPortStream>, tonic::Status>;
520
    }
521
    /// / An API exposed to the linkerd2-proxy to configure the inbound proxy with per-port configuration
522
    /// /
523
    /// / Proxies are expected to watch policies for each known port. As policies change, proxies update
524
    /// / their behavior for newly accepted connections.
525
    /// /
526
    /// / The unary `GetPort` endpoint is exposed as a convenience for clients to query policies for
527
    /// / diagnostic purposes.
528
    #[derive(Debug)]
529
    pub struct InboundServerPoliciesServer<T: InboundServerPolicies> {
530
        inner: _Inner<T>,
531
        accept_compression_encodings: EnabledCompressionEncodings,
532
        send_compression_encodings: EnabledCompressionEncodings,
533
        max_decoding_message_size: Option<usize>,
534
        max_encoding_message_size: Option<usize>,
535
    }
536
    struct _Inner<T>(Arc<T>);
537
    impl<T: InboundServerPolicies> InboundServerPoliciesServer<T> {
538
0
        pub fn new(inner: T) -> Self {
539
0
            Self::from_arc(Arc::new(inner))
540
0
        }
541
0
        pub fn from_arc(inner: Arc<T>) -> Self {
542
0
            let inner = _Inner(inner);
543
0
            Self {
544
0
                inner,
545
0
                accept_compression_encodings: Default::default(),
546
0
                send_compression_encodings: Default::default(),
547
0
                max_decoding_message_size: None,
548
0
                max_encoding_message_size: None,
549
0
            }
550
0
        }
551
0
        pub fn with_interceptor<F>(
552
0
            inner: T,
553
0
            interceptor: F,
554
0
        ) -> InterceptedService<Self, F>
555
0
        where
556
0
            F: tonic::service::Interceptor,
557
0
        {
558
0
            InterceptedService::new(Self::new(inner), interceptor)
559
0
        }
560
        /// Enable decompressing requests with the given encoding.
561
        #[must_use]
562
0
        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
563
0
            self.accept_compression_encodings.enable(encoding);
564
0
            self
565
0
        }
566
        /// Compress responses with the given encoding, if the client supports it.
567
        #[must_use]
568
0
        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
569
0
            self.send_compression_encodings.enable(encoding);
570
0
            self
571
0
        }
572
        /// Limits the maximum size of a decoded message.
573
        ///
574
        /// Default: `4MB`
575
        #[must_use]
576
0
        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
577
0
            self.max_decoding_message_size = Some(limit);
578
0
            self
579
0
        }
580
        /// Limits the maximum size of an encoded message.
581
        ///
582
        /// Default: `usize::MAX`
583
        #[must_use]
584
0
        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
585
0
            self.max_encoding_message_size = Some(limit);
586
0
            self
587
0
        }
588
    }
589
    impl<T, B> tonic::codegen::Service<http::Request<B>>
590
    for InboundServerPoliciesServer<T>
591
    where
592
        T: InboundServerPolicies,
593
        B: Body + Send + 'static,
594
        B::Error: Into<StdError> + Send + 'static,
595
    {
596
        type Response = http::Response<tonic::body::BoxBody>;
597
        type Error = std::convert::Infallible;
598
        type Future = BoxFuture<Self::Response, Self::Error>;
599
0
        fn poll_ready(
600
0
            &mut self,
601
0
            _cx: &mut Context<'_>,
602
0
        ) -> Poll<std::result::Result<(), Self::Error>> {
603
0
            Poll::Ready(Ok(()))
604
0
        }
605
0
        fn call(&mut self, req: http::Request<B>) -> Self::Future {
606
0
            let inner = self.inner.clone();
607
0
            match req.uri().path() {
608
0
                "/io.linkerd.proxy.inbound.InboundServerPolicies/GetPort" => {
609
                    #[allow(non_camel_case_types)]
610
0
                    struct GetPortSvc<T: InboundServerPolicies>(pub Arc<T>);
611
0
                    impl<
612
                        T: InboundServerPolicies,
613
                    > tonic::server::UnaryService<super::PortSpec> for GetPortSvc<T> {
614
                        type Response = super::Server;
615
                        type Future = BoxFuture<
616
                            tonic::Response<Self::Response>,
617
                            tonic::Status,
618
                        >;
619
0
                        fn call(
620
0
                            &mut self,
621
0
                            request: tonic::Request<super::PortSpec>,
622
0
                        ) -> Self::Future {
623
0
                            let inner = Arc::clone(&self.0);
624
0
                            let fut = async move {
625
0
                                <T as InboundServerPolicies>::get_port(&inner, request)
626
0
                                    .await
627
0
                            };
628
0
                            Box::pin(fut)
629
0
                        }
630
                    }
631
0
                    let accept_compression_encodings = self.accept_compression_encodings;
632
0
                    let send_compression_encodings = self.send_compression_encodings;
633
0
                    let max_decoding_message_size = self.max_decoding_message_size;
634
0
                    let max_encoding_message_size = self.max_encoding_message_size;
635
0
                    let inner = self.inner.clone();
636
0
                    let fut = async move {
637
0
                        let inner = inner.0;
638
0
                        let method = GetPortSvc(inner);
639
0
                        let codec = tonic::codec::ProstCodec::default();
640
0
                        let mut grpc = tonic::server::Grpc::new(codec)
641
0
                            .apply_compression_config(
642
0
                                accept_compression_encodings,
643
0
                                send_compression_encodings,
644
0
                            )
645
0
                            .apply_max_message_size_config(
646
0
                                max_decoding_message_size,
647
0
                                max_encoding_message_size,
648
0
                            );
649
0
                        let res = grpc.unary(method, req).await;
650
0
                        Ok(res)
651
0
                    };
652
0
                    Box::pin(fut)
653
                }
654
0
                "/io.linkerd.proxy.inbound.InboundServerPolicies/WatchPort" => {
655
                    #[allow(non_camel_case_types)]
656
0
                    struct WatchPortSvc<T: InboundServerPolicies>(pub Arc<T>);
657
0
                    impl<
658
                        T: InboundServerPolicies,
659
                    > tonic::server::ServerStreamingService<super::PortSpec>
660
                    for WatchPortSvc<T> {
661
                        type Response = super::Server;
662
                        type ResponseStream = T::WatchPortStream;
663
                        type Future = BoxFuture<
664
                            tonic::Response<Self::ResponseStream>,
665
                            tonic::Status,
666
                        >;
667
0
                        fn call(
668
0
                            &mut self,
669
0
                            request: tonic::Request<super::PortSpec>,
670
0
                        ) -> Self::Future {
671
0
                            let inner = Arc::clone(&self.0);
672
0
                            let fut = async move {
673
0
                                <T as InboundServerPolicies>::watch_port(&inner, request)
674
0
                                    .await
675
0
                            };
676
0
                            Box::pin(fut)
677
0
                        }
678
                    }
679
0
                    let accept_compression_encodings = self.accept_compression_encodings;
680
0
                    let send_compression_encodings = self.send_compression_encodings;
681
0
                    let max_decoding_message_size = self.max_decoding_message_size;
682
0
                    let max_encoding_message_size = self.max_encoding_message_size;
683
0
                    let inner = self.inner.clone();
684
0
                    let fut = async move {
685
0
                        let inner = inner.0;
686
0
                        let method = WatchPortSvc(inner);
687
0
                        let codec = tonic::codec::ProstCodec::default();
688
0
                        let mut grpc = tonic::server::Grpc::new(codec)
689
0
                            .apply_compression_config(
690
0
                                accept_compression_encodings,
691
0
                                send_compression_encodings,
692
0
                            )
693
0
                            .apply_max_message_size_config(
694
0
                                max_decoding_message_size,
695
0
                                max_encoding_message_size,
696
0
                            );
697
0
                        let res = grpc.server_streaming(method, req).await;
698
0
                        Ok(res)
699
0
                    };
700
0
                    Box::pin(fut)
701
                }
702
                _ => {
703
0
                    Box::pin(async move {
704
0
                        Ok(
705
0
                            http::Response::builder()
706
0
                                .status(200)
707
0
                                .header("grpc-status", "12")
708
0
                                .header("content-type", "application/grpc")
709
0
                                .body(empty_body())
710
0
                                .unwrap(),
711
0
                        )
712
0
                    })
713
                }
714
            }
715
0
        }
716
    }
717
    impl<T: InboundServerPolicies> Clone for InboundServerPoliciesServer<T> {
718
0
        fn clone(&self) -> Self {
719
0
            let inner = self.inner.clone();
720
0
            Self {
721
0
                inner,
722
0
                accept_compression_encodings: self.accept_compression_encodings,
723
0
                send_compression_encodings: self.send_compression_encodings,
724
0
                max_decoding_message_size: self.max_decoding_message_size,
725
0
                max_encoding_message_size: self.max_encoding_message_size,
726
0
            }
727
0
        }
728
    }
729
    impl<T: InboundServerPolicies> Clone for _Inner<T> {
730
0
        fn clone(&self) -> Self {
731
0
            Self(Arc::clone(&self.0))
732
0
        }
733
    }
734
    impl<T: std::fmt::Debug> std::fmt::Debug for _Inner<T> {
735
0
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
736
0
            write!(f, "{:?}", self.0)
737
0
        }
738
    }
739
    impl<T: InboundServerPolicies> tonic::server::NamedService
740
    for InboundServerPoliciesServer<T> {
741
        const NAME: &'static str = "io.linkerd.proxy.inbound.InboundServerPolicies";
742
    }
743
}