github.com/v2fly/v2ray-core/v4@v4.45.2/app/router/config.pb.go (about)

     1  // Code generated by protoc-gen-go. DO NOT EDIT.
     2  // versions:
     3  // 	protoc-gen-go v1.27.1
     4  // 	protoc        v3.17.3
     5  // source: app/router/config.proto
     6  
     7  package router
     8  
     9  import (
    10  	net "github.com/v2fly/v2ray-core/v4/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=v2ray.core.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  	ReverseMatch bool    `protobuf:"varint,3,opt,name=reverse_match,json=reverseMatch,proto3" json:"reverse_match,omitempty"`
   270  }
   271  
   272  func (x *GeoIP) Reset() {
   273  	*x = GeoIP{}
   274  	if protoimpl.UnsafeEnabled {
   275  		mi := &file_app_router_config_proto_msgTypes[2]
   276  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   277  		ms.StoreMessageInfo(mi)
   278  	}
   279  }
   280  
   281  func (x *GeoIP) String() string {
   282  	return protoimpl.X.MessageStringOf(x)
   283  }
   284  
   285  func (*GeoIP) ProtoMessage() {}
   286  
   287  func (x *GeoIP) ProtoReflect() protoreflect.Message {
   288  	mi := &file_app_router_config_proto_msgTypes[2]
   289  	if protoimpl.UnsafeEnabled && x != nil {
   290  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   291  		if ms.LoadMessageInfo() == nil {
   292  			ms.StoreMessageInfo(mi)
   293  		}
   294  		return ms
   295  	}
   296  	return mi.MessageOf(x)
   297  }
   298  
   299  // Deprecated: Use GeoIP.ProtoReflect.Descriptor instead.
   300  func (*GeoIP) Descriptor() ([]byte, []int) {
   301  	return file_app_router_config_proto_rawDescGZIP(), []int{2}
   302  }
   303  
   304  func (x *GeoIP) GetCountryCode() string {
   305  	if x != nil {
   306  		return x.CountryCode
   307  	}
   308  	return ""
   309  }
   310  
   311  func (x *GeoIP) GetCidr() []*CIDR {
   312  	if x != nil {
   313  		return x.Cidr
   314  	}
   315  	return nil
   316  }
   317  
   318  func (x *GeoIP) GetReverseMatch() bool {
   319  	if x != nil {
   320  		return x.ReverseMatch
   321  	}
   322  	return false
   323  }
   324  
   325  type GeoIPList struct {
   326  	state         protoimpl.MessageState
   327  	sizeCache     protoimpl.SizeCache
   328  	unknownFields protoimpl.UnknownFields
   329  
   330  	Entry []*GeoIP `protobuf:"bytes,1,rep,name=entry,proto3" json:"entry,omitempty"`
   331  }
   332  
   333  func (x *GeoIPList) Reset() {
   334  	*x = GeoIPList{}
   335  	if protoimpl.UnsafeEnabled {
   336  		mi := &file_app_router_config_proto_msgTypes[3]
   337  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   338  		ms.StoreMessageInfo(mi)
   339  	}
   340  }
   341  
   342  func (x *GeoIPList) String() string {
   343  	return protoimpl.X.MessageStringOf(x)
   344  }
   345  
   346  func (*GeoIPList) ProtoMessage() {}
   347  
   348  func (x *GeoIPList) ProtoReflect() protoreflect.Message {
   349  	mi := &file_app_router_config_proto_msgTypes[3]
   350  	if protoimpl.UnsafeEnabled && x != nil {
   351  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   352  		if ms.LoadMessageInfo() == nil {
   353  			ms.StoreMessageInfo(mi)
   354  		}
   355  		return ms
   356  	}
   357  	return mi.MessageOf(x)
   358  }
   359  
   360  // Deprecated: Use GeoIPList.ProtoReflect.Descriptor instead.
   361  func (*GeoIPList) Descriptor() ([]byte, []int) {
   362  	return file_app_router_config_proto_rawDescGZIP(), []int{3}
   363  }
   364  
   365  func (x *GeoIPList) GetEntry() []*GeoIP {
   366  	if x != nil {
   367  		return x.Entry
   368  	}
   369  	return nil
   370  }
   371  
   372  type GeoSite struct {
   373  	state         protoimpl.MessageState
   374  	sizeCache     protoimpl.SizeCache
   375  	unknownFields protoimpl.UnknownFields
   376  
   377  	CountryCode string    `protobuf:"bytes,1,opt,name=country_code,json=countryCode,proto3" json:"country_code,omitempty"`
   378  	Domain      []*Domain `protobuf:"bytes,2,rep,name=domain,proto3" json:"domain,omitempty"`
   379  }
   380  
   381  func (x *GeoSite) Reset() {
   382  	*x = GeoSite{}
   383  	if protoimpl.UnsafeEnabled {
   384  		mi := &file_app_router_config_proto_msgTypes[4]
   385  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   386  		ms.StoreMessageInfo(mi)
   387  	}
   388  }
   389  
   390  func (x *GeoSite) String() string {
   391  	return protoimpl.X.MessageStringOf(x)
   392  }
   393  
   394  func (*GeoSite) ProtoMessage() {}
   395  
   396  func (x *GeoSite) ProtoReflect() protoreflect.Message {
   397  	mi := &file_app_router_config_proto_msgTypes[4]
   398  	if protoimpl.UnsafeEnabled && x != nil {
   399  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   400  		if ms.LoadMessageInfo() == nil {
   401  			ms.StoreMessageInfo(mi)
   402  		}
   403  		return ms
   404  	}
   405  	return mi.MessageOf(x)
   406  }
   407  
   408  // Deprecated: Use GeoSite.ProtoReflect.Descriptor instead.
   409  func (*GeoSite) Descriptor() ([]byte, []int) {
   410  	return file_app_router_config_proto_rawDescGZIP(), []int{4}
   411  }
   412  
   413  func (x *GeoSite) GetCountryCode() string {
   414  	if x != nil {
   415  		return x.CountryCode
   416  	}
   417  	return ""
   418  }
   419  
   420  func (x *GeoSite) GetDomain() []*Domain {
   421  	if x != nil {
   422  		return x.Domain
   423  	}
   424  	return nil
   425  }
   426  
   427  type GeoSiteList struct {
   428  	state         protoimpl.MessageState
   429  	sizeCache     protoimpl.SizeCache
   430  	unknownFields protoimpl.UnknownFields
   431  
   432  	Entry []*GeoSite `protobuf:"bytes,1,rep,name=entry,proto3" json:"entry,omitempty"`
   433  }
   434  
   435  func (x *GeoSiteList) Reset() {
   436  	*x = GeoSiteList{}
   437  	if protoimpl.UnsafeEnabled {
   438  		mi := &file_app_router_config_proto_msgTypes[5]
   439  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   440  		ms.StoreMessageInfo(mi)
   441  	}
   442  }
   443  
   444  func (x *GeoSiteList) String() string {
   445  	return protoimpl.X.MessageStringOf(x)
   446  }
   447  
   448  func (*GeoSiteList) ProtoMessage() {}
   449  
   450  func (x *GeoSiteList) ProtoReflect() protoreflect.Message {
   451  	mi := &file_app_router_config_proto_msgTypes[5]
   452  	if protoimpl.UnsafeEnabled && x != nil {
   453  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   454  		if ms.LoadMessageInfo() == nil {
   455  			ms.StoreMessageInfo(mi)
   456  		}
   457  		return ms
   458  	}
   459  	return mi.MessageOf(x)
   460  }
   461  
   462  // Deprecated: Use GeoSiteList.ProtoReflect.Descriptor instead.
   463  func (*GeoSiteList) Descriptor() ([]byte, []int) {
   464  	return file_app_router_config_proto_rawDescGZIP(), []int{5}
   465  }
   466  
   467  func (x *GeoSiteList) GetEntry() []*GeoSite {
   468  	if x != nil {
   469  		return x.Entry
   470  	}
   471  	return nil
   472  }
   473  
   474  type RoutingRule struct {
   475  	state         protoimpl.MessageState
   476  	sizeCache     protoimpl.SizeCache
   477  	unknownFields protoimpl.UnknownFields
   478  
   479  	// Types that are assignable to TargetTag:
   480  	//	*RoutingRule_Tag
   481  	//	*RoutingRule_BalancingTag
   482  	TargetTag isRoutingRule_TargetTag `protobuf_oneof:"target_tag"`
   483  	// List of domains for target domain matching.
   484  	Domain []*Domain `protobuf:"bytes,2,rep,name=domain,proto3" json:"domain,omitempty"`
   485  	// List of CIDRs for target IP address matching.
   486  	// Deprecated. Use geoip below.
   487  	//
   488  	// Deprecated: Do not use.
   489  	Cidr []*CIDR `protobuf:"bytes,3,rep,name=cidr,proto3" json:"cidr,omitempty"`
   490  	// List of GeoIPs for target IP address matching. If this entry exists, the
   491  	// cidr above will have no effect. GeoIP fields with the same country code are
   492  	// supposed to contain exactly same content. They will be merged during
   493  	// runtime. For customized GeoIPs, please leave country code empty.
   494  	Geoip []*GeoIP `protobuf:"bytes,10,rep,name=geoip,proto3" json:"geoip,omitempty"`
   495  	// A range of port [from, to]. If the destination port is in this range, this
   496  	// rule takes effect. Deprecated. Use port_list.
   497  	//
   498  	// Deprecated: Do not use.
   499  	PortRange *net.PortRange `protobuf:"bytes,4,opt,name=port_range,json=portRange,proto3" json:"port_range,omitempty"`
   500  	// List of ports.
   501  	PortList *net.PortList `protobuf:"bytes,14,opt,name=port_list,json=portList,proto3" json:"port_list,omitempty"`
   502  	// List of networks. Deprecated. Use networks.
   503  	//
   504  	// Deprecated: Do not use.
   505  	NetworkList *net.NetworkList `protobuf:"bytes,5,opt,name=network_list,json=networkList,proto3" json:"network_list,omitempty"`
   506  	// List of networks for matching.
   507  	Networks []net.Network `protobuf:"varint,13,rep,packed,name=networks,proto3,enum=v2ray.core.common.net.Network" json:"networks,omitempty"`
   508  	// List of CIDRs for source IP address matching.
   509  	//
   510  	// Deprecated: Do not use.
   511  	SourceCidr []*CIDR `protobuf:"bytes,6,rep,name=source_cidr,json=sourceCidr,proto3" json:"source_cidr,omitempty"`
   512  	// List of GeoIPs for source IP address matching. If this entry exists, the
   513  	// source_cidr above will have no effect.
   514  	SourceGeoip []*GeoIP `protobuf:"bytes,11,rep,name=source_geoip,json=sourceGeoip,proto3" json:"source_geoip,omitempty"`
   515  	// List of ports for source port matching.
   516  	SourcePortList *net.PortList `protobuf:"bytes,16,opt,name=source_port_list,json=sourcePortList,proto3" json:"source_port_list,omitempty"`
   517  	UserEmail      []string      `protobuf:"bytes,7,rep,name=user_email,json=userEmail,proto3" json:"user_email,omitempty"`
   518  	InboundTag     []string      `protobuf:"bytes,8,rep,name=inbound_tag,json=inboundTag,proto3" json:"inbound_tag,omitempty"`
   519  	Protocol       []string      `protobuf:"bytes,9,rep,name=protocol,proto3" json:"protocol,omitempty"`
   520  	Attributes     string        `protobuf:"bytes,15,opt,name=attributes,proto3" json:"attributes,omitempty"`
   521  	DomainMatcher  string        `protobuf:"bytes,17,opt,name=domain_matcher,json=domainMatcher,proto3" json:"domain_matcher,omitempty"`
   522  }
   523  
   524  func (x *RoutingRule) Reset() {
   525  	*x = RoutingRule{}
   526  	if protoimpl.UnsafeEnabled {
   527  		mi := &file_app_router_config_proto_msgTypes[6]
   528  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   529  		ms.StoreMessageInfo(mi)
   530  	}
   531  }
   532  
   533  func (x *RoutingRule) String() string {
   534  	return protoimpl.X.MessageStringOf(x)
   535  }
   536  
   537  func (*RoutingRule) ProtoMessage() {}
   538  
   539  func (x *RoutingRule) ProtoReflect() protoreflect.Message {
   540  	mi := &file_app_router_config_proto_msgTypes[6]
   541  	if protoimpl.UnsafeEnabled && x != nil {
   542  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   543  		if ms.LoadMessageInfo() == nil {
   544  			ms.StoreMessageInfo(mi)
   545  		}
   546  		return ms
   547  	}
   548  	return mi.MessageOf(x)
   549  }
   550  
   551  // Deprecated: Use RoutingRule.ProtoReflect.Descriptor instead.
   552  func (*RoutingRule) Descriptor() ([]byte, []int) {
   553  	return file_app_router_config_proto_rawDescGZIP(), []int{6}
   554  }
   555  
   556  func (m *RoutingRule) GetTargetTag() isRoutingRule_TargetTag {
   557  	if m != nil {
   558  		return m.TargetTag
   559  	}
   560  	return nil
   561  }
   562  
   563  func (x *RoutingRule) GetTag() string {
   564  	if x, ok := x.GetTargetTag().(*RoutingRule_Tag); ok {
   565  		return x.Tag
   566  	}
   567  	return ""
   568  }
   569  
   570  func (x *RoutingRule) GetBalancingTag() string {
   571  	if x, ok := x.GetTargetTag().(*RoutingRule_BalancingTag); ok {
   572  		return x.BalancingTag
   573  	}
   574  	return ""
   575  }
   576  
   577  func (x *RoutingRule) GetDomain() []*Domain {
   578  	if x != nil {
   579  		return x.Domain
   580  	}
   581  	return nil
   582  }
   583  
   584  // Deprecated: Do not use.
   585  func (x *RoutingRule) GetCidr() []*CIDR {
   586  	if x != nil {
   587  		return x.Cidr
   588  	}
   589  	return nil
   590  }
   591  
   592  func (x *RoutingRule) GetGeoip() []*GeoIP {
   593  	if x != nil {
   594  		return x.Geoip
   595  	}
   596  	return nil
   597  }
   598  
   599  // Deprecated: Do not use.
   600  func (x *RoutingRule) GetPortRange() *net.PortRange {
   601  	if x != nil {
   602  		return x.PortRange
   603  	}
   604  	return nil
   605  }
   606  
   607  func (x *RoutingRule) GetPortList() *net.PortList {
   608  	if x != nil {
   609  		return x.PortList
   610  	}
   611  	return nil
   612  }
   613  
   614  // Deprecated: Do not use.
   615  func (x *RoutingRule) GetNetworkList() *net.NetworkList {
   616  	if x != nil {
   617  		return x.NetworkList
   618  	}
   619  	return nil
   620  }
   621  
   622  func (x *RoutingRule) GetNetworks() []net.Network {
   623  	if x != nil {
   624  		return x.Networks
   625  	}
   626  	return nil
   627  }
   628  
   629  // Deprecated: Do not use.
   630  func (x *RoutingRule) GetSourceCidr() []*CIDR {
   631  	if x != nil {
   632  		return x.SourceCidr
   633  	}
   634  	return nil
   635  }
   636  
   637  func (x *RoutingRule) GetSourceGeoip() []*GeoIP {
   638  	if x != nil {
   639  		return x.SourceGeoip
   640  	}
   641  	return nil
   642  }
   643  
   644  func (x *RoutingRule) GetSourcePortList() *net.PortList {
   645  	if x != nil {
   646  		return x.SourcePortList
   647  	}
   648  	return nil
   649  }
   650  
   651  func (x *RoutingRule) GetUserEmail() []string {
   652  	if x != nil {
   653  		return x.UserEmail
   654  	}
   655  	return nil
   656  }
   657  
   658  func (x *RoutingRule) GetInboundTag() []string {
   659  	if x != nil {
   660  		return x.InboundTag
   661  	}
   662  	return nil
   663  }
   664  
   665  func (x *RoutingRule) GetProtocol() []string {
   666  	if x != nil {
   667  		return x.Protocol
   668  	}
   669  	return nil
   670  }
   671  
   672  func (x *RoutingRule) GetAttributes() string {
   673  	if x != nil {
   674  		return x.Attributes
   675  	}
   676  	return ""
   677  }
   678  
   679  func (x *RoutingRule) GetDomainMatcher() string {
   680  	if x != nil {
   681  		return x.DomainMatcher
   682  	}
   683  	return ""
   684  }
   685  
   686  type isRoutingRule_TargetTag interface {
   687  	isRoutingRule_TargetTag()
   688  }
   689  
   690  type RoutingRule_Tag struct {
   691  	// Tag of outbound that this rule is pointing to.
   692  	Tag string `protobuf:"bytes,1,opt,name=tag,proto3,oneof"`
   693  }
   694  
   695  type RoutingRule_BalancingTag struct {
   696  	// Tag of routing balancer.
   697  	BalancingTag string `protobuf:"bytes,12,opt,name=balancing_tag,json=balancingTag,proto3,oneof"`
   698  }
   699  
   700  func (*RoutingRule_Tag) isRoutingRule_TargetTag() {}
   701  
   702  func (*RoutingRule_BalancingTag) isRoutingRule_TargetTag() {}
   703  
   704  type BalancingRule struct {
   705  	state         protoimpl.MessageState
   706  	sizeCache     protoimpl.SizeCache
   707  	unknownFields protoimpl.UnknownFields
   708  
   709  	Tag              string   `protobuf:"bytes,1,opt,name=tag,proto3" json:"tag,omitempty"`
   710  	OutboundSelector []string `protobuf:"bytes,2,rep,name=outbound_selector,json=outboundSelector,proto3" json:"outbound_selector,omitempty"`
   711  	Strategy         string   `protobuf:"bytes,3,opt,name=strategy,proto3" json:"strategy,omitempty"`
   712  }
   713  
   714  func (x *BalancingRule) Reset() {
   715  	*x = BalancingRule{}
   716  	if protoimpl.UnsafeEnabled {
   717  		mi := &file_app_router_config_proto_msgTypes[7]
   718  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   719  		ms.StoreMessageInfo(mi)
   720  	}
   721  }
   722  
   723  func (x *BalancingRule) String() string {
   724  	return protoimpl.X.MessageStringOf(x)
   725  }
   726  
   727  func (*BalancingRule) ProtoMessage() {}
   728  
   729  func (x *BalancingRule) ProtoReflect() protoreflect.Message {
   730  	mi := &file_app_router_config_proto_msgTypes[7]
   731  	if protoimpl.UnsafeEnabled && x != nil {
   732  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   733  		if ms.LoadMessageInfo() == nil {
   734  			ms.StoreMessageInfo(mi)
   735  		}
   736  		return ms
   737  	}
   738  	return mi.MessageOf(x)
   739  }
   740  
   741  // Deprecated: Use BalancingRule.ProtoReflect.Descriptor instead.
   742  func (*BalancingRule) Descriptor() ([]byte, []int) {
   743  	return file_app_router_config_proto_rawDescGZIP(), []int{7}
   744  }
   745  
   746  func (x *BalancingRule) GetTag() string {
   747  	if x != nil {
   748  		return x.Tag
   749  	}
   750  	return ""
   751  }
   752  
   753  func (x *BalancingRule) GetOutboundSelector() []string {
   754  	if x != nil {
   755  		return x.OutboundSelector
   756  	}
   757  	return nil
   758  }
   759  
   760  func (x *BalancingRule) GetStrategy() string {
   761  	if x != nil {
   762  		return x.Strategy
   763  	}
   764  	return ""
   765  }
   766  
   767  type Config struct {
   768  	state         protoimpl.MessageState
   769  	sizeCache     protoimpl.SizeCache
   770  	unknownFields protoimpl.UnknownFields
   771  
   772  	DomainStrategy Config_DomainStrategy `protobuf:"varint,1,opt,name=domain_strategy,json=domainStrategy,proto3,enum=v2ray.core.app.router.Config_DomainStrategy" json:"domain_strategy,omitempty"`
   773  	Rule           []*RoutingRule        `protobuf:"bytes,2,rep,name=rule,proto3" json:"rule,omitempty"`
   774  	BalancingRule  []*BalancingRule      `protobuf:"bytes,3,rep,name=balancing_rule,json=balancingRule,proto3" json:"balancing_rule,omitempty"`
   775  }
   776  
   777  func (x *Config) Reset() {
   778  	*x = Config{}
   779  	if protoimpl.UnsafeEnabled {
   780  		mi := &file_app_router_config_proto_msgTypes[8]
   781  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   782  		ms.StoreMessageInfo(mi)
   783  	}
   784  }
   785  
   786  func (x *Config) String() string {
   787  	return protoimpl.X.MessageStringOf(x)
   788  }
   789  
   790  func (*Config) ProtoMessage() {}
   791  
   792  func (x *Config) ProtoReflect() protoreflect.Message {
   793  	mi := &file_app_router_config_proto_msgTypes[8]
   794  	if protoimpl.UnsafeEnabled && x != nil {
   795  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   796  		if ms.LoadMessageInfo() == nil {
   797  			ms.StoreMessageInfo(mi)
   798  		}
   799  		return ms
   800  	}
   801  	return mi.MessageOf(x)
   802  }
   803  
   804  // Deprecated: Use Config.ProtoReflect.Descriptor instead.
   805  func (*Config) Descriptor() ([]byte, []int) {
   806  	return file_app_router_config_proto_rawDescGZIP(), []int{8}
   807  }
   808  
   809  func (x *Config) GetDomainStrategy() Config_DomainStrategy {
   810  	if x != nil {
   811  		return x.DomainStrategy
   812  	}
   813  	return Config_AsIs
   814  }
   815  
   816  func (x *Config) GetRule() []*RoutingRule {
   817  	if x != nil {
   818  		return x.Rule
   819  	}
   820  	return nil
   821  }
   822  
   823  func (x *Config) GetBalancingRule() []*BalancingRule {
   824  	if x != nil {
   825  		return x.BalancingRule
   826  	}
   827  	return nil
   828  }
   829  
   830  type Domain_Attribute struct {
   831  	state         protoimpl.MessageState
   832  	sizeCache     protoimpl.SizeCache
   833  	unknownFields protoimpl.UnknownFields
   834  
   835  	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
   836  	// Types that are assignable to TypedValue:
   837  	//	*Domain_Attribute_BoolValue
   838  	//	*Domain_Attribute_IntValue
   839  	TypedValue isDomain_Attribute_TypedValue `protobuf_oneof:"typed_value"`
   840  }
   841  
   842  func (x *Domain_Attribute) Reset() {
   843  	*x = Domain_Attribute{}
   844  	if protoimpl.UnsafeEnabled {
   845  		mi := &file_app_router_config_proto_msgTypes[9]
   846  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   847  		ms.StoreMessageInfo(mi)
   848  	}
   849  }
   850  
   851  func (x *Domain_Attribute) String() string {
   852  	return protoimpl.X.MessageStringOf(x)
   853  }
   854  
   855  func (*Domain_Attribute) ProtoMessage() {}
   856  
   857  func (x *Domain_Attribute) ProtoReflect() protoreflect.Message {
   858  	mi := &file_app_router_config_proto_msgTypes[9]
   859  	if protoimpl.UnsafeEnabled && x != nil {
   860  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   861  		if ms.LoadMessageInfo() == nil {
   862  			ms.StoreMessageInfo(mi)
   863  		}
   864  		return ms
   865  	}
   866  	return mi.MessageOf(x)
   867  }
   868  
   869  // Deprecated: Use Domain_Attribute.ProtoReflect.Descriptor instead.
   870  func (*Domain_Attribute) Descriptor() ([]byte, []int) {
   871  	return file_app_router_config_proto_rawDescGZIP(), []int{0, 0}
   872  }
   873  
   874  func (x *Domain_Attribute) GetKey() string {
   875  	if x != nil {
   876  		return x.Key
   877  	}
   878  	return ""
   879  }
   880  
   881  func (m *Domain_Attribute) GetTypedValue() isDomain_Attribute_TypedValue {
   882  	if m != nil {
   883  		return m.TypedValue
   884  	}
   885  	return nil
   886  }
   887  
   888  func (x *Domain_Attribute) GetBoolValue() bool {
   889  	if x, ok := x.GetTypedValue().(*Domain_Attribute_BoolValue); ok {
   890  		return x.BoolValue
   891  	}
   892  	return false
   893  }
   894  
   895  func (x *Domain_Attribute) GetIntValue() int64 {
   896  	if x, ok := x.GetTypedValue().(*Domain_Attribute_IntValue); ok {
   897  		return x.IntValue
   898  	}
   899  	return 0
   900  }
   901  
   902  type isDomain_Attribute_TypedValue interface {
   903  	isDomain_Attribute_TypedValue()
   904  }
   905  
   906  type Domain_Attribute_BoolValue struct {
   907  	BoolValue bool `protobuf:"varint,2,opt,name=bool_value,json=boolValue,proto3,oneof"`
   908  }
   909  
   910  type Domain_Attribute_IntValue struct {
   911  	IntValue int64 `protobuf:"varint,3,opt,name=int_value,json=intValue,proto3,oneof"`
   912  }
   913  
   914  func (*Domain_Attribute_BoolValue) isDomain_Attribute_TypedValue() {}
   915  
   916  func (*Domain_Attribute_IntValue) isDomain_Attribute_TypedValue() {}
   917  
   918  var File_app_router_config_proto protoreflect.FileDescriptor
   919  
   920  var file_app_router_config_proto_rawDesc = []byte{
   921  	0x0a, 0x17, 0x61, 0x70, 0x70, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x2f, 0x63, 0x6f, 0x6e,
   922  	0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x15, 0x76, 0x32, 0x72, 0x61, 0x79,
   923  	0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72,
   924  	0x1a, 0x15, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x6e, 0x65, 0x74, 0x2f, 0x70, 0x6f, 0x72,
   925  	0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f,
   926  	0x6e, 0x65, 0x74, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74,
   927  	0x6f, 0x22, 0xbf, 0x02, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x36, 0x0a, 0x04,
   928  	0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x76, 0x32, 0x72,
   929  	0x61, 0x79, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x72, 0x6f, 0x75, 0x74,
   930  	0x65, 0x72, 0x2e, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04,
   931  	0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
   932  	0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x45, 0x0a, 0x09, 0x61, 0x74,
   933  	0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e,
   934  	0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x72,
   935  	0x6f, 0x75, 0x74, 0x65, 0x72, 0x2e, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x41, 0x74, 0x74,
   936  	0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x09, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
   937  	0x65, 0x1a, 0x6c, 0x0a, 0x09, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x10,
   938  	0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79,
   939  	0x12, 0x1f, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
   940  	0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75,
   941  	0x65, 0x12, 0x1d, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03,
   942  	0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65,
   943  	0x42, 0x0d, 0x0a, 0x0b, 0x74, 0x79, 0x70, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22,
   944  	0x32, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x6c, 0x61, 0x69, 0x6e,
   945  	0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x65, 0x67, 0x65, 0x78, 0x10, 0x01, 0x12, 0x0a, 0x0a,
   946  	0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x75, 0x6c,
   947  	0x6c, 0x10, 0x03, 0x22, 0x2e, 0x0a, 0x04, 0x43, 0x49, 0x44, 0x52, 0x12, 0x0e, 0x0a, 0x02, 0x69,
   948  	0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x70,
   949  	0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x70, 0x72, 0x65,
   950  	0x66, 0x69, 0x78, 0x22, 0x80, 0x01, 0x0a, 0x05, 0x47, 0x65, 0x6f, 0x49, 0x50, 0x12, 0x21, 0x0a,
   951  	0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20,
   952  	0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65,
   953  	0x12, 0x2f, 0x0a, 0x04, 0x63, 0x69, 0x64, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b,
   954  	0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x2e,
   955  	0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x49, 0x44, 0x52, 0x52, 0x04, 0x63, 0x69, 0x64,
   956  	0x72, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x5f, 0x6d, 0x61, 0x74,
   957  	0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73,
   958  	0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x22, 0x3f, 0x0a, 0x09, 0x47, 0x65, 0x6f, 0x49, 0x50, 0x4c,
   959  	0x69, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x03,
   960  	0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e,
   961  	0x61, 0x70, 0x70, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x6f, 0x49, 0x50,
   962  	0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x22, 0x63, 0x0a, 0x07, 0x47, 0x65, 0x6f, 0x53, 0x69,
   963  	0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x6f,
   964  	0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72,
   965  	0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x35, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18,
   966  	0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f,
   967  	0x72, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x2e, 0x44, 0x6f,
   968  	0x6d, 0x61, 0x69, 0x6e, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x43, 0x0a, 0x0b,
   969  	0x47, 0x65, 0x6f, 0x53, 0x69, 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x05, 0x65,
   970  	0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x76, 0x32, 0x72,
   971  	0x61, 0x79, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x72, 0x6f, 0x75, 0x74,
   972  	0x65, 0x72, 0x2e, 0x47, 0x65, 0x6f, 0x53, 0x69, 0x74, 0x65, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72,
   973  	0x79, 0x22, 0xf1, 0x06, 0x0a, 0x0b, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c,
   974  	0x65, 0x12, 0x12, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00,
   975  	0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x25, 0x0a, 0x0d, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69,
   976  	0x6e, 0x67, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c,
   977  	0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x67, 0x12, 0x35, 0x0a, 0x06,
   978  	0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x76,
   979  	0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x72, 0x6f,
   980  	0x75, 0x74, 0x65, 0x72, 0x2e, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x06, 0x64, 0x6f, 0x6d,
   981  	0x61, 0x69, 0x6e, 0x12, 0x33, 0x0a, 0x04, 0x63, 0x69, 0x64, 0x72, 0x18, 0x03, 0x20, 0x03, 0x28,
   982  	0x0b, 0x32, 0x1b, 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x61,
   983  	0x70, 0x70, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x49, 0x44, 0x52, 0x42, 0x02,
   984  	0x18, 0x01, 0x52, 0x04, 0x63, 0x69, 0x64, 0x72, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x65, 0x6f, 0x69,
   985  	0x70, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e,
   986  	0x63, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x2e,
   987  	0x47, 0x65, 0x6f, 0x49, 0x50, 0x52, 0x05, 0x67, 0x65, 0x6f, 0x69, 0x70, 0x12, 0x43, 0x0a, 0x0a,
   988  	0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
   989  	0x32, 0x20, 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f,
   990  	0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e,
   991  	0x67, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x67,
   992  	0x65, 0x12, 0x3c, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x0e,
   993  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f, 0x72,
   994  	0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x2e, 0x50, 0x6f, 0x72,
   995  	0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12,
   996  	0x49, 0x0a, 0x0c, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18,
   997  	0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f,
   998  	0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x2e, 0x4e, 0x65,
   999  	0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0b, 0x6e,
  1000  	0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x08, 0x6e, 0x65,
  1001  	0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x76,
  1002  	0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
  1003  	0x2e, 0x6e, 0x65, 0x74, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x08, 0x6e, 0x65,
  1004  	0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x12, 0x40, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
  1005  	0x5f, 0x63, 0x69, 0x64, 0x72, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x76, 0x32,
  1006  	0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x72, 0x6f, 0x75,
  1007  	0x74, 0x65, 0x72, 0x2e, 0x43, 0x49, 0x44, 0x52, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x73, 0x6f,
  1008  	0x75, 0x72, 0x63, 0x65, 0x43, 0x69, 0x64, 0x72, 0x12, 0x3f, 0x0a, 0x0c, 0x73, 0x6f, 0x75, 0x72,
  1009  	0x63, 0x65, 0x5f, 0x67, 0x65, 0x6f, 0x69, 0x70, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c,
  1010  	0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x2e,
  1011  	0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x6f, 0x49, 0x50, 0x52, 0x0b, 0x73, 0x6f,
  1012  	0x75, 0x72, 0x63, 0x65, 0x47, 0x65, 0x6f, 0x69, 0x70, 0x12, 0x49, 0x0a, 0x10, 0x73, 0x6f, 0x75,
  1013  	0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x10, 0x20,
  1014  	0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f, 0x72, 0x65,
  1015  	0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x2e, 0x50, 0x6f, 0x72, 0x74,
  1016  	0x4c, 0x69, 0x73, 0x74, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74,
  1017  	0x4c, 0x69, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x6d, 0x61,
  1018  	0x69, 0x6c, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x45, 0x6d,
  1019  	0x61, 0x69, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x74,
  1020  	0x61, 0x67, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e,
  1021  	0x64, 0x54, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c,
  1022  	0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c,
  1023  	0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0f,
  1024  	0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73,
  1025  	0x12, 0x25, 0x0a, 0x0e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68,
  1026  	0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e,
  1027  	0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x42, 0x0c, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65,
  1028  	0x74, 0x5f, 0x74, 0x61, 0x67, 0x22, 0x6a, 0x0a, 0x0d, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69,
  1029  	0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x01, 0x20,
  1030  	0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x2b, 0x0a, 0x11, 0x6f, 0x75, 0x74, 0x62,
  1031  	0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20,
  1032  	0x03, 0x28, 0x09, 0x52, 0x10, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x53, 0x65, 0x6c,
  1033  	0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67,
  1034  	0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67,
  1035  	0x79, 0x22, 0xad, 0x02, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x55, 0x0a, 0x0f,
  1036  	0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x18,
  1037  	0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f,
  1038  	0x72, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x6f,
  1039  	0x6e, 0x66, 0x69, 0x67, 0x2e, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x74,
  1040  	0x65, 0x67, 0x79, 0x52, 0x0e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x74,
  1041  	0x65, 0x67, 0x79, 0x12, 0x36, 0x0a, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28,
  1042  	0x0b, 0x32, 0x22, 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x61,
  1043  	0x70, 0x70, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e,
  1044  	0x67, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x12, 0x4b, 0x0a, 0x0e, 0x62,
  1045  	0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x03, 0x20,
  1046  	0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f, 0x72, 0x65,
  1047  	0x2e, 0x61, 0x70, 0x70, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x2e, 0x42, 0x61, 0x6c, 0x61,
  1048  	0x6e, 0x63, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x0d, 0x62, 0x61, 0x6c, 0x61, 0x6e,
  1049  	0x63, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x22, 0x47, 0x0a, 0x0e, 0x44, 0x6f, 0x6d, 0x61,
  1050  	0x69, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x73,
  1051  	0x49, 0x73, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x73, 0x65, 0x49, 0x70, 0x10, 0x01, 0x12,
  1052  	0x10, 0x0a, 0x0c, 0x49, 0x70, 0x49, 0x66, 0x4e, 0x6f, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x10,
  1053  	0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x70, 0x4f, 0x6e, 0x44, 0x65, 0x6d, 0x61, 0x6e, 0x64, 0x10,
  1054  	0x03, 0x42, 0x60, 0x0a, 0x19, 0x63, 0x6f, 0x6d, 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 0x63,
  1055  	0x6f, 0x72, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x50, 0x01,
  1056  	0x5a, 0x29, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x76, 0x32, 0x66,
  1057  	0x6c, 0x79, 0x2f, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2d, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x34,
  1058  	0x2f, 0x61, 0x70, 0x70, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0xaa, 0x02, 0x15, 0x56, 0x32,
  1059  	0x52, 0x61, 0x79, 0x2e, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x2e, 0x52, 0x6f, 0x75,
  1060  	0x74, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
  1061  }
  1062  
  1063  var (
  1064  	file_app_router_config_proto_rawDescOnce sync.Once
  1065  	file_app_router_config_proto_rawDescData = file_app_router_config_proto_rawDesc
  1066  )
  1067  
  1068  func file_app_router_config_proto_rawDescGZIP() []byte {
  1069  	file_app_router_config_proto_rawDescOnce.Do(func() {
  1070  		file_app_router_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_app_router_config_proto_rawDescData)
  1071  	})
  1072  	return file_app_router_config_proto_rawDescData
  1073  }
  1074  
  1075  var file_app_router_config_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
  1076  var file_app_router_config_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
  1077  var file_app_router_config_proto_goTypes = []interface{}{
  1078  	(Domain_Type)(0),           // 0: v2ray.core.app.router.Domain.Type
  1079  	(Config_DomainStrategy)(0), // 1: v2ray.core.app.router.Config.DomainStrategy
  1080  	(*Domain)(nil),             // 2: v2ray.core.app.router.Domain
  1081  	(*CIDR)(nil),               // 3: v2ray.core.app.router.CIDR
  1082  	(*GeoIP)(nil),              // 4: v2ray.core.app.router.GeoIP
  1083  	(*GeoIPList)(nil),          // 5: v2ray.core.app.router.GeoIPList
  1084  	(*GeoSite)(nil),            // 6: v2ray.core.app.router.GeoSite
  1085  	(*GeoSiteList)(nil),        // 7: v2ray.core.app.router.GeoSiteList
  1086  	(*RoutingRule)(nil),        // 8: v2ray.core.app.router.RoutingRule
  1087  	(*BalancingRule)(nil),      // 9: v2ray.core.app.router.BalancingRule
  1088  	(*Config)(nil),             // 10: v2ray.core.app.router.Config
  1089  	(*Domain_Attribute)(nil),   // 11: v2ray.core.app.router.Domain.Attribute
  1090  	(*net.PortRange)(nil),      // 12: v2ray.core.common.net.PortRange
  1091  	(*net.PortList)(nil),       // 13: v2ray.core.common.net.PortList
  1092  	(*net.NetworkList)(nil),    // 14: v2ray.core.common.net.NetworkList
  1093  	(net.Network)(0),           // 15: v2ray.core.common.net.Network
  1094  }
  1095  var file_app_router_config_proto_depIdxs = []int32{
  1096  	0,  // 0: v2ray.core.app.router.Domain.type:type_name -> v2ray.core.app.router.Domain.Type
  1097  	11, // 1: v2ray.core.app.router.Domain.attribute:type_name -> v2ray.core.app.router.Domain.Attribute
  1098  	3,  // 2: v2ray.core.app.router.GeoIP.cidr:type_name -> v2ray.core.app.router.CIDR
  1099  	4,  // 3: v2ray.core.app.router.GeoIPList.entry:type_name -> v2ray.core.app.router.GeoIP
  1100  	2,  // 4: v2ray.core.app.router.GeoSite.domain:type_name -> v2ray.core.app.router.Domain
  1101  	6,  // 5: v2ray.core.app.router.GeoSiteList.entry:type_name -> v2ray.core.app.router.GeoSite
  1102  	2,  // 6: v2ray.core.app.router.RoutingRule.domain:type_name -> v2ray.core.app.router.Domain
  1103  	3,  // 7: v2ray.core.app.router.RoutingRule.cidr:type_name -> v2ray.core.app.router.CIDR
  1104  	4,  // 8: v2ray.core.app.router.RoutingRule.geoip:type_name -> v2ray.core.app.router.GeoIP
  1105  	12, // 9: v2ray.core.app.router.RoutingRule.port_range:type_name -> v2ray.core.common.net.PortRange
  1106  	13, // 10: v2ray.core.app.router.RoutingRule.port_list:type_name -> v2ray.core.common.net.PortList
  1107  	14, // 11: v2ray.core.app.router.RoutingRule.network_list:type_name -> v2ray.core.common.net.NetworkList
  1108  	15, // 12: v2ray.core.app.router.RoutingRule.networks:type_name -> v2ray.core.common.net.Network
  1109  	3,  // 13: v2ray.core.app.router.RoutingRule.source_cidr:type_name -> v2ray.core.app.router.CIDR
  1110  	4,  // 14: v2ray.core.app.router.RoutingRule.source_geoip:type_name -> v2ray.core.app.router.GeoIP
  1111  	13, // 15: v2ray.core.app.router.RoutingRule.source_port_list:type_name -> v2ray.core.common.net.PortList
  1112  	1,  // 16: v2ray.core.app.router.Config.domain_strategy:type_name -> v2ray.core.app.router.Config.DomainStrategy
  1113  	8,  // 17: v2ray.core.app.router.Config.rule:type_name -> v2ray.core.app.router.RoutingRule
  1114  	9,  // 18: v2ray.core.app.router.Config.balancing_rule:type_name -> v2ray.core.app.router.BalancingRule
  1115  	19, // [19:19] is the sub-list for method output_type
  1116  	19, // [19:19] is the sub-list for method input_type
  1117  	19, // [19:19] is the sub-list for extension type_name
  1118  	19, // [19:19] is the sub-list for extension extendee
  1119  	0,  // [0:19] is the sub-list for field type_name
  1120  }
  1121  
  1122  func init() { file_app_router_config_proto_init() }
  1123  func file_app_router_config_proto_init() {
  1124  	if File_app_router_config_proto != nil {
  1125  		return
  1126  	}
  1127  	if !protoimpl.UnsafeEnabled {
  1128  		file_app_router_config_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
  1129  			switch v := v.(*Domain); i {
  1130  			case 0:
  1131  				return &v.state
  1132  			case 1:
  1133  				return &v.sizeCache
  1134  			case 2:
  1135  				return &v.unknownFields
  1136  			default:
  1137  				return nil
  1138  			}
  1139  		}
  1140  		file_app_router_config_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
  1141  			switch v := v.(*CIDR); i {
  1142  			case 0:
  1143  				return &v.state
  1144  			case 1:
  1145  				return &v.sizeCache
  1146  			case 2:
  1147  				return &v.unknownFields
  1148  			default:
  1149  				return nil
  1150  			}
  1151  		}
  1152  		file_app_router_config_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
  1153  			switch v := v.(*GeoIP); i {
  1154  			case 0:
  1155  				return &v.state
  1156  			case 1:
  1157  				return &v.sizeCache
  1158  			case 2:
  1159  				return &v.unknownFields
  1160  			default:
  1161  				return nil
  1162  			}
  1163  		}
  1164  		file_app_router_config_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
  1165  			switch v := v.(*GeoIPList); i {
  1166  			case 0:
  1167  				return &v.state
  1168  			case 1:
  1169  				return &v.sizeCache
  1170  			case 2:
  1171  				return &v.unknownFields
  1172  			default:
  1173  				return nil
  1174  			}
  1175  		}
  1176  		file_app_router_config_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
  1177  			switch v := v.(*GeoSite); i {
  1178  			case 0:
  1179  				return &v.state
  1180  			case 1:
  1181  				return &v.sizeCache
  1182  			case 2:
  1183  				return &v.unknownFields
  1184  			default:
  1185  				return nil
  1186  			}
  1187  		}
  1188  		file_app_router_config_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
  1189  			switch v := v.(*GeoSiteList); i {
  1190  			case 0:
  1191  				return &v.state
  1192  			case 1:
  1193  				return &v.sizeCache
  1194  			case 2:
  1195  				return &v.unknownFields
  1196  			default:
  1197  				return nil
  1198  			}
  1199  		}
  1200  		file_app_router_config_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
  1201  			switch v := v.(*RoutingRule); i {
  1202  			case 0:
  1203  				return &v.state
  1204  			case 1:
  1205  				return &v.sizeCache
  1206  			case 2:
  1207  				return &v.unknownFields
  1208  			default:
  1209  				return nil
  1210  			}
  1211  		}
  1212  		file_app_router_config_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
  1213  			switch v := v.(*BalancingRule); i {
  1214  			case 0:
  1215  				return &v.state
  1216  			case 1:
  1217  				return &v.sizeCache
  1218  			case 2:
  1219  				return &v.unknownFields
  1220  			default:
  1221  				return nil
  1222  			}
  1223  		}
  1224  		file_app_router_config_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
  1225  			switch v := v.(*Config); i {
  1226  			case 0:
  1227  				return &v.state
  1228  			case 1:
  1229  				return &v.sizeCache
  1230  			case 2:
  1231  				return &v.unknownFields
  1232  			default:
  1233  				return nil
  1234  			}
  1235  		}
  1236  		file_app_router_config_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
  1237  			switch v := v.(*Domain_Attribute); i {
  1238  			case 0:
  1239  				return &v.state
  1240  			case 1:
  1241  				return &v.sizeCache
  1242  			case 2:
  1243  				return &v.unknownFields
  1244  			default:
  1245  				return nil
  1246  			}
  1247  		}
  1248  	}
  1249  	file_app_router_config_proto_msgTypes[6].OneofWrappers = []interface{}{
  1250  		(*RoutingRule_Tag)(nil),
  1251  		(*RoutingRule_BalancingTag)(nil),
  1252  	}
  1253  	file_app_router_config_proto_msgTypes[9].OneofWrappers = []interface{}{
  1254  		(*Domain_Attribute_BoolValue)(nil),
  1255  		(*Domain_Attribute_IntValue)(nil),
  1256  	}
  1257  	type x struct{}
  1258  	out := protoimpl.TypeBuilder{
  1259  		File: protoimpl.DescBuilder{
  1260  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
  1261  			RawDescriptor: file_app_router_config_proto_rawDesc,
  1262  			NumEnums:      2,
  1263  			NumMessages:   10,
  1264  			NumExtensions: 0,
  1265  			NumServices:   0,
  1266  		},
  1267  		GoTypes:           file_app_router_config_proto_goTypes,
  1268  		DependencyIndexes: file_app_router_config_proto_depIdxs,
  1269  		EnumInfos:         file_app_router_config_proto_enumTypes,
  1270  		MessageInfos:      file_app_router_config_proto_msgTypes,
  1271  	}.Build()
  1272  	File_app_router_config_proto = out.File
  1273  	file_app_router_config_proto_rawDesc = nil
  1274  	file_app_router_config_proto_goTypes = nil
  1275  	file_app_router_config_proto_depIdxs = nil
  1276  }