github.com/hxx258456/ccgo@v0.0.5-0.20230213014102-48b35f46f66f/grpc/internal/proto/grpc_service_config/service_config.pb.go (about)

     1  // Copyright 2016 The gRPC Authors
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //     http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  // A ServiceConfig is supplied when a service is deployed. It mostly contains
    16  // parameters for how clients that connect to the service should behave (for
    17  // example, the load balancing policy to use to pick between service replicas).
    18  //
    19  // The configuration options provided here act as overrides to automatically
    20  // chosen option values. Service owners should be conservative in specifying
    21  // options as the system is likely to choose better values for these options in
    22  // the vast majority of cases. In other words, please specify a configuration
    23  // option only if you really have to, and avoid copy-paste inclusion of configs.
    24  
    25  // Code generated by protoc-gen-go. DO NOT EDIT.
    26  // versions:
    27  // 	protoc-gen-go v1.25.0
    28  // 	protoc        v3.14.0
    29  // source: grpc/service_config/service_config.proto
    30  
    31  package grpc_service_config
    32  
    33  import (
    34  	proto "github.com/golang/protobuf/proto"
    35  	code "google.golang.org/genproto/googleapis/rpc/code"
    36  	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
    37  	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
    38  	durationpb "google.golang.org/protobuf/types/known/durationpb"
    39  	wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
    40  	reflect "reflect"
    41  	sync "sync"
    42  )
    43  
    44  const (
    45  	// Verify that this generated code is sufficiently up-to-date.
    46  	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
    47  	// Verify that runtime/protoimpl is sufficiently up-to-date.
    48  	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
    49  )
    50  
    51  // This is a compile-time assertion that a sufficiently up-to-date version
    52  // of the legacy proto package is being used.
    53  const _ = proto.ProtoPackageIsVersion4
    54  
    55  // Load balancing policy.
    56  //
    57  // Note that load_balancing_policy is deprecated in favor of
    58  // load_balancing_config; the former will be used only if the latter
    59  // is unset.
    60  //
    61  // If no LB policy is configured here, then the default is pick_first.
    62  // If the policy name is set via the client API, that value overrides
    63  // the value specified here.
    64  //
    65  // If the deprecated load_balancing_policy field is used, note that if the
    66  // resolver returns at least one balancer address (as opposed to backend
    67  // addresses), gRPC will use grpclb (see
    68  // https://github.com/grpc/grpc/blob/master/doc/load-balancing.md),
    69  // regardless of what policy is configured here.  However, if the resolver
    70  // returns at least one backend address in addition to the balancer
    71  // address(es), the client may fall back to the requested policy if it
    72  // is unable to reach any of the grpclb load balancers.
    73  type ServiceConfig_LoadBalancingPolicy int32
    74  
    75  const (
    76  	ServiceConfig_UNSPECIFIED ServiceConfig_LoadBalancingPolicy = 0
    77  	ServiceConfig_ROUND_ROBIN ServiceConfig_LoadBalancingPolicy = 1
    78  )
    79  
    80  // Enum value maps for ServiceConfig_LoadBalancingPolicy.
    81  var (
    82  	ServiceConfig_LoadBalancingPolicy_name = map[int32]string{
    83  		0: "UNSPECIFIED",
    84  		1: "ROUND_ROBIN",
    85  	}
    86  	ServiceConfig_LoadBalancingPolicy_value = map[string]int32{
    87  		"UNSPECIFIED": 0,
    88  		"ROUND_ROBIN": 1,
    89  	}
    90  )
    91  
    92  func (x ServiceConfig_LoadBalancingPolicy) Enum() *ServiceConfig_LoadBalancingPolicy {
    93  	p := new(ServiceConfig_LoadBalancingPolicy)
    94  	*p = x
    95  	return p
    96  }
    97  
    98  func (x ServiceConfig_LoadBalancingPolicy) String() string {
    99  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   100  }
   101  
   102  func (ServiceConfig_LoadBalancingPolicy) Descriptor() protoreflect.EnumDescriptor {
   103  	return file_grpc_service_config_service_config_proto_enumTypes[0].Descriptor()
   104  }
   105  
   106  func (ServiceConfig_LoadBalancingPolicy) Type() protoreflect.EnumType {
   107  	return &file_grpc_service_config_service_config_proto_enumTypes[0]
   108  }
   109  
   110  func (x ServiceConfig_LoadBalancingPolicy) Number() protoreflect.EnumNumber {
   111  	return protoreflect.EnumNumber(x)
   112  }
   113  
   114  // Deprecated: Use ServiceConfig_LoadBalancingPolicy.Descriptor instead.
   115  func (ServiceConfig_LoadBalancingPolicy) EnumDescriptor() ([]byte, []int) {
   116  	return file_grpc_service_config_service_config_proto_rawDescGZIP(), []int{11, 0}
   117  }
   118  
   119  // Configuration for a method.
   120  type MethodConfig struct {
   121  	state         protoimpl.MessageState
   122  	sizeCache     protoimpl.SizeCache
   123  	unknownFields protoimpl.UnknownFields
   124  
   125  	Name []*MethodConfig_Name `protobuf:"bytes,1,rep,name=name,proto3" json:"name,omitempty"`
   126  	// Whether RPCs sent to this method should wait until the connection is
   127  	// ready by default. If false, the RPC will abort immediately if there is
   128  	// a transient failure connecting to the server. Otherwise, gRPC will
   129  	// attempt to connect until the deadline is exceeded.
   130  	//
   131  	// The value specified via the gRPC client API will override the value
   132  	// set here. However, note that setting the value in the client API will
   133  	// also affect transient errors encountered during name resolution, which
   134  	// cannot be caught by the value here, since the service config is
   135  	// obtained by the gRPC client via name resolution.
   136  	WaitForReady *wrapperspb.BoolValue `protobuf:"bytes,2,opt,name=wait_for_ready,json=waitForReady,proto3" json:"wait_for_ready,omitempty"`
   137  	// The default timeout in seconds for RPCs sent to this method. This can be
   138  	// overridden in code. If no reply is received in the specified amount of
   139  	// time, the request is aborted and a DEADLINE_EXCEEDED error status
   140  	// is returned to the caller.
   141  	//
   142  	// The actual deadline used will be the minimum of the value specified here
   143  	// and the value set by the application via the gRPC client API.  If either
   144  	// one is not set, then the other will be used.  If neither is set, then the
   145  	// request has no deadline.
   146  	Timeout *durationpb.Duration `protobuf:"bytes,3,opt,name=timeout,proto3" json:"timeout,omitempty"`
   147  	// The maximum allowed payload size for an individual request or object in a
   148  	// stream (client->server) in bytes. The size which is measured is the
   149  	// serialized payload after per-message compression (but before stream
   150  	// compression) in bytes. This applies both to streaming and non-streaming
   151  	// requests.
   152  	//
   153  	// The actual value used is the minimum of the value specified here and the
   154  	// value set by the application via the gRPC client API.  If either one is
   155  	// not set, then the other will be used.  If neither is set, then the
   156  	// built-in default is used.
   157  	//
   158  	// If a client attempts to send an object larger than this value, it will not
   159  	// be sent and the client will see a ClientError.
   160  	// Note that 0 is a valid value, meaning that the request message
   161  	// must be empty.
   162  	MaxRequestMessageBytes *wrapperspb.UInt32Value `protobuf:"bytes,4,opt,name=max_request_message_bytes,json=maxRequestMessageBytes,proto3" json:"max_request_message_bytes,omitempty"`
   163  	// The maximum allowed payload size for an individual response or object in a
   164  	// stream (server->client) in bytes. The size which is measured is the
   165  	// serialized payload after per-message compression (but before stream
   166  	// compression) in bytes. This applies both to streaming and non-streaming
   167  	// requests.
   168  	//
   169  	// The actual value used is the minimum of the value specified here and the
   170  	// value set by the application via the gRPC client API.  If either one is
   171  	// not set, then the other will be used.  If neither is set, then the
   172  	// built-in default is used.
   173  	//
   174  	// If a server attempts to send an object larger than this value, it will not
   175  	// be sent, and a ServerError will be sent to the client instead.
   176  	// Note that 0 is a valid value, meaning that the response message
   177  	// must be empty.
   178  	MaxResponseMessageBytes *wrapperspb.UInt32Value `protobuf:"bytes,5,opt,name=max_response_message_bytes,json=maxResponseMessageBytes,proto3" json:"max_response_message_bytes,omitempty"`
   179  	// Only one of retry_policy or hedging_policy may be set. If neither is set,
   180  	// RPCs will not be retried or hedged.
   181  	//
   182  	// Types that are assignable to RetryOrHedgingPolicy:
   183  	//	*MethodConfig_RetryPolicy_
   184  	//	*MethodConfig_HedgingPolicy_
   185  	RetryOrHedgingPolicy isMethodConfig_RetryOrHedgingPolicy `protobuf_oneof:"retry_or_hedging_policy"`
   186  }
   187  
   188  func (x *MethodConfig) Reset() {
   189  	*x = MethodConfig{}
   190  	if protoimpl.UnsafeEnabled {
   191  		mi := &file_grpc_service_config_service_config_proto_msgTypes[0]
   192  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   193  		ms.StoreMessageInfo(mi)
   194  	}
   195  }
   196  
   197  func (x *MethodConfig) String() string {
   198  	return protoimpl.X.MessageStringOf(x)
   199  }
   200  
   201  func (*MethodConfig) ProtoMessage() {}
   202  
   203  func (x *MethodConfig) ProtoReflect() protoreflect.Message {
   204  	mi := &file_grpc_service_config_service_config_proto_msgTypes[0]
   205  	if protoimpl.UnsafeEnabled && x != nil {
   206  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   207  		if ms.LoadMessageInfo() == nil {
   208  			ms.StoreMessageInfo(mi)
   209  		}
   210  		return ms
   211  	}
   212  	return mi.MessageOf(x)
   213  }
   214  
   215  // Deprecated: Use MethodConfig.ProtoReflect.Descriptor instead.
   216  func (*MethodConfig) Descriptor() ([]byte, []int) {
   217  	return file_grpc_service_config_service_config_proto_rawDescGZIP(), []int{0}
   218  }
   219  
   220  func (x *MethodConfig) GetName() []*MethodConfig_Name {
   221  	if x != nil {
   222  		return x.Name
   223  	}
   224  	return nil
   225  }
   226  
   227  func (x *MethodConfig) GetWaitForReady() *wrapperspb.BoolValue {
   228  	if x != nil {
   229  		return x.WaitForReady
   230  	}
   231  	return nil
   232  }
   233  
   234  func (x *MethodConfig) GetTimeout() *durationpb.Duration {
   235  	if x != nil {
   236  		return x.Timeout
   237  	}
   238  	return nil
   239  }
   240  
   241  func (x *MethodConfig) GetMaxRequestMessageBytes() *wrapperspb.UInt32Value {
   242  	if x != nil {
   243  		return x.MaxRequestMessageBytes
   244  	}
   245  	return nil
   246  }
   247  
   248  func (x *MethodConfig) GetMaxResponseMessageBytes() *wrapperspb.UInt32Value {
   249  	if x != nil {
   250  		return x.MaxResponseMessageBytes
   251  	}
   252  	return nil
   253  }
   254  
   255  func (m *MethodConfig) GetRetryOrHedgingPolicy() isMethodConfig_RetryOrHedgingPolicy {
   256  	if m != nil {
   257  		return m.RetryOrHedgingPolicy
   258  	}
   259  	return nil
   260  }
   261  
   262  func (x *MethodConfig) GetRetryPolicy() *MethodConfig_RetryPolicy {
   263  	if x, ok := x.GetRetryOrHedgingPolicy().(*MethodConfig_RetryPolicy_); ok {
   264  		return x.RetryPolicy
   265  	}
   266  	return nil
   267  }
   268  
   269  func (x *MethodConfig) GetHedgingPolicy() *MethodConfig_HedgingPolicy {
   270  	if x, ok := x.GetRetryOrHedgingPolicy().(*MethodConfig_HedgingPolicy_); ok {
   271  		return x.HedgingPolicy
   272  	}
   273  	return nil
   274  }
   275  
   276  type isMethodConfig_RetryOrHedgingPolicy interface {
   277  	isMethodConfig_RetryOrHedgingPolicy()
   278  }
   279  
   280  type MethodConfig_RetryPolicy_ struct {
   281  	RetryPolicy *MethodConfig_RetryPolicy `protobuf:"bytes,6,opt,name=retry_policy,json=retryPolicy,proto3,oneof"`
   282  }
   283  
   284  type MethodConfig_HedgingPolicy_ struct {
   285  	HedgingPolicy *MethodConfig_HedgingPolicy `protobuf:"bytes,7,opt,name=hedging_policy,json=hedgingPolicy,proto3,oneof"`
   286  }
   287  
   288  func (*MethodConfig_RetryPolicy_) isMethodConfig_RetryOrHedgingPolicy() {}
   289  
   290  func (*MethodConfig_HedgingPolicy_) isMethodConfig_RetryOrHedgingPolicy() {}
   291  
   292  // Configuration for pick_first LB policy.
   293  type PickFirstConfig struct {
   294  	state         protoimpl.MessageState
   295  	sizeCache     protoimpl.SizeCache
   296  	unknownFields protoimpl.UnknownFields
   297  }
   298  
   299  func (x *PickFirstConfig) Reset() {
   300  	*x = PickFirstConfig{}
   301  	if protoimpl.UnsafeEnabled {
   302  		mi := &file_grpc_service_config_service_config_proto_msgTypes[1]
   303  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   304  		ms.StoreMessageInfo(mi)
   305  	}
   306  }
   307  
   308  func (x *PickFirstConfig) String() string {
   309  	return protoimpl.X.MessageStringOf(x)
   310  }
   311  
   312  func (*PickFirstConfig) ProtoMessage() {}
   313  
   314  func (x *PickFirstConfig) ProtoReflect() protoreflect.Message {
   315  	mi := &file_grpc_service_config_service_config_proto_msgTypes[1]
   316  	if protoimpl.UnsafeEnabled && x != nil {
   317  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   318  		if ms.LoadMessageInfo() == nil {
   319  			ms.StoreMessageInfo(mi)
   320  		}
   321  		return ms
   322  	}
   323  	return mi.MessageOf(x)
   324  }
   325  
   326  // Deprecated: Use PickFirstConfig.ProtoReflect.Descriptor instead.
   327  func (*PickFirstConfig) Descriptor() ([]byte, []int) {
   328  	return file_grpc_service_config_service_config_proto_rawDescGZIP(), []int{1}
   329  }
   330  
   331  // Configuration for round_robin LB policy.
   332  type RoundRobinConfig struct {
   333  	state         protoimpl.MessageState
   334  	sizeCache     protoimpl.SizeCache
   335  	unknownFields protoimpl.UnknownFields
   336  }
   337  
   338  func (x *RoundRobinConfig) Reset() {
   339  	*x = RoundRobinConfig{}
   340  	if protoimpl.UnsafeEnabled {
   341  		mi := &file_grpc_service_config_service_config_proto_msgTypes[2]
   342  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   343  		ms.StoreMessageInfo(mi)
   344  	}
   345  }
   346  
   347  func (x *RoundRobinConfig) String() string {
   348  	return protoimpl.X.MessageStringOf(x)
   349  }
   350  
   351  func (*RoundRobinConfig) ProtoMessage() {}
   352  
   353  func (x *RoundRobinConfig) ProtoReflect() protoreflect.Message {
   354  	mi := &file_grpc_service_config_service_config_proto_msgTypes[2]
   355  	if protoimpl.UnsafeEnabled && x != nil {
   356  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   357  		if ms.LoadMessageInfo() == nil {
   358  			ms.StoreMessageInfo(mi)
   359  		}
   360  		return ms
   361  	}
   362  	return mi.MessageOf(x)
   363  }
   364  
   365  // Deprecated: Use RoundRobinConfig.ProtoReflect.Descriptor instead.
   366  func (*RoundRobinConfig) Descriptor() ([]byte, []int) {
   367  	return file_grpc_service_config_service_config_proto_rawDescGZIP(), []int{2}
   368  }
   369  
   370  // Configuration for priority LB policy.
   371  type PriorityLoadBalancingPolicyConfig struct {
   372  	state         protoimpl.MessageState
   373  	sizeCache     protoimpl.SizeCache
   374  	unknownFields protoimpl.UnknownFields
   375  
   376  	Children map[string]*PriorityLoadBalancingPolicyConfig_Child `protobuf:"bytes,1,rep,name=children,proto3" json:"children,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
   377  	// A list of child names in decreasing priority order
   378  	// (i.e., first element is the highest priority).
   379  	Priorities []string `protobuf:"bytes,2,rep,name=priorities,proto3" json:"priorities,omitempty"`
   380  }
   381  
   382  func (x *PriorityLoadBalancingPolicyConfig) Reset() {
   383  	*x = PriorityLoadBalancingPolicyConfig{}
   384  	if protoimpl.UnsafeEnabled {
   385  		mi := &file_grpc_service_config_service_config_proto_msgTypes[3]
   386  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   387  		ms.StoreMessageInfo(mi)
   388  	}
   389  }
   390  
   391  func (x *PriorityLoadBalancingPolicyConfig) String() string {
   392  	return protoimpl.X.MessageStringOf(x)
   393  }
   394  
   395  func (*PriorityLoadBalancingPolicyConfig) ProtoMessage() {}
   396  
   397  func (x *PriorityLoadBalancingPolicyConfig) ProtoReflect() protoreflect.Message {
   398  	mi := &file_grpc_service_config_service_config_proto_msgTypes[3]
   399  	if protoimpl.UnsafeEnabled && x != nil {
   400  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   401  		if ms.LoadMessageInfo() == nil {
   402  			ms.StoreMessageInfo(mi)
   403  		}
   404  		return ms
   405  	}
   406  	return mi.MessageOf(x)
   407  }
   408  
   409  // Deprecated: Use PriorityLoadBalancingPolicyConfig.ProtoReflect.Descriptor instead.
   410  func (*PriorityLoadBalancingPolicyConfig) Descriptor() ([]byte, []int) {
   411  	return file_grpc_service_config_service_config_proto_rawDescGZIP(), []int{3}
   412  }
   413  
   414  func (x *PriorityLoadBalancingPolicyConfig) GetChildren() map[string]*PriorityLoadBalancingPolicyConfig_Child {
   415  	if x != nil {
   416  		return x.Children
   417  	}
   418  	return nil
   419  }
   420  
   421  func (x *PriorityLoadBalancingPolicyConfig) GetPriorities() []string {
   422  	if x != nil {
   423  		return x.Priorities
   424  	}
   425  	return nil
   426  }
   427  
   428  // Configuration for weighted_target LB policy.
   429  type WeightedTargetLoadBalancingPolicyConfig struct {
   430  	state         protoimpl.MessageState
   431  	sizeCache     protoimpl.SizeCache
   432  	unknownFields protoimpl.UnknownFields
   433  
   434  	Targets map[string]*WeightedTargetLoadBalancingPolicyConfig_Target `protobuf:"bytes,1,rep,name=targets,proto3" json:"targets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
   435  }
   436  
   437  func (x *WeightedTargetLoadBalancingPolicyConfig) Reset() {
   438  	*x = WeightedTargetLoadBalancingPolicyConfig{}
   439  	if protoimpl.UnsafeEnabled {
   440  		mi := &file_grpc_service_config_service_config_proto_msgTypes[4]
   441  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   442  		ms.StoreMessageInfo(mi)
   443  	}
   444  }
   445  
   446  func (x *WeightedTargetLoadBalancingPolicyConfig) String() string {
   447  	return protoimpl.X.MessageStringOf(x)
   448  }
   449  
   450  func (*WeightedTargetLoadBalancingPolicyConfig) ProtoMessage() {}
   451  
   452  func (x *WeightedTargetLoadBalancingPolicyConfig) ProtoReflect() protoreflect.Message {
   453  	mi := &file_grpc_service_config_service_config_proto_msgTypes[4]
   454  	if protoimpl.UnsafeEnabled && x != nil {
   455  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   456  		if ms.LoadMessageInfo() == nil {
   457  			ms.StoreMessageInfo(mi)
   458  		}
   459  		return ms
   460  	}
   461  	return mi.MessageOf(x)
   462  }
   463  
   464  // Deprecated: Use WeightedTargetLoadBalancingPolicyConfig.ProtoReflect.Descriptor instead.
   465  func (*WeightedTargetLoadBalancingPolicyConfig) Descriptor() ([]byte, []int) {
   466  	return file_grpc_service_config_service_config_proto_rawDescGZIP(), []int{4}
   467  }
   468  
   469  func (x *WeightedTargetLoadBalancingPolicyConfig) GetTargets() map[string]*WeightedTargetLoadBalancingPolicyConfig_Target {
   470  	if x != nil {
   471  		return x.Targets
   472  	}
   473  	return nil
   474  }
   475  
   476  // Configuration for grpclb LB policy.
   477  type GrpcLbConfig struct {
   478  	state         protoimpl.MessageState
   479  	sizeCache     protoimpl.SizeCache
   480  	unknownFields protoimpl.UnknownFields
   481  
   482  	// Optional.  What LB policy to use for routing between the backend
   483  	// addresses.  If unset, defaults to round_robin.
   484  	// Currently, the only supported values are round_robin and pick_first.
   485  	// Note that this will be used both in balancer mode and in fallback mode.
   486  	// Multiple LB policies can be specified; clients will iterate through
   487  	// the list in order and stop at the first policy that they support.
   488  	ChildPolicy []*LoadBalancingConfig `protobuf:"bytes,1,rep,name=child_policy,json=childPolicy,proto3" json:"child_policy,omitempty"`
   489  	// Optional.  If specified, overrides the name of the service to be sent to
   490  	// the balancer.
   491  	ServiceName string `protobuf:"bytes,2,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"`
   492  }
   493  
   494  func (x *GrpcLbConfig) Reset() {
   495  	*x = GrpcLbConfig{}
   496  	if protoimpl.UnsafeEnabled {
   497  		mi := &file_grpc_service_config_service_config_proto_msgTypes[5]
   498  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   499  		ms.StoreMessageInfo(mi)
   500  	}
   501  }
   502  
   503  func (x *GrpcLbConfig) String() string {
   504  	return protoimpl.X.MessageStringOf(x)
   505  }
   506  
   507  func (*GrpcLbConfig) ProtoMessage() {}
   508  
   509  func (x *GrpcLbConfig) ProtoReflect() protoreflect.Message {
   510  	mi := &file_grpc_service_config_service_config_proto_msgTypes[5]
   511  	if protoimpl.UnsafeEnabled && x != nil {
   512  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   513  		if ms.LoadMessageInfo() == nil {
   514  			ms.StoreMessageInfo(mi)
   515  		}
   516  		return ms
   517  	}
   518  	return mi.MessageOf(x)
   519  }
   520  
   521  // Deprecated: Use GrpcLbConfig.ProtoReflect.Descriptor instead.
   522  func (*GrpcLbConfig) Descriptor() ([]byte, []int) {
   523  	return file_grpc_service_config_service_config_proto_rawDescGZIP(), []int{5}
   524  }
   525  
   526  func (x *GrpcLbConfig) GetChildPolicy() []*LoadBalancingConfig {
   527  	if x != nil {
   528  		return x.ChildPolicy
   529  	}
   530  	return nil
   531  }
   532  
   533  func (x *GrpcLbConfig) GetServiceName() string {
   534  	if x != nil {
   535  		return x.ServiceName
   536  	}
   537  	return ""
   538  }
   539  
   540  // Configuration for the cds LB policy.
   541  type CdsConfig struct {
   542  	state         protoimpl.MessageState
   543  	sizeCache     protoimpl.SizeCache
   544  	unknownFields protoimpl.UnknownFields
   545  
   546  	Cluster string `protobuf:"bytes,1,opt,name=cluster,proto3" json:"cluster,omitempty"` // Required.
   547  }
   548  
   549  func (x *CdsConfig) Reset() {
   550  	*x = CdsConfig{}
   551  	if protoimpl.UnsafeEnabled {
   552  		mi := &file_grpc_service_config_service_config_proto_msgTypes[6]
   553  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   554  		ms.StoreMessageInfo(mi)
   555  	}
   556  }
   557  
   558  func (x *CdsConfig) String() string {
   559  	return protoimpl.X.MessageStringOf(x)
   560  }
   561  
   562  func (*CdsConfig) ProtoMessage() {}
   563  
   564  func (x *CdsConfig) ProtoReflect() protoreflect.Message {
   565  	mi := &file_grpc_service_config_service_config_proto_msgTypes[6]
   566  	if protoimpl.UnsafeEnabled && x != nil {
   567  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   568  		if ms.LoadMessageInfo() == nil {
   569  			ms.StoreMessageInfo(mi)
   570  		}
   571  		return ms
   572  	}
   573  	return mi.MessageOf(x)
   574  }
   575  
   576  // Deprecated: Use CdsConfig.ProtoReflect.Descriptor instead.
   577  func (*CdsConfig) Descriptor() ([]byte, []int) {
   578  	return file_grpc_service_config_service_config_proto_rawDescGZIP(), []int{6}
   579  }
   580  
   581  func (x *CdsConfig) GetCluster() string {
   582  	if x != nil {
   583  		return x.Cluster
   584  	}
   585  	return ""
   586  }
   587  
   588  // Configuration for xds LB policy.
   589  type XdsConfig struct {
   590  	state         protoimpl.MessageState
   591  	sizeCache     protoimpl.SizeCache
   592  	unknownFields protoimpl.UnknownFields
   593  
   594  	// Name of balancer to connect to.
   595  	//
   596  	// Deprecated: Do not use.
   597  	BalancerName string `protobuf:"bytes,1,opt,name=balancer_name,json=balancerName,proto3" json:"balancer_name,omitempty"`
   598  	// Optional.  What LB policy to use for intra-locality routing.
   599  	// If unset, will use whatever algorithm is specified by the balancer.
   600  	// Multiple LB policies can be specified; clients will iterate through
   601  	// the list in order and stop at the first policy that they support.
   602  	ChildPolicy []*LoadBalancingConfig `protobuf:"bytes,2,rep,name=child_policy,json=childPolicy,proto3" json:"child_policy,omitempty"`
   603  	// Optional.  What LB policy to use in fallback mode.  If not
   604  	// specified, defaults to round_robin.
   605  	// Multiple LB policies can be specified; clients will iterate through
   606  	// the list in order and stop at the first policy that they support.
   607  	FallbackPolicy []*LoadBalancingConfig `protobuf:"bytes,3,rep,name=fallback_policy,json=fallbackPolicy,proto3" json:"fallback_policy,omitempty"`
   608  	// Optional.  Name to use in EDS query.  If not present, defaults to
   609  	// the server name from the target URI.
   610  	EdsServiceName string `protobuf:"bytes,4,opt,name=eds_service_name,json=edsServiceName,proto3" json:"eds_service_name,omitempty"`
   611  	// LRS server to send load reports to.
   612  	// If not present, load reporting will be disabled.
   613  	// If set to the empty string, load reporting will be sent to the same
   614  	// server that we obtained CDS data from.
   615  	LrsLoadReportingServerName *wrapperspb.StringValue `protobuf:"bytes,5,opt,name=lrs_load_reporting_server_name,json=lrsLoadReportingServerName,proto3" json:"lrs_load_reporting_server_name,omitempty"`
   616  }
   617  
   618  func (x *XdsConfig) Reset() {
   619  	*x = XdsConfig{}
   620  	if protoimpl.UnsafeEnabled {
   621  		mi := &file_grpc_service_config_service_config_proto_msgTypes[7]
   622  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   623  		ms.StoreMessageInfo(mi)
   624  	}
   625  }
   626  
   627  func (x *XdsConfig) String() string {
   628  	return protoimpl.X.MessageStringOf(x)
   629  }
   630  
   631  func (*XdsConfig) ProtoMessage() {}
   632  
   633  func (x *XdsConfig) ProtoReflect() protoreflect.Message {
   634  	mi := &file_grpc_service_config_service_config_proto_msgTypes[7]
   635  	if protoimpl.UnsafeEnabled && x != nil {
   636  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   637  		if ms.LoadMessageInfo() == nil {
   638  			ms.StoreMessageInfo(mi)
   639  		}
   640  		return ms
   641  	}
   642  	return mi.MessageOf(x)
   643  }
   644  
   645  // Deprecated: Use XdsConfig.ProtoReflect.Descriptor instead.
   646  func (*XdsConfig) Descriptor() ([]byte, []int) {
   647  	return file_grpc_service_config_service_config_proto_rawDescGZIP(), []int{7}
   648  }
   649  
   650  // Deprecated: Do not use.
   651  func (x *XdsConfig) GetBalancerName() string {
   652  	if x != nil {
   653  		return x.BalancerName
   654  	}
   655  	return ""
   656  }
   657  
   658  func (x *XdsConfig) GetChildPolicy() []*LoadBalancingConfig {
   659  	if x != nil {
   660  		return x.ChildPolicy
   661  	}
   662  	return nil
   663  }
   664  
   665  func (x *XdsConfig) GetFallbackPolicy() []*LoadBalancingConfig {
   666  	if x != nil {
   667  		return x.FallbackPolicy
   668  	}
   669  	return nil
   670  }
   671  
   672  func (x *XdsConfig) GetEdsServiceName() string {
   673  	if x != nil {
   674  		return x.EdsServiceName
   675  	}
   676  	return ""
   677  }
   678  
   679  func (x *XdsConfig) GetLrsLoadReportingServerName() *wrapperspb.StringValue {
   680  	if x != nil {
   681  		return x.LrsLoadReportingServerName
   682  	}
   683  	return nil
   684  }
   685  
   686  // Configuration for eds LB policy.
   687  type EdsLoadBalancingPolicyConfig struct {
   688  	state         protoimpl.MessageState
   689  	sizeCache     protoimpl.SizeCache
   690  	unknownFields protoimpl.UnknownFields
   691  
   692  	// Cluster name.  Required.
   693  	Cluster string `protobuf:"bytes,1,opt,name=cluster,proto3" json:"cluster,omitempty"`
   694  	// EDS service name, as returned in CDS.
   695  	// May be unset if not specified in CDS.
   696  	EdsServiceName string `protobuf:"bytes,2,opt,name=eds_service_name,json=edsServiceName,proto3" json:"eds_service_name,omitempty"`
   697  	// Server to send load reports to.
   698  	// If unset, no load reporting is done.
   699  	// If set to empty string, load reporting will be sent to the same
   700  	// server as we are getting xds data from.
   701  	LrsLoadReportingServerName *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=lrs_load_reporting_server_name,json=lrsLoadReportingServerName,proto3" json:"lrs_load_reporting_server_name,omitempty"`
   702  	// Locality-picking policy.
   703  	// This policy's config is expected to be in the format used
   704  	// by the weighted_target policy.  Note that the config should include
   705  	// an empty value for the "targets" field; that empty value will be
   706  	// replaced by one that is dynamically generated based on the EDS data.
   707  	// Optional; defaults to "weighted_target".
   708  	LocalityPickingPolicy []*LoadBalancingConfig `protobuf:"bytes,4,rep,name=locality_picking_policy,json=localityPickingPolicy,proto3" json:"locality_picking_policy,omitempty"`
   709  	// Endpoint-picking policy.
   710  	// This will be configured as the policy for each child in the
   711  	// locality-policy's config.
   712  	// Optional; defaults to "round_robin".
   713  	EndpointPickingPolicy []*LoadBalancingConfig `protobuf:"bytes,5,rep,name=endpoint_picking_policy,json=endpointPickingPolicy,proto3" json:"endpoint_picking_policy,omitempty"`
   714  }
   715  
   716  func (x *EdsLoadBalancingPolicyConfig) Reset() {
   717  	*x = EdsLoadBalancingPolicyConfig{}
   718  	if protoimpl.UnsafeEnabled {
   719  		mi := &file_grpc_service_config_service_config_proto_msgTypes[8]
   720  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   721  		ms.StoreMessageInfo(mi)
   722  	}
   723  }
   724  
   725  func (x *EdsLoadBalancingPolicyConfig) String() string {
   726  	return protoimpl.X.MessageStringOf(x)
   727  }
   728  
   729  func (*EdsLoadBalancingPolicyConfig) ProtoMessage() {}
   730  
   731  func (x *EdsLoadBalancingPolicyConfig) ProtoReflect() protoreflect.Message {
   732  	mi := &file_grpc_service_config_service_config_proto_msgTypes[8]
   733  	if protoimpl.UnsafeEnabled && x != nil {
   734  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   735  		if ms.LoadMessageInfo() == nil {
   736  			ms.StoreMessageInfo(mi)
   737  		}
   738  		return ms
   739  	}
   740  	return mi.MessageOf(x)
   741  }
   742  
   743  // Deprecated: Use EdsLoadBalancingPolicyConfig.ProtoReflect.Descriptor instead.
   744  func (*EdsLoadBalancingPolicyConfig) Descriptor() ([]byte, []int) {
   745  	return file_grpc_service_config_service_config_proto_rawDescGZIP(), []int{8}
   746  }
   747  
   748  func (x *EdsLoadBalancingPolicyConfig) GetCluster() string {
   749  	if x != nil {
   750  		return x.Cluster
   751  	}
   752  	return ""
   753  }
   754  
   755  func (x *EdsLoadBalancingPolicyConfig) GetEdsServiceName() string {
   756  	if x != nil {
   757  		return x.EdsServiceName
   758  	}
   759  	return ""
   760  }
   761  
   762  func (x *EdsLoadBalancingPolicyConfig) GetLrsLoadReportingServerName() *wrapperspb.StringValue {
   763  	if x != nil {
   764  		return x.LrsLoadReportingServerName
   765  	}
   766  	return nil
   767  }
   768  
   769  func (x *EdsLoadBalancingPolicyConfig) GetLocalityPickingPolicy() []*LoadBalancingConfig {
   770  	if x != nil {
   771  		return x.LocalityPickingPolicy
   772  	}
   773  	return nil
   774  }
   775  
   776  func (x *EdsLoadBalancingPolicyConfig) GetEndpointPickingPolicy() []*LoadBalancingConfig {
   777  	if x != nil {
   778  		return x.EndpointPickingPolicy
   779  	}
   780  	return nil
   781  }
   782  
   783  // Configuration for lrs LB policy.
   784  type LrsLoadBalancingPolicyConfig struct {
   785  	state         protoimpl.MessageState
   786  	sizeCache     protoimpl.SizeCache
   787  	unknownFields protoimpl.UnknownFields
   788  
   789  	// Cluster name.  Required.
   790  	ClusterName string `protobuf:"bytes,1,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"`
   791  	// EDS service name, as returned in CDS.
   792  	// May be unset if not specified in CDS.
   793  	EdsServiceName string `protobuf:"bytes,2,opt,name=eds_service_name,json=edsServiceName,proto3" json:"eds_service_name,omitempty"`
   794  	// Server to send load reports to.  Required.
   795  	// If set to empty string, load reporting will be sent to the same
   796  	// server as we are getting xds data from.
   797  	LrsLoadReportingServerName string                                 `protobuf:"bytes,3,opt,name=lrs_load_reporting_server_name,json=lrsLoadReportingServerName,proto3" json:"lrs_load_reporting_server_name,omitempty"`
   798  	Locality                   *LrsLoadBalancingPolicyConfig_Locality `protobuf:"bytes,4,opt,name=locality,proto3" json:"locality,omitempty"`
   799  	// Endpoint-picking policy.
   800  	ChildPolicy []*LoadBalancingConfig `protobuf:"bytes,5,rep,name=child_policy,json=childPolicy,proto3" json:"child_policy,omitempty"`
   801  }
   802  
   803  func (x *LrsLoadBalancingPolicyConfig) Reset() {
   804  	*x = LrsLoadBalancingPolicyConfig{}
   805  	if protoimpl.UnsafeEnabled {
   806  		mi := &file_grpc_service_config_service_config_proto_msgTypes[9]
   807  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   808  		ms.StoreMessageInfo(mi)
   809  	}
   810  }
   811  
   812  func (x *LrsLoadBalancingPolicyConfig) String() string {
   813  	return protoimpl.X.MessageStringOf(x)
   814  }
   815  
   816  func (*LrsLoadBalancingPolicyConfig) ProtoMessage() {}
   817  
   818  func (x *LrsLoadBalancingPolicyConfig) ProtoReflect() protoreflect.Message {
   819  	mi := &file_grpc_service_config_service_config_proto_msgTypes[9]
   820  	if protoimpl.UnsafeEnabled && x != nil {
   821  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   822  		if ms.LoadMessageInfo() == nil {
   823  			ms.StoreMessageInfo(mi)
   824  		}
   825  		return ms
   826  	}
   827  	return mi.MessageOf(x)
   828  }
   829  
   830  // Deprecated: Use LrsLoadBalancingPolicyConfig.ProtoReflect.Descriptor instead.
   831  func (*LrsLoadBalancingPolicyConfig) Descriptor() ([]byte, []int) {
   832  	return file_grpc_service_config_service_config_proto_rawDescGZIP(), []int{9}
   833  }
   834  
   835  func (x *LrsLoadBalancingPolicyConfig) GetClusterName() string {
   836  	if x != nil {
   837  		return x.ClusterName
   838  	}
   839  	return ""
   840  }
   841  
   842  func (x *LrsLoadBalancingPolicyConfig) GetEdsServiceName() string {
   843  	if x != nil {
   844  		return x.EdsServiceName
   845  	}
   846  	return ""
   847  }
   848  
   849  func (x *LrsLoadBalancingPolicyConfig) GetLrsLoadReportingServerName() string {
   850  	if x != nil {
   851  		return x.LrsLoadReportingServerName
   852  	}
   853  	return ""
   854  }
   855  
   856  func (x *LrsLoadBalancingPolicyConfig) GetLocality() *LrsLoadBalancingPolicyConfig_Locality {
   857  	if x != nil {
   858  		return x.Locality
   859  	}
   860  	return nil
   861  }
   862  
   863  func (x *LrsLoadBalancingPolicyConfig) GetChildPolicy() []*LoadBalancingConfig {
   864  	if x != nil {
   865  		return x.ChildPolicy
   866  	}
   867  	return nil
   868  }
   869  
   870  // Selects LB policy and provides corresponding configuration.
   871  //
   872  // In general, all instances of this field should be repeated. Clients will
   873  // iterate through the list in order and stop at the first policy that they
   874  // support.  This allows the service config to specify custom policies that may
   875  // not be known to all clients.
   876  //
   877  // - If the config for the first supported policy is invalid, the whole service
   878  //   config is invalid.
   879  // - If the list doesn't contain any supported policy, the whole service config
   880  //   is invalid.
   881  type LoadBalancingConfig struct {
   882  	state         protoimpl.MessageState
   883  	sizeCache     protoimpl.SizeCache
   884  	unknownFields protoimpl.UnknownFields
   885  
   886  	// Exactly one LB policy may be configured.
   887  	//
   888  	// Types that are assignable to Policy:
   889  	//	*LoadBalancingConfig_PickFirst
   890  	//	*LoadBalancingConfig_RoundRobin
   891  	//	*LoadBalancingConfig_Grpclb
   892  	//	*LoadBalancingConfig_Priority
   893  	//	*LoadBalancingConfig_WeightedTarget
   894  	//	*LoadBalancingConfig_Cds
   895  	//	*LoadBalancingConfig_Eds
   896  	//	*LoadBalancingConfig_Lrs
   897  	//	*LoadBalancingConfig_Xds
   898  	//	*LoadBalancingConfig_XdsExperimental
   899  	Policy isLoadBalancingConfig_Policy `protobuf_oneof:"policy"`
   900  }
   901  
   902  func (x *LoadBalancingConfig) Reset() {
   903  	*x = LoadBalancingConfig{}
   904  	if protoimpl.UnsafeEnabled {
   905  		mi := &file_grpc_service_config_service_config_proto_msgTypes[10]
   906  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   907  		ms.StoreMessageInfo(mi)
   908  	}
   909  }
   910  
   911  func (x *LoadBalancingConfig) String() string {
   912  	return protoimpl.X.MessageStringOf(x)
   913  }
   914  
   915  func (*LoadBalancingConfig) ProtoMessage() {}
   916  
   917  func (x *LoadBalancingConfig) ProtoReflect() protoreflect.Message {
   918  	mi := &file_grpc_service_config_service_config_proto_msgTypes[10]
   919  	if protoimpl.UnsafeEnabled && x != nil {
   920  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   921  		if ms.LoadMessageInfo() == nil {
   922  			ms.StoreMessageInfo(mi)
   923  		}
   924  		return ms
   925  	}
   926  	return mi.MessageOf(x)
   927  }
   928  
   929  // Deprecated: Use LoadBalancingConfig.ProtoReflect.Descriptor instead.
   930  func (*LoadBalancingConfig) Descriptor() ([]byte, []int) {
   931  	return file_grpc_service_config_service_config_proto_rawDescGZIP(), []int{10}
   932  }
   933  
   934  func (m *LoadBalancingConfig) GetPolicy() isLoadBalancingConfig_Policy {
   935  	if m != nil {
   936  		return m.Policy
   937  	}
   938  	return nil
   939  }
   940  
   941  func (x *LoadBalancingConfig) GetPickFirst() *PickFirstConfig {
   942  	if x, ok := x.GetPolicy().(*LoadBalancingConfig_PickFirst); ok {
   943  		return x.PickFirst
   944  	}
   945  	return nil
   946  }
   947  
   948  func (x *LoadBalancingConfig) GetRoundRobin() *RoundRobinConfig {
   949  	if x, ok := x.GetPolicy().(*LoadBalancingConfig_RoundRobin); ok {
   950  		return x.RoundRobin
   951  	}
   952  	return nil
   953  }
   954  
   955  func (x *LoadBalancingConfig) GetGrpclb() *GrpcLbConfig {
   956  	if x, ok := x.GetPolicy().(*LoadBalancingConfig_Grpclb); ok {
   957  		return x.Grpclb
   958  	}
   959  	return nil
   960  }
   961  
   962  func (x *LoadBalancingConfig) GetPriority() *PriorityLoadBalancingPolicyConfig {
   963  	if x, ok := x.GetPolicy().(*LoadBalancingConfig_Priority); ok {
   964  		return x.Priority
   965  	}
   966  	return nil
   967  }
   968  
   969  func (x *LoadBalancingConfig) GetWeightedTarget() *WeightedTargetLoadBalancingPolicyConfig {
   970  	if x, ok := x.GetPolicy().(*LoadBalancingConfig_WeightedTarget); ok {
   971  		return x.WeightedTarget
   972  	}
   973  	return nil
   974  }
   975  
   976  func (x *LoadBalancingConfig) GetCds() *CdsConfig {
   977  	if x, ok := x.GetPolicy().(*LoadBalancingConfig_Cds); ok {
   978  		return x.Cds
   979  	}
   980  	return nil
   981  }
   982  
   983  func (x *LoadBalancingConfig) GetEds() *EdsLoadBalancingPolicyConfig {
   984  	if x, ok := x.GetPolicy().(*LoadBalancingConfig_Eds); ok {
   985  		return x.Eds
   986  	}
   987  	return nil
   988  }
   989  
   990  func (x *LoadBalancingConfig) GetLrs() *LrsLoadBalancingPolicyConfig {
   991  	if x, ok := x.GetPolicy().(*LoadBalancingConfig_Lrs); ok {
   992  		return x.Lrs
   993  	}
   994  	return nil
   995  }
   996  
   997  // Deprecated: Do not use.
   998  func (x *LoadBalancingConfig) GetXds() *XdsConfig {
   999  	if x, ok := x.GetPolicy().(*LoadBalancingConfig_Xds); ok {
  1000  		return x.Xds
  1001  	}
  1002  	return nil
  1003  }
  1004  
  1005  // Deprecated: Do not use.
  1006  func (x *LoadBalancingConfig) GetXdsExperimental() *XdsConfig {
  1007  	if x, ok := x.GetPolicy().(*LoadBalancingConfig_XdsExperimental); ok {
  1008  		return x.XdsExperimental
  1009  	}
  1010  	return nil
  1011  }
  1012  
  1013  type isLoadBalancingConfig_Policy interface {
  1014  	isLoadBalancingConfig_Policy()
  1015  }
  1016  
  1017  type LoadBalancingConfig_PickFirst struct {
  1018  	PickFirst *PickFirstConfig `protobuf:"bytes,4,opt,name=pick_first,proto3,oneof"`
  1019  }
  1020  
  1021  type LoadBalancingConfig_RoundRobin struct {
  1022  	RoundRobin *RoundRobinConfig `protobuf:"bytes,1,opt,name=round_robin,proto3,oneof"`
  1023  }
  1024  
  1025  type LoadBalancingConfig_Grpclb struct {
  1026  	// gRPC lookaside load balancing.
  1027  	// This will eventually be deprecated by the new xDS-based local
  1028  	// balancing policy.
  1029  	Grpclb *GrpcLbConfig `protobuf:"bytes,3,opt,name=grpclb,proto3,oneof"`
  1030  }
  1031  
  1032  type LoadBalancingConfig_Priority struct {
  1033  	Priority *PriorityLoadBalancingPolicyConfig `protobuf:"bytes,9,opt,name=priority,proto3,oneof"`
  1034  }
  1035  
  1036  type LoadBalancingConfig_WeightedTarget struct {
  1037  	WeightedTarget *WeightedTargetLoadBalancingPolicyConfig `protobuf:"bytes,10,opt,name=weighted_target,json=weightedTarget,proto3,oneof"`
  1038  }
  1039  
  1040  type LoadBalancingConfig_Cds struct {
  1041  	// EXPERIMENTAL -- DO NOT USE
  1042  	// xDS-based load balancing.
  1043  	// The policy is known as xds_experimental while it is under development.
  1044  	// It will be renamed to xds once it is ready for public use.
  1045  	Cds *CdsConfig `protobuf:"bytes,6,opt,name=cds,proto3,oneof"`
  1046  }
  1047  
  1048  type LoadBalancingConfig_Eds struct {
  1049  	Eds *EdsLoadBalancingPolicyConfig `protobuf:"bytes,7,opt,name=eds,proto3,oneof"`
  1050  }
  1051  
  1052  type LoadBalancingConfig_Lrs struct {
  1053  	Lrs *LrsLoadBalancingPolicyConfig `protobuf:"bytes,8,opt,name=lrs,proto3,oneof"`
  1054  }
  1055  
  1056  type LoadBalancingConfig_Xds struct {
  1057  	// Deprecated: Do not use.
  1058  	Xds *XdsConfig `protobuf:"bytes,2,opt,name=xds,proto3,oneof"`
  1059  }
  1060  
  1061  type LoadBalancingConfig_XdsExperimental struct {
  1062  	// TODO(rekarthik): Deprecate this field after the xds policy
  1063  	// is ready for public use.
  1064  	//
  1065  	// Deprecated: Do not use.
  1066  	XdsExperimental *XdsConfig `protobuf:"bytes,5,opt,name=xds_experimental,proto3,oneof"`
  1067  }
  1068  
  1069  func (*LoadBalancingConfig_PickFirst) isLoadBalancingConfig_Policy() {}
  1070  
  1071  func (*LoadBalancingConfig_RoundRobin) isLoadBalancingConfig_Policy() {}
  1072  
  1073  func (*LoadBalancingConfig_Grpclb) isLoadBalancingConfig_Policy() {}
  1074  
  1075  func (*LoadBalancingConfig_Priority) isLoadBalancingConfig_Policy() {}
  1076  
  1077  func (*LoadBalancingConfig_WeightedTarget) isLoadBalancingConfig_Policy() {}
  1078  
  1079  func (*LoadBalancingConfig_Cds) isLoadBalancingConfig_Policy() {}
  1080  
  1081  func (*LoadBalancingConfig_Eds) isLoadBalancingConfig_Policy() {}
  1082  
  1083  func (*LoadBalancingConfig_Lrs) isLoadBalancingConfig_Policy() {}
  1084  
  1085  func (*LoadBalancingConfig_Xds) isLoadBalancingConfig_Policy() {}
  1086  
  1087  func (*LoadBalancingConfig_XdsExperimental) isLoadBalancingConfig_Policy() {}
  1088  
  1089  // A ServiceConfig represents information about a service but is not specific to
  1090  // any name resolver.
  1091  type ServiceConfig struct {
  1092  	state         protoimpl.MessageState
  1093  	sizeCache     protoimpl.SizeCache
  1094  	unknownFields protoimpl.UnknownFields
  1095  
  1096  	// Deprecated: Do not use.
  1097  	LoadBalancingPolicy ServiceConfig_LoadBalancingPolicy `protobuf:"varint,1,opt,name=load_balancing_policy,json=loadBalancingPolicy,proto3,enum=grpc.service_config.ServiceConfig_LoadBalancingPolicy" json:"load_balancing_policy,omitempty"`
  1098  	// Multiple LB policies can be specified; clients will iterate through
  1099  	// the list in order and stop at the first policy that they support. If none
  1100  	// are supported, the service config is considered invalid.
  1101  	LoadBalancingConfig []*LoadBalancingConfig `protobuf:"bytes,4,rep,name=load_balancing_config,json=loadBalancingConfig,proto3" json:"load_balancing_config,omitempty"`
  1102  	// Per-method configuration.
  1103  	MethodConfig      []*MethodConfig                      `protobuf:"bytes,2,rep,name=method_config,json=methodConfig,proto3" json:"method_config,omitempty"`
  1104  	RetryThrottling   *ServiceConfig_RetryThrottlingPolicy `protobuf:"bytes,3,opt,name=retry_throttling,json=retryThrottling,proto3" json:"retry_throttling,omitempty"`
  1105  	HealthCheckConfig *ServiceConfig_HealthCheckConfig     `protobuf:"bytes,5,opt,name=health_check_config,json=healthCheckConfig,proto3" json:"health_check_config,omitempty"`
  1106  }
  1107  
  1108  func (x *ServiceConfig) Reset() {
  1109  	*x = ServiceConfig{}
  1110  	if protoimpl.UnsafeEnabled {
  1111  		mi := &file_grpc_service_config_service_config_proto_msgTypes[11]
  1112  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1113  		ms.StoreMessageInfo(mi)
  1114  	}
  1115  }
  1116  
  1117  func (x *ServiceConfig) String() string {
  1118  	return protoimpl.X.MessageStringOf(x)
  1119  }
  1120  
  1121  func (*ServiceConfig) ProtoMessage() {}
  1122  
  1123  func (x *ServiceConfig) ProtoReflect() protoreflect.Message {
  1124  	mi := &file_grpc_service_config_service_config_proto_msgTypes[11]
  1125  	if protoimpl.UnsafeEnabled && x != nil {
  1126  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1127  		if ms.LoadMessageInfo() == nil {
  1128  			ms.StoreMessageInfo(mi)
  1129  		}
  1130  		return ms
  1131  	}
  1132  	return mi.MessageOf(x)
  1133  }
  1134  
  1135  // Deprecated: Use ServiceConfig.ProtoReflect.Descriptor instead.
  1136  func (*ServiceConfig) Descriptor() ([]byte, []int) {
  1137  	return file_grpc_service_config_service_config_proto_rawDescGZIP(), []int{11}
  1138  }
  1139  
  1140  // Deprecated: Do not use.
  1141  func (x *ServiceConfig) GetLoadBalancingPolicy() ServiceConfig_LoadBalancingPolicy {
  1142  	if x != nil {
  1143  		return x.LoadBalancingPolicy
  1144  	}
  1145  	return ServiceConfig_UNSPECIFIED
  1146  }
  1147  
  1148  func (x *ServiceConfig) GetLoadBalancingConfig() []*LoadBalancingConfig {
  1149  	if x != nil {
  1150  		return x.LoadBalancingConfig
  1151  	}
  1152  	return nil
  1153  }
  1154  
  1155  func (x *ServiceConfig) GetMethodConfig() []*MethodConfig {
  1156  	if x != nil {
  1157  		return x.MethodConfig
  1158  	}
  1159  	return nil
  1160  }
  1161  
  1162  func (x *ServiceConfig) GetRetryThrottling() *ServiceConfig_RetryThrottlingPolicy {
  1163  	if x != nil {
  1164  		return x.RetryThrottling
  1165  	}
  1166  	return nil
  1167  }
  1168  
  1169  func (x *ServiceConfig) GetHealthCheckConfig() *ServiceConfig_HealthCheckConfig {
  1170  	if x != nil {
  1171  		return x.HealthCheckConfig
  1172  	}
  1173  	return nil
  1174  }
  1175  
  1176  // The names of the methods to which this configuration applies.
  1177  // - MethodConfig without names (empty list) will be skipped.
  1178  // - Each name entry must be unique across the entire ServiceConfig.
  1179  // - If the 'method' field is empty, this MethodConfig specifies the defaults
  1180  //   for all methods for the specified service.
  1181  // - If the 'service' field is empty, the 'method' field must be empty, and
  1182  //   this MethodConfig specifies the default for all methods (it's the default
  1183  //   config).
  1184  //
  1185  // When determining which MethodConfig to use for a given RPC, the most
  1186  // specific match wins. For example, let's say that the service config
  1187  // contains the following MethodConfig entries:
  1188  //
  1189  // method_config { name { } ... }
  1190  // method_config { name { service: "MyService" } ... }
  1191  // method_config { name { service: "MyService" method: "Foo" } ... }
  1192  //
  1193  // MyService/Foo will use the third entry, because it exactly matches the
  1194  // service and method name. MyService/Bar will use the second entry, because
  1195  // it provides the default for all methods of MyService. AnotherService/Baz
  1196  // will use the first entry, because it doesn't match the other two.
  1197  //
  1198  // In JSON representation, value "", value `null`, and not present are the
  1199  // same. The following are the same Name:
  1200  // - { "service": "s" }
  1201  // - { "service": "s", "method": null }
  1202  // - { "service": "s", "method": "" }
  1203  type MethodConfig_Name struct {
  1204  	state         protoimpl.MessageState
  1205  	sizeCache     protoimpl.SizeCache
  1206  	unknownFields protoimpl.UnknownFields
  1207  
  1208  	Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"` // Required. Includes proto package name.
  1209  	Method  string `protobuf:"bytes,2,opt,name=method,proto3" json:"method,omitempty"`
  1210  }
  1211  
  1212  func (x *MethodConfig_Name) Reset() {
  1213  	*x = MethodConfig_Name{}
  1214  	if protoimpl.UnsafeEnabled {
  1215  		mi := &file_grpc_service_config_service_config_proto_msgTypes[12]
  1216  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1217  		ms.StoreMessageInfo(mi)
  1218  	}
  1219  }
  1220  
  1221  func (x *MethodConfig_Name) String() string {
  1222  	return protoimpl.X.MessageStringOf(x)
  1223  }
  1224  
  1225  func (*MethodConfig_Name) ProtoMessage() {}
  1226  
  1227  func (x *MethodConfig_Name) ProtoReflect() protoreflect.Message {
  1228  	mi := &file_grpc_service_config_service_config_proto_msgTypes[12]
  1229  	if protoimpl.UnsafeEnabled && x != nil {
  1230  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1231  		if ms.LoadMessageInfo() == nil {
  1232  			ms.StoreMessageInfo(mi)
  1233  		}
  1234  		return ms
  1235  	}
  1236  	return mi.MessageOf(x)
  1237  }
  1238  
  1239  // Deprecated: Use MethodConfig_Name.ProtoReflect.Descriptor instead.
  1240  func (*MethodConfig_Name) Descriptor() ([]byte, []int) {
  1241  	return file_grpc_service_config_service_config_proto_rawDescGZIP(), []int{0, 0}
  1242  }
  1243  
  1244  func (x *MethodConfig_Name) GetService() string {
  1245  	if x != nil {
  1246  		return x.Service
  1247  	}
  1248  	return ""
  1249  }
  1250  
  1251  func (x *MethodConfig_Name) GetMethod() string {
  1252  	if x != nil {
  1253  		return x.Method
  1254  	}
  1255  	return ""
  1256  }
  1257  
  1258  // The retry policy for outgoing RPCs.
  1259  type MethodConfig_RetryPolicy struct {
  1260  	state         protoimpl.MessageState
  1261  	sizeCache     protoimpl.SizeCache
  1262  	unknownFields protoimpl.UnknownFields
  1263  
  1264  	// The maximum number of RPC attempts, including the original attempt.
  1265  	//
  1266  	// This field is required and must be greater than 1.
  1267  	// Any value greater than 5 will be treated as if it were 5.
  1268  	MaxAttempts uint32 `protobuf:"varint,1,opt,name=max_attempts,json=maxAttempts,proto3" json:"max_attempts,omitempty"`
  1269  	// Exponential backoff parameters. The initial retry attempt will occur at
  1270  	// random(0, initial_backoff). In general, the nth attempt will occur at
  1271  	// random(0,
  1272  	//   min(initial_backoff*backoff_multiplier**(n-1), max_backoff)).
  1273  	// Required. Must be greater than zero.
  1274  	InitialBackoff *durationpb.Duration `protobuf:"bytes,2,opt,name=initial_backoff,json=initialBackoff,proto3" json:"initial_backoff,omitempty"`
  1275  	// Required. Must be greater than zero.
  1276  	MaxBackoff        *durationpb.Duration `protobuf:"bytes,3,opt,name=max_backoff,json=maxBackoff,proto3" json:"max_backoff,omitempty"`
  1277  	BackoffMultiplier float32              `protobuf:"fixed32,4,opt,name=backoff_multiplier,json=backoffMultiplier,proto3" json:"backoff_multiplier,omitempty"` // Required. Must be greater than zero.
  1278  	// The set of status codes which may be retried.
  1279  	//
  1280  	// This field is required and must be non-empty.
  1281  	RetryableStatusCodes []code.Code `protobuf:"varint,5,rep,packed,name=retryable_status_codes,json=retryableStatusCodes,proto3,enum=google.rpc.Code" json:"retryable_status_codes,omitempty"`
  1282  }
  1283  
  1284  func (x *MethodConfig_RetryPolicy) Reset() {
  1285  	*x = MethodConfig_RetryPolicy{}
  1286  	if protoimpl.UnsafeEnabled {
  1287  		mi := &file_grpc_service_config_service_config_proto_msgTypes[13]
  1288  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1289  		ms.StoreMessageInfo(mi)
  1290  	}
  1291  }
  1292  
  1293  func (x *MethodConfig_RetryPolicy) String() string {
  1294  	return protoimpl.X.MessageStringOf(x)
  1295  }
  1296  
  1297  func (*MethodConfig_RetryPolicy) ProtoMessage() {}
  1298  
  1299  func (x *MethodConfig_RetryPolicy) ProtoReflect() protoreflect.Message {
  1300  	mi := &file_grpc_service_config_service_config_proto_msgTypes[13]
  1301  	if protoimpl.UnsafeEnabled && x != nil {
  1302  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1303  		if ms.LoadMessageInfo() == nil {
  1304  			ms.StoreMessageInfo(mi)
  1305  		}
  1306  		return ms
  1307  	}
  1308  	return mi.MessageOf(x)
  1309  }
  1310  
  1311  // Deprecated: Use MethodConfig_RetryPolicy.ProtoReflect.Descriptor instead.
  1312  func (*MethodConfig_RetryPolicy) Descriptor() ([]byte, []int) {
  1313  	return file_grpc_service_config_service_config_proto_rawDescGZIP(), []int{0, 1}
  1314  }
  1315  
  1316  func (x *MethodConfig_RetryPolicy) GetMaxAttempts() uint32 {
  1317  	if x != nil {
  1318  		return x.MaxAttempts
  1319  	}
  1320  	return 0
  1321  }
  1322  
  1323  func (x *MethodConfig_RetryPolicy) GetInitialBackoff() *durationpb.Duration {
  1324  	if x != nil {
  1325  		return x.InitialBackoff
  1326  	}
  1327  	return nil
  1328  }
  1329  
  1330  func (x *MethodConfig_RetryPolicy) GetMaxBackoff() *durationpb.Duration {
  1331  	if x != nil {
  1332  		return x.MaxBackoff
  1333  	}
  1334  	return nil
  1335  }
  1336  
  1337  func (x *MethodConfig_RetryPolicy) GetBackoffMultiplier() float32 {
  1338  	if x != nil {
  1339  		return x.BackoffMultiplier
  1340  	}
  1341  	return 0
  1342  }
  1343  
  1344  func (x *MethodConfig_RetryPolicy) GetRetryableStatusCodes() []code.Code {
  1345  	if x != nil {
  1346  		return x.RetryableStatusCodes
  1347  	}
  1348  	return nil
  1349  }
  1350  
  1351  // The hedging policy for outgoing RPCs. Hedged RPCs may execute more than
  1352  // once on the server, so only idempotent methods should specify a hedging
  1353  // policy.
  1354  type MethodConfig_HedgingPolicy struct {
  1355  	state         protoimpl.MessageState
  1356  	sizeCache     protoimpl.SizeCache
  1357  	unknownFields protoimpl.UnknownFields
  1358  
  1359  	// The hedging policy will send up to max_requests RPCs.
  1360  	// This number represents the total number of all attempts, including
  1361  	// the original attempt.
  1362  	//
  1363  	// This field is required and must be greater than 1.
  1364  	// Any value greater than 5 will be treated as if it were 5.
  1365  	MaxAttempts uint32 `protobuf:"varint,1,opt,name=max_attempts,json=maxAttempts,proto3" json:"max_attempts,omitempty"`
  1366  	// The first RPC will be sent immediately, but the max_requests-1 subsequent
  1367  	// hedged RPCs will be sent at intervals of every hedging_delay. Set this
  1368  	// to 0 to immediately send all max_requests RPCs.
  1369  	HedgingDelay *durationpb.Duration `protobuf:"bytes,2,opt,name=hedging_delay,json=hedgingDelay,proto3" json:"hedging_delay,omitempty"`
  1370  	// The set of status codes which indicate other hedged RPCs may still
  1371  	// succeed. If a non-fatal status code is returned by the server, hedged
  1372  	// RPCs will continue. Otherwise, outstanding requests will be canceled and
  1373  	// the error returned to the client application layer.
  1374  	//
  1375  	// This field is optional.
  1376  	NonFatalStatusCodes []code.Code `protobuf:"varint,3,rep,packed,name=non_fatal_status_codes,json=nonFatalStatusCodes,proto3,enum=google.rpc.Code" json:"non_fatal_status_codes,omitempty"`
  1377  }
  1378  
  1379  func (x *MethodConfig_HedgingPolicy) Reset() {
  1380  	*x = MethodConfig_HedgingPolicy{}
  1381  	if protoimpl.UnsafeEnabled {
  1382  		mi := &file_grpc_service_config_service_config_proto_msgTypes[14]
  1383  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1384  		ms.StoreMessageInfo(mi)
  1385  	}
  1386  }
  1387  
  1388  func (x *MethodConfig_HedgingPolicy) String() string {
  1389  	return protoimpl.X.MessageStringOf(x)
  1390  }
  1391  
  1392  func (*MethodConfig_HedgingPolicy) ProtoMessage() {}
  1393  
  1394  func (x *MethodConfig_HedgingPolicy) ProtoReflect() protoreflect.Message {
  1395  	mi := &file_grpc_service_config_service_config_proto_msgTypes[14]
  1396  	if protoimpl.UnsafeEnabled && x != nil {
  1397  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1398  		if ms.LoadMessageInfo() == nil {
  1399  			ms.StoreMessageInfo(mi)
  1400  		}
  1401  		return ms
  1402  	}
  1403  	return mi.MessageOf(x)
  1404  }
  1405  
  1406  // Deprecated: Use MethodConfig_HedgingPolicy.ProtoReflect.Descriptor instead.
  1407  func (*MethodConfig_HedgingPolicy) Descriptor() ([]byte, []int) {
  1408  	return file_grpc_service_config_service_config_proto_rawDescGZIP(), []int{0, 2}
  1409  }
  1410  
  1411  func (x *MethodConfig_HedgingPolicy) GetMaxAttempts() uint32 {
  1412  	if x != nil {
  1413  		return x.MaxAttempts
  1414  	}
  1415  	return 0
  1416  }
  1417  
  1418  func (x *MethodConfig_HedgingPolicy) GetHedgingDelay() *durationpb.Duration {
  1419  	if x != nil {
  1420  		return x.HedgingDelay
  1421  	}
  1422  	return nil
  1423  }
  1424  
  1425  func (x *MethodConfig_HedgingPolicy) GetNonFatalStatusCodes() []code.Code {
  1426  	if x != nil {
  1427  		return x.NonFatalStatusCodes
  1428  	}
  1429  	return nil
  1430  }
  1431  
  1432  // A map of name to child policy configuration.
  1433  // The names are used to allow the priority policy to update
  1434  // existing child policies instead of creating new ones every
  1435  // time it receives a config update.
  1436  type PriorityLoadBalancingPolicyConfig_Child struct {
  1437  	state         protoimpl.MessageState
  1438  	sizeCache     protoimpl.SizeCache
  1439  	unknownFields protoimpl.UnknownFields
  1440  
  1441  	Config []*LoadBalancingConfig `protobuf:"bytes,1,rep,name=config,proto3" json:"config,omitempty"`
  1442  }
  1443  
  1444  func (x *PriorityLoadBalancingPolicyConfig_Child) Reset() {
  1445  	*x = PriorityLoadBalancingPolicyConfig_Child{}
  1446  	if protoimpl.UnsafeEnabled {
  1447  		mi := &file_grpc_service_config_service_config_proto_msgTypes[15]
  1448  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1449  		ms.StoreMessageInfo(mi)
  1450  	}
  1451  }
  1452  
  1453  func (x *PriorityLoadBalancingPolicyConfig_Child) String() string {
  1454  	return protoimpl.X.MessageStringOf(x)
  1455  }
  1456  
  1457  func (*PriorityLoadBalancingPolicyConfig_Child) ProtoMessage() {}
  1458  
  1459  func (x *PriorityLoadBalancingPolicyConfig_Child) ProtoReflect() protoreflect.Message {
  1460  	mi := &file_grpc_service_config_service_config_proto_msgTypes[15]
  1461  	if protoimpl.UnsafeEnabled && x != nil {
  1462  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1463  		if ms.LoadMessageInfo() == nil {
  1464  			ms.StoreMessageInfo(mi)
  1465  		}
  1466  		return ms
  1467  	}
  1468  	return mi.MessageOf(x)
  1469  }
  1470  
  1471  // Deprecated: Use PriorityLoadBalancingPolicyConfig_Child.ProtoReflect.Descriptor instead.
  1472  func (*PriorityLoadBalancingPolicyConfig_Child) Descriptor() ([]byte, []int) {
  1473  	return file_grpc_service_config_service_config_proto_rawDescGZIP(), []int{3, 0}
  1474  }
  1475  
  1476  func (x *PriorityLoadBalancingPolicyConfig_Child) GetConfig() []*LoadBalancingConfig {
  1477  	if x != nil {
  1478  		return x.Config
  1479  	}
  1480  	return nil
  1481  }
  1482  
  1483  type WeightedTargetLoadBalancingPolicyConfig_Target struct {
  1484  	state         protoimpl.MessageState
  1485  	sizeCache     protoimpl.SizeCache
  1486  	unknownFields protoimpl.UnknownFields
  1487  
  1488  	Weight      uint32                 `protobuf:"varint,1,opt,name=weight,proto3" json:"weight,omitempty"`
  1489  	ChildPolicy []*LoadBalancingConfig `protobuf:"bytes,2,rep,name=child_policy,json=childPolicy,proto3" json:"child_policy,omitempty"`
  1490  }
  1491  
  1492  func (x *WeightedTargetLoadBalancingPolicyConfig_Target) Reset() {
  1493  	*x = WeightedTargetLoadBalancingPolicyConfig_Target{}
  1494  	if protoimpl.UnsafeEnabled {
  1495  		mi := &file_grpc_service_config_service_config_proto_msgTypes[17]
  1496  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1497  		ms.StoreMessageInfo(mi)
  1498  	}
  1499  }
  1500  
  1501  func (x *WeightedTargetLoadBalancingPolicyConfig_Target) String() string {
  1502  	return protoimpl.X.MessageStringOf(x)
  1503  }
  1504  
  1505  func (*WeightedTargetLoadBalancingPolicyConfig_Target) ProtoMessage() {}
  1506  
  1507  func (x *WeightedTargetLoadBalancingPolicyConfig_Target) ProtoReflect() protoreflect.Message {
  1508  	mi := &file_grpc_service_config_service_config_proto_msgTypes[17]
  1509  	if protoimpl.UnsafeEnabled && x != nil {
  1510  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1511  		if ms.LoadMessageInfo() == nil {
  1512  			ms.StoreMessageInfo(mi)
  1513  		}
  1514  		return ms
  1515  	}
  1516  	return mi.MessageOf(x)
  1517  }
  1518  
  1519  // Deprecated: Use WeightedTargetLoadBalancingPolicyConfig_Target.ProtoReflect.Descriptor instead.
  1520  func (*WeightedTargetLoadBalancingPolicyConfig_Target) Descriptor() ([]byte, []int) {
  1521  	return file_grpc_service_config_service_config_proto_rawDescGZIP(), []int{4, 0}
  1522  }
  1523  
  1524  func (x *WeightedTargetLoadBalancingPolicyConfig_Target) GetWeight() uint32 {
  1525  	if x != nil {
  1526  		return x.Weight
  1527  	}
  1528  	return 0
  1529  }
  1530  
  1531  func (x *WeightedTargetLoadBalancingPolicyConfig_Target) GetChildPolicy() []*LoadBalancingConfig {
  1532  	if x != nil {
  1533  		return x.ChildPolicy
  1534  	}
  1535  	return nil
  1536  }
  1537  
  1538  // The locality for which this policy will report load.  Required.
  1539  type LrsLoadBalancingPolicyConfig_Locality struct {
  1540  	state         protoimpl.MessageState
  1541  	sizeCache     protoimpl.SizeCache
  1542  	unknownFields protoimpl.UnknownFields
  1543  
  1544  	Region  string `protobuf:"bytes,1,opt,name=region,proto3" json:"region,omitempty"`
  1545  	Zone    string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
  1546  	Subzone string `protobuf:"bytes,3,opt,name=subzone,proto3" json:"subzone,omitempty"`
  1547  }
  1548  
  1549  func (x *LrsLoadBalancingPolicyConfig_Locality) Reset() {
  1550  	*x = LrsLoadBalancingPolicyConfig_Locality{}
  1551  	if protoimpl.UnsafeEnabled {
  1552  		mi := &file_grpc_service_config_service_config_proto_msgTypes[19]
  1553  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1554  		ms.StoreMessageInfo(mi)
  1555  	}
  1556  }
  1557  
  1558  func (x *LrsLoadBalancingPolicyConfig_Locality) String() string {
  1559  	return protoimpl.X.MessageStringOf(x)
  1560  }
  1561  
  1562  func (*LrsLoadBalancingPolicyConfig_Locality) ProtoMessage() {}
  1563  
  1564  func (x *LrsLoadBalancingPolicyConfig_Locality) ProtoReflect() protoreflect.Message {
  1565  	mi := &file_grpc_service_config_service_config_proto_msgTypes[19]
  1566  	if protoimpl.UnsafeEnabled && x != nil {
  1567  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1568  		if ms.LoadMessageInfo() == nil {
  1569  			ms.StoreMessageInfo(mi)
  1570  		}
  1571  		return ms
  1572  	}
  1573  	return mi.MessageOf(x)
  1574  }
  1575  
  1576  // Deprecated: Use LrsLoadBalancingPolicyConfig_Locality.ProtoReflect.Descriptor instead.
  1577  func (*LrsLoadBalancingPolicyConfig_Locality) Descriptor() ([]byte, []int) {
  1578  	return file_grpc_service_config_service_config_proto_rawDescGZIP(), []int{9, 0}
  1579  }
  1580  
  1581  func (x *LrsLoadBalancingPolicyConfig_Locality) GetRegion() string {
  1582  	if x != nil {
  1583  		return x.Region
  1584  	}
  1585  	return ""
  1586  }
  1587  
  1588  func (x *LrsLoadBalancingPolicyConfig_Locality) GetZone() string {
  1589  	if x != nil {
  1590  		return x.Zone
  1591  	}
  1592  	return ""
  1593  }
  1594  
  1595  func (x *LrsLoadBalancingPolicyConfig_Locality) GetSubzone() string {
  1596  	if x != nil {
  1597  		return x.Subzone
  1598  	}
  1599  	return ""
  1600  }
  1601  
  1602  // If a RetryThrottlingPolicy is provided, gRPC will automatically throttle
  1603  // retry attempts and hedged RPCs when the client's ratio of failures to
  1604  // successes exceeds a threshold.
  1605  //
  1606  // For each server name, the gRPC client will maintain a token_count which is
  1607  // initially set to max_tokens. Every outgoing RPC (regardless of service or
  1608  // method invoked) will change token_count as follows:
  1609  //
  1610  //   - Every failed RPC will decrement the token_count by 1.
  1611  //   - Every successful RPC will increment the token_count by token_ratio.
  1612  //
  1613  // If token_count is less than or equal to max_tokens / 2, then RPCs will not
  1614  // be retried and hedged RPCs will not be sent.
  1615  type ServiceConfig_RetryThrottlingPolicy struct {
  1616  	state         protoimpl.MessageState
  1617  	sizeCache     protoimpl.SizeCache
  1618  	unknownFields protoimpl.UnknownFields
  1619  
  1620  	// The number of tokens starts at max_tokens. The token_count will always be
  1621  	// between 0 and max_tokens.
  1622  	//
  1623  	// This field is required and must be greater than zero.
  1624  	MaxTokens uint32 `protobuf:"varint,1,opt,name=max_tokens,json=maxTokens,proto3" json:"max_tokens,omitempty"`
  1625  	// The amount of tokens to add on each successful RPC. Typically this will
  1626  	// be some number between 0 and 1, e.g., 0.1.
  1627  	//
  1628  	// This field is required and must be greater than zero. Up to 3 decimal
  1629  	// places are supported.
  1630  	TokenRatio float32 `protobuf:"fixed32,2,opt,name=token_ratio,json=tokenRatio,proto3" json:"token_ratio,omitempty"`
  1631  }
  1632  
  1633  func (x *ServiceConfig_RetryThrottlingPolicy) Reset() {
  1634  	*x = ServiceConfig_RetryThrottlingPolicy{}
  1635  	if protoimpl.UnsafeEnabled {
  1636  		mi := &file_grpc_service_config_service_config_proto_msgTypes[20]
  1637  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1638  		ms.StoreMessageInfo(mi)
  1639  	}
  1640  }
  1641  
  1642  func (x *ServiceConfig_RetryThrottlingPolicy) String() string {
  1643  	return protoimpl.X.MessageStringOf(x)
  1644  }
  1645  
  1646  func (*ServiceConfig_RetryThrottlingPolicy) ProtoMessage() {}
  1647  
  1648  func (x *ServiceConfig_RetryThrottlingPolicy) ProtoReflect() protoreflect.Message {
  1649  	mi := &file_grpc_service_config_service_config_proto_msgTypes[20]
  1650  	if protoimpl.UnsafeEnabled && x != nil {
  1651  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1652  		if ms.LoadMessageInfo() == nil {
  1653  			ms.StoreMessageInfo(mi)
  1654  		}
  1655  		return ms
  1656  	}
  1657  	return mi.MessageOf(x)
  1658  }
  1659  
  1660  // Deprecated: Use ServiceConfig_RetryThrottlingPolicy.ProtoReflect.Descriptor instead.
  1661  func (*ServiceConfig_RetryThrottlingPolicy) Descriptor() ([]byte, []int) {
  1662  	return file_grpc_service_config_service_config_proto_rawDescGZIP(), []int{11, 0}
  1663  }
  1664  
  1665  func (x *ServiceConfig_RetryThrottlingPolicy) GetMaxTokens() uint32 {
  1666  	if x != nil {
  1667  		return x.MaxTokens
  1668  	}
  1669  	return 0
  1670  }
  1671  
  1672  func (x *ServiceConfig_RetryThrottlingPolicy) GetTokenRatio() float32 {
  1673  	if x != nil {
  1674  		return x.TokenRatio
  1675  	}
  1676  	return 0
  1677  }
  1678  
  1679  type ServiceConfig_HealthCheckConfig struct {
  1680  	state         protoimpl.MessageState
  1681  	sizeCache     protoimpl.SizeCache
  1682  	unknownFields protoimpl.UnknownFields
  1683  
  1684  	// Service name to use in the health-checking request.
  1685  	ServiceName *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"`
  1686  }
  1687  
  1688  func (x *ServiceConfig_HealthCheckConfig) Reset() {
  1689  	*x = ServiceConfig_HealthCheckConfig{}
  1690  	if protoimpl.UnsafeEnabled {
  1691  		mi := &file_grpc_service_config_service_config_proto_msgTypes[21]
  1692  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1693  		ms.StoreMessageInfo(mi)
  1694  	}
  1695  }
  1696  
  1697  func (x *ServiceConfig_HealthCheckConfig) String() string {
  1698  	return protoimpl.X.MessageStringOf(x)
  1699  }
  1700  
  1701  func (*ServiceConfig_HealthCheckConfig) ProtoMessage() {}
  1702  
  1703  func (x *ServiceConfig_HealthCheckConfig) ProtoReflect() protoreflect.Message {
  1704  	mi := &file_grpc_service_config_service_config_proto_msgTypes[21]
  1705  	if protoimpl.UnsafeEnabled && x != nil {
  1706  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1707  		if ms.LoadMessageInfo() == nil {
  1708  			ms.StoreMessageInfo(mi)
  1709  		}
  1710  		return ms
  1711  	}
  1712  	return mi.MessageOf(x)
  1713  }
  1714  
  1715  // Deprecated: Use ServiceConfig_HealthCheckConfig.ProtoReflect.Descriptor instead.
  1716  func (*ServiceConfig_HealthCheckConfig) Descriptor() ([]byte, []int) {
  1717  	return file_grpc_service_config_service_config_proto_rawDescGZIP(), []int{11, 1}
  1718  }
  1719  
  1720  func (x *ServiceConfig_HealthCheckConfig) GetServiceName() *wrapperspb.StringValue {
  1721  	if x != nil {
  1722  		return x.ServiceName
  1723  	}
  1724  	return nil
  1725  }
  1726  
  1727  var File_grpc_service_config_service_config_proto protoreflect.FileDescriptor
  1728  
  1729  var file_grpc_service_config_service_config_proto_rawDesc = []byte{
  1730  	0x0a, 0x28, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63,
  1731  	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f,
  1732  	0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x13, 0x67, 0x72, 0x70, 0x63,
  1733  	0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a,
  1734  	0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
  1735  	0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
  1736  	0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
  1737  	0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
  1738  	0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x63, 0x6f, 0x64, 0x65,
  1739  	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xde, 0x08, 0x0a, 0x0c, 0x4d, 0x65, 0x74, 0x68, 0x6f,
  1740  	0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
  1741  	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72,
  1742  	0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x68,
  1743  	0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x04, 0x6e,
  1744  	0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0e, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x5f,
  1745  	0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
  1746  	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f,
  1747  	0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x77, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72,
  1748  	0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x33, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74,
  1749  	0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
  1750  	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
  1751  	0x6e, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x57, 0x0a, 0x19, 0x6d, 0x61,
  1752  	0x78, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
  1753  	0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e,
  1754  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
  1755  	0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x6d, 0x61, 0x78,
  1756  	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79,
  1757  	0x74, 0x65, 0x73, 0x12, 0x59, 0x0a, 0x1a, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f,
  1758  	0x6e, 0x73, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65,
  1759  	0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
  1760  	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32,
  1761  	0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x17, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
  1762  	0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x52,
  1763  	0x0a, 0x0c, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x06,
  1764  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76,
  1765  	0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f,
  1766  	0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x6c,
  1767  	0x69, 0x63, 0x79, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x65, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x6c, 0x69,
  1768  	0x63, 0x79, 0x12, 0x58, 0x0a, 0x0e, 0x68, 0x65, 0x64, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6f,
  1769  	0x6c, 0x69, 0x63, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x72, 0x70,
  1770  	0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  1771  	0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x48, 0x65,
  1772  	0x64, 0x67, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x48, 0x00, 0x52, 0x0d, 0x68,
  1773  	0x65, 0x64, 0x67, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x1a, 0x38, 0x0a, 0x04,
  1774  	0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18,
  1775  	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x16,
  1776  	0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
  1777  	0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x1a, 0xa7, 0x02, 0x0a, 0x0b, 0x52, 0x65, 0x74, 0x72, 0x79,
  1778  	0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x74,
  1779  	0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x61,
  1780  	0x78, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0f, 0x69, 0x6e, 0x69,
  1781  	0x74, 0x69, 0x61, 0x6c, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x18, 0x02, 0x20, 0x01,
  1782  	0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
  1783  	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x69,
  1784  	0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x42, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x12, 0x3a, 0x0a,
  1785  	0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x18, 0x03, 0x20, 0x01,
  1786  	0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
  1787  	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x6d,
  1788  	0x61, 0x78, 0x42, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x12, 0x2d, 0x0a, 0x12, 0x62, 0x61, 0x63,
  1789  	0x6b, 0x6f, 0x66, 0x66, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x18,
  1790  	0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x62, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x4d, 0x75,
  1791  	0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x12, 0x46, 0x0a, 0x16, 0x72, 0x65, 0x74, 0x72,
  1792  	0x79, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64,
  1793  	0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  1794  	0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x14, 0x72, 0x65, 0x74, 0x72,
  1795  	0x79, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x73,
  1796  	0x1a, 0xb9, 0x01, 0x0a, 0x0d, 0x48, 0x65, 0x64, 0x67, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69,
  1797  	0x63, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70,
  1798  	0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x41, 0x74, 0x74,
  1799  	0x65, 0x6d, 0x70, 0x74, 0x73, 0x12, 0x3e, 0x0a, 0x0d, 0x68, 0x65, 0x64, 0x67, 0x69, 0x6e, 0x67,
  1800  	0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67,
  1801  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44,
  1802  	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x68, 0x65, 0x64, 0x67, 0x69, 0x6e, 0x67,
  1803  	0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x45, 0x0a, 0x16, 0x6e, 0x6f, 0x6e, 0x5f, 0x66, 0x61, 0x74,
  1804  	0x61, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x18,
  1805  	0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72,
  1806  	0x70, 0x63, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x13, 0x6e, 0x6f, 0x6e, 0x46, 0x61, 0x74, 0x61,
  1807  	0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x42, 0x19, 0x0a, 0x17,
  1808  	0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x6f, 0x72, 0x5f, 0x68, 0x65, 0x64, 0x67, 0x69, 0x6e, 0x67,
  1809  	0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x11, 0x0a, 0x0f, 0x50, 0x69, 0x63, 0x6b, 0x46,
  1810  	0x69, 0x72, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x12, 0x0a, 0x10, 0x52, 0x6f,
  1811  	0x75, 0x6e, 0x64, 0x52, 0x6f, 0x62, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xeb,
  1812  	0x02, 0x0a, 0x21, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x4c, 0x6f, 0x61, 0x64, 0x42,
  1813  	0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x43, 0x6f,
  1814  	0x6e, 0x66, 0x69, 0x67, 0x12, 0x60, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e,
  1815  	0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65,
  1816  	0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x72, 0x69,
  1817  	0x6f, 0x72, 0x69, 0x74, 0x79, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69,
  1818  	0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43,
  1819  	0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x63, 0x68,
  1820  	0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69,
  1821  	0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x6f,
  1822  	0x72, 0x69, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x49, 0x0a, 0x05, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x12,
  1823  	0x40, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
  1824  	0x28, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63,
  1825  	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63,
  1826  	0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69,
  1827  	0x67, 0x1a, 0x79, 0x0a, 0x0d, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x45, 0x6e, 0x74,
  1828  	0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
  1829  	0x03, 0x6b, 0x65, 0x79, 0x12, 0x52, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
  1830  	0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69,
  1831  	0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69,
  1832  	0x74, 0x79, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x50,
  1833  	0x6f, 0x6c, 0x69, 0x63, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x68, 0x69, 0x6c,
  1834  	0x64, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xfe, 0x02, 0x0a,
  1835  	0x27, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4c,
  1836  	0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69,
  1837  	0x63, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x63, 0x0a, 0x07, 0x74, 0x61, 0x72, 0x67,
  1838  	0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x67, 0x72, 0x70, 0x63,
  1839  	0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
  1840  	0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4c, 0x6f,
  1841  	0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63,
  1842  	0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x45,
  1843  	0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x1a, 0x6d, 0x0a,
  1844  	0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68,
  1845  	0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12,
  1846  	0x4b, 0x0a, 0x0c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18,
  1847  	0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72,
  1848  	0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4c, 0x6f, 0x61, 0x64,
  1849  	0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52,
  1850  	0x0b, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x1a, 0x7f, 0x0a, 0x0c,
  1851  	0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
  1852  	0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x59,
  1853  	0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e,
  1854  	0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e,
  1855  	0x66, 0x69, 0x67, 0x2e, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67,
  1856  	0x65, 0x74, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x50,
  1857  	0x6f, 0x6c, 0x69, 0x63, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x61, 0x72, 0x67,
  1858  	0x65, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x7e, 0x0a,
  1859  	0x0c, 0x47, 0x72, 0x70, 0x63, 0x4c, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4b, 0x0a,
  1860  	0x0c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x01, 0x20,
  1861  	0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69,
  1862  	0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61,
  1863  	0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0b, 0x63,
  1864  	0x68, 0x69, 0x6c, 0x64, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65,
  1865  	0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
  1866  	0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x25, 0x0a,
  1867  	0x09, 0x43, 0x64, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c,
  1868  	0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6c, 0x75,
  1869  	0x73, 0x74, 0x65, 0x72, 0x22, 0xe0, 0x02, 0x0a, 0x09, 0x58, 0x64, 0x73, 0x43, 0x6f, 0x6e, 0x66,
  1870  	0x69, 0x67, 0x12, 0x27, 0x0a, 0x0d, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x5f, 0x6e,
  1871  	0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0c, 0x62,
  1872  	0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x4b, 0x0a, 0x0c, 0x63,
  1873  	0x68, 0x69, 0x6c, 0x64, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x02, 0x20, 0x03, 0x28,
  1874  	0x0b, 0x32, 0x28, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
  1875  	0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61,
  1876  	0x6e, 0x63, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0b, 0x63, 0x68, 0x69,
  1877  	0x6c, 0x64, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x51, 0x0a, 0x0f, 0x66, 0x61, 0x6c, 0x6c,
  1878  	0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x03, 0x20, 0x03, 0x28,
  1879  	0x0b, 0x32, 0x28, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
  1880  	0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61,
  1881  	0x6e, 0x63, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, 0x66, 0x61, 0x6c,
  1882  	0x6c, 0x62, 0x61, 0x63, 0x6b, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x65,
  1883  	0x64, 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
  1884  	0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x64, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
  1885  	0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x60, 0x0a, 0x1e, 0x6c, 0x72, 0x73, 0x5f, 0x6c, 0x6f, 0x61,
  1886  	0x64, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x65, 0x72, 0x76,
  1887  	0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e,
  1888  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
  1889  	0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1a, 0x6c, 0x72, 0x73,
  1890  	0x4c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72,
  1891  	0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x88, 0x03, 0x0a, 0x1c, 0x45, 0x64, 0x73, 0x4c,
  1892  	0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69,
  1893  	0x63, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73,
  1894  	0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74,
  1895  	0x65, 0x72, 0x12, 0x28, 0x0a, 0x10, 0x65, 0x64, 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
  1896  	0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x64,
  1897  	0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x60, 0x0a, 0x1e,
  1898  	0x6c, 0x72, 0x73, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69,
  1899  	0x6e, 0x67, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03,
  1900  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
  1901  	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c,
  1902  	0x75, 0x65, 0x52, 0x1a, 0x6c, 0x72, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x70, 0x6f, 0x72,
  1903  	0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x60,
  1904  	0x0a, 0x17, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x70, 0x69, 0x63, 0x6b, 0x69,
  1905  	0x6e, 0x67, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32,
  1906  	0x28, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63,
  1907  	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63,
  1908  	0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x15, 0x6c, 0x6f, 0x63, 0x61, 0x6c,
  1909  	0x69, 0x74, 0x79, 0x50, 0x69, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79,
  1910  	0x12, 0x60, 0x0a, 0x17, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x70, 0x69, 0x63,
  1911  	0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x05, 0x20, 0x03, 0x28,
  1912  	0x0b, 0x32, 0x28, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
  1913  	0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61,
  1914  	0x6e, 0x63, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x15, 0x65, 0x6e, 0x64,
  1915  	0x70, 0x6f, 0x69, 0x6e, 0x74, 0x50, 0x69, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69,
  1916  	0x63, 0x79, 0x22, 0xa6, 0x03, 0x0a, 0x1c, 0x4c, 0x72, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61,
  1917  	0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x43, 0x6f, 0x6e,
  1918  	0x66, 0x69, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6e,
  1919  	0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74,
  1920  	0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x65, 0x64, 0x73, 0x5f, 0x73, 0x65,
  1921  	0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
  1922  	0x52, 0x0e, 0x65, 0x64, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65,
  1923  	0x12, 0x42, 0x0a, 0x1e, 0x6c, 0x72, 0x73, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x72, 0x65, 0x70,
  1924  	0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6e, 0x61,
  1925  	0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1a, 0x6c, 0x72, 0x73, 0x4c, 0x6f, 0x61,
  1926  	0x64, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
  1927  	0x4e, 0x61, 0x6d, 0x65, 0x12, 0x56, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79,
  1928  	0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65,
  1929  	0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4c, 0x72, 0x73,
  1930  	0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c,
  1931  	0x69, 0x63, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69,
  1932  	0x74, 0x79, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x4b, 0x0a, 0x0c,
  1933  	0x63, 0x68, 0x69, 0x6c, 0x64, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x05, 0x20, 0x03,
  1934  	0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
  1935  	0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c,
  1936  	0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0b, 0x63, 0x68,
  1937  	0x69, 0x6c, 0x64, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x1a, 0x50, 0x0a, 0x08, 0x4c, 0x6f, 0x63,
  1938  	0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18,
  1939  	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a,
  1940  	0x04, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x7a, 0x6f, 0x6e,
  1941  	0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01,
  1942  	0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x62, 0x7a, 0x6f, 0x6e, 0x65, 0x22, 0xfa, 0x05, 0x0a, 0x13,
  1943  	0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e,
  1944  	0x66, 0x69, 0x67, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x69, 0x63, 0x6b, 0x5f, 0x66, 0x69, 0x72, 0x73,
  1945  	0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73,
  1946  	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x69,
  1947  	0x63, 0x6b, 0x46, 0x69, 0x72, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52,
  1948  	0x0a, 0x70, 0x69, 0x63, 0x6b, 0x5f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x12, 0x49, 0x0a, 0x0b, 0x72,
  1949  	0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x72, 0x6f, 0x62, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
  1950  	0x32, 0x25, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f,
  1951  	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x6f, 0x62, 0x69,
  1952  	0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x6e, 0x64,
  1953  	0x5f, 0x72, 0x6f, 0x62, 0x69, 0x6e, 0x12, 0x3b, 0x0a, 0x06, 0x67, 0x72, 0x70, 0x63, 0x6c, 0x62,
  1954  	0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65,
  1955  	0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x47, 0x72, 0x70,
  1956  	0x63, 0x4c, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x06, 0x67, 0x72, 0x70,
  1957  	0x63, 0x6c, 0x62, 0x12, 0x54, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18,
  1958  	0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72,
  1959  	0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x72, 0x69, 0x6f,
  1960  	0x72, 0x69, 0x74, 0x79, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e,
  1961  	0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52,
  1962  	0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x67, 0x0a, 0x0f, 0x77, 0x65, 0x69,
  1963  	0x67, 0x68, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x0a, 0x20, 0x01,
  1964  	0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
  1965  	0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65,
  1966  	0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e,
  1967  	0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  1968  	0x48, 0x00, 0x52, 0x0e, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67,
  1969  	0x65, 0x74, 0x12, 0x32, 0x0a, 0x03, 0x63, 0x64, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32,
  1970  	0x1e, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63,
  1971  	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x64, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48,
  1972  	0x00, 0x52, 0x03, 0x63, 0x64, 0x73, 0x12, 0x45, 0x0a, 0x03, 0x65, 0x64, 0x73, 0x18, 0x07, 0x20,
  1973  	0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69,
  1974  	0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x45, 0x64, 0x73, 0x4c, 0x6f, 0x61,
  1975  	0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79,
  1976  	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x03, 0x65, 0x64, 0x73, 0x12, 0x45, 0x0a,
  1977  	0x03, 0x6c, 0x72, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x72, 0x70,
  1978  	0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  1979  	0x2e, 0x4c, 0x72, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e,
  1980  	0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52,
  1981  	0x03, 0x6c, 0x72, 0x73, 0x12, 0x36, 0x0a, 0x03, 0x78, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28,
  1982  	0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
  1983  	0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x58, 0x64, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69,
  1984  	0x67, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x03, 0x78, 0x64, 0x73, 0x12, 0x50, 0x0a, 0x10,
  1985  	0x78, 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c,
  1986  	0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65,
  1987  	0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x58, 0x64, 0x73,
  1988  	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x10, 0x78, 0x64,
  1989  	0x73, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x42, 0x08,
  1990  	0x0a, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0xd8, 0x05, 0x0a, 0x0d, 0x53, 0x65, 0x72,
  1991  	0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x6e, 0x0a, 0x15, 0x6c, 0x6f,
  1992  	0x61, 0x64, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6f, 0x6c,
  1993  	0x69, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x67, 0x72, 0x70, 0x63,
  1994  	0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
  1995  	0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4c, 0x6f,
  1996  	0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63,
  1997  	0x79, 0x42, 0x02, 0x18, 0x01, 0x52, 0x13, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e,
  1998  	0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x5c, 0x0a, 0x15, 0x6c, 0x6f,
  1999  	0x61, 0x64, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e,
  2000  	0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x72, 0x70, 0x63,
  2001  	0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
  2002  	0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e,
  2003  	0x66, 0x69, 0x67, 0x52, 0x13, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69,
  2004  	0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x46, 0x0a, 0x0d, 0x6d, 0x65, 0x74, 0x68,
  2005  	0x6f, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
  2006  	0x21, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63,
  2007  	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x66,
  2008  	0x69, 0x67, 0x52, 0x0c, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  2009  	0x12, 0x63, 0x0a, 0x10, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74,
  2010  	0x6c, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x72, 0x70,
  2011  	0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  2012  	0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52,
  2013  	0x65, 0x74, 0x72, 0x79, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6f,
  2014  	0x6c, 0x69, 0x63, 0x79, 0x52, 0x0f, 0x72, 0x65, 0x74, 0x72, 0x79, 0x54, 0x68, 0x72, 0x6f, 0x74,
  2015  	0x74, 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x64, 0x0a, 0x13, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f,
  2016  	0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01,
  2017  	0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
  2018  	0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
  2019  	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65,
  2020  	0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x11, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68,
  2021  	0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x57, 0x0a, 0x15, 0x52,
  2022  	0x65, 0x74, 0x72, 0x79, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6f,
  2023  	0x6c, 0x69, 0x63, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x6f, 0x6b, 0x65,
  2024  	0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x54, 0x6f, 0x6b,
  2025  	0x65, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x72, 0x61, 0x74,
  2026  	0x69, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x52,
  2027  	0x61, 0x74, 0x69, 0x6f, 0x1a, 0x54, 0x0a, 0x11, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68,
  2028  	0x65, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3f, 0x0a, 0x0c, 0x73, 0x65, 0x72,
  2029  	0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
  2030  	0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
  2031  	0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x73,
  2032  	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x37, 0x0a, 0x13, 0x4c, 0x6f,
  2033  	0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63,
  2034  	0x79, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44,
  2035  	0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x4f, 0x55, 0x4e, 0x44, 0x5f, 0x52, 0x4f, 0x42, 0x49,
  2036  	0x4e, 0x10, 0x01, 0x42, 0x2d, 0x0a, 0x15, 0x69, 0x6f, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73,
  2037  	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x12, 0x53, 0x65,
  2038  	0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f,
  2039  	0x50, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
  2040  }
  2041  
  2042  var (
  2043  	file_grpc_service_config_service_config_proto_rawDescOnce sync.Once
  2044  	file_grpc_service_config_service_config_proto_rawDescData = file_grpc_service_config_service_config_proto_rawDesc
  2045  )
  2046  
  2047  func file_grpc_service_config_service_config_proto_rawDescGZIP() []byte {
  2048  	file_grpc_service_config_service_config_proto_rawDescOnce.Do(func() {
  2049  		file_grpc_service_config_service_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_grpc_service_config_service_config_proto_rawDescData)
  2050  	})
  2051  	return file_grpc_service_config_service_config_proto_rawDescData
  2052  }
  2053  
  2054  var file_grpc_service_config_service_config_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
  2055  var file_grpc_service_config_service_config_proto_msgTypes = make([]protoimpl.MessageInfo, 22)
  2056  var file_grpc_service_config_service_config_proto_goTypes = []interface{}{
  2057  	(ServiceConfig_LoadBalancingPolicy)(0),          // 0: grpc.service_config.ServiceConfig.LoadBalancingPolicy
  2058  	(*MethodConfig)(nil),                            // 1: grpc.service_config.MethodConfig
  2059  	(*PickFirstConfig)(nil),                         // 2: grpc.service_config.PickFirstConfig
  2060  	(*RoundRobinConfig)(nil),                        // 3: grpc.service_config.RoundRobinConfig
  2061  	(*PriorityLoadBalancingPolicyConfig)(nil),       // 4: grpc.service_config.PriorityLoadBalancingPolicyConfig
  2062  	(*WeightedTargetLoadBalancingPolicyConfig)(nil), // 5: grpc.service_config.WeightedTargetLoadBalancingPolicyConfig
  2063  	(*GrpcLbConfig)(nil),                            // 6: grpc.service_config.GrpcLbConfig
  2064  	(*CdsConfig)(nil),                               // 7: grpc.service_config.CdsConfig
  2065  	(*XdsConfig)(nil),                               // 8: grpc.service_config.XdsConfig
  2066  	(*EdsLoadBalancingPolicyConfig)(nil),            // 9: grpc.service_config.EdsLoadBalancingPolicyConfig
  2067  	(*LrsLoadBalancingPolicyConfig)(nil),            // 10: grpc.service_config.LrsLoadBalancingPolicyConfig
  2068  	(*LoadBalancingConfig)(nil),                     // 11: grpc.service_config.LoadBalancingConfig
  2069  	(*ServiceConfig)(nil),                           // 12: grpc.service_config.ServiceConfig
  2070  	(*MethodConfig_Name)(nil),                       // 13: grpc.service_config.MethodConfig.Name
  2071  	(*MethodConfig_RetryPolicy)(nil),                // 14: grpc.service_config.MethodConfig.RetryPolicy
  2072  	(*MethodConfig_HedgingPolicy)(nil),              // 15: grpc.service_config.MethodConfig.HedgingPolicy
  2073  	(*PriorityLoadBalancingPolicyConfig_Child)(nil), // 16: grpc.service_config.PriorityLoadBalancingPolicyConfig.Child
  2074  	nil, // 17: grpc.service_config.PriorityLoadBalancingPolicyConfig.ChildrenEntry
  2075  	(*WeightedTargetLoadBalancingPolicyConfig_Target)(nil), // 18: grpc.service_config.WeightedTargetLoadBalancingPolicyConfig.Target
  2076  	nil, // 19: grpc.service_config.WeightedTargetLoadBalancingPolicyConfig.TargetsEntry
  2077  	(*LrsLoadBalancingPolicyConfig_Locality)(nil), // 20: grpc.service_config.LrsLoadBalancingPolicyConfig.Locality
  2078  	(*ServiceConfig_RetryThrottlingPolicy)(nil),   // 21: grpc.service_config.ServiceConfig.RetryThrottlingPolicy
  2079  	(*ServiceConfig_HealthCheckConfig)(nil),       // 22: grpc.service_config.ServiceConfig.HealthCheckConfig
  2080  	(*wrapperspb.BoolValue)(nil),                  // 23: google.protobuf.BoolValue
  2081  	(*durationpb.Duration)(nil),                   // 24: google.protobuf.Duration
  2082  	(*wrapperspb.UInt32Value)(nil),                // 25: google.protobuf.UInt32Value
  2083  	(*wrapperspb.StringValue)(nil),                // 26: google.protobuf.StringValue
  2084  	(code.Code)(0),                                // 27: google.rpc.Code
  2085  }
  2086  var file_grpc_service_config_service_config_proto_depIdxs = []int32{
  2087  	13, // 0: grpc.service_config.MethodConfig.name:type_name -> grpc.service_config.MethodConfig.Name
  2088  	23, // 1: grpc.service_config.MethodConfig.wait_for_ready:type_name -> google.protobuf.BoolValue
  2089  	24, // 2: grpc.service_config.MethodConfig.timeout:type_name -> google.protobuf.Duration
  2090  	25, // 3: grpc.service_config.MethodConfig.max_request_message_bytes:type_name -> google.protobuf.UInt32Value
  2091  	25, // 4: grpc.service_config.MethodConfig.max_response_message_bytes:type_name -> google.protobuf.UInt32Value
  2092  	14, // 5: grpc.service_config.MethodConfig.retry_policy:type_name -> grpc.service_config.MethodConfig.RetryPolicy
  2093  	15, // 6: grpc.service_config.MethodConfig.hedging_policy:type_name -> grpc.service_config.MethodConfig.HedgingPolicy
  2094  	17, // 7: grpc.service_config.PriorityLoadBalancingPolicyConfig.children:type_name -> grpc.service_config.PriorityLoadBalancingPolicyConfig.ChildrenEntry
  2095  	19, // 8: grpc.service_config.WeightedTargetLoadBalancingPolicyConfig.targets:type_name -> grpc.service_config.WeightedTargetLoadBalancingPolicyConfig.TargetsEntry
  2096  	11, // 9: grpc.service_config.GrpcLbConfig.child_policy:type_name -> grpc.service_config.LoadBalancingConfig
  2097  	11, // 10: grpc.service_config.XdsConfig.child_policy:type_name -> grpc.service_config.LoadBalancingConfig
  2098  	11, // 11: grpc.service_config.XdsConfig.fallback_policy:type_name -> grpc.service_config.LoadBalancingConfig
  2099  	26, // 12: grpc.service_config.XdsConfig.lrs_load_reporting_server_name:type_name -> google.protobuf.StringValue
  2100  	26, // 13: grpc.service_config.EdsLoadBalancingPolicyConfig.lrs_load_reporting_server_name:type_name -> google.protobuf.StringValue
  2101  	11, // 14: grpc.service_config.EdsLoadBalancingPolicyConfig.locality_picking_policy:type_name -> grpc.service_config.LoadBalancingConfig
  2102  	11, // 15: grpc.service_config.EdsLoadBalancingPolicyConfig.endpoint_picking_policy:type_name -> grpc.service_config.LoadBalancingConfig
  2103  	20, // 16: grpc.service_config.LrsLoadBalancingPolicyConfig.locality:type_name -> grpc.service_config.LrsLoadBalancingPolicyConfig.Locality
  2104  	11, // 17: grpc.service_config.LrsLoadBalancingPolicyConfig.child_policy:type_name -> grpc.service_config.LoadBalancingConfig
  2105  	2,  // 18: grpc.service_config.LoadBalancingConfig.pick_first:type_name -> grpc.service_config.PickFirstConfig
  2106  	3,  // 19: grpc.service_config.LoadBalancingConfig.round_robin:type_name -> grpc.service_config.RoundRobinConfig
  2107  	6,  // 20: grpc.service_config.LoadBalancingConfig.grpclb:type_name -> grpc.service_config.GrpcLbConfig
  2108  	4,  // 21: grpc.service_config.LoadBalancingConfig.priority:type_name -> grpc.service_config.PriorityLoadBalancingPolicyConfig
  2109  	5,  // 22: grpc.service_config.LoadBalancingConfig.weighted_target:type_name -> grpc.service_config.WeightedTargetLoadBalancingPolicyConfig
  2110  	7,  // 23: grpc.service_config.LoadBalancingConfig.cds:type_name -> grpc.service_config.CdsConfig
  2111  	9,  // 24: grpc.service_config.LoadBalancingConfig.eds:type_name -> grpc.service_config.EdsLoadBalancingPolicyConfig
  2112  	10, // 25: grpc.service_config.LoadBalancingConfig.lrs:type_name -> grpc.service_config.LrsLoadBalancingPolicyConfig
  2113  	8,  // 26: grpc.service_config.LoadBalancingConfig.xds:type_name -> grpc.service_config.XdsConfig
  2114  	8,  // 27: grpc.service_config.LoadBalancingConfig.xds_experimental:type_name -> grpc.service_config.XdsConfig
  2115  	0,  // 28: grpc.service_config.ServiceConfig.load_balancing_policy:type_name -> grpc.service_config.ServiceConfig.LoadBalancingPolicy
  2116  	11, // 29: grpc.service_config.ServiceConfig.load_balancing_config:type_name -> grpc.service_config.LoadBalancingConfig
  2117  	1,  // 30: grpc.service_config.ServiceConfig.method_config:type_name -> grpc.service_config.MethodConfig
  2118  	21, // 31: grpc.service_config.ServiceConfig.retry_throttling:type_name -> grpc.service_config.ServiceConfig.RetryThrottlingPolicy
  2119  	22, // 32: grpc.service_config.ServiceConfig.health_check_config:type_name -> grpc.service_config.ServiceConfig.HealthCheckConfig
  2120  	24, // 33: grpc.service_config.MethodConfig.RetryPolicy.initial_backoff:type_name -> google.protobuf.Duration
  2121  	24, // 34: grpc.service_config.MethodConfig.RetryPolicy.max_backoff:type_name -> google.protobuf.Duration
  2122  	27, // 35: grpc.service_config.MethodConfig.RetryPolicy.retryable_status_codes:type_name -> google.rpc.Code
  2123  	24, // 36: grpc.service_config.MethodConfig.HedgingPolicy.hedging_delay:type_name -> google.protobuf.Duration
  2124  	27, // 37: grpc.service_config.MethodConfig.HedgingPolicy.non_fatal_status_codes:type_name -> google.rpc.Code
  2125  	11, // 38: grpc.service_config.PriorityLoadBalancingPolicyConfig.Child.config:type_name -> grpc.service_config.LoadBalancingConfig
  2126  	16, // 39: grpc.service_config.PriorityLoadBalancingPolicyConfig.ChildrenEntry.value:type_name -> grpc.service_config.PriorityLoadBalancingPolicyConfig.Child
  2127  	11, // 40: grpc.service_config.WeightedTargetLoadBalancingPolicyConfig.Target.child_policy:type_name -> grpc.service_config.LoadBalancingConfig
  2128  	18, // 41: grpc.service_config.WeightedTargetLoadBalancingPolicyConfig.TargetsEntry.value:type_name -> grpc.service_config.WeightedTargetLoadBalancingPolicyConfig.Target
  2129  	26, // 42: grpc.service_config.ServiceConfig.HealthCheckConfig.service_name:type_name -> google.protobuf.StringValue
  2130  	43, // [43:43] is the sub-list for method output_type
  2131  	43, // [43:43] is the sub-list for method input_type
  2132  	43, // [43:43] is the sub-list for extension type_name
  2133  	43, // [43:43] is the sub-list for extension extendee
  2134  	0,  // [0:43] is the sub-list for field type_name
  2135  }
  2136  
  2137  func init() { file_grpc_service_config_service_config_proto_init() }
  2138  func file_grpc_service_config_service_config_proto_init() {
  2139  	if File_grpc_service_config_service_config_proto != nil {
  2140  		return
  2141  	}
  2142  	if !protoimpl.UnsafeEnabled {
  2143  		file_grpc_service_config_service_config_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
  2144  			switch v := v.(*MethodConfig); i {
  2145  			case 0:
  2146  				return &v.state
  2147  			case 1:
  2148  				return &v.sizeCache
  2149  			case 2:
  2150  				return &v.unknownFields
  2151  			default:
  2152  				return nil
  2153  			}
  2154  		}
  2155  		file_grpc_service_config_service_config_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
  2156  			switch v := v.(*PickFirstConfig); i {
  2157  			case 0:
  2158  				return &v.state
  2159  			case 1:
  2160  				return &v.sizeCache
  2161  			case 2:
  2162  				return &v.unknownFields
  2163  			default:
  2164  				return nil
  2165  			}
  2166  		}
  2167  		file_grpc_service_config_service_config_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
  2168  			switch v := v.(*RoundRobinConfig); i {
  2169  			case 0:
  2170  				return &v.state
  2171  			case 1:
  2172  				return &v.sizeCache
  2173  			case 2:
  2174  				return &v.unknownFields
  2175  			default:
  2176  				return nil
  2177  			}
  2178  		}
  2179  		file_grpc_service_config_service_config_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
  2180  			switch v := v.(*PriorityLoadBalancingPolicyConfig); i {
  2181  			case 0:
  2182  				return &v.state
  2183  			case 1:
  2184  				return &v.sizeCache
  2185  			case 2:
  2186  				return &v.unknownFields
  2187  			default:
  2188  				return nil
  2189  			}
  2190  		}
  2191  		file_grpc_service_config_service_config_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
  2192  			switch v := v.(*WeightedTargetLoadBalancingPolicyConfig); i {
  2193  			case 0:
  2194  				return &v.state
  2195  			case 1:
  2196  				return &v.sizeCache
  2197  			case 2:
  2198  				return &v.unknownFields
  2199  			default:
  2200  				return nil
  2201  			}
  2202  		}
  2203  		file_grpc_service_config_service_config_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
  2204  			switch v := v.(*GrpcLbConfig); i {
  2205  			case 0:
  2206  				return &v.state
  2207  			case 1:
  2208  				return &v.sizeCache
  2209  			case 2:
  2210  				return &v.unknownFields
  2211  			default:
  2212  				return nil
  2213  			}
  2214  		}
  2215  		file_grpc_service_config_service_config_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
  2216  			switch v := v.(*CdsConfig); i {
  2217  			case 0:
  2218  				return &v.state
  2219  			case 1:
  2220  				return &v.sizeCache
  2221  			case 2:
  2222  				return &v.unknownFields
  2223  			default:
  2224  				return nil
  2225  			}
  2226  		}
  2227  		file_grpc_service_config_service_config_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
  2228  			switch v := v.(*XdsConfig); i {
  2229  			case 0:
  2230  				return &v.state
  2231  			case 1:
  2232  				return &v.sizeCache
  2233  			case 2:
  2234  				return &v.unknownFields
  2235  			default:
  2236  				return nil
  2237  			}
  2238  		}
  2239  		file_grpc_service_config_service_config_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
  2240  			switch v := v.(*EdsLoadBalancingPolicyConfig); i {
  2241  			case 0:
  2242  				return &v.state
  2243  			case 1:
  2244  				return &v.sizeCache
  2245  			case 2:
  2246  				return &v.unknownFields
  2247  			default:
  2248  				return nil
  2249  			}
  2250  		}
  2251  		file_grpc_service_config_service_config_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
  2252  			switch v := v.(*LrsLoadBalancingPolicyConfig); i {
  2253  			case 0:
  2254  				return &v.state
  2255  			case 1:
  2256  				return &v.sizeCache
  2257  			case 2:
  2258  				return &v.unknownFields
  2259  			default:
  2260  				return nil
  2261  			}
  2262  		}
  2263  		file_grpc_service_config_service_config_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
  2264  			switch v := v.(*LoadBalancingConfig); i {
  2265  			case 0:
  2266  				return &v.state
  2267  			case 1:
  2268  				return &v.sizeCache
  2269  			case 2:
  2270  				return &v.unknownFields
  2271  			default:
  2272  				return nil
  2273  			}
  2274  		}
  2275  		file_grpc_service_config_service_config_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
  2276  			switch v := v.(*ServiceConfig); i {
  2277  			case 0:
  2278  				return &v.state
  2279  			case 1:
  2280  				return &v.sizeCache
  2281  			case 2:
  2282  				return &v.unknownFields
  2283  			default:
  2284  				return nil
  2285  			}
  2286  		}
  2287  		file_grpc_service_config_service_config_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
  2288  			switch v := v.(*MethodConfig_Name); i {
  2289  			case 0:
  2290  				return &v.state
  2291  			case 1:
  2292  				return &v.sizeCache
  2293  			case 2:
  2294  				return &v.unknownFields
  2295  			default:
  2296  				return nil
  2297  			}
  2298  		}
  2299  		file_grpc_service_config_service_config_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
  2300  			switch v := v.(*MethodConfig_RetryPolicy); i {
  2301  			case 0:
  2302  				return &v.state
  2303  			case 1:
  2304  				return &v.sizeCache
  2305  			case 2:
  2306  				return &v.unknownFields
  2307  			default:
  2308  				return nil
  2309  			}
  2310  		}
  2311  		file_grpc_service_config_service_config_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
  2312  			switch v := v.(*MethodConfig_HedgingPolicy); i {
  2313  			case 0:
  2314  				return &v.state
  2315  			case 1:
  2316  				return &v.sizeCache
  2317  			case 2:
  2318  				return &v.unknownFields
  2319  			default:
  2320  				return nil
  2321  			}
  2322  		}
  2323  		file_grpc_service_config_service_config_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
  2324  			switch v := v.(*PriorityLoadBalancingPolicyConfig_Child); i {
  2325  			case 0:
  2326  				return &v.state
  2327  			case 1:
  2328  				return &v.sizeCache
  2329  			case 2:
  2330  				return &v.unknownFields
  2331  			default:
  2332  				return nil
  2333  			}
  2334  		}
  2335  		file_grpc_service_config_service_config_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
  2336  			switch v := v.(*WeightedTargetLoadBalancingPolicyConfig_Target); i {
  2337  			case 0:
  2338  				return &v.state
  2339  			case 1:
  2340  				return &v.sizeCache
  2341  			case 2:
  2342  				return &v.unknownFields
  2343  			default:
  2344  				return nil
  2345  			}
  2346  		}
  2347  		file_grpc_service_config_service_config_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
  2348  			switch v := v.(*LrsLoadBalancingPolicyConfig_Locality); i {
  2349  			case 0:
  2350  				return &v.state
  2351  			case 1:
  2352  				return &v.sizeCache
  2353  			case 2:
  2354  				return &v.unknownFields
  2355  			default:
  2356  				return nil
  2357  			}
  2358  		}
  2359  		file_grpc_service_config_service_config_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
  2360  			switch v := v.(*ServiceConfig_RetryThrottlingPolicy); i {
  2361  			case 0:
  2362  				return &v.state
  2363  			case 1:
  2364  				return &v.sizeCache
  2365  			case 2:
  2366  				return &v.unknownFields
  2367  			default:
  2368  				return nil
  2369  			}
  2370  		}
  2371  		file_grpc_service_config_service_config_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
  2372  			switch v := v.(*ServiceConfig_HealthCheckConfig); i {
  2373  			case 0:
  2374  				return &v.state
  2375  			case 1:
  2376  				return &v.sizeCache
  2377  			case 2:
  2378  				return &v.unknownFields
  2379  			default:
  2380  				return nil
  2381  			}
  2382  		}
  2383  	}
  2384  	file_grpc_service_config_service_config_proto_msgTypes[0].OneofWrappers = []interface{}{
  2385  		(*MethodConfig_RetryPolicy_)(nil),
  2386  		(*MethodConfig_HedgingPolicy_)(nil),
  2387  	}
  2388  	file_grpc_service_config_service_config_proto_msgTypes[10].OneofWrappers = []interface{}{
  2389  		(*LoadBalancingConfig_PickFirst)(nil),
  2390  		(*LoadBalancingConfig_RoundRobin)(nil),
  2391  		(*LoadBalancingConfig_Grpclb)(nil),
  2392  		(*LoadBalancingConfig_Priority)(nil),
  2393  		(*LoadBalancingConfig_WeightedTarget)(nil),
  2394  		(*LoadBalancingConfig_Cds)(nil),
  2395  		(*LoadBalancingConfig_Eds)(nil),
  2396  		(*LoadBalancingConfig_Lrs)(nil),
  2397  		(*LoadBalancingConfig_Xds)(nil),
  2398  		(*LoadBalancingConfig_XdsExperimental)(nil),
  2399  	}
  2400  	type x struct{}
  2401  	out := protoimpl.TypeBuilder{
  2402  		File: protoimpl.DescBuilder{
  2403  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
  2404  			RawDescriptor: file_grpc_service_config_service_config_proto_rawDesc,
  2405  			NumEnums:      1,
  2406  			NumMessages:   22,
  2407  			NumExtensions: 0,
  2408  			NumServices:   0,
  2409  		},
  2410  		GoTypes:           file_grpc_service_config_service_config_proto_goTypes,
  2411  		DependencyIndexes: file_grpc_service_config_service_config_proto_depIdxs,
  2412  		EnumInfos:         file_grpc_service_config_service_config_proto_enumTypes,
  2413  		MessageInfos:      file_grpc_service_config_service_config_proto_msgTypes,
  2414  	}.Build()
  2415  	File_grpc_service_config_service_config_proto = out.File
  2416  	file_grpc_service_config_service_config_proto_rawDesc = nil
  2417  	file_grpc_service_config_service_config_proto_goTypes = nil
  2418  	file_grpc_service_config_service_config_proto_depIdxs = nil
  2419  }