syntax = "proto3"; package v1; import "google/protobuf/wrappers.proto"; option go_package = "github.com/polarismesh/specification/source/go/api/v1/model"; option java_package = "com.tencent.polaris.specification.api.v1.model"; option java_outer_classname = "ModelProto"; message Location { google.protobuf.StringValue region = 1; google.protobuf.StringValue zone = 2; google.protobuf.StringValue campus = 3; } message MatchString { enum MatchStringType { // Equivalent match EXACT = 0; // Regular match REGEX = 1; // Not equals match NOT_EQUALS = 2; // Include match IN = 3; // Not include match NOT_IN = 4; // Range match RANGE = 5; } enum ValueType { TEXT = 0; PARAMETER = 1; VARIABLE = 2; } MatchStringType type = 1; google.protobuf.StringValue value = 2; ValueType value_type = 3 [ json_name = "value_type" ]; } message StringList { repeated string values = 1; } // 汇总查询数据 message Summary { // 服务总数 uint32 total_service_count = 1 [ json_name = "total_service_count" ]; // 健康实例总数 uint32 total_health_instance_count = 2 [ json_name = "total_health_instance_count" ]; // 实例总数 uint32 total_instance_count = 3 [ json_name = "total_instance_count" ]; } message ClientLabel { string key = 1; MatchString value = 2; } // API统一数据结构 message API { // API的协议,*或者为空代表全部 string protocol = 1 [ json_name = "protocol" ]; // API的方法,*或者为空代表全部 string method = 2 [ json_name = "method" ]; // API的路径,支持多种匹配方式 MatchString path = 3 [ json_name = "path" ]; }