5
0
mirror of https://github.com/cwinfo/matterbridge.git synced 2024-12-28 17:05:39 +00:00
matterbridge/vendor/go.mau.fi/whatsmeow/binary/proto/def.proto
Wim 2f33fe86f5
Update dependencies and build to go1.22 (#2113)
* Update dependencies and build to go1.22

* Fix api changes wrt to dependencies

* Update golangci config
2024-05-23 23:44:31 +02:00

3176 lines
93 KiB
Protocol Buffer

syntax = "proto2";
package proto;
message ADVSignedKeyIndexList {
optional bytes details = 1;
optional bytes accountSignature = 2;
optional bytes accountSignatureKey = 3;
}
message ADVSignedDeviceIdentity {
optional bytes details = 1;
optional bytes accountSignatureKey = 2;
optional bytes accountSignature = 3;
optional bytes deviceSignature = 4;
}
message ADVSignedDeviceIdentityHMAC {
optional bytes details = 1;
optional bytes hmac = 2;
optional ADVEncryptionType accountType = 3;
}
message ADVKeyIndexList {
optional uint32 rawId = 1;
optional uint64 timestamp = 2;
optional uint32 currentIndex = 3;
repeated uint32 validIndexes = 4 [packed=true];
optional ADVEncryptionType accountType = 5;
}
enum ADVEncryptionType {
E2EE = 0;
HOSTED = 1;
}
message ADVDeviceIdentity {
optional uint32 rawId = 1;
optional uint64 timestamp = 2;
optional uint32 keyIndex = 3;
optional ADVEncryptionType accountType = 4;
optional ADVEncryptionType deviceType = 5;
}
message DeviceProps {
enum PlatformType {
UNKNOWN = 0;
CHROME = 1;
FIREFOX = 2;
IE = 3;
OPERA = 4;
SAFARI = 5;
EDGE = 6;
DESKTOP = 7;
IPAD = 8;
ANDROID_TABLET = 9;
OHANA = 10;
ALOHA = 11;
CATALINA = 12;
TCL_TV = 13;
IOS_PHONE = 14;
IOS_CATALYST = 15;
ANDROID_PHONE = 16;
ANDROID_AMBIGUOUS = 17;
WEAR_OS = 18;
AR_WRIST = 19;
AR_DEVICE = 20;
UWP = 21;
VR = 22;
}
message HistorySyncConfig {
optional uint32 fullSyncDaysLimit = 1;
optional uint32 fullSyncSizeMbLimit = 2;
optional uint32 storageQuotaMb = 3;
optional bool inlineInitialPayloadInE2EeMsg = 4;
optional uint32 recentSyncDaysLimit = 5;
optional bool supportCallLogHistory = 6;
optional bool supportBotUserAgentChatHistory = 7;
optional bool supportCagReactionsAndPolls = 8;
optional bool supportBizHostedMsg = 9;
optional bool supportRecentSyncChunkMessageCountTuning = 10;
}
message AppVersion {
optional uint32 primary = 1;
optional uint32 secondary = 2;
optional uint32 tertiary = 3;
optional uint32 quaternary = 4;
optional uint32 quinary = 5;
}
optional string os = 1;
optional AppVersion version = 2;
optional PlatformType platformType = 3;
optional bool requireFullSync = 4;
optional HistorySyncConfig historySyncConfig = 5;
}
message InitialSecurityNotificationSettingSync {
optional bool securityNotificationEnabled = 1;
}
message ImageMessage {
enum ImageSourceType {
USER_IMAGE = 0;
AI_GENERATED = 1;
AI_MODIFIED = 2;
}
optional string url = 1;
optional string mimetype = 2;
optional string caption = 3;
optional bytes fileSha256 = 4;
optional uint64 fileLength = 5;
optional uint32 height = 6;
optional uint32 width = 7;
optional bytes mediaKey = 8;
optional bytes fileEncSha256 = 9;
repeated InteractiveAnnotation interactiveAnnotations = 10;
optional string directPath = 11;
optional int64 mediaKeyTimestamp = 12;
optional bytes jpegThumbnail = 16;
optional ContextInfo contextInfo = 17;
optional bytes firstScanSidecar = 18;
optional uint32 firstScanLength = 19;
optional uint32 experimentGroupId = 20;
optional bytes scansSidecar = 21;
repeated uint32 scanLengths = 22;
optional bytes midQualityFileSha256 = 23;
optional bytes midQualityFileEncSha256 = 24;
optional bool viewOnce = 25;
optional string thumbnailDirectPath = 26;
optional bytes thumbnailSha256 = 27;
optional bytes thumbnailEncSha256 = 28;
optional string staticUrl = 29;
repeated InteractiveAnnotation annotations = 30;
optional ImageSourceType imageSourceType = 31;
}
message HistorySyncNotification {
enum HistorySyncType {
INITIAL_BOOTSTRAP = 0;
INITIAL_STATUS_V3 = 1;
FULL = 2;
RECENT = 3;
PUSH_NAME = 4;
NON_BLOCKING_DATA = 5;
ON_DEMAND = 6;
}
optional bytes fileSha256 = 1;
optional uint64 fileLength = 2;
optional bytes mediaKey = 3;
optional bytes fileEncSha256 = 4;
optional string directPath = 5;
optional HistorySyncType syncType = 6;
optional uint32 chunkOrder = 7;
optional string originalMessageId = 8;
optional uint32 progress = 9;
optional int64 oldestMsgInChunkTimestampSec = 10;
optional bytes initialHistBootstrapInlinePayload = 11;
optional string peerDataRequestSessionId = 12;
}
message HighlyStructuredMessage {
message HSMLocalizableParameter {
message HSMDateTime {
message HSMDateTimeUnixEpoch {
optional int64 timestamp = 1;
}
message HSMDateTimeComponent {
enum DayOfWeekType {
MONDAY = 1;
TUESDAY = 2;
WEDNESDAY = 3;
THURSDAY = 4;
FRIDAY = 5;
SATURDAY = 6;
SUNDAY = 7;
}
enum CalendarType {
GREGORIAN = 1;
SOLAR_HIJRI = 2;
}
optional DayOfWeekType dayOfWeek = 1;
optional uint32 year = 2;
optional uint32 month = 3;
optional uint32 dayOfMonth = 4;
optional uint32 hour = 5;
optional uint32 minute = 6;
optional CalendarType calendar = 7;
}
oneof datetimeOneof {
HSMDateTimeComponent component = 1;
HSMDateTimeUnixEpoch unixEpoch = 2;
}
}
message HSMCurrency {
optional string currencyCode = 1;
optional int64 amount1000 = 2;
}
optional string default = 1;
oneof paramOneof {
HSMCurrency currency = 2;
HSMDateTime dateTime = 3;
}
}
optional string namespace = 1;
optional string elementName = 2;
repeated string params = 3;
optional string fallbackLg = 4;
optional string fallbackLc = 5;
repeated HSMLocalizableParameter localizableParams = 6;
optional string deterministicLg = 7;
optional string deterministicLc = 8;
optional TemplateMessage hydratedHsm = 9;
}
message GroupInviteMessage {
enum GroupType {
DEFAULT = 0;
PARENT = 1;
}
optional string groupJid = 1;
optional string inviteCode = 2;
optional int64 inviteExpiration = 3;
optional string groupName = 4;
optional bytes jpegThumbnail = 5;
optional string caption = 6;
optional ContextInfo contextInfo = 7;
optional GroupType groupType = 8;
}
message FutureProofMessage {
optional Message message = 1;
}
message ExtendedTextMessage {
enum PreviewType {
NONE = 0;
VIDEO = 1;
PLACEHOLDER = 4;
IMAGE = 5;
}
enum InviteLinkGroupType {
DEFAULT = 0;
PARENT = 1;
SUB = 2;
DEFAULT_SUB = 3;
}
enum FontType {
SYSTEM = 0;
SYSTEM_TEXT = 1;
FB_SCRIPT = 2;
SYSTEM_BOLD = 6;
MORNINGBREEZE_REGULAR = 7;
CALISTOGA_REGULAR = 8;
EXO2_EXTRABOLD = 9;
COURIERPRIME_BOLD = 10;
}
optional string text = 1;
optional string matchedText = 2;
optional string canonicalUrl = 4;
optional string description = 5;
optional string title = 6;
optional fixed32 textArgb = 7;
optional fixed32 backgroundArgb = 8;
optional FontType font = 9;
optional PreviewType previewType = 10;
optional bytes jpegThumbnail = 16;
optional ContextInfo contextInfo = 17;
optional bool doNotPlayInline = 18;
optional string thumbnailDirectPath = 19;
optional bytes thumbnailSha256 = 20;
optional bytes thumbnailEncSha256 = 21;
optional bytes mediaKey = 22;
optional int64 mediaKeyTimestamp = 23;
optional uint32 thumbnailHeight = 24;
optional uint32 thumbnailWidth = 25;
optional InviteLinkGroupType inviteLinkGroupType = 26;
optional string inviteLinkParentGroupSubjectV2 = 27;
optional bytes inviteLinkParentGroupThumbnailV2 = 28;
optional InviteLinkGroupType inviteLinkGroupTypeV2 = 29;
optional bool viewOnce = 30;
}
message EventResponseMessage {
enum EventResponseType {
UNKNOWN = 0;
GOING = 1;
NOT_GOING = 2;
}
optional EventResponseType response = 1;
optional int64 timestampMs = 2;
}
message EventMessage {
optional ContextInfo contextInfo = 1;
optional bool isCanceled = 2;
optional string name = 3;
optional string description = 4;
optional LocationMessage location = 5;
optional string joinLink = 6;
optional int64 startTime = 7;
}
message EncReactionMessage {
optional MessageKey targetMessageKey = 1;
optional bytes encPayload = 2;
optional bytes encIv = 3;
}
message EncEventResponseMessage {
optional MessageKey eventCreationMessageKey = 1;
optional bytes encPayload = 2;
optional bytes encIv = 3;
}
message EncCommentMessage {
optional MessageKey targetMessageKey = 1;
optional bytes encPayload = 2;
optional bytes encIv = 3;
}
message DocumentMessage {
optional string url = 1;
optional string mimetype = 2;
optional string title = 3;
optional bytes fileSha256 = 4;
optional uint64 fileLength = 5;
optional uint32 pageCount = 6;
optional bytes mediaKey = 7;
optional string fileName = 8;
optional bytes fileEncSha256 = 9;
optional string directPath = 10;
optional int64 mediaKeyTimestamp = 11;
optional bool contactVcard = 12;
optional string thumbnailDirectPath = 13;
optional bytes thumbnailSha256 = 14;
optional bytes thumbnailEncSha256 = 15;
optional bytes jpegThumbnail = 16;
optional ContextInfo contextInfo = 17;
optional uint32 thumbnailHeight = 18;
optional uint32 thumbnailWidth = 19;
optional string caption = 20;
}
message DeviceSentMessage {
optional string destinationJid = 1;
optional Message message = 2;
optional string phash = 3;
}
message DeclinePaymentRequestMessage {
optional MessageKey key = 1;
}
message ContactsArrayMessage {
optional string displayName = 1;
repeated ContactMessage contacts = 2;
optional ContextInfo contextInfo = 17;
}
message ContactMessage {
optional string displayName = 1;
optional string vcard = 16;
optional ContextInfo contextInfo = 17;
}
message CommentMessage {
optional Message message = 1;
optional MessageKey targetMessageKey = 2;
}
message Chat {
optional string displayName = 1;
optional string id = 2;
}
message CancelPaymentRequestMessage {
optional MessageKey key = 1;
}
message Call {
optional bytes callKey = 1;
optional string conversionSource = 2;
optional bytes conversionData = 3;
optional uint32 conversionDelaySeconds = 4;
}
message CallLogMessage {
enum CallType {
REGULAR = 0;
SCHEDULED_CALL = 1;
VOICE_CHAT = 2;
}
message CallParticipant {
optional string jid = 1;
optional CallOutcome callOutcome = 2;
}
enum CallOutcome {
CONNECTED = 0;
MISSED = 1;
FAILED = 2;
REJECTED = 3;
ACCEPTED_ELSEWHERE = 4;
ONGOING = 5;
SILENCED_BY_DND = 6;
SILENCED_UNKNOWN_CALLER = 7;
}
optional bool isVideo = 1;
optional CallOutcome callOutcome = 2;
optional int64 durationSecs = 3;
optional CallType callType = 4;
repeated CallParticipant participants = 5;
}
message ButtonsResponseMessage {
enum Type {
UNKNOWN = 0;
DISPLAY_TEXT = 1;
}
optional string selectedButtonId = 1;
optional ContextInfo contextInfo = 3;
optional Type type = 4;
oneof response {
string selectedDisplayText = 2;
}
}
message ButtonsMessage {
enum HeaderType {
UNKNOWN = 0;
EMPTY = 1;
TEXT = 2;
DOCUMENT = 3;
IMAGE = 4;
VIDEO = 5;
LOCATION = 6;
}
message Button {
enum Type {
UNKNOWN = 0;
RESPONSE = 1;
NATIVE_FLOW = 2;
}
message NativeFlowInfo {
optional string name = 1;
optional string paramsJson = 2;
}
message ButtonText {
optional string displayText = 1;
}
optional string buttonId = 1;
optional ButtonText buttonText = 2;
optional Type type = 3;
optional NativeFlowInfo nativeFlowInfo = 4;
}
optional string contentText = 6;
optional string footerText = 7;
optional ContextInfo contextInfo = 8;
repeated Button buttons = 9;
optional HeaderType headerType = 10;
oneof header {
string text = 1;
DocumentMessage documentMessage = 2;
ImageMessage imageMessage = 3;
VideoMessage videoMessage = 4;
LocationMessage locationMessage = 5;
}
}
message BotFeedbackMessage {
enum BotFeedbackKindMultiplePositive {
BOT_FEEDBACK_MULTIPLE_POSITIVE_GENERIC = 1;
}
enum BotFeedbackKindMultipleNegative {
BOT_FEEDBACK_MULTIPLE_NEGATIVE_GENERIC = 1;
BOT_FEEDBACK_MULTIPLE_NEGATIVE_HELPFUL = 2;
BOT_FEEDBACK_MULTIPLE_NEGATIVE_INTERESTING = 4;
BOT_FEEDBACK_MULTIPLE_NEGATIVE_ACCURATE = 8;
BOT_FEEDBACK_MULTIPLE_NEGATIVE_SAFE = 16;
BOT_FEEDBACK_MULTIPLE_NEGATIVE_OTHER = 32;
BOT_FEEDBACK_MULTIPLE_NEGATIVE_REFUSED = 64;
BOT_FEEDBACK_MULTIPLE_NEGATIVE_NOT_VISUALLY_APPEALING = 128;
BOT_FEEDBACK_MULTIPLE_NEGATIVE_NOT_RELEVANT_TO_TEXT = 256;
}
enum BotFeedbackKind {
BOT_FEEDBACK_POSITIVE = 0;
BOT_FEEDBACK_NEGATIVE_GENERIC = 1;
BOT_FEEDBACK_NEGATIVE_HELPFUL = 2;
BOT_FEEDBACK_NEGATIVE_INTERESTING = 3;
BOT_FEEDBACK_NEGATIVE_ACCURATE = 4;
BOT_FEEDBACK_NEGATIVE_SAFE = 5;
BOT_FEEDBACK_NEGATIVE_OTHER = 6;
BOT_FEEDBACK_NEGATIVE_REFUSED = 7;
BOT_FEEDBACK_NEGATIVE_NOT_VISUALLY_APPEALING = 8;
BOT_FEEDBACK_NEGATIVE_NOT_RELEVANT_TO_TEXT = 9;
}
optional MessageKey messageKey = 1;
optional BotFeedbackKind kind = 2;
optional string text = 3;
optional uint64 kindNegative = 4;
optional uint64 kindPositive = 5;
}
message BCallMessage {
enum MediaType {
UNKNOWN = 0;
AUDIO = 1;
VIDEO = 2;
}
optional string sessionId = 1;
optional MediaType mediaType = 2;
optional bytes masterKey = 3;
optional string caption = 4;
}
message AudioMessage {
optional string url = 1;
optional string mimetype = 2;
optional bytes fileSha256 = 3;
optional uint64 fileLength = 4;
optional uint32 seconds = 5;
optional bool ptt = 6;
optional bytes mediaKey = 7;
optional bytes fileEncSha256 = 8;
optional string directPath = 9;
optional int64 mediaKeyTimestamp = 10;
optional ContextInfo contextInfo = 17;
optional bytes streamingSidecar = 18;
optional bytes waveform = 19;
optional fixed32 backgroundArgb = 20;
optional bool viewOnce = 21;
}
message AppStateSyncKey {
optional AppStateSyncKeyId keyId = 1;
optional AppStateSyncKeyData keyData = 2;
}
message AppStateSyncKeyShare {
repeated AppStateSyncKey keys = 1;
}
message AppStateSyncKeyRequest {
repeated AppStateSyncKeyId keyIds = 1;
}
message AppStateSyncKeyId {
optional bytes keyId = 1;
}
message AppStateSyncKeyFingerprint {
optional uint32 rawId = 1;
optional uint32 currentIndex = 2;
repeated uint32 deviceIndexes = 3 [packed=true];
}
message AppStateSyncKeyData {
optional bytes keyData = 1;
optional AppStateSyncKeyFingerprint fingerprint = 2;
optional int64 timestamp = 3;
}
message AppStateFatalExceptionNotification {
repeated string collectionNames = 1;
optional int64 timestamp = 2;
}
message MediaNotifyMessage {
optional string expressPathUrl = 1;
optional bytes fileEncSha256 = 2;
optional uint64 fileLength = 3;
}
message Location {
optional double degreesLatitude = 1;
optional double degreesLongitude = 2;
optional string name = 3;
}
enum KeepType {
UNKNOWN = 0;
KEEP_FOR_ALL = 1;
UNDO_KEEP_FOR_ALL = 2;
}
message InteractiveAnnotation {
repeated Point polygonVertices = 1;
optional bool shouldSkipConfirmation = 4;
oneof action {
Location location = 2;
ForwardedNewsletterMessageInfo newsletter = 3;
}
}
message HydratedTemplateButton {
message HydratedURLButton {
enum WebviewPresentationType {
FULL = 1;
TALL = 2;
COMPACT = 3;
}
optional string displayText = 1;
optional string url = 2;
optional string consentedUsersUrl = 3;
optional WebviewPresentationType webviewPresentation = 4;
}
message HydratedQuickReplyButton {
optional string displayText = 1;
optional string id = 2;
}
message HydratedCallButton {
optional string displayText = 1;
optional string phoneNumber = 2;
}
optional uint32 index = 4;
oneof hydratedButton {
HydratedQuickReplyButton quickReplyButton = 1;
HydratedURLButton urlButton = 2;
HydratedCallButton callButton = 3;
}
}
message GroupMention {
optional string groupJid = 1;
optional string groupSubject = 2;
}
message DisappearingMode {
enum Trigger {
UNKNOWN = 0;
CHAT_SETTING = 1;
ACCOUNT_SETTING = 2;
BULK_CHANGE = 3;
BIZ_SUPPORTS_FB_HOSTING = 4;
}
enum Initiator {
CHANGED_IN_CHAT = 0;
INITIATED_BY_ME = 1;
INITIATED_BY_OTHER = 2;
BIZ_UPGRADE_FB_HOSTING = 3;
}
optional Initiator initiator = 1;
optional Trigger trigger = 2;
optional string initiatorDeviceJid = 3;
optional bool initiatedByMe = 4;
}
message DeviceListMetadata {
optional bytes senderKeyHash = 1;
optional uint64 senderTimestamp = 2;
repeated uint32 senderKeyIndexes = 3 [packed=true];
optional ADVEncryptionType senderAccountType = 4;
optional ADVEncryptionType receiverAccountType = 5;
optional bytes recipientKeyHash = 8;
optional uint64 recipientTimestamp = 9;
repeated uint32 recipientKeyIndexes = 10 [packed=true];
}
message ContextInfo {
message UTMInfo {
optional string utmSource = 1;
optional string utmCampaign = 2;
}
message ExternalAdReplyInfo {
enum MediaType {
NONE = 0;
IMAGE = 1;
VIDEO = 2;
}
optional string title = 1;
optional string body = 2;
optional MediaType mediaType = 3;
optional string thumbnailUrl = 4;
optional string mediaUrl = 5;
optional bytes thumbnail = 6;
optional string sourceType = 7;
optional string sourceId = 8;
optional string sourceUrl = 9;
optional bool containsAutoReply = 10;
optional bool renderLargerThumbnail = 11;
optional bool showAdAttribution = 12;
optional string ctwaClid = 13;
optional string ref = 14;
}
message DataSharingContext {
optional bool showMmDisclosure = 1;
}
message BusinessMessageForwardInfo {
optional string businessOwnerJid = 1;
}
message AdReplyInfo {
enum MediaType {
NONE = 0;
IMAGE = 1;
VIDEO = 2;
}
optional string advertiserName = 1;
optional MediaType mediaType = 2;
optional bytes jpegThumbnail = 16;
optional string caption = 17;
}
optional string stanzaId = 1;
optional string participant = 2;
optional Message quotedMessage = 3;
optional string remoteJid = 4;
repeated string mentionedJid = 15;
optional string conversionSource = 18;
optional bytes conversionData = 19;
optional uint32 conversionDelaySeconds = 20;
optional uint32 forwardingScore = 21;
optional bool isForwarded = 22;
optional AdReplyInfo quotedAd = 23;
optional MessageKey placeholderKey = 24;
optional uint32 expiration = 25;
optional int64 ephemeralSettingTimestamp = 26;
optional bytes ephemeralSharedSecret = 27;
optional ExternalAdReplyInfo externalAdReply = 28;
optional string entryPointConversionSource = 29;
optional string entryPointConversionApp = 30;
optional uint32 entryPointConversionDelaySeconds = 31;
optional DisappearingMode disappearingMode = 32;
optional ActionLink actionLink = 33;
optional string groupSubject = 34;
optional string parentGroupJid = 35;
optional string trustBannerType = 37;
optional uint32 trustBannerAction = 38;
optional bool isSampled = 39;
repeated GroupMention groupMentions = 40;
optional UTMInfo utm = 41;
optional ForwardedNewsletterMessageInfo forwardedNewsletterMessageInfo = 43;
optional BusinessMessageForwardInfo businessMessageForwardInfo = 44;
optional string smbClientCampaignId = 45;
optional string smbServerCampaignId = 46;
optional DataSharingContext dataSharingContext = 47;
optional bool alwaysShowAdAttribution = 48;
}
message ForwardedNewsletterMessageInfo {
enum ContentType {
UPDATE = 1;
UPDATE_CARD = 2;
LINK_CARD = 3;
}
optional string newsletterJid = 1;
optional int32 serverMessageId = 2;
optional string newsletterName = 3;
optional ContentType contentType = 4;
optional string accessibilityText = 5;
}
message BotSuggestedPromptMetadata {
repeated string suggestedPrompts = 1;
optional uint32 selectedPromptIndex = 2;
}
message BotSearchMetadata {
optional string sessionId = 1;
}
message BotPluginMetadata {
enum SearchProvider {
BING = 1;
GOOGLE = 2;
}
enum PluginType {
REELS = 1;
SEARCH = 2;
}
optional SearchProvider provider = 1;
optional PluginType pluginType = 2;
optional string thumbnailCdnUrl = 3;
optional string profilePhotoCdnUrl = 4;
optional string searchProviderUrl = 5;
optional uint32 referenceIndex = 6;
optional uint32 expectedLinksCount = 7;
optional string searchQuery = 9;
optional MessageKey parentPluginMessageKey = 10;
}
message BotMetadata {
optional BotAvatarMetadata avatarMetadata = 1;
optional string personaId = 2;
optional BotPluginMetadata pluginMetadata = 3;
optional BotSuggestedPromptMetadata suggestedPromptMetadata = 4;
optional string invokerJid = 5;
optional BotSearchMetadata searchMetadata = 6;
}
message BotAvatarMetadata {
optional uint32 sentiment = 1;
optional string behaviorGraph = 2;
optional uint32 action = 3;
optional uint32 intensity = 4;
optional uint32 wordCount = 5;
}
message ActionLink {
optional string url = 1;
optional string buttonTitle = 2;
}
message TemplateButton {
message URLButton {
optional HighlyStructuredMessage displayText = 1;
optional HighlyStructuredMessage url = 2;
}
message QuickReplyButton {
optional HighlyStructuredMessage displayText = 1;
optional string id = 2;
}
message CallButton {
optional HighlyStructuredMessage displayText = 1;
optional HighlyStructuredMessage phoneNumber = 2;
}
optional uint32 index = 4;
oneof button {
QuickReplyButton quickReplyButton = 1;
URLButton urlButton = 2;
CallButton callButton = 3;
}
}
message Point {
optional int32 xDeprecated = 1;
optional int32 yDeprecated = 2;
optional double x = 3;
optional double y = 4;
}
message PaymentBackground {
enum Type {
UNKNOWN = 0;
DEFAULT = 1;
}
message MediaData {
optional bytes mediaKey = 1;
optional int64 mediaKeyTimestamp = 2;
optional bytes fileSha256 = 3;
optional bytes fileEncSha256 = 4;
optional string directPath = 5;
}
optional string id = 1;
optional uint64 fileLength = 2;
optional uint32 width = 3;
optional uint32 height = 4;
optional string mimetype = 5;
optional fixed32 placeholderArgb = 6;
optional fixed32 textArgb = 7;
optional fixed32 subtextArgb = 8;
optional MediaData mediaData = 9;
optional Type type = 10;
}
message Money {
optional int64 value = 1;
optional uint32 offset = 2;
optional string currencyCode = 3;
}
message Message {
optional string conversation = 1;
optional SenderKeyDistributionMessage senderKeyDistributionMessage = 2;
optional ImageMessage imageMessage = 3;
optional ContactMessage contactMessage = 4;
optional LocationMessage locationMessage = 5;
optional ExtendedTextMessage extendedTextMessage = 6;
optional DocumentMessage documentMessage = 7;
optional AudioMessage audioMessage = 8;
optional VideoMessage videoMessage = 9;
optional Call call = 10;
optional Chat chat = 11;
optional ProtocolMessage protocolMessage = 12;
optional ContactsArrayMessage contactsArrayMessage = 13;
optional HighlyStructuredMessage highlyStructuredMessage = 14;
optional SenderKeyDistributionMessage fastRatchetKeySenderKeyDistributionMessage = 15;
optional SendPaymentMessage sendPaymentMessage = 16;
optional LiveLocationMessage liveLocationMessage = 18;
optional RequestPaymentMessage requestPaymentMessage = 22;
optional DeclinePaymentRequestMessage declinePaymentRequestMessage = 23;
optional CancelPaymentRequestMessage cancelPaymentRequestMessage = 24;
optional TemplateMessage templateMessage = 25;
optional StickerMessage stickerMessage = 26;
optional GroupInviteMessage groupInviteMessage = 28;
optional TemplateButtonReplyMessage templateButtonReplyMessage = 29;
optional ProductMessage productMessage = 30;
optional DeviceSentMessage deviceSentMessage = 31;
optional MessageContextInfo messageContextInfo = 35;
optional ListMessage listMessage = 36;
optional FutureProofMessage viewOnceMessage = 37;
optional OrderMessage orderMessage = 38;
optional ListResponseMessage listResponseMessage = 39;
optional FutureProofMessage ephemeralMessage = 40;
optional InvoiceMessage invoiceMessage = 41;
optional ButtonsMessage buttonsMessage = 42;
optional ButtonsResponseMessage buttonsResponseMessage = 43;
optional PaymentInviteMessage paymentInviteMessage = 44;
optional InteractiveMessage interactiveMessage = 45;
optional ReactionMessage reactionMessage = 46;
optional StickerSyncRMRMessage stickerSyncRmrMessage = 47;
optional InteractiveResponseMessage interactiveResponseMessage = 48;
optional PollCreationMessage pollCreationMessage = 49;
optional PollUpdateMessage pollUpdateMessage = 50;
optional KeepInChatMessage keepInChatMessage = 51;
optional FutureProofMessage documentWithCaptionMessage = 53;
optional RequestPhoneNumberMessage requestPhoneNumberMessage = 54;
optional FutureProofMessage viewOnceMessageV2 = 55;
optional EncReactionMessage encReactionMessage = 56;
optional FutureProofMessage editedMessage = 58;
optional FutureProofMessage viewOnceMessageV2Extension = 59;
optional PollCreationMessage pollCreationMessageV2 = 60;
optional ScheduledCallCreationMessage scheduledCallCreationMessage = 61;
optional FutureProofMessage groupMentionedMessage = 62;
optional PinInChatMessage pinInChatMessage = 63;
optional PollCreationMessage pollCreationMessageV3 = 64;
optional ScheduledCallEditMessage scheduledCallEditMessage = 65;
optional VideoMessage ptvMessage = 66;
optional FutureProofMessage botInvokeMessage = 67;
optional CallLogMessage callLogMesssage = 69;
optional MessageHistoryBundle messageHistoryBundle = 70;
optional EncCommentMessage encCommentMessage = 71;
optional BCallMessage bcallMessage = 72;
optional FutureProofMessage lottieStickerMessage = 74;
optional EventMessage eventMessage = 75;
optional EncEventResponseMessage encEventResponseMessage = 76;
optional CommentMessage commentMessage = 77;
optional NewsletterAdminInviteMessage newsletterAdminInviteMessage = 78;
optional PlaceholderMessage placeholderMessage = 80;
optional SecretEncryptedMessage secretEncryptedMessage = 82;
}
message MessageSecretMessage {
optional sfixed32 version = 1;
optional bytes encIv = 2;
optional bytes encPayload = 3;
}
message MessageContextInfo {
optional DeviceListMetadata deviceListMetadata = 1;
optional int32 deviceListMetadataVersion = 2;
optional bytes messageSecret = 3;
optional bytes paddingBytes = 4;
optional uint32 messageAddOnDurationInSecs = 5;
optional bytes botMessageSecret = 6;
optional BotMetadata botMetadata = 7;
optional int32 reportingTokenVersion = 8;
}
message VideoMessage {
enum Attribution {
NONE = 0;
GIPHY = 1;
TENOR = 2;
}
optional string url = 1;
optional string mimetype = 2;
optional bytes fileSha256 = 3;
optional uint64 fileLength = 4;
optional uint32 seconds = 5;
optional bytes mediaKey = 6;
optional string caption = 7;
optional bool gifPlayback = 8;
optional uint32 height = 9;
optional uint32 width = 10;
optional bytes fileEncSha256 = 11;
repeated InteractiveAnnotation interactiveAnnotations = 12;
optional string directPath = 13;
optional int64 mediaKeyTimestamp = 14;
optional bytes jpegThumbnail = 16;
optional ContextInfo contextInfo = 17;
optional bytes streamingSidecar = 18;
optional Attribution gifAttribution = 19;
optional bool viewOnce = 20;
optional string thumbnailDirectPath = 21;
optional bytes thumbnailSha256 = 22;
optional bytes thumbnailEncSha256 = 23;
optional string staticUrl = 24;
repeated InteractiveAnnotation annotations = 25;
}
message TemplateMessage {
message HydratedFourRowTemplate {
optional string hydratedContentText = 6;
optional string hydratedFooterText = 7;
repeated HydratedTemplateButton hydratedButtons = 8;
optional string templateId = 9;
optional bool maskLinkedDevices = 10;
oneof title {
DocumentMessage documentMessage = 1;
string hydratedTitleText = 2;
ImageMessage imageMessage = 3;
VideoMessage videoMessage = 4;
LocationMessage locationMessage = 5;
}
}
message FourRowTemplate {
optional HighlyStructuredMessage content = 6;
optional HighlyStructuredMessage footer = 7;
repeated TemplateButton buttons = 8;
oneof title {
DocumentMessage documentMessage = 1;
HighlyStructuredMessage highlyStructuredMessage = 2;
ImageMessage imageMessage = 3;
VideoMessage videoMessage = 4;
LocationMessage locationMessage = 5;
}
}
optional ContextInfo contextInfo = 3;
optional HydratedFourRowTemplate hydratedTemplate = 4;
optional string templateId = 9;
oneof format {
FourRowTemplate fourRowTemplate = 1;
HydratedFourRowTemplate hydratedFourRowTemplate = 2;
InteractiveMessage interactiveMessageTemplate = 5;
}
}
message TemplateButtonReplyMessage {
optional string selectedId = 1;
optional string selectedDisplayText = 2;
optional ContextInfo contextInfo = 3;
optional uint32 selectedIndex = 4;
optional uint32 selectedCarouselCardIndex = 5;
}
message StickerSyncRMRMessage {
repeated string filehash = 1;
optional string rmrSource = 2;
optional int64 requestTimestamp = 3;
}
message StickerMessage {
optional string url = 1;
optional bytes fileSha256 = 2;
optional bytes fileEncSha256 = 3;
optional bytes mediaKey = 4;
optional string mimetype = 5;
optional uint32 height = 6;
optional uint32 width = 7;
optional string directPath = 8;
optional uint64 fileLength = 9;
optional int64 mediaKeyTimestamp = 10;
optional uint32 firstFrameLength = 11;
optional bytes firstFrameSidecar = 12;
optional bool isAnimated = 13;
optional bytes pngThumbnail = 16;
optional ContextInfo contextInfo = 17;
optional int64 stickerSentTs = 18;
optional bool isAvatar = 19;
optional bool isAiSticker = 20;
optional bool isLottie = 21;
}
message SenderKeyDistributionMessage {
optional string groupId = 1;
optional bytes axolotlSenderKeyDistributionMessage = 2;
}
message SendPaymentMessage {
optional Message noteMessage = 2;
optional MessageKey requestMessageKey = 3;
optional PaymentBackground background = 4;
}
message SecretEncryptedMessage {
enum SecretEncType {
UNKNOWN = 0;
EVENT_EDIT = 1;
}
optional MessageKey targetMessageKey = 1;
optional bytes encPayload = 2;
optional bytes encIv = 3;
optional SecretEncType secretEncType = 4;
}
message ScheduledCallEditMessage {
enum EditType {
UNKNOWN = 0;
CANCEL = 1;
}
optional MessageKey key = 1;
optional EditType editType = 2;
}
message ScheduledCallCreationMessage {
enum CallType {
UNKNOWN = 0;
VOICE = 1;
VIDEO = 2;
}
optional int64 scheduledTimestampMs = 1;
optional CallType callType = 2;
optional string title = 3;
}
message RequestWelcomeMessageMetadata {
enum LocalChatState {
EMPTY = 0;
NON_EMPTY = 1;
}
optional LocalChatState localChatState = 1;
}
message RequestPhoneNumberMessage {
optional ContextInfo contextInfo = 1;
}
message RequestPaymentMessage {
optional Message noteMessage = 4;
optional string currencyCodeIso4217 = 1;
optional uint64 amount1000 = 2;
optional string requestFrom = 3;
optional int64 expiryTimestamp = 5;
optional Money amount = 6;
optional PaymentBackground background = 7;
}
message ReactionMessage {
optional MessageKey key = 1;
optional string text = 2;
optional string groupingKey = 3;
optional int64 senderTimestampMs = 4;
}
message ProtocolMessage {
enum Type {
REVOKE = 0;
EPHEMERAL_SETTING = 3;
EPHEMERAL_SYNC_RESPONSE = 4;
HISTORY_SYNC_NOTIFICATION = 5;
APP_STATE_SYNC_KEY_SHARE = 6;
APP_STATE_SYNC_KEY_REQUEST = 7;
MSG_FANOUT_BACKFILL_REQUEST = 8;
INITIAL_SECURITY_NOTIFICATION_SETTING_SYNC = 9;
APP_STATE_FATAL_EXCEPTION_NOTIFICATION = 10;
SHARE_PHONE_NUMBER = 11;
MESSAGE_EDIT = 14;
PEER_DATA_OPERATION_REQUEST_MESSAGE = 16;
PEER_DATA_OPERATION_REQUEST_RESPONSE_MESSAGE = 17;
REQUEST_WELCOME_MESSAGE = 18;
BOT_FEEDBACK_MESSAGE = 19;
MEDIA_NOTIFY_MESSAGE = 20;
}
optional MessageKey key = 1;
optional Type type = 2;
optional uint32 ephemeralExpiration = 4;
optional int64 ephemeralSettingTimestamp = 5;
optional HistorySyncNotification historySyncNotification = 6;
optional AppStateSyncKeyShare appStateSyncKeyShare = 7;
optional AppStateSyncKeyRequest appStateSyncKeyRequest = 8;
optional InitialSecurityNotificationSettingSync initialSecurityNotificationSettingSync = 9;
optional AppStateFatalExceptionNotification appStateFatalExceptionNotification = 10;
optional DisappearingMode disappearingMode = 11;
optional Message editedMessage = 14;
optional int64 timestampMs = 15;
optional PeerDataOperationRequestMessage peerDataOperationRequestMessage = 16;
optional PeerDataOperationRequestResponseMessage peerDataOperationRequestResponseMessage = 17;
optional BotFeedbackMessage botFeedbackMessage = 18;
optional string invokerJid = 19;
optional RequestWelcomeMessageMetadata requestWelcomeMessageMetadata = 20;
optional MediaNotifyMessage mediaNotifyMessage = 21;
}
message ProductMessage {
message ProductSnapshot {
optional ImageMessage productImage = 1;
optional string productId = 2;
optional string title = 3;
optional string description = 4;
optional string currencyCode = 5;
optional int64 priceAmount1000 = 6;
optional string retailerId = 7;
optional string url = 8;
optional uint32 productImageCount = 9;
optional string firstImageId = 11;
optional int64 salePriceAmount1000 = 12;
}
message CatalogSnapshot {
optional ImageMessage catalogImage = 1;
optional string title = 2;
optional string description = 3;
}
optional ProductSnapshot product = 1;
optional string businessOwnerJid = 2;
optional CatalogSnapshot catalog = 4;
optional string body = 5;
optional string footer = 6;
optional ContextInfo contextInfo = 17;
}
message PollVoteMessage {
repeated bytes selectedOptions = 1;
}
message PollUpdateMessage {
optional MessageKey pollCreationMessageKey = 1;
optional PollEncValue vote = 2;
optional PollUpdateMessageMetadata metadata = 3;
optional int64 senderTimestampMs = 4;
}
message PollUpdateMessageMetadata {
}
message PollEncValue {
optional bytes encPayload = 1;
optional bytes encIv = 2;
}
message PollCreationMessage {
message Option {
optional string optionName = 1;
}
optional bytes encKey = 1;
optional string name = 2;
repeated Option options = 3;
optional uint32 selectableOptionsCount = 4;
optional ContextInfo contextInfo = 5;
}
message PlaceholderMessage {
enum PlaceholderType {
MASK_LINKED_DEVICES = 0;
}
optional PlaceholderType type = 1;
}
message PinInChatMessage {
enum Type {
UNKNOWN_TYPE = 0;
PIN_FOR_ALL = 1;
UNPIN_FOR_ALL = 2;
}
optional MessageKey key = 1;
optional Type type = 2;
optional int64 senderTimestampMs = 3;
}
enum PeerDataOperationRequestType {
UPLOAD_STICKER = 0;
SEND_RECENT_STICKER_BOOTSTRAP = 1;
GENERATE_LINK_PREVIEW = 2;
HISTORY_SYNC_ON_DEMAND = 3;
PLACEHOLDER_MESSAGE_RESEND = 4;
}
message PeerDataOperationRequestResponseMessage {
message PeerDataOperationResult {
message PlaceholderMessageResendResponse {
optional bytes webMessageInfoBytes = 1;
}
message LinkPreviewResponse {
message LinkPreviewHighQualityThumbnail {
optional string directPath = 1;
optional string thumbHash = 2;
optional string encThumbHash = 3;
optional bytes mediaKey = 4;
optional int64 mediaKeyTimestampMs = 5;
optional int32 thumbWidth = 6;
optional int32 thumbHeight = 7;
}
optional string url = 1;
optional string title = 2;
optional string description = 3;
optional bytes thumbData = 4;
optional string canonicalUrl = 5;
optional string matchText = 6;
optional string previewType = 7;
optional LinkPreviewHighQualityThumbnail hqThumbnail = 8;
}
optional MediaRetryNotification.ResultType mediaUploadResult = 1;
optional StickerMessage stickerMessage = 2;
optional LinkPreviewResponse linkPreviewResponse = 3;
optional PlaceholderMessageResendResponse placeholderMessageResendResponse = 4;
}
optional PeerDataOperationRequestType peerDataOperationRequestType = 1;
optional string stanzaId = 2;
repeated PeerDataOperationResult peerDataOperationResult = 3;
}
message PeerDataOperationRequestMessage {
message RequestUrlPreview {
optional string url = 1;
optional bool includeHqThumbnail = 2;
}
message RequestStickerReupload {
optional string fileSha256 = 1;
}
message PlaceholderMessageResendRequest {
optional MessageKey messageKey = 1;
}
message HistorySyncOnDemandRequest {
optional string chatJid = 1;
optional string oldestMsgId = 2;
optional bool oldestMsgFromMe = 3;
optional int32 onDemandMsgCount = 4;
optional int64 oldestMsgTimestampMs = 5;
}
optional PeerDataOperationRequestType peerDataOperationRequestType = 1;
repeated RequestStickerReupload requestStickerReupload = 2;
repeated RequestUrlPreview requestUrlPreview = 3;
optional HistorySyncOnDemandRequest historySyncOnDemandRequest = 4;
repeated PlaceholderMessageResendRequest placeholderMessageResendRequest = 5;
}
message PaymentInviteMessage {
enum ServiceType {
UNKNOWN = 0;
FBPAY = 1;
NOVI = 2;
UPI = 3;
}
optional ServiceType serviceType = 1;
optional int64 expiryTimestamp = 2;
}
message OrderMessage {
enum OrderSurface {
CATALOG = 1;
}
enum OrderStatus {
INQUIRY = 1;
ACCEPTED = 2;
DECLINED = 3;
}
optional string orderId = 1;
optional bytes thumbnail = 2;
optional int32 itemCount = 3;
optional OrderStatus status = 4;
optional OrderSurface surface = 5;
optional string message = 6;
optional string orderTitle = 7;
optional string sellerJid = 8;
optional string token = 9;
optional int64 totalAmount1000 = 10;
optional string totalCurrencyCode = 11;
optional ContextInfo contextInfo = 17;
optional int32 messageVersion = 12;
optional MessageKey orderRequestMessageId = 13;
}
message NewsletterAdminInviteMessage {
optional string newsletterJid = 1;
optional string newsletterName = 2;
optional bytes jpegThumbnail = 3;
optional string caption = 4;
optional int64 inviteExpiration = 5;
optional ContextInfo contextInfo = 6;
}
message MessageHistoryBundle {
optional string mimetype = 2;
optional bytes fileSha256 = 3;
optional bytes mediaKey = 5;
optional bytes fileEncSha256 = 6;
optional string directPath = 7;
optional int64 mediaKeyTimestamp = 8;
optional ContextInfo contextInfo = 9;
repeated string participants = 10;
}
message LocationMessage {
optional double degreesLatitude = 1;
optional double degreesLongitude = 2;
optional string name = 3;
optional string address = 4;
optional string url = 5;
optional bool isLive = 6;
optional uint32 accuracyInMeters = 7;
optional float speedInMps = 8;
optional uint32 degreesClockwiseFromMagneticNorth = 9;
optional string comment = 11;
optional bytes jpegThumbnail = 16;
optional ContextInfo contextInfo = 17;
}
message LiveLocationMessage {
optional double degreesLatitude = 1;
optional double degreesLongitude = 2;
optional uint32 accuracyInMeters = 3;
optional float speedInMps = 4;
optional uint32 degreesClockwiseFromMagneticNorth = 5;
optional string caption = 6;
optional int64 sequenceNumber = 7;
optional uint32 timeOffset = 8;
optional bytes jpegThumbnail = 16;
optional ContextInfo contextInfo = 17;
}
message ListResponseMessage {
message SingleSelectReply {
optional string selectedRowId = 1;
}
enum ListType {
UNKNOWN = 0;
SINGLE_SELECT = 1;
}
optional string title = 1;
optional ListType listType = 2;
optional SingleSelectReply singleSelectReply = 3;
optional ContextInfo contextInfo = 4;
optional string description = 5;
}
message ListMessage {
message Section {
optional string title = 1;
repeated Row rows = 2;
}
message Row {
optional string title = 1;
optional string description = 2;
optional string rowId = 3;
}
message Product {
optional string productId = 1;
}
message ProductSection {
optional string title = 1;
repeated Product products = 2;
}
message ProductListInfo {
repeated ProductSection productSections = 1;
optional ProductListHeaderImage headerImage = 2;
optional string businessOwnerJid = 3;
}
message ProductListHeaderImage {
optional string productId = 1;
optional bytes jpegThumbnail = 2;
}
enum ListType {
UNKNOWN = 0;
SINGLE_SELECT = 1;
PRODUCT_LIST = 2;
}
optional string title = 1;
optional string description = 2;
optional string buttonText = 3;
optional ListType listType = 4;
repeated Section sections = 5;
optional ProductListInfo productListInfo = 6;
optional string footerText = 7;
optional ContextInfo contextInfo = 8;
}
message KeepInChatMessage {
optional MessageKey key = 1;
optional KeepType keepType = 2;
optional int64 timestampMs = 3;
}
message InvoiceMessage {
enum AttachmentType {
IMAGE = 0;
PDF = 1;
}
optional string note = 1;
optional string token = 2;
optional AttachmentType attachmentType = 3;
optional string attachmentMimetype = 4;
optional bytes attachmentMediaKey = 5;
optional int64 attachmentMediaKeyTimestamp = 6;
optional bytes attachmentFileSha256 = 7;
optional bytes attachmentFileEncSha256 = 8;
optional string attachmentDirectPath = 9;
optional bytes attachmentJpegThumbnail = 10;
}
message InteractiveResponseMessage {
message NativeFlowResponseMessage {
optional string name = 1;
optional string paramsJson = 2;
optional int32 version = 3;
}
message Body {
enum Format {
DEFAULT = 0;
EXTENSIONS_1 = 1;
}
optional string text = 1;
optional Format format = 2;
}
optional Body body = 1;
optional ContextInfo contextInfo = 15;
oneof interactiveResponseMessage {
NativeFlowResponseMessage nativeFlowResponseMessage = 2;
}
}
message InteractiveMessage {
message NativeFlowMessage {
message NativeFlowButton {
optional string name = 1;
optional string buttonParamsJson = 2;
}
repeated NativeFlowButton buttons = 1;
optional string messageParamsJson = 2;
optional int32 messageVersion = 3;
}
message Header {
optional string title = 1;
optional string subtitle = 2;
optional bool hasMediaAttachment = 5;
oneof media {
DocumentMessage documentMessage = 3;
ImageMessage imageMessage = 4;
bytes jpegThumbnail = 6;
VideoMessage videoMessage = 7;
LocationMessage locationMessage = 8;
ProductMessage productMessage = 9;
}
}
message Footer {
optional string text = 1;
}
message CollectionMessage {
optional string bizJid = 1;
optional string id = 2;
optional int32 messageVersion = 3;
}
message CarouselMessage {
repeated InteractiveMessage cards = 1;
optional int32 messageVersion = 2;
}
message Body {
optional string text = 1;
}
message ShopMessage {
enum Surface {
UNKNOWN_SURFACE = 0;
FB = 1;
IG = 2;
WA = 3;
}
optional string id = 1;
optional Surface surface = 2;
optional int32 messageVersion = 3;
}
optional Header header = 1;
optional Body body = 2;
optional Footer footer = 3;
optional ContextInfo contextInfo = 15;
oneof interactiveMessage {
ShopMessage shopStorefrontMessage = 4;
CollectionMessage collectionMessage = 5;
NativeFlowMessage nativeFlowMessage = 6;
CarouselMessage carouselMessage = 7;
}
}
message EphemeralSetting {
optional sfixed32 duration = 1;
optional sfixed64 timestamp = 2;
}
message WallpaperSettings {
optional string filename = 1;
optional uint32 opacity = 2;
}
message StickerMetadata {
optional string url = 1;
optional bytes fileSha256 = 2;
optional bytes fileEncSha256 = 3;
optional bytes mediaKey = 4;
optional string mimetype = 5;
optional uint32 height = 6;
optional uint32 width = 7;
optional string directPath = 8;
optional uint64 fileLength = 9;
optional float weight = 10;
optional int64 lastStickerSentTs = 11;
}
message Pushname {
optional string id = 1;
optional string pushname = 2;
}
message PhoneNumberToLIDMapping {
optional string pnJid = 1;
optional string lidJid = 2;
}
message PastParticipants {
optional string groupJid = 1;
repeated PastParticipant pastParticipants = 2;
}
message PastParticipant {
enum LeaveReason {
LEFT = 0;
REMOVED = 1;
}
optional string userJid = 1;
optional LeaveReason leaveReason = 2;
optional uint64 leaveTs = 3;
}
message NotificationSettings {
optional string messageVibrate = 1;
optional string messagePopup = 2;
optional string messageLight = 3;
optional bool lowPriorityNotifications = 4;
optional bool reactionsMuted = 5;
optional string callVibrate = 6;
}
enum MediaVisibility {
DEFAULT = 0;
OFF = 1;
ON = 2;
}
message HistorySync {
enum HistorySyncType {
INITIAL_BOOTSTRAP = 0;
INITIAL_STATUS_V3 = 1;
FULL = 2;
RECENT = 3;
PUSH_NAME = 4;
NON_BLOCKING_DATA = 5;
ON_DEMAND = 6;
}
enum BotAIWaitListState {
IN_WAITLIST = 0;
AI_AVAILABLE = 1;
}
required HistorySyncType syncType = 1;
repeated Conversation conversations = 2;
repeated WebMessageInfo statusV3Messages = 3;
optional uint32 chunkOrder = 5;
optional uint32 progress = 6;
repeated Pushname pushnames = 7;
optional GlobalSettings globalSettings = 8;
optional bytes threadIdUserSecret = 9;
optional uint32 threadDsTimeframeOffset = 10;
repeated StickerMetadata recentStickers = 11;
repeated PastParticipants pastParticipants = 12;
repeated CallLogRecord callLogRecords = 13;
optional BotAIWaitListState aiWaitListState = 14;
repeated PhoneNumberToLIDMapping phoneNumberToLidMappings = 15;
}
message HistorySyncMsg {
optional WebMessageInfo message = 1;
optional uint64 msgOrderId = 2;
}
message GroupParticipant {
enum Rank {
REGULAR = 0;
ADMIN = 1;
SUPERADMIN = 2;
}
required string userJid = 1;
optional Rank rank = 2;
}
message GlobalSettings {
optional WallpaperSettings lightThemeWallpaper = 1;
optional MediaVisibility mediaVisibility = 2;
optional WallpaperSettings darkThemeWallpaper = 3;
optional AutoDownloadSettings autoDownloadWiFi = 4;
optional AutoDownloadSettings autoDownloadCellular = 5;
optional AutoDownloadSettings autoDownloadRoaming = 6;
optional bool showIndividualNotificationsPreview = 7;
optional bool showGroupNotificationsPreview = 8;
optional int32 disappearingModeDuration = 9;
optional int64 disappearingModeTimestamp = 10;
optional AvatarUserSettings avatarUserSettings = 11;
optional int32 fontSize = 12;
optional bool securityNotifications = 13;
optional bool autoUnarchiveChats = 14;
optional int32 videoQualityMode = 15;
optional int32 photoQualityMode = 16;
optional NotificationSettings individualNotificationSettings = 17;
optional NotificationSettings groupNotificationSettings = 18;
optional ChatLockSettings chatLockSettings = 19;
}
message Conversation {
enum EndOfHistoryTransferType {
COMPLETE_BUT_MORE_MESSAGES_REMAIN_ON_PRIMARY = 0;
COMPLETE_AND_NO_MORE_MESSAGE_REMAIN_ON_PRIMARY = 1;
COMPLETE_ON_DEMAND_SYNC_BUT_MORE_MSG_REMAIN_ON_PRIMARY = 2;
}
required string id = 1;
repeated HistorySyncMsg messages = 2;
optional string newJid = 3;
optional string oldJid = 4;
optional uint64 lastMsgTimestamp = 5;
optional uint32 unreadCount = 6;
optional bool readOnly = 7;
optional bool endOfHistoryTransfer = 8;
optional uint32 ephemeralExpiration = 9;
optional int64 ephemeralSettingTimestamp = 10;
optional EndOfHistoryTransferType endOfHistoryTransferType = 11;
optional uint64 conversationTimestamp = 12;
optional string name = 13;
optional string pHash = 14;
optional bool notSpam = 15;
optional bool archived = 16;
optional DisappearingMode disappearingMode = 17;
optional uint32 unreadMentionCount = 18;
optional bool markedAsUnread = 19;
repeated GroupParticipant participant = 20;
optional bytes tcToken = 21;
optional uint64 tcTokenTimestamp = 22;
optional bytes contactPrimaryIdentityKey = 23;
optional uint32 pinned = 24;
optional uint64 muteEndTime = 25;
optional WallpaperSettings wallpaper = 26;
optional MediaVisibility mediaVisibility = 27;
optional uint64 tcTokenSenderTimestamp = 28;
optional bool suspended = 29;
optional bool terminated = 30;
optional uint64 createdAt = 31;
optional string createdBy = 32;
optional string description = 33;
optional bool support = 34;
optional bool isParentGroup = 35;
optional string parentGroupId = 37;
optional bool isDefaultSubgroup = 36;
optional string displayName = 38;
optional string pnJid = 39;
optional bool shareOwnPn = 40;
optional bool pnhDuplicateLidThread = 41;
optional string lidJid = 42;
optional string username = 43;
optional string lidOriginType = 44;
optional uint32 commentsCount = 45;
optional bool locked = 46;
}
message AvatarUserSettings {
optional string fbid = 1;
optional string password = 2;
}
message AutoDownloadSettings {
optional bool downloadImages = 1;
optional bool downloadAudio = 2;
optional bool downloadVideo = 3;
optional bool downloadDocuments = 4;
}
message ServerErrorReceipt {
optional string stanzaId = 1;
}
message MediaRetryNotification {
enum ResultType {
GENERAL_ERROR = 0;
SUCCESS = 1;
NOT_FOUND = 2;
DECRYPTION_ERROR = 3;
}
optional string stanzaId = 1;
optional string directPath = 2;
optional ResultType result = 3;
}
message MessageKey {
optional string remoteJid = 1;
optional bool fromMe = 2;
optional string id = 3;
optional string participant = 4;
}
// Duplicate type omitted
//message MessageKey {
// optional string remoteJid = 1;
// optional bool fromMe = 2;
// optional string id = 3;
// optional string participant = 4;
//}
message SyncdVersion {
optional uint64 version = 1;
}
message SyncdValue {
optional bytes blob = 1;
}
message SyncdSnapshot {
optional SyncdVersion version = 1;
repeated SyncdRecord records = 2;
optional bytes mac = 3;
optional KeyId keyId = 4;
}
message SyncdRecord {
optional SyncdIndex index = 1;
optional SyncdValue value = 2;
optional KeyId keyId = 3;
}
message SyncdPatch {
optional SyncdVersion version = 1;
repeated SyncdMutation mutations = 2;
optional ExternalBlobReference externalMutations = 3;
optional bytes snapshotMac = 4;
optional bytes patchMac = 5;
optional KeyId keyId = 6;
optional ExitCode exitCode = 7;
optional uint32 deviceIndex = 8;
optional bytes clientDebugData = 9;
}
message SyncdMutations {
repeated SyncdMutation mutations = 1;
}
message SyncdMutation {
enum SyncdOperation {
SET = 0;
REMOVE = 1;
}
optional SyncdOperation operation = 1;
optional SyncdRecord record = 2;
}
message SyncdIndex {
optional bytes blob = 1;
}
message KeyId {
optional bytes id = 1;
}
message ExternalBlobReference {
optional bytes mediaKey = 1;
optional string directPath = 2;
optional string handle = 3;
optional uint64 fileSizeBytes = 4;
optional bytes fileSha256 = 5;
optional bytes fileEncSha256 = 6;
}
message ExitCode {
optional uint64 code = 1;
optional string text = 2;
}
message SyncActionValue {
optional int64 timestamp = 1;
optional StarAction starAction = 2;
optional ContactAction contactAction = 3;
optional MuteAction muteAction = 4;
optional PinAction pinAction = 5;
optional SecurityNotificationSetting securityNotificationSetting = 6;
optional PushNameSetting pushNameSetting = 7;
optional QuickReplyAction quickReplyAction = 8;
optional RecentEmojiWeightsAction recentEmojiWeightsAction = 11;
optional LabelEditAction labelEditAction = 14;
optional LabelAssociationAction labelAssociationAction = 15;
optional LocaleSetting localeSetting = 16;
optional ArchiveChatAction archiveChatAction = 17;
optional DeleteMessageForMeAction deleteMessageForMeAction = 18;
optional KeyExpiration keyExpiration = 19;
optional MarkChatAsReadAction markChatAsReadAction = 20;
optional ClearChatAction clearChatAction = 21;
optional DeleteChatAction deleteChatAction = 22;
optional UnarchiveChatsSetting unarchiveChatsSetting = 23;
optional PrimaryFeature primaryFeature = 24;
optional AndroidUnsupportedActions androidUnsupportedActions = 26;
optional AgentAction agentAction = 27;
optional SubscriptionAction subscriptionAction = 28;
optional UserStatusMuteAction userStatusMuteAction = 29;
optional TimeFormatAction timeFormatAction = 30;
optional NuxAction nuxAction = 31;
optional PrimaryVersionAction primaryVersionAction = 32;
optional StickerAction stickerAction = 33;
optional RemoveRecentStickerAction removeRecentStickerAction = 34;
optional ChatAssignmentAction chatAssignment = 35;
optional ChatAssignmentOpenedStatusAction chatAssignmentOpenedStatus = 36;
optional PnForLidChatAction pnForLidChatAction = 37;
optional MarketingMessageAction marketingMessageAction = 38;
optional MarketingMessageBroadcastAction marketingMessageBroadcastAction = 39;
optional ExternalWebBetaAction externalWebBetaAction = 40;
optional PrivacySettingRelayAllCalls privacySettingRelayAllCalls = 41;
optional CallLogAction callLogAction = 42;
optional StatusPrivacyAction statusPrivacy = 44;
optional BotWelcomeRequestAction botWelcomeRequestAction = 45;
optional DeleteIndividualCallLogAction deleteIndividualCallLog = 46;
optional LabelReorderingAction labelReorderingAction = 47;
optional PaymentInfoAction paymentInfoAction = 48;
optional CustomPaymentMethodsAction customPaymentMethodsAction = 49;
optional LockChatAction lockChatAction = 50;
optional ChatLockSettings chatLockSettings = 51;
optional WamoUserIdentifierAction wamoUserIdentifierAction = 52;
optional PrivacySettingDisableLinkPreviewsAction privacySettingDisableLinkPreviewsAction = 53;
optional DeviceCapabilities deviceCapabilities = 54;
}
message WamoUserIdentifierAction {
optional string identifier = 1;
}
message UserStatusMuteAction {
optional bool muted = 1;
}
message UnarchiveChatsSetting {
optional bool unarchiveChats = 1;
}
message TimeFormatAction {
optional bool isTwentyFourHourFormatEnabled = 1;
}
message SyncActionMessage {
optional MessageKey key = 1;
optional int64 timestamp = 2;
}
message SyncActionMessageRange {
optional int64 lastMessageTimestamp = 1;
optional int64 lastSystemMessageTimestamp = 2;
repeated SyncActionMessage messages = 3;
}
message SubscriptionAction {
optional bool isDeactivated = 1;
optional bool isAutoRenewing = 2;
optional int64 expirationDate = 3;
}
message StickerAction {
optional string url = 1;
optional bytes fileEncSha256 = 2;
optional bytes mediaKey = 3;
optional string mimetype = 4;
optional uint32 height = 5;
optional uint32 width = 6;
optional string directPath = 7;
optional uint64 fileLength = 8;
optional bool isFavorite = 9;
optional uint32 deviceIdHint = 10;
}
message StatusPrivacyAction {
enum StatusDistributionMode {
ALLOW_LIST = 0;
DENY_LIST = 1;
CONTACTS = 2;
}
optional StatusDistributionMode mode = 1;
repeated string userJid = 2;
}
message StarAction {
optional bool starred = 1;
}
message SecurityNotificationSetting {
optional bool showNotification = 1;
}
message RemoveRecentStickerAction {
optional int64 lastStickerSentTs = 1;
}
message RecentEmojiWeightsAction {
repeated RecentEmojiWeight weights = 1;
}
message QuickReplyAction {
optional string shortcut = 1;
optional string message = 2;
repeated string keywords = 3;
optional int32 count = 4;
optional bool deleted = 5;
}
message PushNameSetting {
optional string name = 1;
}
message PrivacySettingRelayAllCalls {
optional bool isEnabled = 1;
}
message PrivacySettingDisableLinkPreviewsAction {
optional bool isPreviewsDisabled = 1;
}
message PrimaryVersionAction {
optional string version = 1;
}
message PrimaryFeature {
repeated string flags = 1;
}
message PnForLidChatAction {
optional string pnJid = 1;
}
message PinAction {
optional bool pinned = 1;
}
message PaymentInfoAction {
optional string cpi = 1;
}
message NuxAction {
optional bool acknowledged = 1;
}
message MuteAction {
optional bool muted = 1;
optional int64 muteEndTimestamp = 2;
optional bool autoMuted = 3;
}
message MarketingMessageBroadcastAction {
optional int32 repliedCount = 1;
}
message MarketingMessageAction {
enum MarketingMessagePrototypeType {
PERSONALIZED = 0;
}
optional string name = 1;
optional string message = 2;
optional MarketingMessagePrototypeType type = 3;
optional int64 createdAt = 4;
optional int64 lastSentAt = 5;
optional bool isDeleted = 6;
optional string mediaId = 7;
}
message MarkChatAsReadAction {
optional bool read = 1;
optional SyncActionMessageRange messageRange = 2;
}
message LockChatAction {
optional bool locked = 1;
}
message LocaleSetting {
optional string locale = 1;
}
message LabelReorderingAction {
repeated int32 sortedLabelIds = 1;
}
message LabelEditAction {
optional string name = 1;
optional int32 color = 2;
optional int32 predefinedId = 3;
optional bool deleted = 4;
optional int32 orderIndex = 5;
}
message LabelAssociationAction {
optional bool labeled = 1;
}
message KeyExpiration {
optional int32 expiredKeyEpoch = 1;
}
message ExternalWebBetaAction {
optional bool isOptIn = 1;
}
message DeleteMessageForMeAction {
optional bool deleteMedia = 1;
optional int64 messageTimestamp = 2;
}
message DeleteIndividualCallLogAction {
optional string peerJid = 1;
optional bool isIncoming = 2;
}
message DeleteChatAction {
optional SyncActionMessageRange messageRange = 1;
}
message CustomPaymentMethodsAction {
repeated CustomPaymentMethod customPaymentMethods = 1;
}
message CustomPaymentMethod {
required string credentialId = 1;
required string country = 2;
required string type = 3;
repeated CustomPaymentMethodMetadata metadata = 4;
}
message CustomPaymentMethodMetadata {
required string key = 1;
required string value = 2;
}
message ContactAction {
optional string fullName = 1;
optional string firstName = 2;
optional string lidJid = 3;
optional bool saveOnPrimaryAddressbook = 4;
}
message ClearChatAction {
optional SyncActionMessageRange messageRange = 1;
}
message ChatAssignmentOpenedStatusAction {
optional bool chatOpened = 1;
}
message ChatAssignmentAction {
optional string deviceAgentID = 1;
}
message CallLogAction {
optional CallLogRecord callLogRecord = 1;
}
message BotWelcomeRequestAction {
optional bool isSent = 1;
}
message ArchiveChatAction {
optional bool archived = 1;
optional SyncActionMessageRange messageRange = 2;
}
message AndroidUnsupportedActions {
optional bool allowed = 1;
}
message AgentAction {
optional string name = 1;
optional int32 deviceID = 2;
optional bool isDeleted = 3;
}
message SyncActionData {
optional bytes index = 1;
optional SyncActionValue value = 2;
optional bytes padding = 3;
optional int32 version = 4;
}
message RecentEmojiWeight {
optional string emoji = 1;
optional float weight = 2;
}
message PatchDebugData {
enum Platform {
ANDROID = 0;
SMBA = 1;
IPHONE = 2;
SMBI = 3;
WEB = 4;
UWP = 5;
DARWIN = 6;
}
optional bytes currentLthash = 1;
optional bytes newLthash = 2;
optional bytes patchVersion = 3;
optional bytes collectionName = 4;
optional bytes firstFourBytesFromAHashOfSnapshotMacKey = 5;
optional bytes newLthashSubtract = 6;
optional int32 numberAdd = 7;
optional int32 numberRemove = 8;
optional int32 numberOverride = 9;
optional Platform senderPlatform = 10;
optional bool isSenderPrimary = 11;
}
message CallLogRecord {
enum SilenceReason {
NONE = 0;
SCHEDULED = 1;
PRIVACY = 2;
LIGHTWEIGHT = 3;
}
message ParticipantInfo {
optional string userJid = 1;
optional CallResult callResult = 2;
}
enum CallType {
REGULAR = 0;
SCHEDULED_CALL = 1;
VOICE_CHAT = 2;
}
enum CallResult {
CONNECTED = 0;
REJECTED = 1;
CANCELLED = 2;
ACCEPTEDELSEWHERE = 3;
MISSED = 4;
INVALID = 5;
UNAVAILABLE = 6;
UPCOMING = 7;
FAILED = 8;
ABANDONED = 9;
ONGOING = 10;
}
optional CallResult callResult = 1;
optional bool isDndMode = 2;
optional SilenceReason silenceReason = 3;
optional int64 duration = 4;
optional int64 startTime = 5;
optional bool isIncoming = 6;
optional bool isVideo = 7;
optional bool isCallLink = 8;
optional string callLinkToken = 9;
optional string scheduledCallId = 10;
optional string callId = 11;
optional string callCreatorJid = 12;
optional string groupJid = 13;
repeated ParticipantInfo participants = 14;
optional CallType callType = 15;
}
message VerifiedNameCertificate {
message Details {
optional uint64 serial = 1;
optional string issuer = 2;
optional string verifiedName = 4;
repeated LocalizedName localizedNames = 8;
optional uint64 issueTime = 10;
}
optional bytes details = 1;
optional bytes signature = 2;
optional bytes serverSignature = 3;
}
message LocalizedName {
optional string lg = 1;
optional string lc = 2;
optional string verifiedName = 3;
}
message BizIdentityInfo {
enum VerifiedLevelValue {
UNKNOWN = 0;
LOW = 1;
HIGH = 2;
}
enum HostStorageType {
ON_PREMISE = 0;
FACEBOOK = 1;
}
enum ActualActorsType {
SELF = 0;
BSP = 1;
}
optional VerifiedLevelValue vlevel = 1;
optional VerifiedNameCertificate vnameCert = 2;
optional bool signed = 3;
optional bool revoked = 4;
optional HostStorageType hostStorage = 5;
optional ActualActorsType actualActors = 6;
optional uint64 privacyModeTs = 7;
optional uint64 featureControls = 8;
}
message BizAccountPayload {
optional VerifiedNameCertificate vnameCert = 1;
optional bytes bizAcctLinkInfo = 2;
}
message BizAccountLinkInfo {
enum HostStorageType {
ON_PREMISE = 0;
FACEBOOK = 1;
}
enum AccountType {
ENTERPRISE = 0;
}
optional uint64 whatsappBizAcctFbid = 1;
optional string whatsappAcctNumber = 2;
optional uint64 issueTime = 3;
optional HostStorageType hostStorage = 4;
optional AccountType accountType = 5;
}
message HandshakeMessage {
optional HandshakeClientHello clientHello = 2;
optional HandshakeServerHello serverHello = 3;
optional HandshakeClientFinish clientFinish = 4;
}
message HandshakeServerHello {
optional bytes ephemeral = 1;
optional bytes static = 2;
optional bytes payload = 3;
}
message HandshakeClientHello {
optional bytes ephemeral = 1;
optional bytes static = 2;
optional bytes payload = 3;
}
message HandshakeClientFinish {
optional bytes static = 1;
optional bytes payload = 2;
}
message ClientPayload {
message WebInfo {
message WebdPayload {
optional bool usesParticipantInKey = 1;
optional bool supportsStarredMessages = 2;
optional bool supportsDocumentMessages = 3;
optional bool supportsUrlMessages = 4;
optional bool supportsMediaRetry = 5;
optional bool supportsE2EImage = 6;
optional bool supportsE2EVideo = 7;
optional bool supportsE2EAudio = 8;
optional bool supportsE2EDocument = 9;
optional string documentTypes = 10;
optional bytes features = 11;
}
enum WebSubPlatform {
WEB_BROWSER = 0;
APP_STORE = 1;
WIN_STORE = 2;
DARWIN = 3;
WIN32 = 4;
}
optional string refToken = 1;
optional string version = 2;
optional WebdPayload webdPayload = 3;
optional WebSubPlatform webSubPlatform = 4;
}
message UserAgent {
enum ReleaseChannel {
RELEASE = 0;
BETA = 1;
ALPHA = 2;
DEBUG = 3;
}
enum Platform {
ANDROID = 0;
IOS = 1;
WINDOWS_PHONE = 2;
BLACKBERRY = 3;
BLACKBERRYX = 4;
S40 = 5;
S60 = 6;
PYTHON_CLIENT = 7;
TIZEN = 8;
ENTERPRISE = 9;
SMB_ANDROID = 10;
KAIOS = 11;
SMB_IOS = 12;
WINDOWS = 13;
WEB = 14;
PORTAL = 15;
GREEN_ANDROID = 16;
GREEN_IPHONE = 17;
BLUE_ANDROID = 18;
BLUE_IPHONE = 19;
FBLITE_ANDROID = 20;
MLITE_ANDROID = 21;
IGLITE_ANDROID = 22;
PAGE = 23;
MACOS = 24;
OCULUS_MSG = 25;
OCULUS_CALL = 26;
MILAN = 27;
CAPI = 28;
WEAROS = 29;
ARDEVICE = 30;
VRDEVICE = 31;
BLUE_WEB = 32;
IPAD = 33;
TEST = 34;
SMART_GLASSES = 35;
}
enum DeviceType {
PHONE = 0;
TABLET = 1;
DESKTOP = 2;
WEARABLE = 3;
VR = 4;
}
message AppVersion {
optional uint32 primary = 1;
optional uint32 secondary = 2;
optional uint32 tertiary = 3;
optional uint32 quaternary = 4;
optional uint32 quinary = 5;
}
optional Platform platform = 1;
optional AppVersion appVersion = 2;
optional string mcc = 3;
optional string mnc = 4;
optional string osVersion = 5;
optional string manufacturer = 6;
optional string device = 7;
optional string osBuildNumber = 8;
optional string phoneId = 9;
optional ReleaseChannel releaseChannel = 10;
optional string localeLanguageIso6391 = 11;
optional string localeCountryIso31661Alpha2 = 12;
optional string deviceBoard = 13;
optional string deviceExpId = 14;
optional DeviceType deviceType = 15;
optional string deviceModelType = 16;
}
enum Product {
WHATSAPP = 0;
MESSENGER = 1;
INTEROP = 2;
INTEROP_MSGR = 3;
}
message InteropData {
optional uint64 accountId = 1;
optional bytes token = 2;
}
enum IOSAppExtension {
SHARE_EXTENSION = 0;
SERVICE_EXTENSION = 1;
INTENTS_EXTENSION = 2;
}
message DevicePairingRegistrationData {
optional bytes eRegid = 1;
optional bytes eKeytype = 2;
optional bytes eIdent = 3;
optional bytes eSkeyId = 4;
optional bytes eSkeyVal = 5;
optional bytes eSkeySig = 6;
optional bytes buildHash = 7;
optional bytes deviceProps = 8;
}
message DNSSource {
enum DNSResolutionMethod {
SYSTEM = 0;
GOOGLE = 1;
HARDCODED = 2;
OVERRIDE = 3;
FALLBACK = 4;
}
optional DNSResolutionMethod dnsMethod = 15;
optional bool appCached = 16;
}
enum ConnectType {
CELLULAR_UNKNOWN = 0;
WIFI_UNKNOWN = 1;
CELLULAR_EDGE = 100;
CELLULAR_IDEN = 101;
CELLULAR_UMTS = 102;
CELLULAR_EVDO = 103;
CELLULAR_GPRS = 104;
CELLULAR_HSDPA = 105;
CELLULAR_HSUPA = 106;
CELLULAR_HSPA = 107;
CELLULAR_CDMA = 108;
CELLULAR_1XRTT = 109;
CELLULAR_EHRPD = 110;
CELLULAR_LTE = 111;
CELLULAR_HSPAP = 112;
}
enum ConnectReason {
PUSH = 0;
USER_ACTIVATED = 1;
SCHEDULED = 2;
ERROR_RECONNECT = 3;
NETWORK_SWITCH = 4;
PING_RECONNECT = 5;
UNKNOWN = 6;
}
optional uint64 username = 1;
optional bool passive = 3;
optional UserAgent userAgent = 5;
optional WebInfo webInfo = 6;
optional string pushName = 7;
optional sfixed32 sessionId = 9;
optional bool shortConnect = 10;
optional ConnectType connectType = 12;
optional ConnectReason connectReason = 13;
repeated int32 shards = 14;
optional DNSSource dnsSource = 15;
optional uint32 connectAttemptCount = 16;
optional uint32 device = 18;
optional DevicePairingRegistrationData devicePairingData = 19;
optional Product product = 20;
optional bytes fbCat = 21;
optional bytes fbUserAgent = 22;
optional bool oc = 23;
optional int32 lc = 24;
optional IOSAppExtension iosAppExtension = 30;
optional uint64 fbAppId = 31;
optional bytes fbDeviceId = 32;
optional bool pull = 33;
optional bytes paddingBytes = 34;
optional int32 yearClass = 36;
optional int32 memClass = 37;
optional InteropData interopData = 38;
}
message WebNotificationsInfo {
optional uint64 timestamp = 2;
optional uint32 unreadChats = 3;
optional uint32 notifyMessageCount = 4;
repeated WebMessageInfo notifyMessages = 5;
}
message WebMessageInfo {
enum StubType {
UNKNOWN = 0;
REVOKE = 1;
CIPHERTEXT = 2;
FUTUREPROOF = 3;
NON_VERIFIED_TRANSITION = 4;
UNVERIFIED_TRANSITION = 5;
VERIFIED_TRANSITION = 6;
VERIFIED_LOW_UNKNOWN = 7;
VERIFIED_HIGH = 8;
VERIFIED_INITIAL_UNKNOWN = 9;
VERIFIED_INITIAL_LOW = 10;
VERIFIED_INITIAL_HIGH = 11;
VERIFIED_TRANSITION_ANY_TO_NONE = 12;
VERIFIED_TRANSITION_ANY_TO_HIGH = 13;
VERIFIED_TRANSITION_HIGH_TO_LOW = 14;
VERIFIED_TRANSITION_HIGH_TO_UNKNOWN = 15;
VERIFIED_TRANSITION_UNKNOWN_TO_LOW = 16;
VERIFIED_TRANSITION_LOW_TO_UNKNOWN = 17;
VERIFIED_TRANSITION_NONE_TO_LOW = 18;
VERIFIED_TRANSITION_NONE_TO_UNKNOWN = 19;
GROUP_CREATE = 20;
GROUP_CHANGE_SUBJECT = 21;
GROUP_CHANGE_ICON = 22;
GROUP_CHANGE_INVITE_LINK = 23;
GROUP_CHANGE_DESCRIPTION = 24;
GROUP_CHANGE_RESTRICT = 25;
GROUP_CHANGE_ANNOUNCE = 26;
GROUP_PARTICIPANT_ADD = 27;
GROUP_PARTICIPANT_REMOVE = 28;
GROUP_PARTICIPANT_PROMOTE = 29;
GROUP_PARTICIPANT_DEMOTE = 30;
GROUP_PARTICIPANT_INVITE = 31;
GROUP_PARTICIPANT_LEAVE = 32;
GROUP_PARTICIPANT_CHANGE_NUMBER = 33;
BROADCAST_CREATE = 34;
BROADCAST_ADD = 35;
BROADCAST_REMOVE = 36;
GENERIC_NOTIFICATION = 37;
E2E_IDENTITY_CHANGED = 38;
E2E_ENCRYPTED = 39;
CALL_MISSED_VOICE = 40;
CALL_MISSED_VIDEO = 41;
INDIVIDUAL_CHANGE_NUMBER = 42;
GROUP_DELETE = 43;
GROUP_ANNOUNCE_MODE_MESSAGE_BOUNCE = 44;
CALL_MISSED_GROUP_VOICE = 45;
CALL_MISSED_GROUP_VIDEO = 46;
PAYMENT_CIPHERTEXT = 47;
PAYMENT_FUTUREPROOF = 48;
PAYMENT_TRANSACTION_STATUS_UPDATE_FAILED = 49;
PAYMENT_TRANSACTION_STATUS_UPDATE_REFUNDED = 50;
PAYMENT_TRANSACTION_STATUS_UPDATE_REFUND_FAILED = 51;
PAYMENT_TRANSACTION_STATUS_RECEIVER_PENDING_SETUP = 52;
PAYMENT_TRANSACTION_STATUS_RECEIVER_SUCCESS_AFTER_HICCUP = 53;
PAYMENT_ACTION_ACCOUNT_SETUP_REMINDER = 54;
PAYMENT_ACTION_SEND_PAYMENT_REMINDER = 55;
PAYMENT_ACTION_SEND_PAYMENT_INVITATION = 56;
PAYMENT_ACTION_REQUEST_DECLINED = 57;
PAYMENT_ACTION_REQUEST_EXPIRED = 58;
PAYMENT_ACTION_REQUEST_CANCELLED = 59;
BIZ_VERIFIED_TRANSITION_TOP_TO_BOTTOM = 60;
BIZ_VERIFIED_TRANSITION_BOTTOM_TO_TOP = 61;
BIZ_INTRO_TOP = 62;
BIZ_INTRO_BOTTOM = 63;
BIZ_NAME_CHANGE = 64;
BIZ_MOVE_TO_CONSUMER_APP = 65;
BIZ_TWO_TIER_MIGRATION_TOP = 66;
BIZ_TWO_TIER_MIGRATION_BOTTOM = 67;
OVERSIZED = 68;
GROUP_CHANGE_NO_FREQUENTLY_FORWARDED = 69;
GROUP_V4_ADD_INVITE_SENT = 70;
GROUP_PARTICIPANT_ADD_REQUEST_JOIN = 71;
CHANGE_EPHEMERAL_SETTING = 72;
E2E_DEVICE_CHANGED = 73;
VIEWED_ONCE = 74;
E2E_ENCRYPTED_NOW = 75;
BLUE_MSG_BSP_FB_TO_BSP_PREMISE = 76;
BLUE_MSG_BSP_FB_TO_SELF_FB = 77;
BLUE_MSG_BSP_FB_TO_SELF_PREMISE = 78;
BLUE_MSG_BSP_FB_UNVERIFIED = 79;
BLUE_MSG_BSP_FB_UNVERIFIED_TO_SELF_PREMISE_VERIFIED = 80;
BLUE_MSG_BSP_FB_VERIFIED = 81;
BLUE_MSG_BSP_FB_VERIFIED_TO_SELF_PREMISE_UNVERIFIED = 82;
BLUE_MSG_BSP_PREMISE_TO_SELF_PREMISE = 83;
BLUE_MSG_BSP_PREMISE_UNVERIFIED = 84;
BLUE_MSG_BSP_PREMISE_UNVERIFIED_TO_SELF_PREMISE_VERIFIED = 85;
BLUE_MSG_BSP_PREMISE_VERIFIED = 86;
BLUE_MSG_BSP_PREMISE_VERIFIED_TO_SELF_PREMISE_UNVERIFIED = 87;
BLUE_MSG_CONSUMER_TO_BSP_FB_UNVERIFIED = 88;
BLUE_MSG_CONSUMER_TO_BSP_PREMISE_UNVERIFIED = 89;
BLUE_MSG_CONSUMER_TO_SELF_FB_UNVERIFIED = 90;
BLUE_MSG_CONSUMER_TO_SELF_PREMISE_UNVERIFIED = 91;
BLUE_MSG_SELF_FB_TO_BSP_PREMISE = 92;
BLUE_MSG_SELF_FB_TO_SELF_PREMISE = 93;
BLUE_MSG_SELF_FB_UNVERIFIED = 94;
BLUE_MSG_SELF_FB_UNVERIFIED_TO_SELF_PREMISE_VERIFIED = 95;
BLUE_MSG_SELF_FB_VERIFIED = 96;
BLUE_MSG_SELF_FB_VERIFIED_TO_SELF_PREMISE_UNVERIFIED = 97;
BLUE_MSG_SELF_PREMISE_TO_BSP_PREMISE = 98;
BLUE_MSG_SELF_PREMISE_UNVERIFIED = 99;
BLUE_MSG_SELF_PREMISE_VERIFIED = 100;
BLUE_MSG_TO_BSP_FB = 101;
BLUE_MSG_TO_CONSUMER = 102;
BLUE_MSG_TO_SELF_FB = 103;
BLUE_MSG_UNVERIFIED_TO_BSP_FB_VERIFIED = 104;
BLUE_MSG_UNVERIFIED_TO_BSP_PREMISE_VERIFIED = 105;
BLUE_MSG_UNVERIFIED_TO_SELF_FB_VERIFIED = 106;
BLUE_MSG_UNVERIFIED_TO_VERIFIED = 107;
BLUE_MSG_VERIFIED_TO_BSP_FB_UNVERIFIED = 108;
BLUE_MSG_VERIFIED_TO_BSP_PREMISE_UNVERIFIED = 109;
BLUE_MSG_VERIFIED_TO_SELF_FB_UNVERIFIED = 110;
BLUE_MSG_VERIFIED_TO_UNVERIFIED = 111;
BLUE_MSG_BSP_FB_UNVERIFIED_TO_BSP_PREMISE_VERIFIED = 112;
BLUE_MSG_BSP_FB_UNVERIFIED_TO_SELF_FB_VERIFIED = 113;
BLUE_MSG_BSP_FB_VERIFIED_TO_BSP_PREMISE_UNVERIFIED = 114;
BLUE_MSG_BSP_FB_VERIFIED_TO_SELF_FB_UNVERIFIED = 115;
BLUE_MSG_SELF_FB_UNVERIFIED_TO_BSP_PREMISE_VERIFIED = 116;
BLUE_MSG_SELF_FB_VERIFIED_TO_BSP_PREMISE_UNVERIFIED = 117;
E2E_IDENTITY_UNAVAILABLE = 118;
GROUP_CREATING = 119;
GROUP_CREATE_FAILED = 120;
GROUP_BOUNCED = 121;
BLOCK_CONTACT = 122;
EPHEMERAL_SETTING_NOT_APPLIED = 123;
SYNC_FAILED = 124;
SYNCING = 125;
BIZ_PRIVACY_MODE_INIT_FB = 126;
BIZ_PRIVACY_MODE_INIT_BSP = 127;
BIZ_PRIVACY_MODE_TO_FB = 128;
BIZ_PRIVACY_MODE_TO_BSP = 129;
DISAPPEARING_MODE = 130;
E2E_DEVICE_FETCH_FAILED = 131;
ADMIN_REVOKE = 132;
GROUP_INVITE_LINK_GROWTH_LOCKED = 133;
COMMUNITY_LINK_PARENT_GROUP = 134;
COMMUNITY_LINK_SIBLING_GROUP = 135;
COMMUNITY_LINK_SUB_GROUP = 136;
COMMUNITY_UNLINK_PARENT_GROUP = 137;
COMMUNITY_UNLINK_SIBLING_GROUP = 138;
COMMUNITY_UNLINK_SUB_GROUP = 139;
GROUP_PARTICIPANT_ACCEPT = 140;
GROUP_PARTICIPANT_LINKED_GROUP_JOIN = 141;
COMMUNITY_CREATE = 142;
EPHEMERAL_KEEP_IN_CHAT = 143;
GROUP_MEMBERSHIP_JOIN_APPROVAL_REQUEST = 144;
GROUP_MEMBERSHIP_JOIN_APPROVAL_MODE = 145;
INTEGRITY_UNLINK_PARENT_GROUP = 146;
COMMUNITY_PARTICIPANT_PROMOTE = 147;
COMMUNITY_PARTICIPANT_DEMOTE = 148;
COMMUNITY_PARENT_GROUP_DELETED = 149;
COMMUNITY_LINK_PARENT_GROUP_MEMBERSHIP_APPROVAL = 150;
GROUP_PARTICIPANT_JOINED_GROUP_AND_PARENT_GROUP = 151;
MASKED_THREAD_CREATED = 152;
MASKED_THREAD_UNMASKED = 153;
BIZ_CHAT_ASSIGNMENT = 154;
CHAT_PSA = 155;
CHAT_POLL_CREATION_MESSAGE = 156;
CAG_MASKED_THREAD_CREATED = 157;
COMMUNITY_PARENT_GROUP_SUBJECT_CHANGED = 158;
CAG_INVITE_AUTO_ADD = 159;
BIZ_CHAT_ASSIGNMENT_UNASSIGN = 160;
CAG_INVITE_AUTO_JOINED = 161;
SCHEDULED_CALL_START_MESSAGE = 162;
COMMUNITY_INVITE_RICH = 163;
COMMUNITY_INVITE_AUTO_ADD_RICH = 164;
SUB_GROUP_INVITE_RICH = 165;
SUB_GROUP_PARTICIPANT_ADD_RICH = 166;
COMMUNITY_LINK_PARENT_GROUP_RICH = 167;
COMMUNITY_PARTICIPANT_ADD_RICH = 168;
SILENCED_UNKNOWN_CALLER_AUDIO = 169;
SILENCED_UNKNOWN_CALLER_VIDEO = 170;
GROUP_MEMBER_ADD_MODE = 171;
GROUP_MEMBERSHIP_JOIN_APPROVAL_REQUEST_NON_ADMIN_ADD = 172;
COMMUNITY_CHANGE_DESCRIPTION = 173;
SENDER_INVITE = 174;
RECEIVER_INVITE = 175;
COMMUNITY_ALLOW_MEMBER_ADDED_GROUPS = 176;
PINNED_MESSAGE_IN_CHAT = 177;
PAYMENT_INVITE_SETUP_INVITER = 178;
PAYMENT_INVITE_SETUP_INVITEE_RECEIVE_ONLY = 179;
PAYMENT_INVITE_SETUP_INVITEE_SEND_AND_RECEIVE = 180;
LINKED_GROUP_CALL_START = 181;
REPORT_TO_ADMIN_ENABLED_STATUS = 182;
EMPTY_SUBGROUP_CREATE = 183;
SCHEDULED_CALL_CANCEL = 184;
SUBGROUP_ADMIN_TRIGGERED_AUTO_ADD_RICH = 185;
GROUP_CHANGE_RECENT_HISTORY_SHARING = 186;
PAID_MESSAGE_SERVER_CAMPAIGN_ID = 187;
GENERAL_CHAT_CREATE = 188;
GENERAL_CHAT_ADD = 189;
GENERAL_CHAT_AUTO_ADD_DISABLED = 190;
SUGGESTED_SUBGROUP_ANNOUNCE = 191;
BIZ_BOT_1P_MESSAGING_ENABLED = 192;
CHANGE_USERNAME = 193;
BIZ_COEX_PRIVACY_INIT_SELF = 194;
BIZ_COEX_PRIVACY_TRANSITION_SELF = 195;
SUPPORT_AI_EDUCATION = 196;
BIZ_BOT_3P_MESSAGING_ENABLED = 197;
REMINDER_SETUP_MESSAGE = 198;
REMINDER_SENT_MESSAGE = 199;
REMINDER_CANCEL_MESSAGE = 200;
BIZ_COEX_PRIVACY_INIT = 201;
BIZ_COEX_PRIVACY_TRANSITION = 202;
GROUP_DEACTIVATED = 203;
COMMUNITY_DEACTIVATE_SIBLING_GROUP = 204;
}
enum Status {
ERROR = 0;
PENDING = 1;
SERVER_ACK = 2;
DELIVERY_ACK = 3;
READ = 4;
PLAYED = 5;
}
enum BizPrivacyStatus {
E2EE = 0;
FB = 2;
BSP = 1;
BSP_AND_FB = 3;
}
required MessageKey key = 1;
optional Message message = 2;
optional uint64 messageTimestamp = 3;
optional Status status = 4;
optional string participant = 5;
optional uint64 messageC2STimestamp = 6;
optional bool ignore = 16;
optional bool starred = 17;
optional bool broadcast = 18;
optional string pushName = 19;
optional bytes mediaCiphertextSha256 = 20;
optional bool multicast = 21;
optional bool urlText = 22;
optional bool urlNumber = 23;
optional StubType messageStubType = 24;
optional bool clearMedia = 25;
repeated string messageStubParameters = 26;
optional uint32 duration = 27;
repeated string labels = 28;
optional PaymentInfo paymentInfo = 29;
optional LiveLocationMessage finalLiveLocation = 30;
optional PaymentInfo quotedPaymentInfo = 31;
optional uint64 ephemeralStartTimestamp = 32;
optional uint32 ephemeralDuration = 33;
optional bool ephemeralOffToOn = 34;
optional bool ephemeralOutOfSync = 35;
optional BizPrivacyStatus bizPrivacyStatus = 36;
optional string verifiedBizName = 37;
optional MediaData mediaData = 38;
optional PhotoChange photoChange = 39;
repeated UserReceipt userReceipt = 40;
repeated Reaction reactions = 41;
optional MediaData quotedStickerData = 42;
optional bytes futureproofData = 43;
optional StatusPSA statusPsa = 44;
repeated PollUpdate pollUpdates = 45;
optional PollAdditionalMetadata pollAdditionalMetadata = 46;
optional string agentId = 47;
optional bool statusAlreadyViewed = 48;
optional bytes messageSecret = 49;
optional KeepInChat keepInChat = 50;
optional string originalSelfAuthorUserJidString = 51;
optional uint64 revokeMessageTimestamp = 52;
optional PinInChat pinInChat = 54;
optional PremiumMessageInfo premiumMessageInfo = 55;
optional bool is1PBizBotMessage = 56;
optional bool isGroupHistoryMessage = 57;
optional string botMessageInvokerJid = 58;
optional CommentMetadata commentMetadata = 59;
repeated EventResponse eventResponses = 61;
optional ReportingTokenInfo reportingTokenInfo = 62;
optional uint64 newsletterServerId = 63;
optional EventAdditionalMetadata eventAdditionalMetadata = 64;
}
message WebFeatures {
enum Flag {
NOT_STARTED = 0;
FORCE_UPGRADE = 1;
DEVELOPMENT = 2;
PRODUCTION = 3;
}
optional Flag labelsDisplay = 1;
optional Flag voipIndividualOutgoing = 2;
optional Flag groupsV3 = 3;
optional Flag groupsV3Create = 4;
optional Flag changeNumberV2 = 5;
optional Flag queryStatusV3Thumbnail = 6;
optional Flag liveLocations = 7;
optional Flag queryVname = 8;
optional Flag voipIndividualIncoming = 9;
optional Flag quickRepliesQuery = 10;
optional Flag payments = 11;
optional Flag stickerPackQuery = 12;
optional Flag liveLocationsFinal = 13;
optional Flag labelsEdit = 14;
optional Flag mediaUpload = 15;
optional Flag mediaUploadRichQuickReplies = 18;
optional Flag vnameV2 = 19;
optional Flag videoPlaybackUrl = 20;
optional Flag statusRanking = 21;
optional Flag voipIndividualVideo = 22;
optional Flag thirdPartyStickers = 23;
optional Flag frequentlyForwardedSetting = 24;
optional Flag groupsV4JoinPermission = 25;
optional Flag recentStickers = 26;
optional Flag catalog = 27;
optional Flag starredStickers = 28;
optional Flag voipGroupCall = 29;
optional Flag templateMessage = 30;
optional Flag templateMessageInteractivity = 31;
optional Flag ephemeralMessages = 32;
optional Flag e2ENotificationSync = 33;
optional Flag recentStickersV2 = 34;
optional Flag recentStickersV3 = 36;
optional Flag userNotice = 37;
optional Flag support = 39;
optional Flag groupUiiCleanup = 40;
optional Flag groupDogfoodingInternalOnly = 41;
optional Flag settingsSync = 42;
optional Flag archiveV2 = 43;
optional Flag ephemeralAllowGroupMembers = 44;
optional Flag ephemeral24HDuration = 45;
optional Flag mdForceUpgrade = 46;
optional Flag disappearingMode = 47;
optional Flag externalMdOptInAvailable = 48;
optional Flag noDeleteMessageTimeLimit = 49;
}
message UserReceipt {
required string userJid = 1;
optional int64 receiptTimestamp = 2;
optional int64 readTimestamp = 3;
optional int64 playedTimestamp = 4;
repeated string pendingDeviceJid = 5;
repeated string deliveredDeviceJid = 6;
}
message StatusPSA {
required uint64 campaignId = 44;
optional uint64 campaignExpirationTimestamp = 45;
}
message ReportingTokenInfo {
optional bytes reportingTag = 1;
}
message Reaction {
optional MessageKey key = 1;
optional string text = 2;
optional string groupingKey = 3;
optional int64 senderTimestampMs = 4;
optional bool unread = 5;
}
message PremiumMessageInfo {
optional string serverCampaignId = 1;
}
message PollUpdate {
optional MessageKey pollUpdateMessageKey = 1;
optional PollVoteMessage vote = 2;
optional int64 senderTimestampMs = 3;
optional int64 serverTimestampMs = 4;
optional bool unread = 5;
}
message PollAdditionalMetadata {
optional bool pollInvalidated = 1;
}
message PinInChat {
enum Type {
UNKNOWN_TYPE = 0;
PIN_FOR_ALL = 1;
UNPIN_FOR_ALL = 2;
}
optional Type type = 1;
optional MessageKey key = 2;
optional int64 senderTimestampMs = 3;
optional int64 serverTimestampMs = 4;
optional MessageAddOnContextInfo messageAddOnContextInfo = 5;
}
message PhotoChange {
optional bytes oldPhoto = 1;
optional bytes newPhoto = 2;
optional uint32 newPhotoId = 3;
}
message PaymentInfo {
enum TxnStatus {
UNKNOWN = 0;
PENDING_SETUP = 1;
PENDING_RECEIVER_SETUP = 2;
INIT = 3;
SUCCESS = 4;
COMPLETED = 5;
FAILED = 6;
FAILED_RISK = 7;
FAILED_PROCESSING = 8;
FAILED_RECEIVER_PROCESSING = 9;
FAILED_DA = 10;
FAILED_DA_FINAL = 11;
REFUNDED_TXN = 12;
REFUND_FAILED = 13;
REFUND_FAILED_PROCESSING = 14;
REFUND_FAILED_DA = 15;
EXPIRED_TXN = 16;
AUTH_CANCELED = 17;
AUTH_CANCEL_FAILED_PROCESSING = 18;
AUTH_CANCEL_FAILED = 19;
COLLECT_INIT = 20;
COLLECT_SUCCESS = 21;
COLLECT_FAILED = 22;
COLLECT_FAILED_RISK = 23;
COLLECT_REJECTED = 24;
COLLECT_EXPIRED = 25;
COLLECT_CANCELED = 26;
COLLECT_CANCELLING = 27;
IN_REVIEW = 28;
REVERSAL_SUCCESS = 29;
REVERSAL_PENDING = 30;
REFUND_PENDING = 31;
}
enum Status {
UNKNOWN_STATUS = 0;
PROCESSING = 1;
SENT = 2;
NEED_TO_ACCEPT = 3;
COMPLETE = 4;
COULD_NOT_COMPLETE = 5;
REFUNDED = 6;
EXPIRED = 7;
REJECTED = 8;
CANCELLED = 9;
WAITING_FOR_PAYER = 10;
WAITING = 11;
}
enum Currency {
UNKNOWN_CURRENCY = 0;
INR = 1;
}
optional Currency currencyDeprecated = 1;
optional uint64 amount1000 = 2;
optional string receiverJid = 3;
optional Status status = 4;
optional uint64 transactionTimestamp = 5;
optional MessageKey requestMessageKey = 6;
optional uint64 expiryTimestamp = 7;
optional bool futureproofed = 8;
optional string currency = 9;
optional TxnStatus txnStatus = 10;
optional bool useNoviFiatFormat = 11;
optional Money primaryAmount = 12;
optional Money exchangeAmount = 13;
}
message NotificationMessageInfo {
optional MessageKey key = 1;
optional Message message = 2;
optional uint64 messageTimestamp = 3;
optional string participant = 4;
}
message MessageAddOnContextInfo {
optional uint32 messageAddOnDurationInSecs = 1;
}
message MediaData {
optional string localPath = 1;
}
message KeepInChat {
optional KeepType keepType = 1;
optional int64 serverTimestamp = 2;
optional MessageKey key = 3;
optional string deviceJid = 4;
optional int64 clientTimestampMs = 5;
optional int64 serverTimestampMs = 6;
}
message EventResponse {
optional MessageKey eventResponseMessageKey = 1;
optional int64 timestampMs = 2;
optional EventResponseMessage eventResponseMessage = 3;
optional bool unread = 4;
}
message EventAdditionalMetadata {
optional bool isStale = 1;
}
message CommentMetadata {
optional MessageKey commentParentKey = 1;
optional uint32 replyCount = 2;
}
message NoiseCertificate {
message Details {
optional uint32 serial = 1;
optional string issuer = 2;
optional uint64 expires = 3;
optional string subject = 4;
optional bytes key = 5;
}
optional bytes details = 1;
optional bytes signature = 2;
}
message CertChain {
message NoiseCertificate {
message Details {
optional uint32 serial = 1;
optional uint32 issuerSerial = 2;
optional bytes key = 3;
optional uint64 notBefore = 4;
optional uint64 notAfter = 5;
}
optional bytes details = 1;
optional bytes signature = 2;
}
optional NoiseCertificate leaf = 1;
optional NoiseCertificate intermediate = 2;
}
message QP {
message Filter {
required string filterName = 1;
repeated FilterParameters parameters = 2;
optional FilterResult filterResult = 3;
required FilterClientNotSupportedConfig clientNotSupportedConfig = 4;
}
enum FilterResult {
TRUE = 1;
FALSE = 2;
UNKNOWN = 3;
}
message FilterParameters {
optional string key = 1;
optional string value = 2;
}
enum FilterClientNotSupportedConfig {
PASS_BY_DEFAULT = 1;
FAIL_BY_DEFAULT = 2;
}
message FilterClause {
required ClauseType clauseType = 1;
repeated FilterClause clauses = 2;
repeated Filter filters = 3;
}
enum ClauseType {
AND = 1;
OR = 2;
NOR = 3;
}
}
message ChatLockSettings {
optional bool hideLockedChats = 1;
optional UserPassword secretCode = 2;
}
message DeviceCapabilities {
enum ChatLockSupportLevel {
NONE = 0;
MINIMAL = 1;
FULL = 2;
}
optional ChatLockSupportLevel chatLockSupportLevel = 1;
}
message UserPassword {
message TransformerArg {
message Value {
oneof value {
bytes asBlob = 1;
uint32 asUnsignedInteger = 2;
}
}
optional string key = 1;
optional Value value = 2;
}
enum Transformer {
NONE = 0;
PBKDF2_HMAC_SHA512 = 1;
PBKDF2_HMAC_SHA384 = 2;
}
enum Encoding {
UTF8 = 0;
}
optional Encoding encoding = 1;
optional Transformer transformer = 2;
repeated TransformerArg transformerArg = 3;
optional bytes transformedData = 4;
}