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