syntax = "proto3";

package syft.grid.messages;

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


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

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

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


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

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

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

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

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

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

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