summaryrefslogtreecommitdiffstats
path: root/vendor/go.mau.fi/whatsmeow/binary/proto/def.proto
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/go.mau.fi/whatsmeow/binary/proto/def.proto')
-rw-r--r--vendor/go.mau.fi/whatsmeow/binary/proto/def.proto2011
1 files changed, 2011 insertions, 0 deletions
diff --git a/vendor/go.mau.fi/whatsmeow/binary/proto/def.proto b/vendor/go.mau.fi/whatsmeow/binary/proto/def.proto
new file mode 100644
index 00000000..652d4a30
--- /dev/null
+++ b/vendor/go.mau.fi/whatsmeow/binary/proto/def.proto
@@ -0,0 +1,2011 @@
+syntax = "proto2";
+package proto;
+
+message AppVersion {
+ optional uint32 primary = 1;
+ optional uint32 secondary = 2;
+ optional uint32 tertiary = 3;
+ optional uint32 quaternary = 4;
+ optional uint32 quinary = 5;
+}
+
+message UserAgent {
+ enum UserAgentPlatform {
+ 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;
+ }
+ optional UserAgentPlatform 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;
+ enum UserAgentReleaseChannel {
+ RELEASE = 0;
+ BETA = 1;
+ ALPHA = 2;
+ DEBUG = 3;
+ }
+ optional UserAgentReleaseChannel releaseChannel = 10;
+ optional string localeLanguageIso6391 = 11;
+ optional string localeCountryIso31661Alpha2 = 12;
+ optional string deviceBoard = 13;
+}
+
+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;
+}
+
+message WebInfo {
+ optional string refToken = 1;
+ optional string version = 2;
+ optional WebdPayload webdPayload = 3;
+ enum WebInfoWebSubPlatform {
+ WEB_BROWSER = 0;
+ APP_STORE = 1;
+ WIN_STORE = 2;
+ DARWIN = 3;
+ WIN32 = 4;
+ }
+ optional WebInfoWebSubPlatform webSubPlatform = 4;
+}
+
+message DNSSource {
+ enum DNSSourceDNSResolutionMethod {
+ SYSTEM = 0;
+ GOOGLE = 1;
+ HARDCODED = 2;
+ OVERRIDE = 3;
+ FALLBACK = 4;
+ }
+ optional DNSSourceDNSResolutionMethod dnsMethod = 15;
+ optional bool appCached = 16;
+}
+
+message CompanionRegData {
+ 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 companionProps = 8;
+}
+
+message ClientPayload {
+ 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;
+ enum ClientPayloadConnectType {
+ 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;
+ }
+ optional ClientPayloadConnectType connectType = 12;
+ enum ClientPayloadConnectReason {
+ PUSH = 0;
+ USER_ACTIVATED = 1;
+ SCHEDULED = 2;
+ ERROR_RECONNECT = 3;
+ NETWORK_SWITCH = 4;
+ PING_RECONNECT = 5;
+ }
+ optional ClientPayloadConnectReason connectReason = 13;
+ repeated int32 shards = 14;
+ optional DNSSource dnsSource = 15;
+ optional uint32 connectAttemptCount = 16;
+ optional uint32 device = 18;
+ optional CompanionRegData regData = 19;
+ enum ClientPayloadProduct {
+ WHATSAPP = 0;
+ MESSENGER = 1;
+ }
+ optional ClientPayloadProduct product = 20;
+ optional bytes fbCat = 21;
+ optional bytes fbUserAgent = 22;
+ optional bool oc = 23;
+ optional int32 lc = 24;
+ enum ClientPayloadIOSAppExtension {
+ SHARE_EXTENSION = 0;
+ SERVICE_EXTENSION = 1;
+ INTENTS_EXTENSION = 2;
+ }
+ optional ClientPayloadIOSAppExtension iosAppExtension = 30;
+ optional uint64 fbAppId = 31;
+ optional bytes fbDeviceId = 32;
+}
+
+// Renamed from Details
+message NoiseCertificateDetails {
+ optional uint32 serial = 1;
+ optional string issuer = 2;
+ optional uint64 expires = 3;
+ optional string subject = 4;
+ optional bytes key = 5;
+}
+
+message NoiseCertificate {
+ optional bytes details = 1;
+ optional bytes signature = 2;
+}
+
+message ClientHello {
+ optional bytes ephemeral = 1;
+ optional bytes static = 2;
+ optional bytes payload = 3;
+}
+
+message ServerHello {
+ optional bytes ephemeral = 1;
+ optional bytes static = 2;
+ optional bytes payload = 3;
+}
+
+message ClientFinish {
+ optional bytes static = 1;
+ optional bytes payload = 2;
+}
+
+message HandshakeMessage {
+ optional ClientHello clientHello = 2;
+ optional ServerHello serverHello = 3;
+ optional ClientFinish clientFinish = 4;
+}
+
+message BizIdentityInfo {
+ enum BizIdentityInfoVerifiedLevelValue {
+ UNKNOWN = 0;
+ LOW = 1;
+ HIGH = 2;
+ }
+ optional BizIdentityInfoVerifiedLevelValue vlevel = 1;
+ optional VerifiedNameCertificate vnameCert = 2;
+ optional bool signed = 3;
+ optional bool revoked = 4;
+ enum BizIdentityInfoHostStorageType {
+ ON_PREMISE = 0;
+ FACEBOOK = 1;
+ }
+ optional BizIdentityInfoHostStorageType hostStorage = 5;
+ enum BizIdentityInfoActualActorsType {
+ SELF = 0;
+ BSP = 1;
+ }
+ optional BizIdentityInfoActualActorsType actualActors = 6;
+ optional uint64 privacyModeTs = 7;
+ optional uint64 featureControls = 8;
+}
+
+message BizAccountLinkInfo {
+ optional uint64 whatsappBizAcctFbid = 1;
+ optional string whatsappAcctNumber = 2;
+ optional uint64 issueTime = 3;
+ enum BizAccountLinkInfoHostStorageType {
+ ON_PREMISE = 0;
+ FACEBOOK = 1;
+ }
+ optional BizAccountLinkInfoHostStorageType hostStorage = 4;
+ enum BizAccountLinkInfoAccountType {
+ ENTERPRISE = 0;
+ }
+ optional BizAccountLinkInfoAccountType accountType = 5;
+}
+
+message BizAccountPayload {
+ optional VerifiedNameCertificate vnameCert = 1;
+ optional bytes bizAcctLinkInfo = 2;
+}
+
+// Renamed from Details
+message VerifiedNameDetails {
+ optional uint64 serial = 1;
+ optional string issuer = 2;
+ optional string verifiedName = 4;
+ repeated LocalizedName localizedNames = 8;
+ optional uint64 issueTime = 10;
+}
+
+message VerifiedNameCertificate {
+ 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 SyncActionData {
+ optional bytes index = 1;
+ optional SyncActionValue value = 2;
+ optional bytes padding = 3;
+ optional int32 version = 4;
+}
+
+message StarAction {
+ optional bool starred = 1;
+}
+
+message ContactAction {
+ optional string fullName = 1;
+ optional string firstName = 2;
+}
+
+message MuteAction {
+ optional bool muted = 1;
+ optional int64 muteEndTimestamp = 2;
+}
+
+message PinAction {
+ optional bool pinned = 1;
+}
+
+message SecurityNotificationSetting {
+ optional bool showNotification = 1;
+}
+
+message PushNameSetting {
+ optional string name = 1;
+}
+
+message LocaleSetting {
+ optional string locale = 1;
+}
+
+message QuickReplyAction {
+ optional string shortcut = 1;
+ optional string message = 2;
+ repeated string keywords = 3;
+ optional int32 count = 4;
+ optional bool deleted = 5;
+}
+
+message LabelAssociationAction {
+ optional bool labeled = 1;
+}
+
+message LabelEditAction {
+ optional string name = 1;
+ optional int32 color = 2;
+ optional int32 predefinedId = 3;
+ optional bool deleted = 4;
+}
+
+message RecentStickerWeightsAction {
+ repeated RecentStickerWeight weights = 1;
+}
+
+message RecentStickerMetadata {
+ optional string directPath = 1;
+ optional string encFilehash = 2;
+ optional string mediaKey = 3;
+ optional string stanzaId = 4;
+ optional string chatJid = 5;
+ optional string participant = 6;
+ optional bool isSentByMe = 7;
+}
+
+message RecentEmojiWeightsAction {
+ repeated RecentEmojiWeight weights = 1;
+}
+
+message FavoriteStickerAction {
+ optional string directPath = 1;
+ optional string lastUploadTimestamp = 2;
+ optional string handle = 3;
+ optional string encFilehash = 4;
+ optional string stickerHashWithoutMeta = 5;
+ optional string mediaKey = 6;
+ optional int64 mediaKeyTimestamp = 7;
+ optional bool isFavorite = 8;
+}
+
+message ArchiveChatAction {
+ optional bool archived = 1;
+ optional SyncActionMessageRange messageRange = 2;
+}
+
+message DeleteMessageForMeAction {
+ optional bool deleteMedia = 1;
+ optional int64 messageTimestamp = 2;
+}
+
+message MarkChatAsReadAction {
+ optional bool read = 1;
+ optional SyncActionMessageRange messageRange = 2;
+}
+
+message ClearChatAction {
+ optional SyncActionMessageRange messageRange = 1;
+}
+
+message DeleteChatAction {
+ optional SyncActionMessageRange messageRange = 1;
+}
+
+message UnarchiveChatsSetting {
+ optional bool unarchiveChats = 1;
+}
+
+message SyncActionMessageRange {
+ optional int64 lastMessageTimestamp = 1;
+ optional int64 lastSystemMessageTimestamp = 2;
+ repeated SyncActionMessage messages = 3;
+}
+
+message SyncActionMessage {
+ optional MessageKey key = 1;
+ optional int64 timestamp = 2;
+}
+
+message KeyExpiration {
+ optional int32 expiredKeyEpoch = 1;
+}
+
+message PrimaryFeature {
+ repeated string flags = 1;
+}
+
+message AndroidUnsupportedActions {
+ optional bool allowed = 1;
+}
+
+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 RecentStickerWeightsAction recentStickerWeightsAction = 9;
+ optional RecentStickerMetadata recentStickerMetadata = 10;
+ 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 FavoriteStickerAction favoriteStickerAction = 25;
+ optional AndroidUnsupportedActions androidUnsupportedActions = 26;
+}
+
+message RecentEmojiWeight {
+ optional string emoji = 1;
+ optional float weight = 2;
+}
+
+message RecentStickerWeight {
+ optional string filehash = 1;
+ optional float weight = 2;
+}
+
+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;
+}
+
+message SyncdMutation {
+ enum SyncdMutationSyncdOperation {
+ SET = 0;
+ REMOVE = 1;
+ }
+ optional SyncdMutationSyncdOperation operation = 1;
+ optional SyncdRecord record = 2;
+}
+
+message SyncdMutations {
+ repeated SyncdMutation mutations = 1;
+}
+
+message SyncdSnapshot {
+ optional SyncdVersion version = 1;
+ repeated SyncdRecord records = 2;
+ optional bytes mac = 3;
+ optional KeyId keyId = 4;
+}
+
+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 SyncdRecord {
+ optional SyncdIndex index = 1;
+ optional SyncdValue value = 2;
+ optional KeyId keyId = 3;
+}
+
+message KeyId {
+ optional bytes id = 1;
+}
+
+message SyncdValue {
+ optional bytes blob = 1;
+}
+
+message SyncdIndex {
+ optional bytes blob = 1;
+}
+
+message ExitCode {
+ optional uint64 code = 1;
+ optional string text = 2;
+}
+
+message SyncdVersion {
+ optional uint64 version = 1;
+}
+
+message ServerErrorReceipt {
+ optional string stanzaId = 1;
+}
+
+message MediaRetryNotification {
+ optional string stanzaId = 1;
+ optional string directPath = 2;
+ enum MediaRetryNotificationResultType {
+ GENERAL_ERROR = 0;
+ SUCCESS = 1;
+ NOT_FOUND = 2;
+ DECRYPTION_ERROR = 3;
+ }
+ optional MediaRetryNotificationResultType result = 3;
+}
+
+message MsgOpaqueData {
+ optional string body = 1;
+ optional string caption = 3;
+ optional double lng = 5;
+ optional double lat = 7;
+ optional int32 paymentAmount1000 = 8;
+ optional string paymentNoteMsgBody = 9;
+ optional string canonicalUrl = 10;
+ optional string matchedText = 11;
+ optional string title = 12;
+ optional string description = 13;
+ optional bytes futureproofBuffer = 14;
+ optional string clientUrl = 15;
+ optional string loc = 16;
+}
+
+message MsgRowOpaqueData {
+ optional MsgOpaqueData currentMsg = 1;
+ optional MsgOpaqueData quotedMsg = 2;
+}
+
+message GlobalSettings {
+ optional WallpaperSettings lightThemeWallpaper = 1;
+ optional MediaVisibility mediaVisibility = 2;
+ optional WallpaperSettings darkThemeWallpaper = 3;
+}
+
+message WallpaperSettings {
+ optional string filename = 1;
+ optional uint32 opacity = 2;
+}
+
+message GroupParticipant {
+ required string userJid = 1;
+ enum GroupParticipantRank {
+ REGULAR = 0;
+ ADMIN = 1;
+ SUPERADMIN = 2;
+ }
+ optional GroupParticipantRank rank = 2;
+}
+
+message Pushname {
+ optional string id = 1;
+ optional string pushname = 2;
+}
+
+message HistorySyncMsg {
+ optional WebMessageInfo message = 1;
+ optional uint64 msgOrderId = 2;
+}
+
+message Conversation {
+ 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;
+ enum ConversationEndOfHistoryTransferType {
+ COMPLETE_BUT_MORE_MESSAGES_REMAIN_ON_PRIMARY = 0;
+ COMPLETE_AND_NO_MORE_MESSAGE_REMAIN_ON_PRIMARY = 1;
+ }
+ optional ConversationEndOfHistoryTransferType 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;
+}
+
+message HistorySync {
+ enum HistorySyncHistorySyncType {
+ INITIAL_BOOTSTRAP = 0;
+ INITIAL_STATUS_V3 = 1;
+ FULL = 2;
+ RECENT = 3;
+ PUSH_NAME = 4;
+ }
+ required HistorySyncHistorySyncType 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;
+}
+
+enum MediaVisibility {
+ DEFAULT = 0;
+ OFF = 1;
+ ON = 2;
+}
+message EphemeralSetting {
+ optional sfixed32 duration = 1;
+ optional sfixed64 timestamp = 2;
+}
+
+message InteractiveAnnotation {
+ repeated Point polygonVertices = 1;
+ oneof action {
+ Location location = 2;
+ }
+}
+
+message DeviceListMetadata {
+ optional bytes senderKeyHash = 1;
+ optional uint64 senderTimestamp = 2;
+ repeated uint32 senderKeyIndexes = 3 [packed=true];
+ optional bytes recipientKeyHash = 8;
+ optional uint64 recipientTimestamp = 9;
+ repeated uint32 recipientKeyIndexes = 10 [packed=true];
+}
+
+message MessageContextInfo {
+ optional DeviceListMetadata deviceListMetadata = 1;
+ optional int32 deviceListMetadataVersion = 2;
+}
+
+message AdReplyInfo {
+ optional string advertiserName = 1;
+ enum AdReplyInfoMediaType {
+ NONE = 0;
+ IMAGE = 1;
+ VIDEO = 2;
+ }
+ optional AdReplyInfoMediaType mediaType = 2;
+ optional bytes jpegThumbnail = 16;
+ optional string caption = 17;
+}
+
+message ExternalAdReplyInfo {
+ optional string title = 1;
+ optional string body = 2;
+ enum ExternalAdReplyInfoMediaType {
+ NONE = 0;
+ IMAGE = 1;
+ VIDEO = 2;
+ }
+ optional ExternalAdReplyInfoMediaType 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;
+}
+
+message ContextInfo {
+ 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;
+}
+
+message SenderKeyDistributionMessage {
+ optional string groupId = 1;
+ optional bytes axolotlSenderKeyDistributionMessage = 2;
+}
+
+message ImageMessage {
+ 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;
+}
+
+message InvoiceMessage {
+ optional string note = 1;
+ optional string token = 2;
+ enum InvoiceMessageAttachmentType {
+ IMAGE = 0;
+ PDF = 1;
+ }
+ optional InvoiceMessageAttachmentType 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 ContactMessage {
+ optional string displayName = 1;
+ optional string vcard = 16;
+ optional ContextInfo contextInfo = 17;
+}
+
+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 ExtendedTextMessage {
+ 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;
+ enum ExtendedTextMessageFontType {
+ SANS_SERIF = 0;
+ SERIF = 1;
+ NORICAN_REGULAR = 2;
+ BRYNDAN_WRITE = 3;
+ BEBASNEUE_REGULAR = 4;
+ OSWALD_HEAVY = 5;
+ }
+ optional ExtendedTextMessageFontType font = 9;
+ enum ExtendedTextMessagePreviewType {
+ NONE = 0;
+ VIDEO = 1;
+ }
+ optional ExtendedTextMessagePreviewType 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;
+ enum ExtendedTextMessageInviteLinkGroupType {
+ DEFAULT = 0;
+ PARENT = 1;
+ }
+ optional ExtendedTextMessageInviteLinkGroupType inviteLinkGroupType = 26;
+}
+
+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;
+}
+
+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;
+}
+
+message VideoMessage {
+ 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;
+ enum VideoMessageAttribution {
+ NONE = 0;
+ GIPHY = 1;
+ TENOR = 2;
+ }
+ optional VideoMessageAttribution gifAttribution = 19;
+ optional bool viewOnce = 20;
+ optional string thumbnailDirectPath = 21;
+ optional bytes thumbnailSha256 = 22;
+ optional bytes thumbnailEncSha256 = 23;
+ optional string staticUrl = 24;
+}
+
+message Call {
+ optional bytes callKey = 1;
+ optional string conversionSource = 2;
+ optional bytes conversionData = 3;
+ optional uint32 conversionDelaySeconds = 4;
+}
+
+message Chat {
+ optional string displayName = 1;
+ optional string id = 2;
+}
+
+message ProtocolMessage {
+ optional MessageKey key = 1;
+ enum ProtocolMessageType {
+ 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;
+ }
+ optional ProtocolMessageType 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;
+}
+
+message HistorySyncNotification {
+ optional bytes fileSha256 = 1;
+ optional uint64 fileLength = 2;
+ optional bytes mediaKey = 3;
+ optional bytes fileEncSha256 = 4;
+ optional string directPath = 5;
+ enum HistorySyncNotificationHistorySyncType {
+ INITIAL_BOOTSTRAP = 0;
+ INITIAL_STATUS_V3 = 1;
+ FULL = 2;
+ RECENT = 3;
+ PUSH_NAME = 4;
+ }
+ optional HistorySyncNotificationHistorySyncType syncType = 6;
+ optional uint32 chunkOrder = 7;
+ optional string originalMessageId = 8;
+}
+
+message AppStateSyncKey {
+ optional AppStateSyncKeyId keyId = 1;
+ optional AppStateSyncKeyData keyData = 2;
+}
+
+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 AppStateSyncKeyShare {
+ repeated AppStateSyncKey keys = 1;
+}
+
+message AppStateSyncKeyRequest {
+ repeated AppStateSyncKeyId keyIds = 1;
+}
+
+message AppStateFatalExceptionNotification {
+ repeated string collectionNames = 1;
+ optional int64 timestamp = 2;
+}
+
+message InitialSecurityNotificationSettingSync {
+ optional bool securityNotificationEnabled = 1;
+}
+
+message ContactsArrayMessage {
+ optional string displayName = 1;
+ repeated ContactMessage contacts = 2;
+ optional ContextInfo contextInfo = 17;
+}
+
+message HSMCurrency {
+ optional string currencyCode = 1;
+ optional int64 amount1000 = 2;
+}
+
+message HSMDateTimeComponent {
+ enum HSMDateTimeComponentDayOfWeekType {
+ MONDAY = 1;
+ TUESDAY = 2;
+ WEDNESDAY = 3;
+ THURSDAY = 4;
+ FRIDAY = 5;
+ SATURDAY = 6;
+ SUNDAY = 7;
+ }
+ optional HSMDateTimeComponentDayOfWeekType dayOfWeek = 1;
+ optional uint32 year = 2;
+ optional uint32 month = 3;
+ optional uint32 dayOfMonth = 4;
+ optional uint32 hour = 5;
+ optional uint32 minute = 6;
+ enum HSMDateTimeComponentCalendarType {
+ GREGORIAN = 1;
+ SOLAR_HIJRI = 2;
+ }
+ optional HSMDateTimeComponentCalendarType calendar = 7;
+}
+
+message HSMDateTimeUnixEpoch {
+ optional int64 timestamp = 1;
+}
+
+message HSMDateTime {
+ oneof datetimeOneof {
+ HSMDateTimeComponent component = 1;
+ HSMDateTimeUnixEpoch unixEpoch = 2;
+ }
+}
+
+message HSMLocalizableParameter {
+ optional string default = 1;
+ oneof paramOneof {
+ HSMCurrency currency = 2;
+ HSMDateTime dateTime = 3;
+ }
+}
+
+message HighlyStructuredMessage {
+ 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 SendPaymentMessage {
+ optional Message noteMessage = 2;
+ optional MessageKey requestMessageKey = 3;
+ optional PaymentBackground background = 4;
+}
+
+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 DeclinePaymentRequestMessage {
+ optional MessageKey key = 1;
+}
+
+message CancelPaymentRequestMessage {
+ optional MessageKey key = 1;
+}
+
+message PaymentInviteMessage {
+ enum PaymentInviteMessageServiceType {
+ UNKNOWN = 0;
+ FBPAY = 1;
+ NOVI = 2;
+ UPI = 3;
+ }
+ optional PaymentInviteMessageServiceType serviceType = 1;
+ optional int64 expiryTimestamp = 2;
+}
+
+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 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;
+}
+
+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;
+ }
+}
+
+message HydratedFourRowTemplate {
+ optional string hydratedContentText = 6;
+ optional string hydratedFooterText = 7;
+ repeated HydratedTemplateButton hydratedButtons = 8;
+ optional string templateId = 9;
+ oneof title {
+ DocumentMessage documentMessage = 1;
+ string hydratedTitleText = 2;
+ ImageMessage imageMessage = 3;
+ VideoMessage videoMessage = 4;
+ LocationMessage locationMessage = 5;
+ }
+}
+
+message TemplateMessage {
+ optional ContextInfo contextInfo = 3;
+ optional HydratedFourRowTemplate hydratedTemplate = 4;
+ oneof format {
+ FourRowTemplate fourRowTemplate = 1;
+ HydratedFourRowTemplate hydratedFourRowTemplate = 2;
+ }
+}
+
+message TemplateButtonReplyMessage {
+ optional string selectedId = 1;
+ optional string selectedDisplayText = 2;
+ optional ContextInfo contextInfo = 3;
+ optional uint32 selectedIndex = 4;
+}
+
+message CatalogSnapshot {
+ optional ImageMessage catalogImage = 1;
+ optional string title = 2;
+ optional string description = 3;
+}
+
+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 ProductMessage {
+ 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 OrderMessage {
+ optional string orderId = 1;
+ optional bytes thumbnail = 2;
+ optional int32 itemCount = 3;
+ enum OrderMessageOrderStatus {
+ INQUIRY = 1;
+ }
+ optional OrderMessageOrderStatus status = 4;
+ enum OrderMessageOrderSurface {
+ CATALOG = 1;
+ }
+ optional OrderMessageOrderSurface 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;
+}
+
+message Row {
+ optional string title = 1;
+ optional string description = 2;
+ optional string rowId = 3;
+}
+
+message Section {
+ optional string title = 1;
+ repeated Row rows = 2;
+}
+
+message Product {
+ optional string productId = 1;
+}
+
+message ProductSection {
+ optional string title = 1;
+ repeated Product products = 2;
+}
+
+message ProductListHeaderImage {
+ optional string productId = 1;
+ optional bytes jpegThumbnail = 2;
+}
+
+message ProductListInfo {
+ repeated ProductSection productSections = 1;
+ optional ProductListHeaderImage headerImage = 2;
+ optional string businessOwnerJid = 3;
+}
+
+message ListMessage {
+ optional string title = 1;
+ optional string description = 2;
+ optional string buttonText = 3;
+ enum ListMessageListType {
+ UNKNOWN = 0;
+ SINGLE_SELECT = 1;
+ PRODUCT_LIST = 2;
+ }
+ optional ListMessageListType listType = 4;
+ repeated Section sections = 5;
+ optional ProductListInfo productListInfo = 6;
+ optional string footerText = 7;
+ optional ContextInfo contextInfo = 8;
+}
+
+message SingleSelectReply {
+ optional string selectedRowId = 1;
+}
+
+message ListResponseMessage {
+ optional string title = 1;
+ enum ListResponseMessageListType {
+ UNKNOWN = 0;
+ SINGLE_SELECT = 1;
+ }
+ optional ListResponseMessageListType listType = 2;
+ optional SingleSelectReply singleSelectReply = 3;
+ optional ContextInfo contextInfo = 4;
+ optional string description = 5;
+}
+
+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;
+ }
+}
+
+message Body {
+ optional string text = 1;
+}
+
+message Footer {
+ optional string text = 1;
+}
+
+message ShopMessage {
+ optional string id = 1;
+ enum ShopMessageSurface {
+ UNKNOWN_SURFACE = 0;
+ FB = 1;
+ IG = 2;
+ WA = 3;
+ }
+ optional ShopMessageSurface surface = 2;
+ optional int32 messageVersion = 3;
+}
+
+message CollectionMessage {
+ optional string bizJid = 1;
+ optional string id = 2;
+ optional int32 messageVersion = 3;
+}
+
+message NativeFlowButton {
+ optional string name = 1;
+ optional string buttonParamsJson = 2;
+}
+
+message NativeFlowMessage {
+ repeated NativeFlowButton buttons = 1;
+ optional string messageParamsJson = 2;
+ optional int32 messageVersion = 3;
+}
+
+message InteractiveMessage {
+ 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;
+ }
+}
+
+message GroupInviteMessage {
+ 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;
+ enum GroupInviteMessageGroupType {
+ DEFAULT = 0;
+ PARENT = 1;
+ }
+ optional GroupInviteMessageGroupType groupType = 8;
+}
+
+message DeviceSentMessage {
+ optional string destinationJid = 1;
+ optional Message message = 2;
+ optional string phash = 3;
+}
+
+message FutureProofMessage {
+ optional Message message = 1;
+}
+
+message ButtonText {
+ optional string displayText = 1;
+}
+
+message NativeFlowInfo {
+ optional string name = 1;
+ optional string paramsJson = 2;
+}
+
+message Button {
+ optional string buttonId = 1;
+ optional ButtonText buttonText = 2;
+ enum ButtonType {
+ UNKNOWN = 0;
+ RESPONSE = 1;
+ NATIVE_FLOW = 2;
+ }
+ optional ButtonType type = 3;
+ optional NativeFlowInfo nativeFlowInfo = 4;
+}
+
+message ButtonsMessage {
+ optional string contentText = 6;
+ optional string footerText = 7;
+ optional ContextInfo contextInfo = 8;
+ repeated Button buttons = 9;
+ enum ButtonsMessageHeaderType {
+ UNKNOWN = 0;
+ EMPTY = 1;
+ TEXT = 2;
+ DOCUMENT = 3;
+ IMAGE = 4;
+ VIDEO = 5;
+ LOCATION = 6;
+ }
+ optional ButtonsMessageHeaderType headerType = 10;
+ oneof header {
+ string text = 1;
+ DocumentMessage documentMessage = 2;
+ ImageMessage imageMessage = 3;
+ VideoMessage videoMessage = 4;
+ LocationMessage locationMessage = 5;
+ }
+}
+
+message ButtonsResponseMessage {
+ optional string selectedButtonId = 1;
+ optional ContextInfo contextInfo = 3;
+ enum ButtonsResponseMessageType {
+ UNKNOWN = 0;
+ DISPLAY_TEXT = 1;
+ }
+ optional ButtonsResponseMessageType type = 4;
+ oneof response {
+ string selectedDisplayText = 2;
+ }
+}
+
+message ReactionMessage {
+ optional MessageKey key = 1;
+ optional string text = 2;
+ optional string groupingKey = 3;
+ optional int64 senderTimestampMs = 4;
+}
+
+message StickerSyncRMRMessage {
+ repeated string filehash = 1;
+ optional string rmrSource = 2;
+ optional int64 requestTimestamp = 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;
+}
+
+message ActionLink {
+ optional string url = 1;
+ optional string buttonTitle = 2;
+}
+
+message DisappearingMode {
+ enum DisappearingModeInitiator {
+ CHANGED_IN_CHAT = 0;
+ INITIATED_BY_ME = 1;
+ INITIATED_BY_OTHER = 2;
+ }
+ optional DisappearingModeInitiator initiator = 1;
+}
+
+// Renamed from MediaData
+message PBMediaData {
+ optional bytes mediaKey = 1;
+ optional int64 mediaKeyTimestamp = 2;
+ optional bytes fileSha256 = 3;
+ optional bytes fileEncSha256 = 4;
+ optional string directPath = 5;
+}
+
+message PaymentBackground {
+ 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 PBMediaData mediaData = 9;
+ enum PaymentBackgroundType {
+ UNKNOWN = 0;
+ DEFAULT = 1;
+ }
+ optional PaymentBackgroundType type = 10;
+}
+
+message Money {
+ optional int64 value = 1;
+ optional uint32 offset = 2;
+ optional string currencyCode = 3;
+}
+
+message HydratedQuickReplyButton {
+ optional string displayText = 1;
+ optional string id = 2;
+}
+
+message HydratedURLButton {
+ optional string displayText = 1;
+ optional string url = 2;
+}
+
+message HydratedCallButton {
+ optional string displayText = 1;
+ optional string phoneNumber = 2;
+}
+
+message HydratedTemplateButton {
+ optional uint32 index = 4;
+ oneof hydratedButton {
+ HydratedQuickReplyButton quickReplyButton = 1;
+ HydratedURLButton urlButton = 2;
+ HydratedCallButton callButton = 3;
+ }
+}
+
+message QuickReplyButton {
+ optional HighlyStructuredMessage displayText = 1;
+ optional string id = 2;
+}
+
+message URLButton {
+ optional HighlyStructuredMessage displayText = 1;
+ optional HighlyStructuredMessage url = 2;
+}
+
+message CallButton {
+ optional HighlyStructuredMessage displayText = 1;
+ optional HighlyStructuredMessage phoneNumber = 2;
+}
+
+message TemplateButton {
+ optional uint32 index = 4;
+ oneof button {
+ QuickReplyButton quickReplyButton = 1;
+ URLButton urlButton = 2;
+ CallButton callButton = 3;
+ }
+}
+
+message Location {
+ optional double degreesLatitude = 1;
+ optional double degreesLongitude = 2;
+ optional string name = 3;
+}
+
+message Point {
+ optional int32 xDeprecated = 1;
+ optional int32 yDeprecated = 2;
+ optional double x = 3;
+ optional double y = 4;
+}
+
+// Duplicate type omitted
+//message AppVersion {
+// optional uint32 primary = 1;
+// optional uint32 secondary = 2;
+// optional uint32 tertiary = 3;
+// optional uint32 quaternary = 4;
+// optional uint32 quinary = 5;
+//}
+
+message CompanionProps {
+ optional string os = 1;
+ optional AppVersion version = 2;
+ enum CompanionPropsPlatformType {
+ 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;
+ }
+ optional CompanionPropsPlatformType platformType = 3;
+ optional bool requireFullSync = 4;
+}
+
+message ADVSignedDeviceIdentityHMAC {
+ optional bytes details = 1;
+ optional bytes hmac = 2;
+}
+
+message ADVSignedDeviceIdentity {
+ optional bytes details = 1;
+ optional bytes accountSignatureKey = 2;
+ optional bytes accountSignature = 3;
+ optional bytes deviceSignature = 4;
+}
+
+message ADVDeviceIdentity {
+ optional uint32 rawId = 1;
+ optional uint64 timestamp = 2;
+ optional uint32 keyIndex = 3;
+}
+
+message ADVSignedKeyIndexList {
+ optional bytes details = 1;
+ optional bytes accountSignature = 2;
+}
+
+message ADVKeyIndexList {
+ optional uint32 rawId = 1;
+ optional uint64 timestamp = 2;
+ optional uint32 currentIndex = 3;
+ repeated uint32 validIndexes = 4 [packed=true];
+}
+
+message MessageKey {
+ optional string remoteJid = 1;
+ optional bool fromMe = 2;
+ optional string id = 3;
+ optional string participant = 4;
+}
+
+message Reaction {
+ optional MessageKey key = 1;
+ optional string text = 2;
+ optional string groupingKey = 3;
+ optional int64 senderTimestampMs = 4;
+ optional bool unread = 5;
+}
+
+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 string campaignId = 44;
+ optional uint64 campaignExpirationTimestamp = 45;
+}
+
+message PhotoChange {
+ optional bytes oldPhoto = 1;
+ optional bytes newPhoto = 2;
+ optional uint32 newPhotoId = 3;
+}
+
+message MediaData {
+ optional string localPath = 1;
+}
+
+message WebFeatures {
+ enum WebFeaturesFlag {
+ NOT_STARTED = 0;
+ FORCE_UPGRADE = 1;
+ DEVELOPMENT = 2;
+ PRODUCTION = 3;
+ }
+ optional WebFeaturesFlag labelsDisplay = 1;
+ optional WebFeaturesFlag voipIndividualOutgoing = 2;
+ optional WebFeaturesFlag groupsV3 = 3;
+ optional WebFeaturesFlag groupsV3Create = 4;
+ optional WebFeaturesFlag changeNumberV2 = 5;
+ optional WebFeaturesFlag queryStatusV3Thumbnail = 6;
+ optional WebFeaturesFlag liveLocations = 7;
+ optional WebFeaturesFlag queryVname = 8;
+ optional WebFeaturesFlag voipIndividualIncoming = 9;
+ optional WebFeaturesFlag quickRepliesQuery = 10;
+ optional WebFeaturesFlag payments = 11;
+ optional WebFeaturesFlag stickerPackQuery = 12;
+ optional WebFeaturesFlag liveLocationsFinal = 13;
+ optional WebFeaturesFlag labelsEdit = 14;
+ optional WebFeaturesFlag mediaUpload = 15;
+ optional WebFeaturesFlag mediaUploadRichQuickReplies = 18;
+ optional WebFeaturesFlag vnameV2 = 19;
+ optional WebFeaturesFlag videoPlaybackUrl = 20;
+ optional WebFeaturesFlag statusRanking = 21;
+ optional WebFeaturesFlag voipIndividualVideo = 22;
+ optional WebFeaturesFlag thirdPartyStickers = 23;
+ optional WebFeaturesFlag frequentlyForwardedSetting = 24;
+ optional WebFeaturesFlag groupsV4JoinPermission = 25;
+ optional WebFeaturesFlag recentStickers = 26;
+ optional WebFeaturesFlag catalog = 27;
+ optional WebFeaturesFlag starredStickers = 28;
+ optional WebFeaturesFlag voipGroupCall = 29;
+ optional WebFeaturesFlag templateMessage = 30;
+ optional WebFeaturesFlag templateMessageInteractivity = 31;
+ optional WebFeaturesFlag ephemeralMessages = 32;
+ optional WebFeaturesFlag e2ENotificationSync = 33;
+ optional WebFeaturesFlag recentStickersV2 = 34;
+ optional WebFeaturesFlag recentStickersV3 = 36;
+ optional WebFeaturesFlag userNotice = 37;
+ optional WebFeaturesFlag support = 39;
+ optional WebFeaturesFlag groupUiiCleanup = 40;
+ optional WebFeaturesFlag groupDogfoodingInternalOnly = 41;
+ optional WebFeaturesFlag settingsSync = 42;
+ optional WebFeaturesFlag archiveV2 = 43;
+ optional WebFeaturesFlag ephemeralAllowGroupMembers = 44;
+ optional WebFeaturesFlag ephemeral24HDuration = 45;
+ optional WebFeaturesFlag mdForceUpgrade = 46;
+ optional WebFeaturesFlag disappearingMode = 47;
+ optional WebFeaturesFlag externalMdOptInAvailable = 48;
+ optional WebFeaturesFlag noDeleteMessageTimeLimit = 49;
+}
+
+message NotificationMessageInfo {
+ optional MessageKey key = 1;
+ optional Message message = 2;
+ optional uint64 messageTimestamp = 3;
+ optional string participant = 4;
+}
+
+message WebNotificationsInfo {
+ optional uint64 timestamp = 2;
+ optional uint32 unreadChats = 3;
+ optional uint32 notifyMessageCount = 4;
+ repeated WebMessageInfo notifyMessages = 5;
+}
+
+message PaymentInfo {
+ enum PaymentInfoCurrency {
+ UNKNOWN_CURRENCY = 0;
+ INR = 1;
+ }
+ optional PaymentInfoCurrency currencyDeprecated = 1;
+ optional uint64 amount1000 = 2;
+ optional string receiverJid = 3;
+ enum PaymentInfoStatus {
+ 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;
+ }
+ optional PaymentInfoStatus status = 4;
+ optional uint64 transactionTimestamp = 5;
+ optional MessageKey requestMessageKey = 6;
+ optional uint64 expiryTimestamp = 7;
+ optional bool futureproofed = 8;
+ optional string currency = 9;
+ enum PaymentInfoTxnStatus {
+ 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;
+ }
+ optional PaymentInfoTxnStatus txnStatus = 10;
+ optional bool useNoviFiatFormat = 11;
+ optional Money primaryAmount = 12;
+ optional Money exchangeAmount = 13;
+}
+
+message WebMessageInfo {
+ required MessageKey key = 1;
+ optional Message message = 2;
+ optional uint64 messageTimestamp = 3;
+ enum WebMessageInfoStatus {
+ ERROR = 0;
+ PENDING = 1;
+ SERVER_ACK = 2;
+ DELIVERY_ACK = 3;
+ READ = 4;
+ PLAYED = 5;
+ }
+ optional WebMessageInfoStatus 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;
+ enum WebMessageInfoStubType {
+ 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;
+ }
+ optional WebMessageInfoStubType 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;
+ enum WebMessageInfoBizPrivacyStatus {
+ E2EE = 0;
+ FB = 2;
+ BSP = 1;
+ BSP_AND_FB = 3;
+ }
+ optional WebMessageInfoBizPrivacyStatus 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;
+}
+