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

syntax = "proto3";

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

package afrouter;

// For logging
import "voltha_protos/common.proto";

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

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

message Empty {
}

message Count {
    uint32 count = 1;
}

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;
}

