config.pb.go 55 KB

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