github.com/hxx258456/ccgo@v0.0.5-0.20230213014102-48b35f46f66f/go-control-plane/envoy/config/cluster/v3/cluster.pb.go (about)

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