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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
// This file is @generated by prost-build.
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CommonGeoipProviderConfig {
/// Configuration for geolocation headers to add to HTTP requests.
/// This field is deprecated in favor of `geo_field_keys`. If both are set, `geo_field_keys`
/// takes precedence.
#[deprecated]
#[prost(message, optional, tag = "1")]
pub geo_headers_to_add: ::core::option::Option<
common_geoip_provider_config::GeolocationHeadersToAdd,
>,
/// Configuration for geolocation field keys.
/// At least one of `geo_headers_to_add` or `geo_field_keys` must be set.
#[prost(message, optional, tag = "3")]
pub geo_field_keys: ::core::option::Option<
common_geoip_provider_config::GeolocationFieldKeys,
>,
}
/// Nested message and enum types in `CommonGeoipProviderConfig`.
pub mod common_geoip_provider_config {
/// The set of geolocation headers to add to request. If any of the configured headers is present
/// in the incoming request, it will be overridden by the :ref:`HTTP GeoIP filter <config_http_filters_geoip>`.
/// \[\#next-free-field: 13\]
///
/// .. attention::
/// This field is deprecated in favor of :ref:`geo_field_keys <envoy_v3_api_field_extensions.geoip_providers.common.v3.CommonGeoipProviderConfig.geo_field_keys>`.
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GeolocationHeadersToAdd {
/// If set, the header will be used to populate the country ISO code associated with the IP address.
#[prost(string, tag = "1")]
pub country: ::prost::alloc::string::String,
/// If set, the header will be used to populate the city associated with the IP address.
#[prost(string, tag = "2")]
pub city: ::prost::alloc::string::String,
/// If set, the header will be used to populate the region ISO code associated with the IP address.
/// The least specific subdivision will be selected as the region value.
#[prost(string, tag = "3")]
pub region: ::prost::alloc::string::String,
/// If set, the header will be used to populate the ASN associated with the IP address.
#[prost(string, tag = "4")]
pub asn: ::prost::alloc::string::String,
/// This field is deprecated; use `anon` instead.
#[deprecated]
#[prost(string, tag = "5")]
pub is_anon: ::prost::alloc::string::String,
/// If set, the IP address will be checked if it belongs to any type of anonymization network (e.g., VPN, public proxy).
/// The header will be populated with the check result. Header value will be set to either `true` or `false` depending on the check result.
#[prost(string, tag = "12")]
pub anon: ::prost::alloc::string::String,
/// If set, the IP address will be checked if it belongs to a VPN and the header will be populated with the check result.
/// Header value will be set to either `true` or `false` depending on the check result.
#[prost(string, tag = "6")]
pub anon_vpn: ::prost::alloc::string::String,
/// If set, the IP address will be checked if it belongs to a hosting provider and the header will be populated with the check result.
/// Header value will be set to either `true` or `false` depending on the check result.
#[prost(string, tag = "7")]
pub anon_hosting: ::prost::alloc::string::String,
/// If set, the IP address will be checked if it belongs to a TOR exit node and the header will be populated with the check result.
/// Header value will be set to either `true` or `false` depending on the check result.
#[prost(string, tag = "8")]
pub anon_tor: ::prost::alloc::string::String,
/// If set, the IP address will be checked if it belongs to a public proxy and the header will be populated with the check result.
/// Header value will be set to either `true` or `false` depending on the check result.
#[prost(string, tag = "9")]
pub anon_proxy: ::prost::alloc::string::String,
/// If set, the header will be used to populate the ISP associated with the IP address.
#[prost(string, tag = "10")]
pub isp: ::prost::alloc::string::String,
/// If set, the IP address will be checked if it belongs to the ISP named iCloud Private Relay and the header will be populated with the check result.
/// Header value will be set to either `true` or `false` depending on the check result.
#[prost(string, tag = "11")]
pub apple_private_relay: ::prost::alloc::string::String,
}
impl ::prost::Name for GeolocationHeadersToAdd {
const NAME: &'static str = "GeolocationHeadersToAdd";
const PACKAGE: &'static str = "envoy.extensions.geoip_providers.common.v3";
fn full_name() -> ::prost::alloc::string::String {
"envoy.extensions.geoip_providers.common.v3.CommonGeoipProviderConfig.GeolocationHeadersToAdd"
.into()
}
fn type_url() -> ::prost::alloc::string::String {
"type.googleapis.com/envoy.extensions.geoip_providers.common.v3.CommonGeoipProviderConfig.GeolocationHeadersToAdd"
.into()
}
}
/// The set of geolocation field keys to use for storing lookup results.
/// These keys define how the geolocation lookup results will be stored. The actual storage
/// mechanism depends on the filter using the provider:
///
/// * The :ref:`HTTP GeoIP filter <config_http_filters_geoip>` stores results as HTTP request headers.
/// * The :ref:`Network GeoIP filter <config_network_filters_geoip>` stores results in the
/// connection's filter state under the well-known key `envoy.geoip`.
///
/// \[\#next-free-field: 12\]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GeolocationFieldKeys {
/// If set, the key will be used to populate the country ISO code associated with the IP address.
#[prost(string, tag = "1")]
pub country: ::prost::alloc::string::String,
/// If set, the key will be used to populate the city associated with the IP address.
#[prost(string, tag = "2")]
pub city: ::prost::alloc::string::String,
/// If set, the key will be used to populate the region ISO code associated with the IP address.
/// The least specific subdivision will be selected as the region value.
#[prost(string, tag = "3")]
pub region: ::prost::alloc::string::String,
/// If set, the key will be used to populate the ASN associated with the IP address.
#[prost(string, tag = "4")]
pub asn: ::prost::alloc::string::String,
/// If set, the IP address will be checked if it belongs to any type of anonymization network
/// (e.g., VPN, public proxy). The result will be stored with this key. Value will be set to
/// either `true` or `false` depending on the check result.
#[prost(string, tag = "5")]
pub anon: ::prost::alloc::string::String,
/// If set, the IP address will be checked if it belongs to a VPN and the result will be stored
/// with this key. Value will be set to either `true` or `false` depending on the check result.
#[prost(string, tag = "6")]
pub anon_vpn: ::prost::alloc::string::String,
/// If set, the IP address will be checked if it belongs to a hosting provider and the result
/// will be stored with this key. Value will be set to either `true` or `false` depending on
/// the check result.
#[prost(string, tag = "7")]
pub anon_hosting: ::prost::alloc::string::String,
/// If set, the IP address will be checked if it belongs to a TOR exit node and the result will
/// be stored with this key. Value will be set to either `true` or `false` depending on the
/// check result.
#[prost(string, tag = "8")]
pub anon_tor: ::prost::alloc::string::String,
/// If set, the IP address will be checked if it belongs to a public proxy and the result will
/// be stored with this key. Value will be set to either `true` or `false` depending on the
/// check result.
#[prost(string, tag = "9")]
pub anon_proxy: ::prost::alloc::string::String,
/// If set, the key will be used to populate the ISP associated with the IP address.
#[prost(string, tag = "10")]
pub isp: ::prost::alloc::string::String,
/// If set, the IP address will be checked if it belongs to the ISP named iCloud Private Relay
/// and the result will be stored with this key. Value will be set to either `true` or `false`
/// depending on the check result.
#[prost(string, tag = "11")]
pub apple_private_relay: ::prost::alloc::string::String,
}
impl ::prost::Name for GeolocationFieldKeys {
const NAME: &'static str = "GeolocationFieldKeys";
const PACKAGE: &'static str = "envoy.extensions.geoip_providers.common.v3";
fn full_name() -> ::prost::alloc::string::String {
"envoy.extensions.geoip_providers.common.v3.CommonGeoipProviderConfig.GeolocationFieldKeys"
.into()
}
fn type_url() -> ::prost::alloc::string::String {
"type.googleapis.com/envoy.extensions.geoip_providers.common.v3.CommonGeoipProviderConfig.GeolocationFieldKeys"
.into()
}
}
}
impl ::prost::Name for CommonGeoipProviderConfig {
const NAME: &'static str = "CommonGeoipProviderConfig";
const PACKAGE: &'static str = "envoy.extensions.geoip_providers.common.v3";
fn full_name() -> ::prost::alloc::string::String {
"envoy.extensions.geoip_providers.common.v3.CommonGeoipProviderConfig".into()
}
fn type_url() -> ::prost::alloc::string::String {
"type.googleapis.com/envoy.extensions.geoip_providers.common.v3.CommonGeoipProviderConfig"
.into()
}
}