// protoc -I echo/ echo/*.proto --go_out=plugins=grpc:echo

syntax = "proto3";

option go_package = "github.com/opencord/voltha-protos/go/afrouter";

package afrouter;

service Configuration {
	rpc SetConnection (Conn) returns (Result) {}
	rpc SetAffinity(Affinity) returns (Result) {}
	rpc GetGoroutineCount(Empty) returns (Count) {}
}

message Empty {
}

message Count {
	uint32 count = 1;
}

message Result {
	bool success = 1;
	string error = 2;
	string info = 3;
}

message Conn {
	string server = 1;
	string pkg = 2;
	string svc = 3;
	string cluster = 4;
	string backend = 5;
	string connection = 6;
	string addr = 7;
	uint64 port = 8;
}

message Affinity {
	string router = 1;
	string route = 2;
	string cluster = 3;
	string backend = 4;
	string id = 5;
}
