micro/network/proto/network.proto

103 lines
2.2 KiB
Protocol Buffer
Raw Normal View History

syntax = "proto3";
package go.micro.network;
import "github.com/micro/go-micro/router/proto/router.proto";
// Network service is usesd to gain visibility into networks
service Network {
// Connect to the network
rpc Connect(ConnectRequest) returns (ConnectResponse) {};
2019-09-30 09:51:13 +03:00
// Returns the entire network graph
rpc Graph(GraphRequest) returns (GraphResponse) {};
2019-09-30 09:51:13 +03:00
// Returns a list of known nodes in the network
rpc Nodes(NodesRequest) returns (NodesResponse) {};
2019-09-30 09:51:13 +03:00
// Returns a list of known routes in the network
rpc Routes(RoutesRequest) returns (RoutesResponse) {};
2019-09-30 09:51:13 +03:00
// Returns a list of known services based on routes
rpc Services(ServicesRequest) returns (ServicesResponse) {};
}
// Query is passed in a LookupRequest
message Query {
string service = 1;
string address = 2;
string gateway = 3;
string router = 4;
string network = 5;
}
message ConnectRequest {
repeated Node nodes = 1;
}
message ConnectResponse {}
// PeerRequest requests list of peers
message NodesRequest {
// node topology depth
uint32 depth = 1;
}
// PeerResponse is returned by ListPeers
message NodesResponse {
// return peer topology
repeated Node nodes = 1;
}
message GraphRequest {
// node topology depth
uint32 depth = 1;
}
message GraphResponse {
Peer root = 1;
}
message RoutesRequest {
// filter based on
Query query = 1;
}
message RoutesResponse {
repeated go.micro.router.Route routes = 1;
}
2019-09-30 09:51:13 +03:00
message ServicesRequest {}
message ServicesResponse {
repeated string services = 1;
}
// Node is network node
message Node {
// node id
string id = 1;
// node address
string address = 2;
2019-10-13 14:40:53 +03:00
// the network
string network = 3;
// associated metadata
map<string,string> metadata = 4;
}
// Connect is sent when the node connects to the network
message Connect {
// network mode
Node node = 1;
}
// Close is sent when the node disconnects from the network
message Close {
// network node
Node node = 1;
}
// Peer is used to advertise node peers
message Peer {
// network node
Node node = 1;
// node peers
repeated Peer peers = 2;
}