syntax = "proto3"; package moe.nekojimi.friendcloud.protos; import "CommonMessages.proto"; enum ObjectType { OBJECT_TYPE_UNSPECIFIED = 0; OBJECT_TYPE_USER = 1; OBJECT_TYPE_PEER = 2; OBJECT_TYPE_FILE = 3; OBJECT_TYPE_FOLDER = 4; } message ObjectState { uint64 object_id = 1; map values = 2; } message ObjectStateMessage { repeated uint64 change_heads = 1; repeated ObjectState states = 2; } message ObjectStateRequest { repeated uint64 object_ids = 1; repeated string keys = 2; } message ObjectChange { uint64 object_id = 1; map before = 3; map after = 4; } message ObjectChangeMessage { uint64 change_id = 1; repeated uint64 change_heads = 2; repeated ObjectChange changes = 3; uint64 creator_id = 4; uint64 timestamp_ms = 5; } message ObjectChangeListMessage { repeated ObjectChangeMessage change_messages = 1; } message ObjectChangeRequest { repeated uint64 changes_since = 1; } message ObjectList { uint64 change_head = 1; repeated ObjectState states = 2; } message ObjectListRequest { repeated ObjectType types = 1; }