github.com/EagleQL/Xray-core@v1.4.3/app/router/config.pb.go (about)

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