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