summaryrefslogtreecommitdiff
path: root/src/rpc/envoy.data.dns.v2alpha.rs
blob: 4e42587603f3bd9725a360dbf05b72e9c28b2681 (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
// @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)