message RpbPutReq {
required bytes bucket = 1;
optional bytes key = 2;
optional bytes vclock = 3;
required RpbContent content = 4;
optional uint32 w = 5;
optional uint32 dw = 6;
optional bool return_body = 7;
optional uint32 pw = 8;
optional bool if_not_modified = 9;
optional bool if_none_match = 10;
optional bool return_head = 11;
}
message RpbPutResp {
repeated RpbContent contents = 1;
optional bytes vclock = 2; // the opaque vector clock for the object
optional bytes key = 3; // the key generated, if any
}
message RpbDelReq {
required bytes bucket = 1;
required bytes key = 2;
optional uint32 rw = 3;
optional bytes vclock = 4;
optional uint32 r = 5;
optional uint32 w = 6;
optional uint32 pr = 7;
optional uint32 pw = 8;
optional uint32 dw = 9;
}
message RpbGetReq {
required bytes bucket = 1;
required bytes key = 2;
optional uint32 r = 3;
optional uint32 pr = 4;
optional bool basic_quorum = 5;
optional bool notfound_ok = 6;
optional bytes if_modified = 7;
optional bool head = 8;
optional bool deletedvclock = 9;
}
message RpbGetResp {
repeated RpbContent content = 1;
optional bytes vclock = 2;
optional bool unchanged = 3;
}
message RpbContent {
required bytes value = 1;
optional bytes content_type = 2; // the media type/format
optional bytes charset = 3;
optional bytes content_encoding = 4;
optional bytes vtag = 5;
repeated RpbLink links = 6; // links to other resources
optional uint32 last_mod = 7;
optional uint32 last_mod_usecs = 8;
repeated RpbPair usermeta = 9; // user metadata stored with the object
repeated RpbPair indexes = 10;
optional bool deleted = 11;
}
message RpbPair {
required bytes key = 1;
optional bytes value = 2;
}
message RpbLink {
optional bytes bucket = 1;
optional bytes key = 2;
optional bytes tag = 3;
}
message RpbErrorResp {
required bytes errmsg = 1;
required uint32 errcode = 2;
}
message RpbListKeysReq {
required bytes bucket = 1;
}
message RpbListKeysResp {
repeated bytes keys = 1;
optional bool done = 2;
}