160 lines
5 KiB
Protocol Buffer
160 lines
5 KiB
Protocol Buffer
// Copyright 2020-2022 Signal Messenger, LLC
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
package signalservice;
|
|
|
|
option java_package = "org.whispersystems.signalservice.internal.storage";
|
|
option java_outer_classname = "SignalStorageProtos";
|
|
|
|
message StorageManifest {
|
|
optional uint64 version = 1;
|
|
optional bytes value = 2;
|
|
}
|
|
|
|
message StorageItem {
|
|
optional bytes key = 1;
|
|
optional bytes value = 2;
|
|
}
|
|
|
|
message StorageItems {
|
|
repeated StorageItem items = 1;
|
|
}
|
|
|
|
message ReadOperation {
|
|
repeated bytes readKey = 1;
|
|
}
|
|
|
|
message WriteOperation {
|
|
optional StorageManifest manifest = 1;
|
|
repeated StorageItem insertItem = 2;
|
|
repeated bytes deleteKey = 3;
|
|
optional bool clearAll = 4;
|
|
}
|
|
|
|
message ManifestRecord {
|
|
message Identifier {
|
|
enum Type {
|
|
UNKNOWN = 0;
|
|
CONTACT = 1;
|
|
GROUPV1 = 2;
|
|
GROUPV2 = 3;
|
|
ACCOUNT = 4;
|
|
STORY_DISTRIBUTION_LIST = 5;
|
|
}
|
|
|
|
optional bytes raw = 1;
|
|
optional Type type = 2;
|
|
}
|
|
|
|
optional uint64 version = 1;
|
|
optional uint32 sourceDevice = 3;
|
|
repeated Identifier keys = 2;
|
|
// Next ID: 4
|
|
}
|
|
|
|
message StorageRecord {
|
|
oneof record {
|
|
ContactRecord contact = 1;
|
|
GroupV1Record groupV1 = 2;
|
|
GroupV2Record groupV2 = 3;
|
|
AccountRecord account = 4;
|
|
StoryDistributionListRecord storyDistributionList = 5;
|
|
}
|
|
}
|
|
|
|
message ContactRecord {
|
|
enum IdentityState {
|
|
DEFAULT = 0;
|
|
VERIFIED = 1;
|
|
UNVERIFIED = 2;
|
|
}
|
|
|
|
optional string serviceUuid = 1;
|
|
optional string serviceE164 = 2;
|
|
optional bytes profileKey = 3;
|
|
optional bytes identityKey = 4;
|
|
optional IdentityState identityState = 5;
|
|
optional string givenName = 6;
|
|
optional string familyName = 7;
|
|
optional string username = 8;
|
|
optional bool blocked = 9;
|
|
optional bool whitelisted = 10;
|
|
optional bool archived = 11;
|
|
optional bool markedUnread = 12;
|
|
optional uint64 mutedUntilTimestamp = 13;
|
|
optional bool hideStory = 14;
|
|
}
|
|
|
|
message GroupV1Record {
|
|
optional bytes id = 1;
|
|
optional bool blocked = 2;
|
|
optional bool whitelisted = 3;
|
|
optional bool archived = 4;
|
|
optional bool markedUnread = 5;
|
|
optional uint64 mutedUntilTimestamp = 6;
|
|
}
|
|
|
|
message GroupV2Record {
|
|
optional bytes masterKey = 1;
|
|
optional bool blocked = 2;
|
|
optional bool whitelisted = 3;
|
|
optional bool archived = 4;
|
|
optional bool markedUnread = 5;
|
|
optional uint64 mutedUntilTimestamp = 6;
|
|
optional bool dontNotifyForMentionsIfMuted = 7;
|
|
optional bool hideStory = 8;
|
|
}
|
|
|
|
message AccountRecord {
|
|
enum PhoneNumberSharingMode {
|
|
EVERYBODY = 0;
|
|
CONTACTS_ONLY = 1;
|
|
NOBODY = 2;
|
|
}
|
|
|
|
message PinnedConversation {
|
|
message Contact {
|
|
optional string uuid = 1;
|
|
optional string e164 = 2;
|
|
}
|
|
|
|
oneof identifier {
|
|
Contact contact = 1;
|
|
bytes legacyGroupId = 3;
|
|
bytes groupMasterKey = 4;
|
|
}
|
|
}
|
|
|
|
optional bytes profileKey = 1;
|
|
optional string givenName = 2;
|
|
optional string familyName = 3;
|
|
optional string avatarUrl = 4;
|
|
optional bool noteToSelfArchived = 5;
|
|
optional bool readReceipts = 6;
|
|
optional bool sealedSenderIndicators = 7;
|
|
optional bool typingIndicators = 8;
|
|
optional bool proxiedLinkPreviews = 9;
|
|
optional bool noteToSelfMarkedUnread = 10;
|
|
optional bool linkPreviews = 11;
|
|
optional PhoneNumberSharingMode phoneNumberSharingMode = 12;
|
|
optional bool notDiscoverableByPhoneNumber = 13;
|
|
repeated PinnedConversation pinnedConversations = 14;
|
|
optional bool preferContactAvatars = 15;
|
|
optional uint32 universalExpireTimer = 17;
|
|
optional bool primarySendsSms = 18;
|
|
optional string e164 = 19;
|
|
repeated string preferredReactionEmoji = 20;
|
|
optional bytes subscriberId = 21;
|
|
optional string subscriberCurrencyCode = 22;
|
|
optional bool displayBadgesOnProfile = 23;
|
|
optional bool keepMutedChatsArchived = 25;
|
|
}
|
|
|
|
message StoryDistributionListRecord {
|
|
optional bytes identifier = 1;
|
|
optional string name = 2;
|
|
repeated string recipientUuids = 3;
|
|
optional uint64 deletedAtTimestamp = 4;
|
|
optional bool allowsReplies = 5;
|
|
optional bool isBlockList = 6;
|
|
}
|