...

Source file src/github.com/linkerd/linkerd2-proxy-api/go/outbound/outbound.pb.go

Documentation: github.com/linkerd/linkerd2-proxy-api/go/outbound

     1  // Code generated by protoc-gen-go. DO NOT EDIT.
     2  // versions:
     3  // 	protoc-gen-go v1.33.0
     4  // 	protoc        v3.20.3
     5  // source: outbound.proto
     6  
     7  package outbound
     8  
     9  import (
    10  	duration "github.com/golang/protobuf/ptypes/duration"
    11  	destination "github.com/linkerd/linkerd2-proxy-api/go/destination"
    12  	grpc_route "github.com/linkerd/linkerd2-proxy-api/go/grpc_route"
    13  	http_route "github.com/linkerd/linkerd2-proxy-api/go/http_route"
    14  	meta "github.com/linkerd/linkerd2-proxy-api/go/meta"
    15  	net "github.com/linkerd/linkerd2-proxy-api/go/net"
    16  	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
    17  	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
    18  	reflect "reflect"
    19  	sync "sync"
    20  )
    21  
    22  const (
    23  	// Verify that this generated code is sufficiently up-to-date.
    24  	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
    25  	// Verify that runtime/protoimpl is sufficiently up-to-date.
    26  	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
    27  )
    28  
    29  type TrafficSpec struct {
    30  	state         protoimpl.MessageState
    31  	sizeCache     protoimpl.SizeCache
    32  	unknownFields protoimpl.UnknownFields
    33  
    34  	// Uniquely identifies the source proxy workload (e.g., pod name) to the
    35  	// control plane.
    36  	SourceWorkload string `protobuf:"bytes,1,opt,name=source_workload,json=sourceWorkload,proto3" json:"source_workload,omitempty"`
    37  	// Describes a target address, as observed by the proxy.
    38  	//
    39  	// Types that are assignable to Target:
    40  	//
    41  	//	*TrafficSpec_Addr
    42  	//	*TrafficSpec_Authority
    43  	Target isTrafficSpec_Target `protobuf_oneof:"target"`
    44  }
    45  
    46  func (x *TrafficSpec) Reset() {
    47  	*x = TrafficSpec{}
    48  	if protoimpl.UnsafeEnabled {
    49  		mi := &file_outbound_proto_msgTypes[0]
    50  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
    51  		ms.StoreMessageInfo(mi)
    52  	}
    53  }
    54  
    55  func (x *TrafficSpec) String() string {
    56  	return protoimpl.X.MessageStringOf(x)
    57  }
    58  
    59  func (*TrafficSpec) ProtoMessage() {}
    60  
    61  func (x *TrafficSpec) ProtoReflect() protoreflect.Message {
    62  	mi := &file_outbound_proto_msgTypes[0]
    63  	if protoimpl.UnsafeEnabled && x != nil {
    64  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
    65  		if ms.LoadMessageInfo() == nil {
    66  			ms.StoreMessageInfo(mi)
    67  		}
    68  		return ms
    69  	}
    70  	return mi.MessageOf(x)
    71  }
    72  
    73  // Deprecated: Use TrafficSpec.ProtoReflect.Descriptor instead.
    74  func (*TrafficSpec) Descriptor() ([]byte, []int) {
    75  	return file_outbound_proto_rawDescGZIP(), []int{0}
    76  }
    77  
    78  func (x *TrafficSpec) GetSourceWorkload() string {
    79  	if x != nil {
    80  		return x.SourceWorkload
    81  	}
    82  	return ""
    83  }
    84  
    85  func (m *TrafficSpec) GetTarget() isTrafficSpec_Target {
    86  	if m != nil {
    87  		return m.Target
    88  	}
    89  	return nil
    90  }
    91  
    92  func (x *TrafficSpec) GetAddr() *net.TcpAddress {
    93  	if x, ok := x.GetTarget().(*TrafficSpec_Addr); ok {
    94  		return x.Addr
    95  	}
    96  	return nil
    97  }
    98  
    99  func (x *TrafficSpec) GetAuthority() string {
   100  	if x, ok := x.GetTarget().(*TrafficSpec_Authority); ok {
   101  		return x.Authority
   102  	}
   103  	return ""
   104  }
   105  
   106  type isTrafficSpec_Target interface {
   107  	isTrafficSpec_Target()
   108  }
   109  
   110  type TrafficSpec_Addr struct {
   111  	// Indicates the proxy is connecting to a specific IP:port.
   112  	Addr *net.TcpAddress `protobuf:"bytes,2,opt,name=addr,proto3,oneof"`
   113  }
   114  
   115  type TrafficSpec_Authority struct {
   116  	// Indicates the proxy is connecting to a named address (like an HTTP
   117  	// authority).
   118  	Authority string `protobuf:"bytes,3,opt,name=authority,proto3,oneof"`
   119  }
   120  
   121  func (*TrafficSpec_Addr) isTrafficSpec_Target() {}
   122  
   123  func (*TrafficSpec_Authority) isTrafficSpec_Target() {}
   124  
   125  // Outbound policy for a given traffic spec.
   126  type OutboundPolicy struct {
   127  	state         protoimpl.MessageState
   128  	sizeCache     protoimpl.SizeCache
   129  	unknownFields protoimpl.UnknownFields
   130  
   131  	// Indicates the protocol to use for this target. This will be set to Opaque
   132  	// if the target has been marked as opaque and will be Discover otherwise.
   133  	Protocol *ProxyProtocol `protobuf:"bytes,1,opt,name=protocol,proto3" json:"protocol,omitempty"`
   134  	// Describes the resource for which outbound policy has been discovered.
   135  	Metadata *meta.Metadata `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata,omitempty"`
   136  }
   137  
   138  func (x *OutboundPolicy) Reset() {
   139  	*x = OutboundPolicy{}
   140  	if protoimpl.UnsafeEnabled {
   141  		mi := &file_outbound_proto_msgTypes[1]
   142  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   143  		ms.StoreMessageInfo(mi)
   144  	}
   145  }
   146  
   147  func (x *OutboundPolicy) String() string {
   148  	return protoimpl.X.MessageStringOf(x)
   149  }
   150  
   151  func (*OutboundPolicy) ProtoMessage() {}
   152  
   153  func (x *OutboundPolicy) ProtoReflect() protoreflect.Message {
   154  	mi := &file_outbound_proto_msgTypes[1]
   155  	if protoimpl.UnsafeEnabled && x != nil {
   156  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   157  		if ms.LoadMessageInfo() == nil {
   158  			ms.StoreMessageInfo(mi)
   159  		}
   160  		return ms
   161  	}
   162  	return mi.MessageOf(x)
   163  }
   164  
   165  // Deprecated: Use OutboundPolicy.ProtoReflect.Descriptor instead.
   166  func (*OutboundPolicy) Descriptor() ([]byte, []int) {
   167  	return file_outbound_proto_rawDescGZIP(), []int{1}
   168  }
   169  
   170  func (x *OutboundPolicy) GetProtocol() *ProxyProtocol {
   171  	if x != nil {
   172  		return x.Protocol
   173  	}
   174  	return nil
   175  }
   176  
   177  func (x *OutboundPolicy) GetMetadata() *meta.Metadata {
   178  	if x != nil {
   179  		return x.Metadata
   180  	}
   181  	return nil
   182  }
   183  
   184  type ProxyProtocol struct {
   185  	state         protoimpl.MessageState
   186  	sizeCache     protoimpl.SizeCache
   187  	unknownFields protoimpl.UnknownFields
   188  
   189  	// Types that are assignable to Kind:
   190  	//
   191  	//	*ProxyProtocol_Detect_
   192  	//	*ProxyProtocol_Opaque_
   193  	//	*ProxyProtocol_Http1_
   194  	//	*ProxyProtocol_Http2_
   195  	//	*ProxyProtocol_Grpc_
   196  	Kind isProxyProtocol_Kind `protobuf_oneof:"kind"`
   197  }
   198  
   199  func (x *ProxyProtocol) Reset() {
   200  	*x = ProxyProtocol{}
   201  	if protoimpl.UnsafeEnabled {
   202  		mi := &file_outbound_proto_msgTypes[2]
   203  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   204  		ms.StoreMessageInfo(mi)
   205  	}
   206  }
   207  
   208  func (x *ProxyProtocol) String() string {
   209  	return protoimpl.X.MessageStringOf(x)
   210  }
   211  
   212  func (*ProxyProtocol) ProtoMessage() {}
   213  
   214  func (x *ProxyProtocol) ProtoReflect() protoreflect.Message {
   215  	mi := &file_outbound_proto_msgTypes[2]
   216  	if protoimpl.UnsafeEnabled && x != nil {
   217  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   218  		if ms.LoadMessageInfo() == nil {
   219  			ms.StoreMessageInfo(mi)
   220  		}
   221  		return ms
   222  	}
   223  	return mi.MessageOf(x)
   224  }
   225  
   226  // Deprecated: Use ProxyProtocol.ProtoReflect.Descriptor instead.
   227  func (*ProxyProtocol) Descriptor() ([]byte, []int) {
   228  	return file_outbound_proto_rawDescGZIP(), []int{2}
   229  }
   230  
   231  func (m *ProxyProtocol) GetKind() isProxyProtocol_Kind {
   232  	if m != nil {
   233  		return m.Kind
   234  	}
   235  	return nil
   236  }
   237  
   238  func (x *ProxyProtocol) GetDetect() *ProxyProtocol_Detect {
   239  	if x, ok := x.GetKind().(*ProxyProtocol_Detect_); ok {
   240  		return x.Detect
   241  	}
   242  	return nil
   243  }
   244  
   245  func (x *ProxyProtocol) GetOpaque() *ProxyProtocol_Opaque {
   246  	if x, ok := x.GetKind().(*ProxyProtocol_Opaque_); ok {
   247  		return x.Opaque
   248  	}
   249  	return nil
   250  }
   251  
   252  func (x *ProxyProtocol) GetHttp1() *ProxyProtocol_Http1 {
   253  	if x, ok := x.GetKind().(*ProxyProtocol_Http1_); ok {
   254  		return x.Http1
   255  	}
   256  	return nil
   257  }
   258  
   259  func (x *ProxyProtocol) GetHttp2() *ProxyProtocol_Http2 {
   260  	if x, ok := x.GetKind().(*ProxyProtocol_Http2_); ok {
   261  		return x.Http2
   262  	}
   263  	return nil
   264  }
   265  
   266  func (x *ProxyProtocol) GetGrpc() *ProxyProtocol_Grpc {
   267  	if x, ok := x.GetKind().(*ProxyProtocol_Grpc_); ok {
   268  		return x.Grpc
   269  	}
   270  	return nil
   271  }
   272  
   273  type isProxyProtocol_Kind interface {
   274  	isProxyProtocol_Kind()
   275  }
   276  
   277  type ProxyProtocol_Detect_ struct {
   278  	Detect *ProxyProtocol_Detect `protobuf:"bytes,1,opt,name=detect,proto3,oneof"`
   279  }
   280  
   281  type ProxyProtocol_Opaque_ struct {
   282  	Opaque *ProxyProtocol_Opaque `protobuf:"bytes,2,opt,name=opaque,proto3,oneof"`
   283  }
   284  
   285  type ProxyProtocol_Http1_ struct {
   286  	// HTTP/1 policy configuration.
   287  	Http1 *ProxyProtocol_Http1 `protobuf:"bytes,3,opt,name=http1,proto3,oneof"`
   288  }
   289  
   290  type ProxyProtocol_Http2_ struct {
   291  	// HTTP/2 policy configuration.
   292  	Http2 *ProxyProtocol_Http2 `protobuf:"bytes,4,opt,name=http2,proto3,oneof"`
   293  }
   294  
   295  type ProxyProtocol_Grpc_ struct {
   296  	// gRPC policy configuration.
   297  	Grpc *ProxyProtocol_Grpc `protobuf:"bytes,5,opt,name=grpc,proto3,oneof"`
   298  }
   299  
   300  func (*ProxyProtocol_Detect_) isProxyProtocol_Kind() {}
   301  
   302  func (*ProxyProtocol_Opaque_) isProxyProtocol_Kind() {}
   303  
   304  func (*ProxyProtocol_Http1_) isProxyProtocol_Kind() {}
   305  
   306  func (*ProxyProtocol_Http2_) isProxyProtocol_Kind() {}
   307  
   308  func (*ProxyProtocol_Grpc_) isProxyProtocol_Kind() {}
   309  
   310  // Outbound-specific HTTP route configuration (based on the
   311  // [Gateway API](https://gateway-api.sigs.k8s.io/v1alpha2/references/spec/#gateway.networking.k8s.io/v1alpha2.HTTPRoute)).
   312  type HttpRoute struct {
   313  	state         protoimpl.MessageState
   314  	sizeCache     protoimpl.SizeCache
   315  	unknownFields protoimpl.UnknownFields
   316  
   317  	Metadata *meta.Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
   318  	// If empty, the host value is ignored.
   319  	Hosts []*http_route.HostMatch `protobuf:"bytes,2,rep,name=hosts,proto3" json:"hosts,omitempty"`
   320  	// Must have at least one rule.
   321  	Rules []*HttpRoute_Rule `protobuf:"bytes,3,rep,name=rules,proto3" json:"rules,omitempty"`
   322  }
   323  
   324  func (x *HttpRoute) Reset() {
   325  	*x = HttpRoute{}
   326  	if protoimpl.UnsafeEnabled {
   327  		mi := &file_outbound_proto_msgTypes[3]
   328  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   329  		ms.StoreMessageInfo(mi)
   330  	}
   331  }
   332  
   333  func (x *HttpRoute) String() string {
   334  	return protoimpl.X.MessageStringOf(x)
   335  }
   336  
   337  func (*HttpRoute) ProtoMessage() {}
   338  
   339  func (x *HttpRoute) ProtoReflect() protoreflect.Message {
   340  	mi := &file_outbound_proto_msgTypes[3]
   341  	if protoimpl.UnsafeEnabled && x != nil {
   342  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   343  		if ms.LoadMessageInfo() == nil {
   344  			ms.StoreMessageInfo(mi)
   345  		}
   346  		return ms
   347  	}
   348  	return mi.MessageOf(x)
   349  }
   350  
   351  // Deprecated: Use HttpRoute.ProtoReflect.Descriptor instead.
   352  func (*HttpRoute) Descriptor() ([]byte, []int) {
   353  	return file_outbound_proto_rawDescGZIP(), []int{3}
   354  }
   355  
   356  func (x *HttpRoute) GetMetadata() *meta.Metadata {
   357  	if x != nil {
   358  		return x.Metadata
   359  	}
   360  	return nil
   361  }
   362  
   363  func (x *HttpRoute) GetHosts() []*http_route.HostMatch {
   364  	if x != nil {
   365  		return x.Hosts
   366  	}
   367  	return nil
   368  }
   369  
   370  func (x *HttpRoute) GetRules() []*HttpRoute_Rule {
   371  	if x != nil {
   372  		return x.Rules
   373  	}
   374  	return nil
   375  }
   376  
   377  type GrpcRoute struct {
   378  	state         protoimpl.MessageState
   379  	sizeCache     protoimpl.SizeCache
   380  	unknownFields protoimpl.UnknownFields
   381  
   382  	Metadata *meta.Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
   383  	// If empty, the host value is ignored.
   384  	Hosts []*http_route.HostMatch `protobuf:"bytes,2,rep,name=hosts,proto3" json:"hosts,omitempty"`
   385  	// Must have at least one rule.
   386  	Rules []*GrpcRoute_Rule `protobuf:"bytes,3,rep,name=rules,proto3" json:"rules,omitempty"`
   387  }
   388  
   389  func (x *GrpcRoute) Reset() {
   390  	*x = GrpcRoute{}
   391  	if protoimpl.UnsafeEnabled {
   392  		mi := &file_outbound_proto_msgTypes[4]
   393  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   394  		ms.StoreMessageInfo(mi)
   395  	}
   396  }
   397  
   398  func (x *GrpcRoute) String() string {
   399  	return protoimpl.X.MessageStringOf(x)
   400  }
   401  
   402  func (*GrpcRoute) ProtoMessage() {}
   403  
   404  func (x *GrpcRoute) ProtoReflect() protoreflect.Message {
   405  	mi := &file_outbound_proto_msgTypes[4]
   406  	if protoimpl.UnsafeEnabled && x != nil {
   407  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   408  		if ms.LoadMessageInfo() == nil {
   409  			ms.StoreMessageInfo(mi)
   410  		}
   411  		return ms
   412  	}
   413  	return mi.MessageOf(x)
   414  }
   415  
   416  // Deprecated: Use GrpcRoute.ProtoReflect.Descriptor instead.
   417  func (*GrpcRoute) Descriptor() ([]byte, []int) {
   418  	return file_outbound_proto_rawDescGZIP(), []int{4}
   419  }
   420  
   421  func (x *GrpcRoute) GetMetadata() *meta.Metadata {
   422  	if x != nil {
   423  		return x.Metadata
   424  	}
   425  	return nil
   426  }
   427  
   428  func (x *GrpcRoute) GetHosts() []*http_route.HostMatch {
   429  	if x != nil {
   430  		return x.Hosts
   431  	}
   432  	return nil
   433  }
   434  
   435  func (x *GrpcRoute) GetRules() []*GrpcRoute_Rule {
   436  	if x != nil {
   437  		return x.Rules
   438  	}
   439  	return nil
   440  }
   441  
   442  type OpaqueRoute struct {
   443  	state         protoimpl.MessageState
   444  	sizeCache     protoimpl.SizeCache
   445  	unknownFields protoimpl.UnknownFields
   446  
   447  	Metadata *meta.Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
   448  	// Must have at least one rule.
   449  	Rules []*OpaqueRoute_Rule `protobuf:"bytes,3,rep,name=rules,proto3" json:"rules,omitempty"`
   450  }
   451  
   452  func (x *OpaqueRoute) Reset() {
   453  	*x = OpaqueRoute{}
   454  	if protoimpl.UnsafeEnabled {
   455  		mi := &file_outbound_proto_msgTypes[5]
   456  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   457  		ms.StoreMessageInfo(mi)
   458  	}
   459  }
   460  
   461  func (x *OpaqueRoute) String() string {
   462  	return protoimpl.X.MessageStringOf(x)
   463  }
   464  
   465  func (*OpaqueRoute) ProtoMessage() {}
   466  
   467  func (x *OpaqueRoute) ProtoReflect() protoreflect.Message {
   468  	mi := &file_outbound_proto_msgTypes[5]
   469  	if protoimpl.UnsafeEnabled && x != nil {
   470  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   471  		if ms.LoadMessageInfo() == nil {
   472  			ms.StoreMessageInfo(mi)
   473  		}
   474  		return ms
   475  	}
   476  	return mi.MessageOf(x)
   477  }
   478  
   479  // Deprecated: Use OpaqueRoute.ProtoReflect.Descriptor instead.
   480  func (*OpaqueRoute) Descriptor() ([]byte, []int) {
   481  	return file_outbound_proto_rawDescGZIP(), []int{5}
   482  }
   483  
   484  func (x *OpaqueRoute) GetMetadata() *meta.Metadata {
   485  	if x != nil {
   486  		return x.Metadata
   487  	}
   488  	return nil
   489  }
   490  
   491  func (x *OpaqueRoute) GetRules() []*OpaqueRoute_Rule {
   492  	if x != nil {
   493  		return x.Rules
   494  	}
   495  	return nil
   496  }
   497  
   498  type Backend struct {
   499  	state         protoimpl.MessageState
   500  	sizeCache     protoimpl.SizeCache
   501  	unknownFields protoimpl.UnknownFields
   502  
   503  	Metadata *meta.Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
   504  	// Types that are assignable to Kind:
   505  	//
   506  	//	*Backend_Forward
   507  	//	*Backend_Balancer
   508  	Kind isBackend_Kind `protobuf_oneof:"kind"`
   509  	// Describes queue configuration for a backend.
   510  	Queue *Queue `protobuf:"bytes,4,opt,name=queue,proto3" json:"queue,omitempty"`
   511  }
   512  
   513  func (x *Backend) Reset() {
   514  	*x = Backend{}
   515  	if protoimpl.UnsafeEnabled {
   516  		mi := &file_outbound_proto_msgTypes[6]
   517  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   518  		ms.StoreMessageInfo(mi)
   519  	}
   520  }
   521  
   522  func (x *Backend) String() string {
   523  	return protoimpl.X.MessageStringOf(x)
   524  }
   525  
   526  func (*Backend) ProtoMessage() {}
   527  
   528  func (x *Backend) ProtoReflect() protoreflect.Message {
   529  	mi := &file_outbound_proto_msgTypes[6]
   530  	if protoimpl.UnsafeEnabled && x != nil {
   531  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   532  		if ms.LoadMessageInfo() == nil {
   533  			ms.StoreMessageInfo(mi)
   534  		}
   535  		return ms
   536  	}
   537  	return mi.MessageOf(x)
   538  }
   539  
   540  // Deprecated: Use Backend.ProtoReflect.Descriptor instead.
   541  func (*Backend) Descriptor() ([]byte, []int) {
   542  	return file_outbound_proto_rawDescGZIP(), []int{6}
   543  }
   544  
   545  func (x *Backend) GetMetadata() *meta.Metadata {
   546  	if x != nil {
   547  		return x.Metadata
   548  	}
   549  	return nil
   550  }
   551  
   552  func (m *Backend) GetKind() isBackend_Kind {
   553  	if m != nil {
   554  		return m.Kind
   555  	}
   556  	return nil
   557  }
   558  
   559  func (x *Backend) GetForward() *destination.WeightedAddr {
   560  	if x, ok := x.GetKind().(*Backend_Forward); ok {
   561  		return x.Forward
   562  	}
   563  	return nil
   564  }
   565  
   566  func (x *Backend) GetBalancer() *Backend_BalanceP2C {
   567  	if x, ok := x.GetKind().(*Backend_Balancer); ok {
   568  		return x.Balancer
   569  	}
   570  	return nil
   571  }
   572  
   573  func (x *Backend) GetQueue() *Queue {
   574  	if x != nil {
   575  		return x.Queue
   576  	}
   577  	return nil
   578  }
   579  
   580  type isBackend_Kind interface {
   581  	isBackend_Kind()
   582  }
   583  
   584  type Backend_Forward struct {
   585  	// A backend that consists of a single endpoint.
   586  	Forward *destination.WeightedAddr `protobuf:"bytes,2,opt,name=forward,proto3,oneof"`
   587  }
   588  
   589  type Backend_Balancer struct {
   590  	// A backend that comprises a load balanced service.
   591  	Balancer *Backend_BalanceP2C `protobuf:"bytes,3,opt,name=balancer,proto3,oneof"`
   592  }
   593  
   594  func (*Backend_Forward) isBackend_Kind() {}
   595  
   596  func (*Backend_Balancer) isBackend_Kind() {}
   597  
   598  type Queue struct {
   599  	state         protoimpl.MessageState
   600  	sizeCache     protoimpl.SizeCache
   601  	unknownFields protoimpl.UnknownFields
   602  
   603  	// The number of requests that may be held in a queue before backpressure is
   604  	// exerted.
   605  	Capacity uint32 `protobuf:"varint,1,opt,name=capacity,proto3" json:"capacity,omitempty"`
   606  	// A timeout that limits how long a backend may remain unready before any
   607  	// requests in its queue are failed.
   608  	FailfastTimeout *duration.Duration `protobuf:"bytes,2,opt,name=failfast_timeout,json=failfastTimeout,proto3" json:"failfast_timeout,omitempty"`
   609  }
   610  
   611  func (x *Queue) Reset() {
   612  	*x = Queue{}
   613  	if protoimpl.UnsafeEnabled {
   614  		mi := &file_outbound_proto_msgTypes[7]
   615  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   616  		ms.StoreMessageInfo(mi)
   617  	}
   618  }
   619  
   620  func (x *Queue) String() string {
   621  	return protoimpl.X.MessageStringOf(x)
   622  }
   623  
   624  func (*Queue) ProtoMessage() {}
   625  
   626  func (x *Queue) ProtoReflect() protoreflect.Message {
   627  	mi := &file_outbound_proto_msgTypes[7]
   628  	if protoimpl.UnsafeEnabled && x != nil {
   629  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   630  		if ms.LoadMessageInfo() == nil {
   631  			ms.StoreMessageInfo(mi)
   632  		}
   633  		return ms
   634  	}
   635  	return mi.MessageOf(x)
   636  }
   637  
   638  // Deprecated: Use Queue.ProtoReflect.Descriptor instead.
   639  func (*Queue) Descriptor() ([]byte, []int) {
   640  	return file_outbound_proto_rawDescGZIP(), []int{7}
   641  }
   642  
   643  func (x *Queue) GetCapacity() uint32 {
   644  	if x != nil {
   645  		return x.Capacity
   646  	}
   647  	return 0
   648  }
   649  
   650  func (x *Queue) GetFailfastTimeout() *duration.Duration {
   651  	if x != nil {
   652  		return x.FailfastTimeout
   653  	}
   654  	return nil
   655  }
   656  
   657  type FailureAccrual struct {
   658  	state         protoimpl.MessageState
   659  	sizeCache     protoimpl.SizeCache
   660  	unknownFields protoimpl.UnknownFields
   661  
   662  	// Types that are assignable to Kind:
   663  	//
   664  	//	*FailureAccrual_ConsecutiveFailures_
   665  	Kind isFailureAccrual_Kind `protobuf_oneof:"kind"`
   666  }
   667  
   668  func (x *FailureAccrual) Reset() {
   669  	*x = FailureAccrual{}
   670  	if protoimpl.UnsafeEnabled {
   671  		mi := &file_outbound_proto_msgTypes[8]
   672  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   673  		ms.StoreMessageInfo(mi)
   674  	}
   675  }
   676  
   677  func (x *FailureAccrual) String() string {
   678  	return protoimpl.X.MessageStringOf(x)
   679  }
   680  
   681  func (*FailureAccrual) ProtoMessage() {}
   682  
   683  func (x *FailureAccrual) ProtoReflect() protoreflect.Message {
   684  	mi := &file_outbound_proto_msgTypes[8]
   685  	if protoimpl.UnsafeEnabled && x != nil {
   686  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   687  		if ms.LoadMessageInfo() == nil {
   688  			ms.StoreMessageInfo(mi)
   689  		}
   690  		return ms
   691  	}
   692  	return mi.MessageOf(x)
   693  }
   694  
   695  // Deprecated: Use FailureAccrual.ProtoReflect.Descriptor instead.
   696  func (*FailureAccrual) Descriptor() ([]byte, []int) {
   697  	return file_outbound_proto_rawDescGZIP(), []int{8}
   698  }
   699  
   700  func (m *FailureAccrual) GetKind() isFailureAccrual_Kind {
   701  	if m != nil {
   702  		return m.Kind
   703  	}
   704  	return nil
   705  }
   706  
   707  func (x *FailureAccrual) GetConsecutiveFailures() *FailureAccrual_ConsecutiveFailures {
   708  	if x, ok := x.GetKind().(*FailureAccrual_ConsecutiveFailures_); ok {
   709  		return x.ConsecutiveFailures
   710  	}
   711  	return nil
   712  }
   713  
   714  type isFailureAccrual_Kind interface {
   715  	isFailureAccrual_Kind()
   716  }
   717  
   718  type FailureAccrual_ConsecutiveFailures_ struct {
   719  	ConsecutiveFailures *FailureAccrual_ConsecutiveFailures `protobuf:"bytes,1,opt,name=consecutive_failures,json=consecutiveFailures,proto3,oneof"`
   720  }
   721  
   722  func (*FailureAccrual_ConsecutiveFailures_) isFailureAccrual_Kind() {}
   723  
   724  type ExponentialBackoff struct {
   725  	state         protoimpl.MessageState
   726  	sizeCache     protoimpl.SizeCache
   727  	unknownFields protoimpl.UnknownFields
   728  
   729  	// The minimum amount of time to wait before resuming an operation.
   730  	MinBackoff *duration.Duration `protobuf:"bytes,1,opt,name=min_backoff,json=minBackoff,proto3" json:"min_backoff,omitempty"`
   731  	// The maximum amount of time to wait before resuming an operation.
   732  	// Must be greater than or equal to min_backoff.
   733  	MaxBackoff *duration.Duration `protobuf:"bytes,2,opt,name=max_backoff,json=maxBackoff,proto3" json:"max_backoff,omitempty"`
   734  	// The ratio of the base timeout that may be randomly added to a backoff.
   735  	// Must be greater than or equal to 0.0.
   736  	JitterRatio float32 `protobuf:"fixed32,3,opt,name=jitter_ratio,json=jitterRatio,proto3" json:"jitter_ratio,omitempty"`
   737  }
   738  
   739  func (x *ExponentialBackoff) Reset() {
   740  	*x = ExponentialBackoff{}
   741  	if protoimpl.UnsafeEnabled {
   742  		mi := &file_outbound_proto_msgTypes[9]
   743  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   744  		ms.StoreMessageInfo(mi)
   745  	}
   746  }
   747  
   748  func (x *ExponentialBackoff) String() string {
   749  	return protoimpl.X.MessageStringOf(x)
   750  }
   751  
   752  func (*ExponentialBackoff) ProtoMessage() {}
   753  
   754  func (x *ExponentialBackoff) ProtoReflect() protoreflect.Message {
   755  	mi := &file_outbound_proto_msgTypes[9]
   756  	if protoimpl.UnsafeEnabled && x != nil {
   757  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   758  		if ms.LoadMessageInfo() == nil {
   759  			ms.StoreMessageInfo(mi)
   760  		}
   761  		return ms
   762  	}
   763  	return mi.MessageOf(x)
   764  }
   765  
   766  // Deprecated: Use ExponentialBackoff.ProtoReflect.Descriptor instead.
   767  func (*ExponentialBackoff) Descriptor() ([]byte, []int) {
   768  	return file_outbound_proto_rawDescGZIP(), []int{9}
   769  }
   770  
   771  func (x *ExponentialBackoff) GetMinBackoff() *duration.Duration {
   772  	if x != nil {
   773  		return x.MinBackoff
   774  	}
   775  	return nil
   776  }
   777  
   778  func (x *ExponentialBackoff) GetMaxBackoff() *duration.Duration {
   779  	if x != nil {
   780  		return x.MaxBackoff
   781  	}
   782  	return nil
   783  }
   784  
   785  func (x *ExponentialBackoff) GetJitterRatio() float32 {
   786  	if x != nil {
   787  		return x.JitterRatio
   788  	}
   789  	return 0
   790  }
   791  
   792  type ProxyProtocol_Detect struct {
   793  	state         protoimpl.MessageState
   794  	sizeCache     protoimpl.SizeCache
   795  	unknownFields protoimpl.UnknownFields
   796  
   797  	// Protocol detection timeout.
   798  	Timeout *duration.Duration    `protobuf:"bytes,1,opt,name=timeout,proto3" json:"timeout,omitempty"`
   799  	Opaque  *ProxyProtocol_Opaque `protobuf:"bytes,2,opt,name=opaque,proto3" json:"opaque,omitempty"`
   800  	// HTTP/1 policy configuration.
   801  	Http1 *ProxyProtocol_Http1 `protobuf:"bytes,3,opt,name=http1,proto3" json:"http1,omitempty"`
   802  	// HTTP/2 policy configuration.
   803  	Http2 *ProxyProtocol_Http2 `protobuf:"bytes,4,opt,name=http2,proto3" json:"http2,omitempty"`
   804  }
   805  
   806  func (x *ProxyProtocol_Detect) Reset() {
   807  	*x = ProxyProtocol_Detect{}
   808  	if protoimpl.UnsafeEnabled {
   809  		mi := &file_outbound_proto_msgTypes[10]
   810  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   811  		ms.StoreMessageInfo(mi)
   812  	}
   813  }
   814  
   815  func (x *ProxyProtocol_Detect) String() string {
   816  	return protoimpl.X.MessageStringOf(x)
   817  }
   818  
   819  func (*ProxyProtocol_Detect) ProtoMessage() {}
   820  
   821  func (x *ProxyProtocol_Detect) ProtoReflect() protoreflect.Message {
   822  	mi := &file_outbound_proto_msgTypes[10]
   823  	if protoimpl.UnsafeEnabled && x != nil {
   824  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   825  		if ms.LoadMessageInfo() == nil {
   826  			ms.StoreMessageInfo(mi)
   827  		}
   828  		return ms
   829  	}
   830  	return mi.MessageOf(x)
   831  }
   832  
   833  // Deprecated: Use ProxyProtocol_Detect.ProtoReflect.Descriptor instead.
   834  func (*ProxyProtocol_Detect) Descriptor() ([]byte, []int) {
   835  	return file_outbound_proto_rawDescGZIP(), []int{2, 0}
   836  }
   837  
   838  func (x *ProxyProtocol_Detect) GetTimeout() *duration.Duration {
   839  	if x != nil {
   840  		return x.Timeout
   841  	}
   842  	return nil
   843  }
   844  
   845  func (x *ProxyProtocol_Detect) GetOpaque() *ProxyProtocol_Opaque {
   846  	if x != nil {
   847  		return x.Opaque
   848  	}
   849  	return nil
   850  }
   851  
   852  func (x *ProxyProtocol_Detect) GetHttp1() *ProxyProtocol_Http1 {
   853  	if x != nil {
   854  		return x.Http1
   855  	}
   856  	return nil
   857  }
   858  
   859  func (x *ProxyProtocol_Detect) GetHttp2() *ProxyProtocol_Http2 {
   860  	if x != nil {
   861  		return x.Http2
   862  	}
   863  	return nil
   864  }
   865  
   866  type ProxyProtocol_Opaque struct {
   867  	state         protoimpl.MessageState
   868  	sizeCache     protoimpl.SizeCache
   869  	unknownFields protoimpl.UnknownFields
   870  
   871  	Routes []*OpaqueRoute `protobuf:"bytes,1,rep,name=routes,proto3" json:"routes,omitempty"`
   872  }
   873  
   874  func (x *ProxyProtocol_Opaque) Reset() {
   875  	*x = ProxyProtocol_Opaque{}
   876  	if protoimpl.UnsafeEnabled {
   877  		mi := &file_outbound_proto_msgTypes[11]
   878  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   879  		ms.StoreMessageInfo(mi)
   880  	}
   881  }
   882  
   883  func (x *ProxyProtocol_Opaque) String() string {
   884  	return protoimpl.X.MessageStringOf(x)
   885  }
   886  
   887  func (*ProxyProtocol_Opaque) ProtoMessage() {}
   888  
   889  func (x *ProxyProtocol_Opaque) ProtoReflect() protoreflect.Message {
   890  	mi := &file_outbound_proto_msgTypes[11]
   891  	if protoimpl.UnsafeEnabled && x != nil {
   892  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   893  		if ms.LoadMessageInfo() == nil {
   894  			ms.StoreMessageInfo(mi)
   895  		}
   896  		return ms
   897  	}
   898  	return mi.MessageOf(x)
   899  }
   900  
   901  // Deprecated: Use ProxyProtocol_Opaque.ProtoReflect.Descriptor instead.
   902  func (*ProxyProtocol_Opaque) Descriptor() ([]byte, []int) {
   903  	return file_outbound_proto_rawDescGZIP(), []int{2, 1}
   904  }
   905  
   906  func (x *ProxyProtocol_Opaque) GetRoutes() []*OpaqueRoute {
   907  	if x != nil {
   908  		return x.Routes
   909  	}
   910  	return nil
   911  }
   912  
   913  type ProxyProtocol_Http1 struct {
   914  	state         protoimpl.MessageState
   915  	sizeCache     protoimpl.SizeCache
   916  	unknownFields protoimpl.UnknownFields
   917  
   918  	Routes []*HttpRoute `protobuf:"bytes,1,rep,name=routes,proto3" json:"routes,omitempty"`
   919  	// If empty, circuit breaking is not performed.
   920  	FailureAccrual *FailureAccrual `protobuf:"bytes,2,opt,name=failure_accrual,json=failureAccrual,proto3" json:"failure_accrual,omitempty"`
   921  }
   922  
   923  func (x *ProxyProtocol_Http1) Reset() {
   924  	*x = ProxyProtocol_Http1{}
   925  	if protoimpl.UnsafeEnabled {
   926  		mi := &file_outbound_proto_msgTypes[12]
   927  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   928  		ms.StoreMessageInfo(mi)
   929  	}
   930  }
   931  
   932  func (x *ProxyProtocol_Http1) String() string {
   933  	return protoimpl.X.MessageStringOf(x)
   934  }
   935  
   936  func (*ProxyProtocol_Http1) ProtoMessage() {}
   937  
   938  func (x *ProxyProtocol_Http1) ProtoReflect() protoreflect.Message {
   939  	mi := &file_outbound_proto_msgTypes[12]
   940  	if protoimpl.UnsafeEnabled && x != nil {
   941  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   942  		if ms.LoadMessageInfo() == nil {
   943  			ms.StoreMessageInfo(mi)
   944  		}
   945  		return ms
   946  	}
   947  	return mi.MessageOf(x)
   948  }
   949  
   950  // Deprecated: Use ProxyProtocol_Http1.ProtoReflect.Descriptor instead.
   951  func (*ProxyProtocol_Http1) Descriptor() ([]byte, []int) {
   952  	return file_outbound_proto_rawDescGZIP(), []int{2, 2}
   953  }
   954  
   955  func (x *ProxyProtocol_Http1) GetRoutes() []*HttpRoute {
   956  	if x != nil {
   957  		return x.Routes
   958  	}
   959  	return nil
   960  }
   961  
   962  func (x *ProxyProtocol_Http1) GetFailureAccrual() *FailureAccrual {
   963  	if x != nil {
   964  		return x.FailureAccrual
   965  	}
   966  	return nil
   967  }
   968  
   969  type ProxyProtocol_Http2 struct {
   970  	state         protoimpl.MessageState
   971  	sizeCache     protoimpl.SizeCache
   972  	unknownFields protoimpl.UnknownFields
   973  
   974  	Routes []*HttpRoute `protobuf:"bytes,1,rep,name=routes,proto3" json:"routes,omitempty"`
   975  	// If empty, circuit breaking is not performed.
   976  	FailureAccrual *FailureAccrual `protobuf:"bytes,2,opt,name=failure_accrual,json=failureAccrual,proto3" json:"failure_accrual,omitempty"`
   977  }
   978  
   979  func (x *ProxyProtocol_Http2) Reset() {
   980  	*x = ProxyProtocol_Http2{}
   981  	if protoimpl.UnsafeEnabled {
   982  		mi := &file_outbound_proto_msgTypes[13]
   983  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   984  		ms.StoreMessageInfo(mi)
   985  	}
   986  }
   987  
   988  func (x *ProxyProtocol_Http2) String() string {
   989  	return protoimpl.X.MessageStringOf(x)
   990  }
   991  
   992  func (*ProxyProtocol_Http2) ProtoMessage() {}
   993  
   994  func (x *ProxyProtocol_Http2) ProtoReflect() protoreflect.Message {
   995  	mi := &file_outbound_proto_msgTypes[13]
   996  	if protoimpl.UnsafeEnabled && x != nil {
   997  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   998  		if ms.LoadMessageInfo() == nil {
   999  			ms.StoreMessageInfo(mi)
  1000  		}
  1001  		return ms
  1002  	}
  1003  	return mi.MessageOf(x)
  1004  }
  1005  
  1006  // Deprecated: Use ProxyProtocol_Http2.ProtoReflect.Descriptor instead.
  1007  func (*ProxyProtocol_Http2) Descriptor() ([]byte, []int) {
  1008  	return file_outbound_proto_rawDescGZIP(), []int{2, 3}
  1009  }
  1010  
  1011  func (x *ProxyProtocol_Http2) GetRoutes() []*HttpRoute {
  1012  	if x != nil {
  1013  		return x.Routes
  1014  	}
  1015  	return nil
  1016  }
  1017  
  1018  func (x *ProxyProtocol_Http2) GetFailureAccrual() *FailureAccrual {
  1019  	if x != nil {
  1020  		return x.FailureAccrual
  1021  	}
  1022  	return nil
  1023  }
  1024  
  1025  type ProxyProtocol_Grpc struct {
  1026  	state         protoimpl.MessageState
  1027  	sizeCache     protoimpl.SizeCache
  1028  	unknownFields protoimpl.UnknownFields
  1029  
  1030  	Routes []*GrpcRoute `protobuf:"bytes,1,rep,name=routes,proto3" json:"routes,omitempty"`
  1031  	// If empty, circuit breaking is not performed.
  1032  	FailureAccrual *FailureAccrual `protobuf:"bytes,2,opt,name=failure_accrual,json=failureAccrual,proto3" json:"failure_accrual,omitempty"`
  1033  }
  1034  
  1035  func (x *ProxyProtocol_Grpc) Reset() {
  1036  	*x = ProxyProtocol_Grpc{}
  1037  	if protoimpl.UnsafeEnabled {
  1038  		mi := &file_outbound_proto_msgTypes[14]
  1039  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1040  		ms.StoreMessageInfo(mi)
  1041  	}
  1042  }
  1043  
  1044  func (x *ProxyProtocol_Grpc) String() string {
  1045  	return protoimpl.X.MessageStringOf(x)
  1046  }
  1047  
  1048  func (*ProxyProtocol_Grpc) ProtoMessage() {}
  1049  
  1050  func (x *ProxyProtocol_Grpc) ProtoReflect() protoreflect.Message {
  1051  	mi := &file_outbound_proto_msgTypes[14]
  1052  	if protoimpl.UnsafeEnabled && x != nil {
  1053  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1054  		if ms.LoadMessageInfo() == nil {
  1055  			ms.StoreMessageInfo(mi)
  1056  		}
  1057  		return ms
  1058  	}
  1059  	return mi.MessageOf(x)
  1060  }
  1061  
  1062  // Deprecated: Use ProxyProtocol_Grpc.ProtoReflect.Descriptor instead.
  1063  func (*ProxyProtocol_Grpc) Descriptor() ([]byte, []int) {
  1064  	return file_outbound_proto_rawDescGZIP(), []int{2, 4}
  1065  }
  1066  
  1067  func (x *ProxyProtocol_Grpc) GetRoutes() []*GrpcRoute {
  1068  	if x != nil {
  1069  		return x.Routes
  1070  	}
  1071  	return nil
  1072  }
  1073  
  1074  func (x *ProxyProtocol_Grpc) GetFailureAccrual() *FailureAccrual {
  1075  	if x != nil {
  1076  		return x.FailureAccrual
  1077  	}
  1078  	return nil
  1079  }
  1080  
  1081  type HttpRoute_Rule struct {
  1082  	state         protoimpl.MessageState
  1083  	sizeCache     protoimpl.SizeCache
  1084  	unknownFields protoimpl.UnknownFields
  1085  
  1086  	Matches  []*http_route.HttpRouteMatch `protobuf:"bytes,1,rep,name=matches,proto3" json:"matches,omitempty"`
  1087  	Filters  []*HttpRoute_Filter          `protobuf:"bytes,2,rep,name=filters,proto3" json:"filters,omitempty"`
  1088  	Backends *HttpRoute_Distribution      `protobuf:"bytes,3,opt,name=backends,proto3" json:"backends,omitempty"`
  1089  	// After this time has elapsed since receiving the initial request, any
  1090  	// outstanding request will be cancelled if no response has been received.
  1091  	// If the request is cancelled, a timeout error response will be returned,
  1092  	// and no more retries will be attempted
  1093  	//
  1094  	// If this field is empty, no request timeout is applied.
  1095  	RequestTimeout *duration.Duration `protobuf:"bytes,4,opt,name=requestTimeout,proto3" json:"requestTimeout,omitempty"`
  1096  }
  1097  
  1098  func (x *HttpRoute_Rule) Reset() {
  1099  	*x = HttpRoute_Rule{}
  1100  	if protoimpl.UnsafeEnabled {
  1101  		mi := &file_outbound_proto_msgTypes[15]
  1102  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1103  		ms.StoreMessageInfo(mi)
  1104  	}
  1105  }
  1106  
  1107  func (x *HttpRoute_Rule) String() string {
  1108  	return protoimpl.X.MessageStringOf(x)
  1109  }
  1110  
  1111  func (*HttpRoute_Rule) ProtoMessage() {}
  1112  
  1113  func (x *HttpRoute_Rule) ProtoReflect() protoreflect.Message {
  1114  	mi := &file_outbound_proto_msgTypes[15]
  1115  	if protoimpl.UnsafeEnabled && x != nil {
  1116  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1117  		if ms.LoadMessageInfo() == nil {
  1118  			ms.StoreMessageInfo(mi)
  1119  		}
  1120  		return ms
  1121  	}
  1122  	return mi.MessageOf(x)
  1123  }
  1124  
  1125  // Deprecated: Use HttpRoute_Rule.ProtoReflect.Descriptor instead.
  1126  func (*HttpRoute_Rule) Descriptor() ([]byte, []int) {
  1127  	return file_outbound_proto_rawDescGZIP(), []int{3, 0}
  1128  }
  1129  
  1130  func (x *HttpRoute_Rule) GetMatches() []*http_route.HttpRouteMatch {
  1131  	if x != nil {
  1132  		return x.Matches
  1133  	}
  1134  	return nil
  1135  }
  1136  
  1137  func (x *HttpRoute_Rule) GetFilters() []*HttpRoute_Filter {
  1138  	if x != nil {
  1139  		return x.Filters
  1140  	}
  1141  	return nil
  1142  }
  1143  
  1144  func (x *HttpRoute_Rule) GetBackends() *HttpRoute_Distribution {
  1145  	if x != nil {
  1146  		return x.Backends
  1147  	}
  1148  	return nil
  1149  }
  1150  
  1151  func (x *HttpRoute_Rule) GetRequestTimeout() *duration.Duration {
  1152  	if x != nil {
  1153  		return x.RequestTimeout
  1154  	}
  1155  	return nil
  1156  }
  1157  
  1158  type HttpRoute_Filter struct {
  1159  	state         protoimpl.MessageState
  1160  	sizeCache     protoimpl.SizeCache
  1161  	unknownFields protoimpl.UnknownFields
  1162  
  1163  	// Types that are assignable to Kind:
  1164  	//
  1165  	//	*HttpRoute_Filter_FailureInjector
  1166  	//	*HttpRoute_Filter_RequestHeaderModifier
  1167  	//	*HttpRoute_Filter_Redirect
  1168  	//	*HttpRoute_Filter_ResponseHeaderModifier
  1169  	Kind isHttpRoute_Filter_Kind `protobuf_oneof:"kind"`
  1170  }
  1171  
  1172  func (x *HttpRoute_Filter) Reset() {
  1173  	*x = HttpRoute_Filter{}
  1174  	if protoimpl.UnsafeEnabled {
  1175  		mi := &file_outbound_proto_msgTypes[16]
  1176  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1177  		ms.StoreMessageInfo(mi)
  1178  	}
  1179  }
  1180  
  1181  func (x *HttpRoute_Filter) String() string {
  1182  	return protoimpl.X.MessageStringOf(x)
  1183  }
  1184  
  1185  func (*HttpRoute_Filter) ProtoMessage() {}
  1186  
  1187  func (x *HttpRoute_Filter) ProtoReflect() protoreflect.Message {
  1188  	mi := &file_outbound_proto_msgTypes[16]
  1189  	if protoimpl.UnsafeEnabled && x != nil {
  1190  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1191  		if ms.LoadMessageInfo() == nil {
  1192  			ms.StoreMessageInfo(mi)
  1193  		}
  1194  		return ms
  1195  	}
  1196  	return mi.MessageOf(x)
  1197  }
  1198  
  1199  // Deprecated: Use HttpRoute_Filter.ProtoReflect.Descriptor instead.
  1200  func (*HttpRoute_Filter) Descriptor() ([]byte, []int) {
  1201  	return file_outbound_proto_rawDescGZIP(), []int{3, 1}
  1202  }
  1203  
  1204  func (m *HttpRoute_Filter) GetKind() isHttpRoute_Filter_Kind {
  1205  	if m != nil {
  1206  		return m.Kind
  1207  	}
  1208  	return nil
  1209  }
  1210  
  1211  func (x *HttpRoute_Filter) GetFailureInjector() *http_route.HttpFailureInjector {
  1212  	if x, ok := x.GetKind().(*HttpRoute_Filter_FailureInjector); ok {
  1213  		return x.FailureInjector
  1214  	}
  1215  	return nil
  1216  }
  1217  
  1218  func (x *HttpRoute_Filter) GetRequestHeaderModifier() *http_route.RequestHeaderModifier {
  1219  	if x, ok := x.GetKind().(*HttpRoute_Filter_RequestHeaderModifier); ok {
  1220  		return x.RequestHeaderModifier
  1221  	}
  1222  	return nil
  1223  }
  1224  
  1225  func (x *HttpRoute_Filter) GetRedirect() *http_route.RequestRedirect {
  1226  	if x, ok := x.GetKind().(*HttpRoute_Filter_Redirect); ok {
  1227  		return x.Redirect
  1228  	}
  1229  	return nil
  1230  }
  1231  
  1232  func (x *HttpRoute_Filter) GetResponseHeaderModifier() *http_route.ResponseHeaderModifier {
  1233  	if x, ok := x.GetKind().(*HttpRoute_Filter_ResponseHeaderModifier); ok {
  1234  		return x.ResponseHeaderModifier
  1235  	}
  1236  	return nil
  1237  }
  1238  
  1239  type isHttpRoute_Filter_Kind interface {
  1240  	isHttpRoute_Filter_Kind()
  1241  }
  1242  
  1243  type HttpRoute_Filter_FailureInjector struct {
  1244  	FailureInjector *http_route.HttpFailureInjector `protobuf:"bytes,1,opt,name=failure_injector,json=failureInjector,proto3,oneof"`
  1245  }
  1246  
  1247  type HttpRoute_Filter_RequestHeaderModifier struct {
  1248  	RequestHeaderModifier *http_route.RequestHeaderModifier `protobuf:"bytes,2,opt,name=request_header_modifier,json=requestHeaderModifier,proto3,oneof"`
  1249  }
  1250  
  1251  type HttpRoute_Filter_Redirect struct {
  1252  	Redirect *http_route.RequestRedirect `protobuf:"bytes,3,opt,name=redirect,proto3,oneof"`
  1253  }
  1254  
  1255  type HttpRoute_Filter_ResponseHeaderModifier struct {
  1256  	ResponseHeaderModifier *http_route.ResponseHeaderModifier `protobuf:"bytes,4,opt,name=response_header_modifier,json=responseHeaderModifier,proto3,oneof"`
  1257  }
  1258  
  1259  func (*HttpRoute_Filter_FailureInjector) isHttpRoute_Filter_Kind() {}
  1260  
  1261  func (*HttpRoute_Filter_RequestHeaderModifier) isHttpRoute_Filter_Kind() {}
  1262  
  1263  func (*HttpRoute_Filter_Redirect) isHttpRoute_Filter_Kind() {}
  1264  
  1265  func (*HttpRoute_Filter_ResponseHeaderModifier) isHttpRoute_Filter_Kind() {}
  1266  
  1267  type HttpRoute_Distribution struct {
  1268  	state         protoimpl.MessageState
  1269  	sizeCache     protoimpl.SizeCache
  1270  	unknownFields protoimpl.UnknownFields
  1271  
  1272  	// Types that are assignable to Kind:
  1273  	//
  1274  	//	*HttpRoute_Distribution_Empty_
  1275  	//	*HttpRoute_Distribution_FirstAvailable_
  1276  	//	*HttpRoute_Distribution_RandomAvailable_
  1277  	Kind isHttpRoute_Distribution_Kind `protobuf_oneof:"kind"`
  1278  }
  1279  
  1280  func (x *HttpRoute_Distribution) Reset() {
  1281  	*x = HttpRoute_Distribution{}
  1282  	if protoimpl.UnsafeEnabled {
  1283  		mi := &file_outbound_proto_msgTypes[17]
  1284  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1285  		ms.StoreMessageInfo(mi)
  1286  	}
  1287  }
  1288  
  1289  func (x *HttpRoute_Distribution) String() string {
  1290  	return protoimpl.X.MessageStringOf(x)
  1291  }
  1292  
  1293  func (*HttpRoute_Distribution) ProtoMessage() {}
  1294  
  1295  func (x *HttpRoute_Distribution) ProtoReflect() protoreflect.Message {
  1296  	mi := &file_outbound_proto_msgTypes[17]
  1297  	if protoimpl.UnsafeEnabled && x != nil {
  1298  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1299  		if ms.LoadMessageInfo() == nil {
  1300  			ms.StoreMessageInfo(mi)
  1301  		}
  1302  		return ms
  1303  	}
  1304  	return mi.MessageOf(x)
  1305  }
  1306  
  1307  // Deprecated: Use HttpRoute_Distribution.ProtoReflect.Descriptor instead.
  1308  func (*HttpRoute_Distribution) Descriptor() ([]byte, []int) {
  1309  	return file_outbound_proto_rawDescGZIP(), []int{3, 2}
  1310  }
  1311  
  1312  func (m *HttpRoute_Distribution) GetKind() isHttpRoute_Distribution_Kind {
  1313  	if m != nil {
  1314  		return m.Kind
  1315  	}
  1316  	return nil
  1317  }
  1318  
  1319  func (x *HttpRoute_Distribution) GetEmpty() *HttpRoute_Distribution_Empty {
  1320  	if x, ok := x.GetKind().(*HttpRoute_Distribution_Empty_); ok {
  1321  		return x.Empty
  1322  	}
  1323  	return nil
  1324  }
  1325  
  1326  func (x *HttpRoute_Distribution) GetFirstAvailable() *HttpRoute_Distribution_FirstAvailable {
  1327  	if x, ok := x.GetKind().(*HttpRoute_Distribution_FirstAvailable_); ok {
  1328  		return x.FirstAvailable
  1329  	}
  1330  	return nil
  1331  }
  1332  
  1333  func (x *HttpRoute_Distribution) GetRandomAvailable() *HttpRoute_Distribution_RandomAvailable {
  1334  	if x, ok := x.GetKind().(*HttpRoute_Distribution_RandomAvailable_); ok {
  1335  		return x.RandomAvailable
  1336  	}
  1337  	return nil
  1338  }
  1339  
  1340  type isHttpRoute_Distribution_Kind interface {
  1341  	isHttpRoute_Distribution_Kind()
  1342  }
  1343  
  1344  type HttpRoute_Distribution_Empty_ struct {
  1345  	Empty *HttpRoute_Distribution_Empty `protobuf:"bytes,1,opt,name=empty,proto3,oneof"`
  1346  }
  1347  
  1348  type HttpRoute_Distribution_FirstAvailable_ struct {
  1349  	// Use the first available backend in the list.
  1350  	FirstAvailable *HttpRoute_Distribution_FirstAvailable `protobuf:"bytes,2,opt,name=first_available,json=firstAvailable,proto3,oneof"`
  1351  }
  1352  
  1353  type HttpRoute_Distribution_RandomAvailable_ struct {
  1354  	RandomAvailable *HttpRoute_Distribution_RandomAvailable `protobuf:"bytes,3,opt,name=random_available,json=randomAvailable,proto3,oneof"`
  1355  }
  1356  
  1357  func (*HttpRoute_Distribution_Empty_) isHttpRoute_Distribution_Kind() {}
  1358  
  1359  func (*HttpRoute_Distribution_FirstAvailable_) isHttpRoute_Distribution_Kind() {}
  1360  
  1361  func (*HttpRoute_Distribution_RandomAvailable_) isHttpRoute_Distribution_Kind() {}
  1362  
  1363  type HttpRoute_RouteBackend struct {
  1364  	state         protoimpl.MessageState
  1365  	sizeCache     protoimpl.SizeCache
  1366  	unknownFields protoimpl.UnknownFields
  1367  
  1368  	Backend *Backend            `protobuf:"bytes,1,opt,name=backend,proto3" json:"backend,omitempty"`
  1369  	Filters []*HttpRoute_Filter `protobuf:"bytes,3,rep,name=filters,proto3" json:"filters,omitempty"`
  1370  	// After this time has elapsed since a request is dispatched to this
  1371  	// backend, any request will be cancelled if no response has been received.
  1372  	// If the request is not retried, a timeout error response is returned.
  1373  	//
  1374  	// If this field is empty, no request timeout is applied.
  1375  	RequestTimeout *duration.Duration `protobuf:"bytes,4,opt,name=requestTimeout,proto3" json:"requestTimeout,omitempty"`
  1376  }
  1377  
  1378  func (x *HttpRoute_RouteBackend) Reset() {
  1379  	*x = HttpRoute_RouteBackend{}
  1380  	if protoimpl.UnsafeEnabled {
  1381  		mi := &file_outbound_proto_msgTypes[18]
  1382  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1383  		ms.StoreMessageInfo(mi)
  1384  	}
  1385  }
  1386  
  1387  func (x *HttpRoute_RouteBackend) String() string {
  1388  	return protoimpl.X.MessageStringOf(x)
  1389  }
  1390  
  1391  func (*HttpRoute_RouteBackend) ProtoMessage() {}
  1392  
  1393  func (x *HttpRoute_RouteBackend) ProtoReflect() protoreflect.Message {
  1394  	mi := &file_outbound_proto_msgTypes[18]
  1395  	if protoimpl.UnsafeEnabled && x != nil {
  1396  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1397  		if ms.LoadMessageInfo() == nil {
  1398  			ms.StoreMessageInfo(mi)
  1399  		}
  1400  		return ms
  1401  	}
  1402  	return mi.MessageOf(x)
  1403  }
  1404  
  1405  // Deprecated: Use HttpRoute_RouteBackend.ProtoReflect.Descriptor instead.
  1406  func (*HttpRoute_RouteBackend) Descriptor() ([]byte, []int) {
  1407  	return file_outbound_proto_rawDescGZIP(), []int{3, 3}
  1408  }
  1409  
  1410  func (x *HttpRoute_RouteBackend) GetBackend() *Backend {
  1411  	if x != nil {
  1412  		return x.Backend
  1413  	}
  1414  	return nil
  1415  }
  1416  
  1417  func (x *HttpRoute_RouteBackend) GetFilters() []*HttpRoute_Filter {
  1418  	if x != nil {
  1419  		return x.Filters
  1420  	}
  1421  	return nil
  1422  }
  1423  
  1424  func (x *HttpRoute_RouteBackend) GetRequestTimeout() *duration.Duration {
  1425  	if x != nil {
  1426  		return x.RequestTimeout
  1427  	}
  1428  	return nil
  1429  }
  1430  
  1431  type HttpRoute_WeightedRouteBackend struct {
  1432  	state         protoimpl.MessageState
  1433  	sizeCache     protoimpl.SizeCache
  1434  	unknownFields protoimpl.UnknownFields
  1435  
  1436  	Backend *HttpRoute_RouteBackend `protobuf:"bytes,1,opt,name=backend,proto3" json:"backend,omitempty"`
  1437  	Weight  uint32                  `protobuf:"varint,2,opt,name=weight,proto3" json:"weight,omitempty"`
  1438  }
  1439  
  1440  func (x *HttpRoute_WeightedRouteBackend) Reset() {
  1441  	*x = HttpRoute_WeightedRouteBackend{}
  1442  	if protoimpl.UnsafeEnabled {
  1443  		mi := &file_outbound_proto_msgTypes[19]
  1444  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1445  		ms.StoreMessageInfo(mi)
  1446  	}
  1447  }
  1448  
  1449  func (x *HttpRoute_WeightedRouteBackend) String() string {
  1450  	return protoimpl.X.MessageStringOf(x)
  1451  }
  1452  
  1453  func (*HttpRoute_WeightedRouteBackend) ProtoMessage() {}
  1454  
  1455  func (x *HttpRoute_WeightedRouteBackend) ProtoReflect() protoreflect.Message {
  1456  	mi := &file_outbound_proto_msgTypes[19]
  1457  	if protoimpl.UnsafeEnabled && x != nil {
  1458  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1459  		if ms.LoadMessageInfo() == nil {
  1460  			ms.StoreMessageInfo(mi)
  1461  		}
  1462  		return ms
  1463  	}
  1464  	return mi.MessageOf(x)
  1465  }
  1466  
  1467  // Deprecated: Use HttpRoute_WeightedRouteBackend.ProtoReflect.Descriptor instead.
  1468  func (*HttpRoute_WeightedRouteBackend) Descriptor() ([]byte, []int) {
  1469  	return file_outbound_proto_rawDescGZIP(), []int{3, 4}
  1470  }
  1471  
  1472  func (x *HttpRoute_WeightedRouteBackend) GetBackend() *HttpRoute_RouteBackend {
  1473  	if x != nil {
  1474  		return x.Backend
  1475  	}
  1476  	return nil
  1477  }
  1478  
  1479  func (x *HttpRoute_WeightedRouteBackend) GetWeight() uint32 {
  1480  	if x != nil {
  1481  		return x.Weight
  1482  	}
  1483  	return 0
  1484  }
  1485  
  1486  type HttpRoute_Distribution_Empty struct {
  1487  	state         protoimpl.MessageState
  1488  	sizeCache     protoimpl.SizeCache
  1489  	unknownFields protoimpl.UnknownFields
  1490  }
  1491  
  1492  func (x *HttpRoute_Distribution_Empty) Reset() {
  1493  	*x = HttpRoute_Distribution_Empty{}
  1494  	if protoimpl.UnsafeEnabled {
  1495  		mi := &file_outbound_proto_msgTypes[20]
  1496  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1497  		ms.StoreMessageInfo(mi)
  1498  	}
  1499  }
  1500  
  1501  func (x *HttpRoute_Distribution_Empty) String() string {
  1502  	return protoimpl.X.MessageStringOf(x)
  1503  }
  1504  
  1505  func (*HttpRoute_Distribution_Empty) ProtoMessage() {}
  1506  
  1507  func (x *HttpRoute_Distribution_Empty) ProtoReflect() protoreflect.Message {
  1508  	mi := &file_outbound_proto_msgTypes[20]
  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 HttpRoute_Distribution_Empty.ProtoReflect.Descriptor instead.
  1520  func (*HttpRoute_Distribution_Empty) Descriptor() ([]byte, []int) {
  1521  	return file_outbound_proto_rawDescGZIP(), []int{3, 2, 0}
  1522  }
  1523  
  1524  type HttpRoute_Distribution_FirstAvailable struct {
  1525  	state         protoimpl.MessageState
  1526  	sizeCache     protoimpl.SizeCache
  1527  	unknownFields protoimpl.UnknownFields
  1528  
  1529  	Backends []*HttpRoute_RouteBackend `protobuf:"bytes,1,rep,name=backends,proto3" json:"backends,omitempty"`
  1530  }
  1531  
  1532  func (x *HttpRoute_Distribution_FirstAvailable) Reset() {
  1533  	*x = HttpRoute_Distribution_FirstAvailable{}
  1534  	if protoimpl.UnsafeEnabled {
  1535  		mi := &file_outbound_proto_msgTypes[21]
  1536  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1537  		ms.StoreMessageInfo(mi)
  1538  	}
  1539  }
  1540  
  1541  func (x *HttpRoute_Distribution_FirstAvailable) String() string {
  1542  	return protoimpl.X.MessageStringOf(x)
  1543  }
  1544  
  1545  func (*HttpRoute_Distribution_FirstAvailable) ProtoMessage() {}
  1546  
  1547  func (x *HttpRoute_Distribution_FirstAvailable) ProtoReflect() protoreflect.Message {
  1548  	mi := &file_outbound_proto_msgTypes[21]
  1549  	if protoimpl.UnsafeEnabled && x != nil {
  1550  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1551  		if ms.LoadMessageInfo() == nil {
  1552  			ms.StoreMessageInfo(mi)
  1553  		}
  1554  		return ms
  1555  	}
  1556  	return mi.MessageOf(x)
  1557  }
  1558  
  1559  // Deprecated: Use HttpRoute_Distribution_FirstAvailable.ProtoReflect.Descriptor instead.
  1560  func (*HttpRoute_Distribution_FirstAvailable) Descriptor() ([]byte, []int) {
  1561  	return file_outbound_proto_rawDescGZIP(), []int{3, 2, 1}
  1562  }
  1563  
  1564  func (x *HttpRoute_Distribution_FirstAvailable) GetBackends() []*HttpRoute_RouteBackend {
  1565  	if x != nil {
  1566  		return x.Backends
  1567  	}
  1568  	return nil
  1569  }
  1570  
  1571  type HttpRoute_Distribution_RandomAvailable struct {
  1572  	state         protoimpl.MessageState
  1573  	sizeCache     protoimpl.SizeCache
  1574  	unknownFields protoimpl.UnknownFields
  1575  
  1576  	Backends []*HttpRoute_WeightedRouteBackend `protobuf:"bytes,1,rep,name=backends,proto3" json:"backends,omitempty"`
  1577  }
  1578  
  1579  func (x *HttpRoute_Distribution_RandomAvailable) Reset() {
  1580  	*x = HttpRoute_Distribution_RandomAvailable{}
  1581  	if protoimpl.UnsafeEnabled {
  1582  		mi := &file_outbound_proto_msgTypes[22]
  1583  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1584  		ms.StoreMessageInfo(mi)
  1585  	}
  1586  }
  1587  
  1588  func (x *HttpRoute_Distribution_RandomAvailable) String() string {
  1589  	return protoimpl.X.MessageStringOf(x)
  1590  }
  1591  
  1592  func (*HttpRoute_Distribution_RandomAvailable) ProtoMessage() {}
  1593  
  1594  func (x *HttpRoute_Distribution_RandomAvailable) ProtoReflect() protoreflect.Message {
  1595  	mi := &file_outbound_proto_msgTypes[22]
  1596  	if protoimpl.UnsafeEnabled && x != nil {
  1597  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1598  		if ms.LoadMessageInfo() == nil {
  1599  			ms.StoreMessageInfo(mi)
  1600  		}
  1601  		return ms
  1602  	}
  1603  	return mi.MessageOf(x)
  1604  }
  1605  
  1606  // Deprecated: Use HttpRoute_Distribution_RandomAvailable.ProtoReflect.Descriptor instead.
  1607  func (*HttpRoute_Distribution_RandomAvailable) Descriptor() ([]byte, []int) {
  1608  	return file_outbound_proto_rawDescGZIP(), []int{3, 2, 2}
  1609  }
  1610  
  1611  func (x *HttpRoute_Distribution_RandomAvailable) GetBackends() []*HttpRoute_WeightedRouteBackend {
  1612  	if x != nil {
  1613  		return x.Backends
  1614  	}
  1615  	return nil
  1616  }
  1617  
  1618  type GrpcRoute_Rule struct {
  1619  	state         protoimpl.MessageState
  1620  	sizeCache     protoimpl.SizeCache
  1621  	unknownFields protoimpl.UnknownFields
  1622  
  1623  	Matches  []*grpc_route.GrpcRouteMatch `protobuf:"bytes,1,rep,name=matches,proto3" json:"matches,omitempty"`
  1624  	Filters  []*GrpcRoute_Filter          `protobuf:"bytes,2,rep,name=filters,proto3" json:"filters,omitempty"`
  1625  	Backends *GrpcRoute_Distribution      `protobuf:"bytes,3,opt,name=backends,proto3" json:"backends,omitempty"`
  1626  	// After this time has elapsed since receiving the initial request, any
  1627  	// outstanding request will be cancelled if no response has been received.
  1628  	// If the request is cancelled, a timeout error response will be returned,
  1629  	// and no more retries will be attempted
  1630  	//
  1631  	// If this field is empty, no request timeout is applied.
  1632  	RequestTimeout *duration.Duration `protobuf:"bytes,4,opt,name=requestTimeout,proto3" json:"requestTimeout,omitempty"`
  1633  }
  1634  
  1635  func (x *GrpcRoute_Rule) Reset() {
  1636  	*x = GrpcRoute_Rule{}
  1637  	if protoimpl.UnsafeEnabled {
  1638  		mi := &file_outbound_proto_msgTypes[23]
  1639  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1640  		ms.StoreMessageInfo(mi)
  1641  	}
  1642  }
  1643  
  1644  func (x *GrpcRoute_Rule) String() string {
  1645  	return protoimpl.X.MessageStringOf(x)
  1646  }
  1647  
  1648  func (*GrpcRoute_Rule) ProtoMessage() {}
  1649  
  1650  func (x *GrpcRoute_Rule) ProtoReflect() protoreflect.Message {
  1651  	mi := &file_outbound_proto_msgTypes[23]
  1652  	if protoimpl.UnsafeEnabled && x != nil {
  1653  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1654  		if ms.LoadMessageInfo() == nil {
  1655  			ms.StoreMessageInfo(mi)
  1656  		}
  1657  		return ms
  1658  	}
  1659  	return mi.MessageOf(x)
  1660  }
  1661  
  1662  // Deprecated: Use GrpcRoute_Rule.ProtoReflect.Descriptor instead.
  1663  func (*GrpcRoute_Rule) Descriptor() ([]byte, []int) {
  1664  	return file_outbound_proto_rawDescGZIP(), []int{4, 0}
  1665  }
  1666  
  1667  func (x *GrpcRoute_Rule) GetMatches() []*grpc_route.GrpcRouteMatch {
  1668  	if x != nil {
  1669  		return x.Matches
  1670  	}
  1671  	return nil
  1672  }
  1673  
  1674  func (x *GrpcRoute_Rule) GetFilters() []*GrpcRoute_Filter {
  1675  	if x != nil {
  1676  		return x.Filters
  1677  	}
  1678  	return nil
  1679  }
  1680  
  1681  func (x *GrpcRoute_Rule) GetBackends() *GrpcRoute_Distribution {
  1682  	if x != nil {
  1683  		return x.Backends
  1684  	}
  1685  	return nil
  1686  }
  1687  
  1688  func (x *GrpcRoute_Rule) GetRequestTimeout() *duration.Duration {
  1689  	if x != nil {
  1690  		return x.RequestTimeout
  1691  	}
  1692  	return nil
  1693  }
  1694  
  1695  type GrpcRoute_Filter struct {
  1696  	state         protoimpl.MessageState
  1697  	sizeCache     protoimpl.SizeCache
  1698  	unknownFields protoimpl.UnknownFields
  1699  
  1700  	// Types that are assignable to Kind:
  1701  	//
  1702  	//	*GrpcRoute_Filter_FailureInjector
  1703  	//	*GrpcRoute_Filter_RequestHeaderModifier
  1704  	Kind isGrpcRoute_Filter_Kind `protobuf_oneof:"kind"`
  1705  }
  1706  
  1707  func (x *GrpcRoute_Filter) Reset() {
  1708  	*x = GrpcRoute_Filter{}
  1709  	if protoimpl.UnsafeEnabled {
  1710  		mi := &file_outbound_proto_msgTypes[24]
  1711  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1712  		ms.StoreMessageInfo(mi)
  1713  	}
  1714  }
  1715  
  1716  func (x *GrpcRoute_Filter) String() string {
  1717  	return protoimpl.X.MessageStringOf(x)
  1718  }
  1719  
  1720  func (*GrpcRoute_Filter) ProtoMessage() {}
  1721  
  1722  func (x *GrpcRoute_Filter) ProtoReflect() protoreflect.Message {
  1723  	mi := &file_outbound_proto_msgTypes[24]
  1724  	if protoimpl.UnsafeEnabled && x != nil {
  1725  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1726  		if ms.LoadMessageInfo() == nil {
  1727  			ms.StoreMessageInfo(mi)
  1728  		}
  1729  		return ms
  1730  	}
  1731  	return mi.MessageOf(x)
  1732  }
  1733  
  1734  // Deprecated: Use GrpcRoute_Filter.ProtoReflect.Descriptor instead.
  1735  func (*GrpcRoute_Filter) Descriptor() ([]byte, []int) {
  1736  	return file_outbound_proto_rawDescGZIP(), []int{4, 1}
  1737  }
  1738  
  1739  func (m *GrpcRoute_Filter) GetKind() isGrpcRoute_Filter_Kind {
  1740  	if m != nil {
  1741  		return m.Kind
  1742  	}
  1743  	return nil
  1744  }
  1745  
  1746  func (x *GrpcRoute_Filter) GetFailureInjector() *grpc_route.GrpcFailureInjector {
  1747  	if x, ok := x.GetKind().(*GrpcRoute_Filter_FailureInjector); ok {
  1748  		return x.FailureInjector
  1749  	}
  1750  	return nil
  1751  }
  1752  
  1753  func (x *GrpcRoute_Filter) GetRequestHeaderModifier() *http_route.RequestHeaderModifier {
  1754  	if x, ok := x.GetKind().(*GrpcRoute_Filter_RequestHeaderModifier); ok {
  1755  		return x.RequestHeaderModifier
  1756  	}
  1757  	return nil
  1758  }
  1759  
  1760  type isGrpcRoute_Filter_Kind interface {
  1761  	isGrpcRoute_Filter_Kind()
  1762  }
  1763  
  1764  type GrpcRoute_Filter_FailureInjector struct {
  1765  	FailureInjector *grpc_route.GrpcFailureInjector `protobuf:"bytes,1,opt,name=failure_injector,json=failureInjector,proto3,oneof"`
  1766  }
  1767  
  1768  type GrpcRoute_Filter_RequestHeaderModifier struct {
  1769  	RequestHeaderModifier *http_route.RequestHeaderModifier `protobuf:"bytes,2,opt,name=request_header_modifier,json=requestHeaderModifier,proto3,oneof"`
  1770  }
  1771  
  1772  func (*GrpcRoute_Filter_FailureInjector) isGrpcRoute_Filter_Kind() {}
  1773  
  1774  func (*GrpcRoute_Filter_RequestHeaderModifier) isGrpcRoute_Filter_Kind() {}
  1775  
  1776  type GrpcRoute_Distribution struct {
  1777  	state         protoimpl.MessageState
  1778  	sizeCache     protoimpl.SizeCache
  1779  	unknownFields protoimpl.UnknownFields
  1780  
  1781  	// Types that are assignable to Kind:
  1782  	//
  1783  	//	*GrpcRoute_Distribution_Empty_
  1784  	//	*GrpcRoute_Distribution_FirstAvailable_
  1785  	//	*GrpcRoute_Distribution_RandomAvailable_
  1786  	Kind isGrpcRoute_Distribution_Kind `protobuf_oneof:"kind"`
  1787  }
  1788  
  1789  func (x *GrpcRoute_Distribution) Reset() {
  1790  	*x = GrpcRoute_Distribution{}
  1791  	if protoimpl.UnsafeEnabled {
  1792  		mi := &file_outbound_proto_msgTypes[25]
  1793  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1794  		ms.StoreMessageInfo(mi)
  1795  	}
  1796  }
  1797  
  1798  func (x *GrpcRoute_Distribution) String() string {
  1799  	return protoimpl.X.MessageStringOf(x)
  1800  }
  1801  
  1802  func (*GrpcRoute_Distribution) ProtoMessage() {}
  1803  
  1804  func (x *GrpcRoute_Distribution) ProtoReflect() protoreflect.Message {
  1805  	mi := &file_outbound_proto_msgTypes[25]
  1806  	if protoimpl.UnsafeEnabled && x != nil {
  1807  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1808  		if ms.LoadMessageInfo() == nil {
  1809  			ms.StoreMessageInfo(mi)
  1810  		}
  1811  		return ms
  1812  	}
  1813  	return mi.MessageOf(x)
  1814  }
  1815  
  1816  // Deprecated: Use GrpcRoute_Distribution.ProtoReflect.Descriptor instead.
  1817  func (*GrpcRoute_Distribution) Descriptor() ([]byte, []int) {
  1818  	return file_outbound_proto_rawDescGZIP(), []int{4, 2}
  1819  }
  1820  
  1821  func (m *GrpcRoute_Distribution) GetKind() isGrpcRoute_Distribution_Kind {
  1822  	if m != nil {
  1823  		return m.Kind
  1824  	}
  1825  	return nil
  1826  }
  1827  
  1828  func (x *GrpcRoute_Distribution) GetEmpty() *GrpcRoute_Distribution_Empty {
  1829  	if x, ok := x.GetKind().(*GrpcRoute_Distribution_Empty_); ok {
  1830  		return x.Empty
  1831  	}
  1832  	return nil
  1833  }
  1834  
  1835  func (x *GrpcRoute_Distribution) GetFirstAvailable() *GrpcRoute_Distribution_FirstAvailable {
  1836  	if x, ok := x.GetKind().(*GrpcRoute_Distribution_FirstAvailable_); ok {
  1837  		return x.FirstAvailable
  1838  	}
  1839  	return nil
  1840  }
  1841  
  1842  func (x *GrpcRoute_Distribution) GetRandomAvailable() *GrpcRoute_Distribution_RandomAvailable {
  1843  	if x, ok := x.GetKind().(*GrpcRoute_Distribution_RandomAvailable_); ok {
  1844  		return x.RandomAvailable
  1845  	}
  1846  	return nil
  1847  }
  1848  
  1849  type isGrpcRoute_Distribution_Kind interface {
  1850  	isGrpcRoute_Distribution_Kind()
  1851  }
  1852  
  1853  type GrpcRoute_Distribution_Empty_ struct {
  1854  	Empty *GrpcRoute_Distribution_Empty `protobuf:"bytes,1,opt,name=empty,proto3,oneof"`
  1855  }
  1856  
  1857  type GrpcRoute_Distribution_FirstAvailable_ struct {
  1858  	// Use the first available backend in the list.
  1859  	FirstAvailable *GrpcRoute_Distribution_FirstAvailable `protobuf:"bytes,2,opt,name=first_available,json=firstAvailable,proto3,oneof"`
  1860  }
  1861  
  1862  type GrpcRoute_Distribution_RandomAvailable_ struct {
  1863  	RandomAvailable *GrpcRoute_Distribution_RandomAvailable `protobuf:"bytes,3,opt,name=random_available,json=randomAvailable,proto3,oneof"`
  1864  }
  1865  
  1866  func (*GrpcRoute_Distribution_Empty_) isGrpcRoute_Distribution_Kind() {}
  1867  
  1868  func (*GrpcRoute_Distribution_FirstAvailable_) isGrpcRoute_Distribution_Kind() {}
  1869  
  1870  func (*GrpcRoute_Distribution_RandomAvailable_) isGrpcRoute_Distribution_Kind() {}
  1871  
  1872  type GrpcRoute_RouteBackend struct {
  1873  	state         protoimpl.MessageState
  1874  	sizeCache     protoimpl.SizeCache
  1875  	unknownFields protoimpl.UnknownFields
  1876  
  1877  	Backend *Backend            `protobuf:"bytes,1,opt,name=backend,proto3" json:"backend,omitempty"`
  1878  	Filters []*GrpcRoute_Filter `protobuf:"bytes,3,rep,name=filters,proto3" json:"filters,omitempty"`
  1879  	// After this time has elapsed since a request is dispatched to this
  1880  	// backend, any request will be cancelled if no response has been received.
  1881  	// If the request is not retried, a timeout error response is returned.
  1882  	//
  1883  	// If this field is empty, no request timeout is applied.
  1884  	RequestTimeout *duration.Duration `protobuf:"bytes,4,opt,name=requestTimeout,proto3" json:"requestTimeout,omitempty"`
  1885  }
  1886  
  1887  func (x *GrpcRoute_RouteBackend) Reset() {
  1888  	*x = GrpcRoute_RouteBackend{}
  1889  	if protoimpl.UnsafeEnabled {
  1890  		mi := &file_outbound_proto_msgTypes[26]
  1891  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1892  		ms.StoreMessageInfo(mi)
  1893  	}
  1894  }
  1895  
  1896  func (x *GrpcRoute_RouteBackend) String() string {
  1897  	return protoimpl.X.MessageStringOf(x)
  1898  }
  1899  
  1900  func (*GrpcRoute_RouteBackend) ProtoMessage() {}
  1901  
  1902  func (x *GrpcRoute_RouteBackend) ProtoReflect() protoreflect.Message {
  1903  	mi := &file_outbound_proto_msgTypes[26]
  1904  	if protoimpl.UnsafeEnabled && x != nil {
  1905  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1906  		if ms.LoadMessageInfo() == nil {
  1907  			ms.StoreMessageInfo(mi)
  1908  		}
  1909  		return ms
  1910  	}
  1911  	return mi.MessageOf(x)
  1912  }
  1913  
  1914  // Deprecated: Use GrpcRoute_RouteBackend.ProtoReflect.Descriptor instead.
  1915  func (*GrpcRoute_RouteBackend) Descriptor() ([]byte, []int) {
  1916  	return file_outbound_proto_rawDescGZIP(), []int{4, 3}
  1917  }
  1918  
  1919  func (x *GrpcRoute_RouteBackend) GetBackend() *Backend {
  1920  	if x != nil {
  1921  		return x.Backend
  1922  	}
  1923  	return nil
  1924  }
  1925  
  1926  func (x *GrpcRoute_RouteBackend) GetFilters() []*GrpcRoute_Filter {
  1927  	if x != nil {
  1928  		return x.Filters
  1929  	}
  1930  	return nil
  1931  }
  1932  
  1933  func (x *GrpcRoute_RouteBackend) GetRequestTimeout() *duration.Duration {
  1934  	if x != nil {
  1935  		return x.RequestTimeout
  1936  	}
  1937  	return nil
  1938  }
  1939  
  1940  type GrpcRoute_WeightedRouteBackend struct {
  1941  	state         protoimpl.MessageState
  1942  	sizeCache     protoimpl.SizeCache
  1943  	unknownFields protoimpl.UnknownFields
  1944  
  1945  	Backend *GrpcRoute_RouteBackend `protobuf:"bytes,1,opt,name=backend,proto3" json:"backend,omitempty"`
  1946  	Weight  uint32                  `protobuf:"varint,2,opt,name=weight,proto3" json:"weight,omitempty"`
  1947  }
  1948  
  1949  func (x *GrpcRoute_WeightedRouteBackend) Reset() {
  1950  	*x = GrpcRoute_WeightedRouteBackend{}
  1951  	if protoimpl.UnsafeEnabled {
  1952  		mi := &file_outbound_proto_msgTypes[27]
  1953  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1954  		ms.StoreMessageInfo(mi)
  1955  	}
  1956  }
  1957  
  1958  func (x *GrpcRoute_WeightedRouteBackend) String() string {
  1959  	return protoimpl.X.MessageStringOf(x)
  1960  }
  1961  
  1962  func (*GrpcRoute_WeightedRouteBackend) ProtoMessage() {}
  1963  
  1964  func (x *GrpcRoute_WeightedRouteBackend) ProtoReflect() protoreflect.Message {
  1965  	mi := &file_outbound_proto_msgTypes[27]
  1966  	if protoimpl.UnsafeEnabled && x != nil {
  1967  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1968  		if ms.LoadMessageInfo() == nil {
  1969  			ms.StoreMessageInfo(mi)
  1970  		}
  1971  		return ms
  1972  	}
  1973  	return mi.MessageOf(x)
  1974  }
  1975  
  1976  // Deprecated: Use GrpcRoute_WeightedRouteBackend.ProtoReflect.Descriptor instead.
  1977  func (*GrpcRoute_WeightedRouteBackend) Descriptor() ([]byte, []int) {
  1978  	return file_outbound_proto_rawDescGZIP(), []int{4, 4}
  1979  }
  1980  
  1981  func (x *GrpcRoute_WeightedRouteBackend) GetBackend() *GrpcRoute_RouteBackend {
  1982  	if x != nil {
  1983  		return x.Backend
  1984  	}
  1985  	return nil
  1986  }
  1987  
  1988  func (x *GrpcRoute_WeightedRouteBackend) GetWeight() uint32 {
  1989  	if x != nil {
  1990  		return x.Weight
  1991  	}
  1992  	return 0
  1993  }
  1994  
  1995  type GrpcRoute_Distribution_Empty struct {
  1996  	state         protoimpl.MessageState
  1997  	sizeCache     protoimpl.SizeCache
  1998  	unknownFields protoimpl.UnknownFields
  1999  }
  2000  
  2001  func (x *GrpcRoute_Distribution_Empty) Reset() {
  2002  	*x = GrpcRoute_Distribution_Empty{}
  2003  	if protoimpl.UnsafeEnabled {
  2004  		mi := &file_outbound_proto_msgTypes[28]
  2005  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2006  		ms.StoreMessageInfo(mi)
  2007  	}
  2008  }
  2009  
  2010  func (x *GrpcRoute_Distribution_Empty) String() string {
  2011  	return protoimpl.X.MessageStringOf(x)
  2012  }
  2013  
  2014  func (*GrpcRoute_Distribution_Empty) ProtoMessage() {}
  2015  
  2016  func (x *GrpcRoute_Distribution_Empty) ProtoReflect() protoreflect.Message {
  2017  	mi := &file_outbound_proto_msgTypes[28]
  2018  	if protoimpl.UnsafeEnabled && x != nil {
  2019  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2020  		if ms.LoadMessageInfo() == nil {
  2021  			ms.StoreMessageInfo(mi)
  2022  		}
  2023  		return ms
  2024  	}
  2025  	return mi.MessageOf(x)
  2026  }
  2027  
  2028  // Deprecated: Use GrpcRoute_Distribution_Empty.ProtoReflect.Descriptor instead.
  2029  func (*GrpcRoute_Distribution_Empty) Descriptor() ([]byte, []int) {
  2030  	return file_outbound_proto_rawDescGZIP(), []int{4, 2, 0}
  2031  }
  2032  
  2033  type GrpcRoute_Distribution_FirstAvailable struct {
  2034  	state         protoimpl.MessageState
  2035  	sizeCache     protoimpl.SizeCache
  2036  	unknownFields protoimpl.UnknownFields
  2037  
  2038  	Backends []*GrpcRoute_RouteBackend `protobuf:"bytes,1,rep,name=backends,proto3" json:"backends,omitempty"`
  2039  }
  2040  
  2041  func (x *GrpcRoute_Distribution_FirstAvailable) Reset() {
  2042  	*x = GrpcRoute_Distribution_FirstAvailable{}
  2043  	if protoimpl.UnsafeEnabled {
  2044  		mi := &file_outbound_proto_msgTypes[29]
  2045  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2046  		ms.StoreMessageInfo(mi)
  2047  	}
  2048  }
  2049  
  2050  func (x *GrpcRoute_Distribution_FirstAvailable) String() string {
  2051  	return protoimpl.X.MessageStringOf(x)
  2052  }
  2053  
  2054  func (*GrpcRoute_Distribution_FirstAvailable) ProtoMessage() {}
  2055  
  2056  func (x *GrpcRoute_Distribution_FirstAvailable) ProtoReflect() protoreflect.Message {
  2057  	mi := &file_outbound_proto_msgTypes[29]
  2058  	if protoimpl.UnsafeEnabled && x != nil {
  2059  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2060  		if ms.LoadMessageInfo() == nil {
  2061  			ms.StoreMessageInfo(mi)
  2062  		}
  2063  		return ms
  2064  	}
  2065  	return mi.MessageOf(x)
  2066  }
  2067  
  2068  // Deprecated: Use GrpcRoute_Distribution_FirstAvailable.ProtoReflect.Descriptor instead.
  2069  func (*GrpcRoute_Distribution_FirstAvailable) Descriptor() ([]byte, []int) {
  2070  	return file_outbound_proto_rawDescGZIP(), []int{4, 2, 1}
  2071  }
  2072  
  2073  func (x *GrpcRoute_Distribution_FirstAvailable) GetBackends() []*GrpcRoute_RouteBackend {
  2074  	if x != nil {
  2075  		return x.Backends
  2076  	}
  2077  	return nil
  2078  }
  2079  
  2080  type GrpcRoute_Distribution_RandomAvailable struct {
  2081  	state         protoimpl.MessageState
  2082  	sizeCache     protoimpl.SizeCache
  2083  	unknownFields protoimpl.UnknownFields
  2084  
  2085  	Backends []*GrpcRoute_WeightedRouteBackend `protobuf:"bytes,1,rep,name=backends,proto3" json:"backends,omitempty"`
  2086  }
  2087  
  2088  func (x *GrpcRoute_Distribution_RandomAvailable) Reset() {
  2089  	*x = GrpcRoute_Distribution_RandomAvailable{}
  2090  	if protoimpl.UnsafeEnabled {
  2091  		mi := &file_outbound_proto_msgTypes[30]
  2092  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2093  		ms.StoreMessageInfo(mi)
  2094  	}
  2095  }
  2096  
  2097  func (x *GrpcRoute_Distribution_RandomAvailable) String() string {
  2098  	return protoimpl.X.MessageStringOf(x)
  2099  }
  2100  
  2101  func (*GrpcRoute_Distribution_RandomAvailable) ProtoMessage() {}
  2102  
  2103  func (x *GrpcRoute_Distribution_RandomAvailable) ProtoReflect() protoreflect.Message {
  2104  	mi := &file_outbound_proto_msgTypes[30]
  2105  	if protoimpl.UnsafeEnabled && x != nil {
  2106  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2107  		if ms.LoadMessageInfo() == nil {
  2108  			ms.StoreMessageInfo(mi)
  2109  		}
  2110  		return ms
  2111  	}
  2112  	return mi.MessageOf(x)
  2113  }
  2114  
  2115  // Deprecated: Use GrpcRoute_Distribution_RandomAvailable.ProtoReflect.Descriptor instead.
  2116  func (*GrpcRoute_Distribution_RandomAvailable) Descriptor() ([]byte, []int) {
  2117  	return file_outbound_proto_rawDescGZIP(), []int{4, 2, 2}
  2118  }
  2119  
  2120  func (x *GrpcRoute_Distribution_RandomAvailable) GetBackends() []*GrpcRoute_WeightedRouteBackend {
  2121  	if x != nil {
  2122  		return x.Backends
  2123  	}
  2124  	return nil
  2125  }
  2126  
  2127  type OpaqueRoute_Rule struct {
  2128  	state         protoimpl.MessageState
  2129  	sizeCache     protoimpl.SizeCache
  2130  	unknownFields protoimpl.UnknownFields
  2131  
  2132  	Backends *OpaqueRoute_Distribution `protobuf:"bytes,1,opt,name=backends,proto3" json:"backends,omitempty"`
  2133  }
  2134  
  2135  func (x *OpaqueRoute_Rule) Reset() {
  2136  	*x = OpaqueRoute_Rule{}
  2137  	if protoimpl.UnsafeEnabled {
  2138  		mi := &file_outbound_proto_msgTypes[31]
  2139  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2140  		ms.StoreMessageInfo(mi)
  2141  	}
  2142  }
  2143  
  2144  func (x *OpaqueRoute_Rule) String() string {
  2145  	return protoimpl.X.MessageStringOf(x)
  2146  }
  2147  
  2148  func (*OpaqueRoute_Rule) ProtoMessage() {}
  2149  
  2150  func (x *OpaqueRoute_Rule) ProtoReflect() protoreflect.Message {
  2151  	mi := &file_outbound_proto_msgTypes[31]
  2152  	if protoimpl.UnsafeEnabled && x != nil {
  2153  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2154  		if ms.LoadMessageInfo() == nil {
  2155  			ms.StoreMessageInfo(mi)
  2156  		}
  2157  		return ms
  2158  	}
  2159  	return mi.MessageOf(x)
  2160  }
  2161  
  2162  // Deprecated: Use OpaqueRoute_Rule.ProtoReflect.Descriptor instead.
  2163  func (*OpaqueRoute_Rule) Descriptor() ([]byte, []int) {
  2164  	return file_outbound_proto_rawDescGZIP(), []int{5, 0}
  2165  }
  2166  
  2167  func (x *OpaqueRoute_Rule) GetBackends() *OpaqueRoute_Distribution {
  2168  	if x != nil {
  2169  		return x.Backends
  2170  	}
  2171  	return nil
  2172  }
  2173  
  2174  type OpaqueRoute_Distribution struct {
  2175  	state         protoimpl.MessageState
  2176  	sizeCache     protoimpl.SizeCache
  2177  	unknownFields protoimpl.UnknownFields
  2178  
  2179  	// Types that are assignable to Kind:
  2180  	//
  2181  	//	*OpaqueRoute_Distribution_Empty_
  2182  	//	*OpaqueRoute_Distribution_FirstAvailable_
  2183  	//	*OpaqueRoute_Distribution_RandomAvailable_
  2184  	Kind isOpaqueRoute_Distribution_Kind `protobuf_oneof:"kind"`
  2185  }
  2186  
  2187  func (x *OpaqueRoute_Distribution) Reset() {
  2188  	*x = OpaqueRoute_Distribution{}
  2189  	if protoimpl.UnsafeEnabled {
  2190  		mi := &file_outbound_proto_msgTypes[32]
  2191  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2192  		ms.StoreMessageInfo(mi)
  2193  	}
  2194  }
  2195  
  2196  func (x *OpaqueRoute_Distribution) String() string {
  2197  	return protoimpl.X.MessageStringOf(x)
  2198  }
  2199  
  2200  func (*OpaqueRoute_Distribution) ProtoMessage() {}
  2201  
  2202  func (x *OpaqueRoute_Distribution) ProtoReflect() protoreflect.Message {
  2203  	mi := &file_outbound_proto_msgTypes[32]
  2204  	if protoimpl.UnsafeEnabled && x != nil {
  2205  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2206  		if ms.LoadMessageInfo() == nil {
  2207  			ms.StoreMessageInfo(mi)
  2208  		}
  2209  		return ms
  2210  	}
  2211  	return mi.MessageOf(x)
  2212  }
  2213  
  2214  // Deprecated: Use OpaqueRoute_Distribution.ProtoReflect.Descriptor instead.
  2215  func (*OpaqueRoute_Distribution) Descriptor() ([]byte, []int) {
  2216  	return file_outbound_proto_rawDescGZIP(), []int{5, 1}
  2217  }
  2218  
  2219  func (m *OpaqueRoute_Distribution) GetKind() isOpaqueRoute_Distribution_Kind {
  2220  	if m != nil {
  2221  		return m.Kind
  2222  	}
  2223  	return nil
  2224  }
  2225  
  2226  func (x *OpaqueRoute_Distribution) GetEmpty() *OpaqueRoute_Distribution_Empty {
  2227  	if x, ok := x.GetKind().(*OpaqueRoute_Distribution_Empty_); ok {
  2228  		return x.Empty
  2229  	}
  2230  	return nil
  2231  }
  2232  
  2233  func (x *OpaqueRoute_Distribution) GetFirstAvailable() *OpaqueRoute_Distribution_FirstAvailable {
  2234  	if x, ok := x.GetKind().(*OpaqueRoute_Distribution_FirstAvailable_); ok {
  2235  		return x.FirstAvailable
  2236  	}
  2237  	return nil
  2238  }
  2239  
  2240  func (x *OpaqueRoute_Distribution) GetRandomAvailable() *OpaqueRoute_Distribution_RandomAvailable {
  2241  	if x, ok := x.GetKind().(*OpaqueRoute_Distribution_RandomAvailable_); ok {
  2242  		return x.RandomAvailable
  2243  	}
  2244  	return nil
  2245  }
  2246  
  2247  type isOpaqueRoute_Distribution_Kind interface {
  2248  	isOpaqueRoute_Distribution_Kind()
  2249  }
  2250  
  2251  type OpaqueRoute_Distribution_Empty_ struct {
  2252  	Empty *OpaqueRoute_Distribution_Empty `protobuf:"bytes,1,opt,name=empty,proto3,oneof"`
  2253  }
  2254  
  2255  type OpaqueRoute_Distribution_FirstAvailable_ struct {
  2256  	// Use the first available backend in the list.
  2257  	FirstAvailable *OpaqueRoute_Distribution_FirstAvailable `protobuf:"bytes,2,opt,name=first_available,json=firstAvailable,proto3,oneof"`
  2258  }
  2259  
  2260  type OpaqueRoute_Distribution_RandomAvailable_ struct {
  2261  	RandomAvailable *OpaqueRoute_Distribution_RandomAvailable `protobuf:"bytes,3,opt,name=random_available,json=randomAvailable,proto3,oneof"`
  2262  }
  2263  
  2264  func (*OpaqueRoute_Distribution_Empty_) isOpaqueRoute_Distribution_Kind() {}
  2265  
  2266  func (*OpaqueRoute_Distribution_FirstAvailable_) isOpaqueRoute_Distribution_Kind() {}
  2267  
  2268  func (*OpaqueRoute_Distribution_RandomAvailable_) isOpaqueRoute_Distribution_Kind() {}
  2269  
  2270  type OpaqueRoute_RouteBackend struct {
  2271  	state         protoimpl.MessageState
  2272  	sizeCache     protoimpl.SizeCache
  2273  	unknownFields protoimpl.UnknownFields
  2274  
  2275  	Backend *Backend `protobuf:"bytes,1,opt,name=backend,proto3" json:"backend,omitempty"`
  2276  }
  2277  
  2278  func (x *OpaqueRoute_RouteBackend) Reset() {
  2279  	*x = OpaqueRoute_RouteBackend{}
  2280  	if protoimpl.UnsafeEnabled {
  2281  		mi := &file_outbound_proto_msgTypes[33]
  2282  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2283  		ms.StoreMessageInfo(mi)
  2284  	}
  2285  }
  2286  
  2287  func (x *OpaqueRoute_RouteBackend) String() string {
  2288  	return protoimpl.X.MessageStringOf(x)
  2289  }
  2290  
  2291  func (*OpaqueRoute_RouteBackend) ProtoMessage() {}
  2292  
  2293  func (x *OpaqueRoute_RouteBackend) ProtoReflect() protoreflect.Message {
  2294  	mi := &file_outbound_proto_msgTypes[33]
  2295  	if protoimpl.UnsafeEnabled && x != nil {
  2296  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2297  		if ms.LoadMessageInfo() == nil {
  2298  			ms.StoreMessageInfo(mi)
  2299  		}
  2300  		return ms
  2301  	}
  2302  	return mi.MessageOf(x)
  2303  }
  2304  
  2305  // Deprecated: Use OpaqueRoute_RouteBackend.ProtoReflect.Descriptor instead.
  2306  func (*OpaqueRoute_RouteBackend) Descriptor() ([]byte, []int) {
  2307  	return file_outbound_proto_rawDescGZIP(), []int{5, 2}
  2308  }
  2309  
  2310  func (x *OpaqueRoute_RouteBackend) GetBackend() *Backend {
  2311  	if x != nil {
  2312  		return x.Backend
  2313  	}
  2314  	return nil
  2315  }
  2316  
  2317  type OpaqueRoute_WeightedRouteBackend struct {
  2318  	state         protoimpl.MessageState
  2319  	sizeCache     protoimpl.SizeCache
  2320  	unknownFields protoimpl.UnknownFields
  2321  
  2322  	Backend *OpaqueRoute_RouteBackend `protobuf:"bytes,1,opt,name=backend,proto3" json:"backend,omitempty"`
  2323  	Weight  uint32                    `protobuf:"varint,2,opt,name=weight,proto3" json:"weight,omitempty"`
  2324  }
  2325  
  2326  func (x *OpaqueRoute_WeightedRouteBackend) Reset() {
  2327  	*x = OpaqueRoute_WeightedRouteBackend{}
  2328  	if protoimpl.UnsafeEnabled {
  2329  		mi := &file_outbound_proto_msgTypes[34]
  2330  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2331  		ms.StoreMessageInfo(mi)
  2332  	}
  2333  }
  2334  
  2335  func (x *OpaqueRoute_WeightedRouteBackend) String() string {
  2336  	return protoimpl.X.MessageStringOf(x)
  2337  }
  2338  
  2339  func (*OpaqueRoute_WeightedRouteBackend) ProtoMessage() {}
  2340  
  2341  func (x *OpaqueRoute_WeightedRouteBackend) ProtoReflect() protoreflect.Message {
  2342  	mi := &file_outbound_proto_msgTypes[34]
  2343  	if protoimpl.UnsafeEnabled && x != nil {
  2344  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2345  		if ms.LoadMessageInfo() == nil {
  2346  			ms.StoreMessageInfo(mi)
  2347  		}
  2348  		return ms
  2349  	}
  2350  	return mi.MessageOf(x)
  2351  }
  2352  
  2353  // Deprecated: Use OpaqueRoute_WeightedRouteBackend.ProtoReflect.Descriptor instead.
  2354  func (*OpaqueRoute_WeightedRouteBackend) Descriptor() ([]byte, []int) {
  2355  	return file_outbound_proto_rawDescGZIP(), []int{5, 3}
  2356  }
  2357  
  2358  func (x *OpaqueRoute_WeightedRouteBackend) GetBackend() *OpaqueRoute_RouteBackend {
  2359  	if x != nil {
  2360  		return x.Backend
  2361  	}
  2362  	return nil
  2363  }
  2364  
  2365  func (x *OpaqueRoute_WeightedRouteBackend) GetWeight() uint32 {
  2366  	if x != nil {
  2367  		return x.Weight
  2368  	}
  2369  	return 0
  2370  }
  2371  
  2372  type OpaqueRoute_Distribution_Empty struct {
  2373  	state         protoimpl.MessageState
  2374  	sizeCache     protoimpl.SizeCache
  2375  	unknownFields protoimpl.UnknownFields
  2376  }
  2377  
  2378  func (x *OpaqueRoute_Distribution_Empty) Reset() {
  2379  	*x = OpaqueRoute_Distribution_Empty{}
  2380  	if protoimpl.UnsafeEnabled {
  2381  		mi := &file_outbound_proto_msgTypes[35]
  2382  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2383  		ms.StoreMessageInfo(mi)
  2384  	}
  2385  }
  2386  
  2387  func (x *OpaqueRoute_Distribution_Empty) String() string {
  2388  	return protoimpl.X.MessageStringOf(x)
  2389  }
  2390  
  2391  func (*OpaqueRoute_Distribution_Empty) ProtoMessage() {}
  2392  
  2393  func (x *OpaqueRoute_Distribution_Empty) ProtoReflect() protoreflect.Message {
  2394  	mi := &file_outbound_proto_msgTypes[35]
  2395  	if protoimpl.UnsafeEnabled && x != nil {
  2396  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2397  		if ms.LoadMessageInfo() == nil {
  2398  			ms.StoreMessageInfo(mi)
  2399  		}
  2400  		return ms
  2401  	}
  2402  	return mi.MessageOf(x)
  2403  }
  2404  
  2405  // Deprecated: Use OpaqueRoute_Distribution_Empty.ProtoReflect.Descriptor instead.
  2406  func (*OpaqueRoute_Distribution_Empty) Descriptor() ([]byte, []int) {
  2407  	return file_outbound_proto_rawDescGZIP(), []int{5, 1, 0}
  2408  }
  2409  
  2410  type OpaqueRoute_Distribution_FirstAvailable struct {
  2411  	state         protoimpl.MessageState
  2412  	sizeCache     protoimpl.SizeCache
  2413  	unknownFields protoimpl.UnknownFields
  2414  
  2415  	Backends []*OpaqueRoute_RouteBackend `protobuf:"bytes,1,rep,name=backends,proto3" json:"backends,omitempty"`
  2416  }
  2417  
  2418  func (x *OpaqueRoute_Distribution_FirstAvailable) Reset() {
  2419  	*x = OpaqueRoute_Distribution_FirstAvailable{}
  2420  	if protoimpl.UnsafeEnabled {
  2421  		mi := &file_outbound_proto_msgTypes[36]
  2422  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2423  		ms.StoreMessageInfo(mi)
  2424  	}
  2425  }
  2426  
  2427  func (x *OpaqueRoute_Distribution_FirstAvailable) String() string {
  2428  	return protoimpl.X.MessageStringOf(x)
  2429  }
  2430  
  2431  func (*OpaqueRoute_Distribution_FirstAvailable) ProtoMessage() {}
  2432  
  2433  func (x *OpaqueRoute_Distribution_FirstAvailable) ProtoReflect() protoreflect.Message {
  2434  	mi := &file_outbound_proto_msgTypes[36]
  2435  	if protoimpl.UnsafeEnabled && x != nil {
  2436  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2437  		if ms.LoadMessageInfo() == nil {
  2438  			ms.StoreMessageInfo(mi)
  2439  		}
  2440  		return ms
  2441  	}
  2442  	return mi.MessageOf(x)
  2443  }
  2444  
  2445  // Deprecated: Use OpaqueRoute_Distribution_FirstAvailable.ProtoReflect.Descriptor instead.
  2446  func (*OpaqueRoute_Distribution_FirstAvailable) Descriptor() ([]byte, []int) {
  2447  	return file_outbound_proto_rawDescGZIP(), []int{5, 1, 1}
  2448  }
  2449  
  2450  func (x *OpaqueRoute_Distribution_FirstAvailable) GetBackends() []*OpaqueRoute_RouteBackend {
  2451  	if x != nil {
  2452  		return x.Backends
  2453  	}
  2454  	return nil
  2455  }
  2456  
  2457  type OpaqueRoute_Distribution_RandomAvailable struct {
  2458  	state         protoimpl.MessageState
  2459  	sizeCache     protoimpl.SizeCache
  2460  	unknownFields protoimpl.UnknownFields
  2461  
  2462  	Backends []*OpaqueRoute_WeightedRouteBackend `protobuf:"bytes,1,rep,name=backends,proto3" json:"backends,omitempty"`
  2463  }
  2464  
  2465  func (x *OpaqueRoute_Distribution_RandomAvailable) Reset() {
  2466  	*x = OpaqueRoute_Distribution_RandomAvailable{}
  2467  	if protoimpl.UnsafeEnabled {
  2468  		mi := &file_outbound_proto_msgTypes[37]
  2469  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2470  		ms.StoreMessageInfo(mi)
  2471  	}
  2472  }
  2473  
  2474  func (x *OpaqueRoute_Distribution_RandomAvailable) String() string {
  2475  	return protoimpl.X.MessageStringOf(x)
  2476  }
  2477  
  2478  func (*OpaqueRoute_Distribution_RandomAvailable) ProtoMessage() {}
  2479  
  2480  func (x *OpaqueRoute_Distribution_RandomAvailable) ProtoReflect() protoreflect.Message {
  2481  	mi := &file_outbound_proto_msgTypes[37]
  2482  	if protoimpl.UnsafeEnabled && x != nil {
  2483  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2484  		if ms.LoadMessageInfo() == nil {
  2485  			ms.StoreMessageInfo(mi)
  2486  		}
  2487  		return ms
  2488  	}
  2489  	return mi.MessageOf(x)
  2490  }
  2491  
  2492  // Deprecated: Use OpaqueRoute_Distribution_RandomAvailable.ProtoReflect.Descriptor instead.
  2493  func (*OpaqueRoute_Distribution_RandomAvailable) Descriptor() ([]byte, []int) {
  2494  	return file_outbound_proto_rawDescGZIP(), []int{5, 1, 2}
  2495  }
  2496  
  2497  func (x *OpaqueRoute_Distribution_RandomAvailable) GetBackends() []*OpaqueRoute_WeightedRouteBackend {
  2498  	if x != nil {
  2499  		return x.Backends
  2500  	}
  2501  	return nil
  2502  }
  2503  
  2504  // A strategy for discovering endpoints for a service.
  2505  type Backend_EndpointDiscovery struct {
  2506  	state         protoimpl.MessageState
  2507  	sizeCache     protoimpl.SizeCache
  2508  	unknownFields protoimpl.UnknownFields
  2509  
  2510  	// Types that are assignable to Kind:
  2511  	//
  2512  	//	*Backend_EndpointDiscovery_Dst
  2513  	Kind isBackend_EndpointDiscovery_Kind `protobuf_oneof:"kind"`
  2514  }
  2515  
  2516  func (x *Backend_EndpointDiscovery) Reset() {
  2517  	*x = Backend_EndpointDiscovery{}
  2518  	if protoimpl.UnsafeEnabled {
  2519  		mi := &file_outbound_proto_msgTypes[38]
  2520  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2521  		ms.StoreMessageInfo(mi)
  2522  	}
  2523  }
  2524  
  2525  func (x *Backend_EndpointDiscovery) String() string {
  2526  	return protoimpl.X.MessageStringOf(x)
  2527  }
  2528  
  2529  func (*Backend_EndpointDiscovery) ProtoMessage() {}
  2530  
  2531  func (x *Backend_EndpointDiscovery) ProtoReflect() protoreflect.Message {
  2532  	mi := &file_outbound_proto_msgTypes[38]
  2533  	if protoimpl.UnsafeEnabled && x != nil {
  2534  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2535  		if ms.LoadMessageInfo() == nil {
  2536  			ms.StoreMessageInfo(mi)
  2537  		}
  2538  		return ms
  2539  	}
  2540  	return mi.MessageOf(x)
  2541  }
  2542  
  2543  // Deprecated: Use Backend_EndpointDiscovery.ProtoReflect.Descriptor instead.
  2544  func (*Backend_EndpointDiscovery) Descriptor() ([]byte, []int) {
  2545  	return file_outbound_proto_rawDescGZIP(), []int{6, 0}
  2546  }
  2547  
  2548  func (m *Backend_EndpointDiscovery) GetKind() isBackend_EndpointDiscovery_Kind {
  2549  	if m != nil {
  2550  		return m.Kind
  2551  	}
  2552  	return nil
  2553  }
  2554  
  2555  func (x *Backend_EndpointDiscovery) GetDst() *Backend_EndpointDiscovery_DestinationGet {
  2556  	if x, ok := x.GetKind().(*Backend_EndpointDiscovery_Dst); ok {
  2557  		return x.Dst
  2558  	}
  2559  	return nil
  2560  }
  2561  
  2562  type isBackend_EndpointDiscovery_Kind interface {
  2563  	isBackend_EndpointDiscovery_Kind()
  2564  }
  2565  
  2566  type Backend_EndpointDiscovery_Dst struct {
  2567  	// Use the `Destination` service to discover endpoints for this service.
  2568  	Dst *Backend_EndpointDiscovery_DestinationGet `protobuf:"bytes,1,opt,name=dst,proto3,oneof"`
  2569  }
  2570  
  2571  func (*Backend_EndpointDiscovery_Dst) isBackend_EndpointDiscovery_Kind() {}
  2572  
  2573  // Describes a power-of-two-choices (P2C) load balancer configuration for a
  2574  // backend.
  2575  type Backend_BalanceP2C struct {
  2576  	state         protoimpl.MessageState
  2577  	sizeCache     protoimpl.SizeCache
  2578  	unknownFields protoimpl.UnknownFields
  2579  
  2580  	Discovery *Backend_EndpointDiscovery `protobuf:"bytes,1,opt,name=discovery,proto3" json:"discovery,omitempty"`
  2581  	// The load estimation strategy used by this load balancer.
  2582  	//
  2583  	// Types that are assignable to Load:
  2584  	//
  2585  	//	*Backend_BalanceP2C_PeakEwma_
  2586  	Load isBackend_BalanceP2C_Load `protobuf_oneof:"load"`
  2587  }
  2588  
  2589  func (x *Backend_BalanceP2C) Reset() {
  2590  	*x = Backend_BalanceP2C{}
  2591  	if protoimpl.UnsafeEnabled {
  2592  		mi := &file_outbound_proto_msgTypes[39]
  2593  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2594  		ms.StoreMessageInfo(mi)
  2595  	}
  2596  }
  2597  
  2598  func (x *Backend_BalanceP2C) String() string {
  2599  	return protoimpl.X.MessageStringOf(x)
  2600  }
  2601  
  2602  func (*Backend_BalanceP2C) ProtoMessage() {}
  2603  
  2604  func (x *Backend_BalanceP2C) ProtoReflect() protoreflect.Message {
  2605  	mi := &file_outbound_proto_msgTypes[39]
  2606  	if protoimpl.UnsafeEnabled && x != nil {
  2607  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2608  		if ms.LoadMessageInfo() == nil {
  2609  			ms.StoreMessageInfo(mi)
  2610  		}
  2611  		return ms
  2612  	}
  2613  	return mi.MessageOf(x)
  2614  }
  2615  
  2616  // Deprecated: Use Backend_BalanceP2C.ProtoReflect.Descriptor instead.
  2617  func (*Backend_BalanceP2C) Descriptor() ([]byte, []int) {
  2618  	return file_outbound_proto_rawDescGZIP(), []int{6, 1}
  2619  }
  2620  
  2621  func (x *Backend_BalanceP2C) GetDiscovery() *Backend_EndpointDiscovery {
  2622  	if x != nil {
  2623  		return x.Discovery
  2624  	}
  2625  	return nil
  2626  }
  2627  
  2628  func (m *Backend_BalanceP2C) GetLoad() isBackend_BalanceP2C_Load {
  2629  	if m != nil {
  2630  		return m.Load
  2631  	}
  2632  	return nil
  2633  }
  2634  
  2635  func (x *Backend_BalanceP2C) GetPeakEwma() *Backend_BalanceP2C_PeakEwma {
  2636  	if x, ok := x.GetLoad().(*Backend_BalanceP2C_PeakEwma_); ok {
  2637  		return x.PeakEwma
  2638  	}
  2639  	return nil
  2640  }
  2641  
  2642  type isBackend_BalanceP2C_Load interface {
  2643  	isBackend_BalanceP2C_Load()
  2644  }
  2645  
  2646  type Backend_BalanceP2C_PeakEwma_ struct {
  2647  	// This load balancer uses peak EWMA (exponentially weighted moving
  2648  	// average) load estimates.
  2649  	PeakEwma *Backend_BalanceP2C_PeakEwma `protobuf:"bytes,2,opt,name=peak_ewma,json=peakEwma,proto3,oneof"`
  2650  }
  2651  
  2652  func (*Backend_BalanceP2C_PeakEwma_) isBackend_BalanceP2C_Load() {}
  2653  
  2654  type Backend_EndpointDiscovery_DestinationGet struct {
  2655  	state         protoimpl.MessageState
  2656  	sizeCache     protoimpl.SizeCache
  2657  	unknownFields protoimpl.UnknownFields
  2658  
  2659  	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
  2660  }
  2661  
  2662  func (x *Backend_EndpointDiscovery_DestinationGet) Reset() {
  2663  	*x = Backend_EndpointDiscovery_DestinationGet{}
  2664  	if protoimpl.UnsafeEnabled {
  2665  		mi := &file_outbound_proto_msgTypes[40]
  2666  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2667  		ms.StoreMessageInfo(mi)
  2668  	}
  2669  }
  2670  
  2671  func (x *Backend_EndpointDiscovery_DestinationGet) String() string {
  2672  	return protoimpl.X.MessageStringOf(x)
  2673  }
  2674  
  2675  func (*Backend_EndpointDiscovery_DestinationGet) ProtoMessage() {}
  2676  
  2677  func (x *Backend_EndpointDiscovery_DestinationGet) ProtoReflect() protoreflect.Message {
  2678  	mi := &file_outbound_proto_msgTypes[40]
  2679  	if protoimpl.UnsafeEnabled && x != nil {
  2680  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2681  		if ms.LoadMessageInfo() == nil {
  2682  			ms.StoreMessageInfo(mi)
  2683  		}
  2684  		return ms
  2685  	}
  2686  	return mi.MessageOf(x)
  2687  }
  2688  
  2689  // Deprecated: Use Backend_EndpointDiscovery_DestinationGet.ProtoReflect.Descriptor instead.
  2690  func (*Backend_EndpointDiscovery_DestinationGet) Descriptor() ([]byte, []int) {
  2691  	return file_outbound_proto_rawDescGZIP(), []int{6, 0, 0}
  2692  }
  2693  
  2694  func (x *Backend_EndpointDiscovery_DestinationGet) GetPath() string {
  2695  	if x != nil {
  2696  		return x.Path
  2697  	}
  2698  	return ""
  2699  }
  2700  
  2701  // Parameters configuring peak EWMA load estimation.
  2702  type Backend_BalanceP2C_PeakEwma struct {
  2703  	state         protoimpl.MessageState
  2704  	sizeCache     protoimpl.SizeCache
  2705  	unknownFields protoimpl.UnknownFields
  2706  
  2707  	// Initial latency value used when no latencies have been
  2708  	// recorded for an endpoint.
  2709  	DefaultRtt *duration.Duration `protobuf:"bytes,1,opt,name=default_rtt,json=defaultRtt,proto3" json:"default_rtt,omitempty"`
  2710  	// The duration of the moving window over which latency is observed.
  2711  	Decay *duration.Duration `protobuf:"bytes,2,opt,name=decay,proto3" json:"decay,omitempty"`
  2712  }
  2713  
  2714  func (x *Backend_BalanceP2C_PeakEwma) Reset() {
  2715  	*x = Backend_BalanceP2C_PeakEwma{}
  2716  	if protoimpl.UnsafeEnabled {
  2717  		mi := &file_outbound_proto_msgTypes[41]
  2718  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2719  		ms.StoreMessageInfo(mi)
  2720  	}
  2721  }
  2722  
  2723  func (x *Backend_BalanceP2C_PeakEwma) String() string {
  2724  	return protoimpl.X.MessageStringOf(x)
  2725  }
  2726  
  2727  func (*Backend_BalanceP2C_PeakEwma) ProtoMessage() {}
  2728  
  2729  func (x *Backend_BalanceP2C_PeakEwma) ProtoReflect() protoreflect.Message {
  2730  	mi := &file_outbound_proto_msgTypes[41]
  2731  	if protoimpl.UnsafeEnabled && x != nil {
  2732  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2733  		if ms.LoadMessageInfo() == nil {
  2734  			ms.StoreMessageInfo(mi)
  2735  		}
  2736  		return ms
  2737  	}
  2738  	return mi.MessageOf(x)
  2739  }
  2740  
  2741  // Deprecated: Use Backend_BalanceP2C_PeakEwma.ProtoReflect.Descriptor instead.
  2742  func (*Backend_BalanceP2C_PeakEwma) Descriptor() ([]byte, []int) {
  2743  	return file_outbound_proto_rawDescGZIP(), []int{6, 1, 0}
  2744  }
  2745  
  2746  func (x *Backend_BalanceP2C_PeakEwma) GetDefaultRtt() *duration.Duration {
  2747  	if x != nil {
  2748  		return x.DefaultRtt
  2749  	}
  2750  	return nil
  2751  }
  2752  
  2753  func (x *Backend_BalanceP2C_PeakEwma) GetDecay() *duration.Duration {
  2754  	if x != nil {
  2755  		return x.Decay
  2756  	}
  2757  	return nil
  2758  }
  2759  
  2760  type FailureAccrual_ConsecutiveFailures struct {
  2761  	state         protoimpl.MessageState
  2762  	sizeCache     protoimpl.SizeCache
  2763  	unknownFields protoimpl.UnknownFields
  2764  
  2765  	MaxFailures uint32              `protobuf:"varint,1,opt,name=max_failures,json=maxFailures,proto3" json:"max_failures,omitempty"`
  2766  	Backoff     *ExponentialBackoff `protobuf:"bytes,2,opt,name=backoff,proto3" json:"backoff,omitempty"`
  2767  }
  2768  
  2769  func (x *FailureAccrual_ConsecutiveFailures) Reset() {
  2770  	*x = FailureAccrual_ConsecutiveFailures{}
  2771  	if protoimpl.UnsafeEnabled {
  2772  		mi := &file_outbound_proto_msgTypes[42]
  2773  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2774  		ms.StoreMessageInfo(mi)
  2775  	}
  2776  }
  2777  
  2778  func (x *FailureAccrual_ConsecutiveFailures) String() string {
  2779  	return protoimpl.X.MessageStringOf(x)
  2780  }
  2781  
  2782  func (*FailureAccrual_ConsecutiveFailures) ProtoMessage() {}
  2783  
  2784  func (x *FailureAccrual_ConsecutiveFailures) ProtoReflect() protoreflect.Message {
  2785  	mi := &file_outbound_proto_msgTypes[42]
  2786  	if protoimpl.UnsafeEnabled && x != nil {
  2787  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2788  		if ms.LoadMessageInfo() == nil {
  2789  			ms.StoreMessageInfo(mi)
  2790  		}
  2791  		return ms
  2792  	}
  2793  	return mi.MessageOf(x)
  2794  }
  2795  
  2796  // Deprecated: Use FailureAccrual_ConsecutiveFailures.ProtoReflect.Descriptor instead.
  2797  func (*FailureAccrual_ConsecutiveFailures) Descriptor() ([]byte, []int) {
  2798  	return file_outbound_proto_rawDescGZIP(), []int{8, 0}
  2799  }
  2800  
  2801  func (x *FailureAccrual_ConsecutiveFailures) GetMaxFailures() uint32 {
  2802  	if x != nil {
  2803  		return x.MaxFailures
  2804  	}
  2805  	return 0
  2806  }
  2807  
  2808  func (x *FailureAccrual_ConsecutiveFailures) GetBackoff() *ExponentialBackoff {
  2809  	if x != nil {
  2810  		return x.Backoff
  2811  	}
  2812  	return nil
  2813  }
  2814  
  2815  var File_outbound_proto protoreflect.FileDescriptor
  2816  
  2817  var file_outbound_proto_rawDesc = []byte{
  2818  	0x0a, 0x0e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
  2819  	0x12, 0x19, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f,
  2820  	0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x1a, 0x09, 0x6e, 0x65, 0x74,
  2821  	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74,
  2822  	0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x2e,
  2823  	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x10, 0x67, 0x72, 0x70, 0x63, 0x5f, 0x72, 0x6f, 0x75, 0x74,
  2824  	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x10, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x72, 0x6f,
  2825  	0x75, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  2826  	0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74,
  2827  	0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x98, 0x01, 0x0a, 0x0b, 0x54, 0x72,
  2828  	0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x6f, 0x75,
  2829  	0x72, 0x63, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01,
  2830  	0x28, 0x09, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f,
  2831  	0x61, 0x64, 0x12, 0x36, 0x0a, 0x04, 0x61, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
  2832  	0x32, 0x20, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72,
  2833  	0x6f, 0x78, 0x79, 0x2e, 0x6e, 0x65, 0x74, 0x2e, 0x54, 0x63, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65,
  2834  	0x73, 0x73, 0x48, 0x00, 0x52, 0x04, 0x61, 0x64, 0x64, 0x72, 0x12, 0x1e, 0x0a, 0x09, 0x61, 0x75,
  2835  	0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52,
  2836  	0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x08, 0x0a, 0x06, 0x74, 0x61,
  2837  	0x72, 0x67, 0x65, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x0e, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e,
  2838  	0x64, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x44, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f,
  2839  	0x63, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x69, 0x6f, 0x2e, 0x6c,
  2840  	0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74,
  2841  	0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f,
  2842  	0x63, 0x6f, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x3b, 0x0a,
  2843  	0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
  2844  	0x1f, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f,
  2845  	0x78, 0x79, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
  2846  	0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xb4, 0x09, 0x0a, 0x0d, 0x50,
  2847  	0x72, 0x6f, 0x78, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x49, 0x0a, 0x06,
  2848  	0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x69,
  2849  	0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e,
  2850  	0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x50, 0x72,
  2851  	0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x48, 0x00, 0x52,
  2852  	0x06, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x12, 0x49, 0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75,
  2853  	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e,
  2854  	0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f,
  2855  	0x75, 0x6e, 0x64, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f,
  2856  	0x6c, 0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x70, 0x61, 0x71,
  2857  	0x75, 0x65, 0x12, 0x46, 0x0a, 0x05, 0x68, 0x74, 0x74, 0x70, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28,
  2858  	0x0b, 0x32, 0x2e, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70,
  2859  	0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x50, 0x72,
  2860  	0x6f, 0x78, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x48, 0x74, 0x74, 0x70,
  2861  	0x31, 0x48, 0x00, 0x52, 0x05, 0x68, 0x74, 0x74, 0x70, 0x31, 0x12, 0x46, 0x0a, 0x05, 0x68, 0x74,
  2862  	0x74, 0x70, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x69, 0x6f, 0x2e, 0x6c,
  2863  	0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74,
  2864  	0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f,
  2865  	0x63, 0x6f, 0x6c, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x32, 0x48, 0x00, 0x52, 0x05, 0x68, 0x74, 0x74,
  2866  	0x70, 0x32, 0x12, 0x43, 0x0a, 0x04, 0x67, 0x72, 0x70, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b,
  2867  	0x32, 0x2d, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72,
  2868  	0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x50, 0x72, 0x6f,
  2869  	0x78, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x47, 0x72, 0x70, 0x63, 0x48,
  2870  	0x00, 0x52, 0x04, 0x67, 0x72, 0x70, 0x63, 0x1a, 0x92, 0x02, 0x0a, 0x06, 0x44, 0x65, 0x74, 0x65,
  2871  	0x63, 0x74, 0x12, 0x33, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x01, 0x20,
  2872  	0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
  2873  	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07,
  2874  	0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x47, 0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75,
  2875  	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e,
  2876  	0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f,
  2877  	0x75, 0x6e, 0x64, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f,
  2878  	0x6c, 0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x52, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65,
  2879  	0x12, 0x44, 0x0a, 0x05, 0x68, 0x74, 0x74, 0x70, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
  2880  	0x2e, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f,
  2881  	0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x50, 0x72, 0x6f, 0x78,
  2882  	0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x31, 0x52,
  2883  	0x05, 0x68, 0x74, 0x74, 0x70, 0x31, 0x12, 0x44, 0x0a, 0x05, 0x68, 0x74, 0x74, 0x70, 0x32, 0x18,
  2884  	0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65,
  2885  	0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e,
  2886  	0x64, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e,
  2887  	0x48, 0x74, 0x74, 0x70, 0x32, 0x52, 0x05, 0x68, 0x74, 0x74, 0x70, 0x32, 0x1a, 0x48, 0x0a, 0x06,
  2888  	0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73,
  2889  	0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b,
  2890  	0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75,
  2891  	0x6e, 0x64, 0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x06,
  2892  	0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x1a, 0x99, 0x01, 0x0a, 0x05, 0x48, 0x74, 0x74, 0x70, 0x31,
  2893  	0x12, 0x3c, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
  2894  	0x32, 0x24, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72,
  2895  	0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x48, 0x74, 0x74,
  2896  	0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x52,
  2897  	0x0a, 0x0f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x72, 0x75, 0x61,
  2898  	0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e,
  2899  	0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f,
  2900  	0x75, 0x6e, 0x64, 0x2e, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x41, 0x63, 0x63, 0x72, 0x75,
  2901  	0x61, 0x6c, 0x52, 0x0e, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x41, 0x63, 0x63, 0x72, 0x75,
  2902  	0x61, 0x6c, 0x1a, 0x99, 0x01, 0x0a, 0x05, 0x48, 0x74, 0x74, 0x70, 0x32, 0x12, 0x3c, 0x0a, 0x06,
  2903  	0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69,
  2904  	0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e,
  2905  	0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x52, 0x6f, 0x75,
  2906  	0x74, 0x65, 0x52, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x52, 0x0a, 0x0f, 0x66, 0x61,
  2907  	0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x72, 0x75, 0x61, 0x6c, 0x18, 0x02, 0x20,
  2908  	0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64,
  2909  	0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e,
  2910  	0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x41, 0x63, 0x63, 0x72, 0x75, 0x61, 0x6c, 0x52, 0x0e,
  2911  	0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x41, 0x63, 0x63, 0x72, 0x75, 0x61, 0x6c, 0x1a, 0x98,
  2912  	0x01, 0x0a, 0x04, 0x47, 0x72, 0x70, 0x63, 0x12, 0x3c, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65,
  2913  	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e,
  2914  	0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f,
  2915  	0x75, 0x6e, 0x64, 0x2e, 0x47, 0x72, 0x70, 0x63, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x06, 0x72,
  2916  	0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x52, 0x0a, 0x0f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65,
  2917  	0x5f, 0x61, 0x63, 0x63, 0x72, 0x75, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29,
  2918  	0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78,
  2919  	0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x46, 0x61, 0x69, 0x6c, 0x75,
  2920  	0x72, 0x65, 0x41, 0x63, 0x63, 0x72, 0x75, 0x61, 0x6c, 0x52, 0x0e, 0x66, 0x61, 0x69, 0x6c, 0x75,
  2921  	0x72, 0x65, 0x41, 0x63, 0x63, 0x72, 0x75, 0x61, 0x6c, 0x42, 0x06, 0x0a, 0x04, 0x6b, 0x69, 0x6e,
  2922  	0x64, 0x22, 0xfe, 0x0d, 0x0a, 0x09, 0x48, 0x74, 0x74, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12,
  2923  	0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28,
  2924  	0x0b, 0x32, 0x1f, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70,
  2925  	0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61,
  2926  	0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3c, 0x0a, 0x05,
  2927  	0x68, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6f,
  2928  	0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x68,
  2929  	0x74, 0x74, 0x70, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x4d, 0x61,
  2930  	0x74, 0x63, 0x68, 0x52, 0x05, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x3f, 0x0a, 0x05, 0x72, 0x75,
  2931  	0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6f, 0x2e, 0x6c,
  2932  	0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74,
  2933  	0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x2e,
  2934  	0x52, 0x75, 0x6c, 0x65, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0xa6, 0x02, 0x0a, 0x04,
  2935  	0x52, 0x75, 0x6c, 0x65, 0x12, 0x45, 0x0a, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x18,
  2936  	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65,
  2937  	0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x72, 0x6f,
  2938  	0x75, 0x74, 0x65, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x74,
  2939  	0x63, 0x68, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x07, 0x66,
  2940  	0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69,
  2941  	0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e,
  2942  	0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x52, 0x6f, 0x75,
  2943  	0x74, 0x65, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65,
  2944  	0x72, 0x73, 0x12, 0x4d, 0x0a, 0x08, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x73, 0x18, 0x03,
  2945  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72,
  2946  	0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64,
  2947  	0x2e, 0x48, 0x74, 0x74, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72,
  2948  	0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64,
  2949  	0x73, 0x12, 0x41, 0x0a, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65,
  2950  	0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
  2951  	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61,
  2952  	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x69, 0x6d,
  2953  	0x65, 0x6f, 0x75, 0x74, 0x1a, 0x9a, 0x03, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12,
  2954  	0x5d, 0x0a, 0x10, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x6e, 0x6a, 0x65, 0x63,
  2955  	0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x69, 0x6f, 0x2e, 0x6c,
  2956  	0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x68, 0x74, 0x74,
  2957  	0x70, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x46, 0x61, 0x69, 0x6c,
  2958  	0x75, 0x72, 0x65, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x66,
  2959  	0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x6c,
  2960  	0x0a, 0x17, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72,
  2961  	0x5f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
  2962  	0x32, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f,
  2963  	0x78, 0x79, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x65,
  2964  	0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66,
  2965  	0x69, 0x65, 0x72, 0x48, 0x00, 0x52, 0x15, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65,
  2966  	0x61, 0x64, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x08,
  2967  	0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c,
  2968  	0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78,
  2969  	0x79, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x71,
  2970  	0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x48, 0x00, 0x52, 0x08,
  2971  	0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x12, 0x6f, 0x0a, 0x18, 0x72, 0x65, 0x73, 0x70,
  2972  	0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x69,
  2973  	0x66, 0x69, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x69, 0x6f, 0x2e,
  2974  	0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x68, 0x74,
  2975  	0x74, 0x70, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
  2976  	0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x48,
  2977  	0x00, 0x52, 0x16, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65,
  2978  	0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0x06, 0x0a, 0x04, 0x6b, 0x69, 0x6e,
  2979  	0x64, 0x1a, 0x98, 0x04, 0x0a, 0x0c, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69,
  2980  	0x6f, 0x6e, 0x12, 0x4f, 0x0a, 0x05, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
  2981  	0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70,
  2982  	0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x48, 0x74,
  2983  	0x74, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75,
  2984  	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x05, 0x65, 0x6d,
  2985  	0x70, 0x74, 0x79, 0x12, 0x6b, 0x0a, 0x0f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x61, 0x76, 0x61,
  2986  	0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x69,
  2987  	0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e,
  2988  	0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x52, 0x6f, 0x75,
  2989  	0x74, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
  2990  	0x46, 0x69, 0x72, 0x73, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x00,
  2991  	0x52, 0x0e, 0x66, 0x69, 0x72, 0x73, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65,
  2992  	0x12, 0x6e, 0x0a, 0x10, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c,
  2993  	0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x69, 0x6f, 0x2e,
  2994  	0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75,
  2995  	0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65,
  2996  	0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x61,
  2997  	0x6e, 0x64, 0x6f, 0x6d, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x00, 0x52,
  2998  	0x0f, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65,
  2999  	0x1a, 0x07, 0x0a, 0x05, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x5f, 0x0a, 0x0e, 0x46, 0x69, 0x72,
  3000  	0x73, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x4d, 0x0a, 0x08, 0x62,
  3001  	0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e,
  3002  	0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79,
  3003  	0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x52, 0x6f,
  3004  	0x75, 0x74, 0x65, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64,
  3005  	0x52, 0x08, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x73, 0x1a, 0x68, 0x0a, 0x0f, 0x52, 0x61,
  3006  	0x6e, 0x64, 0x6f, 0x6d, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x55, 0x0a,
  3007  	0x08, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
  3008  	0x39, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f,
  3009  	0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x48, 0x74, 0x74, 0x70,
  3010  	0x52, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x52, 0x6f,
  3011  	0x75, 0x74, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x52, 0x08, 0x62, 0x61, 0x63, 0x6b,
  3012  	0x65, 0x6e, 0x64, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x1a, 0xd6, 0x01, 0x0a,
  3013  	0x0c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x3c, 0x0a,
  3014  	0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22,
  3015  	0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78,
  3016  	0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x65,
  3017  	0x6e, 0x64, 0x52, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x45, 0x0a, 0x07, 0x66,
  3018  	0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69,
  3019  	0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e,
  3020  	0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x52, 0x6f, 0x75,
  3021  	0x74, 0x65, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65,
  3022  	0x72, 0x73, 0x12, 0x41, 0x0a, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x69, 0x6d,
  3023  	0x65, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f,
  3024  	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72,
  3025  	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x69,
  3026  	0x6d, 0x65, 0x6f, 0x75, 0x74, 0x1a, 0x7b, 0x0a, 0x14, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65,
  3027  	0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x4b, 0x0a,
  3028  	0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31,
  3029  	0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78,
  3030  	0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x52,
  3031  	0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e,
  3032  	0x64, 0x52, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x65,
  3033  	0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67,
  3034  	0x68, 0x74, 0x22, 0xc1, 0x0c, 0x0a, 0x09, 0x47, 0x72, 0x70, 0x63, 0x52, 0x6f, 0x75, 0x74, 0x65,
  3035  	0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01,
  3036  	0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e,
  3037  	0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64,
  3038  	0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3c, 0x0a,
  3039  	0x05, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69,
  3040  	0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e,
  3041  	0x68, 0x74, 0x74, 0x70, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x4d,
  3042  	0x61, 0x74, 0x63, 0x68, 0x52, 0x05, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x3f, 0x0a, 0x05, 0x72,
  3043  	0x75, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6f, 0x2e,
  3044  	0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75,
  3045  	0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x47, 0x72, 0x70, 0x63, 0x52, 0x6f, 0x75, 0x74, 0x65,
  3046  	0x2e, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0xa6, 0x02, 0x0a,
  3047  	0x04, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x45, 0x0a, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73,
  3048  	0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b,
  3049  	0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x5f, 0x72,
  3050  	0x6f, 0x75, 0x74, 0x65, 0x2e, 0x47, 0x72, 0x70, 0x63, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61,
  3051  	0x74, 0x63, 0x68, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x07,
  3052  	0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e,
  3053  	0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79,
  3054  	0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x47, 0x72, 0x70, 0x63, 0x52, 0x6f,
  3055  	0x75, 0x74, 0x65, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74,
  3056  	0x65, 0x72, 0x73, 0x12, 0x4d, 0x0a, 0x08, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x73, 0x18,
  3057  	0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65,
  3058  	0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e,
  3059  	0x64, 0x2e, 0x47, 0x72, 0x70, 0x63, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x74,
  3060  	0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e,
  3061  	0x64, 0x73, 0x12, 0x41, 0x0a, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x69, 0x6d,
  3062  	0x65, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f,
  3063  	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72,
  3064  	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x69,
  3065  	0x6d, 0x65, 0x6f, 0x75, 0x74, 0x1a, 0xdd, 0x01, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72,
  3066  	0x12, 0x5d, 0x0a, 0x10, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x6e, 0x6a, 0x65,
  3067  	0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x69, 0x6f, 0x2e,
  3068  	0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x67, 0x72,
  3069  	0x70, 0x63, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x47, 0x72, 0x70, 0x63, 0x46, 0x61, 0x69,
  3070  	0x6c, 0x75, 0x72, 0x65, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0f,
  3071  	0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12,
  3072  	0x6c, 0x0a, 0x17, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65,
  3073  	0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
  3074  	0x32, 0x32, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72,
  3075  	0x6f, 0x78, 0x79, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52,
  3076  	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69,
  3077  	0x66, 0x69, 0x65, 0x72, 0x48, 0x00, 0x52, 0x15, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48,
  3078  	0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0x06, 0x0a,
  3079  	0x04, 0x6b, 0x69, 0x6e, 0x64, 0x1a, 0x98, 0x04, 0x0a, 0x0c, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69,
  3080  	0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4f, 0x0a, 0x05, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18,
  3081  	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65,
  3082  	0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e,
  3083  	0x64, 0x2e, 0x47, 0x72, 0x70, 0x63, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x74,
  3084  	0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00,
  3085  	0x52, 0x05, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x6b, 0x0a, 0x0f, 0x66, 0x69, 0x72, 0x73, 0x74,
  3086  	0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
  3087  	0x32, 0x40, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72,
  3088  	0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x47, 0x72, 0x70,
  3089  	0x63, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
  3090  	0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62,
  3091  	0x6c, 0x65, 0x48, 0x00, 0x52, 0x0e, 0x66, 0x69, 0x72, 0x73, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c,
  3092  	0x61, 0x62, 0x6c, 0x65, 0x12, 0x6e, 0x0a, 0x10, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x5f, 0x61,
  3093  	0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41,
  3094  	0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78,
  3095  	0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x47, 0x72, 0x70, 0x63, 0x52,
  3096  	0x6f, 0x75, 0x74, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f,
  3097  	0x6e, 0x2e, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c,
  3098  	0x65, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x41, 0x76, 0x61, 0x69, 0x6c,
  3099  	0x61, 0x62, 0x6c, 0x65, 0x1a, 0x07, 0x0a, 0x05, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x5f, 0x0a,
  3100  	0x0e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12,
  3101  	0x4d, 0x0a, 0x08, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
  3102  	0x0b, 0x32, 0x31, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70,
  3103  	0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x47, 0x72,
  3104  	0x70, 0x63, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x42, 0x61, 0x63,
  3105  	0x6b, 0x65, 0x6e, 0x64, 0x52, 0x08, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x73, 0x1a, 0x68,
  3106  	0x0a, 0x0f, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c,
  3107  	0x65, 0x12, 0x55, 0x0a, 0x08, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20,
  3108  	0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64,
  3109  	0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e,
  3110  	0x47, 0x72, 0x70, 0x63, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74,
  3111  	0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x52, 0x08,
  3112  	0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64,
  3113  	0x1a, 0xd6, 0x01, 0x0a, 0x0c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e,
  3114  	0x64, 0x12, 0x3c, 0x0a, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01,
  3115  	0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e,
  3116  	0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x42,
  3117  	0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x52, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12,
  3118  	0x45, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b,
  3119  	0x32, 0x2b, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72,
  3120  	0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x47, 0x72, 0x70,
  3121  	0x63, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66,
  3122  	0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x41, 0x0a, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
  3123  	0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
  3124  	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
  3125  	0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x65,
  3126  	0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x1a, 0x7b, 0x0a, 0x14, 0x57, 0x65, 0x69,
  3127  	0x67, 0x68, 0x74, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e,
  3128  	0x64, 0x12, 0x4b, 0x0a, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01,
  3129  	0x28, 0x0b, 0x32, 0x31, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e,
  3130  	0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x47,
  3131  	0x72, 0x70, 0x63, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x42, 0x61,
  3132  	0x63, 0x6b, 0x65, 0x6e, 0x64, 0x52, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x16,
  3133  	0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06,
  3134  	0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0xd8, 0x07, 0x0a, 0x0b, 0x4f, 0x70, 0x61, 0x71, 0x75,
  3135  	0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61,
  3136  	0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69,
  3137  	0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6d, 0x65, 0x74, 0x61,
  3138  	0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64,
  3139  	0x61, 0x74, 0x61, 0x12, 0x41, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03,
  3140  	0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e,
  3141  	0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x4f,
  3142  	0x70, 0x61, 0x71, 0x75, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x52,
  3143  	0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x57, 0x0a, 0x04, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x4f,
  3144  	0x0a, 0x08, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
  3145  	0x32, 0x33, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72,
  3146  	0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x4f, 0x70, 0x61,
  3147  	0x71, 0x75, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62,
  3148  	0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x73, 0x1a,
  3149  	0xa2, 0x04, 0x0a, 0x0c, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e,
  3150  	0x12, 0x51, 0x0a, 0x05, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
  3151  	0x39, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f,
  3152  	0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x4f, 0x70, 0x61, 0x71,
  3153  	0x75, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75,
  3154  	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x05, 0x65, 0x6d,
  3155  	0x70, 0x74, 0x79, 0x12, 0x6d, 0x0a, 0x0f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x61, 0x76, 0x61,
  3156  	0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x69,
  3157  	0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e,
  3158  	0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x52,
  3159  	0x6f, 0x75, 0x74, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f,
  3160  	0x6e, 0x2e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65,
  3161  	0x48, 0x00, 0x52, 0x0e, 0x66, 0x69, 0x72, 0x73, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62,
  3162  	0x6c, 0x65, 0x12, 0x70, 0x0a, 0x10, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x5f, 0x61, 0x76, 0x61,
  3163  	0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x69,
  3164  	0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e,
  3165  	0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x52,
  3166  	0x6f, 0x75, 0x74, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f,
  3167  	0x6e, 0x2e, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c,
  3168  	0x65, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x41, 0x76, 0x61, 0x69, 0x6c,
  3169  	0x61, 0x62, 0x6c, 0x65, 0x1a, 0x07, 0x0a, 0x05, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x61, 0x0a,
  3170  	0x0e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12,
  3171  	0x4f, 0x0a, 0x08, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
  3172  	0x0b, 0x32, 0x33, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70,
  3173  	0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x4f, 0x70,
  3174  	0x61, 0x71, 0x75, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x42,
  3175  	0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x52, 0x08, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x73,
  3176  	0x1a, 0x6a, 0x0a, 0x0f, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61,
  3177  	0x62, 0x6c, 0x65, 0x12, 0x57, 0x0a, 0x08, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x73, 0x18,
  3178  	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65,
  3179  	0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e,
  3180  	0x64, 0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x57, 0x65,
  3181  	0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x65,
  3182  	0x6e, 0x64, 0x52, 0x08, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x73, 0x42, 0x06, 0x0a, 0x04,
  3183  	0x6b, 0x69, 0x6e, 0x64, 0x1a, 0x4c, 0x0a, 0x0c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x42, 0x61, 0x63,
  3184  	0x6b, 0x65, 0x6e, 0x64, 0x12, 0x3c, 0x0a, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18,
  3185  	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65,
  3186  	0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e,
  3187  	0x64, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x52, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65,
  3188  	0x6e, 0x64, 0x1a, 0x7d, 0x0a, 0x14, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x52, 0x6f,
  3189  	0x75, 0x74, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x4d, 0x0a, 0x07, 0x62, 0x61,
  3190  	0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x69, 0x6f,
  3191  	0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6f,
  3192  	0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x52, 0x6f,
  3193  	0x75, 0x74, 0x65, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64,
  3194  	0x52, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x65, 0x69,
  3195  	0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68,
  3196  	0x74, 0x22, 0xf3, 0x05, 0x0a, 0x07, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x3b, 0x0a,
  3197  	0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
  3198  	0x1f, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f,
  3199  	0x78, 0x79, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
  3200  	0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x46, 0x0a, 0x07, 0x66, 0x6f,
  3201  	0x72, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6f,
  3202  	0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x64,
  3203  	0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x57, 0x65, 0x69, 0x67, 0x68,
  3204  	0x74, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x48, 0x00, 0x52, 0x07, 0x66, 0x6f, 0x72, 0x77, 0x61,
  3205  	0x72, 0x64, 0x12, 0x4b, 0x0a, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x18, 0x03,
  3206  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72,
  3207  	0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64,
  3208  	0x2e, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65,
  3209  	0x50, 0x32, 0x63, 0x48, 0x00, 0x52, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x12,
  3210  	0x36, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20,
  3211  	0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78,
  3212  	0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65,
  3213  	0x52, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x1a, 0x9a, 0x01, 0x0a, 0x11, 0x45, 0x6e, 0x64, 0x70,
  3214  	0x6f, 0x69, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x12, 0x57, 0x0a,
  3215  	0x03, 0x64, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x69, 0x6f, 0x2e,
  3216  	0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75,
  3217  	0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x45,
  3218  	0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79,
  3219  	0x2e, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x65, 0x74, 0x48,
  3220  	0x00, 0x52, 0x03, 0x64, 0x73, 0x74, 0x1a, 0x24, 0x0a, 0x0e, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e,
  3221  	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68,
  3222  	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x42, 0x06, 0x0a, 0x04,
  3223  	0x6b, 0x69, 0x6e, 0x64, 0x1a, 0xb8, 0x02, 0x0a, 0x0a, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65,
  3224  	0x50, 0x32, 0x63, 0x12, 0x52, 0x0a, 0x09, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79,
  3225  	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b,
  3226  	0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75,
  3227  	0x6e, 0x64, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f,
  3228  	0x69, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x52, 0x09, 0x64, 0x69,
  3229  	0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x12, 0x55, 0x0a, 0x09, 0x70, 0x65, 0x61, 0x6b, 0x5f,
  3230  	0x65, 0x77, 0x6d, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x69, 0x6f, 0x2e,
  3231  	0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75,
  3232  	0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x42,
  3233  	0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x32, 0x63, 0x2e, 0x50, 0x65, 0x61, 0x6b, 0x45, 0x77,
  3234  	0x6d, 0x61, 0x48, 0x00, 0x52, 0x08, 0x70, 0x65, 0x61, 0x6b, 0x45, 0x77, 0x6d, 0x61, 0x1a, 0x77,
  3235  	0x0a, 0x08, 0x50, 0x65, 0x61, 0x6b, 0x45, 0x77, 0x6d, 0x61, 0x12, 0x3a, 0x0a, 0x0b, 0x64, 0x65,
  3236  	0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x72, 0x74, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
  3237  	0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
  3238  	0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x64, 0x65, 0x66, 0x61,
  3239  	0x75, 0x6c, 0x74, 0x52, 0x74, 0x74, 0x12, 0x2f, 0x0a, 0x05, 0x64, 0x65, 0x63, 0x61, 0x79, 0x18,
  3240  	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
  3241  	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
  3242  	0x52, 0x05, 0x64, 0x65, 0x63, 0x61, 0x79, 0x42, 0x06, 0x0a, 0x04, 0x6c, 0x6f, 0x61, 0x64, 0x42,
  3243  	0x06, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0x69, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x75, 0x65,
  3244  	0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01,
  3245  	0x28, 0x0d, 0x52, 0x08, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x44, 0x0a, 0x10,
  3246  	0x66, 0x61, 0x69, 0x6c, 0x66, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74,
  3247  	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
  3248  	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
  3249  	0x6e, 0x52, 0x0f, 0x66, 0x61, 0x69, 0x6c, 0x66, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f,
  3250  	0x75, 0x74, 0x22, 0x90, 0x02, 0x0a, 0x0e, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x41, 0x63,
  3251  	0x63, 0x72, 0x75, 0x61, 0x6c, 0x12, 0x72, 0x0a, 0x14, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x63, 0x75,
  3252  	0x74, 0x69, 0x76, 0x65, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x73, 0x18, 0x01, 0x20,
  3253  	0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64,
  3254  	0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e,
  3255  	0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x41, 0x63, 0x63, 0x72, 0x75, 0x61, 0x6c, 0x2e, 0x43,
  3256  	0x6f, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x74, 0x69, 0x76, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72,
  3257  	0x65, 0x73, 0x48, 0x00, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x74, 0x69, 0x76,
  3258  	0x65, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x73, 0x1a, 0x81, 0x01, 0x0a, 0x13, 0x43, 0x6f,
  3259  	0x6e, 0x73, 0x65, 0x63, 0x75, 0x74, 0x69, 0x76, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65,
  3260  	0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65,
  3261  	0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x46, 0x61, 0x69, 0x6c,
  3262  	0x75, 0x72, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x18,
  3263  	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65,
  3264  	0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e,
  3265  	0x64, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x42, 0x61, 0x63,
  3266  	0x6b, 0x6f, 0x66, 0x66, 0x52, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x42, 0x06, 0x0a,
  3267  	0x04, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0xaf, 0x01, 0x0a, 0x12, 0x45, 0x78, 0x70, 0x6f, 0x6e, 0x65,
  3268  	0x6e, 0x74, 0x69, 0x61, 0x6c, 0x42, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x12, 0x3a, 0x0a, 0x0b,
  3269  	0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28,
  3270  	0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
  3271  	0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x6d, 0x69,
  3272  	0x6e, 0x42, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x12, 0x3a, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f,
  3273  	0x62, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
  3274  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
  3275  	0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x42, 0x61, 0x63,
  3276  	0x6b, 0x6f, 0x66, 0x66, 0x12, 0x21, 0x0a, 0x0c, 0x6a, 0x69, 0x74, 0x74, 0x65, 0x72, 0x5f, 0x72,
  3277  	0x61, 0x74, 0x69, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x6a, 0x69, 0x74, 0x74,
  3278  	0x65, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x32, 0xce, 0x01, 0x0a, 0x10, 0x4f, 0x75, 0x74, 0x62,
  3279  	0x6f, 0x75, 0x6e, 0x64, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x5a, 0x0a, 0x03,
  3280  	0x47, 0x65, 0x74, 0x12, 0x26, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64,
  3281  	0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e,
  3282  	0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x1a, 0x29, 0x2e, 0x69, 0x6f,
  3283  	0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6f,
  3284  	0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64,
  3285  	0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x05, 0x57, 0x61, 0x74, 0x63,
  3286  	0x68, 0x12, 0x26, 0x2e, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70,
  3287  	0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x54, 0x72,
  3288  	0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x1a, 0x29, 0x2e, 0x69, 0x6f, 0x2e, 0x6c,
  3289  	0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x6f, 0x75, 0x74,
  3290  	0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x50, 0x6f,
  3291  	0x6c, 0x69, 0x63, 0x79, 0x22, 0x00, 0x30, 0x01, 0x42, 0x33, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x68,
  3292  	0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2f, 0x6c,
  3293  	0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2d, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2d, 0x61, 0x70,
  3294  	0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x62, 0x06, 0x70,
  3295  	0x72, 0x6f, 0x74, 0x6f, 0x33,
  3296  }
  3297  
  3298  var (
  3299  	file_outbound_proto_rawDescOnce sync.Once
  3300  	file_outbound_proto_rawDescData = file_outbound_proto_rawDesc
  3301  )
  3302  
  3303  func file_outbound_proto_rawDescGZIP() []byte {
  3304  	file_outbound_proto_rawDescOnce.Do(func() {
  3305  		file_outbound_proto_rawDescData = protoimpl.X.CompressGZIP(file_outbound_proto_rawDescData)
  3306  	})
  3307  	return file_outbound_proto_rawDescData
  3308  }
  3309  
  3310  var file_outbound_proto_msgTypes = make([]protoimpl.MessageInfo, 43)
  3311  var file_outbound_proto_goTypes = []interface{}{
  3312  	(*TrafficSpec)(nil),                              // 0: io.linkerd.proxy.outbound.TrafficSpec
  3313  	(*OutboundPolicy)(nil),                           // 1: io.linkerd.proxy.outbound.OutboundPolicy
  3314  	(*ProxyProtocol)(nil),                            // 2: io.linkerd.proxy.outbound.ProxyProtocol
  3315  	(*HttpRoute)(nil),                                // 3: io.linkerd.proxy.outbound.HttpRoute
  3316  	(*GrpcRoute)(nil),                                // 4: io.linkerd.proxy.outbound.GrpcRoute
  3317  	(*OpaqueRoute)(nil),                              // 5: io.linkerd.proxy.outbound.OpaqueRoute
  3318  	(*Backend)(nil),                                  // 6: io.linkerd.proxy.outbound.Backend
  3319  	(*Queue)(nil),                                    // 7: io.linkerd.proxy.outbound.Queue
  3320  	(*FailureAccrual)(nil),                           // 8: io.linkerd.proxy.outbound.FailureAccrual
  3321  	(*ExponentialBackoff)(nil),                       // 9: io.linkerd.proxy.outbound.ExponentialBackoff
  3322  	(*ProxyProtocol_Detect)(nil),                     // 10: io.linkerd.proxy.outbound.ProxyProtocol.Detect
  3323  	(*ProxyProtocol_Opaque)(nil),                     // 11: io.linkerd.proxy.outbound.ProxyProtocol.Opaque
  3324  	(*ProxyProtocol_Http1)(nil),                      // 12: io.linkerd.proxy.outbound.ProxyProtocol.Http1
  3325  	(*ProxyProtocol_Http2)(nil),                      // 13: io.linkerd.proxy.outbound.ProxyProtocol.Http2
  3326  	(*ProxyProtocol_Grpc)(nil),                       // 14: io.linkerd.proxy.outbound.ProxyProtocol.Grpc
  3327  	(*HttpRoute_Rule)(nil),                           // 15: io.linkerd.proxy.outbound.HttpRoute.Rule
  3328  	(*HttpRoute_Filter)(nil),                         // 16: io.linkerd.proxy.outbound.HttpRoute.Filter
  3329  	(*HttpRoute_Distribution)(nil),                   // 17: io.linkerd.proxy.outbound.HttpRoute.Distribution
  3330  	(*HttpRoute_RouteBackend)(nil),                   // 18: io.linkerd.proxy.outbound.HttpRoute.RouteBackend
  3331  	(*HttpRoute_WeightedRouteBackend)(nil),           // 19: io.linkerd.proxy.outbound.HttpRoute.WeightedRouteBackend
  3332  	(*HttpRoute_Distribution_Empty)(nil),             // 20: io.linkerd.proxy.outbound.HttpRoute.Distribution.Empty
  3333  	(*HttpRoute_Distribution_FirstAvailable)(nil),    // 21: io.linkerd.proxy.outbound.HttpRoute.Distribution.FirstAvailable
  3334  	(*HttpRoute_Distribution_RandomAvailable)(nil),   // 22: io.linkerd.proxy.outbound.HttpRoute.Distribution.RandomAvailable
  3335  	(*GrpcRoute_Rule)(nil),                           // 23: io.linkerd.proxy.outbound.GrpcRoute.Rule
  3336  	(*GrpcRoute_Filter)(nil),                         // 24: io.linkerd.proxy.outbound.GrpcRoute.Filter
  3337  	(*GrpcRoute_Distribution)(nil),                   // 25: io.linkerd.proxy.outbound.GrpcRoute.Distribution
  3338  	(*GrpcRoute_RouteBackend)(nil),                   // 26: io.linkerd.proxy.outbound.GrpcRoute.RouteBackend
  3339  	(*GrpcRoute_WeightedRouteBackend)(nil),           // 27: io.linkerd.proxy.outbound.GrpcRoute.WeightedRouteBackend
  3340  	(*GrpcRoute_Distribution_Empty)(nil),             // 28: io.linkerd.proxy.outbound.GrpcRoute.Distribution.Empty
  3341  	(*GrpcRoute_Distribution_FirstAvailable)(nil),    // 29: io.linkerd.proxy.outbound.GrpcRoute.Distribution.FirstAvailable
  3342  	(*GrpcRoute_Distribution_RandomAvailable)(nil),   // 30: io.linkerd.proxy.outbound.GrpcRoute.Distribution.RandomAvailable
  3343  	(*OpaqueRoute_Rule)(nil),                         // 31: io.linkerd.proxy.outbound.OpaqueRoute.Rule
  3344  	(*OpaqueRoute_Distribution)(nil),                 // 32: io.linkerd.proxy.outbound.OpaqueRoute.Distribution
  3345  	(*OpaqueRoute_RouteBackend)(nil),                 // 33: io.linkerd.proxy.outbound.OpaqueRoute.RouteBackend
  3346  	(*OpaqueRoute_WeightedRouteBackend)(nil),         // 34: io.linkerd.proxy.outbound.OpaqueRoute.WeightedRouteBackend
  3347  	(*OpaqueRoute_Distribution_Empty)(nil),           // 35: io.linkerd.proxy.outbound.OpaqueRoute.Distribution.Empty
  3348  	(*OpaqueRoute_Distribution_FirstAvailable)(nil),  // 36: io.linkerd.proxy.outbound.OpaqueRoute.Distribution.FirstAvailable
  3349  	(*OpaqueRoute_Distribution_RandomAvailable)(nil), // 37: io.linkerd.proxy.outbound.OpaqueRoute.Distribution.RandomAvailable
  3350  	(*Backend_EndpointDiscovery)(nil),                // 38: io.linkerd.proxy.outbound.Backend.EndpointDiscovery
  3351  	(*Backend_BalanceP2C)(nil),                       // 39: io.linkerd.proxy.outbound.Backend.BalanceP2c
  3352  	(*Backend_EndpointDiscovery_DestinationGet)(nil), // 40: io.linkerd.proxy.outbound.Backend.EndpointDiscovery.DestinationGet
  3353  	(*Backend_BalanceP2C_PeakEwma)(nil),              // 41: io.linkerd.proxy.outbound.Backend.BalanceP2c.PeakEwma
  3354  	(*FailureAccrual_ConsecutiveFailures)(nil),       // 42: io.linkerd.proxy.outbound.FailureAccrual.ConsecutiveFailures
  3355  	(*net.TcpAddress)(nil),                           // 43: io.linkerd.proxy.net.TcpAddress
  3356  	(*meta.Metadata)(nil),                            // 44: io.linkerd.proxy.meta.Metadata
  3357  	(*http_route.HostMatch)(nil),                     // 45: io.linkerd.proxy.http_route.HostMatch
  3358  	(*destination.WeightedAddr)(nil),                 // 46: io.linkerd.proxy.destination.WeightedAddr
  3359  	(*duration.Duration)(nil),                        // 47: google.protobuf.Duration
  3360  	(*http_route.HttpRouteMatch)(nil),                // 48: io.linkerd.proxy.http_route.HttpRouteMatch
  3361  	(*http_route.HttpFailureInjector)(nil),           // 49: io.linkerd.proxy.http_route.HttpFailureInjector
  3362  	(*http_route.RequestHeaderModifier)(nil),         // 50: io.linkerd.proxy.http_route.RequestHeaderModifier
  3363  	(*http_route.RequestRedirect)(nil),               // 51: io.linkerd.proxy.http_route.RequestRedirect
  3364  	(*http_route.ResponseHeaderModifier)(nil),        // 52: io.linkerd.proxy.http_route.ResponseHeaderModifier
  3365  	(*grpc_route.GrpcRouteMatch)(nil),                // 53: io.linkerd.proxy.grpc_route.GrpcRouteMatch
  3366  	(*grpc_route.GrpcFailureInjector)(nil),           // 54: io.linkerd.proxy.grpc_route.GrpcFailureInjector
  3367  }
  3368  var file_outbound_proto_depIdxs = []int32{
  3369  	43, // 0: io.linkerd.proxy.outbound.TrafficSpec.addr:type_name -> io.linkerd.proxy.net.TcpAddress
  3370  	2,  // 1: io.linkerd.proxy.outbound.OutboundPolicy.protocol:type_name -> io.linkerd.proxy.outbound.ProxyProtocol
  3371  	44, // 2: io.linkerd.proxy.outbound.OutboundPolicy.metadata:type_name -> io.linkerd.proxy.meta.Metadata
  3372  	10, // 3: io.linkerd.proxy.outbound.ProxyProtocol.detect:type_name -> io.linkerd.proxy.outbound.ProxyProtocol.Detect
  3373  	11, // 4: io.linkerd.proxy.outbound.ProxyProtocol.opaque:type_name -> io.linkerd.proxy.outbound.ProxyProtocol.Opaque
  3374  	12, // 5: io.linkerd.proxy.outbound.ProxyProtocol.http1:type_name -> io.linkerd.proxy.outbound.ProxyProtocol.Http1
  3375  	13, // 6: io.linkerd.proxy.outbound.ProxyProtocol.http2:type_name -> io.linkerd.proxy.outbound.ProxyProtocol.Http2
  3376  	14, // 7: io.linkerd.proxy.outbound.ProxyProtocol.grpc:type_name -> io.linkerd.proxy.outbound.ProxyProtocol.Grpc
  3377  	44, // 8: io.linkerd.proxy.outbound.HttpRoute.metadata:type_name -> io.linkerd.proxy.meta.Metadata
  3378  	45, // 9: io.linkerd.proxy.outbound.HttpRoute.hosts:type_name -> io.linkerd.proxy.http_route.HostMatch
  3379  	15, // 10: io.linkerd.proxy.outbound.HttpRoute.rules:type_name -> io.linkerd.proxy.outbound.HttpRoute.Rule
  3380  	44, // 11: io.linkerd.proxy.outbound.GrpcRoute.metadata:type_name -> io.linkerd.proxy.meta.Metadata
  3381  	45, // 12: io.linkerd.proxy.outbound.GrpcRoute.hosts:type_name -> io.linkerd.proxy.http_route.HostMatch
  3382  	23, // 13: io.linkerd.proxy.outbound.GrpcRoute.rules:type_name -> io.linkerd.proxy.outbound.GrpcRoute.Rule
  3383  	44, // 14: io.linkerd.proxy.outbound.OpaqueRoute.metadata:type_name -> io.linkerd.proxy.meta.Metadata
  3384  	31, // 15: io.linkerd.proxy.outbound.OpaqueRoute.rules:type_name -> io.linkerd.proxy.outbound.OpaqueRoute.Rule
  3385  	44, // 16: io.linkerd.proxy.outbound.Backend.metadata:type_name -> io.linkerd.proxy.meta.Metadata
  3386  	46, // 17: io.linkerd.proxy.outbound.Backend.forward:type_name -> io.linkerd.proxy.destination.WeightedAddr
  3387  	39, // 18: io.linkerd.proxy.outbound.Backend.balancer:type_name -> io.linkerd.proxy.outbound.Backend.BalanceP2c
  3388  	7,  // 19: io.linkerd.proxy.outbound.Backend.queue:type_name -> io.linkerd.proxy.outbound.Queue
  3389  	47, // 20: io.linkerd.proxy.outbound.Queue.failfast_timeout:type_name -> google.protobuf.Duration
  3390  	42, // 21: io.linkerd.proxy.outbound.FailureAccrual.consecutive_failures:type_name -> io.linkerd.proxy.outbound.FailureAccrual.ConsecutiveFailures
  3391  	47, // 22: io.linkerd.proxy.outbound.ExponentialBackoff.min_backoff:type_name -> google.protobuf.Duration
  3392  	47, // 23: io.linkerd.proxy.outbound.ExponentialBackoff.max_backoff:type_name -> google.protobuf.Duration
  3393  	47, // 24: io.linkerd.proxy.outbound.ProxyProtocol.Detect.timeout:type_name -> google.protobuf.Duration
  3394  	11, // 25: io.linkerd.proxy.outbound.ProxyProtocol.Detect.opaque:type_name -> io.linkerd.proxy.outbound.ProxyProtocol.Opaque
  3395  	12, // 26: io.linkerd.proxy.outbound.ProxyProtocol.Detect.http1:type_name -> io.linkerd.proxy.outbound.ProxyProtocol.Http1
  3396  	13, // 27: io.linkerd.proxy.outbound.ProxyProtocol.Detect.http2:type_name -> io.linkerd.proxy.outbound.ProxyProtocol.Http2
  3397  	5,  // 28: io.linkerd.proxy.outbound.ProxyProtocol.Opaque.routes:type_name -> io.linkerd.proxy.outbound.OpaqueRoute
  3398  	3,  // 29: io.linkerd.proxy.outbound.ProxyProtocol.Http1.routes:type_name -> io.linkerd.proxy.outbound.HttpRoute
  3399  	8,  // 30: io.linkerd.proxy.outbound.ProxyProtocol.Http1.failure_accrual:type_name -> io.linkerd.proxy.outbound.FailureAccrual
  3400  	3,  // 31: io.linkerd.proxy.outbound.ProxyProtocol.Http2.routes:type_name -> io.linkerd.proxy.outbound.HttpRoute
  3401  	8,  // 32: io.linkerd.proxy.outbound.ProxyProtocol.Http2.failure_accrual:type_name -> io.linkerd.proxy.outbound.FailureAccrual
  3402  	4,  // 33: io.linkerd.proxy.outbound.ProxyProtocol.Grpc.routes:type_name -> io.linkerd.proxy.outbound.GrpcRoute
  3403  	8,  // 34: io.linkerd.proxy.outbound.ProxyProtocol.Grpc.failure_accrual:type_name -> io.linkerd.proxy.outbound.FailureAccrual
  3404  	48, // 35: io.linkerd.proxy.outbound.HttpRoute.Rule.matches:type_name -> io.linkerd.proxy.http_route.HttpRouteMatch
  3405  	16, // 36: io.linkerd.proxy.outbound.HttpRoute.Rule.filters:type_name -> io.linkerd.proxy.outbound.HttpRoute.Filter
  3406  	17, // 37: io.linkerd.proxy.outbound.HttpRoute.Rule.backends:type_name -> io.linkerd.proxy.outbound.HttpRoute.Distribution
  3407  	47, // 38: io.linkerd.proxy.outbound.HttpRoute.Rule.requestTimeout:type_name -> google.protobuf.Duration
  3408  	49, // 39: io.linkerd.proxy.outbound.HttpRoute.Filter.failure_injector:type_name -> io.linkerd.proxy.http_route.HttpFailureInjector
  3409  	50, // 40: io.linkerd.proxy.outbound.HttpRoute.Filter.request_header_modifier:type_name -> io.linkerd.proxy.http_route.RequestHeaderModifier
  3410  	51, // 41: io.linkerd.proxy.outbound.HttpRoute.Filter.redirect:type_name -> io.linkerd.proxy.http_route.RequestRedirect
  3411  	52, // 42: io.linkerd.proxy.outbound.HttpRoute.Filter.response_header_modifier:type_name -> io.linkerd.proxy.http_route.ResponseHeaderModifier
  3412  	20, // 43: io.linkerd.proxy.outbound.HttpRoute.Distribution.empty:type_name -> io.linkerd.proxy.outbound.HttpRoute.Distribution.Empty
  3413  	21, // 44: io.linkerd.proxy.outbound.HttpRoute.Distribution.first_available:type_name -> io.linkerd.proxy.outbound.HttpRoute.Distribution.FirstAvailable
  3414  	22, // 45: io.linkerd.proxy.outbound.HttpRoute.Distribution.random_available:type_name -> io.linkerd.proxy.outbound.HttpRoute.Distribution.RandomAvailable
  3415  	6,  // 46: io.linkerd.proxy.outbound.HttpRoute.RouteBackend.backend:type_name -> io.linkerd.proxy.outbound.Backend
  3416  	16, // 47: io.linkerd.proxy.outbound.HttpRoute.RouteBackend.filters:type_name -> io.linkerd.proxy.outbound.HttpRoute.Filter
  3417  	47, // 48: io.linkerd.proxy.outbound.HttpRoute.RouteBackend.requestTimeout:type_name -> google.protobuf.Duration
  3418  	18, // 49: io.linkerd.proxy.outbound.HttpRoute.WeightedRouteBackend.backend:type_name -> io.linkerd.proxy.outbound.HttpRoute.RouteBackend
  3419  	18, // 50: io.linkerd.proxy.outbound.HttpRoute.Distribution.FirstAvailable.backends:type_name -> io.linkerd.proxy.outbound.HttpRoute.RouteBackend
  3420  	19, // 51: io.linkerd.proxy.outbound.HttpRoute.Distribution.RandomAvailable.backends:type_name -> io.linkerd.proxy.outbound.HttpRoute.WeightedRouteBackend
  3421  	53, // 52: io.linkerd.proxy.outbound.GrpcRoute.Rule.matches:type_name -> io.linkerd.proxy.grpc_route.GrpcRouteMatch
  3422  	24, // 53: io.linkerd.proxy.outbound.GrpcRoute.Rule.filters:type_name -> io.linkerd.proxy.outbound.GrpcRoute.Filter
  3423  	25, // 54: io.linkerd.proxy.outbound.GrpcRoute.Rule.backends:type_name -> io.linkerd.proxy.outbound.GrpcRoute.Distribution
  3424  	47, // 55: io.linkerd.proxy.outbound.GrpcRoute.Rule.requestTimeout:type_name -> google.protobuf.Duration
  3425  	54, // 56: io.linkerd.proxy.outbound.GrpcRoute.Filter.failure_injector:type_name -> io.linkerd.proxy.grpc_route.GrpcFailureInjector
  3426  	50, // 57: io.linkerd.proxy.outbound.GrpcRoute.Filter.request_header_modifier:type_name -> io.linkerd.proxy.http_route.RequestHeaderModifier
  3427  	28, // 58: io.linkerd.proxy.outbound.GrpcRoute.Distribution.empty:type_name -> io.linkerd.proxy.outbound.GrpcRoute.Distribution.Empty
  3428  	29, // 59: io.linkerd.proxy.outbound.GrpcRoute.Distribution.first_available:type_name -> io.linkerd.proxy.outbound.GrpcRoute.Distribution.FirstAvailable
  3429  	30, // 60: io.linkerd.proxy.outbound.GrpcRoute.Distribution.random_available:type_name -> io.linkerd.proxy.outbound.GrpcRoute.Distribution.RandomAvailable
  3430  	6,  // 61: io.linkerd.proxy.outbound.GrpcRoute.RouteBackend.backend:type_name -> io.linkerd.proxy.outbound.Backend
  3431  	24, // 62: io.linkerd.proxy.outbound.GrpcRoute.RouteBackend.filters:type_name -> io.linkerd.proxy.outbound.GrpcRoute.Filter
  3432  	47, // 63: io.linkerd.proxy.outbound.GrpcRoute.RouteBackend.requestTimeout:type_name -> google.protobuf.Duration
  3433  	26, // 64: io.linkerd.proxy.outbound.GrpcRoute.WeightedRouteBackend.backend:type_name -> io.linkerd.proxy.outbound.GrpcRoute.RouteBackend
  3434  	26, // 65: io.linkerd.proxy.outbound.GrpcRoute.Distribution.FirstAvailable.backends:type_name -> io.linkerd.proxy.outbound.GrpcRoute.RouteBackend
  3435  	27, // 66: io.linkerd.proxy.outbound.GrpcRoute.Distribution.RandomAvailable.backends:type_name -> io.linkerd.proxy.outbound.GrpcRoute.WeightedRouteBackend
  3436  	32, // 67: io.linkerd.proxy.outbound.OpaqueRoute.Rule.backends:type_name -> io.linkerd.proxy.outbound.OpaqueRoute.Distribution
  3437  	35, // 68: io.linkerd.proxy.outbound.OpaqueRoute.Distribution.empty:type_name -> io.linkerd.proxy.outbound.OpaqueRoute.Distribution.Empty
  3438  	36, // 69: io.linkerd.proxy.outbound.OpaqueRoute.Distribution.first_available:type_name -> io.linkerd.proxy.outbound.OpaqueRoute.Distribution.FirstAvailable
  3439  	37, // 70: io.linkerd.proxy.outbound.OpaqueRoute.Distribution.random_available:type_name -> io.linkerd.proxy.outbound.OpaqueRoute.Distribution.RandomAvailable
  3440  	6,  // 71: io.linkerd.proxy.outbound.OpaqueRoute.RouteBackend.backend:type_name -> io.linkerd.proxy.outbound.Backend
  3441  	33, // 72: io.linkerd.proxy.outbound.OpaqueRoute.WeightedRouteBackend.backend:type_name -> io.linkerd.proxy.outbound.OpaqueRoute.RouteBackend
  3442  	33, // 73: io.linkerd.proxy.outbound.OpaqueRoute.Distribution.FirstAvailable.backends:type_name -> io.linkerd.proxy.outbound.OpaqueRoute.RouteBackend
  3443  	34, // 74: io.linkerd.proxy.outbound.OpaqueRoute.Distribution.RandomAvailable.backends:type_name -> io.linkerd.proxy.outbound.OpaqueRoute.WeightedRouteBackend
  3444  	40, // 75: io.linkerd.proxy.outbound.Backend.EndpointDiscovery.dst:type_name -> io.linkerd.proxy.outbound.Backend.EndpointDiscovery.DestinationGet
  3445  	38, // 76: io.linkerd.proxy.outbound.Backend.BalanceP2c.discovery:type_name -> io.linkerd.proxy.outbound.Backend.EndpointDiscovery
  3446  	41, // 77: io.linkerd.proxy.outbound.Backend.BalanceP2c.peak_ewma:type_name -> io.linkerd.proxy.outbound.Backend.BalanceP2c.PeakEwma
  3447  	47, // 78: io.linkerd.proxy.outbound.Backend.BalanceP2c.PeakEwma.default_rtt:type_name -> google.protobuf.Duration
  3448  	47, // 79: io.linkerd.proxy.outbound.Backend.BalanceP2c.PeakEwma.decay:type_name -> google.protobuf.Duration
  3449  	9,  // 80: io.linkerd.proxy.outbound.FailureAccrual.ConsecutiveFailures.backoff:type_name -> io.linkerd.proxy.outbound.ExponentialBackoff
  3450  	0,  // 81: io.linkerd.proxy.outbound.OutboundPolicies.Get:input_type -> io.linkerd.proxy.outbound.TrafficSpec
  3451  	0,  // 82: io.linkerd.proxy.outbound.OutboundPolicies.Watch:input_type -> io.linkerd.proxy.outbound.TrafficSpec
  3452  	1,  // 83: io.linkerd.proxy.outbound.OutboundPolicies.Get:output_type -> io.linkerd.proxy.outbound.OutboundPolicy
  3453  	1,  // 84: io.linkerd.proxy.outbound.OutboundPolicies.Watch:output_type -> io.linkerd.proxy.outbound.OutboundPolicy
  3454  	83, // [83:85] is the sub-list for method output_type
  3455  	81, // [81:83] is the sub-list for method input_type
  3456  	81, // [81:81] is the sub-list for extension type_name
  3457  	81, // [81:81] is the sub-list for extension extendee
  3458  	0,  // [0:81] is the sub-list for field type_name
  3459  }
  3460  
  3461  func init() { file_outbound_proto_init() }
  3462  func file_outbound_proto_init() {
  3463  	if File_outbound_proto != nil {
  3464  		return
  3465  	}
  3466  	if !protoimpl.UnsafeEnabled {
  3467  		file_outbound_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
  3468  			switch v := v.(*TrafficSpec); i {
  3469  			case 0:
  3470  				return &v.state
  3471  			case 1:
  3472  				return &v.sizeCache
  3473  			case 2:
  3474  				return &v.unknownFields
  3475  			default:
  3476  				return nil
  3477  			}
  3478  		}
  3479  		file_outbound_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
  3480  			switch v := v.(*OutboundPolicy); i {
  3481  			case 0:
  3482  				return &v.state
  3483  			case 1:
  3484  				return &v.sizeCache
  3485  			case 2:
  3486  				return &v.unknownFields
  3487  			default:
  3488  				return nil
  3489  			}
  3490  		}
  3491  		file_outbound_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
  3492  			switch v := v.(*ProxyProtocol); i {
  3493  			case 0:
  3494  				return &v.state
  3495  			case 1:
  3496  				return &v.sizeCache
  3497  			case 2:
  3498  				return &v.unknownFields
  3499  			default:
  3500  				return nil
  3501  			}
  3502  		}
  3503  		file_outbound_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
  3504  			switch v := v.(*HttpRoute); i {
  3505  			case 0:
  3506  				return &v.state
  3507  			case 1:
  3508  				return &v.sizeCache
  3509  			case 2:
  3510  				return &v.unknownFields
  3511  			default:
  3512  				return nil
  3513  			}
  3514  		}
  3515  		file_outbound_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
  3516  			switch v := v.(*GrpcRoute); i {
  3517  			case 0:
  3518  				return &v.state
  3519  			case 1:
  3520  				return &v.sizeCache
  3521  			case 2:
  3522  				return &v.unknownFields
  3523  			default:
  3524  				return nil
  3525  			}
  3526  		}
  3527  		file_outbound_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
  3528  			switch v := v.(*OpaqueRoute); i {
  3529  			case 0:
  3530  				return &v.state
  3531  			case 1:
  3532  				return &v.sizeCache
  3533  			case 2:
  3534  				return &v.unknownFields
  3535  			default:
  3536  				return nil
  3537  			}
  3538  		}
  3539  		file_outbound_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
  3540  			switch v := v.(*Backend); i {
  3541  			case 0:
  3542  				return &v.state
  3543  			case 1:
  3544  				return &v.sizeCache
  3545  			case 2:
  3546  				return &v.unknownFields
  3547  			default:
  3548  				return nil
  3549  			}
  3550  		}
  3551  		file_outbound_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
  3552  			switch v := v.(*Queue); i {
  3553  			case 0:
  3554  				return &v.state
  3555  			case 1:
  3556  				return &v.sizeCache
  3557  			case 2:
  3558  				return &v.unknownFields
  3559  			default:
  3560  				return nil
  3561  			}
  3562  		}
  3563  		file_outbound_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
  3564  			switch v := v.(*FailureAccrual); i {
  3565  			case 0:
  3566  				return &v.state
  3567  			case 1:
  3568  				return &v.sizeCache
  3569  			case 2:
  3570  				return &v.unknownFields
  3571  			default:
  3572  				return nil
  3573  			}
  3574  		}
  3575  		file_outbound_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
  3576  			switch v := v.(*ExponentialBackoff); i {
  3577  			case 0:
  3578  				return &v.state
  3579  			case 1:
  3580  				return &v.sizeCache
  3581  			case 2:
  3582  				return &v.unknownFields
  3583  			default:
  3584  				return nil
  3585  			}
  3586  		}
  3587  		file_outbound_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
  3588  			switch v := v.(*ProxyProtocol_Detect); i {
  3589  			case 0:
  3590  				return &v.state
  3591  			case 1:
  3592  				return &v.sizeCache
  3593  			case 2:
  3594  				return &v.unknownFields
  3595  			default:
  3596  				return nil
  3597  			}
  3598  		}
  3599  		file_outbound_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
  3600  			switch v := v.(*ProxyProtocol_Opaque); i {
  3601  			case 0:
  3602  				return &v.state
  3603  			case 1:
  3604  				return &v.sizeCache
  3605  			case 2:
  3606  				return &v.unknownFields
  3607  			default:
  3608  				return nil
  3609  			}
  3610  		}
  3611  		file_outbound_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
  3612  			switch v := v.(*ProxyProtocol_Http1); i {
  3613  			case 0:
  3614  				return &v.state
  3615  			case 1:
  3616  				return &v.sizeCache
  3617  			case 2:
  3618  				return &v.unknownFields
  3619  			default:
  3620  				return nil
  3621  			}
  3622  		}
  3623  		file_outbound_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
  3624  			switch v := v.(*ProxyProtocol_Http2); i {
  3625  			case 0:
  3626  				return &v.state
  3627  			case 1:
  3628  				return &v.sizeCache
  3629  			case 2:
  3630  				return &v.unknownFields
  3631  			default:
  3632  				return nil
  3633  			}
  3634  		}
  3635  		file_outbound_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
  3636  			switch v := v.(*ProxyProtocol_Grpc); i {
  3637  			case 0:
  3638  				return &v.state
  3639  			case 1:
  3640  				return &v.sizeCache
  3641  			case 2:
  3642  				return &v.unknownFields
  3643  			default:
  3644  				return nil
  3645  			}
  3646  		}
  3647  		file_outbound_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
  3648  			switch v := v.(*HttpRoute_Rule); i {
  3649  			case 0:
  3650  				return &v.state
  3651  			case 1:
  3652  				return &v.sizeCache
  3653  			case 2:
  3654  				return &v.unknownFields
  3655  			default:
  3656  				return nil
  3657  			}
  3658  		}
  3659  		file_outbound_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
  3660  			switch v := v.(*HttpRoute_Filter); i {
  3661  			case 0:
  3662  				return &v.state
  3663  			case 1:
  3664  				return &v.sizeCache
  3665  			case 2:
  3666  				return &v.unknownFields
  3667  			default:
  3668  				return nil
  3669  			}
  3670  		}
  3671  		file_outbound_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
  3672  			switch v := v.(*HttpRoute_Distribution); i {
  3673  			case 0:
  3674  				return &v.state
  3675  			case 1:
  3676  				return &v.sizeCache
  3677  			case 2:
  3678  				return &v.unknownFields
  3679  			default:
  3680  				return nil
  3681  			}
  3682  		}
  3683  		file_outbound_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
  3684  			switch v := v.(*HttpRoute_RouteBackend); i {
  3685  			case 0:
  3686  				return &v.state
  3687  			case 1:
  3688  				return &v.sizeCache
  3689  			case 2:
  3690  				return &v.unknownFields
  3691  			default:
  3692  				return nil
  3693  			}
  3694  		}
  3695  		file_outbound_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
  3696  			switch v := v.(*HttpRoute_WeightedRouteBackend); i {
  3697  			case 0:
  3698  				return &v.state
  3699  			case 1:
  3700  				return &v.sizeCache
  3701  			case 2:
  3702  				return &v.unknownFields
  3703  			default:
  3704  				return nil
  3705  			}
  3706  		}
  3707  		file_outbound_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
  3708  			switch v := v.(*HttpRoute_Distribution_Empty); i {
  3709  			case 0:
  3710  				return &v.state
  3711  			case 1:
  3712  				return &v.sizeCache
  3713  			case 2:
  3714  				return &v.unknownFields
  3715  			default:
  3716  				return nil
  3717  			}
  3718  		}
  3719  		file_outbound_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
  3720  			switch v := v.(*HttpRoute_Distribution_FirstAvailable); i {
  3721  			case 0:
  3722  				return &v.state
  3723  			case 1:
  3724  				return &v.sizeCache
  3725  			case 2:
  3726  				return &v.unknownFields
  3727  			default:
  3728  				return nil
  3729  			}
  3730  		}
  3731  		file_outbound_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
  3732  			switch v := v.(*HttpRoute_Distribution_RandomAvailable); i {
  3733  			case 0:
  3734  				return &v.state
  3735  			case 1:
  3736  				return &v.sizeCache
  3737  			case 2:
  3738  				return &v.unknownFields
  3739  			default:
  3740  				return nil
  3741  			}
  3742  		}
  3743  		file_outbound_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
  3744  			switch v := v.(*GrpcRoute_Rule); i {
  3745  			case 0:
  3746  				return &v.state
  3747  			case 1:
  3748  				return &v.sizeCache
  3749  			case 2:
  3750  				return &v.unknownFields
  3751  			default:
  3752  				return nil
  3753  			}
  3754  		}
  3755  		file_outbound_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
  3756  			switch v := v.(*GrpcRoute_Filter); i {
  3757  			case 0:
  3758  				return &v.state
  3759  			case 1:
  3760  				return &v.sizeCache
  3761  			case 2:
  3762  				return &v.unknownFields
  3763  			default:
  3764  				return nil
  3765  			}
  3766  		}
  3767  		file_outbound_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
  3768  			switch v := v.(*GrpcRoute_Distribution); i {
  3769  			case 0:
  3770  				return &v.state
  3771  			case 1:
  3772  				return &v.sizeCache
  3773  			case 2:
  3774  				return &v.unknownFields
  3775  			default:
  3776  				return nil
  3777  			}
  3778  		}
  3779  		file_outbound_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
  3780  			switch v := v.(*GrpcRoute_RouteBackend); i {
  3781  			case 0:
  3782  				return &v.state
  3783  			case 1:
  3784  				return &v.sizeCache
  3785  			case 2:
  3786  				return &v.unknownFields
  3787  			default:
  3788  				return nil
  3789  			}
  3790  		}
  3791  		file_outbound_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
  3792  			switch v := v.(*GrpcRoute_WeightedRouteBackend); i {
  3793  			case 0:
  3794  				return &v.state
  3795  			case 1:
  3796  				return &v.sizeCache
  3797  			case 2:
  3798  				return &v.unknownFields
  3799  			default:
  3800  				return nil
  3801  			}
  3802  		}
  3803  		file_outbound_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
  3804  			switch v := v.(*GrpcRoute_Distribution_Empty); i {
  3805  			case 0:
  3806  				return &v.state
  3807  			case 1:
  3808  				return &v.sizeCache
  3809  			case 2:
  3810  				return &v.unknownFields
  3811  			default:
  3812  				return nil
  3813  			}
  3814  		}
  3815  		file_outbound_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
  3816  			switch v := v.(*GrpcRoute_Distribution_FirstAvailable); i {
  3817  			case 0:
  3818  				return &v.state
  3819  			case 1:
  3820  				return &v.sizeCache
  3821  			case 2:
  3822  				return &v.unknownFields
  3823  			default:
  3824  				return nil
  3825  			}
  3826  		}
  3827  		file_outbound_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
  3828  			switch v := v.(*GrpcRoute_Distribution_RandomAvailable); i {
  3829  			case 0:
  3830  				return &v.state
  3831  			case 1:
  3832  				return &v.sizeCache
  3833  			case 2:
  3834  				return &v.unknownFields
  3835  			default:
  3836  				return nil
  3837  			}
  3838  		}
  3839  		file_outbound_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
  3840  			switch v := v.(*OpaqueRoute_Rule); i {
  3841  			case 0:
  3842  				return &v.state
  3843  			case 1:
  3844  				return &v.sizeCache
  3845  			case 2:
  3846  				return &v.unknownFields
  3847  			default:
  3848  				return nil
  3849  			}
  3850  		}
  3851  		file_outbound_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
  3852  			switch v := v.(*OpaqueRoute_Distribution); i {
  3853  			case 0:
  3854  				return &v.state
  3855  			case 1:
  3856  				return &v.sizeCache
  3857  			case 2:
  3858  				return &v.unknownFields
  3859  			default:
  3860  				return nil
  3861  			}
  3862  		}
  3863  		file_outbound_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
  3864  			switch v := v.(*OpaqueRoute_RouteBackend); i {
  3865  			case 0:
  3866  				return &v.state
  3867  			case 1:
  3868  				return &v.sizeCache
  3869  			case 2:
  3870  				return &v.unknownFields
  3871  			default:
  3872  				return nil
  3873  			}
  3874  		}
  3875  		file_outbound_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
  3876  			switch v := v.(*OpaqueRoute_WeightedRouteBackend); i {
  3877  			case 0:
  3878  				return &v.state
  3879  			case 1:
  3880  				return &v.sizeCache
  3881  			case 2:
  3882  				return &v.unknownFields
  3883  			default:
  3884  				return nil
  3885  			}
  3886  		}
  3887  		file_outbound_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
  3888  			switch v := v.(*OpaqueRoute_Distribution_Empty); i {
  3889  			case 0:
  3890  				return &v.state
  3891  			case 1:
  3892  				return &v.sizeCache
  3893  			case 2:
  3894  				return &v.unknownFields
  3895  			default:
  3896  				return nil
  3897  			}
  3898  		}
  3899  		file_outbound_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
  3900  			switch v := v.(*OpaqueRoute_Distribution_FirstAvailable); i {
  3901  			case 0:
  3902  				return &v.state
  3903  			case 1:
  3904  				return &v.sizeCache
  3905  			case 2:
  3906  				return &v.unknownFields
  3907  			default:
  3908  				return nil
  3909  			}
  3910  		}
  3911  		file_outbound_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
  3912  			switch v := v.(*OpaqueRoute_Distribution_RandomAvailable); i {
  3913  			case 0:
  3914  				return &v.state
  3915  			case 1:
  3916  				return &v.sizeCache
  3917  			case 2:
  3918  				return &v.unknownFields
  3919  			default:
  3920  				return nil
  3921  			}
  3922  		}
  3923  		file_outbound_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
  3924  			switch v := v.(*Backend_EndpointDiscovery); i {
  3925  			case 0:
  3926  				return &v.state
  3927  			case 1:
  3928  				return &v.sizeCache
  3929  			case 2:
  3930  				return &v.unknownFields
  3931  			default:
  3932  				return nil
  3933  			}
  3934  		}
  3935  		file_outbound_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
  3936  			switch v := v.(*Backend_BalanceP2C); i {
  3937  			case 0:
  3938  				return &v.state
  3939  			case 1:
  3940  				return &v.sizeCache
  3941  			case 2:
  3942  				return &v.unknownFields
  3943  			default:
  3944  				return nil
  3945  			}
  3946  		}
  3947  		file_outbound_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
  3948  			switch v := v.(*Backend_EndpointDiscovery_DestinationGet); i {
  3949  			case 0:
  3950  				return &v.state
  3951  			case 1:
  3952  				return &v.sizeCache
  3953  			case 2:
  3954  				return &v.unknownFields
  3955  			default:
  3956  				return nil
  3957  			}
  3958  		}
  3959  		file_outbound_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
  3960  			switch v := v.(*Backend_BalanceP2C_PeakEwma); i {
  3961  			case 0:
  3962  				return &v.state
  3963  			case 1:
  3964  				return &v.sizeCache
  3965  			case 2:
  3966  				return &v.unknownFields
  3967  			default:
  3968  				return nil
  3969  			}
  3970  		}
  3971  		file_outbound_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
  3972  			switch v := v.(*FailureAccrual_ConsecutiveFailures); i {
  3973  			case 0:
  3974  				return &v.state
  3975  			case 1:
  3976  				return &v.sizeCache
  3977  			case 2:
  3978  				return &v.unknownFields
  3979  			default:
  3980  				return nil
  3981  			}
  3982  		}
  3983  	}
  3984  	file_outbound_proto_msgTypes[0].OneofWrappers = []interface{}{
  3985  		(*TrafficSpec_Addr)(nil),
  3986  		(*TrafficSpec_Authority)(nil),
  3987  	}
  3988  	file_outbound_proto_msgTypes[2].OneofWrappers = []interface{}{
  3989  		(*ProxyProtocol_Detect_)(nil),
  3990  		(*ProxyProtocol_Opaque_)(nil),
  3991  		(*ProxyProtocol_Http1_)(nil),
  3992  		(*ProxyProtocol_Http2_)(nil),
  3993  		(*ProxyProtocol_Grpc_)(nil),
  3994  	}
  3995  	file_outbound_proto_msgTypes[6].OneofWrappers = []interface{}{
  3996  		(*Backend_Forward)(nil),
  3997  		(*Backend_Balancer)(nil),
  3998  	}
  3999  	file_outbound_proto_msgTypes[8].OneofWrappers = []interface{}{
  4000  		(*FailureAccrual_ConsecutiveFailures_)(nil),
  4001  	}
  4002  	file_outbound_proto_msgTypes[16].OneofWrappers = []interface{}{
  4003  		(*HttpRoute_Filter_FailureInjector)(nil),
  4004  		(*HttpRoute_Filter_RequestHeaderModifier)(nil),
  4005  		(*HttpRoute_Filter_Redirect)(nil),
  4006  		(*HttpRoute_Filter_ResponseHeaderModifier)(nil),
  4007  	}
  4008  	file_outbound_proto_msgTypes[17].OneofWrappers = []interface{}{
  4009  		(*HttpRoute_Distribution_Empty_)(nil),
  4010  		(*HttpRoute_Distribution_FirstAvailable_)(nil),
  4011  		(*HttpRoute_Distribution_RandomAvailable_)(nil),
  4012  	}
  4013  	file_outbound_proto_msgTypes[24].OneofWrappers = []interface{}{
  4014  		(*GrpcRoute_Filter_FailureInjector)(nil),
  4015  		(*GrpcRoute_Filter_RequestHeaderModifier)(nil),
  4016  	}
  4017  	file_outbound_proto_msgTypes[25].OneofWrappers = []interface{}{
  4018  		(*GrpcRoute_Distribution_Empty_)(nil),
  4019  		(*GrpcRoute_Distribution_FirstAvailable_)(nil),
  4020  		(*GrpcRoute_Distribution_RandomAvailable_)(nil),
  4021  	}
  4022  	file_outbound_proto_msgTypes[32].OneofWrappers = []interface{}{
  4023  		(*OpaqueRoute_Distribution_Empty_)(nil),
  4024  		(*OpaqueRoute_Distribution_FirstAvailable_)(nil),
  4025  		(*OpaqueRoute_Distribution_RandomAvailable_)(nil),
  4026  	}
  4027  	file_outbound_proto_msgTypes[38].OneofWrappers = []interface{}{
  4028  		(*Backend_EndpointDiscovery_Dst)(nil),
  4029  	}
  4030  	file_outbound_proto_msgTypes[39].OneofWrappers = []interface{}{
  4031  		(*Backend_BalanceP2C_PeakEwma_)(nil),
  4032  	}
  4033  	type x struct{}
  4034  	out := protoimpl.TypeBuilder{
  4035  		File: protoimpl.DescBuilder{
  4036  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
  4037  			RawDescriptor: file_outbound_proto_rawDesc,
  4038  			NumEnums:      0,
  4039  			NumMessages:   43,
  4040  			NumExtensions: 0,
  4041  			NumServices:   1,
  4042  		},
  4043  		GoTypes:           file_outbound_proto_goTypes,
  4044  		DependencyIndexes: file_outbound_proto_depIdxs,
  4045  		MessageInfos:      file_outbound_proto_msgTypes,
  4046  	}.Build()
  4047  	File_outbound_proto = out.File
  4048  	file_outbound_proto_rawDesc = nil
  4049  	file_outbound_proto_goTypes = nil
  4050  	file_outbound_proto_depIdxs = nil
  4051  }
  4052  

View as plain text