syntax = "proto3"; package xray.common.matcher.geosite; option csharp_namespace = "Xray.Common.Matcher.GeoSite"; option go_package = "github.com/xtls/xray-core/common/matcher/geosite"; option java_package = "com.xray.common.matcher.geosite"; option java_multiple_files = true; import "common/matcher/domain/domain.proto"; message Domain { // Domain matching type. xray.common.matcher.domain.MatchingType type = 1; // Domain value. string value = 2; message Attribute { string key = 1; oneof typed_value { bool bool_value = 2; int64 int_value = 3; } } // Attributes of this domain. May be used for filtering. repeated Attribute attribute = 3; } message GeoSite { string country_code = 1; repeated Domain domain = 2; } message GeoSiteList { repeated GeoSite entry = 1; }