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
|
// @generated
// This file is @generated by prost-build.
// \[#protodoc-title: DNS Filter Table Data\]
// :ref:`DNS Filter config overview <config_udp_listener_filters_dns_filter>`.
/// This message contains the configuration for the DNS Filter if populated
/// from the control plane
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DnsTable {
/// Control how many times envoy makes an attempt to forward a query to
/// an external server
#[prost(uint32, tag="1")]
pub external_retry_count: u32,
/// Fully qualified domain names for which Envoy will respond to queries
#[prost(message, repeated, tag="2")]
pub virtual_domains: ::prost::alloc::vec::Vec<dns_table::DnsVirtualDomain>,
/// This field serves to help Envoy determine whether it can authoritatively
/// answer a query for a name matching a suffix in this list. If the query
/// name does not match a suffix in this list, Envoy will forward
/// the query to an upstream DNS server
#[prost(message, repeated, tag="3")]
pub known_suffixes: ::prost::alloc::vec::Vec<super::super::super::r#type::matcher::StringMatcher>,
}
/// Nested message and enum types in `DnsTable`.
pub mod dns_table {
/// This message contains a list of IP addresses returned for a query for a known name
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AddressList {
/// This field contains a well formed IP address that is returned
/// in the answer for a name query. The address field can be an
/// IPv4 or IPv6 address. Address family detection is done automatically
/// when Envoy parses the string. Since this field is repeated,
/// Envoy will return one randomly chosen entry from this list in the
/// DNS response. The random index will vary per query so that we prevent
/// clients pinning on a single address for a configured domain
#[prost(string, repeated, tag="1")]
pub address: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
/// This message type is extensible and can contain a list of addresses
/// or dictate some other method for resolving the addresses for an
/// endpoint
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DnsEndpoint {
#[prost(oneof="dns_endpoint::EndpointConfig", tags="1")]
pub endpoint_config: ::core::option::Option<dns_endpoint::EndpointConfig>,
}
/// Nested message and enum types in `DnsEndpoint`.
pub mod dns_endpoint {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum EndpointConfig {
#[prost(message, tag="1")]
AddressList(super::AddressList),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DnsVirtualDomain {
/// The domain name for which Envoy will respond to query requests
#[prost(string, tag="1")]
pub name: ::prost::alloc::string::String,
/// The configuration containing the method to determine the address
/// of this endpoint
#[prost(message, optional, tag="2")]
pub endpoint: ::core::option::Option<DnsEndpoint>,
/// Sets the TTL in dns answers from Envoy returned to the client
#[prost(message, optional, tag="3")]
pub answer_ttl: ::core::option::Option<super::super::super::super::super::google::protobuf::Duration>,
}
}
// @@protoc_insertion_point(module)
|