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