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
// This file is @generated by prost-build.
/// \[\#next-free-field: 10\]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct DnsCluster {
/// This value is the cluster’s DNS refresh rate. The value configured must be at least 1ms.
/// If this setting is not specified, the
/// value defaults to 5000ms.
#[prost(message, optional, tag = "3")]
pub dns_refresh_rate: ::core::option::Option<
super::super::super::super::super::google::protobuf::Duration,
>,
/// This is the cluster’s DNS refresh rate when requests are failing. If this setting is
/// not specified, the failure refresh rate defaults to the DNS refresh rate.
#[prost(message, optional, tag = "4")]
pub dns_failure_refresh_rate: ::core::option::Option<dns_cluster::RefreshRate>,
/// Optional configuration for setting cluster's DNS refresh rate. If the value is set to true,
/// cluster's DNS refresh rate will be set to resource record's TTL which comes from DNS
/// resolution.
#[prost(bool, tag = "5")]
pub respect_dns_ttl: bool,
/// DNS jitter causes the cluster to refresh DNS entries later by a random amount of time to avoid a
/// stampede of DNS requests. This value sets the upper bound (exclusive) for the random amount.
/// There will be no jitter if this value is omitted.
#[prost(message, optional, tag = "6")]
pub dns_jitter: ::core::option::Option<
super::super::super::super::super::google::protobuf::Duration,
>,
///
/// DNS resolver type configuration extension. This extension can be used to configure c-ares, apple,
/// or any other DNS resolver types and the related parameters.
/// For example, an object of
/// : ref:`CaresDnsResolverConfig<envoy_v3_api_msg_extensions.network.dns_resolver.cares.v3.CaresDnsResolverConfig>`
/// can be packed into this `typed_dns_resolver_config`. This configuration replaces the
/// : ref:`Cluster.typed_dns_resolver_config<envoy_v3_api_field_config.cluster.v3.Cluster.typed_dns_resolver_config>`
/// configuration which replaces :ref:`Cluster.dns_resolution_config<envoy_v3_api_field_config.cluster.v3.Cluster.dns_resolution_config>`.
/// During the transition period when
/// : ref:`DnsCluster.typed_dns_resolver_config<envoy_v3_api_field_extensions.clusters.dns.v3.DnsCluster.typed_dns_resolver_config>`,
/// : ref:`Cluster.typed_dns_resolver_config<envoy_v3_api_field_config.cluster.v3.Cluster.typed_dns_resolver_config>`,
/// and :ref:`Cluster.dns_resolution_config<envoy_v3_api_field_config.cluster.v3.Cluster.dns_resolution_config>`
/// exist, Envoy will use
/// : ref:`DnsCluster.typed_dns_resolver_config<envoy_v3_api_field_extensions.clusters.dns.v3.DnsCluster.typed_dns_resolver_config>`
/// and ignore
/// DNS resolver-related fields in :ref:`Cluster<envoy_v3_api_msg_config.cluster.v3.Cluster>` if the cluster is configured via the
/// : ref:`Cluster.cluster_type<envoy_v3_api_field_config.cluster.v3.Cluster.cluster_type>` extension point with the
/// : ref:`DnsCluster<envoy_v3_api_msg_extensions.clusters.dns.v3.DnsCluster>` extension type.
/// Otherwise, see :ref:`Cluster.typed_dns_resolver_config<envoy_v3_api_field_config.cluster.v3.Cluster.typed_dns_resolver_config>`.
/// \[\#extension-category: envoy.network.dns_resolver\]
#[prost(message, optional, tag = "7")]
pub typed_dns_resolver_config: ::core::option::Option<
super::super::super::super::config::core::v3::TypedExtensionConfig,
>,
///
/// The DNS IP address resolution policy. If this setting is not specified, the
/// value defaults to
/// : ref:`AUTO<envoy_v3_api_enum_value_extensions.clusters.common.dns.v3.DnsLookupFamily.AUTO>`.
#[prost(enumeration = "super::super::common::dns::v3::DnsLookupFamily", tag = "8")]
pub dns_lookup_family: i32,
///
/// If true, all returned addresses are considered to be associated with a single endpoint,
/// which maps to :ref:`logical DNS discovery <arch_overview_service_discovery_types_logical_dns>`
/// semantics. Otherwise, each address is considered to be a separate endpoint, which maps to
/// : ref:`strict DNS discovery <arch_overview_service_discovery_types_strict_dns>` semantics.
#[prost(bool, tag = "9")]
pub all_addresses_in_single_endpoint: bool,
}
/// Nested message and enum types in `DnsCluster`.
pub mod dns_cluster {
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct RefreshRate {
///
/// Specifies the base interval between refreshes. This parameter is required and must be greater
/// than zero and less than
/// : ref:`max_interval <envoy_v3_api_field_extensions.clusters.dns.v3.DnsCluster.RefreshRate.max_interval>`.
#[prost(message, optional, tag = "1")]
pub base_interval: ::core::option::Option<
super::super::super::super::super::super::google::protobuf::Duration,
>,
///
/// Specifies the maximum interval between refreshes. This parameter is optional, but must be
/// greater than or equal to the
/// : ref:`base_interval <envoy_v3_api_field_extensions.clusters.dns.v3.DnsCluster.RefreshRate.base_interval>` if set. The default
/// is 10 times the :ref:`base_interval <envoy_v3_api_field_extensions.clusters.dns.v3.DnsCluster.RefreshRate.base_interval>`.
#[prost(message, optional, tag = "2")]
pub max_interval: ::core::option::Option<
super::super::super::super::super::super::google::protobuf::Duration,
>,
}
impl ::prost::Name for RefreshRate {
const NAME: &'static str = "RefreshRate";
const PACKAGE: &'static str = "envoy.extensions.clusters.dns.v3";
fn full_name() -> ::prost::alloc::string::String {
"envoy.extensions.clusters.dns.v3.DnsCluster.RefreshRate".into()
}
fn type_url() -> ::prost::alloc::string::String {
"type.googleapis.com/envoy.extensions.clusters.dns.v3.DnsCluster.RefreshRate"
.into()
}
}
}
impl ::prost::Name for DnsCluster {
const NAME: &'static str = "DnsCluster";
const PACKAGE: &'static str = "envoy.extensions.clusters.dns.v3";
fn full_name() -> ::prost::alloc::string::String {
"envoy.extensions.clusters.dns.v3.DnsCluster".into()
}
fn type_url() -> ::prost::alloc::string::String {
"type.googleapis.com/envoy.extensions.clusters.dns.v3.DnsCluster".into()
}
}