config.pb.go 53 KB

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