github.com/moqsien/xraycore@v1.8.5/app/router/config.pb.go (about)

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