grumble/pkg/freezer/types.proto
2011-08-27 13:46:14 +02:00

78 lines
No EOL
1.6 KiB
Protocol Buffer

package freezer;
option optimize_for = SPEED;
message Server {
repeated ConfigKeyValuePair config = 2;
optional BanList ban_list = 3;
repeated Channel channels = 4;
repeated User users = 5;
}
message ConfigKeyValuePair {
required string key = 1;
optional string value = 2;
}
message Ban {
optional bytes ip = 1;
optional uint32 mask = 2;
optional string username = 3;
optional string cert_hash = 4;
optional string reason = 5;
optional int64 start = 6;
optional uint32 duration = 7;
}
message BanList {
repeated Ban bans = 1;
}
message User {
optional uint32 id = 1;
optional string name = 2;
optional string password = 3;
optional string cert_hash = 4;
optional string email = 5;
optional string texture_blob = 6;
optional string comment_blob = 7;
optional uint32 last_channel_id = 8;
optional uint64 last_active = 9;
}
message UserRemove {
optional uint32 id = 1;
}
message Channel {
optional uint32 id = 1;
optional string name = 2;
optional uint32 parent_id = 3;
optional int64 position = 4;
optional bool inherit_acl = 5;
repeated uint32 links = 6;
repeated ACL acl = 7;
repeated Group groups = 8;
optional string description_blob = 9;
}
message ChannelRemove {
optional uint32 id = 1;
}
message ACL {
optional uint32 user_id = 1;
optional string group = 2;
optional bool apply_here = 3;
optional bool apply_subs = 4;
optional uint32 allow = 5;
optional uint32 deny = 6;
}
message Group {
optional string name = 1;
optional bool inherit = 2;
optional bool inheritable = 3;
repeated uint32 add = 4;
repeated uint32 remove = 5;
}