syntax = "proto3";

package syft.grid.messages;

import "proto/core/common/common_object.proto";
import "proto/core/io/address.proto";


// CREATE Role
message CreateRoleMessage {
  syft.core.common.UID msg_id = 1;
  syft.core.io.Address address = 2;
  string content = 3;
  syft.core.io.Address reply_to = 4;
}

message CreateRoleResponse {
  syft.core.common.UID msg_id = 1;
  int32 status_code = 2;
  string content = 3;
  syft.core.io.Address address = 4;
}

// GET Role
message GetRoleMessage {
  syft.core.common.UID msg_id = 1;
  syft.core.io.Address address = 2;
  string content = 3;
  syft.core.io.Address reply_to = 4;
}


message GetRoleResponse {
  syft.core.common.UID msg_id = 1;
  int32 status_code = 2;
  string content = 3;
  syft.core.io.Address address = 4;
}

// GET ALL Roles
message GetRolesMessage {
  syft.core.common.UID msg_id = 1;
  syft.core.io.Address address = 2;
  string content = 3;
  syft.core.io.Address reply_to = 4;
}

message GetRolesResponse {
  syft.core.common.UID msg_id = 1;
  int32 status_code = 2;
  string content = 3;
  syft.core.io.Address address = 4;
}

// SEARCH Role
message SearchRoleMessage {
  syft.core.common.UID msg_id = 1;
  syft.core.io.Address address = 2;
  string content = 3;
  syft.core.io.Address reply_to = 4;
}

message SearchRoleResponse {
  syft.core.common.UID msg_id = 1;
  int32 status_code = 2;
  string content = 3;
  syft.core.io.Address address = 4;
}

// UPDATE Role
message UpdateRoleMessage {
  syft.core.common.UID msg_id = 1;
  syft.core.io.Address address = 2;
  string content = 3;
  syft.core.io.Address reply_to = 4;
}

message UpdateRoleResponse {
  syft.core.common.UID msg_id = 1;
  int32 status_code = 2;
  string content = 3;
  syft.core.io.Address address = 4;
}


// Delete Role
message DeleteRoleMessage {
  syft.core.common.UID msg_id = 1;
  syft.core.io.Address address = 2;
  string content = 3;
  syft.core.io.Address reply_to = 4;
}

message DeleteRoleResponse {
  syft.core.common.UID msg_id = 1;
  int32 status_code = 2;
  string content = 3;
  syft.core.io.Address address = 4;
}

