syntax = "proto3";

option go_package = "git.itzana.me/strafesnet/go-grpc/datastore";

package datastore;

import "google/protobuf/struct.proto";

service DatastoreService {
  rpc Get(KeyMessage) returns (ObjectResponse);
  rpc Update(UpdateMessage) returns (ObjectResponse);
  rpc Delete(KeyMessage) returns (NullResponse);
}

message KeyMessage {
  string Key = 1;
}

message UpdateMessage {
  string Key = 1;
  google.protobuf.Struct Updates = 2;
  google.protobuf.Struct Deletes = 3;
}

message ObjectResponse {
  string Key = 1;
  google.protobuf.Struct Data = 2;
}

message NullResponse {

}