@type t() :: %Envoy.Config.Cluster.V3.Cluster{
__unknown_fields__: [
{field_number :: integer(), Protobuf.Wire.Types.wire_type(),
value :: term()}
],
alt_stat_name: String.t(),
circuit_breakers: Envoy.Config.Cluster.V3.CircuitBreakers.t() | nil,
cleanup_interval: Google.Protobuf.Duration.t() | nil,
close_connections_on_host_health_failure: boolean(),
cluster_discovery_type:
{:type, Envoy.Config.Cluster.V3.Cluster.DiscoveryType.t()}
| {:cluster_type,
Envoy.Config.Cluster.V3.Cluster.CustomClusterType.t() | nil}
| nil,
common_http_protocol_options:
Envoy.Config.Core.V3.HttpProtocolOptions.t() | nil,
common_lb_config: Envoy.Config.Cluster.V3.Cluster.CommonLbConfig.t() | nil,
connect_timeout: Google.Protobuf.Duration.t() | nil,
connection_pool_per_downstream_connection: boolean(),
dns_failure_refresh_rate:
Envoy.Config.Cluster.V3.Cluster.RefreshRate.t() | nil,
dns_lookup_family: Envoy.Config.Cluster.V3.Cluster.DnsLookupFamily.t(),
dns_refresh_rate: Google.Protobuf.Duration.t() | nil,
dns_resolution_config: Envoy.Config.Core.V3.DnsResolutionConfig.t() | nil,
dns_resolvers: [Envoy.Config.Core.V3.Address.t()],
eds_cluster_config:
Envoy.Config.Cluster.V3.Cluster.EdsClusterConfig.t() | nil,
filters: [Envoy.Config.Cluster.V3.Filter.t()],
health_checks: [Envoy.Config.Core.V3.HealthCheck.t()],
http2_protocol_options: Envoy.Config.Core.V3.Http2ProtocolOptions.t() | nil,
http_protocol_options: Envoy.Config.Core.V3.Http1ProtocolOptions.t() | nil,
ignore_health_on_host_removal: boolean(),
lb_config:
{:ring_hash_lb_config,
Envoy.Config.Cluster.V3.Cluster.RingHashLbConfig.t() | nil}
| {:round_robin_lb_config,
Envoy.Config.Cluster.V3.Cluster.RoundRobinLbConfig.t() | nil}
| {:least_request_lb_config,
Envoy.Config.Cluster.V3.Cluster.LeastRequestLbConfig.t() | nil}
| {:maglev_lb_config,
Envoy.Config.Cluster.V3.Cluster.MaglevLbConfig.t() | nil}
| {:original_dst_lb_config,
Envoy.Config.Cluster.V3.Cluster.OriginalDstLbConfig.t() | nil}
| nil,
lb_policy: Envoy.Config.Cluster.V3.Cluster.LbPolicy.t(),
lb_subset_config: Envoy.Config.Cluster.V3.Cluster.LbSubsetConfig.t() | nil,
load_assignment: Envoy.Config.Endpoint.V3.ClusterLoadAssignment.t() | nil,
load_balancing_policy: Envoy.Config.Cluster.V3.LoadBalancingPolicy.t() | nil,
lrs_server: Envoy.Config.Core.V3.ConfigSource.t() | nil,
max_requests_per_connection: Google.Protobuf.UInt32Value.t() | nil,
metadata: Envoy.Config.Core.V3.Metadata.t() | nil,
name: String.t(),
outlier_detection: Envoy.Config.Cluster.V3.OutlierDetection.t() | nil,
per_connection_buffer_limit_bytes: Google.Protobuf.UInt32Value.t() | nil,
preconnect_policy: Envoy.Config.Cluster.V3.Cluster.PreconnectPolicy.t() | nil,
protocol_selection:
Envoy.Config.Cluster.V3.Cluster.ClusterProtocolSelection.t(),
respect_dns_ttl: boolean(),
track_cluster_stats: Envoy.Config.Cluster.V3.TrackClusterStats.t() | nil,
track_timeout_budgets: boolean(),
transport_socket: Envoy.Config.Core.V3.TransportSocket.t() | nil,
transport_socket_matches: [
Envoy.Config.Cluster.V3.Cluster.TransportSocketMatch.t()
],
typed_dns_resolver_config:
Envoy.Config.Core.V3.TypedExtensionConfig.t() | nil,
typed_extension_protocol_options: %{
optional(String.t()) => Google.Protobuf.Any.t() | nil
},
upstream_bind_config: Envoy.Config.Core.V3.BindConfig.t() | nil,
upstream_config: Envoy.Config.Core.V3.TypedExtensionConfig.t() | nil,
upstream_connection_options:
Envoy.Config.Cluster.V3.UpstreamConnectionOptions.t() | nil,
upstream_http_protocol_options:
Envoy.Config.Core.V3.UpstreamHttpProtocolOptions.t() | nil,
use_tcp_for_dns_lookups: boolean(),
wait_for_warm_on_init: Google.Protobuf.BoolValue.t() | nil
}