envoy_types/generated/envoy.extensions.clusters.dns.v3.rs
1// This file is @generated by prost-build.
2/// \[\#next-free-field: 10\]
3#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4pub struct DnsCluster {
5 /// This value is the cluster’s DNS refresh rate. The value configured must be at least 1ms.
6 /// If this setting is not specified, the
7 /// value defaults to 5000ms.
8 #[prost(message, optional, tag = "3")]
9 pub dns_refresh_rate: ::core::option::Option<
10 super::super::super::super::super::google::protobuf::Duration,
11 >,
12 /// This is the cluster’s DNS refresh rate when requests are failing. If this setting is
13 /// not specified, the failure refresh rate defaults to the DNS refresh rate.
14 #[prost(message, optional, tag = "4")]
15 pub dns_failure_refresh_rate: ::core::option::Option<dns_cluster::RefreshRate>,
16 /// Optional configuration for setting cluster's DNS refresh rate. If the value is set to true,
17 /// cluster's DNS refresh rate will be set to resource record's TTL which comes from DNS
18 /// resolution.
19 #[prost(bool, tag = "5")]
20 pub respect_dns_ttl: bool,
21 /// DNS jitter causes the cluster to refresh DNS entries later by a random amount of time to avoid a
22 /// stampede of DNS requests. This value sets the upper bound (exclusive) for the random amount.
23 /// There will be no jitter if this value is omitted.
24 #[prost(message, optional, tag = "6")]
25 pub dns_jitter: ::core::option::Option<
26 super::super::super::super::super::google::protobuf::Duration,
27 >,
28 ///
29 /// DNS resolver type configuration extension. This extension can be used to configure c-ares, apple,
30 /// or any other DNS resolver types and the related parameters.
31 /// For example, an object of
32 /// : ref:`CaresDnsResolverConfig<envoy_v3_api_msg_extensions.network.dns_resolver.cares.v3.CaresDnsResolverConfig>`
33 /// can be packed into this `typed_dns_resolver_config`. This configuration replaces the
34 /// : ref:`Cluster.typed_dns_resolver_config<envoy_v3_api_field_config.cluster.v3.Cluster.typed_dns_resolver_config>`
35 /// configuration which replaces :ref:`Cluster.dns_resolution_config<envoy_v3_api_field_config.cluster.v3.Cluster.dns_resolution_config>`.
36 /// During the transition period when
37 /// : ref:`DnsCluster.typed_dns_resolver_config<envoy_v3_api_field_extensions.clusters.dns.v3.DnsCluster.typed_dns_resolver_config>`,
38 /// : ref:`Cluster.typed_dns_resolver_config<envoy_v3_api_field_config.cluster.v3.Cluster.typed_dns_resolver_config>`,
39 /// and :ref:`Cluster.dns_resolution_config<envoy_v3_api_field_config.cluster.v3.Cluster.dns_resolution_config>`
40 /// exist, Envoy will use
41 /// : ref:`DnsCluster.typed_dns_resolver_config<envoy_v3_api_field_extensions.clusters.dns.v3.DnsCluster.typed_dns_resolver_config>`
42 /// and ignore
43 /// DNS resolver-related fields in :ref:`Cluster<envoy_v3_api_msg_config.cluster.v3.Cluster>` if the cluster is configured via the
44 /// : ref:`Cluster.cluster_type<envoy_v3_api_field_config.cluster.v3.Cluster.cluster_type>` extension point with the
45 /// : ref:`DnsCluster<envoy_v3_api_msg_extensions.clusters.dns.v3.DnsCluster>` extension type.
46 /// Otherwise, see :ref:`Cluster.typed_dns_resolver_config<envoy_v3_api_field_config.cluster.v3.Cluster.typed_dns_resolver_config>`.
47 /// \[\#extension-category: envoy.network.dns_resolver\]
48 #[prost(message, optional, tag = "7")]
49 pub typed_dns_resolver_config: ::core::option::Option<
50 super::super::super::super::config::core::v3::TypedExtensionConfig,
51 >,
52 ///
53 /// The DNS IP address resolution policy. If this setting is not specified, the
54 /// value defaults to
55 /// : ref:`AUTO<envoy_v3_api_enum_value_extensions.clusters.common.dns.v3.DnsLookupFamily.AUTO>`.
56 #[prost(enumeration = "super::super::common::dns::v3::DnsLookupFamily", tag = "8")]
57 pub dns_lookup_family: i32,
58 ///
59 /// If true, all returned addresses are considered to be associated with a single endpoint,
60 /// which maps to :ref:`logical DNS discovery <arch_overview_service_discovery_types_logical_dns>`
61 /// semantics. Otherwise, each address is considered to be a separate endpoint, which maps to
62 /// : ref:`strict DNS discovery <arch_overview_service_discovery_types_strict_dns>` semantics.
63 #[prost(bool, tag = "9")]
64 pub all_addresses_in_single_endpoint: bool,
65}
66/// Nested message and enum types in `DnsCluster`.
67pub mod dns_cluster {
68 #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
69 pub struct RefreshRate {
70 ///
71 /// Specifies the base interval between refreshes. This parameter is required and must be greater
72 /// than zero and less than
73 /// : ref:`max_interval <envoy_v3_api_field_extensions.clusters.dns.v3.DnsCluster.RefreshRate.max_interval>`.
74 #[prost(message, optional, tag = "1")]
75 pub base_interval: ::core::option::Option<
76 super::super::super::super::super::super::google::protobuf::Duration,
77 >,
78 ///
79 /// Specifies the maximum interval between refreshes. This parameter is optional, but must be
80 /// greater than or equal to the
81 /// : ref:`base_interval <envoy_v3_api_field_extensions.clusters.dns.v3.DnsCluster.RefreshRate.base_interval>` if set. The default
82 /// is 10 times the :ref:`base_interval <envoy_v3_api_field_extensions.clusters.dns.v3.DnsCluster.RefreshRate.base_interval>`.
83 #[prost(message, optional, tag = "2")]
84 pub max_interval: ::core::option::Option<
85 super::super::super::super::super::super::google::protobuf::Duration,
86 >,
87 }
88 impl ::prost::Name for RefreshRate {
89 const NAME: &'static str = "RefreshRate";
90 const PACKAGE: &'static str = "envoy.extensions.clusters.dns.v3";
91 fn full_name() -> ::prost::alloc::string::String {
92 "envoy.extensions.clusters.dns.v3.DnsCluster.RefreshRate".into()
93 }
94 fn type_url() -> ::prost::alloc::string::String {
95 "type.googleapis.com/envoy.extensions.clusters.dns.v3.DnsCluster.RefreshRate"
96 .into()
97 }
98 }
99}
100impl ::prost::Name for DnsCluster {
101 const NAME: &'static str = "DnsCluster";
102 const PACKAGE: &'static str = "envoy.extensions.clusters.dns.v3";
103 fn full_name() -> ::prost::alloc::string::String {
104 "envoy.extensions.clusters.dns.v3.DnsCluster".into()
105 }
106 fn type_url() -> ::prost::alloc::string::String {
107 "type.googleapis.com/envoy.extensions.clusters.dns.v3.DnsCluster".into()
108 }
109}