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}