[ONOS-7233] Add gRPC Mastership Service with corresponding model
Change-Id: I88e07a0d1688c0baf6b8477dd55edda3a92887c5
diff --git a/incubator/protobuf/services/nb/src/main/proto/mastership/MastershipServiceNb.proto b/incubator/protobuf/services/nb/src/main/proto/mastership/MastershipServiceNb.proto
new file mode 100644
index 0000000..6fc2705
--- /dev/null
+++ b/incubator/protobuf/services/nb/src/main/proto/mastership/MastershipServiceNb.proto
@@ -0,0 +1,64 @@
+syntax="proto3";
+option java_package = "org.onosproject.grpc.nb.mastership";
+
+package nb.mastership;
+
+import "net/MastershipRoleProto.proto";
+import "cluster/RoleInfoProto.proto";
+import "cluster/NodeIdProto.proto";
+
+message getLocalRoleRequest {
+ string device_id = 1;
+}
+
+message getLocalRoleReply {
+ .net.MastershipRoleProto mastership_role = 1;
+}
+
+message isLocalMasterRequest {
+ string device_id = 1;
+}
+
+message isLocalMasterReply {
+ bool is_local_master = 1;
+}
+
+message requestRoleForSyncRequest {
+ string device_id = 1;
+}
+
+message requestRoleForSyncReply {
+ .net.MastershipRoleProto mastership_role = 1;
+}
+
+message relinquishMastershipSyncRequest {
+ string device_id = 1;
+}
+
+message relinquishMastershipSyncReply {
+}
+
+message getMasterForRequest {
+ string device_id = 1;
+}
+
+message getMasterForReply {
+ .cluster.NodeIdProto node_id = 1;
+}
+
+message getNodesForRequest {
+ string device_id = 1;
+}
+
+message getNodesForReply {
+ .cluster.RoleInfoProto role_info = 1;
+}
+
+service MastershipService {
+ rpc getLocalRole(getLocalRoleRequest) returns (getLocalRoleReply) {}
+ rpc isLocalMaster(isLocalMasterRequest) returns (isLocalMasterReply) {}
+ rpc requestRoleForSync(requestRoleForSyncRequest) returns (requestRoleForSyncReply) {}
+ rpc relinquishMastershipSync(relinquishMastershipSyncRequest) returns (relinquishMastershipSyncReply) {}
+ rpc getMasterFor(getMasterForRequest) returns (getMasterForReply) {}
+ rpc getNodesFor(getNodesForRequest) returns (getNodesForReply) {}
+}
\ No newline at end of file