Files
frontier/api/controlplane/frontlas/v1/cluster.proto
2024-03-28 22:59:05 +08:00

150 lines
3.3 KiB
Protocol Buffer

syntax = "proto3";
package controlplane;
option go_package = "github.com/singchia/frontier/api/controlplane/frontlas/v1;v1";
import "google/api/annotations.proto";
message Frontier {
string frontier_id = 1;
string advertised_sb_addr = 2;
string advertised_eb_addr = 3;
}
message Edge {
uint64 edge_id = 1;
string addr = 2;
uint64 update_time = 3;
string frontier_id = 4;
}
message Service {
string service = 1;
string addr = 2;
uint64 update_time = 3;
string frontier_id = 4;
}
// get frontier
message GetFrontierByEdgeIDRequest {
uint64 edge_id = 1;
}
message GetFrontierByEdgeIDResponse {
Frontier fontier = 1;
}
// list frontiers
message ListFrontiersRequest {
optional uint32 cursor = 1;
optional uint32 count = 2;
repeated uint64 edge_ids = 3;
repeated string frontier_ids = 4;
}
message ListFrontiersResponse {
optional uint32 cursor = 1;
repeated Frontier frontiers = 2;
}
// list edges
message ListEdgesRequest {
optional uint32 cursor = 1;
optional uint32 count = 2;
repeated uint64 edge_ids = 3;
}
message ListEdgesResponse {
optional uint32 cursor = 1;
repeated Edge edges = 2;
}
// get edge
message GetEdgeByIDRequest {
uint64 edge_id = 1;
}
message GetEdgeByIDResponse {
Edge edge = 1;
}
// get edges count
message GetEdgesCountRequest {}
message GetEdgesCountResponse {
uint64 count = 1;
}
// list services
message ListServicesRequest {
optional uint32 cursor = 1;
optional uint32 count = 2;
repeated uint64 service_ids = 3;
}
message ListServicesResponse {
optional uint32 cursor = 1;
repeated Service services = 2;
}
// get service
message GetServiceByIDRequest {
uint64 service_id = 1;
}
message GetServiceByIDResponse {
Service service = 1;
}
// get services count
message GetServicesCountRequest {}
message GetServicesCountResponse {
uint64 count = 1;
}
service ClusterService {
rpc GetFrontierByEdge(GetFrontierByEdgeIDRequest) returns (GetFrontierByEdgeIDResponse) {
option(google.api.http) = {
get: "/cluster/v1/frontier"
};
};
rpc ListFrontiers(ListFrontiersRequest) returns (ListFrontiersResponse) {
option(google.api.http) = {
get: "/cluster/v1/frontiers"
};
};
rpc ListEdges(ListEdgesRequest) returns (ListEdgesResponse) {
option(google.api.http) = {
get: "/cluster/v1/edges"
};
};
rpc GetEdgeByID(GetEdgeByIDRequest) returns (GetEdgeByIDResponse) {
option(google.api.http) = {
get: "/cluster/v1/edge"
};
};
rpc GetEdgesCount(GetEdgesCountRequest) returns (GetEdgesCountResponse) {
option(google.api.http) = {
get: "/cluster/v1/edges/count"
};
};
rpc ListServices(ListServicesRequest) returns (ListServicesResponse) {
option(google.api.http) = {
get: "/cluster/v1/services"
};
};
rpc GetServiceByID(GetServiceByIDRequest) returns (GetServiceByIDResponse) {
option(google.api.http) = {
get: "/cluster/v1/service"
};
};
rpc GetServicesCount(GetServicesCountRequest) returns (GetServicesCountResponse) {
option(google.api.http) = {
get: "/cluster/v1/services/count"
};
};
}