...

Source file src/github.com/datawire/ambassador/v2/pkg/api/envoy/config/cluster/v4alpha/cluster.pb.go

Documentation: github.com/datawire/ambassador/v2/pkg/api/envoy/config/cluster/v4alpha

     1  // Code generated by protoc-gen-go. DO NOT EDIT.
     2  // versions:
     3  // 	protoc-gen-go v1.25.0
     4  // 	protoc        v3.14.0
     5  // source: envoy/config/cluster/v4alpha/cluster.proto
     6  
     7  package envoy_config_cluster_v4alpha
     8  
     9  import (
    10  	_ "github.com/cncf/udpa/go/udpa/annotations"
    11  	v3 "github.com/cncf/udpa/go/xds/core/v3"
    12  	_ "github.com/datawire/ambassador/v2/pkg/api/envoy/annotations"
    13  	v4alpha "github.com/datawire/ambassador/v2/pkg/api/envoy/config/core/v4alpha"
    14  	v31 "github.com/datawire/ambassador/v2/pkg/api/envoy/config/endpoint/v3"
    15  	v32 "github.com/datawire/ambassador/v2/pkg/api/envoy/type/v3"
    16  	_ "github.com/envoyproxy/protoc-gen-validate/validate"
    17  	proto "github.com/golang/protobuf/proto"
    18  	any "github.com/golang/protobuf/ptypes/any"
    19  	duration "github.com/golang/protobuf/ptypes/duration"
    20  	_struct "github.com/golang/protobuf/ptypes/struct"
    21  	wrappers "github.com/golang/protobuf/ptypes/wrappers"
    22  	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
    23  	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
    24  	reflect "reflect"
    25  	sync "sync"
    26  )
    27  
    28  const (
    29  	// Verify that this generated code is sufficiently up-to-date.
    30  	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
    31  	// Verify that runtime/protoimpl is sufficiently up-to-date.
    32  	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
    33  )
    34  
    35  // This is a compile-time assertion that a sufficiently up-to-date version
    36  // of the legacy proto package is being used.
    37  const _ = proto.ProtoPackageIsVersion4
    38  
    39  // Refer to :ref:`service discovery type <arch_overview_service_discovery_types>`
    40  // for an explanation on each type.
    41  type Cluster_DiscoveryType int32
    42  
    43  const (
    44  	// Refer to the :ref:`static discovery type<arch_overview_service_discovery_types_static>`
    45  	// for an explanation.
    46  	Cluster_STATIC Cluster_DiscoveryType = 0
    47  	// Refer to the :ref:`strict DNS discovery
    48  	// type<arch_overview_service_discovery_types_strict_dns>`
    49  	// for an explanation.
    50  	Cluster_STRICT_DNS Cluster_DiscoveryType = 1
    51  	// Refer to the :ref:`logical DNS discovery
    52  	// type<arch_overview_service_discovery_types_logical_dns>`
    53  	// for an explanation.
    54  	Cluster_LOGICAL_DNS Cluster_DiscoveryType = 2
    55  	// Refer to the :ref:`service discovery type<arch_overview_service_discovery_types_eds>`
    56  	// for an explanation.
    57  	Cluster_EDS Cluster_DiscoveryType = 3
    58  	// Refer to the :ref:`original destination discovery
    59  	// type<arch_overview_service_discovery_types_original_destination>`
    60  	// for an explanation.
    61  	Cluster_ORIGINAL_DST Cluster_DiscoveryType = 4
    62  )
    63  
    64  // Enum value maps for Cluster_DiscoveryType.
    65  var (
    66  	Cluster_DiscoveryType_name = map[int32]string{
    67  		0: "STATIC",
    68  		1: "STRICT_DNS",
    69  		2: "LOGICAL_DNS",
    70  		3: "EDS",
    71  		4: "ORIGINAL_DST",
    72  	}
    73  	Cluster_DiscoveryType_value = map[string]int32{
    74  		"STATIC":       0,
    75  		"STRICT_DNS":   1,
    76  		"LOGICAL_DNS":  2,
    77  		"EDS":          3,
    78  		"ORIGINAL_DST": 4,
    79  	}
    80  )
    81  
    82  func (x Cluster_DiscoveryType) Enum() *Cluster_DiscoveryType {
    83  	p := new(Cluster_DiscoveryType)
    84  	*p = x
    85  	return p
    86  }
    87  
    88  func (x Cluster_DiscoveryType) String() string {
    89  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
    90  }
    91  
    92  func (Cluster_DiscoveryType) Descriptor() protoreflect.EnumDescriptor {
    93  	return file_envoy_config_cluster_v4alpha_cluster_proto_enumTypes[0].Descriptor()
    94  }
    95  
    96  func (Cluster_DiscoveryType) Type() protoreflect.EnumType {
    97  	return &file_envoy_config_cluster_v4alpha_cluster_proto_enumTypes[0]
    98  }
    99  
   100  func (x Cluster_DiscoveryType) Number() protoreflect.EnumNumber {
   101  	return protoreflect.EnumNumber(x)
   102  }
   103  
   104  // Deprecated: Use Cluster_DiscoveryType.Descriptor instead.
   105  func (Cluster_DiscoveryType) EnumDescriptor() ([]byte, []int) {
   106  	return file_envoy_config_cluster_v4alpha_cluster_proto_rawDescGZIP(), []int{1, 0}
   107  }
   108  
   109  // Refer to :ref:`load balancer type <arch_overview_load_balancing_types>` architecture
   110  // overview section for information on each type.
   111  type Cluster_LbPolicy int32
   112  
   113  const (
   114  	// Refer to the :ref:`round robin load balancing
   115  	// policy<arch_overview_load_balancing_types_round_robin>`
   116  	// for an explanation.
   117  	Cluster_ROUND_ROBIN Cluster_LbPolicy = 0
   118  	// Refer to the :ref:`least request load balancing
   119  	// policy<arch_overview_load_balancing_types_least_request>`
   120  	// for an explanation.
   121  	Cluster_LEAST_REQUEST Cluster_LbPolicy = 1
   122  	// Refer to the :ref:`ring hash load balancing
   123  	// policy<arch_overview_load_balancing_types_ring_hash>`
   124  	// for an explanation.
   125  	Cluster_RING_HASH Cluster_LbPolicy = 2
   126  	// Refer to the :ref:`random load balancing
   127  	// policy<arch_overview_load_balancing_types_random>`
   128  	// for an explanation.
   129  	Cluster_RANDOM Cluster_LbPolicy = 3
   130  	// Refer to the :ref:`Maglev load balancing policy<arch_overview_load_balancing_types_maglev>`
   131  	// for an explanation.
   132  	Cluster_MAGLEV Cluster_LbPolicy = 5
   133  	// This load balancer type must be specified if the configured cluster provides a cluster
   134  	// specific load balancer. Consult the configured cluster's documentation for whether to set
   135  	// this option or not.
   136  	Cluster_CLUSTER_PROVIDED Cluster_LbPolicy = 6
   137  	// [#not-implemented-hide:] Use the new :ref:`load_balancing_policy
   138  	// <envoy_api_field_config.cluster.v4alpha.Cluster.load_balancing_policy>` field to determine the LB policy.
   139  	// [#next-major-version: In the v3 API, we should consider deprecating the lb_policy field
   140  	// and instead using the new load_balancing_policy field as the one and only mechanism for
   141  	// configuring this.]
   142  	Cluster_LOAD_BALANCING_POLICY_CONFIG Cluster_LbPolicy = 7
   143  )
   144  
   145  // Enum value maps for Cluster_LbPolicy.
   146  var (
   147  	Cluster_LbPolicy_name = map[int32]string{
   148  		0: "ROUND_ROBIN",
   149  		1: "LEAST_REQUEST",
   150  		2: "RING_HASH",
   151  		3: "RANDOM",
   152  		5: "MAGLEV",
   153  		6: "CLUSTER_PROVIDED",
   154  		7: "LOAD_BALANCING_POLICY_CONFIG",
   155  	}
   156  	Cluster_LbPolicy_value = map[string]int32{
   157  		"ROUND_ROBIN":                  0,
   158  		"LEAST_REQUEST":                1,
   159  		"RING_HASH":                    2,
   160  		"RANDOM":                       3,
   161  		"MAGLEV":                       5,
   162  		"CLUSTER_PROVIDED":             6,
   163  		"LOAD_BALANCING_POLICY_CONFIG": 7,
   164  	}
   165  )
   166  
   167  func (x Cluster_LbPolicy) Enum() *Cluster_LbPolicy {
   168  	p := new(Cluster_LbPolicy)
   169  	*p = x
   170  	return p
   171  }
   172  
   173  func (x Cluster_LbPolicy) String() string {
   174  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   175  }
   176  
   177  func (Cluster_LbPolicy) Descriptor() protoreflect.EnumDescriptor {
   178  	return file_envoy_config_cluster_v4alpha_cluster_proto_enumTypes[1].Descriptor()
   179  }
   180  
   181  func (Cluster_LbPolicy) Type() protoreflect.EnumType {
   182  	return &file_envoy_config_cluster_v4alpha_cluster_proto_enumTypes[1]
   183  }
   184  
   185  func (x Cluster_LbPolicy) Number() protoreflect.EnumNumber {
   186  	return protoreflect.EnumNumber(x)
   187  }
   188  
   189  // Deprecated: Use Cluster_LbPolicy.Descriptor instead.
   190  func (Cluster_LbPolicy) EnumDescriptor() ([]byte, []int) {
   191  	return file_envoy_config_cluster_v4alpha_cluster_proto_rawDescGZIP(), []int{1, 1}
   192  }
   193  
   194  // When V4_ONLY is selected, the DNS resolver will only perform a lookup for
   195  // addresses in the IPv4 family. If V6_ONLY is selected, the DNS resolver will
   196  // only perform a lookup for addresses in the IPv6 family. If AUTO is
   197  // specified, the DNS resolver will first perform a lookup for addresses in
   198  // the IPv6 family and fallback to a lookup for addresses in the IPv4 family.
   199  // For cluster types other than
   200  // :ref:`STRICT_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.STRICT_DNS>` and
   201  // :ref:`LOGICAL_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.LOGICAL_DNS>`,
   202  // this setting is
   203  // ignored.
   204  type Cluster_DnsLookupFamily int32
   205  
   206  const (
   207  	Cluster_AUTO    Cluster_DnsLookupFamily = 0
   208  	Cluster_V4_ONLY Cluster_DnsLookupFamily = 1
   209  	Cluster_V6_ONLY Cluster_DnsLookupFamily = 2
   210  )
   211  
   212  // Enum value maps for Cluster_DnsLookupFamily.
   213  var (
   214  	Cluster_DnsLookupFamily_name = map[int32]string{
   215  		0: "AUTO",
   216  		1: "V4_ONLY",
   217  		2: "V6_ONLY",
   218  	}
   219  	Cluster_DnsLookupFamily_value = map[string]int32{
   220  		"AUTO":    0,
   221  		"V4_ONLY": 1,
   222  		"V6_ONLY": 2,
   223  	}
   224  )
   225  
   226  func (x Cluster_DnsLookupFamily) Enum() *Cluster_DnsLookupFamily {
   227  	p := new(Cluster_DnsLookupFamily)
   228  	*p = x
   229  	return p
   230  }
   231  
   232  func (x Cluster_DnsLookupFamily) String() string {
   233  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   234  }
   235  
   236  func (Cluster_DnsLookupFamily) Descriptor() protoreflect.EnumDescriptor {
   237  	return file_envoy_config_cluster_v4alpha_cluster_proto_enumTypes[2].Descriptor()
   238  }
   239  
   240  func (Cluster_DnsLookupFamily) Type() protoreflect.EnumType {
   241  	return &file_envoy_config_cluster_v4alpha_cluster_proto_enumTypes[2]
   242  }
   243  
   244  func (x Cluster_DnsLookupFamily) Number() protoreflect.EnumNumber {
   245  	return protoreflect.EnumNumber(x)
   246  }
   247  
   248  // Deprecated: Use Cluster_DnsLookupFamily.Descriptor instead.
   249  func (Cluster_DnsLookupFamily) EnumDescriptor() ([]byte, []int) {
   250  	return file_envoy_config_cluster_v4alpha_cluster_proto_rawDescGZIP(), []int{1, 2}
   251  }
   252  
   253  type Cluster_ClusterProtocolSelection int32
   254  
   255  const (
   256  	// Cluster can only operate on one of the possible upstream protocols (HTTP1.1, HTTP2).
   257  	// If :ref:`http2_protocol_options <envoy_api_field_config.cluster.v4alpha.Cluster.http2_protocol_options>` are
   258  	// present, HTTP2 will be used, otherwise HTTP1.1 will be used.
   259  	Cluster_USE_CONFIGURED_PROTOCOL Cluster_ClusterProtocolSelection = 0
   260  	// Use HTTP1.1 or HTTP2, depending on which one is used on the downstream connection.
   261  	Cluster_USE_DOWNSTREAM_PROTOCOL Cluster_ClusterProtocolSelection = 1
   262  )
   263  
   264  // Enum value maps for Cluster_ClusterProtocolSelection.
   265  var (
   266  	Cluster_ClusterProtocolSelection_name = map[int32]string{
   267  		0: "USE_CONFIGURED_PROTOCOL",
   268  		1: "USE_DOWNSTREAM_PROTOCOL",
   269  	}
   270  	Cluster_ClusterProtocolSelection_value = map[string]int32{
   271  		"USE_CONFIGURED_PROTOCOL": 0,
   272  		"USE_DOWNSTREAM_PROTOCOL": 1,
   273  	}
   274  )
   275  
   276  func (x Cluster_ClusterProtocolSelection) Enum() *Cluster_ClusterProtocolSelection {
   277  	p := new(Cluster_ClusterProtocolSelection)
   278  	*p = x
   279  	return p
   280  }
   281  
   282  func (x Cluster_ClusterProtocolSelection) String() string {
   283  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   284  }
   285  
   286  func (Cluster_ClusterProtocolSelection) Descriptor() protoreflect.EnumDescriptor {
   287  	return file_envoy_config_cluster_v4alpha_cluster_proto_enumTypes[3].Descriptor()
   288  }
   289  
   290  func (Cluster_ClusterProtocolSelection) Type() protoreflect.EnumType {
   291  	return &file_envoy_config_cluster_v4alpha_cluster_proto_enumTypes[3]
   292  }
   293  
   294  func (x Cluster_ClusterProtocolSelection) Number() protoreflect.EnumNumber {
   295  	return protoreflect.EnumNumber(x)
   296  }
   297  
   298  // Deprecated: Use Cluster_ClusterProtocolSelection.Descriptor instead.
   299  func (Cluster_ClusterProtocolSelection) EnumDescriptor() ([]byte, []int) {
   300  	return file_envoy_config_cluster_v4alpha_cluster_proto_rawDescGZIP(), []int{1, 3}
   301  }
   302  
   303  // If NO_FALLBACK is selected, a result
   304  // equivalent to no healthy hosts is reported. If ANY_ENDPOINT is selected,
   305  // any cluster endpoint may be returned (subject to policy, health checks,
   306  // etc). If DEFAULT_SUBSET is selected, load balancing is performed over the
   307  // endpoints matching the values from the default_subset field.
   308  type Cluster_LbSubsetConfig_LbSubsetFallbackPolicy int32
   309  
   310  const (
   311  	Cluster_LbSubsetConfig_NO_FALLBACK    Cluster_LbSubsetConfig_LbSubsetFallbackPolicy = 0
   312  	Cluster_LbSubsetConfig_ANY_ENDPOINT   Cluster_LbSubsetConfig_LbSubsetFallbackPolicy = 1
   313  	Cluster_LbSubsetConfig_DEFAULT_SUBSET Cluster_LbSubsetConfig_LbSubsetFallbackPolicy = 2
   314  )
   315  
   316  // Enum value maps for Cluster_LbSubsetConfig_LbSubsetFallbackPolicy.
   317  var (
   318  	Cluster_LbSubsetConfig_LbSubsetFallbackPolicy_name = map[int32]string{
   319  		0: "NO_FALLBACK",
   320  		1: "ANY_ENDPOINT",
   321  		2: "DEFAULT_SUBSET",
   322  	}
   323  	Cluster_LbSubsetConfig_LbSubsetFallbackPolicy_value = map[string]int32{
   324  		"NO_FALLBACK":    0,
   325  		"ANY_ENDPOINT":   1,
   326  		"DEFAULT_SUBSET": 2,
   327  	}
   328  )
   329  
   330  func (x Cluster_LbSubsetConfig_LbSubsetFallbackPolicy) Enum() *Cluster_LbSubsetConfig_LbSubsetFallbackPolicy {
   331  	p := new(Cluster_LbSubsetConfig_LbSubsetFallbackPolicy)
   332  	*p = x
   333  	return p
   334  }
   335  
   336  func (x Cluster_LbSubsetConfig_LbSubsetFallbackPolicy) String() string {
   337  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   338  }
   339  
   340  func (Cluster_LbSubsetConfig_LbSubsetFallbackPolicy) Descriptor() protoreflect.EnumDescriptor {
   341  	return file_envoy_config_cluster_v4alpha_cluster_proto_enumTypes[4].Descriptor()
   342  }
   343  
   344  func (Cluster_LbSubsetConfig_LbSubsetFallbackPolicy) Type() protoreflect.EnumType {
   345  	return &file_envoy_config_cluster_v4alpha_cluster_proto_enumTypes[4]
   346  }
   347  
   348  func (x Cluster_LbSubsetConfig_LbSubsetFallbackPolicy) Number() protoreflect.EnumNumber {
   349  	return protoreflect.EnumNumber(x)
   350  }
   351  
   352  // Deprecated: Use Cluster_LbSubsetConfig_LbSubsetFallbackPolicy.Descriptor instead.
   353  func (Cluster_LbSubsetConfig_LbSubsetFallbackPolicy) EnumDescriptor() ([]byte, []int) {
   354  	return file_envoy_config_cluster_v4alpha_cluster_proto_rawDescGZIP(), []int{1, 3, 0}
   355  }
   356  
   357  // Allows to override top level fallback policy per selector.
   358  type Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy int32
   359  
   360  const (
   361  	// If NOT_DEFINED top level config fallback policy is used instead.
   362  	Cluster_LbSubsetConfig_LbSubsetSelector_NOT_DEFINED Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy = 0
   363  	// If NO_FALLBACK is selected, a result equivalent to no healthy hosts is reported.
   364  	Cluster_LbSubsetConfig_LbSubsetSelector_NO_FALLBACK Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy = 1
   365  	// If ANY_ENDPOINT is selected, any cluster endpoint may be returned
   366  	// (subject to policy, health checks, etc).
   367  	Cluster_LbSubsetConfig_LbSubsetSelector_ANY_ENDPOINT Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy = 2
   368  	// If DEFAULT_SUBSET is selected, load balancing is performed over the
   369  	// endpoints matching the values from the default_subset field.
   370  	Cluster_LbSubsetConfig_LbSubsetSelector_DEFAULT_SUBSET Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy = 3
   371  	// If KEYS_SUBSET is selected, subset selector matching is performed again with metadata
   372  	// keys reduced to
   373  	// :ref:`fallback_keys_subset<envoy_api_field_config.cluster.v4alpha.Cluster.LbSubsetConfig.LbSubsetSelector.fallback_keys_subset>`.
   374  	// It allows for a fallback to a different, less specific selector if some of the keys of
   375  	// the selector are considered optional.
   376  	Cluster_LbSubsetConfig_LbSubsetSelector_KEYS_SUBSET Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy = 4
   377  )
   378  
   379  // Enum value maps for Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy.
   380  var (
   381  	Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy_name = map[int32]string{
   382  		0: "NOT_DEFINED",
   383  		1: "NO_FALLBACK",
   384  		2: "ANY_ENDPOINT",
   385  		3: "DEFAULT_SUBSET",
   386  		4: "KEYS_SUBSET",
   387  	}
   388  	Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy_value = map[string]int32{
   389  		"NOT_DEFINED":    0,
   390  		"NO_FALLBACK":    1,
   391  		"ANY_ENDPOINT":   2,
   392  		"DEFAULT_SUBSET": 3,
   393  		"KEYS_SUBSET":    4,
   394  	}
   395  )
   396  
   397  func (x Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy) Enum() *Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy {
   398  	p := new(Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy)
   399  	*p = x
   400  	return p
   401  }
   402  
   403  func (x Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy) String() string {
   404  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   405  }
   406  
   407  func (Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy) Descriptor() protoreflect.EnumDescriptor {
   408  	return file_envoy_config_cluster_v4alpha_cluster_proto_enumTypes[5].Descriptor()
   409  }
   410  
   411  func (Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy) Type() protoreflect.EnumType {
   412  	return &file_envoy_config_cluster_v4alpha_cluster_proto_enumTypes[5]
   413  }
   414  
   415  func (x Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy) Number() protoreflect.EnumNumber {
   416  	return protoreflect.EnumNumber(x)
   417  }
   418  
   419  // Deprecated: Use Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy.Descriptor instead.
   420  func (Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy) EnumDescriptor() ([]byte, []int) {
   421  	return file_envoy_config_cluster_v4alpha_cluster_proto_rawDescGZIP(), []int{1, 3, 0, 0}
   422  }
   423  
   424  // The hash function used to hash hosts onto the ketama ring.
   425  type Cluster_RingHashLbConfig_HashFunction int32
   426  
   427  const (
   428  	// Use `xxHash <https://github.com/Cyan4973/xxHash>`_, this is the default hash function.
   429  	Cluster_RingHashLbConfig_XX_HASH Cluster_RingHashLbConfig_HashFunction = 0
   430  	// Use `MurmurHash2 <https://sites.google.com/site/murmurhash/>`_, this is compatible with
   431  	// std:hash<string> in GNU libstdc++ 3.4.20 or above. This is typically the case when compiled
   432  	// on Linux and not macOS.
   433  	Cluster_RingHashLbConfig_MURMUR_HASH_2 Cluster_RingHashLbConfig_HashFunction = 1
   434  )
   435  
   436  // Enum value maps for Cluster_RingHashLbConfig_HashFunction.
   437  var (
   438  	Cluster_RingHashLbConfig_HashFunction_name = map[int32]string{
   439  		0: "XX_HASH",
   440  		1: "MURMUR_HASH_2",
   441  	}
   442  	Cluster_RingHashLbConfig_HashFunction_value = map[string]int32{
   443  		"XX_HASH":       0,
   444  		"MURMUR_HASH_2": 1,
   445  	}
   446  )
   447  
   448  func (x Cluster_RingHashLbConfig_HashFunction) Enum() *Cluster_RingHashLbConfig_HashFunction {
   449  	p := new(Cluster_RingHashLbConfig_HashFunction)
   450  	*p = x
   451  	return p
   452  }
   453  
   454  func (x Cluster_RingHashLbConfig_HashFunction) String() string {
   455  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   456  }
   457  
   458  func (Cluster_RingHashLbConfig_HashFunction) Descriptor() protoreflect.EnumDescriptor {
   459  	return file_envoy_config_cluster_v4alpha_cluster_proto_enumTypes[6].Descriptor()
   460  }
   461  
   462  func (Cluster_RingHashLbConfig_HashFunction) Type() protoreflect.EnumType {
   463  	return &file_envoy_config_cluster_v4alpha_cluster_proto_enumTypes[6]
   464  }
   465  
   466  func (x Cluster_RingHashLbConfig_HashFunction) Number() protoreflect.EnumNumber {
   467  	return protoreflect.EnumNumber(x)
   468  }
   469  
   470  // Deprecated: Use Cluster_RingHashLbConfig_HashFunction.Descriptor instead.
   471  func (Cluster_RingHashLbConfig_HashFunction) EnumDescriptor() ([]byte, []int) {
   472  	return file_envoy_config_cluster_v4alpha_cluster_proto_rawDescGZIP(), []int{1, 5, 0}
   473  }
   474  
   475  // Cluster list collections. Entries are *Cluster* resources or references.
   476  // [#not-implemented-hide:]
   477  type ClusterCollection struct {
   478  	state         protoimpl.MessageState
   479  	sizeCache     protoimpl.SizeCache
   480  	unknownFields protoimpl.UnknownFields
   481  
   482  	Entries *v3.CollectionEntry `protobuf:"bytes,1,opt,name=entries,proto3" json:"entries,omitempty"`
   483  }
   484  
   485  func (x *ClusterCollection) Reset() {
   486  	*x = ClusterCollection{}
   487  	if protoimpl.UnsafeEnabled {
   488  		mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[0]
   489  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   490  		ms.StoreMessageInfo(mi)
   491  	}
   492  }
   493  
   494  func (x *ClusterCollection) String() string {
   495  	return protoimpl.X.MessageStringOf(x)
   496  }
   497  
   498  func (*ClusterCollection) ProtoMessage() {}
   499  
   500  func (x *ClusterCollection) ProtoReflect() protoreflect.Message {
   501  	mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[0]
   502  	if protoimpl.UnsafeEnabled && x != nil {
   503  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   504  		if ms.LoadMessageInfo() == nil {
   505  			ms.StoreMessageInfo(mi)
   506  		}
   507  		return ms
   508  	}
   509  	return mi.MessageOf(x)
   510  }
   511  
   512  // Deprecated: Use ClusterCollection.ProtoReflect.Descriptor instead.
   513  func (*ClusterCollection) Descriptor() ([]byte, []int) {
   514  	return file_envoy_config_cluster_v4alpha_cluster_proto_rawDescGZIP(), []int{0}
   515  }
   516  
   517  func (x *ClusterCollection) GetEntries() *v3.CollectionEntry {
   518  	if x != nil {
   519  		return x.Entries
   520  	}
   521  	return nil
   522  }
   523  
   524  // Configuration for a single upstream cluster.
   525  // [#next-free-field: 53]
   526  type Cluster struct {
   527  	state         protoimpl.MessageState
   528  	sizeCache     protoimpl.SizeCache
   529  	unknownFields protoimpl.UnknownFields
   530  
   531  	// Configuration to use different transport sockets for different endpoints.
   532  	// The entry of *envoy.transport_socket_match* in the
   533  	// :ref:`LbEndpoint.Metadata <envoy_api_field_config.endpoint.v3.LbEndpoint.metadata>`
   534  	// is used to match against the transport sockets as they appear in the list. The first
   535  	// :ref:`match <envoy_api_msg_config.cluster.v4alpha.Cluster.TransportSocketMatch>` is used.
   536  	// For example, with the following match
   537  	//
   538  	// .. code-block:: yaml
   539  	//
   540  	//  transport_socket_matches:
   541  	//  - name: "enableMTLS"
   542  	//    match:
   543  	//      acceptMTLS: true
   544  	//    transport_socket:
   545  	//      name: envoy.transport_sockets.tls
   546  	//      config: { ... } # tls socket configuration
   547  	//  - name: "defaultToPlaintext"
   548  	//    match: {}
   549  	//    transport_socket:
   550  	//      name: envoy.transport_sockets.raw_buffer
   551  	//
   552  	// Connections to the endpoints whose metadata value under *envoy.transport_socket_match*
   553  	// having "acceptMTLS"/"true" key/value pair use the "enableMTLS" socket configuration.
   554  	//
   555  	// If a :ref:`socket match <envoy_api_msg_config.cluster.v4alpha.Cluster.TransportSocketMatch>` with empty match
   556  	// criteria is provided, that always match any endpoint. For example, the "defaultToPlaintext"
   557  	// socket match in case above.
   558  	//
   559  	// If an endpoint metadata's value under *envoy.transport_socket_match* does not match any
   560  	// *TransportSocketMatch*, socket configuration fallbacks to use the *tls_context* or
   561  	// *transport_socket* specified in this cluster.
   562  	//
   563  	// This field allows gradual and flexible transport socket configuration changes.
   564  	//
   565  	// The metadata of endpoints in EDS can indicate transport socket capabilities. For example,
   566  	// an endpoint's metadata can have two key value pairs as "acceptMTLS": "true",
   567  	// "acceptPlaintext": "true". While some other endpoints, only accepting plaintext traffic
   568  	// has "acceptPlaintext": "true" metadata information.
   569  	//
   570  	// Then the xDS server can configure the CDS to a client, Envoy A, to send mutual TLS
   571  	// traffic for endpoints with "acceptMTLS": "true", by adding a corresponding
   572  	// *TransportSocketMatch* in this field. Other client Envoys receive CDS without
   573  	// *transport_socket_match* set, and still send plain text traffic to the same cluster.
   574  	//
   575  	// This field can be used to specify custom transport socket configurations for health
   576  	// checks by adding matching key/value pairs in a health check's
   577  	// :ref:`transport socket match criteria <envoy_api_field_config.core.v4alpha.HealthCheck.transport_socket_match_criteria>` field.
   578  	//
   579  	// [#comment:TODO(incfly): add a detailed architecture doc on intended usage.]
   580  	TransportSocketMatches []*Cluster_TransportSocketMatch `protobuf:"bytes,43,rep,name=transport_socket_matches,json=transportSocketMatches,proto3" json:"transport_socket_matches,omitempty"`
   581  	// Supplies the name of the cluster which must be unique across all clusters.
   582  	// The cluster name is used when emitting
   583  	// :ref:`statistics <config_cluster_manager_cluster_stats>` if :ref:`alt_stat_name
   584  	// <envoy_api_field_config.cluster.v4alpha.Cluster.alt_stat_name>` is not provided.
   585  	// Any ``:`` in the cluster name will be converted to ``_`` when emitting statistics.
   586  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
   587  	// An optional alternative to the cluster name to be used while emitting stats.
   588  	// Any ``:`` in the name will be converted to ``_`` when emitting statistics. This should not be
   589  	// confused with :ref:`Router Filter Header
   590  	// <config_http_filters_router_x-envoy-upstream-alt-stat-name>`.
   591  	AltStatName string `protobuf:"bytes,28,opt,name=alt_stat_name,json=altStatName,proto3" json:"alt_stat_name,omitempty"`
   592  	// Types that are assignable to ClusterDiscoveryType:
   593  	//	*Cluster_Type
   594  	//	*Cluster_ClusterType
   595  	ClusterDiscoveryType isCluster_ClusterDiscoveryType `protobuf_oneof:"cluster_discovery_type"`
   596  	// Configuration to use for EDS updates for the Cluster.
   597  	EdsClusterConfig *Cluster_EdsClusterConfig `protobuf:"bytes,3,opt,name=eds_cluster_config,json=edsClusterConfig,proto3" json:"eds_cluster_config,omitempty"`
   598  	// The timeout for new network connections to hosts in the cluster.
   599  	ConnectTimeout *duration.Duration `protobuf:"bytes,4,opt,name=connect_timeout,json=connectTimeout,proto3" json:"connect_timeout,omitempty"`
   600  	// Soft limit on size of the cluster’s connections read and write buffers. If
   601  	// unspecified, an implementation defined default is applied (1MiB).
   602  	PerConnectionBufferLimitBytes *wrappers.UInt32Value `protobuf:"bytes,5,opt,name=per_connection_buffer_limit_bytes,json=perConnectionBufferLimitBytes,proto3" json:"per_connection_buffer_limit_bytes,omitempty"`
   603  	// The :ref:`load balancer type <arch_overview_load_balancing_types>` to use
   604  	// when picking a host in the cluster.
   605  	// [#comment:TODO: Remove enum constraint :ref:`LOAD_BALANCING_POLICY_CONFIG<envoy_api_enum_value_config.cluster.v4alpha.Cluster.LbPolicy.LOAD_BALANCING_POLICY_CONFIG>` when implemented.]
   606  	LbPolicy Cluster_LbPolicy `protobuf:"varint,6,opt,name=lb_policy,json=lbPolicy,proto3,enum=envoy.config.cluster.v4alpha.Cluster_LbPolicy" json:"lb_policy,omitempty"`
   607  	// Setting this is required for specifying members of
   608  	// :ref:`STATIC<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.STATIC>`,
   609  	// :ref:`STRICT_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.STRICT_DNS>`
   610  	// or :ref:`LOGICAL_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.LOGICAL_DNS>` clusters.
   611  	// This field supersedes the *hosts* field in the v2 API.
   612  	//
   613  	// .. attention::
   614  	//
   615  	//   Setting this allows non-EDS cluster types to contain embedded EDS equivalent
   616  	//   :ref:`endpoint assignments<envoy_api_msg_config.endpoint.v3.ClusterLoadAssignment>`.
   617  	//
   618  	LoadAssignment *v31.ClusterLoadAssignment `protobuf:"bytes,33,opt,name=load_assignment,json=loadAssignment,proto3" json:"load_assignment,omitempty"`
   619  	// Optional :ref:`active health checking <arch_overview_health_checking>`
   620  	// configuration for the cluster. If no
   621  	// configuration is specified no health checking will be done and all cluster
   622  	// members will be considered healthy at all times.
   623  	HealthChecks []*v4alpha.HealthCheck `protobuf:"bytes,8,rep,name=health_checks,json=healthChecks,proto3" json:"health_checks,omitempty"`
   624  	// Optional maximum requests for a single upstream connection. This parameter
   625  	// is respected by both the HTTP/1.1 and HTTP/2 connection pool
   626  	// implementations. If not specified, there is no limit. Setting this
   627  	// parameter to 1 will effectively disable keep alive.
   628  	MaxRequestsPerConnection *wrappers.UInt32Value `protobuf:"bytes,9,opt,name=max_requests_per_connection,json=maxRequestsPerConnection,proto3" json:"max_requests_per_connection,omitempty"`
   629  	// Optional :ref:`circuit breaking <arch_overview_circuit_break>` for the cluster.
   630  	CircuitBreakers *CircuitBreakers `protobuf:"bytes,10,opt,name=circuit_breakers,json=circuitBreakers,proto3" json:"circuit_breakers,omitempty"`
   631  	// HTTP protocol options that are applied only to upstream HTTP connections.
   632  	// These options apply to all HTTP versions.
   633  	// This has been deprecated in favor of
   634  	// :ref:`upstream_http_protocol_options <envoy_api_field_extensions.upstreams.http.v4alpha.HttpProtocolOptions.upstream_http_protocol_options>`
   635  	// in the :ref:`http_protocol_options <envoy_api_msg_extensions.upstreams.http.v4alpha.HttpProtocolOptions>` message.
   636  	// upstream_http_protocol_options can be set via the cluster's
   637  	// :ref:`extension_protocol_options<envoy_api_field_config.cluster.v4alpha.Cluster.typed_extension_protocol_options>`.
   638  	// See ref:`upstream_http_protocol_options
   639  	// <envoy_api_field_extensions.upstreams.http.v4alpha.HttpProtocolOptions.upstream_http_protocol_options>`
   640  	// for example usage.
   641  	//
   642  	// Deprecated: Do not use.
   643  	HiddenEnvoyDeprecatedUpstreamHttpProtocolOptions *v4alpha.UpstreamHttpProtocolOptions `protobuf:"bytes,46,opt,name=hidden_envoy_deprecated_upstream_http_protocol_options,json=hiddenEnvoyDeprecatedUpstreamHttpProtocolOptions,proto3" json:"hidden_envoy_deprecated_upstream_http_protocol_options,omitempty"`
   644  	// Additional options when handling HTTP requests upstream. These options will be applicable to
   645  	// both HTTP1 and HTTP2 requests.
   646  	// This has been deprecated in favor of
   647  	// :ref:`common_http_protocol_options <envoy_api_field_extensions.upstreams.http.v4alpha.HttpProtocolOptions.common_http_protocol_options>`
   648  	// in the :ref:`http_protocol_options <envoy_api_msg_extensions.upstreams.http.v4alpha.HttpProtocolOptions>` message.
   649  	// common_http_protocol_options can be set via the cluster's
   650  	// :ref:`extension_protocol_options<envoy_api_field_config.cluster.v4alpha.Cluster.typed_extension_protocol_options>`.
   651  	// See ref:`upstream_http_protocol_options
   652  	// <envoy_api_field_extensions.upstreams.http.v4alpha.HttpProtocolOptions.upstream_http_protocol_options>`
   653  	// for example usage.
   654  	//
   655  	// Deprecated: Do not use.
   656  	HiddenEnvoyDeprecatedCommonHttpProtocolOptions *v4alpha.HttpProtocolOptions `protobuf:"bytes,29,opt,name=hidden_envoy_deprecated_common_http_protocol_options,json=hiddenEnvoyDeprecatedCommonHttpProtocolOptions,proto3" json:"hidden_envoy_deprecated_common_http_protocol_options,omitempty"`
   657  	// Additional options when handling HTTP1 requests.
   658  	// This has been deprecated in favor of http_protocol_options fields in the in the
   659  	// :ref:`http_protocol_options <envoy_api_msg_extensions.upstreams.http.v4alpha.HttpProtocolOptions>` message.
   660  	// http_protocol_options can be set via the cluster's
   661  	// :ref:`extension_protocol_options<envoy_api_field_config.cluster.v4alpha.Cluster.typed_extension_protocol_options>`.
   662  	// See ref:`upstream_http_protocol_options
   663  	// <envoy_api_field_extensions.upstreams.http.v4alpha.HttpProtocolOptions.upstream_http_protocol_options>`
   664  	// for example usage.
   665  	//
   666  	// Deprecated: Do not use.
   667  	HiddenEnvoyDeprecatedHttpProtocolOptions *v4alpha.Http1ProtocolOptions `protobuf:"bytes,13,opt,name=hidden_envoy_deprecated_http_protocol_options,json=hiddenEnvoyDeprecatedHttpProtocolOptions,proto3" json:"hidden_envoy_deprecated_http_protocol_options,omitempty"`
   668  	// Even if default HTTP2 protocol options are desired, this field must be
   669  	// set so that Envoy will assume that the upstream supports HTTP/2 when
   670  	// making new HTTP connection pool connections. Currently, Envoy only
   671  	// supports prior knowledge for upstream connections. Even if TLS is used
   672  	// with ALPN, `http2_protocol_options` must be specified. As an aside this allows HTTP/2
   673  	// connections to happen over plain text.
   674  	// This has been deprecated in favor of http2_protocol_options fields in the in the
   675  	// :ref:`http_protocol_options <envoy_api_msg_extensions.upstreams.http.v4alpha.HttpProtocolOptions>`
   676  	// message. http2_protocol_options can be set via the cluster's
   677  	// :ref:`extension_protocol_options<envoy_api_field_config.cluster.v4alpha.Cluster.typed_extension_protocol_options>`.
   678  	// See ref:`upstream_http_protocol_options
   679  	// <envoy_api_field_extensions.upstreams.http.v4alpha.HttpProtocolOptions.upstream_http_protocol_options>`
   680  	// for example usage.
   681  	//
   682  	// Deprecated: Do not use.
   683  	HiddenEnvoyDeprecatedHttp2ProtocolOptions *v4alpha.Http2ProtocolOptions `protobuf:"bytes,14,opt,name=hidden_envoy_deprecated_http2_protocol_options,json=hiddenEnvoyDeprecatedHttp2ProtocolOptions,proto3" json:"hidden_envoy_deprecated_http2_protocol_options,omitempty"`
   684  	// The extension_protocol_options field is used to provide extension-specific protocol options
   685  	// for upstream connections. The key should match the extension filter name, such as
   686  	// "envoy.filters.network.thrift_proxy". See the extension's documentation for details on
   687  	// specific options.
   688  	// [#next-major-version: make this a list of typed extensions.]
   689  	TypedExtensionProtocolOptions map[string]*any.Any `protobuf:"bytes,36,rep,name=typed_extension_protocol_options,json=typedExtensionProtocolOptions,proto3" json:"typed_extension_protocol_options,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
   690  	// If the DNS refresh rate is specified and the cluster type is either
   691  	// :ref:`STRICT_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.STRICT_DNS>`,
   692  	// or :ref:`LOGICAL_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.LOGICAL_DNS>`,
   693  	// this value is used as the cluster’s DNS refresh
   694  	// rate. The value configured must be at least 1ms. If this setting is not specified, the
   695  	// value defaults to 5000ms. For cluster types other than
   696  	// :ref:`STRICT_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.STRICT_DNS>`
   697  	// and :ref:`LOGICAL_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.LOGICAL_DNS>`
   698  	// this setting is ignored.
   699  	DnsRefreshRate *duration.Duration `protobuf:"bytes,16,opt,name=dns_refresh_rate,json=dnsRefreshRate,proto3" json:"dns_refresh_rate,omitempty"`
   700  	// If the DNS failure refresh rate is specified and the cluster type is either
   701  	// :ref:`STRICT_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.STRICT_DNS>`,
   702  	// or :ref:`LOGICAL_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.LOGICAL_DNS>`,
   703  	// this is used as the cluster’s DNS refresh rate when requests are failing. If this setting is
   704  	// not specified, the failure refresh rate defaults to the DNS refresh rate. For cluster types
   705  	// other than :ref:`STRICT_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.STRICT_DNS>` and
   706  	// :ref:`LOGICAL_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.LOGICAL_DNS>` this setting is
   707  	// ignored.
   708  	DnsFailureRefreshRate *Cluster_RefreshRate `protobuf:"bytes,44,opt,name=dns_failure_refresh_rate,json=dnsFailureRefreshRate,proto3" json:"dns_failure_refresh_rate,omitempty"`
   709  	// Optional configuration for setting cluster's DNS refresh rate. If the value is set to true,
   710  	// cluster's DNS refresh rate will be set to resource record's TTL which comes from DNS
   711  	// resolution.
   712  	RespectDnsTtl bool `protobuf:"varint,39,opt,name=respect_dns_ttl,json=respectDnsTtl,proto3" json:"respect_dns_ttl,omitempty"`
   713  	// The DNS IP address resolution policy. If this setting is not specified, the
   714  	// value defaults to
   715  	// :ref:`AUTO<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DnsLookupFamily.AUTO>`.
   716  	DnsLookupFamily Cluster_DnsLookupFamily `protobuf:"varint,17,opt,name=dns_lookup_family,json=dnsLookupFamily,proto3,enum=envoy.config.cluster.v4alpha.Cluster_DnsLookupFamily" json:"dns_lookup_family,omitempty"`
   717  	// If DNS resolvers are specified and the cluster type is either
   718  	// :ref:`STRICT_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.STRICT_DNS>`,
   719  	// or :ref:`LOGICAL_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.LOGICAL_DNS>`,
   720  	// this value is used to specify the cluster’s dns resolvers.
   721  	// If this setting is not specified, the value defaults to the default
   722  	// resolver, which uses /etc/resolv.conf for configuration. For cluster types
   723  	// other than
   724  	// :ref:`STRICT_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.STRICT_DNS>`
   725  	// and :ref:`LOGICAL_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.LOGICAL_DNS>`
   726  	// this setting is ignored.
   727  	// Setting this value causes failure if the
   728  	// ``envoy.restart_features.use_apple_api_for_dns_lookups`` runtime value is true during
   729  	// server startup. Apple's API only allows overriding DNS resolvers via system settings.
   730  	DnsResolvers []*v4alpha.Address `protobuf:"bytes,18,rep,name=dns_resolvers,json=dnsResolvers,proto3" json:"dns_resolvers,omitempty"`
   731  	// [#next-major-version: Reconcile DNS options in a single message.]
   732  	// Always use TCP queries instead of UDP queries for DNS lookups.
   733  	// Setting this value causes failure if the
   734  	// ``envoy.restart_features.use_apple_api_for_dns_lookups`` runtime value is true during
   735  	// server startup. Apple' API only uses UDP for DNS resolution.
   736  	UseTcpForDnsLookups bool `protobuf:"varint,45,opt,name=use_tcp_for_dns_lookups,json=useTcpForDnsLookups,proto3" json:"use_tcp_for_dns_lookups,omitempty"`
   737  	// If specified, outlier detection will be enabled for this upstream cluster.
   738  	// Each of the configuration values can be overridden via
   739  	// :ref:`runtime values <config_cluster_manager_cluster_runtime_outlier_detection>`.
   740  	OutlierDetection *OutlierDetection `protobuf:"bytes,19,opt,name=outlier_detection,json=outlierDetection,proto3" json:"outlier_detection,omitempty"`
   741  	// The interval for removing stale hosts from a cluster type
   742  	// :ref:`ORIGINAL_DST<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.ORIGINAL_DST>`.
   743  	// Hosts are considered stale if they have not been used
   744  	// as upstream destinations during this interval. New hosts are added
   745  	// to original destination clusters on demand as new connections are
   746  	// redirected to Envoy, causing the number of hosts in the cluster to
   747  	// grow over time. Hosts that are not stale (they are actively used as
   748  	// destinations) are kept in the cluster, which allows connections to
   749  	// them remain open, saving the latency that would otherwise be spent
   750  	// on opening new connections. If this setting is not specified, the
   751  	// value defaults to 5000ms. For cluster types other than
   752  	// :ref:`ORIGINAL_DST<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.ORIGINAL_DST>`
   753  	// this setting is ignored.
   754  	CleanupInterval *duration.Duration `protobuf:"bytes,20,opt,name=cleanup_interval,json=cleanupInterval,proto3" json:"cleanup_interval,omitempty"`
   755  	// Optional configuration used to bind newly established upstream connections.
   756  	// This overrides any bind_config specified in the bootstrap proto.
   757  	// If the address and port are empty, no bind will be performed.
   758  	UpstreamBindConfig *v4alpha.BindConfig `protobuf:"bytes,21,opt,name=upstream_bind_config,json=upstreamBindConfig,proto3" json:"upstream_bind_config,omitempty"`
   759  	// Configuration for load balancing subsetting.
   760  	LbSubsetConfig *Cluster_LbSubsetConfig `protobuf:"bytes,22,opt,name=lb_subset_config,json=lbSubsetConfig,proto3" json:"lb_subset_config,omitempty"`
   761  	// Optional configuration for the load balancing algorithm selected by
   762  	// LbPolicy. Currently only
   763  	// :ref:`RING_HASH<envoy_api_enum_value_config.cluster.v4alpha.Cluster.LbPolicy.RING_HASH>`,
   764  	// :ref:`MAGLEV<envoy_api_enum_value_config.cluster.v4alpha.Cluster.LbPolicy.MAGLEV>` and
   765  	// :ref:`LEAST_REQUEST<envoy_api_enum_value_config.cluster.v4alpha.Cluster.LbPolicy.LEAST_REQUEST>`
   766  	// has additional configuration options.
   767  	// Specifying ring_hash_lb_config or maglev_lb_config or least_request_lb_config without setting the corresponding
   768  	// LbPolicy will generate an error at runtime.
   769  	//
   770  	// Types that are assignable to LbConfig:
   771  	//	*Cluster_RingHashLbConfig_
   772  	//	*Cluster_MaglevLbConfig_
   773  	//	*Cluster_OriginalDstLbConfig_
   774  	//	*Cluster_LeastRequestLbConfig_
   775  	LbConfig isCluster_LbConfig `protobuf_oneof:"lb_config"`
   776  	// Common configuration for all load balancer implementations.
   777  	CommonLbConfig *Cluster_CommonLbConfig `protobuf:"bytes,27,opt,name=common_lb_config,json=commonLbConfig,proto3" json:"common_lb_config,omitempty"`
   778  	// Optional custom transport socket implementation to use for upstream connections.
   779  	// To setup TLS, set a transport socket with name `tls` and
   780  	// :ref:`UpstreamTlsContexts <envoy_api_msg_extensions.transport_sockets.tls.v4alpha.UpstreamTlsContext>` in the `typed_config`.
   781  	// If no transport socket configuration is specified, new connections
   782  	// will be set up with plaintext.
   783  	TransportSocket *v4alpha.TransportSocket `protobuf:"bytes,24,opt,name=transport_socket,json=transportSocket,proto3" json:"transport_socket,omitempty"`
   784  	// The Metadata field can be used to provide additional information about the
   785  	// cluster. It can be used for stats, logging, and varying filter behavior.
   786  	// Fields should use reverse DNS notation to denote which entity within Envoy
   787  	// will need the information. For instance, if the metadata is intended for
   788  	// the Router filter, the filter name should be specified as *envoy.filters.http.router*.
   789  	Metadata *v4alpha.Metadata `protobuf:"bytes,25,opt,name=metadata,proto3" json:"metadata,omitempty"`
   790  	// Determines how Envoy selects the protocol used to speak to upstream hosts.
   791  	// This has been deprecated in favor of setting explicit protocol selection
   792  	// in the :ref:`http_protocol_options
   793  	// <envoy_api_msg_extensions.upstreams.http.v4alpha.HttpProtocolOptions>` message.
   794  	// http_protocol_options can be set via the cluster's
   795  	// :ref:`extension_protocol_options<envoy_api_field_config.cluster.v4alpha.Cluster.typed_extension_protocol_options>`.
   796  	//
   797  	// Deprecated: Do not use.
   798  	HiddenEnvoyDeprecatedProtocolSelection Cluster_ClusterProtocolSelection `protobuf:"varint,26,opt,name=hidden_envoy_deprecated_protocol_selection,json=hiddenEnvoyDeprecatedProtocolSelection,proto3,enum=envoy.config.cluster.v4alpha.Cluster_ClusterProtocolSelection" json:"hidden_envoy_deprecated_protocol_selection,omitempty"`
   799  	// Optional options for upstream connections.
   800  	UpstreamConnectionOptions *UpstreamConnectionOptions `protobuf:"bytes,30,opt,name=upstream_connection_options,json=upstreamConnectionOptions,proto3" json:"upstream_connection_options,omitempty"`
   801  	// If an upstream host becomes unhealthy (as determined by the configured health checks
   802  	// or outlier detection), immediately close all connections to the failed host.
   803  	//
   804  	// .. note::
   805  	//
   806  	//   This is currently only supported for connections created by tcp_proxy.
   807  	//
   808  	// .. note::
   809  	//
   810  	//   The current implementation of this feature closes all connections immediately when
   811  	//   the unhealthy status is detected. If there are a large number of connections open
   812  	//   to an upstream host that becomes unhealthy, Envoy may spend a substantial amount of
   813  	//   time exclusively closing these connections, and not processing any other traffic.
   814  	CloseConnectionsOnHostHealthFailure bool `protobuf:"varint,31,opt,name=close_connections_on_host_health_failure,json=closeConnectionsOnHostHealthFailure,proto3" json:"close_connections_on_host_health_failure,omitempty"`
   815  	// If set to true, Envoy will ignore the health value of a host when processing its removal
   816  	// from service discovery. This means that if active health checking is used, Envoy will *not*
   817  	// wait for the endpoint to go unhealthy before removing it.
   818  	IgnoreHealthOnHostRemoval bool `protobuf:"varint,32,opt,name=ignore_health_on_host_removal,json=ignoreHealthOnHostRemoval,proto3" json:"ignore_health_on_host_removal,omitempty"`
   819  	// An (optional) network filter chain, listed in the order the filters should be applied.
   820  	// The chain will be applied to all outgoing connections that Envoy makes to the upstream
   821  	// servers of this cluster.
   822  	Filters []*Filter `protobuf:"bytes,40,rep,name=filters,proto3" json:"filters,omitempty"`
   823  	// [#not-implemented-hide:] New mechanism for LB policy configuration. Used only if the
   824  	// :ref:`lb_policy<envoy_api_field_config.cluster.v4alpha.Cluster.lb_policy>` field has the value
   825  	// :ref:`LOAD_BALANCING_POLICY_CONFIG<envoy_api_enum_value_config.cluster.v4alpha.Cluster.LbPolicy.LOAD_BALANCING_POLICY_CONFIG>`.
   826  	LoadBalancingPolicy *LoadBalancingPolicy `protobuf:"bytes,41,opt,name=load_balancing_policy,json=loadBalancingPolicy,proto3" json:"load_balancing_policy,omitempty"`
   827  	// [#not-implemented-hide:]
   828  	// If present, tells the client where to send load reports via LRS. If not present, the
   829  	// client will fall back to a client-side default, which may be either (a) don't send any
   830  	// load reports or (b) send load reports for all clusters to a single default server
   831  	// (which may be configured in the bootstrap file).
   832  	//
   833  	// Note that if multiple clusters point to the same LRS server, the client may choose to
   834  	// create a separate stream for each cluster or it may choose to coalesce the data for
   835  	// multiple clusters onto a single stream. Either way, the client must make sure to send
   836  	// the data for any given cluster on no more than one stream.
   837  	//
   838  	// [#next-major-version: In the v3 API, we should consider restructuring this somehow,
   839  	// maybe by allowing LRS to go on the ADS stream, or maybe by moving some of the negotiation
   840  	// from the LRS stream here.]
   841  	LrsServer *v4alpha.ConfigSource `protobuf:"bytes,42,opt,name=lrs_server,json=lrsServer,proto3" json:"lrs_server,omitempty"`
   842  	// If track_timeout_budgets is true, the :ref:`timeout budget histograms
   843  	// <config_cluster_manager_cluster_stats_timeout_budgets>` will be published for each
   844  	// request. These show what percentage of a request's per try and global timeout was used. A value
   845  	// of 0 would indicate that none of the timeout was used or that the timeout was infinite. A value
   846  	// of 100 would indicate that the request took the entirety of the timeout given to it.
   847  	//
   848  	// .. attention::
   849  	//
   850  	//   This field has been deprecated in favor of `timeout_budgets`, part of
   851  	//   :ref:`track_cluster_stats <envoy_api_field_config.cluster.v4alpha.Cluster.track_cluster_stats>`.
   852  	//
   853  	// Deprecated: Do not use.
   854  	HiddenEnvoyDeprecatedTrackTimeoutBudgets bool `protobuf:"varint,47,opt,name=hidden_envoy_deprecated_track_timeout_budgets,json=hiddenEnvoyDeprecatedTrackTimeoutBudgets,proto3" json:"hidden_envoy_deprecated_track_timeout_budgets,omitempty"`
   855  	// Optional customization and configuration of upstream connection pool, and upstream type.
   856  	//
   857  	// Currently this field only applies for HTTP traffic but is designed for eventual use for custom
   858  	// TCP upstreams.
   859  	//
   860  	// For HTTP traffic, Envoy will generally take downstream HTTP and send it upstream as upstream
   861  	// HTTP, using the http connection pool and the codec from `http2_protocol_options`
   862  	//
   863  	// For routes where CONNECT termination is configured, Envoy will take downstream CONNECT
   864  	// requests and forward the CONNECT payload upstream over raw TCP using the tcp connection pool.
   865  	//
   866  	// The default pool used is the generic connection pool which creates the HTTP upstream for most
   867  	// HTTP requests, and the TCP upstream if CONNECT termination is configured.
   868  	//
   869  	// If users desire custom connection pool or upstream behavior, for example terminating
   870  	// CONNECT only if a custom filter indicates it is appropriate, the custom factories
   871  	// can be registered and configured here.
   872  	UpstreamConfig *v4alpha.TypedExtensionConfig `protobuf:"bytes,48,opt,name=upstream_config,json=upstreamConfig,proto3" json:"upstream_config,omitempty"`
   873  	// Configuration to track optional cluster stats.
   874  	TrackClusterStats *TrackClusterStats `protobuf:"bytes,49,opt,name=track_cluster_stats,json=trackClusterStats,proto3" json:"track_cluster_stats,omitempty"`
   875  	// [#not-implemented-hide:]
   876  	// Preconnect configuration for this cluster.
   877  	PreconnectPolicy *Cluster_PreconnectPolicy `protobuf:"bytes,50,opt,name=preconnect_policy,json=preconnectPolicy,proto3" json:"preconnect_policy,omitempty"`
   878  	// If `connection_pool_per_downstream_connection` is true, the cluster will use a separate
   879  	// connection pool for every downstream connection
   880  	ConnectionPoolPerDownstreamConnection bool `protobuf:"varint,51,opt,name=connection_pool_per_downstream_connection,json=connectionPoolPerDownstreamConnection,proto3" json:"connection_pool_per_downstream_connection,omitempty"`
   881  }
   882  
   883  func (x *Cluster) Reset() {
   884  	*x = Cluster{}
   885  	if protoimpl.UnsafeEnabled {
   886  		mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[1]
   887  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   888  		ms.StoreMessageInfo(mi)
   889  	}
   890  }
   891  
   892  func (x *Cluster) String() string {
   893  	return protoimpl.X.MessageStringOf(x)
   894  }
   895  
   896  func (*Cluster) ProtoMessage() {}
   897  
   898  func (x *Cluster) ProtoReflect() protoreflect.Message {
   899  	mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[1]
   900  	if protoimpl.UnsafeEnabled && x != nil {
   901  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   902  		if ms.LoadMessageInfo() == nil {
   903  			ms.StoreMessageInfo(mi)
   904  		}
   905  		return ms
   906  	}
   907  	return mi.MessageOf(x)
   908  }
   909  
   910  // Deprecated: Use Cluster.ProtoReflect.Descriptor instead.
   911  func (*Cluster) Descriptor() ([]byte, []int) {
   912  	return file_envoy_config_cluster_v4alpha_cluster_proto_rawDescGZIP(), []int{1}
   913  }
   914  
   915  func (x *Cluster) GetTransportSocketMatches() []*Cluster_TransportSocketMatch {
   916  	if x != nil {
   917  		return x.TransportSocketMatches
   918  	}
   919  	return nil
   920  }
   921  
   922  func (x *Cluster) GetName() string {
   923  	if x != nil {
   924  		return x.Name
   925  	}
   926  	return ""
   927  }
   928  
   929  func (x *Cluster) GetAltStatName() string {
   930  	if x != nil {
   931  		return x.AltStatName
   932  	}
   933  	return ""
   934  }
   935  
   936  func (m *Cluster) GetClusterDiscoveryType() isCluster_ClusterDiscoveryType {
   937  	if m != nil {
   938  		return m.ClusterDiscoveryType
   939  	}
   940  	return nil
   941  }
   942  
   943  func (x *Cluster) GetType() Cluster_DiscoveryType {
   944  	if x, ok := x.GetClusterDiscoveryType().(*Cluster_Type); ok {
   945  		return x.Type
   946  	}
   947  	return Cluster_STATIC
   948  }
   949  
   950  func (x *Cluster) GetClusterType() *Cluster_CustomClusterType {
   951  	if x, ok := x.GetClusterDiscoveryType().(*Cluster_ClusterType); ok {
   952  		return x.ClusterType
   953  	}
   954  	return nil
   955  }
   956  
   957  func (x *Cluster) GetEdsClusterConfig() *Cluster_EdsClusterConfig {
   958  	if x != nil {
   959  		return x.EdsClusterConfig
   960  	}
   961  	return nil
   962  }
   963  
   964  func (x *Cluster) GetConnectTimeout() *duration.Duration {
   965  	if x != nil {
   966  		return x.ConnectTimeout
   967  	}
   968  	return nil
   969  }
   970  
   971  func (x *Cluster) GetPerConnectionBufferLimitBytes() *wrappers.UInt32Value {
   972  	if x != nil {
   973  		return x.PerConnectionBufferLimitBytes
   974  	}
   975  	return nil
   976  }
   977  
   978  func (x *Cluster) GetLbPolicy() Cluster_LbPolicy {
   979  	if x != nil {
   980  		return x.LbPolicy
   981  	}
   982  	return Cluster_ROUND_ROBIN
   983  }
   984  
   985  func (x *Cluster) GetLoadAssignment() *v31.ClusterLoadAssignment {
   986  	if x != nil {
   987  		return x.LoadAssignment
   988  	}
   989  	return nil
   990  }
   991  
   992  func (x *Cluster) GetHealthChecks() []*v4alpha.HealthCheck {
   993  	if x != nil {
   994  		return x.HealthChecks
   995  	}
   996  	return nil
   997  }
   998  
   999  func (x *Cluster) GetMaxRequestsPerConnection() *wrappers.UInt32Value {
  1000  	if x != nil {
  1001  		return x.MaxRequestsPerConnection
  1002  	}
  1003  	return nil
  1004  }
  1005  
  1006  func (x *Cluster) GetCircuitBreakers() *CircuitBreakers {
  1007  	if x != nil {
  1008  		return x.CircuitBreakers
  1009  	}
  1010  	return nil
  1011  }
  1012  
  1013  // Deprecated: Do not use.
  1014  func (x *Cluster) GetHiddenEnvoyDeprecatedUpstreamHttpProtocolOptions() *v4alpha.UpstreamHttpProtocolOptions {
  1015  	if x != nil {
  1016  		return x.HiddenEnvoyDeprecatedUpstreamHttpProtocolOptions
  1017  	}
  1018  	return nil
  1019  }
  1020  
  1021  // Deprecated: Do not use.
  1022  func (x *Cluster) GetHiddenEnvoyDeprecatedCommonHttpProtocolOptions() *v4alpha.HttpProtocolOptions {
  1023  	if x != nil {
  1024  		return x.HiddenEnvoyDeprecatedCommonHttpProtocolOptions
  1025  	}
  1026  	return nil
  1027  }
  1028  
  1029  // Deprecated: Do not use.
  1030  func (x *Cluster) GetHiddenEnvoyDeprecatedHttpProtocolOptions() *v4alpha.Http1ProtocolOptions {
  1031  	if x != nil {
  1032  		return x.HiddenEnvoyDeprecatedHttpProtocolOptions
  1033  	}
  1034  	return nil
  1035  }
  1036  
  1037  // Deprecated: Do not use.
  1038  func (x *Cluster) GetHiddenEnvoyDeprecatedHttp2ProtocolOptions() *v4alpha.Http2ProtocolOptions {
  1039  	if x != nil {
  1040  		return x.HiddenEnvoyDeprecatedHttp2ProtocolOptions
  1041  	}
  1042  	return nil
  1043  }
  1044  
  1045  func (x *Cluster) GetTypedExtensionProtocolOptions() map[string]*any.Any {
  1046  	if x != nil {
  1047  		return x.TypedExtensionProtocolOptions
  1048  	}
  1049  	return nil
  1050  }
  1051  
  1052  func (x *Cluster) GetDnsRefreshRate() *duration.Duration {
  1053  	if x != nil {
  1054  		return x.DnsRefreshRate
  1055  	}
  1056  	return nil
  1057  }
  1058  
  1059  func (x *Cluster) GetDnsFailureRefreshRate() *Cluster_RefreshRate {
  1060  	if x != nil {
  1061  		return x.DnsFailureRefreshRate
  1062  	}
  1063  	return nil
  1064  }
  1065  
  1066  func (x *Cluster) GetRespectDnsTtl() bool {
  1067  	if x != nil {
  1068  		return x.RespectDnsTtl
  1069  	}
  1070  	return false
  1071  }
  1072  
  1073  func (x *Cluster) GetDnsLookupFamily() Cluster_DnsLookupFamily {
  1074  	if x != nil {
  1075  		return x.DnsLookupFamily
  1076  	}
  1077  	return Cluster_AUTO
  1078  }
  1079  
  1080  func (x *Cluster) GetDnsResolvers() []*v4alpha.Address {
  1081  	if x != nil {
  1082  		return x.DnsResolvers
  1083  	}
  1084  	return nil
  1085  }
  1086  
  1087  func (x *Cluster) GetUseTcpForDnsLookups() bool {
  1088  	if x != nil {
  1089  		return x.UseTcpForDnsLookups
  1090  	}
  1091  	return false
  1092  }
  1093  
  1094  func (x *Cluster) GetOutlierDetection() *OutlierDetection {
  1095  	if x != nil {
  1096  		return x.OutlierDetection
  1097  	}
  1098  	return nil
  1099  }
  1100  
  1101  func (x *Cluster) GetCleanupInterval() *duration.Duration {
  1102  	if x != nil {
  1103  		return x.CleanupInterval
  1104  	}
  1105  	return nil
  1106  }
  1107  
  1108  func (x *Cluster) GetUpstreamBindConfig() *v4alpha.BindConfig {
  1109  	if x != nil {
  1110  		return x.UpstreamBindConfig
  1111  	}
  1112  	return nil
  1113  }
  1114  
  1115  func (x *Cluster) GetLbSubsetConfig() *Cluster_LbSubsetConfig {
  1116  	if x != nil {
  1117  		return x.LbSubsetConfig
  1118  	}
  1119  	return nil
  1120  }
  1121  
  1122  func (m *Cluster) GetLbConfig() isCluster_LbConfig {
  1123  	if m != nil {
  1124  		return m.LbConfig
  1125  	}
  1126  	return nil
  1127  }
  1128  
  1129  func (x *Cluster) GetRingHashLbConfig() *Cluster_RingHashLbConfig {
  1130  	if x, ok := x.GetLbConfig().(*Cluster_RingHashLbConfig_); ok {
  1131  		return x.RingHashLbConfig
  1132  	}
  1133  	return nil
  1134  }
  1135  
  1136  func (x *Cluster) GetMaglevLbConfig() *Cluster_MaglevLbConfig {
  1137  	if x, ok := x.GetLbConfig().(*Cluster_MaglevLbConfig_); ok {
  1138  		return x.MaglevLbConfig
  1139  	}
  1140  	return nil
  1141  }
  1142  
  1143  func (x *Cluster) GetOriginalDstLbConfig() *Cluster_OriginalDstLbConfig {
  1144  	if x, ok := x.GetLbConfig().(*Cluster_OriginalDstLbConfig_); ok {
  1145  		return x.OriginalDstLbConfig
  1146  	}
  1147  	return nil
  1148  }
  1149  
  1150  func (x *Cluster) GetLeastRequestLbConfig() *Cluster_LeastRequestLbConfig {
  1151  	if x, ok := x.GetLbConfig().(*Cluster_LeastRequestLbConfig_); ok {
  1152  		return x.LeastRequestLbConfig
  1153  	}
  1154  	return nil
  1155  }
  1156  
  1157  func (x *Cluster) GetCommonLbConfig() *Cluster_CommonLbConfig {
  1158  	if x != nil {
  1159  		return x.CommonLbConfig
  1160  	}
  1161  	return nil
  1162  }
  1163  
  1164  func (x *Cluster) GetTransportSocket() *v4alpha.TransportSocket {
  1165  	if x != nil {
  1166  		return x.TransportSocket
  1167  	}
  1168  	return nil
  1169  }
  1170  
  1171  func (x *Cluster) GetMetadata() *v4alpha.Metadata {
  1172  	if x != nil {
  1173  		return x.Metadata
  1174  	}
  1175  	return nil
  1176  }
  1177  
  1178  // Deprecated: Do not use.
  1179  func (x *Cluster) GetHiddenEnvoyDeprecatedProtocolSelection() Cluster_ClusterProtocolSelection {
  1180  	if x != nil {
  1181  		return x.HiddenEnvoyDeprecatedProtocolSelection
  1182  	}
  1183  	return Cluster_USE_CONFIGURED_PROTOCOL
  1184  }
  1185  
  1186  func (x *Cluster) GetUpstreamConnectionOptions() *UpstreamConnectionOptions {
  1187  	if x != nil {
  1188  		return x.UpstreamConnectionOptions
  1189  	}
  1190  	return nil
  1191  }
  1192  
  1193  func (x *Cluster) GetCloseConnectionsOnHostHealthFailure() bool {
  1194  	if x != nil {
  1195  		return x.CloseConnectionsOnHostHealthFailure
  1196  	}
  1197  	return false
  1198  }
  1199  
  1200  func (x *Cluster) GetIgnoreHealthOnHostRemoval() bool {
  1201  	if x != nil {
  1202  		return x.IgnoreHealthOnHostRemoval
  1203  	}
  1204  	return false
  1205  }
  1206  
  1207  func (x *Cluster) GetFilters() []*Filter {
  1208  	if x != nil {
  1209  		return x.Filters
  1210  	}
  1211  	return nil
  1212  }
  1213  
  1214  func (x *Cluster) GetLoadBalancingPolicy() *LoadBalancingPolicy {
  1215  	if x != nil {
  1216  		return x.LoadBalancingPolicy
  1217  	}
  1218  	return nil
  1219  }
  1220  
  1221  func (x *Cluster) GetLrsServer() *v4alpha.ConfigSource {
  1222  	if x != nil {
  1223  		return x.LrsServer
  1224  	}
  1225  	return nil
  1226  }
  1227  
  1228  // Deprecated: Do not use.
  1229  func (x *Cluster) GetHiddenEnvoyDeprecatedTrackTimeoutBudgets() bool {
  1230  	if x != nil {
  1231  		return x.HiddenEnvoyDeprecatedTrackTimeoutBudgets
  1232  	}
  1233  	return false
  1234  }
  1235  
  1236  func (x *Cluster) GetUpstreamConfig() *v4alpha.TypedExtensionConfig {
  1237  	if x != nil {
  1238  		return x.UpstreamConfig
  1239  	}
  1240  	return nil
  1241  }
  1242  
  1243  func (x *Cluster) GetTrackClusterStats() *TrackClusterStats {
  1244  	if x != nil {
  1245  		return x.TrackClusterStats
  1246  	}
  1247  	return nil
  1248  }
  1249  
  1250  func (x *Cluster) GetPreconnectPolicy() *Cluster_PreconnectPolicy {
  1251  	if x != nil {
  1252  		return x.PreconnectPolicy
  1253  	}
  1254  	return nil
  1255  }
  1256  
  1257  func (x *Cluster) GetConnectionPoolPerDownstreamConnection() bool {
  1258  	if x != nil {
  1259  		return x.ConnectionPoolPerDownstreamConnection
  1260  	}
  1261  	return false
  1262  }
  1263  
  1264  type isCluster_ClusterDiscoveryType interface {
  1265  	isCluster_ClusterDiscoveryType()
  1266  }
  1267  
  1268  type Cluster_Type struct {
  1269  	// The :ref:`service discovery type <arch_overview_service_discovery_types>`
  1270  	// to use for resolving the cluster.
  1271  	Type Cluster_DiscoveryType `protobuf:"varint,2,opt,name=type,proto3,enum=envoy.config.cluster.v4alpha.Cluster_DiscoveryType,oneof"`
  1272  }
  1273  
  1274  type Cluster_ClusterType struct {
  1275  	// The custom cluster type.
  1276  	ClusterType *Cluster_CustomClusterType `protobuf:"bytes,38,opt,name=cluster_type,json=clusterType,proto3,oneof"`
  1277  }
  1278  
  1279  func (*Cluster_Type) isCluster_ClusterDiscoveryType() {}
  1280  
  1281  func (*Cluster_ClusterType) isCluster_ClusterDiscoveryType() {}
  1282  
  1283  type isCluster_LbConfig interface {
  1284  	isCluster_LbConfig()
  1285  }
  1286  
  1287  type Cluster_RingHashLbConfig_ struct {
  1288  	// Optional configuration for the Ring Hash load balancing policy.
  1289  	RingHashLbConfig *Cluster_RingHashLbConfig `protobuf:"bytes,23,opt,name=ring_hash_lb_config,json=ringHashLbConfig,proto3,oneof"`
  1290  }
  1291  
  1292  type Cluster_MaglevLbConfig_ struct {
  1293  	// Optional configuration for the Maglev load balancing policy.
  1294  	MaglevLbConfig *Cluster_MaglevLbConfig `protobuf:"bytes,52,opt,name=maglev_lb_config,json=maglevLbConfig,proto3,oneof"`
  1295  }
  1296  
  1297  type Cluster_OriginalDstLbConfig_ struct {
  1298  	// Optional configuration for the Original Destination load balancing policy.
  1299  	OriginalDstLbConfig *Cluster_OriginalDstLbConfig `protobuf:"bytes,34,opt,name=original_dst_lb_config,json=originalDstLbConfig,proto3,oneof"`
  1300  }
  1301  
  1302  type Cluster_LeastRequestLbConfig_ struct {
  1303  	// Optional configuration for the LeastRequest load balancing policy.
  1304  	LeastRequestLbConfig *Cluster_LeastRequestLbConfig `protobuf:"bytes,37,opt,name=least_request_lb_config,json=leastRequestLbConfig,proto3,oneof"`
  1305  }
  1306  
  1307  func (*Cluster_RingHashLbConfig_) isCluster_LbConfig() {}
  1308  
  1309  func (*Cluster_MaglevLbConfig_) isCluster_LbConfig() {}
  1310  
  1311  func (*Cluster_OriginalDstLbConfig_) isCluster_LbConfig() {}
  1312  
  1313  func (*Cluster_LeastRequestLbConfig_) isCluster_LbConfig() {}
  1314  
  1315  // [#not-implemented-hide:] Extensible load balancing policy configuration.
  1316  //
  1317  // Every LB policy defined via this mechanism will be identified via a unique name using reverse
  1318  // DNS notation. If the policy needs configuration parameters, it must define a message for its
  1319  // own configuration, which will be stored in the config field. The name of the policy will tell
  1320  // clients which type of message they should expect to see in the config field.
  1321  //
  1322  // Note that there are cases where it is useful to be able to independently select LB policies
  1323  // for choosing a locality and for choosing an endpoint within that locality. For example, a
  1324  // given deployment may always use the same policy to choose the locality, but for choosing the
  1325  // endpoint within the locality, some clusters may use weighted-round-robin, while others may
  1326  // use some sort of session-based balancing.
  1327  //
  1328  // This can be accomplished via hierarchical LB policies, where the parent LB policy creates a
  1329  // child LB policy for each locality. For each request, the parent chooses the locality and then
  1330  // delegates to the child policy for that locality to choose the endpoint within the locality.
  1331  //
  1332  // To facilitate this, the config message for the top-level LB policy may include a field of
  1333  // type LoadBalancingPolicy that specifies the child policy.
  1334  type LoadBalancingPolicy struct {
  1335  	state         protoimpl.MessageState
  1336  	sizeCache     protoimpl.SizeCache
  1337  	unknownFields protoimpl.UnknownFields
  1338  
  1339  	// Each client will iterate over the list in order and stop at the first policy that it
  1340  	// supports. This provides a mechanism for starting to use new LB policies that are not yet
  1341  	// supported by all clients.
  1342  	Policies []*LoadBalancingPolicy_Policy `protobuf:"bytes,1,rep,name=policies,proto3" json:"policies,omitempty"`
  1343  }
  1344  
  1345  func (x *LoadBalancingPolicy) Reset() {
  1346  	*x = LoadBalancingPolicy{}
  1347  	if protoimpl.UnsafeEnabled {
  1348  		mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[2]
  1349  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1350  		ms.StoreMessageInfo(mi)
  1351  	}
  1352  }
  1353  
  1354  func (x *LoadBalancingPolicy) String() string {
  1355  	return protoimpl.X.MessageStringOf(x)
  1356  }
  1357  
  1358  func (*LoadBalancingPolicy) ProtoMessage() {}
  1359  
  1360  func (x *LoadBalancingPolicy) ProtoReflect() protoreflect.Message {
  1361  	mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[2]
  1362  	if protoimpl.UnsafeEnabled && x != nil {
  1363  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1364  		if ms.LoadMessageInfo() == nil {
  1365  			ms.StoreMessageInfo(mi)
  1366  		}
  1367  		return ms
  1368  	}
  1369  	return mi.MessageOf(x)
  1370  }
  1371  
  1372  // Deprecated: Use LoadBalancingPolicy.ProtoReflect.Descriptor instead.
  1373  func (*LoadBalancingPolicy) Descriptor() ([]byte, []int) {
  1374  	return file_envoy_config_cluster_v4alpha_cluster_proto_rawDescGZIP(), []int{2}
  1375  }
  1376  
  1377  func (x *LoadBalancingPolicy) GetPolicies() []*LoadBalancingPolicy_Policy {
  1378  	if x != nil {
  1379  		return x.Policies
  1380  	}
  1381  	return nil
  1382  }
  1383  
  1384  // An extensible structure containing the address Envoy should bind to when
  1385  // establishing upstream connections.
  1386  type UpstreamBindConfig struct {
  1387  	state         protoimpl.MessageState
  1388  	sizeCache     protoimpl.SizeCache
  1389  	unknownFields protoimpl.UnknownFields
  1390  
  1391  	// The address Envoy should bind to when establishing upstream connections.
  1392  	SourceAddress *v4alpha.Address `protobuf:"bytes,1,opt,name=source_address,json=sourceAddress,proto3" json:"source_address,omitempty"`
  1393  }
  1394  
  1395  func (x *UpstreamBindConfig) Reset() {
  1396  	*x = UpstreamBindConfig{}
  1397  	if protoimpl.UnsafeEnabled {
  1398  		mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[3]
  1399  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1400  		ms.StoreMessageInfo(mi)
  1401  	}
  1402  }
  1403  
  1404  func (x *UpstreamBindConfig) String() string {
  1405  	return protoimpl.X.MessageStringOf(x)
  1406  }
  1407  
  1408  func (*UpstreamBindConfig) ProtoMessage() {}
  1409  
  1410  func (x *UpstreamBindConfig) ProtoReflect() protoreflect.Message {
  1411  	mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[3]
  1412  	if protoimpl.UnsafeEnabled && x != nil {
  1413  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1414  		if ms.LoadMessageInfo() == nil {
  1415  			ms.StoreMessageInfo(mi)
  1416  		}
  1417  		return ms
  1418  	}
  1419  	return mi.MessageOf(x)
  1420  }
  1421  
  1422  // Deprecated: Use UpstreamBindConfig.ProtoReflect.Descriptor instead.
  1423  func (*UpstreamBindConfig) Descriptor() ([]byte, []int) {
  1424  	return file_envoy_config_cluster_v4alpha_cluster_proto_rawDescGZIP(), []int{3}
  1425  }
  1426  
  1427  func (x *UpstreamBindConfig) GetSourceAddress() *v4alpha.Address {
  1428  	if x != nil {
  1429  		return x.SourceAddress
  1430  	}
  1431  	return nil
  1432  }
  1433  
  1434  type UpstreamConnectionOptions struct {
  1435  	state         protoimpl.MessageState
  1436  	sizeCache     protoimpl.SizeCache
  1437  	unknownFields protoimpl.UnknownFields
  1438  
  1439  	// If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives.
  1440  	TcpKeepalive *v4alpha.TcpKeepalive `protobuf:"bytes,1,opt,name=tcp_keepalive,json=tcpKeepalive,proto3" json:"tcp_keepalive,omitempty"`
  1441  }
  1442  
  1443  func (x *UpstreamConnectionOptions) Reset() {
  1444  	*x = UpstreamConnectionOptions{}
  1445  	if protoimpl.UnsafeEnabled {
  1446  		mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[4]
  1447  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1448  		ms.StoreMessageInfo(mi)
  1449  	}
  1450  }
  1451  
  1452  func (x *UpstreamConnectionOptions) String() string {
  1453  	return protoimpl.X.MessageStringOf(x)
  1454  }
  1455  
  1456  func (*UpstreamConnectionOptions) ProtoMessage() {}
  1457  
  1458  func (x *UpstreamConnectionOptions) ProtoReflect() protoreflect.Message {
  1459  	mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[4]
  1460  	if protoimpl.UnsafeEnabled && x != nil {
  1461  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1462  		if ms.LoadMessageInfo() == nil {
  1463  			ms.StoreMessageInfo(mi)
  1464  		}
  1465  		return ms
  1466  	}
  1467  	return mi.MessageOf(x)
  1468  }
  1469  
  1470  // Deprecated: Use UpstreamConnectionOptions.ProtoReflect.Descriptor instead.
  1471  func (*UpstreamConnectionOptions) Descriptor() ([]byte, []int) {
  1472  	return file_envoy_config_cluster_v4alpha_cluster_proto_rawDescGZIP(), []int{4}
  1473  }
  1474  
  1475  func (x *UpstreamConnectionOptions) GetTcpKeepalive() *v4alpha.TcpKeepalive {
  1476  	if x != nil {
  1477  		return x.TcpKeepalive
  1478  	}
  1479  	return nil
  1480  }
  1481  
  1482  type TrackClusterStats struct {
  1483  	state         protoimpl.MessageState
  1484  	sizeCache     protoimpl.SizeCache
  1485  	unknownFields protoimpl.UnknownFields
  1486  
  1487  	// If timeout_budgets is true, the :ref:`timeout budget histograms
  1488  	// <config_cluster_manager_cluster_stats_timeout_budgets>` will be published for each
  1489  	// request. These show what percentage of a request's per try and global timeout was used. A value
  1490  	// of 0 would indicate that none of the timeout was used or that the timeout was infinite. A value
  1491  	// of 100 would indicate that the request took the entirety of the timeout given to it.
  1492  	TimeoutBudgets bool `protobuf:"varint,1,opt,name=timeout_budgets,json=timeoutBudgets,proto3" json:"timeout_budgets,omitempty"`
  1493  	// If request_response_sizes is true, then the :ref:`histograms
  1494  	// <config_cluster_manager_cluster_stats_request_response_sizes>`  tracking header and body sizes
  1495  	// of requests and responses will be published.
  1496  	RequestResponseSizes bool `protobuf:"varint,2,opt,name=request_response_sizes,json=requestResponseSizes,proto3" json:"request_response_sizes,omitempty"`
  1497  }
  1498  
  1499  func (x *TrackClusterStats) Reset() {
  1500  	*x = TrackClusterStats{}
  1501  	if protoimpl.UnsafeEnabled {
  1502  		mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[5]
  1503  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1504  		ms.StoreMessageInfo(mi)
  1505  	}
  1506  }
  1507  
  1508  func (x *TrackClusterStats) String() string {
  1509  	return protoimpl.X.MessageStringOf(x)
  1510  }
  1511  
  1512  func (*TrackClusterStats) ProtoMessage() {}
  1513  
  1514  func (x *TrackClusterStats) ProtoReflect() protoreflect.Message {
  1515  	mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[5]
  1516  	if protoimpl.UnsafeEnabled && x != nil {
  1517  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1518  		if ms.LoadMessageInfo() == nil {
  1519  			ms.StoreMessageInfo(mi)
  1520  		}
  1521  		return ms
  1522  	}
  1523  	return mi.MessageOf(x)
  1524  }
  1525  
  1526  // Deprecated: Use TrackClusterStats.ProtoReflect.Descriptor instead.
  1527  func (*TrackClusterStats) Descriptor() ([]byte, []int) {
  1528  	return file_envoy_config_cluster_v4alpha_cluster_proto_rawDescGZIP(), []int{5}
  1529  }
  1530  
  1531  func (x *TrackClusterStats) GetTimeoutBudgets() bool {
  1532  	if x != nil {
  1533  		return x.TimeoutBudgets
  1534  	}
  1535  	return false
  1536  }
  1537  
  1538  func (x *TrackClusterStats) GetRequestResponseSizes() bool {
  1539  	if x != nil {
  1540  		return x.RequestResponseSizes
  1541  	}
  1542  	return false
  1543  }
  1544  
  1545  // TransportSocketMatch specifies what transport socket config will be used
  1546  // when the match conditions are satisfied.
  1547  type Cluster_TransportSocketMatch struct {
  1548  	state         protoimpl.MessageState
  1549  	sizeCache     protoimpl.SizeCache
  1550  	unknownFields protoimpl.UnknownFields
  1551  
  1552  	// The name of the match, used in stats generation.
  1553  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
  1554  	// Optional endpoint metadata match criteria.
  1555  	// The connection to the endpoint with metadata matching what is set in this field
  1556  	// will use the transport socket configuration specified here.
  1557  	// The endpoint's metadata entry in *envoy.transport_socket_match* is used to match
  1558  	// against the values specified in this field.
  1559  	Match *_struct.Struct `protobuf:"bytes,2,opt,name=match,proto3" json:"match,omitempty"`
  1560  	// The configuration of the transport socket.
  1561  	TransportSocket *v4alpha.TransportSocket `protobuf:"bytes,3,opt,name=transport_socket,json=transportSocket,proto3" json:"transport_socket,omitempty"`
  1562  }
  1563  
  1564  func (x *Cluster_TransportSocketMatch) Reset() {
  1565  	*x = Cluster_TransportSocketMatch{}
  1566  	if protoimpl.UnsafeEnabled {
  1567  		mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[6]
  1568  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1569  		ms.StoreMessageInfo(mi)
  1570  	}
  1571  }
  1572  
  1573  func (x *Cluster_TransportSocketMatch) String() string {
  1574  	return protoimpl.X.MessageStringOf(x)
  1575  }
  1576  
  1577  func (*Cluster_TransportSocketMatch) ProtoMessage() {}
  1578  
  1579  func (x *Cluster_TransportSocketMatch) ProtoReflect() protoreflect.Message {
  1580  	mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[6]
  1581  	if protoimpl.UnsafeEnabled && x != nil {
  1582  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1583  		if ms.LoadMessageInfo() == nil {
  1584  			ms.StoreMessageInfo(mi)
  1585  		}
  1586  		return ms
  1587  	}
  1588  	return mi.MessageOf(x)
  1589  }
  1590  
  1591  // Deprecated: Use Cluster_TransportSocketMatch.ProtoReflect.Descriptor instead.
  1592  func (*Cluster_TransportSocketMatch) Descriptor() ([]byte, []int) {
  1593  	return file_envoy_config_cluster_v4alpha_cluster_proto_rawDescGZIP(), []int{1, 0}
  1594  }
  1595  
  1596  func (x *Cluster_TransportSocketMatch) GetName() string {
  1597  	if x != nil {
  1598  		return x.Name
  1599  	}
  1600  	return ""
  1601  }
  1602  
  1603  func (x *Cluster_TransportSocketMatch) GetMatch() *_struct.Struct {
  1604  	if x != nil {
  1605  		return x.Match
  1606  	}
  1607  	return nil
  1608  }
  1609  
  1610  func (x *Cluster_TransportSocketMatch) GetTransportSocket() *v4alpha.TransportSocket {
  1611  	if x != nil {
  1612  		return x.TransportSocket
  1613  	}
  1614  	return nil
  1615  }
  1616  
  1617  // Extended cluster type.
  1618  type Cluster_CustomClusterType struct {
  1619  	state         protoimpl.MessageState
  1620  	sizeCache     protoimpl.SizeCache
  1621  	unknownFields protoimpl.UnknownFields
  1622  
  1623  	// The type of the cluster to instantiate. The name must match a supported cluster type.
  1624  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
  1625  	// Cluster specific configuration which depends on the cluster being instantiated.
  1626  	// See the supported cluster for further documentation.
  1627  	TypedConfig *any.Any `protobuf:"bytes,2,opt,name=typed_config,json=typedConfig,proto3" json:"typed_config,omitempty"`
  1628  }
  1629  
  1630  func (x *Cluster_CustomClusterType) Reset() {
  1631  	*x = Cluster_CustomClusterType{}
  1632  	if protoimpl.UnsafeEnabled {
  1633  		mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[7]
  1634  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1635  		ms.StoreMessageInfo(mi)
  1636  	}
  1637  }
  1638  
  1639  func (x *Cluster_CustomClusterType) String() string {
  1640  	return protoimpl.X.MessageStringOf(x)
  1641  }
  1642  
  1643  func (*Cluster_CustomClusterType) ProtoMessage() {}
  1644  
  1645  func (x *Cluster_CustomClusterType) ProtoReflect() protoreflect.Message {
  1646  	mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[7]
  1647  	if protoimpl.UnsafeEnabled && x != nil {
  1648  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1649  		if ms.LoadMessageInfo() == nil {
  1650  			ms.StoreMessageInfo(mi)
  1651  		}
  1652  		return ms
  1653  	}
  1654  	return mi.MessageOf(x)
  1655  }
  1656  
  1657  // Deprecated: Use Cluster_CustomClusterType.ProtoReflect.Descriptor instead.
  1658  func (*Cluster_CustomClusterType) Descriptor() ([]byte, []int) {
  1659  	return file_envoy_config_cluster_v4alpha_cluster_proto_rawDescGZIP(), []int{1, 1}
  1660  }
  1661  
  1662  func (x *Cluster_CustomClusterType) GetName() string {
  1663  	if x != nil {
  1664  		return x.Name
  1665  	}
  1666  	return ""
  1667  }
  1668  
  1669  func (x *Cluster_CustomClusterType) GetTypedConfig() *any.Any {
  1670  	if x != nil {
  1671  		return x.TypedConfig
  1672  	}
  1673  	return nil
  1674  }
  1675  
  1676  // Only valid when discovery type is EDS.
  1677  type Cluster_EdsClusterConfig struct {
  1678  	state         protoimpl.MessageState
  1679  	sizeCache     protoimpl.SizeCache
  1680  	unknownFields protoimpl.UnknownFields
  1681  
  1682  	// Configuration for the source of EDS updates for this Cluster.
  1683  	EdsConfig *v4alpha.ConfigSource `protobuf:"bytes,1,opt,name=eds_config,json=edsConfig,proto3" json:"eds_config,omitempty"`
  1684  	// Optional alternative to cluster name to present to EDS. This does not
  1685  	// have the same restrictions as cluster name, i.e. it may be arbitrary
  1686  	// length. This may be a xdstp:// URL.
  1687  	ServiceName string `protobuf:"bytes,2,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"`
  1688  }
  1689  
  1690  func (x *Cluster_EdsClusterConfig) Reset() {
  1691  	*x = Cluster_EdsClusterConfig{}
  1692  	if protoimpl.UnsafeEnabled {
  1693  		mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[8]
  1694  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1695  		ms.StoreMessageInfo(mi)
  1696  	}
  1697  }
  1698  
  1699  func (x *Cluster_EdsClusterConfig) String() string {
  1700  	return protoimpl.X.MessageStringOf(x)
  1701  }
  1702  
  1703  func (*Cluster_EdsClusterConfig) ProtoMessage() {}
  1704  
  1705  func (x *Cluster_EdsClusterConfig) ProtoReflect() protoreflect.Message {
  1706  	mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[8]
  1707  	if protoimpl.UnsafeEnabled && x != nil {
  1708  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1709  		if ms.LoadMessageInfo() == nil {
  1710  			ms.StoreMessageInfo(mi)
  1711  		}
  1712  		return ms
  1713  	}
  1714  	return mi.MessageOf(x)
  1715  }
  1716  
  1717  // Deprecated: Use Cluster_EdsClusterConfig.ProtoReflect.Descriptor instead.
  1718  func (*Cluster_EdsClusterConfig) Descriptor() ([]byte, []int) {
  1719  	return file_envoy_config_cluster_v4alpha_cluster_proto_rawDescGZIP(), []int{1, 2}
  1720  }
  1721  
  1722  func (x *Cluster_EdsClusterConfig) GetEdsConfig() *v4alpha.ConfigSource {
  1723  	if x != nil {
  1724  		return x.EdsConfig
  1725  	}
  1726  	return nil
  1727  }
  1728  
  1729  func (x *Cluster_EdsClusterConfig) GetServiceName() string {
  1730  	if x != nil {
  1731  		return x.ServiceName
  1732  	}
  1733  	return ""
  1734  }
  1735  
  1736  // Optionally divide the endpoints in this cluster into subsets defined by
  1737  // endpoint metadata and selected by route and weighted cluster metadata.
  1738  // [#next-free-field: 8]
  1739  type Cluster_LbSubsetConfig struct {
  1740  	state         protoimpl.MessageState
  1741  	sizeCache     protoimpl.SizeCache
  1742  	unknownFields protoimpl.UnknownFields
  1743  
  1744  	// The behavior used when no endpoint subset matches the selected route's
  1745  	// metadata. The value defaults to
  1746  	// :ref:`NO_FALLBACK<envoy_api_enum_value_config.cluster.v4alpha.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.NO_FALLBACK>`.
  1747  	FallbackPolicy Cluster_LbSubsetConfig_LbSubsetFallbackPolicy `protobuf:"varint,1,opt,name=fallback_policy,json=fallbackPolicy,proto3,enum=envoy.config.cluster.v4alpha.Cluster_LbSubsetConfig_LbSubsetFallbackPolicy" json:"fallback_policy,omitempty"`
  1748  	// Specifies the default subset of endpoints used during fallback if
  1749  	// fallback_policy is
  1750  	// :ref:`DEFAULT_SUBSET<envoy_api_enum_value_config.cluster.v4alpha.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`.
  1751  	// Each field in default_subset is
  1752  	// compared to the matching LbEndpoint.Metadata under the *envoy.lb*
  1753  	// namespace. It is valid for no hosts to match, in which case the behavior
  1754  	// is the same as a fallback_policy of
  1755  	// :ref:`NO_FALLBACK<envoy_api_enum_value_config.cluster.v4alpha.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.NO_FALLBACK>`.
  1756  	DefaultSubset *_struct.Struct `protobuf:"bytes,2,opt,name=default_subset,json=defaultSubset,proto3" json:"default_subset,omitempty"`
  1757  	// For each entry, LbEndpoint.Metadata's
  1758  	// *envoy.lb* namespace is traversed and a subset is created for each unique
  1759  	// combination of key and value. For example:
  1760  	//
  1761  	// .. code-block:: json
  1762  	//
  1763  	//   { "subset_selectors": [
  1764  	//       { "keys": [ "version" ] },
  1765  	//       { "keys": [ "stage", "hardware_type" ] }
  1766  	//   ]}
  1767  	//
  1768  	// A subset is matched when the metadata from the selected route and
  1769  	// weighted cluster contains the same keys and values as the subset's
  1770  	// metadata. The same host may appear in multiple subsets.
  1771  	SubsetSelectors []*Cluster_LbSubsetConfig_LbSubsetSelector `protobuf:"bytes,3,rep,name=subset_selectors,json=subsetSelectors,proto3" json:"subset_selectors,omitempty"`
  1772  	// If true, routing to subsets will take into account the localities and locality weights of the
  1773  	// endpoints when making the routing decision.
  1774  	//
  1775  	// There are some potential pitfalls associated with enabling this feature, as the resulting
  1776  	// traffic split after applying both a subset match and locality weights might be undesirable.
  1777  	//
  1778  	// Consider for example a situation in which you have 50/50 split across two localities X/Y
  1779  	// which have 100 hosts each without subsetting. If the subset LB results in X having only 1
  1780  	// host selected but Y having 100, then a lot more load is being dumped on the single host in X
  1781  	// than originally anticipated in the load balancing assignment delivered via EDS.
  1782  	LocalityWeightAware bool `protobuf:"varint,4,opt,name=locality_weight_aware,json=localityWeightAware,proto3" json:"locality_weight_aware,omitempty"`
  1783  	// When used with locality_weight_aware, scales the weight of each locality by the ratio
  1784  	// of hosts in the subset vs hosts in the original subset. This aims to even out the load
  1785  	// going to an individual locality if said locality is disproportionately affected by the
  1786  	// subset predicate.
  1787  	ScaleLocalityWeight bool `protobuf:"varint,5,opt,name=scale_locality_weight,json=scaleLocalityWeight,proto3" json:"scale_locality_weight,omitempty"`
  1788  	// If true, when a fallback policy is configured and its corresponding subset fails to find
  1789  	// a host this will cause any host to be selected instead.
  1790  	//
  1791  	// This is useful when using the default subset as the fallback policy, given the default
  1792  	// subset might become empty. With this option enabled, if that happens the LB will attempt
  1793  	// to select a host from the entire cluster.
  1794  	PanicModeAny bool `protobuf:"varint,6,opt,name=panic_mode_any,json=panicModeAny,proto3" json:"panic_mode_any,omitempty"`
  1795  	// If true, metadata specified for a metadata key will be matched against the corresponding
  1796  	// endpoint metadata if the endpoint metadata matches the value exactly OR it is a list value
  1797  	// and any of the elements in the list matches the criteria.
  1798  	ListAsAny bool `protobuf:"varint,7,opt,name=list_as_any,json=listAsAny,proto3" json:"list_as_any,omitempty"`
  1799  }
  1800  
  1801  func (x *Cluster_LbSubsetConfig) Reset() {
  1802  	*x = Cluster_LbSubsetConfig{}
  1803  	if protoimpl.UnsafeEnabled {
  1804  		mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[9]
  1805  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1806  		ms.StoreMessageInfo(mi)
  1807  	}
  1808  }
  1809  
  1810  func (x *Cluster_LbSubsetConfig) String() string {
  1811  	return protoimpl.X.MessageStringOf(x)
  1812  }
  1813  
  1814  func (*Cluster_LbSubsetConfig) ProtoMessage() {}
  1815  
  1816  func (x *Cluster_LbSubsetConfig) ProtoReflect() protoreflect.Message {
  1817  	mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[9]
  1818  	if protoimpl.UnsafeEnabled && x != nil {
  1819  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1820  		if ms.LoadMessageInfo() == nil {
  1821  			ms.StoreMessageInfo(mi)
  1822  		}
  1823  		return ms
  1824  	}
  1825  	return mi.MessageOf(x)
  1826  }
  1827  
  1828  // Deprecated: Use Cluster_LbSubsetConfig.ProtoReflect.Descriptor instead.
  1829  func (*Cluster_LbSubsetConfig) Descriptor() ([]byte, []int) {
  1830  	return file_envoy_config_cluster_v4alpha_cluster_proto_rawDescGZIP(), []int{1, 3}
  1831  }
  1832  
  1833  func (x *Cluster_LbSubsetConfig) GetFallbackPolicy() Cluster_LbSubsetConfig_LbSubsetFallbackPolicy {
  1834  	if x != nil {
  1835  		return x.FallbackPolicy
  1836  	}
  1837  	return Cluster_LbSubsetConfig_NO_FALLBACK
  1838  }
  1839  
  1840  func (x *Cluster_LbSubsetConfig) GetDefaultSubset() *_struct.Struct {
  1841  	if x != nil {
  1842  		return x.DefaultSubset
  1843  	}
  1844  	return nil
  1845  }
  1846  
  1847  func (x *Cluster_LbSubsetConfig) GetSubsetSelectors() []*Cluster_LbSubsetConfig_LbSubsetSelector {
  1848  	if x != nil {
  1849  		return x.SubsetSelectors
  1850  	}
  1851  	return nil
  1852  }
  1853  
  1854  func (x *Cluster_LbSubsetConfig) GetLocalityWeightAware() bool {
  1855  	if x != nil {
  1856  		return x.LocalityWeightAware
  1857  	}
  1858  	return false
  1859  }
  1860  
  1861  func (x *Cluster_LbSubsetConfig) GetScaleLocalityWeight() bool {
  1862  	if x != nil {
  1863  		return x.ScaleLocalityWeight
  1864  	}
  1865  	return false
  1866  }
  1867  
  1868  func (x *Cluster_LbSubsetConfig) GetPanicModeAny() bool {
  1869  	if x != nil {
  1870  		return x.PanicModeAny
  1871  	}
  1872  	return false
  1873  }
  1874  
  1875  func (x *Cluster_LbSubsetConfig) GetListAsAny() bool {
  1876  	if x != nil {
  1877  		return x.ListAsAny
  1878  	}
  1879  	return false
  1880  }
  1881  
  1882  // Specific configuration for the LeastRequest load balancing policy.
  1883  type Cluster_LeastRequestLbConfig struct {
  1884  	state         protoimpl.MessageState
  1885  	sizeCache     protoimpl.SizeCache
  1886  	unknownFields protoimpl.UnknownFields
  1887  
  1888  	// The number of random healthy hosts from which the host with the fewest active requests will
  1889  	// be chosen. Defaults to 2 so that we perform two-choice selection if the field is not set.
  1890  	ChoiceCount *wrappers.UInt32Value `protobuf:"bytes,1,opt,name=choice_count,json=choiceCount,proto3" json:"choice_count,omitempty"`
  1891  	// The following formula is used to calculate the dynamic weights when hosts have different load
  1892  	// balancing weights:
  1893  	//
  1894  	// `weight = load_balancing_weight / (active_requests + 1)^active_request_bias`
  1895  	//
  1896  	// The larger the active request bias is, the more aggressively active requests will lower the
  1897  	// effective weight when all host weights are not equal.
  1898  	//
  1899  	// `active_request_bias` must be greater than or equal to 0.0.
  1900  	//
  1901  	// When `active_request_bias == 0.0` the Least Request Load Balancer doesn't consider the number
  1902  	// of active requests at the time it picks a host and behaves like the Round Robin Load
  1903  	// Balancer.
  1904  	//
  1905  	// When `active_request_bias > 0.0` the Least Request Load Balancer scales the load balancing
  1906  	// weight by the number of active requests at the time it does a pick.
  1907  	//
  1908  	// The value is cached for performance reasons and refreshed whenever one of the Load Balancer's
  1909  	// host sets changes, e.g., whenever there is a host membership update or a host load balancing
  1910  	// weight change.
  1911  	//
  1912  	// .. note::
  1913  	//   This setting only takes effect if all host weights are not equal.
  1914  	ActiveRequestBias *v4alpha.RuntimeDouble `protobuf:"bytes,2,opt,name=active_request_bias,json=activeRequestBias,proto3" json:"active_request_bias,omitempty"`
  1915  }
  1916  
  1917  func (x *Cluster_LeastRequestLbConfig) Reset() {
  1918  	*x = Cluster_LeastRequestLbConfig{}
  1919  	if protoimpl.UnsafeEnabled {
  1920  		mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[10]
  1921  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1922  		ms.StoreMessageInfo(mi)
  1923  	}
  1924  }
  1925  
  1926  func (x *Cluster_LeastRequestLbConfig) String() string {
  1927  	return protoimpl.X.MessageStringOf(x)
  1928  }
  1929  
  1930  func (*Cluster_LeastRequestLbConfig) ProtoMessage() {}
  1931  
  1932  func (x *Cluster_LeastRequestLbConfig) ProtoReflect() protoreflect.Message {
  1933  	mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[10]
  1934  	if protoimpl.UnsafeEnabled && x != nil {
  1935  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1936  		if ms.LoadMessageInfo() == nil {
  1937  			ms.StoreMessageInfo(mi)
  1938  		}
  1939  		return ms
  1940  	}
  1941  	return mi.MessageOf(x)
  1942  }
  1943  
  1944  // Deprecated: Use Cluster_LeastRequestLbConfig.ProtoReflect.Descriptor instead.
  1945  func (*Cluster_LeastRequestLbConfig) Descriptor() ([]byte, []int) {
  1946  	return file_envoy_config_cluster_v4alpha_cluster_proto_rawDescGZIP(), []int{1, 4}
  1947  }
  1948  
  1949  func (x *Cluster_LeastRequestLbConfig) GetChoiceCount() *wrappers.UInt32Value {
  1950  	if x != nil {
  1951  		return x.ChoiceCount
  1952  	}
  1953  	return nil
  1954  }
  1955  
  1956  func (x *Cluster_LeastRequestLbConfig) GetActiveRequestBias() *v4alpha.RuntimeDouble {
  1957  	if x != nil {
  1958  		return x.ActiveRequestBias
  1959  	}
  1960  	return nil
  1961  }
  1962  
  1963  // Specific configuration for the :ref:`RingHash<arch_overview_load_balancing_types_ring_hash>`
  1964  // load balancing policy.
  1965  type Cluster_RingHashLbConfig struct {
  1966  	state         protoimpl.MessageState
  1967  	sizeCache     protoimpl.SizeCache
  1968  	unknownFields protoimpl.UnknownFields
  1969  
  1970  	// Minimum hash ring size. The larger the ring is (that is, the more hashes there are for each
  1971  	// provided host) the better the request distribution will reflect the desired weights. Defaults
  1972  	// to 1024 entries, and limited to 8M entries. See also
  1973  	// :ref:`maximum_ring_size<envoy_api_field_config.cluster.v4alpha.Cluster.RingHashLbConfig.maximum_ring_size>`.
  1974  	MinimumRingSize *wrappers.UInt64Value `protobuf:"bytes,1,opt,name=minimum_ring_size,json=minimumRingSize,proto3" json:"minimum_ring_size,omitempty"`
  1975  	// The hash function used to hash hosts onto the ketama ring. The value defaults to
  1976  	// :ref:`XX_HASH<envoy_api_enum_value_config.cluster.v4alpha.Cluster.RingHashLbConfig.HashFunction.XX_HASH>`.
  1977  	HashFunction Cluster_RingHashLbConfig_HashFunction `protobuf:"varint,3,opt,name=hash_function,json=hashFunction,proto3,enum=envoy.config.cluster.v4alpha.Cluster_RingHashLbConfig_HashFunction" json:"hash_function,omitempty"`
  1978  	// Maximum hash ring size. Defaults to 8M entries, and limited to 8M entries, but can be lowered
  1979  	// to further constrain resource use. See also
  1980  	// :ref:`minimum_ring_size<envoy_api_field_config.cluster.v4alpha.Cluster.RingHashLbConfig.minimum_ring_size>`.
  1981  	MaximumRingSize *wrappers.UInt64Value `protobuf:"bytes,4,opt,name=maximum_ring_size,json=maximumRingSize,proto3" json:"maximum_ring_size,omitempty"`
  1982  }
  1983  
  1984  func (x *Cluster_RingHashLbConfig) Reset() {
  1985  	*x = Cluster_RingHashLbConfig{}
  1986  	if protoimpl.UnsafeEnabled {
  1987  		mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[11]
  1988  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1989  		ms.StoreMessageInfo(mi)
  1990  	}
  1991  }
  1992  
  1993  func (x *Cluster_RingHashLbConfig) String() string {
  1994  	return protoimpl.X.MessageStringOf(x)
  1995  }
  1996  
  1997  func (*Cluster_RingHashLbConfig) ProtoMessage() {}
  1998  
  1999  func (x *Cluster_RingHashLbConfig) ProtoReflect() protoreflect.Message {
  2000  	mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[11]
  2001  	if protoimpl.UnsafeEnabled && x != nil {
  2002  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2003  		if ms.LoadMessageInfo() == nil {
  2004  			ms.StoreMessageInfo(mi)
  2005  		}
  2006  		return ms
  2007  	}
  2008  	return mi.MessageOf(x)
  2009  }
  2010  
  2011  // Deprecated: Use Cluster_RingHashLbConfig.ProtoReflect.Descriptor instead.
  2012  func (*Cluster_RingHashLbConfig) Descriptor() ([]byte, []int) {
  2013  	return file_envoy_config_cluster_v4alpha_cluster_proto_rawDescGZIP(), []int{1, 5}
  2014  }
  2015  
  2016  func (x *Cluster_RingHashLbConfig) GetMinimumRingSize() *wrappers.UInt64Value {
  2017  	if x != nil {
  2018  		return x.MinimumRingSize
  2019  	}
  2020  	return nil
  2021  }
  2022  
  2023  func (x *Cluster_RingHashLbConfig) GetHashFunction() Cluster_RingHashLbConfig_HashFunction {
  2024  	if x != nil {
  2025  		return x.HashFunction
  2026  	}
  2027  	return Cluster_RingHashLbConfig_XX_HASH
  2028  }
  2029  
  2030  func (x *Cluster_RingHashLbConfig) GetMaximumRingSize() *wrappers.UInt64Value {
  2031  	if x != nil {
  2032  		return x.MaximumRingSize
  2033  	}
  2034  	return nil
  2035  }
  2036  
  2037  // Specific configuration for the :ref:`Maglev<arch_overview_load_balancing_types_maglev>`
  2038  // load balancing policy.
  2039  type Cluster_MaglevLbConfig struct {
  2040  	state         protoimpl.MessageState
  2041  	sizeCache     protoimpl.SizeCache
  2042  	unknownFields protoimpl.UnknownFields
  2043  
  2044  	// The table size for Maglev hashing. The Maglev aims for ‘minimal disruption’ rather than an absolute guarantee.
  2045  	// Minimal disruption means that when the set of upstreams changes, a connection will likely be sent to the same
  2046  	// upstream as it was before. Increasing the table size reduces the amount of disruption.
  2047  	// The table size must be prime number. If it is not specified, the default is 65537.
  2048  	TableSize *wrappers.UInt64Value `protobuf:"bytes,1,opt,name=table_size,json=tableSize,proto3" json:"table_size,omitempty"`
  2049  }
  2050  
  2051  func (x *Cluster_MaglevLbConfig) Reset() {
  2052  	*x = Cluster_MaglevLbConfig{}
  2053  	if protoimpl.UnsafeEnabled {
  2054  		mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[12]
  2055  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2056  		ms.StoreMessageInfo(mi)
  2057  	}
  2058  }
  2059  
  2060  func (x *Cluster_MaglevLbConfig) String() string {
  2061  	return protoimpl.X.MessageStringOf(x)
  2062  }
  2063  
  2064  func (*Cluster_MaglevLbConfig) ProtoMessage() {}
  2065  
  2066  func (x *Cluster_MaglevLbConfig) ProtoReflect() protoreflect.Message {
  2067  	mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[12]
  2068  	if protoimpl.UnsafeEnabled && x != nil {
  2069  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2070  		if ms.LoadMessageInfo() == nil {
  2071  			ms.StoreMessageInfo(mi)
  2072  		}
  2073  		return ms
  2074  	}
  2075  	return mi.MessageOf(x)
  2076  }
  2077  
  2078  // Deprecated: Use Cluster_MaglevLbConfig.ProtoReflect.Descriptor instead.
  2079  func (*Cluster_MaglevLbConfig) Descriptor() ([]byte, []int) {
  2080  	return file_envoy_config_cluster_v4alpha_cluster_proto_rawDescGZIP(), []int{1, 6}
  2081  }
  2082  
  2083  func (x *Cluster_MaglevLbConfig) GetTableSize() *wrappers.UInt64Value {
  2084  	if x != nil {
  2085  		return x.TableSize
  2086  	}
  2087  	return nil
  2088  }
  2089  
  2090  // Specific configuration for the
  2091  // :ref:`Original Destination <arch_overview_load_balancing_types_original_destination>`
  2092  // load balancing policy.
  2093  type Cluster_OriginalDstLbConfig struct {
  2094  	state         protoimpl.MessageState
  2095  	sizeCache     protoimpl.SizeCache
  2096  	unknownFields protoimpl.UnknownFields
  2097  
  2098  	// When true, :ref:`x-envoy-original-dst-host
  2099  	// <config_http_conn_man_headers_x-envoy-original-dst-host>` can be used to override destination
  2100  	// address.
  2101  	//
  2102  	// .. attention::
  2103  	//
  2104  	//   This header isn't sanitized by default, so enabling this feature allows HTTP clients to
  2105  	//   route traffic to arbitrary hosts and/or ports, which may have serious security
  2106  	//   consequences.
  2107  	//
  2108  	// .. note::
  2109  	//
  2110  	//   If the header appears multiple times only the first value is used.
  2111  	UseHttpHeader bool `protobuf:"varint,1,opt,name=use_http_header,json=useHttpHeader,proto3" json:"use_http_header,omitempty"`
  2112  }
  2113  
  2114  func (x *Cluster_OriginalDstLbConfig) Reset() {
  2115  	*x = Cluster_OriginalDstLbConfig{}
  2116  	if protoimpl.UnsafeEnabled {
  2117  		mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[13]
  2118  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2119  		ms.StoreMessageInfo(mi)
  2120  	}
  2121  }
  2122  
  2123  func (x *Cluster_OriginalDstLbConfig) String() string {
  2124  	return protoimpl.X.MessageStringOf(x)
  2125  }
  2126  
  2127  func (*Cluster_OriginalDstLbConfig) ProtoMessage() {}
  2128  
  2129  func (x *Cluster_OriginalDstLbConfig) ProtoReflect() protoreflect.Message {
  2130  	mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[13]
  2131  	if protoimpl.UnsafeEnabled && x != nil {
  2132  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2133  		if ms.LoadMessageInfo() == nil {
  2134  			ms.StoreMessageInfo(mi)
  2135  		}
  2136  		return ms
  2137  	}
  2138  	return mi.MessageOf(x)
  2139  }
  2140  
  2141  // Deprecated: Use Cluster_OriginalDstLbConfig.ProtoReflect.Descriptor instead.
  2142  func (*Cluster_OriginalDstLbConfig) Descriptor() ([]byte, []int) {
  2143  	return file_envoy_config_cluster_v4alpha_cluster_proto_rawDescGZIP(), []int{1, 7}
  2144  }
  2145  
  2146  func (x *Cluster_OriginalDstLbConfig) GetUseHttpHeader() bool {
  2147  	if x != nil {
  2148  		return x.UseHttpHeader
  2149  	}
  2150  	return false
  2151  }
  2152  
  2153  // Common configuration for all load balancer implementations.
  2154  // [#next-free-field: 8]
  2155  type Cluster_CommonLbConfig struct {
  2156  	state         protoimpl.MessageState
  2157  	sizeCache     protoimpl.SizeCache
  2158  	unknownFields protoimpl.UnknownFields
  2159  
  2160  	// Configures the :ref:`healthy panic threshold <arch_overview_load_balancing_panic_threshold>`.
  2161  	// If not specified, the default is 50%.
  2162  	// To disable panic mode, set to 0%.
  2163  	//
  2164  	// .. note::
  2165  	//   The specified percent will be truncated to the nearest 1%.
  2166  	HealthyPanicThreshold *v32.Percent `protobuf:"bytes,1,opt,name=healthy_panic_threshold,json=healthyPanicThreshold,proto3" json:"healthy_panic_threshold,omitempty"`
  2167  	// Types that are assignable to LocalityConfigSpecifier:
  2168  	//	*Cluster_CommonLbConfig_ZoneAwareLbConfig_
  2169  	//	*Cluster_CommonLbConfig_LocalityWeightedLbConfig_
  2170  	LocalityConfigSpecifier isCluster_CommonLbConfig_LocalityConfigSpecifier `protobuf_oneof:"locality_config_specifier"`
  2171  	// If set, all health check/weight/metadata updates that happen within this duration will be
  2172  	// merged and delivered in one shot when the duration expires. The start of the duration is when
  2173  	// the first update happens. This is useful for big clusters, with potentially noisy deploys
  2174  	// that might trigger excessive CPU usage due to a constant stream of healthcheck state changes
  2175  	// or metadata updates. The first set of updates to be seen apply immediately (e.g.: a new
  2176  	// cluster). Please always keep in mind that the use of sandbox technologies may change this
  2177  	// behavior.
  2178  	//
  2179  	// If this is not set, we default to a merge window of 1000ms. To disable it, set the merge
  2180  	// window to 0.
  2181  	//
  2182  	// Note: merging does not apply to cluster membership changes (e.g.: adds/removes); this is
  2183  	// because merging those updates isn't currently safe. See
  2184  	// https://github.com/envoyproxy/envoy/pull/3941.
  2185  	UpdateMergeWindow *duration.Duration `protobuf:"bytes,4,opt,name=update_merge_window,json=updateMergeWindow,proto3" json:"update_merge_window,omitempty"`
  2186  	// If set to true, Envoy will not consider new hosts when computing load balancing weights until
  2187  	// they have been health checked for the first time. This will have no effect unless
  2188  	// active health checking is also configured.
  2189  	//
  2190  	// Ignoring a host means that for any load balancing calculations that adjust weights based
  2191  	// on the ratio of eligible hosts and total hosts (priority spillover, locality weighting and
  2192  	// panic mode) Envoy will exclude these hosts in the denominator.
  2193  	//
  2194  	// For example, with hosts in two priorities P0 and P1, where P0 looks like
  2195  	// {healthy, unhealthy (new), unhealthy (new)}
  2196  	// and where P1 looks like
  2197  	// {healthy, healthy}
  2198  	// all traffic will still hit P0, as 1 / (3 - 2) = 1.
  2199  	//
  2200  	// Enabling this will allow scaling up the number of hosts for a given cluster without entering
  2201  	// panic mode or triggering priority spillover, assuming the hosts pass the first health check.
  2202  	//
  2203  	// If panic mode is triggered, new hosts are still eligible for traffic; they simply do not
  2204  	// contribute to the calculation when deciding whether panic mode is enabled or not.
  2205  	IgnoreNewHostsUntilFirstHc bool `protobuf:"varint,5,opt,name=ignore_new_hosts_until_first_hc,json=ignoreNewHostsUntilFirstHc,proto3" json:"ignore_new_hosts_until_first_hc,omitempty"`
  2206  	// If set to `true`, the cluster manager will drain all existing
  2207  	// connections to upstream hosts whenever hosts are added or removed from the cluster.
  2208  	CloseConnectionsOnHostSetChange bool `protobuf:"varint,6,opt,name=close_connections_on_host_set_change,json=closeConnectionsOnHostSetChange,proto3" json:"close_connections_on_host_set_change,omitempty"`
  2209  	// Common Configuration for all consistent hashing load balancers (MaglevLb, RingHashLb, etc.)
  2210  	ConsistentHashingLbConfig *Cluster_CommonLbConfig_ConsistentHashingLbConfig `protobuf:"bytes,7,opt,name=consistent_hashing_lb_config,json=consistentHashingLbConfig,proto3" json:"consistent_hashing_lb_config,omitempty"`
  2211  }
  2212  
  2213  func (x *Cluster_CommonLbConfig) Reset() {
  2214  	*x = Cluster_CommonLbConfig{}
  2215  	if protoimpl.UnsafeEnabled {
  2216  		mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[14]
  2217  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2218  		ms.StoreMessageInfo(mi)
  2219  	}
  2220  }
  2221  
  2222  func (x *Cluster_CommonLbConfig) String() string {
  2223  	return protoimpl.X.MessageStringOf(x)
  2224  }
  2225  
  2226  func (*Cluster_CommonLbConfig) ProtoMessage() {}
  2227  
  2228  func (x *Cluster_CommonLbConfig) ProtoReflect() protoreflect.Message {
  2229  	mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[14]
  2230  	if protoimpl.UnsafeEnabled && x != nil {
  2231  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2232  		if ms.LoadMessageInfo() == nil {
  2233  			ms.StoreMessageInfo(mi)
  2234  		}
  2235  		return ms
  2236  	}
  2237  	return mi.MessageOf(x)
  2238  }
  2239  
  2240  // Deprecated: Use Cluster_CommonLbConfig.ProtoReflect.Descriptor instead.
  2241  func (*Cluster_CommonLbConfig) Descriptor() ([]byte, []int) {
  2242  	return file_envoy_config_cluster_v4alpha_cluster_proto_rawDescGZIP(), []int{1, 8}
  2243  }
  2244  
  2245  func (x *Cluster_CommonLbConfig) GetHealthyPanicThreshold() *v32.Percent {
  2246  	if x != nil {
  2247  		return x.HealthyPanicThreshold
  2248  	}
  2249  	return nil
  2250  }
  2251  
  2252  func (m *Cluster_CommonLbConfig) GetLocalityConfigSpecifier() isCluster_CommonLbConfig_LocalityConfigSpecifier {
  2253  	if m != nil {
  2254  		return m.LocalityConfigSpecifier
  2255  	}
  2256  	return nil
  2257  }
  2258  
  2259  func (x *Cluster_CommonLbConfig) GetZoneAwareLbConfig() *Cluster_CommonLbConfig_ZoneAwareLbConfig {
  2260  	if x, ok := x.GetLocalityConfigSpecifier().(*Cluster_CommonLbConfig_ZoneAwareLbConfig_); ok {
  2261  		return x.ZoneAwareLbConfig
  2262  	}
  2263  	return nil
  2264  }
  2265  
  2266  func (x *Cluster_CommonLbConfig) GetLocalityWeightedLbConfig() *Cluster_CommonLbConfig_LocalityWeightedLbConfig {
  2267  	if x, ok := x.GetLocalityConfigSpecifier().(*Cluster_CommonLbConfig_LocalityWeightedLbConfig_); ok {
  2268  		return x.LocalityWeightedLbConfig
  2269  	}
  2270  	return nil
  2271  }
  2272  
  2273  func (x *Cluster_CommonLbConfig) GetUpdateMergeWindow() *duration.Duration {
  2274  	if x != nil {
  2275  		return x.UpdateMergeWindow
  2276  	}
  2277  	return nil
  2278  }
  2279  
  2280  func (x *Cluster_CommonLbConfig) GetIgnoreNewHostsUntilFirstHc() bool {
  2281  	if x != nil {
  2282  		return x.IgnoreNewHostsUntilFirstHc
  2283  	}
  2284  	return false
  2285  }
  2286  
  2287  func (x *Cluster_CommonLbConfig) GetCloseConnectionsOnHostSetChange() bool {
  2288  	if x != nil {
  2289  		return x.CloseConnectionsOnHostSetChange
  2290  	}
  2291  	return false
  2292  }
  2293  
  2294  func (x *Cluster_CommonLbConfig) GetConsistentHashingLbConfig() *Cluster_CommonLbConfig_ConsistentHashingLbConfig {
  2295  	if x != nil {
  2296  		return x.ConsistentHashingLbConfig
  2297  	}
  2298  	return nil
  2299  }
  2300  
  2301  type isCluster_CommonLbConfig_LocalityConfigSpecifier interface {
  2302  	isCluster_CommonLbConfig_LocalityConfigSpecifier()
  2303  }
  2304  
  2305  type Cluster_CommonLbConfig_ZoneAwareLbConfig_ struct {
  2306  	ZoneAwareLbConfig *Cluster_CommonLbConfig_ZoneAwareLbConfig `protobuf:"bytes,2,opt,name=zone_aware_lb_config,json=zoneAwareLbConfig,proto3,oneof"`
  2307  }
  2308  
  2309  type Cluster_CommonLbConfig_LocalityWeightedLbConfig_ struct {
  2310  	LocalityWeightedLbConfig *Cluster_CommonLbConfig_LocalityWeightedLbConfig `protobuf:"bytes,3,opt,name=locality_weighted_lb_config,json=localityWeightedLbConfig,proto3,oneof"`
  2311  }
  2312  
  2313  func (*Cluster_CommonLbConfig_ZoneAwareLbConfig_) isCluster_CommonLbConfig_LocalityConfigSpecifier() {
  2314  }
  2315  
  2316  func (*Cluster_CommonLbConfig_LocalityWeightedLbConfig_) isCluster_CommonLbConfig_LocalityConfigSpecifier() {
  2317  }
  2318  
  2319  type Cluster_RefreshRate struct {
  2320  	state         protoimpl.MessageState
  2321  	sizeCache     protoimpl.SizeCache
  2322  	unknownFields protoimpl.UnknownFields
  2323  
  2324  	// Specifies the base interval between refreshes. This parameter is required and must be greater
  2325  	// than zero and less than
  2326  	// :ref:`max_interval <envoy_api_field_config.cluster.v4alpha.Cluster.RefreshRate.max_interval>`.
  2327  	BaseInterval *duration.Duration `protobuf:"bytes,1,opt,name=base_interval,json=baseInterval,proto3" json:"base_interval,omitempty"`
  2328  	// Specifies the maximum interval between refreshes. This parameter is optional, but must be
  2329  	// greater than or equal to the
  2330  	// :ref:`base_interval <envoy_api_field_config.cluster.v4alpha.Cluster.RefreshRate.base_interval>`  if set. The default
  2331  	// is 10 times the :ref:`base_interval <envoy_api_field_config.cluster.v4alpha.Cluster.RefreshRate.base_interval>`.
  2332  	MaxInterval *duration.Duration `protobuf:"bytes,2,opt,name=max_interval,json=maxInterval,proto3" json:"max_interval,omitempty"`
  2333  }
  2334  
  2335  func (x *Cluster_RefreshRate) Reset() {
  2336  	*x = Cluster_RefreshRate{}
  2337  	if protoimpl.UnsafeEnabled {
  2338  		mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[15]
  2339  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2340  		ms.StoreMessageInfo(mi)
  2341  	}
  2342  }
  2343  
  2344  func (x *Cluster_RefreshRate) String() string {
  2345  	return protoimpl.X.MessageStringOf(x)
  2346  }
  2347  
  2348  func (*Cluster_RefreshRate) ProtoMessage() {}
  2349  
  2350  func (x *Cluster_RefreshRate) ProtoReflect() protoreflect.Message {
  2351  	mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[15]
  2352  	if protoimpl.UnsafeEnabled && x != nil {
  2353  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2354  		if ms.LoadMessageInfo() == nil {
  2355  			ms.StoreMessageInfo(mi)
  2356  		}
  2357  		return ms
  2358  	}
  2359  	return mi.MessageOf(x)
  2360  }
  2361  
  2362  // Deprecated: Use Cluster_RefreshRate.ProtoReflect.Descriptor instead.
  2363  func (*Cluster_RefreshRate) Descriptor() ([]byte, []int) {
  2364  	return file_envoy_config_cluster_v4alpha_cluster_proto_rawDescGZIP(), []int{1, 9}
  2365  }
  2366  
  2367  func (x *Cluster_RefreshRate) GetBaseInterval() *duration.Duration {
  2368  	if x != nil {
  2369  		return x.BaseInterval
  2370  	}
  2371  	return nil
  2372  }
  2373  
  2374  func (x *Cluster_RefreshRate) GetMaxInterval() *duration.Duration {
  2375  	if x != nil {
  2376  		return x.MaxInterval
  2377  	}
  2378  	return nil
  2379  }
  2380  
  2381  // [#not-implemented-hide:]
  2382  type Cluster_PreconnectPolicy struct {
  2383  	state         protoimpl.MessageState
  2384  	sizeCache     protoimpl.SizeCache
  2385  	unknownFields protoimpl.UnknownFields
  2386  
  2387  	// Indicates how many streams (rounded up) can be anticipated per-upstream for each
  2388  	// incoming stream. This is useful for high-QPS or latency-sensitive services. Preconnecting
  2389  	// will only be done if the upstream is healthy.
  2390  	//
  2391  	// For example if this is 2, for an incoming HTTP/1.1 stream, 2 connections will be
  2392  	// established, one for the new incoming stream, and one for a presumed follow-up stream. For
  2393  	// HTTP/2, only one connection would be established by default as one connection can
  2394  	// serve both the original and presumed follow-up stream.
  2395  	//
  2396  	// In steady state for non-multiplexed connections a value of 1.5 would mean if there were 100
  2397  	// active streams, there would be 100 connections in use, and 50 connections preconnected.
  2398  	// This might be a useful value for something like short lived single-use connections,
  2399  	// for example proxying HTTP/1.1 if keep-alive were false and each stream resulted in connection
  2400  	// termination. It would likely be overkill for long lived connections, such as TCP proxying SMTP
  2401  	// or regular HTTP/1.1 with keep-alive. For long lived traffic, a value of 1.05 would be more
  2402  	// reasonable, where for every 100 connections, 5 preconnected connections would be in the queue
  2403  	// in case of unexpected disconnects where the connection could not be reused.
  2404  	//
  2405  	// If this value is not set, or set explicitly to one, Envoy will fetch as many connections
  2406  	// as needed to serve streams in flight. This means in steady state if a connection is torn down,
  2407  	// a subsequent streams will pay an upstream-rtt latency penalty waiting for streams to be
  2408  	// preconnected.
  2409  	//
  2410  	// This is limited somewhat arbitrarily to 3 because preconnecting too aggressively can
  2411  	// harm latency more than the preconnecting helps.
  2412  	PerUpstreamPreconnectRatio *wrappers.DoubleValue `protobuf:"bytes,1,opt,name=per_upstream_preconnect_ratio,json=perUpstreamPreconnectRatio,proto3" json:"per_upstream_preconnect_ratio,omitempty"`
  2413  	// Indicates how many many streams (rounded up) can be anticipated across a cluster for each
  2414  	// stream, useful for low QPS services. This is currently supported for a subset of
  2415  	// deterministic non-hash-based load-balancing algorithms (weighted round robin, random).
  2416  	// Unlike per_upstream_preconnect_ratio this preconnects across the upstream instances in a
  2417  	// cluster, doing best effort predictions of what upstream would be picked next and
  2418  	// pre-establishing a connection.
  2419  	//
  2420  	// For example if preconnecting is set to 2 for a round robin HTTP/2 cluster, on the first
  2421  	// incoming stream, 2 connections will be preconnected - one to the first upstream for this
  2422  	// cluster, one to the second on the assumption there will be a follow-up stream.
  2423  	//
  2424  	// Preconnecting will be limited to one preconnect per configured upstream in the cluster.
  2425  	//
  2426  	// If this value is not set, or set explicitly to one, Envoy will fetch as many connections
  2427  	// as needed to serve streams in flight, so during warm up and in steady state if a connection
  2428  	// is closed (and per_upstream_preconnect_ratio is not set), there will be a latency hit for
  2429  	// connection establishment.
  2430  	//
  2431  	// If both this and preconnect_ratio are set, Envoy will make sure both predicted needs are met,
  2432  	// basically preconnecting max(predictive-preconnect, per-upstream-preconnect), for each upstream.
  2433  	// TODO(alyssawilk) per LB docs and LB overview docs when unhiding.
  2434  	PredictivePreconnectRatio *wrappers.DoubleValue `protobuf:"bytes,2,opt,name=predictive_preconnect_ratio,json=predictivePreconnectRatio,proto3" json:"predictive_preconnect_ratio,omitempty"`
  2435  }
  2436  
  2437  func (x *Cluster_PreconnectPolicy) Reset() {
  2438  	*x = Cluster_PreconnectPolicy{}
  2439  	if protoimpl.UnsafeEnabled {
  2440  		mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[16]
  2441  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2442  		ms.StoreMessageInfo(mi)
  2443  	}
  2444  }
  2445  
  2446  func (x *Cluster_PreconnectPolicy) String() string {
  2447  	return protoimpl.X.MessageStringOf(x)
  2448  }
  2449  
  2450  func (*Cluster_PreconnectPolicy) ProtoMessage() {}
  2451  
  2452  func (x *Cluster_PreconnectPolicy) ProtoReflect() protoreflect.Message {
  2453  	mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[16]
  2454  	if protoimpl.UnsafeEnabled && x != nil {
  2455  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2456  		if ms.LoadMessageInfo() == nil {
  2457  			ms.StoreMessageInfo(mi)
  2458  		}
  2459  		return ms
  2460  	}
  2461  	return mi.MessageOf(x)
  2462  }
  2463  
  2464  // Deprecated: Use Cluster_PreconnectPolicy.ProtoReflect.Descriptor instead.
  2465  func (*Cluster_PreconnectPolicy) Descriptor() ([]byte, []int) {
  2466  	return file_envoy_config_cluster_v4alpha_cluster_proto_rawDescGZIP(), []int{1, 10}
  2467  }
  2468  
  2469  func (x *Cluster_PreconnectPolicy) GetPerUpstreamPreconnectRatio() *wrappers.DoubleValue {
  2470  	if x != nil {
  2471  		return x.PerUpstreamPreconnectRatio
  2472  	}
  2473  	return nil
  2474  }
  2475  
  2476  func (x *Cluster_PreconnectPolicy) GetPredictivePreconnectRatio() *wrappers.DoubleValue {
  2477  	if x != nil {
  2478  		return x.PredictivePreconnectRatio
  2479  	}
  2480  	return nil
  2481  }
  2482  
  2483  // Specifications for subsets.
  2484  type Cluster_LbSubsetConfig_LbSubsetSelector struct {
  2485  	state         protoimpl.MessageState
  2486  	sizeCache     protoimpl.SizeCache
  2487  	unknownFields protoimpl.UnknownFields
  2488  
  2489  	// List of keys to match with the weighted cluster metadata.
  2490  	Keys []string `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"`
  2491  	// Selects a mode of operation in which each subset has only one host. This mode uses the same rules for
  2492  	// choosing a host, but updating hosts is faster, especially for large numbers of hosts.
  2493  	//
  2494  	// If a match is found to a host, that host will be used regardless of priority levels, unless the host is unhealthy.
  2495  	//
  2496  	// Currently, this mode is only supported if `subset_selectors` has only one entry, and `keys` contains
  2497  	// only one entry.
  2498  	//
  2499  	// When this mode is enabled, configurations that contain more than one host with the same metadata value for the single key in `keys`
  2500  	// will use only one of the hosts with the given key; no requests will be routed to the others. The cluster gauge
  2501  	// :ref:`lb_subsets_single_host_per_subset_duplicate<config_cluster_manager_cluster_stats_subset_lb>` indicates how many duplicates are
  2502  	// present in the current configuration.
  2503  	SingleHostPerSubset bool `protobuf:"varint,4,opt,name=single_host_per_subset,json=singleHostPerSubset,proto3" json:"single_host_per_subset,omitempty"`
  2504  	// The behavior used when no endpoint subset matches the selected route's
  2505  	// metadata.
  2506  	FallbackPolicy Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy `protobuf:"varint,2,opt,name=fallback_policy,json=fallbackPolicy,proto3,enum=envoy.config.cluster.v4alpha.Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy" json:"fallback_policy,omitempty"`
  2507  	// Subset of
  2508  	// :ref:`keys<envoy_api_field_config.cluster.v4alpha.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` used by
  2509  	// :ref:`KEYS_SUBSET<envoy_api_enum_value_config.cluster.v4alpha.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy.KEYS_SUBSET>`
  2510  	// fallback policy.
  2511  	// It has to be a non empty list if KEYS_SUBSET fallback policy is selected.
  2512  	// For any other fallback policy the parameter is not used and should not be set.
  2513  	// Only values also present in
  2514  	// :ref:`keys<envoy_api_field_config.cluster.v4alpha.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` are allowed, but
  2515  	// `fallback_keys_subset` cannot be equal to `keys`.
  2516  	FallbackKeysSubset []string `protobuf:"bytes,3,rep,name=fallback_keys_subset,json=fallbackKeysSubset,proto3" json:"fallback_keys_subset,omitempty"`
  2517  }
  2518  
  2519  func (x *Cluster_LbSubsetConfig_LbSubsetSelector) Reset() {
  2520  	*x = Cluster_LbSubsetConfig_LbSubsetSelector{}
  2521  	if protoimpl.UnsafeEnabled {
  2522  		mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[18]
  2523  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2524  		ms.StoreMessageInfo(mi)
  2525  	}
  2526  }
  2527  
  2528  func (x *Cluster_LbSubsetConfig_LbSubsetSelector) String() string {
  2529  	return protoimpl.X.MessageStringOf(x)
  2530  }
  2531  
  2532  func (*Cluster_LbSubsetConfig_LbSubsetSelector) ProtoMessage() {}
  2533  
  2534  func (x *Cluster_LbSubsetConfig_LbSubsetSelector) ProtoReflect() protoreflect.Message {
  2535  	mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[18]
  2536  	if protoimpl.UnsafeEnabled && x != nil {
  2537  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2538  		if ms.LoadMessageInfo() == nil {
  2539  			ms.StoreMessageInfo(mi)
  2540  		}
  2541  		return ms
  2542  	}
  2543  	return mi.MessageOf(x)
  2544  }
  2545  
  2546  // Deprecated: Use Cluster_LbSubsetConfig_LbSubsetSelector.ProtoReflect.Descriptor instead.
  2547  func (*Cluster_LbSubsetConfig_LbSubsetSelector) Descriptor() ([]byte, []int) {
  2548  	return file_envoy_config_cluster_v4alpha_cluster_proto_rawDescGZIP(), []int{1, 3, 0}
  2549  }
  2550  
  2551  func (x *Cluster_LbSubsetConfig_LbSubsetSelector) GetKeys() []string {
  2552  	if x != nil {
  2553  		return x.Keys
  2554  	}
  2555  	return nil
  2556  }
  2557  
  2558  func (x *Cluster_LbSubsetConfig_LbSubsetSelector) GetSingleHostPerSubset() bool {
  2559  	if x != nil {
  2560  		return x.SingleHostPerSubset
  2561  	}
  2562  	return false
  2563  }
  2564  
  2565  func (x *Cluster_LbSubsetConfig_LbSubsetSelector) GetFallbackPolicy() Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy {
  2566  	if x != nil {
  2567  		return x.FallbackPolicy
  2568  	}
  2569  	return Cluster_LbSubsetConfig_LbSubsetSelector_NOT_DEFINED
  2570  }
  2571  
  2572  func (x *Cluster_LbSubsetConfig_LbSubsetSelector) GetFallbackKeysSubset() []string {
  2573  	if x != nil {
  2574  		return x.FallbackKeysSubset
  2575  	}
  2576  	return nil
  2577  }
  2578  
  2579  // Configuration for :ref:`zone aware routing
  2580  // <arch_overview_load_balancing_zone_aware_routing>`.
  2581  type Cluster_CommonLbConfig_ZoneAwareLbConfig struct {
  2582  	state         protoimpl.MessageState
  2583  	sizeCache     protoimpl.SizeCache
  2584  	unknownFields protoimpl.UnknownFields
  2585  
  2586  	// Configures percentage of requests that will be considered for zone aware routing
  2587  	// if zone aware routing is configured. If not specified, the default is 100%.
  2588  	// * :ref:`runtime values <config_cluster_manager_cluster_runtime_zone_routing>`.
  2589  	// * :ref:`Zone aware routing support <arch_overview_load_balancing_zone_aware_routing>`.
  2590  	RoutingEnabled *v32.Percent `protobuf:"bytes,1,opt,name=routing_enabled,json=routingEnabled,proto3" json:"routing_enabled,omitempty"`
  2591  	// Configures minimum upstream cluster size required for zone aware routing
  2592  	// If upstream cluster size is less than specified, zone aware routing is not performed
  2593  	// even if zone aware routing is configured. If not specified, the default is 6.
  2594  	// * :ref:`runtime values <config_cluster_manager_cluster_runtime_zone_routing>`.
  2595  	// * :ref:`Zone aware routing support <arch_overview_load_balancing_zone_aware_routing>`.
  2596  	MinClusterSize *wrappers.UInt64Value `protobuf:"bytes,2,opt,name=min_cluster_size,json=minClusterSize,proto3" json:"min_cluster_size,omitempty"`
  2597  	// If set to true, Envoy will not consider any hosts when the cluster is in :ref:`panic
  2598  	// mode<arch_overview_load_balancing_panic_threshold>`. Instead, the cluster will fail all
  2599  	// requests as if all hosts are unhealthy. This can help avoid potentially overwhelming a
  2600  	// failing service.
  2601  	FailTrafficOnPanic bool `protobuf:"varint,3,opt,name=fail_traffic_on_panic,json=failTrafficOnPanic,proto3" json:"fail_traffic_on_panic,omitempty"`
  2602  }
  2603  
  2604  func (x *Cluster_CommonLbConfig_ZoneAwareLbConfig) Reset() {
  2605  	*x = Cluster_CommonLbConfig_ZoneAwareLbConfig{}
  2606  	if protoimpl.UnsafeEnabled {
  2607  		mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[19]
  2608  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2609  		ms.StoreMessageInfo(mi)
  2610  	}
  2611  }
  2612  
  2613  func (x *Cluster_CommonLbConfig_ZoneAwareLbConfig) String() string {
  2614  	return protoimpl.X.MessageStringOf(x)
  2615  }
  2616  
  2617  func (*Cluster_CommonLbConfig_ZoneAwareLbConfig) ProtoMessage() {}
  2618  
  2619  func (x *Cluster_CommonLbConfig_ZoneAwareLbConfig) ProtoReflect() protoreflect.Message {
  2620  	mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[19]
  2621  	if protoimpl.UnsafeEnabled && x != nil {
  2622  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2623  		if ms.LoadMessageInfo() == nil {
  2624  			ms.StoreMessageInfo(mi)
  2625  		}
  2626  		return ms
  2627  	}
  2628  	return mi.MessageOf(x)
  2629  }
  2630  
  2631  // Deprecated: Use Cluster_CommonLbConfig_ZoneAwareLbConfig.ProtoReflect.Descriptor instead.
  2632  func (*Cluster_CommonLbConfig_ZoneAwareLbConfig) Descriptor() ([]byte, []int) {
  2633  	return file_envoy_config_cluster_v4alpha_cluster_proto_rawDescGZIP(), []int{1, 8, 0}
  2634  }
  2635  
  2636  func (x *Cluster_CommonLbConfig_ZoneAwareLbConfig) GetRoutingEnabled() *v32.Percent {
  2637  	if x != nil {
  2638  		return x.RoutingEnabled
  2639  	}
  2640  	return nil
  2641  }
  2642  
  2643  func (x *Cluster_CommonLbConfig_ZoneAwareLbConfig) GetMinClusterSize() *wrappers.UInt64Value {
  2644  	if x != nil {
  2645  		return x.MinClusterSize
  2646  	}
  2647  	return nil
  2648  }
  2649  
  2650  func (x *Cluster_CommonLbConfig_ZoneAwareLbConfig) GetFailTrafficOnPanic() bool {
  2651  	if x != nil {
  2652  		return x.FailTrafficOnPanic
  2653  	}
  2654  	return false
  2655  }
  2656  
  2657  // Configuration for :ref:`locality weighted load balancing
  2658  // <arch_overview_load_balancing_locality_weighted_lb>`
  2659  type Cluster_CommonLbConfig_LocalityWeightedLbConfig struct {
  2660  	state         protoimpl.MessageState
  2661  	sizeCache     protoimpl.SizeCache
  2662  	unknownFields protoimpl.UnknownFields
  2663  }
  2664  
  2665  func (x *Cluster_CommonLbConfig_LocalityWeightedLbConfig) Reset() {
  2666  	*x = Cluster_CommonLbConfig_LocalityWeightedLbConfig{}
  2667  	if protoimpl.UnsafeEnabled {
  2668  		mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[20]
  2669  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2670  		ms.StoreMessageInfo(mi)
  2671  	}
  2672  }
  2673  
  2674  func (x *Cluster_CommonLbConfig_LocalityWeightedLbConfig) String() string {
  2675  	return protoimpl.X.MessageStringOf(x)
  2676  }
  2677  
  2678  func (*Cluster_CommonLbConfig_LocalityWeightedLbConfig) ProtoMessage() {}
  2679  
  2680  func (x *Cluster_CommonLbConfig_LocalityWeightedLbConfig) ProtoReflect() protoreflect.Message {
  2681  	mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[20]
  2682  	if protoimpl.UnsafeEnabled && x != nil {
  2683  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2684  		if ms.LoadMessageInfo() == nil {
  2685  			ms.StoreMessageInfo(mi)
  2686  		}
  2687  		return ms
  2688  	}
  2689  	return mi.MessageOf(x)
  2690  }
  2691  
  2692  // Deprecated: Use Cluster_CommonLbConfig_LocalityWeightedLbConfig.ProtoReflect.Descriptor instead.
  2693  func (*Cluster_CommonLbConfig_LocalityWeightedLbConfig) Descriptor() ([]byte, []int) {
  2694  	return file_envoy_config_cluster_v4alpha_cluster_proto_rawDescGZIP(), []int{1, 8, 1}
  2695  }
  2696  
  2697  // Common Configuration for all consistent hashing load balancers (MaglevLb, RingHashLb, etc.)
  2698  type Cluster_CommonLbConfig_ConsistentHashingLbConfig struct {
  2699  	state         protoimpl.MessageState
  2700  	sizeCache     protoimpl.SizeCache
  2701  	unknownFields protoimpl.UnknownFields
  2702  
  2703  	// If set to `true`, the cluster will use hostname instead of the resolved
  2704  	// address as the key to consistently hash to an upstream host. Only valid for StrictDNS clusters with hostnames which resolve to a single IP address.
  2705  	UseHostnameForHashing bool `protobuf:"varint,1,opt,name=use_hostname_for_hashing,json=useHostnameForHashing,proto3" json:"use_hostname_for_hashing,omitempty"`
  2706  	// Configures percentage of average cluster load to bound per upstream host. For example, with a value of 150
  2707  	// no upstream host will get a load more than 1.5 times the average load of all the hosts in the cluster.
  2708  	// If not specified, the load is not bounded for any upstream host. Typical value for this parameter is between 120 and 200.
  2709  	// Minimum is 100.
  2710  	//
  2711  	// Applies to both Ring Hash and Maglev load balancers.
  2712  	//
  2713  	// This is implemented based on the method described in the paper https://arxiv.org/abs/1608.01350. For the specified
  2714  	// `hash_balance_factor`, requests to any upstream host are capped at `hash_balance_factor/100` times the average number of requests
  2715  	// across the cluster. When a request arrives for an upstream host that is currently serving at its max capacity, linear probing
  2716  	// is used to identify an eligible host. Further, the linear probe is implemented using a random jump in hosts ring/table to identify
  2717  	// the eligible host (this technique is as described in the paper https://arxiv.org/abs/1908.08762 - the random jump avoids the
  2718  	// cascading overflow effect when choosing the next host in the ring/table).
  2719  	//
  2720  	// If weights are specified on the hosts, they are respected.
  2721  	//
  2722  	// This is an O(N) algorithm, unlike other load balancers. Using a lower `hash_balance_factor` results in more hosts
  2723  	// being probed, so use a higher value if you require better performance.
  2724  	HashBalanceFactor *wrappers.UInt32Value `protobuf:"bytes,2,opt,name=hash_balance_factor,json=hashBalanceFactor,proto3" json:"hash_balance_factor,omitempty"`
  2725  }
  2726  
  2727  func (x *Cluster_CommonLbConfig_ConsistentHashingLbConfig) Reset() {
  2728  	*x = Cluster_CommonLbConfig_ConsistentHashingLbConfig{}
  2729  	if protoimpl.UnsafeEnabled {
  2730  		mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[21]
  2731  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2732  		ms.StoreMessageInfo(mi)
  2733  	}
  2734  }
  2735  
  2736  func (x *Cluster_CommonLbConfig_ConsistentHashingLbConfig) String() string {
  2737  	return protoimpl.X.MessageStringOf(x)
  2738  }
  2739  
  2740  func (*Cluster_CommonLbConfig_ConsistentHashingLbConfig) ProtoMessage() {}
  2741  
  2742  func (x *Cluster_CommonLbConfig_ConsistentHashingLbConfig) ProtoReflect() protoreflect.Message {
  2743  	mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[21]
  2744  	if protoimpl.UnsafeEnabled && x != nil {
  2745  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2746  		if ms.LoadMessageInfo() == nil {
  2747  			ms.StoreMessageInfo(mi)
  2748  		}
  2749  		return ms
  2750  	}
  2751  	return mi.MessageOf(x)
  2752  }
  2753  
  2754  // Deprecated: Use Cluster_CommonLbConfig_ConsistentHashingLbConfig.ProtoReflect.Descriptor instead.
  2755  func (*Cluster_CommonLbConfig_ConsistentHashingLbConfig) Descriptor() ([]byte, []int) {
  2756  	return file_envoy_config_cluster_v4alpha_cluster_proto_rawDescGZIP(), []int{1, 8, 2}
  2757  }
  2758  
  2759  func (x *Cluster_CommonLbConfig_ConsistentHashingLbConfig) GetUseHostnameForHashing() bool {
  2760  	if x != nil {
  2761  		return x.UseHostnameForHashing
  2762  	}
  2763  	return false
  2764  }
  2765  
  2766  func (x *Cluster_CommonLbConfig_ConsistentHashingLbConfig) GetHashBalanceFactor() *wrappers.UInt32Value {
  2767  	if x != nil {
  2768  		return x.HashBalanceFactor
  2769  	}
  2770  	return nil
  2771  }
  2772  
  2773  type LoadBalancingPolicy_Policy struct {
  2774  	state         protoimpl.MessageState
  2775  	sizeCache     protoimpl.SizeCache
  2776  	unknownFields protoimpl.UnknownFields
  2777  
  2778  	// Required. The name of the LB policy.
  2779  	Name        string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
  2780  	TypedConfig *any.Any `protobuf:"bytes,3,opt,name=typed_config,json=typedConfig,proto3" json:"typed_config,omitempty"`
  2781  }
  2782  
  2783  func (x *LoadBalancingPolicy_Policy) Reset() {
  2784  	*x = LoadBalancingPolicy_Policy{}
  2785  	if protoimpl.UnsafeEnabled {
  2786  		mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[22]
  2787  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2788  		ms.StoreMessageInfo(mi)
  2789  	}
  2790  }
  2791  
  2792  func (x *LoadBalancingPolicy_Policy) String() string {
  2793  	return protoimpl.X.MessageStringOf(x)
  2794  }
  2795  
  2796  func (*LoadBalancingPolicy_Policy) ProtoMessage() {}
  2797  
  2798  func (x *LoadBalancingPolicy_Policy) ProtoReflect() protoreflect.Message {
  2799  	mi := &file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[22]
  2800  	if protoimpl.UnsafeEnabled && x != nil {
  2801  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2802  		if ms.LoadMessageInfo() == nil {
  2803  			ms.StoreMessageInfo(mi)
  2804  		}
  2805  		return ms
  2806  	}
  2807  	return mi.MessageOf(x)
  2808  }
  2809  
  2810  // Deprecated: Use LoadBalancingPolicy_Policy.ProtoReflect.Descriptor instead.
  2811  func (*LoadBalancingPolicy_Policy) Descriptor() ([]byte, []int) {
  2812  	return file_envoy_config_cluster_v4alpha_cluster_proto_rawDescGZIP(), []int{2, 0}
  2813  }
  2814  
  2815  func (x *LoadBalancingPolicy_Policy) GetName() string {
  2816  	if x != nil {
  2817  		return x.Name
  2818  	}
  2819  	return ""
  2820  }
  2821  
  2822  func (x *LoadBalancingPolicy_Policy) GetTypedConfig() *any.Any {
  2823  	if x != nil {
  2824  		return x.TypedConfig
  2825  	}
  2826  	return nil
  2827  }
  2828  
  2829  var File_envoy_config_cluster_v4alpha_cluster_proto protoreflect.FileDescriptor
  2830  
  2831  var file_envoy_config_cluster_v4alpha_cluster_proto_rawDesc = []byte{
  2832  	0x0a, 0x2a, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x63,
  2833  	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2f, 0x76, 0x34, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x63,
  2834  	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1c, 0x65, 0x6e,
  2835  	0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74,
  2836  	0x65, 0x72, 0x2e, 0x76, 0x34, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x1a, 0x32, 0x65, 0x6e, 0x76, 0x6f,
  2837  	0x79, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
  2838  	0x2f, 0x76, 0x34, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x63, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74,
  2839  	0x5f, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29,
  2840  	0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x63, 0x6c, 0x75,
  2841  	0x73, 0x74, 0x65, 0x72, 0x2f, 0x76, 0x34, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x66, 0x69, 0x6c,
  2842  	0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x34, 0x65, 0x6e, 0x76, 0x6f, 0x79,
  2843  	0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2f,
  2844  	0x76, 0x34, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x6f, 0x75, 0x74, 0x6c, 0x69, 0x65, 0x72, 0x5f,
  2845  	0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
  2846  	0x27, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x63, 0x6f,
  2847  	0x72, 0x65, 0x2f, 0x76, 0x34, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x61, 0x64, 0x64, 0x72, 0x65,
  2848  	0x73, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f,
  2849  	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x34, 0x61, 0x6c,
  2850  	0x70, 0x68, 0x61, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2d,
  2851  	0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x63, 0x6f, 0x72,
  2852  	0x65, 0x2f, 0x76, 0x34, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  2853  	0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x65,
  2854  	0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x63, 0x6f, 0x72, 0x65,
  2855  	0x2f, 0x76, 0x34, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
  2856  	0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2c, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f,
  2857  	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x34, 0x61, 0x6c,
  2858  	0x70, 0x68, 0x61, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b,
  2859  	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x28, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x63, 0x6f,
  2860  	0x6e, 0x66, 0x69, 0x67, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x34, 0x61, 0x6c, 0x70, 0x68,
  2861  	0x61, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
  2862  	0x1a, 0x27, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x65,
  2863  	0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2f, 0x76, 0x33, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f,
  2864  	0x69, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x65, 0x6e, 0x76, 0x6f, 0x79,
  2865  	0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x76, 0x33, 0x2f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74,
  2866  	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70,
  2867  	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74,
  2868  	0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
  2869  	0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74,
  2870  	0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
  2871  	0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
  2872  	0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
  2873  	0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
  2874  	0x22, 0x78, 0x64, 0x73, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x33, 0x2f, 0x63, 0x6f, 0x6c,
  2875  	0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x70, 0x72,
  2876  	0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74,
  2877  	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x69,
  2878  	0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x75, 0x64, 0x70, 0x61, 0x2f, 0x61,
  2879  	0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x73, 0x65, 0x63, 0x75, 0x72,
  2880  	0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x75, 0x64, 0x70, 0x61, 0x2f,
  2881  	0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74,
  2882  	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x75, 0x64, 0x70, 0x61, 0x2f, 0x61,
  2883  	0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69,
  2884  	0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x76, 0x61, 0x6c,
  2885  	0x69, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70,
  2886  	0x72, 0x6f, 0x74, 0x6f, 0x22, 0x7d, 0x0a, 0x11, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43,
  2887  	0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x07, 0x65, 0x6e, 0x74,
  2888  	0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x64, 0x73,
  2889  	0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74,
  2890  	0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65,
  2891  	0x73, 0x3a, 0x30, 0x9a, 0xc5, 0x88, 0x1e, 0x2b, 0x0a, 0x29, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e,
  2892  	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x76,
  2893  	0x33, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74,
  2894  	0x69, 0x6f, 0x6e, 0x22, 0x9b, 0x4d, 0x0a, 0x07, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12,
  2895  	0x74, 0x0a, 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x6f, 0x63,
  2896  	0x6b, 0x65, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, 0x2b, 0x20, 0x03, 0x28,
  2897  	0x0b, 0x32, 0x3a, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  2898  	0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x76, 0x34, 0x61, 0x6c, 0x70, 0x68, 0x61,
  2899  	0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f,
  2900  	0x72, 0x74, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x16, 0x74,
  2901  	0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x4d, 0x61,
  2902  	0x74, 0x63, 0x68, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
  2903  	0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x6e, 0x61,
  2904  	0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x61, 0x6c, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x6e,
  2905  	0x61, 0x6d, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x6c, 0x74, 0x53, 0x74,
  2906  	0x61, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x53, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02,
  2907  	0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e,
  2908  	0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x76, 0x34, 0x61, 0x6c,
  2909  	0x70, 0x68, 0x61, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x44, 0x69, 0x73, 0x63,
  2910  	0x6f, 0x76, 0x65, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x82, 0x01,
  2911  	0x02, 0x10, 0x01, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x5c, 0x0a, 0x0c, 0x63,
  2912  	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x26, 0x20, 0x01, 0x28,
  2913  	0x0b, 0x32, 0x37, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  2914  	0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x76, 0x34, 0x61, 0x6c, 0x70, 0x68, 0x61,
  2915  	0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43,
  2916  	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x63, 0x6c,
  2917  	0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x64, 0x0a, 0x12, 0x65, 0x64, 0x73,
  2918  	0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18,
  2919  	0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f,
  2920  	0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x76, 0x34, 0x61,
  2921  	0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x45, 0x64, 0x73,
  2922  	0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x10, 0x65,
  2923  	0x64, 0x73, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12,
  2924  	0x4c, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f,
  2925  	0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  2926  	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74,
  2927  	0x69, 0x6f, 0x6e, 0x42, 0x08, 0xfa, 0x42, 0x05, 0xaa, 0x01, 0x02, 0x2a, 0x00, 0x52, 0x0e, 0x63,
  2928  	0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x6f, 0x0a,
  2929  	0x21, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
  2930  	0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x62, 0x79, 0x74,
  2931  	0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  2932  	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33,
  2933  	0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x8a, 0x93, 0xb7, 0x2a, 0x02, 0x10, 0x01, 0x52,
  2934  	0x1d, 0x70, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x75,
  2935  	0x66, 0x66, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x57,
  2936  	0x0a, 0x09, 0x6c, 0x62, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28,
  2937  	0x0e, 0x32, 0x2e, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  2938  	0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x76, 0x34, 0x61, 0x6c, 0x70, 0x68, 0x61,
  2939  	0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x4c, 0x62, 0x50, 0x6f, 0x6c, 0x69, 0x63,
  2940  	0x79, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x82, 0x01, 0x04, 0x10, 0x01, 0x20, 0x07, 0x52, 0x08, 0x6c,
  2941  	0x62, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x58, 0x0a, 0x0f, 0x6c, 0x6f, 0x61, 0x64, 0x5f,
  2942  	0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b,
  2943  	0x32, 0x2f, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
  2944  	0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6c, 0x75, 0x73,
  2945  	0x74, 0x65, 0x72, 0x4c, 0x6f, 0x61, 0x64, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e,
  2946  	0x74, 0x52, 0x0e, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e,
  2947  	0x74, 0x12, 0x4b, 0x0a, 0x0d, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x63, 0x68, 0x65, 0x63,
  2948  	0x6b, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79,
  2949  	0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x34, 0x61,
  2950  	0x6c, 0x70, 0x68, 0x61, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b,
  2951  	0x52, 0x0c, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x12, 0x5b,
  2952  	0x0a, 0x1b, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x5f, 0x70,
  2953  	0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20,
  2954  	0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
  2955  	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75,
  2956  	0x65, 0x52, 0x18, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x50, 0x65,
  2957  	0x72, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x58, 0x0a, 0x10, 0x63,
  2958  	0x69, 0x72, 0x63, 0x75, 0x69, 0x74, 0x5f, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x73, 0x18,
  2959  	0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f,
  2960  	0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x76, 0x34, 0x61,
  2961  	0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74, 0x42, 0x72, 0x65, 0x61,
  2962  	0x6b, 0x65, 0x72, 0x73, 0x52, 0x0f, 0x63, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74, 0x42, 0x72, 0x65,
  2963  	0x61, 0x6b, 0x65, 0x72, 0x73, 0x12, 0xac, 0x01, 0x0a, 0x36, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e,
  2964  	0x5f, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x5f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65,
  2965  	0x64, 0x5f, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x68, 0x74, 0x74, 0x70, 0x5f,
  2966  	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
  2967  	0x18, 0x2e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63,
  2968  	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x34, 0x61, 0x6c, 0x70,
  2969  	0x68, 0x61, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x48, 0x74, 0x74, 0x70, 0x50,
  2970  	0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x02,
  2971  	0x18, 0x01, 0x52, 0x30, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x45, 0x6e, 0x76, 0x6f, 0x79, 0x44,
  2972  	0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61,
  2973  	0x6d, 0x48, 0x74, 0x74, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4f, 0x70, 0x74,
  2974  	0x69, 0x6f, 0x6e, 0x73, 0x12, 0xa0, 0x01, 0x0a, 0x34, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x5f,
  2975  	0x65, 0x6e, 0x76, 0x6f, 0x79, 0x5f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64,
  2976  	0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5f, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x70, 0x72, 0x6f,
  2977  	0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x1d, 0x20,
  2978  	0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66,
  2979  	0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x34, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e,
  2980  	0x48, 0x74, 0x74, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4f, 0x70, 0x74, 0x69,
  2981  	0x6f, 0x6e, 0x73, 0x42, 0x02, 0x18, 0x01, 0x52, 0x2e, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x45,
  2982  	0x6e, 0x76, 0x6f, 0x79, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f,
  2983  	0x6d, 0x6d, 0x6f, 0x6e, 0x48, 0x74, 0x74, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c,
  2984  	0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x94, 0x01, 0x0a, 0x2d, 0x68, 0x69, 0x64, 0x64,
  2985  	0x65, 0x6e, 0x5f, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x5f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61,
  2986  	0x74, 0x65, 0x64, 0x5f, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f,
  2987  	0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32,
  2988  	0x2f, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63,
  2989  	0x6f, 0x72, 0x65, 0x2e, 0x76, 0x34, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x48, 0x74, 0x74, 0x70,
  2990  	0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
  2991  	0x42, 0x02, 0x18, 0x01, 0x52, 0x28, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x45, 0x6e, 0x76, 0x6f,
  2992  	0x79, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x48, 0x74, 0x74, 0x70, 0x50,
  2993  	0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x9d,
  2994  	0x01, 0x0a, 0x2e, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x5f, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x5f,
  2995  	0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x68, 0x74, 0x74, 0x70, 0x32,
  2996  	0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
  2997  	0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e,
  2998  	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x34, 0x61, 0x6c,
  2999  	0x70, 0x68, 0x61, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x32, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f,
  3000  	0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x09, 0x18, 0x01, 0x8a, 0x93, 0xb7, 0x2a,
  3001  	0x02, 0x10, 0x01, 0x52, 0x29, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x45, 0x6e, 0x76, 0x6f, 0x79,
  3002  	0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x48, 0x74, 0x74, 0x70, 0x32, 0x50,
  3003  	0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x91,
  3004  	0x01, 0x0a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
  3005  	0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69,
  3006  	0x6f, 0x6e, 0x73, 0x18, 0x24, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x65, 0x6e, 0x76, 0x6f,
  3007  	0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
  3008  	0x2e, 0x76, 0x34, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
  3009  	0x2e, 0x54, 0x79, 0x70, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50,
  3010  	0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e,
  3011  	0x74, 0x72, 0x79, 0x52, 0x1d, 0x74, 0x79, 0x70, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73,
  3012  	0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f,
  3013  	0x6e, 0x73, 0x12, 0x51, 0x0a, 0x10, 0x64, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73,
  3014  	0x68, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67,
  3015  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44,
  3016  	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0xfa, 0x42, 0x09, 0xaa, 0x01, 0x06, 0x2a,
  3017  	0x04, 0x10, 0xc0, 0x84, 0x3d, 0x52, 0x0e, 0x64, 0x6e, 0x73, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73,
  3018  	0x68, 0x52, 0x61, 0x74, 0x65, 0x12, 0x6a, 0x0a, 0x18, 0x64, 0x6e, 0x73, 0x5f, 0x66, 0x61, 0x69,
  3019  	0x6c, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, 0x61, 0x74,
  3020  	0x65, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e,
  3021  	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x76,
  3022  	0x34, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x52,
  3023  	0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x61, 0x74, 0x65, 0x52, 0x15, 0x64, 0x6e, 0x73, 0x46,
  3024  	0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x61, 0x74,
  3025  	0x65, 0x12, 0x26, 0x0a, 0x0f, 0x72, 0x65, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x64, 0x6e, 0x73,
  3026  	0x5f, 0x74, 0x74, 0x6c, 0x18, 0x27, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x70,
  3027  	0x65, 0x63, 0x74, 0x44, 0x6e, 0x73, 0x54, 0x74, 0x6c, 0x12, 0x6b, 0x0a, 0x11, 0x64, 0x6e, 0x73,
  3028  	0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x11,
  3029  	0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e,
  3030  	0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x76, 0x34, 0x61, 0x6c,
  3031  	0x70, 0x68, 0x61, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x44, 0x6e, 0x73, 0x4c,
  3032  	0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x42, 0x08, 0xfa, 0x42, 0x05,
  3033  	0x82, 0x01, 0x02, 0x10, 0x01, 0x52, 0x0f, 0x64, 0x6e, 0x73, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70,
  3034  	0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x47, 0x0a, 0x0d, 0x64, 0x6e, 0x73, 0x5f, 0x72, 0x65,
  3035  	0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e,
  3036  	0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72,
  3037  	0x65, 0x2e, 0x76, 0x34, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73,
  3038  	0x73, 0x52, 0x0c, 0x64, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x12,
  3039  	0x34, 0x0a, 0x17, 0x75, 0x73, 0x65, 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x64,
  3040  	0x6e, 0x73, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x73, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x08,
  3041  	0x52, 0x13, 0x75, 0x73, 0x65, 0x54, 0x63, 0x70, 0x46, 0x6f, 0x72, 0x44, 0x6e, 0x73, 0x4c, 0x6f,
  3042  	0x6f, 0x6b, 0x75, 0x70, 0x73, 0x12, 0x5b, 0x0a, 0x11, 0x6f, 0x75, 0x74, 0x6c, 0x69, 0x65, 0x72,
  3043  	0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b,
  3044  	0x32, 0x2e, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
  3045  	0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x76, 0x34, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e,
  3046  	0x4f, 0x75, 0x74, 0x6c, 0x69, 0x65, 0x72, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
  3047  	0x52, 0x10, 0x6f, 0x75, 0x74, 0x6c, 0x69, 0x65, 0x72, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69,
  3048  	0x6f, 0x6e, 0x12, 0x4e, 0x0a, 0x10, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x5f, 0x69, 0x6e,
  3049  	0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67,
  3050  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44,
  3051  	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0xfa, 0x42, 0x05, 0xaa, 0x01, 0x02, 0x2a,
  3052  	0x00, 0x52, 0x0f, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76,
  3053  	0x61, 0x6c, 0x12, 0x57, 0x0a, 0x14, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x62,
  3054  	0x69, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b,
  3055  	0x32, 0x25, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
  3056  	0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x34, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x42, 0x69, 0x6e,
  3057  	0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x12, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61,
  3058  	0x6d, 0x42, 0x69, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x5e, 0x0a, 0x10, 0x6c,
  3059  	0x62, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18,
  3060  	0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f,
  3061  	0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x76, 0x34, 0x61,
  3062  	0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x4c, 0x62, 0x53,
  3063  	0x75, 0x62, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, 0x6c, 0x62, 0x53,
  3064  	0x75, 0x62, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x67, 0x0a, 0x13, 0x72,
  3065  	0x69, 0x6e, 0x67, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x6c, 0x62, 0x5f, 0x63, 0x6f, 0x6e, 0x66,
  3066  	0x69, 0x67, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79,
  3067  	0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e,
  3068  	0x76, 0x34, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e,
  3069  	0x52, 0x69, 0x6e, 0x67, 0x48, 0x61, 0x73, 0x68, 0x4c, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  3070  	0x48, 0x01, 0x52, 0x10, 0x72, 0x69, 0x6e, 0x67, 0x48, 0x61, 0x73, 0x68, 0x4c, 0x62, 0x43, 0x6f,
  3071  	0x6e, 0x66, 0x69, 0x67, 0x12, 0x60, 0x0a, 0x10, 0x6d, 0x61, 0x67, 0x6c, 0x65, 0x76, 0x5f, 0x6c,
  3072  	0x62, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34,
  3073  	0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c,
  3074  	0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x76, 0x34, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x6c,
  3075  	0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x4d, 0x61, 0x67, 0x6c, 0x65, 0x76, 0x4c, 0x62, 0x43, 0x6f,
  3076  	0x6e, 0x66, 0x69, 0x67, 0x48, 0x01, 0x52, 0x0e, 0x6d, 0x61, 0x67, 0x6c, 0x65, 0x76, 0x4c, 0x62,
  3077  	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x70, 0x0a, 0x16, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e,
  3078  	0x61, 0x6c, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x6c, 0x62, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  3079  	0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63,
  3080  	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x76, 0x34,
  3081  	0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x4f, 0x72,
  3082  	0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x44, 0x73, 0x74, 0x4c, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69,
  3083  	0x67, 0x48, 0x01, 0x52, 0x13, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x44, 0x73, 0x74,
  3084  	0x4c, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x73, 0x0a, 0x17, 0x6c, 0x65, 0x61, 0x73,
  3085  	0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6c, 0x62, 0x5f, 0x63, 0x6f, 0x6e,
  3086  	0x66, 0x69, 0x67, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x65, 0x6e, 0x76, 0x6f,
  3087  	0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
  3088  	0x2e, 0x76, 0x34, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
  3089  	0x2e, 0x4c, 0x65, 0x61, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4c, 0x62, 0x43,
  3090  	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x01, 0x52, 0x14, 0x6c, 0x65, 0x61, 0x73, 0x74, 0x52, 0x65,
  3091  	0x71, 0x75, 0x65, 0x73, 0x74, 0x4c, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x5e, 0x0a,
  3092  	0x10, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5f, 0x6c, 0x62, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69,
  3093  	0x67, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e,
  3094  	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x76,
  3095  	0x34, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x43,
  3096  	0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, 0x63,
  3097  	0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x55, 0x0a,
  3098  	0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x65,
  3099  	0x74, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e,
  3100  	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x34, 0x61, 0x6c,
  3101  	0x70, 0x68, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x6f, 0x63,
  3102  	0x6b, 0x65, 0x74, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x6f,
  3103  	0x63, 0x6b, 0x65, 0x74, 0x12, 0x3f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
  3104  	0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63,
  3105  	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x34, 0x61, 0x6c, 0x70,
  3106  	0x68, 0x61, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74,
  3107  	0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x9e, 0x01, 0x0a, 0x2a, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e,
  3108  	0x5f, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x5f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65,
  3109  	0x64, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63,
  3110  	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, 0x2e, 0x65, 0x6e, 0x76,
  3111  	0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
  3112  	0x72, 0x2e, 0x76, 0x34, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
  3113  	0x72, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f,
  3114  	0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x02, 0x18, 0x01, 0x52, 0x26,
  3115  	0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x45, 0x6e, 0x76, 0x6f, 0x79, 0x44, 0x65, 0x70, 0x72, 0x65,
  3116  	0x63, 0x61, 0x74, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x65, 0x6c,
  3117  	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x77, 0x0a, 0x1b, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65,
  3118  	0x61, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x70,
  3119  	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x65, 0x6e,
  3120  	0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74,
  3121  	0x65, 0x72, 0x2e, 0x76, 0x34, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72,
  3122  	0x65, 0x61, 0x6d, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74,
  3123  	0x69, 0x6f, 0x6e, 0x73, 0x52, 0x19, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6f,
  3124  	0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12,
  3125  	0x55, 0x0a, 0x28, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74,
  3126  	0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x6f, 0x6e, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61,
  3127  	0x6c, 0x74, 0x68, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28,
  3128  	0x08, 0x52, 0x23, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69,
  3129  	0x6f, 0x6e, 0x73, 0x4f, 0x6e, 0x48, 0x6f, 0x73, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x46,
  3130  	0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x40, 0x0a, 0x1d, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65,
  3131  	0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x6f, 0x6e, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x5f,
  3132  	0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x18, 0x20, 0x20, 0x01, 0x28, 0x08, 0x52, 0x19, 0x69,
  3133  	0x67, 0x6e, 0x6f, 0x72, 0x65, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x4f, 0x6e, 0x48, 0x6f, 0x73,
  3134  	0x74, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x12, 0x3e, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74,
  3135  	0x65, 0x72, 0x73, 0x18, 0x28, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6e, 0x76, 0x6f,
  3136  	0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
  3137  	0x2e, 0x76, 0x34, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52,
  3138  	0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x65, 0x0a, 0x15, 0x6c, 0x6f, 0x61, 0x64,
  3139  	0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63,
  3140  	0x79, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e,
  3141  	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x76,
  3142  	0x34, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e,
  3143  	0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x13, 0x6c, 0x6f, 0x61, 0x64,
  3144  	0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12,
  3145  	0x46, 0x0a, 0x0a, 0x6c, 0x72, 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x2a, 0x20,
  3146  	0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66,
  3147  	0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x34, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e,
  3148  	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x09, 0x6c, 0x72,
  3149  	0x73, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x63, 0x0a, 0x2d, 0x68, 0x69, 0x64, 0x64, 0x65,
  3150  	0x6e, 0x5f, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x5f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74,
  3151  	0x65, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74,
  3152  	0x5f, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x73, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02,
  3153  	0x18, 0x01, 0x52, 0x28, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x45, 0x6e, 0x76, 0x6f, 0x79, 0x44,
  3154  	0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x54, 0x69,
  3155  	0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x75, 0x64, 0x67, 0x65, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x0f,
  3156  	0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18,
  3157  	0x30, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f,
  3158  	0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x34, 0x61, 0x6c, 0x70, 0x68,
  3159  	0x61, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
  3160  	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d,
  3161  	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x5f, 0x0a, 0x13, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x5f,
  3162  	0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x31, 0x20,
  3163  	0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66,
  3164  	0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x76, 0x34, 0x61, 0x6c, 0x70,
  3165  	0x68, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53,
  3166  	0x74, 0x61, 0x74, 0x73, 0x52, 0x11, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74,
  3167  	0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x63, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x63, 0x6f,
  3168  	0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x32, 0x20, 0x01,
  3169  	0x28, 0x0b, 0x32, 0x36, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69,
  3170  	0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x76, 0x34, 0x61, 0x6c, 0x70, 0x68,
  3171  	0x61, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x50, 0x72, 0x65, 0x63, 0x6f, 0x6e,
  3172  	0x6e, 0x65, 0x63, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x10, 0x70, 0x72, 0x65, 0x63,
  3173  	0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x58, 0x0a, 0x29,
  3174  	0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f,
  3175  	0x70, 0x65, 0x72, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x63,
  3176  	0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x33, 0x20, 0x01, 0x28, 0x08, 0x52,
  3177  	0x25, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x50,
  3178  	0x65, 0x72, 0x44, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6f, 0x6e, 0x6e,
  3179  	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xf6, 0x01, 0x0a, 0x14, 0x54, 0x72, 0x61, 0x6e, 0x73,
  3180  	0x70, 0x6f, 0x72, 0x74, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12,
  3181  	0x1b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa,
  3182  	0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x05,
  3183  	0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f,
  3184  	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74,
  3185  	0x72, 0x75, 0x63, 0x74, 0x52, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x55, 0x0a, 0x10, 0x74,
  3186  	0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x18,
  3187  	0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f,
  3188  	0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x34, 0x61, 0x6c, 0x70, 0x68,
  3189  	0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x6f, 0x63, 0x6b, 0x65,
  3190  	0x74, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x6f, 0x63, 0x6b,
  3191  	0x65, 0x74, 0x3a, 0x3b, 0x9a, 0xc5, 0x88, 0x1e, 0x36, 0x0a, 0x34, 0x65, 0x6e, 0x76, 0x6f, 0x79,
  3192  	0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e,
  3193  	0x76, 0x33, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73,
  3194  	0x70, 0x6f, 0x72, 0x74, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x1a,
  3195  	0xa3, 0x01, 0x0a, 0x11, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
  3196  	0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
  3197  	0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x6e, 0x61,
  3198  	0x6d, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x74, 0x79, 0x70, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66,
  3199  	0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  3200  	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x0b,
  3201  	0x74, 0x79, 0x70, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x3a, 0x38, 0x9a, 0xc5, 0x88,
  3202  	0x1e, 0x33, 0x0a, 0x31, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  3203  	0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6c, 0x75, 0x73,
  3204  	0x74, 0x65, 0x72, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
  3205  	0x72, 0x54, 0x79, 0x70, 0x65, 0x1a, 0xb6, 0x01, 0x0a, 0x10, 0x45, 0x64, 0x73, 0x43, 0x6c, 0x75,
  3206  	0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x46, 0x0a, 0x0a, 0x65, 0x64,
  3207  	0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27,
  3208  	0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f,
  3209  	0x72, 0x65, 0x2e, 0x76, 0x34, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69,
  3210  	0x67, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x09, 0x65, 0x64, 0x73, 0x43, 0x6f, 0x6e, 0x66,
  3211  	0x69, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61,
  3212  	0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
  3213  	0x65, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x37, 0x9a, 0xc5, 0x88, 0x1e, 0x32, 0x0a, 0x30, 0x65, 0x6e,
  3214  	0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74,
  3215  	0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x45, 0x64,
  3216  	0x73, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0xe5,
  3217  	0x08, 0x0a, 0x0e, 0x4c, 0x62, 0x53, 0x75, 0x62, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69,
  3218  	0x67, 0x12, 0x7e, 0x0a, 0x0f, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x6f,
  3219  	0x6c, 0x69, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x4b, 0x2e, 0x65, 0x6e, 0x76,
  3220  	0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
  3221  	0x72, 0x2e, 0x76, 0x34, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
  3222  	0x72, 0x2e, 0x4c, 0x62, 0x53, 0x75, 0x62, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  3223  	0x2e, 0x4c, 0x62, 0x53, 0x75, 0x62, 0x73, 0x65, 0x74, 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63,
  3224  	0x6b, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x10,
  3225  	0x01, 0x52, 0x0e, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x50, 0x6f, 0x6c, 0x69, 0x63,
  3226  	0x79, 0x12, 0x3e, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x75, 0x62,
  3227  	0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
  3228  	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75,
  3229  	0x63, 0x74, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x75, 0x62, 0x73, 0x65,
  3230  	0x74, 0x12, 0x70, 0x0a, 0x10, 0x73, 0x75, 0x62, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x6c, 0x65,
  3231  	0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x65, 0x6e,
  3232  	0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74,
  3233  	0x65, 0x72, 0x2e, 0x76, 0x34, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74,
  3234  	0x65, 0x72, 0x2e, 0x4c, 0x62, 0x53, 0x75, 0x62, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69,
  3235  	0x67, 0x2e, 0x4c, 0x62, 0x53, 0x75, 0x62, 0x73, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74,
  3236  	0x6f, 0x72, 0x52, 0x0f, 0x73, 0x75, 0x62, 0x73, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74,
  3237  	0x6f, 0x72, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x5f,
  3238  	0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x61, 0x77, 0x61, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01,
  3239  	0x28, 0x08, 0x52, 0x13, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x57, 0x65, 0x69, 0x67,
  3240  	0x68, 0x74, 0x41, 0x77, 0x61, 0x72, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x73, 0x63, 0x61, 0x6c, 0x65,
  3241  	0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74,
  3242  	0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x4c, 0x6f, 0x63,
  3243  	0x61, 0x6c, 0x69, 0x74, 0x79, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x70,
  3244  	0x61, 0x6e, 0x69, 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x18, 0x06, 0x20,
  3245  	0x01, 0x28, 0x08, 0x52, 0x0c, 0x70, 0x61, 0x6e, 0x69, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x41, 0x6e,
  3246  	0x79, 0x12, 0x1e, 0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x61, 0x6e, 0x79,
  3247  	0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x73, 0x41, 0x6e,
  3248  	0x79, 0x1a, 0xea, 0x03, 0x0a, 0x10, 0x4c, 0x62, 0x53, 0x75, 0x62, 0x73, 0x65, 0x74, 0x53, 0x65,
  3249  	0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01,
  3250  	0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x33, 0x0a, 0x16, 0x73, 0x69,
  3251  	0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x75,
  3252  	0x62, 0x73, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x73, 0x69, 0x6e, 0x67,
  3253  	0x6c, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x50, 0x65, 0x72, 0x53, 0x75, 0x62, 0x73, 0x65, 0x74, 0x12,
  3254  	0x97, 0x01, 0x0a, 0x0f, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x6f, 0x6c,
  3255  	0x69, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x64, 0x2e, 0x65, 0x6e, 0x76, 0x6f,
  3256  	0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
  3257  	0x2e, 0x76, 0x34, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
  3258  	0x2e, 0x4c, 0x62, 0x53, 0x75, 0x62, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
  3259  	0x4c, 0x62, 0x53, 0x75, 0x62, 0x73, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72,
  3260  	0x2e, 0x4c, 0x62, 0x53, 0x75, 0x62, 0x73, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f,
  3261  	0x72, 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42,
  3262  	0x08, 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x10, 0x01, 0x52, 0x0e, 0x66, 0x61, 0x6c, 0x6c, 0x62,
  3263  	0x61, 0x63, 0x6b, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x30, 0x0a, 0x14, 0x66, 0x61, 0x6c,
  3264  	0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x65,
  3265  	0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63,
  3266  	0x6b, 0x4b, 0x65, 0x79, 0x73, 0x53, 0x75, 0x62, 0x73, 0x65, 0x74, 0x22, 0x79, 0x0a, 0x1e, 0x4c,
  3267  	0x62, 0x53, 0x75, 0x62, 0x73, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x46,
  3268  	0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x0f, 0x0a,
  3269  	0x0b, 0x4e, 0x4f, 0x54, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0f,
  3270  	0x0a, 0x0b, 0x4e, 0x4f, 0x5f, 0x46, 0x41, 0x4c, 0x4c, 0x42, 0x41, 0x43, 0x4b, 0x10, 0x01, 0x12,
  3271  	0x10, 0x0a, 0x0c, 0x41, 0x4e, 0x59, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x10,
  3272  	0x02, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x53, 0x55, 0x42,
  3273  	0x53, 0x45, 0x54, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x4b, 0x45, 0x59, 0x53, 0x5f, 0x53, 0x55,
  3274  	0x42, 0x53, 0x45, 0x54, 0x10, 0x04, 0x3a, 0x46, 0x9a, 0xc5, 0x88, 0x1e, 0x41, 0x0a, 0x3f, 0x65,
  3275  	0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73,
  3276  	0x74, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x4c,
  3277  	0x62, 0x53, 0x75, 0x62, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4c, 0x62,
  3278  	0x53, 0x75, 0x62, 0x73, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22, 0x4f,
  3279  	0x0a, 0x16, 0x4c, 0x62, 0x53, 0x75, 0x62, 0x73, 0x65, 0x74, 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61,
  3280  	0x63, 0x6b, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x0f, 0x0a, 0x0b, 0x4e, 0x4f, 0x5f, 0x46,
  3281  	0x41, 0x4c, 0x4c, 0x42, 0x41, 0x43, 0x4b, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x41, 0x4e, 0x59,
  3282  	0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x44,
  3283  	0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x53, 0x55, 0x42, 0x53, 0x45, 0x54, 0x10, 0x02, 0x3a,
  3284  	0x35, 0x9a, 0xc5, 0x88, 0x1e, 0x30, 0x0a, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f,
  3285  	0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e,
  3286  	0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x4c, 0x62, 0x53, 0x75, 0x62, 0x73, 0x65, 0x74,
  3287  	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0xf7, 0x01, 0x0a, 0x14, 0x4c, 0x65, 0x61, 0x73, 0x74,
  3288  	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4c, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12,
  3289  	0x48, 0x0a, 0x0c, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18,
  3290  	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
  3291  	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61,
  3292  	0x6c, 0x75, 0x65, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x2a, 0x02, 0x28, 0x02, 0x52, 0x0b, 0x63, 0x68,
  3293  	0x6f, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x58, 0x0a, 0x13, 0x61, 0x63, 0x74,
  3294  	0x69, 0x76, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x69, 0x61, 0x73,
  3295  	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63,
  3296  	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x34, 0x61, 0x6c, 0x70,
  3297  	0x68, 0x61, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65,
  3298  	0x52, 0x11, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42,
  3299  	0x69, 0x61, 0x73, 0x3a, 0x3b, 0x9a, 0xc5, 0x88, 0x1e, 0x36, 0x0a, 0x34, 0x65, 0x6e, 0x76, 0x6f,
  3300  	0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
  3301  	0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x4c, 0x65, 0x61, 0x73,
  3302  	0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4c, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  3303  	0x1a, 0xa1, 0x03, 0x0a, 0x10, 0x52, 0x69, 0x6e, 0x67, 0x48, 0x61, 0x73, 0x68, 0x4c, 0x62, 0x43,
  3304  	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x54, 0x0a, 0x11, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d,
  3305  	0x5f, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
  3306  	0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
  3307  	0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0a,
  3308  	0xfa, 0x42, 0x07, 0x32, 0x05, 0x18, 0x80, 0x80, 0x80, 0x04, 0x52, 0x0f, 0x6d, 0x69, 0x6e, 0x69,
  3309  	0x6d, 0x75, 0x6d, 0x52, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x72, 0x0a, 0x0d, 0x68,
  3310  	0x61, 0x73, 0x68, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01,
  3311  	0x28, 0x0e, 0x32, 0x43, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69,
  3312  	0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x76, 0x34, 0x61, 0x6c, 0x70, 0x68,
  3313  	0x61, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x52, 0x69, 0x6e, 0x67, 0x48, 0x61,
  3314  	0x73, 0x68, 0x4c, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x46,
  3315  	0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x10,
  3316  	0x01, 0x52, 0x0c, 0x68, 0x61, 0x73, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12,
  3317  	0x54, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x72, 0x69, 0x6e, 0x67, 0x5f,
  3318  	0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f,
  3319  	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e,
  3320  	0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x32, 0x05, 0x18,
  3321  	0x80, 0x80, 0x80, 0x04, 0x52, 0x0f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x52, 0x69, 0x6e,
  3322  	0x67, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x2e, 0x0a, 0x0c, 0x48, 0x61, 0x73, 0x68, 0x46, 0x75, 0x6e,
  3323  	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0b, 0x0a, 0x07, 0x58, 0x58, 0x5f, 0x48, 0x41, 0x53, 0x48,
  3324  	0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x4d, 0x55, 0x52, 0x4d, 0x55, 0x52, 0x5f, 0x48, 0x41, 0x53,
  3325  	0x48, 0x5f, 0x32, 0x10, 0x01, 0x3a, 0x37, 0x9a, 0xc5, 0x88, 0x1e, 0x32, 0x0a, 0x30, 0x65, 0x6e,
  3326  	0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74,
  3327  	0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x52, 0x69,
  3328  	0x6e, 0x67, 0x48, 0x61, 0x73, 0x68, 0x4c, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4a, 0x04,
  3329  	0x08, 0x02, 0x10, 0x03, 0x1a, 0x84, 0x01, 0x0a, 0x0e, 0x4d, 0x61, 0x67, 0x6c, 0x65, 0x76, 0x4c,
  3330  	0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3b, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65,
  3331  	0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f,
  3332  	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49,
  3333  	0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x74, 0x61, 0x62, 0x6c, 0x65,
  3334  	0x53, 0x69, 0x7a, 0x65, 0x3a, 0x35, 0x9a, 0xc5, 0x88, 0x1e, 0x30, 0x0a, 0x2e, 0x65, 0x6e, 0x76,
  3335  	0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
  3336  	0x72, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x4d, 0x61, 0x67,
  3337  	0x6c, 0x65, 0x76, 0x4c, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x79, 0x0a, 0x13, 0x4f,
  3338  	0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x44, 0x73, 0x74, 0x4c, 0x62, 0x43, 0x6f, 0x6e, 0x66,
  3339  	0x69, 0x67, 0x12, 0x26, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x5f, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x68,
  3340  	0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x75, 0x73, 0x65,
  3341  	0x48, 0x74, 0x74, 0x70, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x3a, 0x3a, 0x9a, 0xc5, 0x88, 0x1e,
  3342  	0x35, 0x0a, 0x33, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
  3343  	0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74,
  3344  	0x65, 0x72, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x44, 0x73, 0x74, 0x4c, 0x62,
  3345  	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0xb7, 0x0b, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f,
  3346  	0x6e, 0x4c, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4e, 0x0a, 0x17, 0x68, 0x65, 0x61,
  3347  	0x6c, 0x74, 0x68, 0x79, 0x5f, 0x70, 0x61, 0x6e, 0x69, 0x63, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73,
  3348  	0x68, 0x6f, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x65, 0x6e, 0x76,
  3349  	0x6f, 0x79, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x50, 0x65, 0x72, 0x63, 0x65,
  3350  	0x6e, 0x74, 0x52, 0x15, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x50, 0x61, 0x6e, 0x69, 0x63,
  3351  	0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x79, 0x0a, 0x14, 0x7a, 0x6f, 0x6e,
  3352  	0x65, 0x5f, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6c, 0x62, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69,
  3353  	0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e,
  3354  	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x76,
  3355  	0x34, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x43,
  3356  	0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x5a, 0x6f,
  3357  	0x6e, 0x65, 0x41, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48,
  3358  	0x00, 0x52, 0x11, 0x7a, 0x6f, 0x6e, 0x65, 0x41, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x62, 0x43, 0x6f,
  3359  	0x6e, 0x66, 0x69, 0x67, 0x12, 0x8e, 0x01, 0x0a, 0x1b, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74,
  3360  	0x79, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x62, 0x5f, 0x63, 0x6f,
  3361  	0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4d, 0x2e, 0x65, 0x6e, 0x76,
  3362  	0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
  3363  	0x72, 0x2e, 0x76, 0x34, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
  3364  	0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  3365  	0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65,
  3366  	0x64, 0x4c, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x18, 0x6c, 0x6f, 0x63,
  3367  	0x61, 0x6c, 0x69, 0x74, 0x79, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x4c, 0x62, 0x43,
  3368  	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x49, 0x0a, 0x13, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f,
  3369  	0x6d, 0x65, 0x72, 0x67, 0x65, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x04, 0x20, 0x01,
  3370  	0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
  3371  	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x75,
  3372  	0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77,
  3373  	0x12, 0x43, 0x0a, 0x1f, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x68,
  3374  	0x6f, 0x73, 0x74, 0x73, 0x5f, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x5f, 0x66, 0x69, 0x72, 0x73, 0x74,
  3375  	0x5f, 0x68, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1a, 0x69, 0x67, 0x6e, 0x6f, 0x72,
  3376  	0x65, 0x4e, 0x65, 0x77, 0x48, 0x6f, 0x73, 0x74, 0x73, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x46, 0x69,
  3377  	0x72, 0x73, 0x74, 0x48, 0x63, 0x12, 0x4d, 0x0a, 0x24, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x63,
  3378  	0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x6f, 0x6e, 0x5f, 0x68, 0x6f,
  3379  	0x73, 0x74, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x06, 0x20,
  3380  	0x01, 0x28, 0x08, 0x52, 0x1f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63,
  3381  	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4f, 0x6e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x74, 0x43, 0x68,
  3382  	0x61, 0x6e, 0x67, 0x65, 0x12, 0x8f, 0x01, 0x0a, 0x1c, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74,
  3383  	0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x62, 0x5f, 0x63,
  3384  	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4e, 0x2e, 0x65, 0x6e,
  3385  	0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74,
  3386  	0x65, 0x72, 0x2e, 0x76, 0x34, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74,
  3387  	0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69,
  3388  	0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68,
  3389  	0x69, 0x6e, 0x67, 0x4c, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x19, 0x63, 0x6f, 0x6e,
  3390  	0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x4c, 0x62,
  3391  	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x98, 0x02, 0x0a, 0x11, 0x5a, 0x6f, 0x6e, 0x65, 0x41,
  3392  	0x77, 0x61, 0x72, 0x65, 0x4c, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3f, 0x0a, 0x0f,
  3393  	0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18,
  3394  	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74, 0x79,
  3395  	0x70, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x52, 0x0e, 0x72,
  3396  	0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x46, 0x0a,
  3397  	0x10, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x7a,
  3398  	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
  3399  	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34,
  3400  	0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x6d, 0x69, 0x6e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
  3401  	0x72, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x31, 0x0a, 0x15, 0x66, 0x61, 0x69, 0x6c, 0x5f, 0x74, 0x72,
  3402  	0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x6e, 0x69, 0x63, 0x18, 0x03,
  3403  	0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x66, 0x61, 0x69, 0x6c, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69,
  3404  	0x63, 0x4f, 0x6e, 0x50, 0x61, 0x6e, 0x69, 0x63, 0x3a, 0x47, 0x9a, 0xc5, 0x88, 0x1e, 0x42, 0x0a,
  3405  	0x40, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c,
  3406  	0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
  3407  	0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
  3408  	0x5a, 0x6f, 0x6e, 0x65, 0x41, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69,
  3409  	0x67, 0x1a, 0x6a, 0x0a, 0x18, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x57, 0x65, 0x69,
  3410  	0x67, 0x68, 0x74, 0x65, 0x64, 0x4c, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x3a, 0x4e, 0x9a,
  3411  	0xc5, 0x88, 0x1e, 0x49, 0x0a, 0x47, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66,
  3412  	0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6c,
  3413  	0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x62, 0x43, 0x6f,
  3414  	0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x57, 0x65, 0x69,
  3415  	0x67, 0x68, 0x74, 0x65, 0x64, 0x4c, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0xfc, 0x01,
  3416  	0x0a, 0x19, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68,
  3417  	0x69, 0x6e, 0x67, 0x4c, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x37, 0x0a, 0x18, 0x75,
  3418  	0x73, 0x65, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x5f,
  3419  	0x68, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x75,
  3420  	0x73, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x48, 0x61, 0x73,
  3421  	0x68, 0x69, 0x6e, 0x67, 0x12, 0x55, 0x0a, 0x13, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x62, 0x61, 0x6c,
  3422  	0x61, 0x6e, 0x63, 0x65, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28,
  3423  	0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
  3424  	0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42,
  3425  	0x07, 0xfa, 0x42, 0x04, 0x2a, 0x02, 0x28, 0x64, 0x52, 0x11, 0x68, 0x61, 0x73, 0x68, 0x42, 0x61,
  3426  	0x6c, 0x61, 0x6e, 0x63, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x3a, 0x4f, 0x9a, 0xc5, 0x88,
  3427  	0x1e, 0x4a, 0x0a, 0x48, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  3428  	0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6c, 0x75, 0x73,
  3429  	0x74, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x62, 0x43, 0x6f, 0x6e, 0x66,
  3430  	0x69, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73,
  3431  	0x68, 0x69, 0x6e, 0x67, 0x4c, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x3a, 0x35, 0x9a, 0xc5,
  3432  	0x88, 0x1e, 0x30, 0x0a, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69,
  3433  	0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6c, 0x75,
  3434  	0x73, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x62, 0x43, 0x6f, 0x6e,
  3435  	0x66, 0x69, 0x67, 0x42, 0x1b, 0x0a, 0x19, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x5f,
  3436  	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x72,
  3437  	0x1a, 0xdd, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x61, 0x74, 0x65,
  3438  	0x12, 0x4e, 0x0a, 0x0d, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61,
  3439  	0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
  3440  	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69,
  3441  	0x6f, 0x6e, 0x42, 0x0e, 0xfa, 0x42, 0x0b, 0xaa, 0x01, 0x08, 0x08, 0x01, 0x2a, 0x04, 0x10, 0xc0,
  3442  	0x84, 0x3d, 0x52, 0x0c, 0x62, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c,
  3443  	0x12, 0x4a, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c,
  3444  	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
  3445  	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
  3446  	0x6e, 0x42, 0x0c, 0xfa, 0x42, 0x09, 0xaa, 0x01, 0x06, 0x2a, 0x04, 0x10, 0xc0, 0x84, 0x3d, 0x52,
  3447  	0x0b, 0x6d, 0x61, 0x78, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x3a, 0x32, 0x9a, 0xc5,
  3448  	0x88, 0x1e, 0x2d, 0x0a, 0x2b, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69,
  3449  	0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6c, 0x75,
  3450  	0x73, 0x74, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x61, 0x74, 0x65,
  3451  	0x1a, 0xbc, 0x02, 0x0a, 0x10, 0x50, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x50,
  3452  	0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x78, 0x0a, 0x1d, 0x70, 0x65, 0x72, 0x5f, 0x75, 0x70, 0x73,
  3453  	0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x70, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74,
  3454  	0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67,
  3455  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44,
  3456  	0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x17, 0xfa, 0x42, 0x14, 0x12,
  3457  	0x12, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x40, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00,
  3458  	0x00, 0xf0, 0x3f, 0x52, 0x1a, 0x70, 0x65, 0x72, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d,
  3459  	0x50, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12,
  3460  	0x75, 0x0a, 0x1b, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x72,
  3461  	0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x02,
  3462  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
  3463  	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c,
  3464  	0x75, 0x65, 0x42, 0x17, 0xfa, 0x42, 0x14, 0x12, 0x12, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3465  	0x08, 0x40, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, 0x52, 0x19, 0x70, 0x72, 0x65,
  3466  	0x64, 0x69, 0x63, 0x74, 0x69, 0x76, 0x65, 0x50, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63,
  3467  	0x74, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x3a, 0x37, 0x9a, 0xc5, 0x88, 0x1e, 0x32, 0x0a, 0x30, 0x65,
  3468  	0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73,
  3469  	0x74, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x50,
  3470  	0x72, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x1a,
  3471  	0x66, 0x0a, 0x22, 0x54, 0x79, 0x70, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
  3472  	0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
  3473  	0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
  3474  	0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
  3475  	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
  3476  	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x05, 0x76, 0x61,
  3477  	0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x57, 0x0a, 0x0d, 0x44, 0x69, 0x73, 0x63, 0x6f,
  3478  	0x76, 0x65, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x41, 0x54,
  3479  	0x49, 0x43, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x54, 0x52, 0x49, 0x43, 0x54, 0x5f, 0x44,
  3480  	0x4e, 0x53, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x4c, 0x4f, 0x47, 0x49, 0x43, 0x41, 0x4c, 0x5f,
  3481  	0x44, 0x4e, 0x53, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x45, 0x44, 0x53, 0x10, 0x03, 0x12, 0x10,
  3482  	0x0a, 0x0c, 0x4f, 0x52, 0x49, 0x47, 0x49, 0x4e, 0x41, 0x4c, 0x5f, 0x44, 0x53, 0x54, 0x10, 0x04,
  3483  	0x22, 0xa4, 0x01, 0x0a, 0x08, 0x4c, 0x62, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x0f, 0x0a,
  3484  	0x0b, 0x52, 0x4f, 0x55, 0x4e, 0x44, 0x5f, 0x52, 0x4f, 0x42, 0x49, 0x4e, 0x10, 0x00, 0x12, 0x11,
  3485  	0x0a, 0x0d, 0x4c, 0x45, 0x41, 0x53, 0x54, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10,
  3486  	0x01, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x10, 0x02,
  3487  	0x12, 0x0a, 0x0a, 0x06, 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06,
  3488  	0x4d, 0x41, 0x47, 0x4c, 0x45, 0x56, 0x10, 0x05, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x4c, 0x55, 0x53,
  3489  	0x54, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x44, 0x10, 0x06, 0x12, 0x20,
  3490  	0x0a, 0x1c, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x42, 0x41, 0x4c, 0x41, 0x4e, 0x43, 0x49, 0x4e, 0x47,
  3491  	0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x07,
  3492  	0x22, 0x04, 0x08, 0x04, 0x10, 0x04, 0x2a, 0x0f, 0x4f, 0x52, 0x49, 0x47, 0x49, 0x4e, 0x41, 0x4c,
  3493  	0x5f, 0x44, 0x53, 0x54, 0x5f, 0x4c, 0x42, 0x22, 0x35, 0x0a, 0x0f, 0x44, 0x6e, 0x73, 0x4c, 0x6f,
  3494  	0x6f, 0x6b, 0x75, 0x70, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x55,
  3495  	0x54, 0x4f, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x56, 0x34, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10,
  3496  	0x01, 0x12, 0x0b, 0x0a, 0x07, 0x56, 0x36, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x02, 0x22, 0x54,
  3497  	0x0a, 0x18, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f,
  3498  	0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x53,
  3499  	0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x50, 0x52, 0x4f,
  3500  	0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x53, 0x45, 0x5f, 0x44,
  3501  	0x4f, 0x57, 0x4e, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43,
  3502  	0x4f, 0x4c, 0x10, 0x01, 0x3a, 0x26, 0x9a, 0xc5, 0x88, 0x1e, 0x21, 0x0a, 0x1f, 0x65, 0x6e, 0x76,
  3503  	0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
  3504  	0x72, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x42, 0x18, 0x0a, 0x16,
  3505  	0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72,
  3506  	0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x6c, 0x62, 0x5f, 0x63, 0x6f, 0x6e,
  3507  	0x66, 0x69, 0x67, 0x4a, 0x04, 0x08, 0x0c, 0x10, 0x0d, 0x4a, 0x04, 0x08, 0x0f, 0x10, 0x10, 0x4a,
  3508  	0x04, 0x08, 0x07, 0x10, 0x08, 0x4a, 0x04, 0x08, 0x0b, 0x10, 0x0c, 0x4a, 0x04, 0x08, 0x23, 0x10,
  3509  	0x24, 0x52, 0x05, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x52, 0x0b, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x6f,
  3510  	0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x1a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
  3511  	0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
  3512  	0x73, 0x22, 0xc0, 0x02, 0x0a, 0x13, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63,
  3513  	0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x54, 0x0a, 0x08, 0x70, 0x6f, 0x6c,
  3514  	0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x65, 0x6e,
  3515  	0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74,
  3516  	0x65, 0x72, 0x2e, 0x76, 0x34, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x42,
  3517  	0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x50,
  3518  	0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x1a,
  3519  	0x9e, 0x01, 0x0a, 0x06, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
  3520  	0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x37,
  3521  	0x0a, 0x0c, 0x74, 0x79, 0x70, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03,
  3522  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
  3523  	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x0b, 0x74, 0x79, 0x70, 0x65,
  3524  	0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x3a, 0x39, 0x9a, 0xc5, 0x88, 0x1e, 0x34, 0x0a, 0x32,
  3525  	0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75,
  3526  	0x73, 0x74, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61,
  3527  	0x6e, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x50, 0x6f, 0x6c, 0x69,
  3528  	0x63, 0x79, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  3529  	0x3a, 0x32, 0x9a, 0xc5, 0x88, 0x1e, 0x2d, 0x0a, 0x2b, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63,
  3530  	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x76, 0x33,
  3531  	0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f,
  3532  	0x6c, 0x69, 0x63, 0x79, 0x22, 0x92, 0x01, 0x0a, 0x12, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61,
  3533  	0x6d, 0x42, 0x69, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x49, 0x0a, 0x0e, 0x73,
  3534  	0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20,
  3535  	0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66,
  3536  	0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x34, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e,
  3537  	0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41,
  3538  	0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x3a, 0x31, 0x9a, 0xc5, 0x88, 0x1e, 0x2c, 0x0a, 0x2a, 0x65,
  3539  	0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73,
  3540  	0x74, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42,
  3541  	0x69, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xa3, 0x01, 0x0a, 0x19, 0x55, 0x70,
  3542  	0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
  3543  	0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4c, 0x0a, 0x0d, 0x74, 0x63, 0x70, 0x5f, 0x6b,
  3544  	0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27,
  3545  	0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f,
  3546  	0x72, 0x65, 0x2e, 0x76, 0x34, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x54, 0x63, 0x70, 0x4b, 0x65,
  3547  	0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x52, 0x0c, 0x74, 0x63, 0x70, 0x4b, 0x65, 0x65, 0x70,
  3548  	0x61, 0x6c, 0x69, 0x76, 0x65, 0x3a, 0x38, 0x9a, 0xc5, 0x88, 0x1e, 0x33, 0x0a, 0x31, 0x65, 0x6e,
  3549  	0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74,
  3550  	0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6f,
  3551  	0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22,
  3552  	0xa4, 0x01, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
  3553  	0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74,
  3554  	0x5f, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e,
  3555  	0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x75, 0x64, 0x67, 0x65, 0x74, 0x73, 0x12, 0x34,
  3556  	0x0a, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e,
  3557  	0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14,
  3558  	0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53,
  3559  	0x69, 0x7a, 0x65, 0x73, 0x3a, 0x30, 0x9a, 0xc5, 0x88, 0x1e, 0x2b, 0x0a, 0x29, 0x65, 0x6e, 0x76,
  3560  	0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
  3561  	0x72, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
  3562  	0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x42, 0x44, 0x0a, 0x2a, 0x69, 0x6f, 0x2e, 0x65, 0x6e, 0x76,
  3563  	0x6f, 0x79, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f,
  3564  	0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x76, 0x34, 0x61,
  3565  	0x6c, 0x70, 0x68, 0x61, 0x42, 0x0c, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x72, 0x6f,
  3566  	0x74, 0x6f, 0x50, 0x01, 0xba, 0x80, 0xc8, 0xd1, 0x06, 0x02, 0x10, 0x03, 0x62, 0x06, 0x70, 0x72,
  3567  	0x6f, 0x74, 0x6f, 0x33,
  3568  }
  3569  
  3570  var (
  3571  	file_envoy_config_cluster_v4alpha_cluster_proto_rawDescOnce sync.Once
  3572  	file_envoy_config_cluster_v4alpha_cluster_proto_rawDescData = file_envoy_config_cluster_v4alpha_cluster_proto_rawDesc
  3573  )
  3574  
  3575  func file_envoy_config_cluster_v4alpha_cluster_proto_rawDescGZIP() []byte {
  3576  	file_envoy_config_cluster_v4alpha_cluster_proto_rawDescOnce.Do(func() {
  3577  		file_envoy_config_cluster_v4alpha_cluster_proto_rawDescData = protoimpl.X.CompressGZIP(file_envoy_config_cluster_v4alpha_cluster_proto_rawDescData)
  3578  	})
  3579  	return file_envoy_config_cluster_v4alpha_cluster_proto_rawDescData
  3580  }
  3581  
  3582  var file_envoy_config_cluster_v4alpha_cluster_proto_enumTypes = make([]protoimpl.EnumInfo, 7)
  3583  var file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes = make([]protoimpl.MessageInfo, 23)
  3584  var file_envoy_config_cluster_v4alpha_cluster_proto_goTypes = []interface{}{
  3585  	(Cluster_DiscoveryType)(0),                                                  // 0: envoy.config.cluster.v4alpha.Cluster.DiscoveryType
  3586  	(Cluster_LbPolicy)(0),                                                       // 1: envoy.config.cluster.v4alpha.Cluster.LbPolicy
  3587  	(Cluster_DnsLookupFamily)(0),                                                // 2: envoy.config.cluster.v4alpha.Cluster.DnsLookupFamily
  3588  	(Cluster_ClusterProtocolSelection)(0),                                       // 3: envoy.config.cluster.v4alpha.Cluster.ClusterProtocolSelection
  3589  	(Cluster_LbSubsetConfig_LbSubsetFallbackPolicy)(0),                          // 4: envoy.config.cluster.v4alpha.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy
  3590  	(Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy)(0), // 5: envoy.config.cluster.v4alpha.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy
  3591  	(Cluster_RingHashLbConfig_HashFunction)(0),                                  // 6: envoy.config.cluster.v4alpha.Cluster.RingHashLbConfig.HashFunction
  3592  	(*ClusterCollection)(nil),                                                   // 7: envoy.config.cluster.v4alpha.ClusterCollection
  3593  	(*Cluster)(nil),                                                             // 8: envoy.config.cluster.v4alpha.Cluster
  3594  	(*LoadBalancingPolicy)(nil),                                                 // 9: envoy.config.cluster.v4alpha.LoadBalancingPolicy
  3595  	(*UpstreamBindConfig)(nil),                                                  // 10: envoy.config.cluster.v4alpha.UpstreamBindConfig
  3596  	(*UpstreamConnectionOptions)(nil),                                           // 11: envoy.config.cluster.v4alpha.UpstreamConnectionOptions
  3597  	(*TrackClusterStats)(nil),                                                   // 12: envoy.config.cluster.v4alpha.TrackClusterStats
  3598  	(*Cluster_TransportSocketMatch)(nil),                                        // 13: envoy.config.cluster.v4alpha.Cluster.TransportSocketMatch
  3599  	(*Cluster_CustomClusterType)(nil),                                           // 14: envoy.config.cluster.v4alpha.Cluster.CustomClusterType
  3600  	(*Cluster_EdsClusterConfig)(nil),                                            // 15: envoy.config.cluster.v4alpha.Cluster.EdsClusterConfig
  3601  	(*Cluster_LbSubsetConfig)(nil),                                              // 16: envoy.config.cluster.v4alpha.Cluster.LbSubsetConfig
  3602  	(*Cluster_LeastRequestLbConfig)(nil),                                        // 17: envoy.config.cluster.v4alpha.Cluster.LeastRequestLbConfig
  3603  	(*Cluster_RingHashLbConfig)(nil),                                            // 18: envoy.config.cluster.v4alpha.Cluster.RingHashLbConfig
  3604  	(*Cluster_MaglevLbConfig)(nil),                                              // 19: envoy.config.cluster.v4alpha.Cluster.MaglevLbConfig
  3605  	(*Cluster_OriginalDstLbConfig)(nil),                                         // 20: envoy.config.cluster.v4alpha.Cluster.OriginalDstLbConfig
  3606  	(*Cluster_CommonLbConfig)(nil),                                              // 21: envoy.config.cluster.v4alpha.Cluster.CommonLbConfig
  3607  	(*Cluster_RefreshRate)(nil),                                                 // 22: envoy.config.cluster.v4alpha.Cluster.RefreshRate
  3608  	(*Cluster_PreconnectPolicy)(nil),                                            // 23: envoy.config.cluster.v4alpha.Cluster.PreconnectPolicy
  3609  	nil,                                                                         // 24: envoy.config.cluster.v4alpha.Cluster.TypedExtensionProtocolOptionsEntry
  3610  	(*Cluster_LbSubsetConfig_LbSubsetSelector)(nil),                             // 25: envoy.config.cluster.v4alpha.Cluster.LbSubsetConfig.LbSubsetSelector
  3611  	(*Cluster_CommonLbConfig_ZoneAwareLbConfig)(nil),                            // 26: envoy.config.cluster.v4alpha.Cluster.CommonLbConfig.ZoneAwareLbConfig
  3612  	(*Cluster_CommonLbConfig_LocalityWeightedLbConfig)(nil),                     // 27: envoy.config.cluster.v4alpha.Cluster.CommonLbConfig.LocalityWeightedLbConfig
  3613  	(*Cluster_CommonLbConfig_ConsistentHashingLbConfig)(nil),                    // 28: envoy.config.cluster.v4alpha.Cluster.CommonLbConfig.ConsistentHashingLbConfig
  3614  	(*LoadBalancingPolicy_Policy)(nil),                                          // 29: envoy.config.cluster.v4alpha.LoadBalancingPolicy.Policy
  3615  	(*v3.CollectionEntry)(nil),                                                  // 30: xds.core.v3.CollectionEntry
  3616  	(*duration.Duration)(nil),                                                   // 31: google.protobuf.Duration
  3617  	(*wrappers.UInt32Value)(nil),                                                // 32: google.protobuf.UInt32Value
  3618  	(*v31.ClusterLoadAssignment)(nil),                                           // 33: envoy.config.endpoint.v3.ClusterLoadAssignment
  3619  	(*v4alpha.HealthCheck)(nil),                                                 // 34: envoy.config.core.v4alpha.HealthCheck
  3620  	(*CircuitBreakers)(nil),                                                     // 35: envoy.config.cluster.v4alpha.CircuitBreakers
  3621  	(*v4alpha.UpstreamHttpProtocolOptions)(nil),                                 // 36: envoy.config.core.v4alpha.UpstreamHttpProtocolOptions
  3622  	(*v4alpha.HttpProtocolOptions)(nil),                                         // 37: envoy.config.core.v4alpha.HttpProtocolOptions
  3623  	(*v4alpha.Http1ProtocolOptions)(nil),                                        // 38: envoy.config.core.v4alpha.Http1ProtocolOptions
  3624  	(*v4alpha.Http2ProtocolOptions)(nil),                                        // 39: envoy.config.core.v4alpha.Http2ProtocolOptions
  3625  	(*v4alpha.Address)(nil),                                                     // 40: envoy.config.core.v4alpha.Address
  3626  	(*OutlierDetection)(nil),                                                    // 41: envoy.config.cluster.v4alpha.OutlierDetection
  3627  	(*v4alpha.BindConfig)(nil),                                                  // 42: envoy.config.core.v4alpha.BindConfig
  3628  	(*v4alpha.TransportSocket)(nil),                                             // 43: envoy.config.core.v4alpha.TransportSocket
  3629  	(*v4alpha.Metadata)(nil),                                                    // 44: envoy.config.core.v4alpha.Metadata
  3630  	(*Filter)(nil),                                                              // 45: envoy.config.cluster.v4alpha.Filter
  3631  	(*v4alpha.ConfigSource)(nil),                                                // 46: envoy.config.core.v4alpha.ConfigSource
  3632  	(*v4alpha.TypedExtensionConfig)(nil),                                        // 47: envoy.config.core.v4alpha.TypedExtensionConfig
  3633  	(*v4alpha.TcpKeepalive)(nil),                                                // 48: envoy.config.core.v4alpha.TcpKeepalive
  3634  	(*_struct.Struct)(nil),                                                      // 49: google.protobuf.Struct
  3635  	(*any.Any)(nil),                                                             // 50: google.protobuf.Any
  3636  	(*v4alpha.RuntimeDouble)(nil),                                               // 51: envoy.config.core.v4alpha.RuntimeDouble
  3637  	(*wrappers.UInt64Value)(nil),                                                // 52: google.protobuf.UInt64Value
  3638  	(*v32.Percent)(nil),                                                         // 53: envoy.type.v3.Percent
  3639  	(*wrappers.DoubleValue)(nil),                                                // 54: google.protobuf.DoubleValue
  3640  }
  3641  var file_envoy_config_cluster_v4alpha_cluster_proto_depIdxs = []int32{
  3642  	30, // 0: envoy.config.cluster.v4alpha.ClusterCollection.entries:type_name -> xds.core.v3.CollectionEntry
  3643  	13, // 1: envoy.config.cluster.v4alpha.Cluster.transport_socket_matches:type_name -> envoy.config.cluster.v4alpha.Cluster.TransportSocketMatch
  3644  	0,  // 2: envoy.config.cluster.v4alpha.Cluster.type:type_name -> envoy.config.cluster.v4alpha.Cluster.DiscoveryType
  3645  	14, // 3: envoy.config.cluster.v4alpha.Cluster.cluster_type:type_name -> envoy.config.cluster.v4alpha.Cluster.CustomClusterType
  3646  	15, // 4: envoy.config.cluster.v4alpha.Cluster.eds_cluster_config:type_name -> envoy.config.cluster.v4alpha.Cluster.EdsClusterConfig
  3647  	31, // 5: envoy.config.cluster.v4alpha.Cluster.connect_timeout:type_name -> google.protobuf.Duration
  3648  	32, // 6: envoy.config.cluster.v4alpha.Cluster.per_connection_buffer_limit_bytes:type_name -> google.protobuf.UInt32Value
  3649  	1,  // 7: envoy.config.cluster.v4alpha.Cluster.lb_policy:type_name -> envoy.config.cluster.v4alpha.Cluster.LbPolicy
  3650  	33, // 8: envoy.config.cluster.v4alpha.Cluster.load_assignment:type_name -> envoy.config.endpoint.v3.ClusterLoadAssignment
  3651  	34, // 9: envoy.config.cluster.v4alpha.Cluster.health_checks:type_name -> envoy.config.core.v4alpha.HealthCheck
  3652  	32, // 10: envoy.config.cluster.v4alpha.Cluster.max_requests_per_connection:type_name -> google.protobuf.UInt32Value
  3653  	35, // 11: envoy.config.cluster.v4alpha.Cluster.circuit_breakers:type_name -> envoy.config.cluster.v4alpha.CircuitBreakers
  3654  	36, // 12: envoy.config.cluster.v4alpha.Cluster.hidden_envoy_deprecated_upstream_http_protocol_options:type_name -> envoy.config.core.v4alpha.UpstreamHttpProtocolOptions
  3655  	37, // 13: envoy.config.cluster.v4alpha.Cluster.hidden_envoy_deprecated_common_http_protocol_options:type_name -> envoy.config.core.v4alpha.HttpProtocolOptions
  3656  	38, // 14: envoy.config.cluster.v4alpha.Cluster.hidden_envoy_deprecated_http_protocol_options:type_name -> envoy.config.core.v4alpha.Http1ProtocolOptions
  3657  	39, // 15: envoy.config.cluster.v4alpha.Cluster.hidden_envoy_deprecated_http2_protocol_options:type_name -> envoy.config.core.v4alpha.Http2ProtocolOptions
  3658  	24, // 16: envoy.config.cluster.v4alpha.Cluster.typed_extension_protocol_options:type_name -> envoy.config.cluster.v4alpha.Cluster.TypedExtensionProtocolOptionsEntry
  3659  	31, // 17: envoy.config.cluster.v4alpha.Cluster.dns_refresh_rate:type_name -> google.protobuf.Duration
  3660  	22, // 18: envoy.config.cluster.v4alpha.Cluster.dns_failure_refresh_rate:type_name -> envoy.config.cluster.v4alpha.Cluster.RefreshRate
  3661  	2,  // 19: envoy.config.cluster.v4alpha.Cluster.dns_lookup_family:type_name -> envoy.config.cluster.v4alpha.Cluster.DnsLookupFamily
  3662  	40, // 20: envoy.config.cluster.v4alpha.Cluster.dns_resolvers:type_name -> envoy.config.core.v4alpha.Address
  3663  	41, // 21: envoy.config.cluster.v4alpha.Cluster.outlier_detection:type_name -> envoy.config.cluster.v4alpha.OutlierDetection
  3664  	31, // 22: envoy.config.cluster.v4alpha.Cluster.cleanup_interval:type_name -> google.protobuf.Duration
  3665  	42, // 23: envoy.config.cluster.v4alpha.Cluster.upstream_bind_config:type_name -> envoy.config.core.v4alpha.BindConfig
  3666  	16, // 24: envoy.config.cluster.v4alpha.Cluster.lb_subset_config:type_name -> envoy.config.cluster.v4alpha.Cluster.LbSubsetConfig
  3667  	18, // 25: envoy.config.cluster.v4alpha.Cluster.ring_hash_lb_config:type_name -> envoy.config.cluster.v4alpha.Cluster.RingHashLbConfig
  3668  	19, // 26: envoy.config.cluster.v4alpha.Cluster.maglev_lb_config:type_name -> envoy.config.cluster.v4alpha.Cluster.MaglevLbConfig
  3669  	20, // 27: envoy.config.cluster.v4alpha.Cluster.original_dst_lb_config:type_name -> envoy.config.cluster.v4alpha.Cluster.OriginalDstLbConfig
  3670  	17, // 28: envoy.config.cluster.v4alpha.Cluster.least_request_lb_config:type_name -> envoy.config.cluster.v4alpha.Cluster.LeastRequestLbConfig
  3671  	21, // 29: envoy.config.cluster.v4alpha.Cluster.common_lb_config:type_name -> envoy.config.cluster.v4alpha.Cluster.CommonLbConfig
  3672  	43, // 30: envoy.config.cluster.v4alpha.Cluster.transport_socket:type_name -> envoy.config.core.v4alpha.TransportSocket
  3673  	44, // 31: envoy.config.cluster.v4alpha.Cluster.metadata:type_name -> envoy.config.core.v4alpha.Metadata
  3674  	3,  // 32: envoy.config.cluster.v4alpha.Cluster.hidden_envoy_deprecated_protocol_selection:type_name -> envoy.config.cluster.v4alpha.Cluster.ClusterProtocolSelection
  3675  	11, // 33: envoy.config.cluster.v4alpha.Cluster.upstream_connection_options:type_name -> envoy.config.cluster.v4alpha.UpstreamConnectionOptions
  3676  	45, // 34: envoy.config.cluster.v4alpha.Cluster.filters:type_name -> envoy.config.cluster.v4alpha.Filter
  3677  	9,  // 35: envoy.config.cluster.v4alpha.Cluster.load_balancing_policy:type_name -> envoy.config.cluster.v4alpha.LoadBalancingPolicy
  3678  	46, // 36: envoy.config.cluster.v4alpha.Cluster.lrs_server:type_name -> envoy.config.core.v4alpha.ConfigSource
  3679  	47, // 37: envoy.config.cluster.v4alpha.Cluster.upstream_config:type_name -> envoy.config.core.v4alpha.TypedExtensionConfig
  3680  	12, // 38: envoy.config.cluster.v4alpha.Cluster.track_cluster_stats:type_name -> envoy.config.cluster.v4alpha.TrackClusterStats
  3681  	23, // 39: envoy.config.cluster.v4alpha.Cluster.preconnect_policy:type_name -> envoy.config.cluster.v4alpha.Cluster.PreconnectPolicy
  3682  	29, // 40: envoy.config.cluster.v4alpha.LoadBalancingPolicy.policies:type_name -> envoy.config.cluster.v4alpha.LoadBalancingPolicy.Policy
  3683  	40, // 41: envoy.config.cluster.v4alpha.UpstreamBindConfig.source_address:type_name -> envoy.config.core.v4alpha.Address
  3684  	48, // 42: envoy.config.cluster.v4alpha.UpstreamConnectionOptions.tcp_keepalive:type_name -> envoy.config.core.v4alpha.TcpKeepalive
  3685  	49, // 43: envoy.config.cluster.v4alpha.Cluster.TransportSocketMatch.match:type_name -> google.protobuf.Struct
  3686  	43, // 44: envoy.config.cluster.v4alpha.Cluster.TransportSocketMatch.transport_socket:type_name -> envoy.config.core.v4alpha.TransportSocket
  3687  	50, // 45: envoy.config.cluster.v4alpha.Cluster.CustomClusterType.typed_config:type_name -> google.protobuf.Any
  3688  	46, // 46: envoy.config.cluster.v4alpha.Cluster.EdsClusterConfig.eds_config:type_name -> envoy.config.core.v4alpha.ConfigSource
  3689  	4,  // 47: envoy.config.cluster.v4alpha.Cluster.LbSubsetConfig.fallback_policy:type_name -> envoy.config.cluster.v4alpha.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy
  3690  	49, // 48: envoy.config.cluster.v4alpha.Cluster.LbSubsetConfig.default_subset:type_name -> google.protobuf.Struct
  3691  	25, // 49: envoy.config.cluster.v4alpha.Cluster.LbSubsetConfig.subset_selectors:type_name -> envoy.config.cluster.v4alpha.Cluster.LbSubsetConfig.LbSubsetSelector
  3692  	32, // 50: envoy.config.cluster.v4alpha.Cluster.LeastRequestLbConfig.choice_count:type_name -> google.protobuf.UInt32Value
  3693  	51, // 51: envoy.config.cluster.v4alpha.Cluster.LeastRequestLbConfig.active_request_bias:type_name -> envoy.config.core.v4alpha.RuntimeDouble
  3694  	52, // 52: envoy.config.cluster.v4alpha.Cluster.RingHashLbConfig.minimum_ring_size:type_name -> google.protobuf.UInt64Value
  3695  	6,  // 53: envoy.config.cluster.v4alpha.Cluster.RingHashLbConfig.hash_function:type_name -> envoy.config.cluster.v4alpha.Cluster.RingHashLbConfig.HashFunction
  3696  	52, // 54: envoy.config.cluster.v4alpha.Cluster.RingHashLbConfig.maximum_ring_size:type_name -> google.protobuf.UInt64Value
  3697  	52, // 55: envoy.config.cluster.v4alpha.Cluster.MaglevLbConfig.table_size:type_name -> google.protobuf.UInt64Value
  3698  	53, // 56: envoy.config.cluster.v4alpha.Cluster.CommonLbConfig.healthy_panic_threshold:type_name -> envoy.type.v3.Percent
  3699  	26, // 57: envoy.config.cluster.v4alpha.Cluster.CommonLbConfig.zone_aware_lb_config:type_name -> envoy.config.cluster.v4alpha.Cluster.CommonLbConfig.ZoneAwareLbConfig
  3700  	27, // 58: envoy.config.cluster.v4alpha.Cluster.CommonLbConfig.locality_weighted_lb_config:type_name -> envoy.config.cluster.v4alpha.Cluster.CommonLbConfig.LocalityWeightedLbConfig
  3701  	31, // 59: envoy.config.cluster.v4alpha.Cluster.CommonLbConfig.update_merge_window:type_name -> google.protobuf.Duration
  3702  	28, // 60: envoy.config.cluster.v4alpha.Cluster.CommonLbConfig.consistent_hashing_lb_config:type_name -> envoy.config.cluster.v4alpha.Cluster.CommonLbConfig.ConsistentHashingLbConfig
  3703  	31, // 61: envoy.config.cluster.v4alpha.Cluster.RefreshRate.base_interval:type_name -> google.protobuf.Duration
  3704  	31, // 62: envoy.config.cluster.v4alpha.Cluster.RefreshRate.max_interval:type_name -> google.protobuf.Duration
  3705  	54, // 63: envoy.config.cluster.v4alpha.Cluster.PreconnectPolicy.per_upstream_preconnect_ratio:type_name -> google.protobuf.DoubleValue
  3706  	54, // 64: envoy.config.cluster.v4alpha.Cluster.PreconnectPolicy.predictive_preconnect_ratio:type_name -> google.protobuf.DoubleValue
  3707  	50, // 65: envoy.config.cluster.v4alpha.Cluster.TypedExtensionProtocolOptionsEntry.value:type_name -> google.protobuf.Any
  3708  	5,  // 66: envoy.config.cluster.v4alpha.Cluster.LbSubsetConfig.LbSubsetSelector.fallback_policy:type_name -> envoy.config.cluster.v4alpha.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy
  3709  	53, // 67: envoy.config.cluster.v4alpha.Cluster.CommonLbConfig.ZoneAwareLbConfig.routing_enabled:type_name -> envoy.type.v3.Percent
  3710  	52, // 68: envoy.config.cluster.v4alpha.Cluster.CommonLbConfig.ZoneAwareLbConfig.min_cluster_size:type_name -> google.protobuf.UInt64Value
  3711  	32, // 69: envoy.config.cluster.v4alpha.Cluster.CommonLbConfig.ConsistentHashingLbConfig.hash_balance_factor:type_name -> google.protobuf.UInt32Value
  3712  	50, // 70: envoy.config.cluster.v4alpha.LoadBalancingPolicy.Policy.typed_config:type_name -> google.protobuf.Any
  3713  	71, // [71:71] is the sub-list for method output_type
  3714  	71, // [71:71] is the sub-list for method input_type
  3715  	71, // [71:71] is the sub-list for extension type_name
  3716  	71, // [71:71] is the sub-list for extension extendee
  3717  	0,  // [0:71] is the sub-list for field type_name
  3718  }
  3719  
  3720  func init() { file_envoy_config_cluster_v4alpha_cluster_proto_init() }
  3721  func file_envoy_config_cluster_v4alpha_cluster_proto_init() {
  3722  	if File_envoy_config_cluster_v4alpha_cluster_proto != nil {
  3723  		return
  3724  	}
  3725  	file_envoy_config_cluster_v4alpha_circuit_breaker_proto_init()
  3726  	file_envoy_config_cluster_v4alpha_filter_proto_init()
  3727  	file_envoy_config_cluster_v4alpha_outlier_detection_proto_init()
  3728  	if !protoimpl.UnsafeEnabled {
  3729  		file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
  3730  			switch v := v.(*ClusterCollection); i {
  3731  			case 0:
  3732  				return &v.state
  3733  			case 1:
  3734  				return &v.sizeCache
  3735  			case 2:
  3736  				return &v.unknownFields
  3737  			default:
  3738  				return nil
  3739  			}
  3740  		}
  3741  		file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
  3742  			switch v := v.(*Cluster); i {
  3743  			case 0:
  3744  				return &v.state
  3745  			case 1:
  3746  				return &v.sizeCache
  3747  			case 2:
  3748  				return &v.unknownFields
  3749  			default:
  3750  				return nil
  3751  			}
  3752  		}
  3753  		file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
  3754  			switch v := v.(*LoadBalancingPolicy); i {
  3755  			case 0:
  3756  				return &v.state
  3757  			case 1:
  3758  				return &v.sizeCache
  3759  			case 2:
  3760  				return &v.unknownFields
  3761  			default:
  3762  				return nil
  3763  			}
  3764  		}
  3765  		file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
  3766  			switch v := v.(*UpstreamBindConfig); i {
  3767  			case 0:
  3768  				return &v.state
  3769  			case 1:
  3770  				return &v.sizeCache
  3771  			case 2:
  3772  				return &v.unknownFields
  3773  			default:
  3774  				return nil
  3775  			}
  3776  		}
  3777  		file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
  3778  			switch v := v.(*UpstreamConnectionOptions); i {
  3779  			case 0:
  3780  				return &v.state
  3781  			case 1:
  3782  				return &v.sizeCache
  3783  			case 2:
  3784  				return &v.unknownFields
  3785  			default:
  3786  				return nil
  3787  			}
  3788  		}
  3789  		file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
  3790  			switch v := v.(*TrackClusterStats); i {
  3791  			case 0:
  3792  				return &v.state
  3793  			case 1:
  3794  				return &v.sizeCache
  3795  			case 2:
  3796  				return &v.unknownFields
  3797  			default:
  3798  				return nil
  3799  			}
  3800  		}
  3801  		file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
  3802  			switch v := v.(*Cluster_TransportSocketMatch); i {
  3803  			case 0:
  3804  				return &v.state
  3805  			case 1:
  3806  				return &v.sizeCache
  3807  			case 2:
  3808  				return &v.unknownFields
  3809  			default:
  3810  				return nil
  3811  			}
  3812  		}
  3813  		file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
  3814  			switch v := v.(*Cluster_CustomClusterType); i {
  3815  			case 0:
  3816  				return &v.state
  3817  			case 1:
  3818  				return &v.sizeCache
  3819  			case 2:
  3820  				return &v.unknownFields
  3821  			default:
  3822  				return nil
  3823  			}
  3824  		}
  3825  		file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
  3826  			switch v := v.(*Cluster_EdsClusterConfig); i {
  3827  			case 0:
  3828  				return &v.state
  3829  			case 1:
  3830  				return &v.sizeCache
  3831  			case 2:
  3832  				return &v.unknownFields
  3833  			default:
  3834  				return nil
  3835  			}
  3836  		}
  3837  		file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
  3838  			switch v := v.(*Cluster_LbSubsetConfig); i {
  3839  			case 0:
  3840  				return &v.state
  3841  			case 1:
  3842  				return &v.sizeCache
  3843  			case 2:
  3844  				return &v.unknownFields
  3845  			default:
  3846  				return nil
  3847  			}
  3848  		}
  3849  		file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
  3850  			switch v := v.(*Cluster_LeastRequestLbConfig); i {
  3851  			case 0:
  3852  				return &v.state
  3853  			case 1:
  3854  				return &v.sizeCache
  3855  			case 2:
  3856  				return &v.unknownFields
  3857  			default:
  3858  				return nil
  3859  			}
  3860  		}
  3861  		file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
  3862  			switch v := v.(*Cluster_RingHashLbConfig); i {
  3863  			case 0:
  3864  				return &v.state
  3865  			case 1:
  3866  				return &v.sizeCache
  3867  			case 2:
  3868  				return &v.unknownFields
  3869  			default:
  3870  				return nil
  3871  			}
  3872  		}
  3873  		file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
  3874  			switch v := v.(*Cluster_MaglevLbConfig); i {
  3875  			case 0:
  3876  				return &v.state
  3877  			case 1:
  3878  				return &v.sizeCache
  3879  			case 2:
  3880  				return &v.unknownFields
  3881  			default:
  3882  				return nil
  3883  			}
  3884  		}
  3885  		file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
  3886  			switch v := v.(*Cluster_OriginalDstLbConfig); i {
  3887  			case 0:
  3888  				return &v.state
  3889  			case 1:
  3890  				return &v.sizeCache
  3891  			case 2:
  3892  				return &v.unknownFields
  3893  			default:
  3894  				return nil
  3895  			}
  3896  		}
  3897  		file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
  3898  			switch v := v.(*Cluster_CommonLbConfig); i {
  3899  			case 0:
  3900  				return &v.state
  3901  			case 1:
  3902  				return &v.sizeCache
  3903  			case 2:
  3904  				return &v.unknownFields
  3905  			default:
  3906  				return nil
  3907  			}
  3908  		}
  3909  		file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
  3910  			switch v := v.(*Cluster_RefreshRate); i {
  3911  			case 0:
  3912  				return &v.state
  3913  			case 1:
  3914  				return &v.sizeCache
  3915  			case 2:
  3916  				return &v.unknownFields
  3917  			default:
  3918  				return nil
  3919  			}
  3920  		}
  3921  		file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
  3922  			switch v := v.(*Cluster_PreconnectPolicy); i {
  3923  			case 0:
  3924  				return &v.state
  3925  			case 1:
  3926  				return &v.sizeCache
  3927  			case 2:
  3928  				return &v.unknownFields
  3929  			default:
  3930  				return nil
  3931  			}
  3932  		}
  3933  		file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
  3934  			switch v := v.(*Cluster_LbSubsetConfig_LbSubsetSelector); i {
  3935  			case 0:
  3936  				return &v.state
  3937  			case 1:
  3938  				return &v.sizeCache
  3939  			case 2:
  3940  				return &v.unknownFields
  3941  			default:
  3942  				return nil
  3943  			}
  3944  		}
  3945  		file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
  3946  			switch v := v.(*Cluster_CommonLbConfig_ZoneAwareLbConfig); i {
  3947  			case 0:
  3948  				return &v.state
  3949  			case 1:
  3950  				return &v.sizeCache
  3951  			case 2:
  3952  				return &v.unknownFields
  3953  			default:
  3954  				return nil
  3955  			}
  3956  		}
  3957  		file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
  3958  			switch v := v.(*Cluster_CommonLbConfig_LocalityWeightedLbConfig); i {
  3959  			case 0:
  3960  				return &v.state
  3961  			case 1:
  3962  				return &v.sizeCache
  3963  			case 2:
  3964  				return &v.unknownFields
  3965  			default:
  3966  				return nil
  3967  			}
  3968  		}
  3969  		file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
  3970  			switch v := v.(*Cluster_CommonLbConfig_ConsistentHashingLbConfig); i {
  3971  			case 0:
  3972  				return &v.state
  3973  			case 1:
  3974  				return &v.sizeCache
  3975  			case 2:
  3976  				return &v.unknownFields
  3977  			default:
  3978  				return nil
  3979  			}
  3980  		}
  3981  		file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
  3982  			switch v := v.(*LoadBalancingPolicy_Policy); i {
  3983  			case 0:
  3984  				return &v.state
  3985  			case 1:
  3986  				return &v.sizeCache
  3987  			case 2:
  3988  				return &v.unknownFields
  3989  			default:
  3990  				return nil
  3991  			}
  3992  		}
  3993  	}
  3994  	file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[1].OneofWrappers = []interface{}{
  3995  		(*Cluster_Type)(nil),
  3996  		(*Cluster_ClusterType)(nil),
  3997  		(*Cluster_RingHashLbConfig_)(nil),
  3998  		(*Cluster_MaglevLbConfig_)(nil),
  3999  		(*Cluster_OriginalDstLbConfig_)(nil),
  4000  		(*Cluster_LeastRequestLbConfig_)(nil),
  4001  	}
  4002  	file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes[14].OneofWrappers = []interface{}{
  4003  		(*Cluster_CommonLbConfig_ZoneAwareLbConfig_)(nil),
  4004  		(*Cluster_CommonLbConfig_LocalityWeightedLbConfig_)(nil),
  4005  	}
  4006  	type x struct{}
  4007  	out := protoimpl.TypeBuilder{
  4008  		File: protoimpl.DescBuilder{
  4009  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
  4010  			RawDescriptor: file_envoy_config_cluster_v4alpha_cluster_proto_rawDesc,
  4011  			NumEnums:      7,
  4012  			NumMessages:   23,
  4013  			NumExtensions: 0,
  4014  			NumServices:   0,
  4015  		},
  4016  		GoTypes:           file_envoy_config_cluster_v4alpha_cluster_proto_goTypes,
  4017  		DependencyIndexes: file_envoy_config_cluster_v4alpha_cluster_proto_depIdxs,
  4018  		EnumInfos:         file_envoy_config_cluster_v4alpha_cluster_proto_enumTypes,
  4019  		MessageInfos:      file_envoy_config_cluster_v4alpha_cluster_proto_msgTypes,
  4020  	}.Build()
  4021  	File_envoy_config_cluster_v4alpha_cluster_proto = out.File
  4022  	file_envoy_config_cluster_v4alpha_cluster_proto_rawDesc = nil
  4023  	file_envoy_config_cluster_v4alpha_cluster_proto_goTypes = nil
  4024  	file_envoy_config_cluster_v4alpha_cluster_proto_depIdxs = nil
  4025  }
  4026  

View as plain text