github.com/v2fly/v2ray-core/v5@v5.16.2-0.20240507031116-8191faa6e095/app/router/config.pb.go (about) 1 // Code generated by protoc-gen-go. DO NOT EDIT. 2 // versions: 3 // protoc-gen-go v1.27.1 4 // protoc v3.12.4 5 // source: app/router/config.proto 6 7 package router 8 9 import ( 10 any "github.com/golang/protobuf/ptypes/any" 11 routercommon "github.com/v2fly/v2ray-core/v5/app/router/routercommon" 12 net "github.com/v2fly/v2ray-core/v5/common/net" 13 _ "github.com/v2fly/v2ray-core/v5/common/protoext" 14 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 15 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 16 reflect "reflect" 17 sync "sync" 18 ) 19 20 const ( 21 // Verify that this generated code is sufficiently up-to-date. 22 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 23 // Verify that runtime/protoimpl is sufficiently up-to-date. 24 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 25 ) 26 27 type DomainStrategy int32 28 29 const ( 30 // Use domain as is. 31 DomainStrategy_AsIs DomainStrategy = 0 32 // Always resolve IP for domains. 33 DomainStrategy_UseIp DomainStrategy = 1 34 // Resolve to IP if the domain doesn't match any rules. 35 DomainStrategy_IpIfNonMatch DomainStrategy = 2 36 // Resolve to IP if any rule requires IP matching. 37 DomainStrategy_IpOnDemand DomainStrategy = 3 38 ) 39 40 // Enum value maps for DomainStrategy. 41 var ( 42 DomainStrategy_name = map[int32]string{ 43 0: "AsIs", 44 1: "UseIp", 45 2: "IpIfNonMatch", 46 3: "IpOnDemand", 47 } 48 DomainStrategy_value = map[string]int32{ 49 "AsIs": 0, 50 "UseIp": 1, 51 "IpIfNonMatch": 2, 52 "IpOnDemand": 3, 53 } 54 ) 55 56 func (x DomainStrategy) Enum() *DomainStrategy { 57 p := new(DomainStrategy) 58 *p = x 59 return p 60 } 61 62 func (x DomainStrategy) String() string { 63 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 64 } 65 66 func (DomainStrategy) Descriptor() protoreflect.EnumDescriptor { 67 return file_app_router_config_proto_enumTypes[0].Descriptor() 68 } 69 70 func (DomainStrategy) Type() protoreflect.EnumType { 71 return &file_app_router_config_proto_enumTypes[0] 72 } 73 74 func (x DomainStrategy) Number() protoreflect.EnumNumber { 75 return protoreflect.EnumNumber(x) 76 } 77 78 // Deprecated: Use DomainStrategy.Descriptor instead. 79 func (DomainStrategy) EnumDescriptor() ([]byte, []int) { 80 return file_app_router_config_proto_rawDescGZIP(), []int{0} 81 } 82 83 type RoutingRule struct { 84 state protoimpl.MessageState 85 sizeCache protoimpl.SizeCache 86 unknownFields protoimpl.UnknownFields 87 88 // Types that are assignable to TargetTag: 89 // *RoutingRule_Tag 90 // *RoutingRule_BalancingTag 91 TargetTag isRoutingRule_TargetTag `protobuf_oneof:"target_tag"` 92 // List of domains for target domain matching. 93 Domain []*routercommon.Domain `protobuf:"bytes,2,rep,name=domain,proto3" json:"domain,omitempty"` 94 // List of CIDRs for target IP address matching. 95 // Deprecated. Use geoip below. 96 // 97 // Deprecated: Do not use. 98 Cidr []*routercommon.CIDR `protobuf:"bytes,3,rep,name=cidr,proto3" json:"cidr,omitempty"` 99 // List of GeoIPs for target IP address matching. If this entry exists, the 100 // cidr above will have no effect. GeoIP fields with the same country code are 101 // supposed to contain exactly same content. They will be merged during 102 // runtime. For customized GeoIPs, please leave country code empty. 103 Geoip []*routercommon.GeoIP `protobuf:"bytes,10,rep,name=geoip,proto3" json:"geoip,omitempty"` 104 // A range of port [from, to]. If the destination port is in this range, this 105 // rule takes effect. Deprecated. Use port_list. 106 // 107 // Deprecated: Do not use. 108 PortRange *net.PortRange `protobuf:"bytes,4,opt,name=port_range,json=portRange,proto3" json:"port_range,omitempty"` 109 // List of ports. 110 PortList *net.PortList `protobuf:"bytes,14,opt,name=port_list,json=portList,proto3" json:"port_list,omitempty"` 111 // List of networks. Deprecated. Use networks. 112 // 113 // Deprecated: Do not use. 114 NetworkList *net.NetworkList `protobuf:"bytes,5,opt,name=network_list,json=networkList,proto3" json:"network_list,omitempty"` 115 // List of networks for matching. 116 Networks []net.Network `protobuf:"varint,13,rep,packed,name=networks,proto3,enum=v2ray.core.common.net.Network" json:"networks,omitempty"` 117 // List of CIDRs for source IP address matching. 118 // 119 // Deprecated: Do not use. 120 SourceCidr []*routercommon.CIDR `protobuf:"bytes,6,rep,name=source_cidr,json=sourceCidr,proto3" json:"source_cidr,omitempty"` 121 // List of GeoIPs for source IP address matching. If this entry exists, the 122 // source_cidr above will have no effect. 123 SourceGeoip []*routercommon.GeoIP `protobuf:"bytes,11,rep,name=source_geoip,json=sourceGeoip,proto3" json:"source_geoip,omitempty"` 124 // List of ports for source port matching. 125 SourcePortList *net.PortList `protobuf:"bytes,16,opt,name=source_port_list,json=sourcePortList,proto3" json:"source_port_list,omitempty"` 126 UserEmail []string `protobuf:"bytes,7,rep,name=user_email,json=userEmail,proto3" json:"user_email,omitempty"` 127 InboundTag []string `protobuf:"bytes,8,rep,name=inbound_tag,json=inboundTag,proto3" json:"inbound_tag,omitempty"` 128 Protocol []string `protobuf:"bytes,9,rep,name=protocol,proto3" json:"protocol,omitempty"` 129 Attributes string `protobuf:"bytes,15,opt,name=attributes,proto3" json:"attributes,omitempty"` 130 DomainMatcher string `protobuf:"bytes,17,opt,name=domain_matcher,json=domainMatcher,proto3" json:"domain_matcher,omitempty"` 131 // geo_domain instruct simplified config loader to load geo domain rule and fill in domain field. 132 GeoDomain []*routercommon.GeoSite `protobuf:"bytes,68001,rep,name=geo_domain,json=geoDomain,proto3" json:"geo_domain,omitempty"` 133 } 134 135 func (x *RoutingRule) Reset() { 136 *x = RoutingRule{} 137 if protoimpl.UnsafeEnabled { 138 mi := &file_app_router_config_proto_msgTypes[0] 139 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 140 ms.StoreMessageInfo(mi) 141 } 142 } 143 144 func (x *RoutingRule) String() string { 145 return protoimpl.X.MessageStringOf(x) 146 } 147 148 func (*RoutingRule) ProtoMessage() {} 149 150 func (x *RoutingRule) ProtoReflect() protoreflect.Message { 151 mi := &file_app_router_config_proto_msgTypes[0] 152 if protoimpl.UnsafeEnabled && x != nil { 153 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 154 if ms.LoadMessageInfo() == nil { 155 ms.StoreMessageInfo(mi) 156 } 157 return ms 158 } 159 return mi.MessageOf(x) 160 } 161 162 // Deprecated: Use RoutingRule.ProtoReflect.Descriptor instead. 163 func (*RoutingRule) Descriptor() ([]byte, []int) { 164 return file_app_router_config_proto_rawDescGZIP(), []int{0} 165 } 166 167 func (m *RoutingRule) GetTargetTag() isRoutingRule_TargetTag { 168 if m != nil { 169 return m.TargetTag 170 } 171 return nil 172 } 173 174 func (x *RoutingRule) GetTag() string { 175 if x, ok := x.GetTargetTag().(*RoutingRule_Tag); ok { 176 return x.Tag 177 } 178 return "" 179 } 180 181 func (x *RoutingRule) GetBalancingTag() string { 182 if x, ok := x.GetTargetTag().(*RoutingRule_BalancingTag); ok { 183 return x.BalancingTag 184 } 185 return "" 186 } 187 188 func (x *RoutingRule) GetDomain() []*routercommon.Domain { 189 if x != nil { 190 return x.Domain 191 } 192 return nil 193 } 194 195 // Deprecated: Do not use. 196 func (x *RoutingRule) GetCidr() []*routercommon.CIDR { 197 if x != nil { 198 return x.Cidr 199 } 200 return nil 201 } 202 203 func (x *RoutingRule) GetGeoip() []*routercommon.GeoIP { 204 if x != nil { 205 return x.Geoip 206 } 207 return nil 208 } 209 210 // Deprecated: Do not use. 211 func (x *RoutingRule) GetPortRange() *net.PortRange { 212 if x != nil { 213 return x.PortRange 214 } 215 return nil 216 } 217 218 func (x *RoutingRule) GetPortList() *net.PortList { 219 if x != nil { 220 return x.PortList 221 } 222 return nil 223 } 224 225 // Deprecated: Do not use. 226 func (x *RoutingRule) GetNetworkList() *net.NetworkList { 227 if x != nil { 228 return x.NetworkList 229 } 230 return nil 231 } 232 233 func (x *RoutingRule) GetNetworks() []net.Network { 234 if x != nil { 235 return x.Networks 236 } 237 return nil 238 } 239 240 // Deprecated: Do not use. 241 func (x *RoutingRule) GetSourceCidr() []*routercommon.CIDR { 242 if x != nil { 243 return x.SourceCidr 244 } 245 return nil 246 } 247 248 func (x *RoutingRule) GetSourceGeoip() []*routercommon.GeoIP { 249 if x != nil { 250 return x.SourceGeoip 251 } 252 return nil 253 } 254 255 func (x *RoutingRule) GetSourcePortList() *net.PortList { 256 if x != nil { 257 return x.SourcePortList 258 } 259 return nil 260 } 261 262 func (x *RoutingRule) GetUserEmail() []string { 263 if x != nil { 264 return x.UserEmail 265 } 266 return nil 267 } 268 269 func (x *RoutingRule) GetInboundTag() []string { 270 if x != nil { 271 return x.InboundTag 272 } 273 return nil 274 } 275 276 func (x *RoutingRule) GetProtocol() []string { 277 if x != nil { 278 return x.Protocol 279 } 280 return nil 281 } 282 283 func (x *RoutingRule) GetAttributes() string { 284 if x != nil { 285 return x.Attributes 286 } 287 return "" 288 } 289 290 func (x *RoutingRule) GetDomainMatcher() string { 291 if x != nil { 292 return x.DomainMatcher 293 } 294 return "" 295 } 296 297 func (x *RoutingRule) GetGeoDomain() []*routercommon.GeoSite { 298 if x != nil { 299 return x.GeoDomain 300 } 301 return nil 302 } 303 304 type isRoutingRule_TargetTag interface { 305 isRoutingRule_TargetTag() 306 } 307 308 type RoutingRule_Tag struct { 309 // Tag of outbound that this rule is pointing to. 310 Tag string `protobuf:"bytes,1,opt,name=tag,proto3,oneof"` 311 } 312 313 type RoutingRule_BalancingTag struct { 314 // Tag of routing balancer. 315 BalancingTag string `protobuf:"bytes,12,opt,name=balancing_tag,json=balancingTag,proto3,oneof"` 316 } 317 318 func (*RoutingRule_Tag) isRoutingRule_TargetTag() {} 319 320 func (*RoutingRule_BalancingTag) isRoutingRule_TargetTag() {} 321 322 type BalancingRule struct { 323 state protoimpl.MessageState 324 sizeCache protoimpl.SizeCache 325 unknownFields protoimpl.UnknownFields 326 327 Tag string `protobuf:"bytes,1,opt,name=tag,proto3" json:"tag,omitempty"` 328 OutboundSelector []string `protobuf:"bytes,2,rep,name=outbound_selector,json=outboundSelector,proto3" json:"outbound_selector,omitempty"` 329 Strategy string `protobuf:"bytes,3,opt,name=strategy,proto3" json:"strategy,omitempty"` 330 StrategySettings *any.Any `protobuf:"bytes,4,opt,name=strategy_settings,json=strategySettings,proto3" json:"strategy_settings,omitempty"` 331 FallbackTag string `protobuf:"bytes,5,opt,name=fallback_tag,json=fallbackTag,proto3" json:"fallback_tag,omitempty"` 332 } 333 334 func (x *BalancingRule) Reset() { 335 *x = BalancingRule{} 336 if protoimpl.UnsafeEnabled { 337 mi := &file_app_router_config_proto_msgTypes[1] 338 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 339 ms.StoreMessageInfo(mi) 340 } 341 } 342 343 func (x *BalancingRule) String() string { 344 return protoimpl.X.MessageStringOf(x) 345 } 346 347 func (*BalancingRule) ProtoMessage() {} 348 349 func (x *BalancingRule) ProtoReflect() protoreflect.Message { 350 mi := &file_app_router_config_proto_msgTypes[1] 351 if protoimpl.UnsafeEnabled && x != nil { 352 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 353 if ms.LoadMessageInfo() == nil { 354 ms.StoreMessageInfo(mi) 355 } 356 return ms 357 } 358 return mi.MessageOf(x) 359 } 360 361 // Deprecated: Use BalancingRule.ProtoReflect.Descriptor instead. 362 func (*BalancingRule) Descriptor() ([]byte, []int) { 363 return file_app_router_config_proto_rawDescGZIP(), []int{1} 364 } 365 366 func (x *BalancingRule) GetTag() string { 367 if x != nil { 368 return x.Tag 369 } 370 return "" 371 } 372 373 func (x *BalancingRule) GetOutboundSelector() []string { 374 if x != nil { 375 return x.OutboundSelector 376 } 377 return nil 378 } 379 380 func (x *BalancingRule) GetStrategy() string { 381 if x != nil { 382 return x.Strategy 383 } 384 return "" 385 } 386 387 func (x *BalancingRule) GetStrategySettings() *any.Any { 388 if x != nil { 389 return x.StrategySettings 390 } 391 return nil 392 } 393 394 func (x *BalancingRule) GetFallbackTag() string { 395 if x != nil { 396 return x.FallbackTag 397 } 398 return "" 399 } 400 401 type StrategyWeight struct { 402 state protoimpl.MessageState 403 sizeCache protoimpl.SizeCache 404 unknownFields protoimpl.UnknownFields 405 406 Regexp bool `protobuf:"varint,1,opt,name=regexp,proto3" json:"regexp,omitempty"` 407 Match string `protobuf:"bytes,2,opt,name=match,proto3" json:"match,omitempty"` 408 Value float32 `protobuf:"fixed32,3,opt,name=value,proto3" json:"value,omitempty"` 409 } 410 411 func (x *StrategyWeight) Reset() { 412 *x = StrategyWeight{} 413 if protoimpl.UnsafeEnabled { 414 mi := &file_app_router_config_proto_msgTypes[2] 415 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 416 ms.StoreMessageInfo(mi) 417 } 418 } 419 420 func (x *StrategyWeight) String() string { 421 return protoimpl.X.MessageStringOf(x) 422 } 423 424 func (*StrategyWeight) ProtoMessage() {} 425 426 func (x *StrategyWeight) ProtoReflect() protoreflect.Message { 427 mi := &file_app_router_config_proto_msgTypes[2] 428 if protoimpl.UnsafeEnabled && x != nil { 429 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 430 if ms.LoadMessageInfo() == nil { 431 ms.StoreMessageInfo(mi) 432 } 433 return ms 434 } 435 return mi.MessageOf(x) 436 } 437 438 // Deprecated: Use StrategyWeight.ProtoReflect.Descriptor instead. 439 func (*StrategyWeight) Descriptor() ([]byte, []int) { 440 return file_app_router_config_proto_rawDescGZIP(), []int{2} 441 } 442 443 func (x *StrategyWeight) GetRegexp() bool { 444 if x != nil { 445 return x.Regexp 446 } 447 return false 448 } 449 450 func (x *StrategyWeight) GetMatch() string { 451 if x != nil { 452 return x.Match 453 } 454 return "" 455 } 456 457 func (x *StrategyWeight) GetValue() float32 { 458 if x != nil { 459 return x.Value 460 } 461 return 0 462 } 463 464 type StrategyRandomConfig struct { 465 state protoimpl.MessageState 466 sizeCache protoimpl.SizeCache 467 unknownFields protoimpl.UnknownFields 468 469 ObserverTag string `protobuf:"bytes,7,opt,name=observer_tag,json=observerTag,proto3" json:"observer_tag,omitempty"` 470 AliveOnly bool `protobuf:"varint,8,opt,name=alive_only,json=aliveOnly,proto3" json:"alive_only,omitempty"` 471 } 472 473 func (x *StrategyRandomConfig) Reset() { 474 *x = StrategyRandomConfig{} 475 if protoimpl.UnsafeEnabled { 476 mi := &file_app_router_config_proto_msgTypes[3] 477 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 478 ms.StoreMessageInfo(mi) 479 } 480 } 481 482 func (x *StrategyRandomConfig) String() string { 483 return protoimpl.X.MessageStringOf(x) 484 } 485 486 func (*StrategyRandomConfig) ProtoMessage() {} 487 488 func (x *StrategyRandomConfig) ProtoReflect() protoreflect.Message { 489 mi := &file_app_router_config_proto_msgTypes[3] 490 if protoimpl.UnsafeEnabled && x != nil { 491 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 492 if ms.LoadMessageInfo() == nil { 493 ms.StoreMessageInfo(mi) 494 } 495 return ms 496 } 497 return mi.MessageOf(x) 498 } 499 500 // Deprecated: Use StrategyRandomConfig.ProtoReflect.Descriptor instead. 501 func (*StrategyRandomConfig) Descriptor() ([]byte, []int) { 502 return file_app_router_config_proto_rawDescGZIP(), []int{3} 503 } 504 505 func (x *StrategyRandomConfig) GetObserverTag() string { 506 if x != nil { 507 return x.ObserverTag 508 } 509 return "" 510 } 511 512 func (x *StrategyRandomConfig) GetAliveOnly() bool { 513 if x != nil { 514 return x.AliveOnly 515 } 516 return false 517 } 518 519 type StrategyLeastPingConfig struct { 520 state protoimpl.MessageState 521 sizeCache protoimpl.SizeCache 522 unknownFields protoimpl.UnknownFields 523 524 ObserverTag string `protobuf:"bytes,7,opt,name=observer_tag,json=observerTag,proto3" json:"observer_tag,omitempty"` 525 } 526 527 func (x *StrategyLeastPingConfig) Reset() { 528 *x = StrategyLeastPingConfig{} 529 if protoimpl.UnsafeEnabled { 530 mi := &file_app_router_config_proto_msgTypes[4] 531 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 532 ms.StoreMessageInfo(mi) 533 } 534 } 535 536 func (x *StrategyLeastPingConfig) String() string { 537 return protoimpl.X.MessageStringOf(x) 538 } 539 540 func (*StrategyLeastPingConfig) ProtoMessage() {} 541 542 func (x *StrategyLeastPingConfig) ProtoReflect() protoreflect.Message { 543 mi := &file_app_router_config_proto_msgTypes[4] 544 if protoimpl.UnsafeEnabled && x != nil { 545 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 546 if ms.LoadMessageInfo() == nil { 547 ms.StoreMessageInfo(mi) 548 } 549 return ms 550 } 551 return mi.MessageOf(x) 552 } 553 554 // Deprecated: Use StrategyLeastPingConfig.ProtoReflect.Descriptor instead. 555 func (*StrategyLeastPingConfig) Descriptor() ([]byte, []int) { 556 return file_app_router_config_proto_rawDescGZIP(), []int{4} 557 } 558 559 func (x *StrategyLeastPingConfig) GetObserverTag() string { 560 if x != nil { 561 return x.ObserverTag 562 } 563 return "" 564 } 565 566 type StrategyLeastLoadConfig struct { 567 state protoimpl.MessageState 568 sizeCache protoimpl.SizeCache 569 unknownFields protoimpl.UnknownFields 570 571 // weight settings 572 Costs []*StrategyWeight `protobuf:"bytes,2,rep,name=costs,proto3" json:"costs,omitempty"` 573 // RTT baselines for selecting, int64 values of time.Duration 574 Baselines []int64 `protobuf:"varint,3,rep,packed,name=baselines,proto3" json:"baselines,omitempty"` 575 // expected nodes count to select 576 Expected int32 `protobuf:"varint,4,opt,name=expected,proto3" json:"expected,omitempty"` 577 // max acceptable rtt, filter away high delay nodes. defalut 0 578 MaxRTT int64 `protobuf:"varint,5,opt,name=maxRTT,proto3" json:"maxRTT,omitempty"` 579 // acceptable failure rate 580 Tolerance float32 `protobuf:"fixed32,6,opt,name=tolerance,proto3" json:"tolerance,omitempty"` 581 ObserverTag string `protobuf:"bytes,7,opt,name=observer_tag,json=observerTag,proto3" json:"observer_tag,omitempty"` 582 } 583 584 func (x *StrategyLeastLoadConfig) Reset() { 585 *x = StrategyLeastLoadConfig{} 586 if protoimpl.UnsafeEnabled { 587 mi := &file_app_router_config_proto_msgTypes[5] 588 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 589 ms.StoreMessageInfo(mi) 590 } 591 } 592 593 func (x *StrategyLeastLoadConfig) String() string { 594 return protoimpl.X.MessageStringOf(x) 595 } 596 597 func (*StrategyLeastLoadConfig) ProtoMessage() {} 598 599 func (x *StrategyLeastLoadConfig) ProtoReflect() protoreflect.Message { 600 mi := &file_app_router_config_proto_msgTypes[5] 601 if protoimpl.UnsafeEnabled && x != nil { 602 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 603 if ms.LoadMessageInfo() == nil { 604 ms.StoreMessageInfo(mi) 605 } 606 return ms 607 } 608 return mi.MessageOf(x) 609 } 610 611 // Deprecated: Use StrategyLeastLoadConfig.ProtoReflect.Descriptor instead. 612 func (*StrategyLeastLoadConfig) Descriptor() ([]byte, []int) { 613 return file_app_router_config_proto_rawDescGZIP(), []int{5} 614 } 615 616 func (x *StrategyLeastLoadConfig) GetCosts() []*StrategyWeight { 617 if x != nil { 618 return x.Costs 619 } 620 return nil 621 } 622 623 func (x *StrategyLeastLoadConfig) GetBaselines() []int64 { 624 if x != nil { 625 return x.Baselines 626 } 627 return nil 628 } 629 630 func (x *StrategyLeastLoadConfig) GetExpected() int32 { 631 if x != nil { 632 return x.Expected 633 } 634 return 0 635 } 636 637 func (x *StrategyLeastLoadConfig) GetMaxRTT() int64 { 638 if x != nil { 639 return x.MaxRTT 640 } 641 return 0 642 } 643 644 func (x *StrategyLeastLoadConfig) GetTolerance() float32 { 645 if x != nil { 646 return x.Tolerance 647 } 648 return 0 649 } 650 651 func (x *StrategyLeastLoadConfig) GetObserverTag() string { 652 if x != nil { 653 return x.ObserverTag 654 } 655 return "" 656 } 657 658 type Config struct { 659 state protoimpl.MessageState 660 sizeCache protoimpl.SizeCache 661 unknownFields protoimpl.UnknownFields 662 663 DomainStrategy DomainStrategy `protobuf:"varint,1,opt,name=domain_strategy,json=domainStrategy,proto3,enum=v2ray.core.app.router.DomainStrategy" json:"domain_strategy,omitempty"` 664 Rule []*RoutingRule `protobuf:"bytes,2,rep,name=rule,proto3" json:"rule,omitempty"` 665 BalancingRule []*BalancingRule `protobuf:"bytes,3,rep,name=balancing_rule,json=balancingRule,proto3" json:"balancing_rule,omitempty"` 666 } 667 668 func (x *Config) Reset() { 669 *x = Config{} 670 if protoimpl.UnsafeEnabled { 671 mi := &file_app_router_config_proto_msgTypes[6] 672 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 673 ms.StoreMessageInfo(mi) 674 } 675 } 676 677 func (x *Config) String() string { 678 return protoimpl.X.MessageStringOf(x) 679 } 680 681 func (*Config) ProtoMessage() {} 682 683 func (x *Config) ProtoReflect() protoreflect.Message { 684 mi := &file_app_router_config_proto_msgTypes[6] 685 if protoimpl.UnsafeEnabled && x != nil { 686 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 687 if ms.LoadMessageInfo() == nil { 688 ms.StoreMessageInfo(mi) 689 } 690 return ms 691 } 692 return mi.MessageOf(x) 693 } 694 695 // Deprecated: Use Config.ProtoReflect.Descriptor instead. 696 func (*Config) Descriptor() ([]byte, []int) { 697 return file_app_router_config_proto_rawDescGZIP(), []int{6} 698 } 699 700 func (x *Config) GetDomainStrategy() DomainStrategy { 701 if x != nil { 702 return x.DomainStrategy 703 } 704 return DomainStrategy_AsIs 705 } 706 707 func (x *Config) GetRule() []*RoutingRule { 708 if x != nil { 709 return x.Rule 710 } 711 return nil 712 } 713 714 func (x *Config) GetBalancingRule() []*BalancingRule { 715 if x != nil { 716 return x.BalancingRule 717 } 718 return nil 719 } 720 721 type SimplifiedRoutingRule struct { 722 state protoimpl.MessageState 723 sizeCache protoimpl.SizeCache 724 unknownFields protoimpl.UnknownFields 725 726 // Types that are assignable to TargetTag: 727 // *SimplifiedRoutingRule_Tag 728 // *SimplifiedRoutingRule_BalancingTag 729 TargetTag isSimplifiedRoutingRule_TargetTag `protobuf_oneof:"target_tag"` 730 // List of domains for target domain matching. 731 Domain []*routercommon.Domain `protobuf:"bytes,2,rep,name=domain,proto3" json:"domain,omitempty"` 732 // List of GeoIPs for target IP address matching. If this entry exists, the 733 // cidr above will have no effect. GeoIP fields with the same country code are 734 // supposed to contain exactly same content. They will be merged during 735 // runtime. For customized GeoIPs, please leave country code empty. 736 Geoip []*routercommon.GeoIP `protobuf:"bytes,10,rep,name=geoip,proto3" json:"geoip,omitempty"` 737 // List of ports. 738 PortList string `protobuf:"bytes,14,opt,name=port_list,json=portList,proto3" json:"port_list,omitempty"` 739 // List of networks for matching. 740 Networks *net.NetworkList `protobuf:"bytes,13,opt,name=networks,proto3" json:"networks,omitempty"` 741 // List of GeoIPs for source IP address matching. If this entry exists, the 742 // source_cidr above will have no effect. 743 SourceGeoip []*routercommon.GeoIP `protobuf:"bytes,11,rep,name=source_geoip,json=sourceGeoip,proto3" json:"source_geoip,omitempty"` 744 // List of ports for source port matching. 745 SourcePortList string `protobuf:"bytes,16,opt,name=source_port_list,json=sourcePortList,proto3" json:"source_port_list,omitempty"` 746 UserEmail []string `protobuf:"bytes,7,rep,name=user_email,json=userEmail,proto3" json:"user_email,omitempty"` 747 InboundTag []string `protobuf:"bytes,8,rep,name=inbound_tag,json=inboundTag,proto3" json:"inbound_tag,omitempty"` 748 Protocol []string `protobuf:"bytes,9,rep,name=protocol,proto3" json:"protocol,omitempty"` 749 Attributes string `protobuf:"bytes,15,opt,name=attributes,proto3" json:"attributes,omitempty"` 750 DomainMatcher string `protobuf:"bytes,17,opt,name=domain_matcher,json=domainMatcher,proto3" json:"domain_matcher,omitempty"` 751 // geo_domain instruct simplified config loader to load geo domain rule and fill in domain field. 752 GeoDomain []*routercommon.GeoSite `protobuf:"bytes,68001,rep,name=geo_domain,json=geoDomain,proto3" json:"geo_domain,omitempty"` 753 } 754 755 func (x *SimplifiedRoutingRule) Reset() { 756 *x = SimplifiedRoutingRule{} 757 if protoimpl.UnsafeEnabled { 758 mi := &file_app_router_config_proto_msgTypes[7] 759 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 760 ms.StoreMessageInfo(mi) 761 } 762 } 763 764 func (x *SimplifiedRoutingRule) String() string { 765 return protoimpl.X.MessageStringOf(x) 766 } 767 768 func (*SimplifiedRoutingRule) ProtoMessage() {} 769 770 func (x *SimplifiedRoutingRule) ProtoReflect() protoreflect.Message { 771 mi := &file_app_router_config_proto_msgTypes[7] 772 if protoimpl.UnsafeEnabled && x != nil { 773 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 774 if ms.LoadMessageInfo() == nil { 775 ms.StoreMessageInfo(mi) 776 } 777 return ms 778 } 779 return mi.MessageOf(x) 780 } 781 782 // Deprecated: Use SimplifiedRoutingRule.ProtoReflect.Descriptor instead. 783 func (*SimplifiedRoutingRule) Descriptor() ([]byte, []int) { 784 return file_app_router_config_proto_rawDescGZIP(), []int{7} 785 } 786 787 func (m *SimplifiedRoutingRule) GetTargetTag() isSimplifiedRoutingRule_TargetTag { 788 if m != nil { 789 return m.TargetTag 790 } 791 return nil 792 } 793 794 func (x *SimplifiedRoutingRule) GetTag() string { 795 if x, ok := x.GetTargetTag().(*SimplifiedRoutingRule_Tag); ok { 796 return x.Tag 797 } 798 return "" 799 } 800 801 func (x *SimplifiedRoutingRule) GetBalancingTag() string { 802 if x, ok := x.GetTargetTag().(*SimplifiedRoutingRule_BalancingTag); ok { 803 return x.BalancingTag 804 } 805 return "" 806 } 807 808 func (x *SimplifiedRoutingRule) GetDomain() []*routercommon.Domain { 809 if x != nil { 810 return x.Domain 811 } 812 return nil 813 } 814 815 func (x *SimplifiedRoutingRule) GetGeoip() []*routercommon.GeoIP { 816 if x != nil { 817 return x.Geoip 818 } 819 return nil 820 } 821 822 func (x *SimplifiedRoutingRule) GetPortList() string { 823 if x != nil { 824 return x.PortList 825 } 826 return "" 827 } 828 829 func (x *SimplifiedRoutingRule) GetNetworks() *net.NetworkList { 830 if x != nil { 831 return x.Networks 832 } 833 return nil 834 } 835 836 func (x *SimplifiedRoutingRule) GetSourceGeoip() []*routercommon.GeoIP { 837 if x != nil { 838 return x.SourceGeoip 839 } 840 return nil 841 } 842 843 func (x *SimplifiedRoutingRule) GetSourcePortList() string { 844 if x != nil { 845 return x.SourcePortList 846 } 847 return "" 848 } 849 850 func (x *SimplifiedRoutingRule) GetUserEmail() []string { 851 if x != nil { 852 return x.UserEmail 853 } 854 return nil 855 } 856 857 func (x *SimplifiedRoutingRule) GetInboundTag() []string { 858 if x != nil { 859 return x.InboundTag 860 } 861 return nil 862 } 863 864 func (x *SimplifiedRoutingRule) GetProtocol() []string { 865 if x != nil { 866 return x.Protocol 867 } 868 return nil 869 } 870 871 func (x *SimplifiedRoutingRule) GetAttributes() string { 872 if x != nil { 873 return x.Attributes 874 } 875 return "" 876 } 877 878 func (x *SimplifiedRoutingRule) GetDomainMatcher() string { 879 if x != nil { 880 return x.DomainMatcher 881 } 882 return "" 883 } 884 885 func (x *SimplifiedRoutingRule) GetGeoDomain() []*routercommon.GeoSite { 886 if x != nil { 887 return x.GeoDomain 888 } 889 return nil 890 } 891 892 type isSimplifiedRoutingRule_TargetTag interface { 893 isSimplifiedRoutingRule_TargetTag() 894 } 895 896 type SimplifiedRoutingRule_Tag struct { 897 // Tag of outbound that this rule is pointing to. 898 Tag string `protobuf:"bytes,1,opt,name=tag,proto3,oneof"` 899 } 900 901 type SimplifiedRoutingRule_BalancingTag struct { 902 // Tag of routing balancer. 903 BalancingTag string `protobuf:"bytes,12,opt,name=balancing_tag,json=balancingTag,proto3,oneof"` 904 } 905 906 func (*SimplifiedRoutingRule_Tag) isSimplifiedRoutingRule_TargetTag() {} 907 908 func (*SimplifiedRoutingRule_BalancingTag) isSimplifiedRoutingRule_TargetTag() {} 909 910 type SimplifiedConfig struct { 911 state protoimpl.MessageState 912 sizeCache protoimpl.SizeCache 913 unknownFields protoimpl.UnknownFields 914 915 DomainStrategy DomainStrategy `protobuf:"varint,1,opt,name=domain_strategy,json=domainStrategy,proto3,enum=v2ray.core.app.router.DomainStrategy" json:"domain_strategy,omitempty"` 916 Rule []*SimplifiedRoutingRule `protobuf:"bytes,2,rep,name=rule,proto3" json:"rule,omitempty"` 917 BalancingRule []*BalancingRule `protobuf:"bytes,3,rep,name=balancing_rule,json=balancingRule,proto3" json:"balancing_rule,omitempty"` 918 } 919 920 func (x *SimplifiedConfig) Reset() { 921 *x = SimplifiedConfig{} 922 if protoimpl.UnsafeEnabled { 923 mi := &file_app_router_config_proto_msgTypes[8] 924 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 925 ms.StoreMessageInfo(mi) 926 } 927 } 928 929 func (x *SimplifiedConfig) String() string { 930 return protoimpl.X.MessageStringOf(x) 931 } 932 933 func (*SimplifiedConfig) ProtoMessage() {} 934 935 func (x *SimplifiedConfig) ProtoReflect() protoreflect.Message { 936 mi := &file_app_router_config_proto_msgTypes[8] 937 if protoimpl.UnsafeEnabled && x != nil { 938 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 939 if ms.LoadMessageInfo() == nil { 940 ms.StoreMessageInfo(mi) 941 } 942 return ms 943 } 944 return mi.MessageOf(x) 945 } 946 947 // Deprecated: Use SimplifiedConfig.ProtoReflect.Descriptor instead. 948 func (*SimplifiedConfig) Descriptor() ([]byte, []int) { 949 return file_app_router_config_proto_rawDescGZIP(), []int{8} 950 } 951 952 func (x *SimplifiedConfig) GetDomainStrategy() DomainStrategy { 953 if x != nil { 954 return x.DomainStrategy 955 } 956 return DomainStrategy_AsIs 957 } 958 959 func (x *SimplifiedConfig) GetRule() []*SimplifiedRoutingRule { 960 if x != nil { 961 return x.Rule 962 } 963 return nil 964 } 965 966 func (x *SimplifiedConfig) GetBalancingRule() []*BalancingRule { 967 if x != nil { 968 return x.BalancingRule 969 } 970 return nil 971 } 972 973 var File_app_router_config_proto protoreflect.FileDescriptor 974 975 var file_app_router_config_proto_rawDesc = []byte{ 976 0x0a, 0x17, 0x61, 0x70, 0x70, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x2f, 0x63, 0x6f, 0x6e, 977 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x15, 0x76, 0x32, 0x72, 0x61, 0x79, 978 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 979 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 980 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x15, 0x63, 0x6f, 0x6d, 981 0x6d, 0x6f, 0x6e, 0x2f, 0x6e, 0x65, 0x74, 0x2f, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x70, 0x72, 0x6f, 982 0x74, 0x6f, 0x1a, 0x18, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x6e, 0x65, 0x74, 0x2f, 0x6e, 983 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x63, 0x6f, 984 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x65, 0x78, 0x74, 0x2f, 0x65, 0x78, 985 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 986 0x61, 0x70, 0x70, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, 987 0x72, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 988 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x80, 0x08, 0x0a, 0x0b, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 989 0x52, 0x75, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 990 0x09, 0x48, 0x00, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x25, 0x0a, 0x0d, 0x62, 0x61, 0x6c, 0x61, 991 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x48, 992 0x00, 0x52, 0x0c, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x67, 0x12, 993 0x42, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 994 0x2a, 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x70, 0x70, 995 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x63, 0x6f, 996 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x06, 0x64, 0x6f, 0x6d, 997 0x61, 0x69, 0x6e, 0x12, 0x40, 0x0a, 0x04, 0x63, 0x69, 0x64, 0x72, 0x18, 0x03, 0x20, 0x03, 0x28, 998 0x0b, 0x32, 0x28, 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x61, 999 0x70, 0x70, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 1000 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x49, 0x44, 0x52, 0x42, 0x02, 0x18, 0x01, 0x52, 1001 0x04, 0x63, 0x69, 0x64, 0x72, 0x12, 0x3f, 0x0a, 0x05, 0x67, 0x65, 0x6f, 0x69, 0x70, 0x18, 0x0a, 1002 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f, 0x72, 1003 0x65, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x2e, 0x72, 0x6f, 0x75, 1004 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x6f, 0x49, 0x50, 0x52, 1005 0x05, 0x67, 0x65, 0x6f, 0x69, 0x70, 0x12, 0x43, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 1006 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x76, 0x32, 0x72, 1007 0x61, 0x79, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x6e, 1008 0x65, 0x74, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x02, 0x18, 0x01, 1009 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x70, 1010 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 1011 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 1012 0x6f, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 1013 0x08, 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x49, 0x0a, 0x0c, 0x6e, 0x65, 0x74, 1014 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 1015 0x22, 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 1016 0x6d, 0x6f, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 1017 0x69, 0x73, 0x74, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0b, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 1018 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x08, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 1019 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 1020 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x2e, 0x4e, 1021 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x08, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 1022 0x12, 0x4d, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x69, 0x64, 0x72, 0x18, 1023 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f, 1024 0x72, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x2e, 0x72, 0x6f, 1025 0x75, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x49, 0x44, 0x52, 0x42, 1026 0x02, 0x18, 0x01, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x69, 0x64, 0x72, 0x12, 1027 0x4c, 0x0a, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x67, 0x65, 0x6f, 0x69, 0x70, 0x18, 1028 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f, 1029 0x72, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x2e, 0x72, 0x6f, 1030 0x75, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x6f, 0x49, 0x50, 1031 0x52, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x65, 0x6f, 0x69, 0x70, 0x12, 0x49, 0x0a, 1032 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x73, 1033 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 1034 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x2e, 1035 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 1036 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 1037 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x75, 0x73, 1038 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x62, 0x6f, 0x75, 1039 0x6e, 0x64, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 1040 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 1041 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 1042 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 1043 0x65, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 1044 0x75, 0x74, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x6d, 1045 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x6f, 1046 0x6d, 0x61, 0x69, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x0a, 0x67, 1047 0x65, 0x6f, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0xa1, 0x93, 0x04, 0x20, 0x03, 0x28, 1048 0x0b, 0x32, 0x2b, 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x61, 1049 0x70, 0x70, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 1050 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x6f, 0x53, 0x69, 0x74, 0x65, 0x52, 0x09, 1051 0x67, 0x65, 0x6f, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x74, 0x61, 0x72, 1052 0x67, 0x65, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x22, 0xd0, 0x01, 0x0a, 0x0d, 0x42, 0x61, 0x6c, 0x61, 1053 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 1054 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x2b, 0x0a, 0x11, 0x6f, 1055 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 1056 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 1057 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x61, 1058 0x74, 0x65, 0x67, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x72, 0x61, 1059 0x74, 0x65, 0x67, 0x79, 0x12, 0x41, 0x0a, 0x11, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 1060 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 1061 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 1062 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x10, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x53, 1063 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x61, 0x6c, 0x6c, 0x62, 1064 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 1065 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x54, 0x61, 0x67, 0x22, 0x54, 0x0a, 0x0e, 0x53, 0x74, 1066 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x16, 0x0a, 0x06, 1067 0x72, 0x65, 0x67, 0x65, 0x78, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x72, 0x65, 1068 0x67, 0x65, 0x78, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 1069 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 1070 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 1071 0x22, 0x74, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x52, 0x61, 0x6e, 0x64, 1072 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x62, 0x73, 0x65, 1073 0x72, 0x76, 0x65, 0x72, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 1074 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x61, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 1075 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 1076 0x09, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x3a, 0x1a, 0x82, 0xb5, 0x18, 0x0a, 1077 0x0a, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x82, 0xb5, 0x18, 0x08, 0x12, 0x06, 1078 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x22, 0x5b, 0x0a, 0x17, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 1079 0x67, 0x79, 0x4c, 0x65, 0x61, 0x73, 0x74, 0x50, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 1080 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x74, 0x61, 1081 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 1082 0x72, 0x54, 0x61, 0x67, 0x3a, 0x1d, 0x82, 0xb5, 0x18, 0x0a, 0x0a, 0x08, 0x62, 0x61, 0x6c, 0x61, 1083 0x6e, 0x63, 0x65, 0x72, 0x82, 0xb5, 0x18, 0x0b, 0x12, 0x09, 0x6c, 0x65, 0x61, 0x73, 0x74, 0x70, 1084 0x69, 0x6e, 0x67, 0x22, 0x88, 0x02, 0x0a, 0x17, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 1085 0x4c, 0x65, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 1086 0x3b, 0x0a, 0x05, 0x63, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 1087 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x2e, 1088 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x57, 1089 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x05, 0x63, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 1090 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 1091 0x09, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 1092 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, 0x78, 1093 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x78, 0x52, 0x54, 0x54, 1094 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x52, 0x54, 0x54, 0x12, 0x1c, 1095 0x0a, 0x09, 0x74, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 1096 0x02, 0x52, 0x09, 0x74, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 1097 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, 1098 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x61, 0x67, 0x3a, 1099 0x1d, 0x82, 0xb5, 0x18, 0x0a, 0x0a, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x82, 1100 0xb5, 0x18, 0x0b, 0x12, 0x09, 0x6c, 0x65, 0x61, 0x73, 0x74, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0xdd, 1101 0x01, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4e, 0x0a, 0x0f, 0x64, 0x6f, 0x6d, 1102 0x61, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, 0x01, 0x20, 0x01, 1103 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 1104 0x61, 0x70, 0x70, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x2e, 0x44, 0x6f, 0x6d, 0x61, 0x69, 1105 0x6e, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x52, 0x0e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 1106 0x6e, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x36, 0x0a, 0x04, 0x72, 0x75, 0x6c, 1107 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 1108 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x2e, 1109 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x75, 0x6c, 1110 0x65, 0x12, 0x4b, 0x0a, 0x0e, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x5f, 0x72, 1111 0x75, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x76, 0x32, 0x72, 0x61, 1112 0x79, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 1113 0x72, 0x2e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x52, 1114 0x0d, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x22, 0xab, 1115 0x05, 0x0a, 0x15, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x64, 0x52, 0x6f, 0x75, 1116 0x74, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 1117 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x25, 0x0a, 0x0d, 1118 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x0c, 0x20, 1119 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 1120 0x54, 0x61, 0x67, 0x12, 0x42, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 1121 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f, 0x72, 0x65, 1122 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x2e, 0x72, 0x6f, 0x75, 0x74, 1123 0x65, 0x72, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 1124 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x3f, 0x0a, 0x05, 0x67, 0x65, 0x6f, 0x69, 0x70, 1125 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 1126 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x2e, 0x72, 1127 0x6f, 0x75, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x6f, 0x49, 1128 0x50, 0x52, 0x05, 0x67, 0x65, 0x6f, 0x69, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, 1129 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x72, 1130 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x08, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 1131 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 1132 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x2e, 1133 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x08, 0x6e, 0x65, 0x74, 1134 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x12, 0x4c, 0x0a, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 1135 0x67, 0x65, 0x6f, 0x69, 0x70, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x76, 0x32, 1136 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x72, 0x6f, 0x75, 1137 0x74, 0x65, 0x72, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 1138 0x2e, 0x47, 0x65, 0x6f, 0x49, 0x50, 0x52, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x65, 1139 0x6f, 0x69, 0x70, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 1140 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 1141 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1d, 0x0a, 1142 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x07, 0x20, 0x03, 0x28, 1143 0x09, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 1144 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x08, 0x20, 0x03, 0x28, 1145 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x61, 0x67, 0x12, 0x1a, 0x0a, 1146 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 1147 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x74, 0x74, 1148 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 1149 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x6f, 0x6d, 1150 0x61, 0x69, 0x6e, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 1151 0x09, 0x52, 0x0d, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 1152 0x12, 0x4c, 0x0a, 0x0a, 0x67, 0x65, 0x6f, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0xa1, 1153 0x93, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 1154 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x2e, 0x72, 1155 0x6f, 0x75, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x6f, 0x53, 1156 0x69, 0x74, 0x65, 0x52, 0x09, 0x67, 0x65, 0x6f, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x42, 0x0c, 1157 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x22, 0x8c, 0x02, 0x0a, 1158 0x10, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 1159 0x67, 0x12, 0x4e, 0x0a, 0x0f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x72, 0x61, 1160 0x74, 0x65, 0x67, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x76, 0x32, 0x72, 1161 0x61, 0x79, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x72, 0x6f, 0x75, 0x74, 1162 0x65, 0x72, 0x2e, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 1163 0x79, 0x52, 0x0e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 1164 0x79, 0x12, 0x40, 0x0a, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 1165 0x2c, 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x70, 0x70, 1166 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x66, 0x69, 1167 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x04, 0x72, 1168 0x75, 0x6c, 0x65, 0x12, 0x4b, 0x0a, 0x0e, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 1169 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x76, 0x32, 1170 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x72, 0x6f, 0x75, 1171 0x74, 0x65, 0x72, 0x2e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 1172 0x65, 0x52, 0x0d, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 1173 0x3a, 0x19, 0x82, 0xb5, 0x18, 0x09, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x82, 1174 0xb5, 0x18, 0x08, 0x12, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x2a, 0x47, 0x0a, 0x0e, 0x44, 1175 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x08, 0x0a, 1176 0x04, 0x41, 0x73, 0x49, 0x73, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x73, 0x65, 0x49, 0x70, 1177 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x70, 0x49, 0x66, 0x4e, 0x6f, 0x6e, 0x4d, 0x61, 0x74, 1178 0x63, 0x68, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x70, 0x4f, 0x6e, 0x44, 0x65, 0x6d, 0x61, 1179 0x6e, 0x64, 0x10, 0x03, 0x42, 0x60, 0x0a, 0x19, 0x63, 0x6f, 0x6d, 0x2e, 0x76, 0x32, 0x72, 0x61, 1180 0x79, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 1181 0x72, 0x50, 0x01, 0x5a, 0x29, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 1182 0x76, 0x32, 0x66, 0x6c, 0x79, 0x2f, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2d, 0x63, 0x6f, 0x72, 0x65, 1183 0x2f, 0x76, 0x35, 0x2f, 0x61, 0x70, 0x70, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0xaa, 0x02, 1184 0x15, 0x56, 0x32, 0x52, 0x61, 0x79, 0x2e, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x2e, 1185 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 1186 } 1187 1188 var ( 1189 file_app_router_config_proto_rawDescOnce sync.Once 1190 file_app_router_config_proto_rawDescData = file_app_router_config_proto_rawDesc 1191 ) 1192 1193 func file_app_router_config_proto_rawDescGZIP() []byte { 1194 file_app_router_config_proto_rawDescOnce.Do(func() { 1195 file_app_router_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_app_router_config_proto_rawDescData) 1196 }) 1197 return file_app_router_config_proto_rawDescData 1198 } 1199 1200 var file_app_router_config_proto_enumTypes = make([]protoimpl.EnumInfo, 1) 1201 var file_app_router_config_proto_msgTypes = make([]protoimpl.MessageInfo, 9) 1202 var file_app_router_config_proto_goTypes = []interface{}{ 1203 (DomainStrategy)(0), // 0: v2ray.core.app.router.DomainStrategy 1204 (*RoutingRule)(nil), // 1: v2ray.core.app.router.RoutingRule 1205 (*BalancingRule)(nil), // 2: v2ray.core.app.router.BalancingRule 1206 (*StrategyWeight)(nil), // 3: v2ray.core.app.router.StrategyWeight 1207 (*StrategyRandomConfig)(nil), // 4: v2ray.core.app.router.StrategyRandomConfig 1208 (*StrategyLeastPingConfig)(nil), // 5: v2ray.core.app.router.StrategyLeastPingConfig 1209 (*StrategyLeastLoadConfig)(nil), // 6: v2ray.core.app.router.StrategyLeastLoadConfig 1210 (*Config)(nil), // 7: v2ray.core.app.router.Config 1211 (*SimplifiedRoutingRule)(nil), // 8: v2ray.core.app.router.SimplifiedRoutingRule 1212 (*SimplifiedConfig)(nil), // 9: v2ray.core.app.router.SimplifiedConfig 1213 (*routercommon.Domain)(nil), // 10: v2ray.core.app.router.routercommon.Domain 1214 (*routercommon.CIDR)(nil), // 11: v2ray.core.app.router.routercommon.CIDR 1215 (*routercommon.GeoIP)(nil), // 12: v2ray.core.app.router.routercommon.GeoIP 1216 (*net.PortRange)(nil), // 13: v2ray.core.common.net.PortRange 1217 (*net.PortList)(nil), // 14: v2ray.core.common.net.PortList 1218 (*net.NetworkList)(nil), // 15: v2ray.core.common.net.NetworkList 1219 (net.Network)(0), // 16: v2ray.core.common.net.Network 1220 (*routercommon.GeoSite)(nil), // 17: v2ray.core.app.router.routercommon.GeoSite 1221 (*any.Any)(nil), // 18: google.protobuf.Any 1222 } 1223 var file_app_router_config_proto_depIdxs = []int32{ 1224 10, // 0: v2ray.core.app.router.RoutingRule.domain:type_name -> v2ray.core.app.router.routercommon.Domain 1225 11, // 1: v2ray.core.app.router.RoutingRule.cidr:type_name -> v2ray.core.app.router.routercommon.CIDR 1226 12, // 2: v2ray.core.app.router.RoutingRule.geoip:type_name -> v2ray.core.app.router.routercommon.GeoIP 1227 13, // 3: v2ray.core.app.router.RoutingRule.port_range:type_name -> v2ray.core.common.net.PortRange 1228 14, // 4: v2ray.core.app.router.RoutingRule.port_list:type_name -> v2ray.core.common.net.PortList 1229 15, // 5: v2ray.core.app.router.RoutingRule.network_list:type_name -> v2ray.core.common.net.NetworkList 1230 16, // 6: v2ray.core.app.router.RoutingRule.networks:type_name -> v2ray.core.common.net.Network 1231 11, // 7: v2ray.core.app.router.RoutingRule.source_cidr:type_name -> v2ray.core.app.router.routercommon.CIDR 1232 12, // 8: v2ray.core.app.router.RoutingRule.source_geoip:type_name -> v2ray.core.app.router.routercommon.GeoIP 1233 14, // 9: v2ray.core.app.router.RoutingRule.source_port_list:type_name -> v2ray.core.common.net.PortList 1234 17, // 10: v2ray.core.app.router.RoutingRule.geo_domain:type_name -> v2ray.core.app.router.routercommon.GeoSite 1235 18, // 11: v2ray.core.app.router.BalancingRule.strategy_settings:type_name -> google.protobuf.Any 1236 3, // 12: v2ray.core.app.router.StrategyLeastLoadConfig.costs:type_name -> v2ray.core.app.router.StrategyWeight 1237 0, // 13: v2ray.core.app.router.Config.domain_strategy:type_name -> v2ray.core.app.router.DomainStrategy 1238 1, // 14: v2ray.core.app.router.Config.rule:type_name -> v2ray.core.app.router.RoutingRule 1239 2, // 15: v2ray.core.app.router.Config.balancing_rule:type_name -> v2ray.core.app.router.BalancingRule 1240 10, // 16: v2ray.core.app.router.SimplifiedRoutingRule.domain:type_name -> v2ray.core.app.router.routercommon.Domain 1241 12, // 17: v2ray.core.app.router.SimplifiedRoutingRule.geoip:type_name -> v2ray.core.app.router.routercommon.GeoIP 1242 15, // 18: v2ray.core.app.router.SimplifiedRoutingRule.networks:type_name -> v2ray.core.common.net.NetworkList 1243 12, // 19: v2ray.core.app.router.SimplifiedRoutingRule.source_geoip:type_name -> v2ray.core.app.router.routercommon.GeoIP 1244 17, // 20: v2ray.core.app.router.SimplifiedRoutingRule.geo_domain:type_name -> v2ray.core.app.router.routercommon.GeoSite 1245 0, // 21: v2ray.core.app.router.SimplifiedConfig.domain_strategy:type_name -> v2ray.core.app.router.DomainStrategy 1246 8, // 22: v2ray.core.app.router.SimplifiedConfig.rule:type_name -> v2ray.core.app.router.SimplifiedRoutingRule 1247 2, // 23: v2ray.core.app.router.SimplifiedConfig.balancing_rule:type_name -> v2ray.core.app.router.BalancingRule 1248 24, // [24:24] is the sub-list for method output_type 1249 24, // [24:24] is the sub-list for method input_type 1250 24, // [24:24] is the sub-list for extension type_name 1251 24, // [24:24] is the sub-list for extension extendee 1252 0, // [0:24] is the sub-list for field type_name 1253 } 1254 1255 func init() { file_app_router_config_proto_init() } 1256 func file_app_router_config_proto_init() { 1257 if File_app_router_config_proto != nil { 1258 return 1259 } 1260 if !protoimpl.UnsafeEnabled { 1261 file_app_router_config_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 1262 switch v := v.(*RoutingRule); i { 1263 case 0: 1264 return &v.state 1265 case 1: 1266 return &v.sizeCache 1267 case 2: 1268 return &v.unknownFields 1269 default: 1270 return nil 1271 } 1272 } 1273 file_app_router_config_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 1274 switch v := v.(*BalancingRule); i { 1275 case 0: 1276 return &v.state 1277 case 1: 1278 return &v.sizeCache 1279 case 2: 1280 return &v.unknownFields 1281 default: 1282 return nil 1283 } 1284 } 1285 file_app_router_config_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 1286 switch v := v.(*StrategyWeight); i { 1287 case 0: 1288 return &v.state 1289 case 1: 1290 return &v.sizeCache 1291 case 2: 1292 return &v.unknownFields 1293 default: 1294 return nil 1295 } 1296 } 1297 file_app_router_config_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 1298 switch v := v.(*StrategyRandomConfig); i { 1299 case 0: 1300 return &v.state 1301 case 1: 1302 return &v.sizeCache 1303 case 2: 1304 return &v.unknownFields 1305 default: 1306 return nil 1307 } 1308 } 1309 file_app_router_config_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 1310 switch v := v.(*StrategyLeastPingConfig); i { 1311 case 0: 1312 return &v.state 1313 case 1: 1314 return &v.sizeCache 1315 case 2: 1316 return &v.unknownFields 1317 default: 1318 return nil 1319 } 1320 } 1321 file_app_router_config_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 1322 switch v := v.(*StrategyLeastLoadConfig); i { 1323 case 0: 1324 return &v.state 1325 case 1: 1326 return &v.sizeCache 1327 case 2: 1328 return &v.unknownFields 1329 default: 1330 return nil 1331 } 1332 } 1333 file_app_router_config_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 1334 switch v := v.(*Config); i { 1335 case 0: 1336 return &v.state 1337 case 1: 1338 return &v.sizeCache 1339 case 2: 1340 return &v.unknownFields 1341 default: 1342 return nil 1343 } 1344 } 1345 file_app_router_config_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 1346 switch v := v.(*SimplifiedRoutingRule); i { 1347 case 0: 1348 return &v.state 1349 case 1: 1350 return &v.sizeCache 1351 case 2: 1352 return &v.unknownFields 1353 default: 1354 return nil 1355 } 1356 } 1357 file_app_router_config_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 1358 switch v := v.(*SimplifiedConfig); i { 1359 case 0: 1360 return &v.state 1361 case 1: 1362 return &v.sizeCache 1363 case 2: 1364 return &v.unknownFields 1365 default: 1366 return nil 1367 } 1368 } 1369 } 1370 file_app_router_config_proto_msgTypes[0].OneofWrappers = []interface{}{ 1371 (*RoutingRule_Tag)(nil), 1372 (*RoutingRule_BalancingTag)(nil), 1373 } 1374 file_app_router_config_proto_msgTypes[7].OneofWrappers = []interface{}{ 1375 (*SimplifiedRoutingRule_Tag)(nil), 1376 (*SimplifiedRoutingRule_BalancingTag)(nil), 1377 } 1378 type x struct{} 1379 out := protoimpl.TypeBuilder{ 1380 File: protoimpl.DescBuilder{ 1381 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 1382 RawDescriptor: file_app_router_config_proto_rawDesc, 1383 NumEnums: 1, 1384 NumMessages: 9, 1385 NumExtensions: 0, 1386 NumServices: 0, 1387 }, 1388 GoTypes: file_app_router_config_proto_goTypes, 1389 DependencyIndexes: file_app_router_config_proto_depIdxs, 1390 EnumInfos: file_app_router_config_proto_enumTypes, 1391 MessageInfos: file_app_router_config_proto_msgTypes, 1392 }.Build() 1393 File_app_router_config_proto = out.File 1394 file_app_router_config_proto_rawDesc = nil 1395 file_app_router_config_proto_goTypes = nil 1396 file_app_router_config_proto_depIdxs = nil 1397 }