syntax = "proto3";
import "protobuf-net/bcl.proto"; // schema for protobuf-net's handling of core .NET types

message Error {
   string Exception = 1;
   string Message = 2;
}
message MessageData {
   oneof subtype {
      ReceiveModelsAuth ReceiveModelsAuth = 1;
      ReceiveModelsGet ReceiveModelsGet = 2;
      ReceiveModelsLock ReceiveModelsLock = 3;
      ReceiveModelsUnlock ReceiveModelsUnlock = 4;
      SendModelsAuth SendModelsAuth = 5;
      Error Error = 6;
      SendModelsGet SendModelsGet = 7;
      SendModelsLock SendModelsLock = 8;
      SendModelsUnlock SendModelsUnlock = 9;
   }
}
message ReceiveModelsAuth {
   string UserName = 1;
   string Password = 2;
   .bcl.Guid ApplicationSessionId = 3; // default value could not be applied: 00000000-0000-0000-0000-000000000000
}
message ReceiveModelsGet {
   .bcl.Guid LockId = 1; // default value could not be applied: 00000000-0000-0000-0000-000000000000
   string Group = 2;
}
message ReceiveModelsLock {
   .bcl.Guid Id = 1; // default value could not be applied: 00000000-0000-0000-0000-000000000000
   .bcl.Guid SessionId = 2;
   string Name = 3;
   string Group = 4;
   string Reason = 5;
   string Caller = 6;
}
message ReceiveModelsUnlock {
   .bcl.Guid LockId = 1; // default value could not be applied: 00000000-0000-0000-0000-000000000000
   .bcl.Guid SessionId = 2; // default value could not be applied: 00000000-0000-0000-0000-000000000000
   string Group = 3;
}
message SendModelsAuth {
   .bcl.TimeSpan PingTime = 1;
   .bcl.TimeSpan Timeout = 2;
}
message SendModelsGet {
   .bcl.Guid SessionId = 1;
   string Name = 2;
   string Reason = 3;
   string Caller = 4;
}
message SendModelsLock {
   .bcl.Guid Id = 1; // default value could not be applied: 00000000-0000-0000-0000-000000000000
   .bcl.Guid SessionId = 2;
   string Group = 3;
   string Name = 4;
   string Reason = 5;
   string Caller = 6;
}
message SendModelsUnlock {
   bool Ok = 1;
   .bcl.Guid LockId = 2; // default value could not be applied: 00000000-0000-0000-0000-000000000000
}
