1
2
3
4
5
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
24 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
25
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
35
36 SourceWorkload string `protobuf:"bytes,1,opt,name=source_workload,json=sourceWorkload,proto3" json:"source_workload,omitempty"`
37
38
39
40
41
42
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
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
112 Addr *net.TcpAddress `protobuf:"bytes,2,opt,name=addr,proto3,oneof"`
113 }
114
115 type TrafficSpec_Authority struct {
116
117
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
126 type OutboundPolicy struct {
127 state protoimpl.MessageState
128 sizeCache protoimpl.SizeCache
129 unknownFields protoimpl.UnknownFields
130
131
132
133 Protocol *ProxyProtocol `protobuf:"bytes,1,opt,name=protocol,proto3" json:"protocol,omitempty"`
134
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
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
190
191
192
193
194
195
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
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
287 Http1 *ProxyProtocol_Http1 `protobuf:"bytes,3,opt,name=http1,proto3,oneof"`
288 }
289
290 type ProxyProtocol_Http2_ struct {
291
292 Http2 *ProxyProtocol_Http2 `protobuf:"bytes,4,opt,name=http2,proto3,oneof"`
293 }
294
295 type ProxyProtocol_Grpc_ struct {
296
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
311
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
319 Hosts []*http_route.HostMatch `protobuf:"bytes,2,rep,name=hosts,proto3" json:"hosts,omitempty"`
320
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
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
384 Hosts []*http_route.HostMatch `protobuf:"bytes,2,rep,name=hosts,proto3" json:"hosts,omitempty"`
385
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
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
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
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
505
506
507
508 Kind isBackend_Kind `protobuf_oneof:"kind"`
509
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
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
586 Forward *destination.WeightedAddr `protobuf:"bytes,2,opt,name=forward,proto3,oneof"`
587 }
588
589 type Backend_Balancer struct {
590
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
604
605 Capacity uint32 `protobuf:"varint,1,opt,name=capacity,proto3" json:"capacity,omitempty"`
606
607
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
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
663
664
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
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
730 MinBackoff *duration.Duration `protobuf:"bytes,1,opt,name=min_backoff,json=minBackoff,proto3" json:"min_backoff,omitempty"`
731
732
733 MaxBackoff *duration.Duration `protobuf:"bytes,2,opt,name=max_backoff,json=maxBackoff,proto3" json:"max_backoff,omitempty"`
734
735
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
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
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
801 Http1 *ProxyProtocol_Http1 `protobuf:"bytes,3,opt,name=http1,proto3" json:"http1,omitempty"`
802
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
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
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
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
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
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
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
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
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
1090
1091
1092
1093
1094
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
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
1164
1165
1166
1167
1168
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
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
1273
1274
1275
1276
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
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
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
1371
1372
1373
1374
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
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
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
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
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
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
1627
1628
1629
1630
1631
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
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
1701
1702
1703
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
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
1782
1783
1784
1785
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
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
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
1880
1881
1882
1883
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
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
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
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
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
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
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
2180
2181
2182
2183
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
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
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
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
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
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
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
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
2505 type Backend_EndpointDiscovery struct {
2506 state protoimpl.MessageState
2507 sizeCache protoimpl.SizeCache
2508 unknownFields protoimpl.UnknownFields
2509
2510
2511
2512
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
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
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
2574
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
2582
2583
2584
2585
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
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
2648
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
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
2702 type Backend_BalanceP2C_PeakEwma struct {
2703 state protoimpl.MessageState
2704 sizeCache protoimpl.SizeCache
2705 unknownFields protoimpl.UnknownFields
2706
2707
2708
2709 DefaultRtt *duration.Duration `protobuf:"bytes,1,opt,name=default_rtt,json=defaultRtt,proto3" json:"default_rtt,omitempty"`
2710
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
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
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),
3313 (*OutboundPolicy)(nil),
3314 (*ProxyProtocol)(nil),
3315 (*HttpRoute)(nil),
3316 (*GrpcRoute)(nil),
3317 (*OpaqueRoute)(nil),
3318 (*Backend)(nil),
3319 (*Queue)(nil),
3320 (*FailureAccrual)(nil),
3321 (*ExponentialBackoff)(nil),
3322 (*ProxyProtocol_Detect)(nil),
3323 (*ProxyProtocol_Opaque)(nil),
3324 (*ProxyProtocol_Http1)(nil),
3325 (*ProxyProtocol_Http2)(nil),
3326 (*ProxyProtocol_Grpc)(nil),
3327 (*HttpRoute_Rule)(nil),
3328 (*HttpRoute_Filter)(nil),
3329 (*HttpRoute_Distribution)(nil),
3330 (*HttpRoute_RouteBackend)(nil),
3331 (*HttpRoute_WeightedRouteBackend)(nil),
3332 (*HttpRoute_Distribution_Empty)(nil),
3333 (*HttpRoute_Distribution_FirstAvailable)(nil),
3334 (*HttpRoute_Distribution_RandomAvailable)(nil),
3335 (*GrpcRoute_Rule)(nil),
3336 (*GrpcRoute_Filter)(nil),
3337 (*GrpcRoute_Distribution)(nil),
3338 (*GrpcRoute_RouteBackend)(nil),
3339 (*GrpcRoute_WeightedRouteBackend)(nil),
3340 (*GrpcRoute_Distribution_Empty)(nil),
3341 (*GrpcRoute_Distribution_FirstAvailable)(nil),
3342 (*GrpcRoute_Distribution_RandomAvailable)(nil),
3343 (*OpaqueRoute_Rule)(nil),
3344 (*OpaqueRoute_Distribution)(nil),
3345 (*OpaqueRoute_RouteBackend)(nil),
3346 (*OpaqueRoute_WeightedRouteBackend)(nil),
3347 (*OpaqueRoute_Distribution_Empty)(nil),
3348 (*OpaqueRoute_Distribution_FirstAvailable)(nil),
3349 (*OpaqueRoute_Distribution_RandomAvailable)(nil),
3350 (*Backend_EndpointDiscovery)(nil),
3351 (*Backend_BalanceP2C)(nil),
3352 (*Backend_EndpointDiscovery_DestinationGet)(nil),
3353 (*Backend_BalanceP2C_PeakEwma)(nil),
3354 (*FailureAccrual_ConsecutiveFailures)(nil),
3355 (*net.TcpAddress)(nil),
3356 (*meta.Metadata)(nil),
3357 (*http_route.HostMatch)(nil),
3358 (*destination.WeightedAddr)(nil),
3359 (*duration.Duration)(nil),
3360 (*http_route.HttpRouteMatch)(nil),
3361 (*http_route.HttpFailureInjector)(nil),
3362 (*http_route.RequestHeaderModifier)(nil),
3363 (*http_route.RequestRedirect)(nil),
3364 (*http_route.ResponseHeaderModifier)(nil),
3365 (*grpc_route.GrpcRouteMatch)(nil),
3366 (*grpc_route.GrpcFailureInjector)(nil),
3367 }
3368 var file_outbound_proto_depIdxs = []int32{
3369 43,
3370 2,
3371 44,
3372 10,
3373 11,
3374 12,
3375 13,
3376 14,
3377 44,
3378 45,
3379 15,
3380 44,
3381 45,
3382 23,
3383 44,
3384 31,
3385 44,
3386 46,
3387 39,
3388 7,
3389 47,
3390 42,
3391 47,
3392 47,
3393 47,
3394 11,
3395 12,
3396 13,
3397 5,
3398 3,
3399 8,
3400 3,
3401 8,
3402 4,
3403 8,
3404 48,
3405 16,
3406 17,
3407 47,
3408 49,
3409 50,
3410 51,
3411 52,
3412 20,
3413 21,
3414 22,
3415 6,
3416 16,
3417 47,
3418 18,
3419 18,
3420 19,
3421 53,
3422 24,
3423 25,
3424 47,
3425 54,
3426 50,
3427 28,
3428 29,
3429 30,
3430 6,
3431 24,
3432 47,
3433 26,
3434 26,
3435 27,
3436 32,
3437 35,
3438 36,
3439 37,
3440 6,
3441 33,
3442 33,
3443 34,
3444 40,
3445 38,
3446 41,
3447 47,
3448 47,
3449 9,
3450 0,
3451 0,
3452 1,
3453 1,
3454 83,
3455 81,
3456 81,
3457 81,
3458 0,
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