syntax = "proto2";
package WAWebProtobufSyncAction;
option go_package = "go.mau.fi/whatsmeow/proto/waSyncAction";

import "waChatLockSettings/WAWebProtobufsChatLockSettings.proto";
import "waDeviceCapabilities/WAWebProtobufsDeviceCapabilities.proto";
import "waCommon/WACommon.proto";

enum CollectionName {
	COLLECTION_NAME_UNKNOWN = 0;
	REGULAR = 1;
	REGULAR_LOW = 2;
	REGULAR_HIGH = 3;
	CRITICAL_BLOCK = 4;
	CRITICAL_UNBLOCK_LOW = 5;
}

enum MutationProps {
	STAR_ACTION = 2;
	CONTACT_ACTION = 3;
	MUTE_ACTION = 4;
	PIN_ACTION = 5;
	SECURITY_NOTIFICATION_SETTING = 6;
	PUSH_NAME_SETTING = 7;
	QUICK_REPLY_ACTION = 8;
	RECENT_EMOJI_WEIGHTS_ACTION = 11;
	LABEL_MESSAGE_ACTION = 13;
	LABEL_EDIT_ACTION = 14;
	LABEL_ASSOCIATION_ACTION = 15;
	LOCALE_SETTING = 16;
	ARCHIVE_CHAT_ACTION = 17;
	DELETE_MESSAGE_FOR_ME_ACTION = 18;
	KEY_EXPIRATION = 19;
	MARK_CHAT_AS_READ_ACTION = 20;
	CLEAR_CHAT_ACTION = 21;
	DELETE_CHAT_ACTION = 22;
	UNARCHIVE_CHATS_SETTING = 23;
	PRIMARY_FEATURE = 24;
	ANDROID_UNSUPPORTED_ACTIONS = 26;
	AGENT_ACTION = 27;
	SUBSCRIPTION_ACTION = 28;
	USER_STATUS_MUTE_ACTION = 29;
	TIME_FORMAT_ACTION = 30;
	NUX_ACTION = 31;
	PRIMARY_VERSION_ACTION = 32;
	STICKER_ACTION = 33;
	REMOVE_RECENT_STICKER_ACTION = 34;
	CHAT_ASSIGNMENT = 35;
	CHAT_ASSIGNMENT_OPENED_STATUS = 36;
	PN_FOR_LID_CHAT_ACTION = 37;
	MARKETING_MESSAGE_ACTION = 38;
	MARKETING_MESSAGE_BROADCAST_ACTION = 39;
	EXTERNAL_WEB_BETA_ACTION = 40;
	PRIVACY_SETTING_RELAY_ALL_CALLS = 41;
	CALL_LOG_ACTION = 42;
	UGC_BOT = 43;
	STATUS_PRIVACY = 44;
	BOT_WELCOME_REQUEST_ACTION = 45;
	DELETE_INDIVIDUAL_CALL_LOG = 46;
	LABEL_REORDERING_ACTION = 47;
	PAYMENT_INFO_ACTION = 48;
	CUSTOM_PAYMENT_METHODS_ACTION = 49;
	LOCK_CHAT_ACTION = 50;
	CHAT_LOCK_SETTINGS = 51;
	WAMO_USER_IDENTIFIER_ACTION = 52;
	PRIVACY_SETTING_DISABLE_LINK_PREVIEWS_ACTION = 53;
	DEVICE_CAPABILITIES = 54;
	NOTE_EDIT_ACTION = 55;
	FAVORITES_ACTION = 56;
	MERCHANT_PAYMENT_PARTNER_ACTION = 57;
	WAFFLE_ACCOUNT_LINK_STATE_ACTION = 58;
	USERNAME_CHAT_START_MODE = 59;
	NOTIFICATION_ACTIVITY_SETTING_ACTION = 60;
	LID_CONTACT_ACTION = 61;
	CTWA_PER_CUSTOMER_DATA_SHARING_ACTION = 62;
	PAYMENT_TOS_ACTION = 63;
	PRIVACY_SETTING_CHANNELS_PERSONALISED_RECOMMENDATION_ACTION = 64;
	BUSINESS_BROADCAST_ASSOCIATION_ACTION = 65;
	DETECTED_OUTCOMES_STATUS_ACTION = 66;
	MAIBA_AI_FEATURES_CONTROL_ACTION = 68;
	BUSINESS_BROADCAST_LIST_ACTION = 69;
	MUSIC_USER_ID_ACTION = 70;
	STATUS_POST_OPT_IN_NOTIFICATION_PREFERENCES_ACTION = 71;
	AVATAR_UPDATED_ACTION = 72;
	GALAXY_FLOW_ACTION = 73;
	PRIVATE_PROCESSING_SETTING_ACTION = 74;
	NEWSLETTER_SAVED_INTERESTS_ACTION = 75;
	AI_THREAD_RENAME_ACTION = 76;
	INTERACTIVE_MESSAGE_ACTION = 77;
	SETTINGS_SYNC_ACTION = 78;
	OUT_CONTACT_ACTION = 79;
	NCT_SALT_SYNC_ACTION = 80;
	BUSINESS_BROADCAST_CAMPAIGN_ACTION = 81;
	BUSINESS_BROADCAST_INSIGHTS_ACTION = 82;
	SHARE_OWN_PN = 10001;
	BUSINESS_BROADCAST_ACTION = 10002;
	AI_THREAD_DELETE_ACTION = 10003;
}

enum BusinessBroadcastCampaignStatus {
	DRAFT = 1;
	SCHEDULED = 2;
	PROCESSING = 3;
	FAILED = 4;
	SENT = 5;
}

message CallLogRecord {
	enum CallType {
		REGULAR = 0;
		SCHEDULED_CALL = 1;
		VOICE_CHAT = 2;
	}

	enum SilenceReason {
		NONE = 0;
		SCHEDULED = 1;
		PRIVACY = 2;
		LIGHTWEIGHT = 3;
	}

	enum CallResult {
		CONNECTED = 0;
		REJECTED = 1;
		CANCELLED = 2;
		ACCEPTEDELSEWHERE = 3;
		MISSED = 4;
		INVALID = 5;
		UNAVAILABLE = 6;
		UPCOMING = 7;
		FAILED = 8;
		ABANDONED = 9;
		ONGOING = 10;
	}

	message ParticipantInfo {
		optional string userJID = 1;
		optional CallResult callResult = 2;
	}

	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 SettingsSyncAction {
	enum MediaQualitySetting {
		MEDIA_QUALITY_UNKNOWN = 0;
		STANDARD = 1;
		HD = 2;
	}

	enum DisplayMode {
		DISPLAY_MODE_UNKNOWN = 0;
		ALWAYS = 1;
		NEVER = 2;
		ONLY_WHEN_APP_IS_OPEN = 3;
	}

	enum SettingKey {
		SETTING_KEY_UNKNOWN = 0;
		START_AT_LOGIN = 1;
		MINIMIZE_TO_TRAY = 2;
		LANGUAGE = 3;
		REPLACE_TEXT_WITH_EMOJI = 4;
		BANNER_NOTIFICATION_DISPLAY_MODE = 5;
		UNREAD_COUNTER_BADGE_DISPLAY_MODE = 6;
		IS_MESSAGES_NOTIFICATION_ENABLED = 7;
		IS_CALLS_NOTIFICATION_ENABLED = 8;
		IS_REACTIONS_NOTIFICATION_ENABLED = 9;
		IS_STATUS_REACTIONS_NOTIFICATION_ENABLED = 10;
		IS_TEXT_PREVIEW_FOR_NOTIFICATION_ENABLED = 11;
		DEFAULT_NOTIFICATION_TONE_ID = 12;
		GROUP_DEFAULT_NOTIFICATION_TONE_ID = 13;
		APP_THEME = 14;
		WALLPAPER_ID = 15;
		IS_DOODLE_WALLPAPER_ENABLED = 16;
		FONT_SIZE = 17;
		IS_PHOTOS_AUTODOWNLOAD_ENABLED = 18;
		IS_AUDIOS_AUTODOWNLOAD_ENABLED = 19;
		IS_VIDEOS_AUTODOWNLOAD_ENABLED = 20;
		IS_DOCUMENTS_AUTODOWNLOAD_ENABLED = 21;
		DISABLE_LINK_PREVIEWS = 22;
		NOTIFICATION_TONE_ID = 23;
		MEDIA_UPLOAD_QUALITY = 24;
		IS_SPELL_CHECK_ENABLED = 25;
		IS_ENTER_TO_SEND_ENABLED = 26;
		IS_GROUP_MESSAGE_NOTIFICATION_ENABLED = 27;
		IS_GROUP_REACTIONS_NOTIFICATION_ENABLED = 28;
		IS_STATUS_NOTIFICATION_ENABLED = 29;
		STATUS_NOTIFICATION_TONE_ID = 30;
		SHOULD_PLAY_SOUND_FOR_CALL_NOTIFICATION = 31;
	}

	enum SettingPlatform {
		PLATFORM_UNKNOWN = 0;
		WEB = 1;
		HYBRID = 2;
		WINDOWS = 3;
		MAC = 4;
	}

	optional bool startAtLogin = 1;
	optional bool minimizeToTray = 2;
	optional string language = 3;
	optional bool replaceTextWithEmoji = 4;
	optional DisplayMode bannerNotificationDisplayMode = 5;
	optional DisplayMode unreadCounterBadgeDisplayMode = 6;
	optional bool isMessagesNotificationEnabled = 7;
	optional bool isCallsNotificationEnabled = 8;
	optional bool isReactionsNotificationEnabled = 9;
	optional bool isStatusReactionsNotificationEnabled = 10;
	optional bool isTextPreviewForNotificationEnabled = 11;
	optional int32 defaultNotificationToneID = 12;
	optional int32 groupDefaultNotificationToneID = 13;
	optional int32 appTheme = 14;
	optional int32 wallpaperID = 15;
	optional bool isDoodleWallpaperEnabled = 16;
	optional int32 fontSize = 17;
	optional bool isPhotosAutodownloadEnabled = 18;
	optional bool isAudiosAutodownloadEnabled = 19;
	optional bool isVideosAutodownloadEnabled = 20;
	optional bool isDocumentsAutodownloadEnabled = 21;
	optional bool disableLinkPreviews = 22;
	optional int32 notificationToneID = 23;
	optional MediaQualitySetting mediaUploadQuality = 24;
	optional bool isSpellCheckEnabled = 25;
	optional bool isEnterToSendEnabled = 26;
	optional bool isGroupMessageNotificationEnabled = 27;
	optional bool isGroupReactionsNotificationEnabled = 28;
	optional bool isStatusNotificationEnabled = 29;
	optional int32 statusNotificationToneID = 30;
	optional bool shouldPlaySoundForCallNotification = 31;
}

message InteractiveMessageAction {
	enum InteractiveMessageActionMode {
		DISABLE_CTA = 1;
	}

	required InteractiveMessageActionMode type = 1;
	optional string agmID = 2;
}

message PrivateProcessingSettingAction {
	enum PrivateProcessingStatus {
		UNDEFINED = 0;
		ENABLED = 1;
		DISABLED = 2;
	}

	optional PrivateProcessingStatus privateProcessingStatus = 1;
}

message AvatarUpdatedAction {
	enum AvatarEventType {
		UPDATED = 0;
		CREATED = 1;
		DELETED = 2;
	}

	optional AvatarEventType eventType = 1;
	repeated StickerAction recentAvatarStickers = 2;
}

message MaibaAIFeaturesControlAction {
	enum MaibaAIFeatureStatus {
		ENABLED = 0;
		ENABLED_HAS_LEARNING = 1;
		DISABLED = 2;
	}

	optional MaibaAIFeatureStatus aiFeatureStatus = 1;
}

message PaymentTosAction {
	enum PaymentNotice {
		BR_PAY_PRIVACY_POLICY = 0;
	}

	required PaymentNotice paymentNotice = 1;
	required bool accepted = 2;
}

message NotificationActivitySettingAction {
	enum NotificationActivitySetting {
		DEFAULT_ALL_MESSAGES = 0;
		ALL_MESSAGES = 1;
		HIGHLIGHTS = 2;
		DEFAULT_HIGHLIGHTS = 3;
	}

	optional NotificationActivitySetting notificationActivitySetting = 1;
}

message WaffleAccountLinkStateAction {
	enum AccountLinkState {
		ACTIVE = 0;
		PAUSED = 1;
		UNLINKED = 2;
	}

	optional AccountLinkState linkState = 2;
}

message MerchantPaymentPartnerAction {
	enum Status {
		ACTIVE = 0;
		INACTIVE = 1;
	}

	required Status status = 1;
	required string country = 2;
	optional string gatewayName = 3;
	optional string credentialID = 4;
}

message NoteEditAction {
	enum NoteType {
		UNSTRUCTURED = 1;
		STRUCTURED = 2;
	}

	optional NoteType type = 1;
	optional string chatJID = 2;
	optional int64 createdAt = 3;
	optional bool deleted = 4;
	optional string unstructuredContent = 5;
}

message StatusPrivacyAction {
	enum StatusDistributionMode {
		ALLOW_LIST = 0;
		DENY_LIST = 1;
		CONTACTS = 2;
		CLOSE_FRIENDS = 3;
	}

	optional StatusDistributionMode mode = 1;
	repeated string userJID = 2;
	optional bool shareToFB = 3;
	optional bool shareToIG = 4;
}

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 UsernameChatStartModeAction {
	enum ChatStartMode {
		LID = 1;
		PN = 2;
	}

	optional ChatStartMode chatStartMode = 1;
}

message LabelEditAction {
	enum ListType {
		NONE = 0;
		UNREAD = 1;
		GROUPS = 2;
		FAVORITES = 3;
		PREDEFINED = 4;
		CUSTOM = 5;
		COMMUNITY = 6;
		SERVER_ASSIGNED = 7;
		DRAFTED = 8;
		AI_HANDOFF = 9;
		CHANNELS = 10;
	}

	optional string name = 1;
	optional int32 color = 2;
	optional int32 predefinedID = 3;
	optional bool deleted = 4;
	optional int32 orderIndex = 5;
	optional bool isActive = 6;
	optional ListType type = 7;
	optional bool isImmutable = 8;
	optional int64 muteEndTimeMS = 9;
}

message PatchDebugData {
	enum Platform {
		ANDROID = 0;
		SMBA = 1;
		IPHONE = 2;
		SMBI = 3;
		WEB = 4;
		UWP = 5;
		DARWIN = 6;
		IPAD = 7;
		WEAROS = 8;
		WASG = 9;
		WEARM = 10;
		CAPI = 11;
	}

	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;
}

/*
enum MutationName {
	STAR_ACTION = star;
	CONTACT_ACTION = contact;
	MUTE_ACTION = mute;
	PIN_ACTION = pin_v1;
	SECURITY_NOTIFICATION_SETTING = setting_securityNotification;
	PUSH_NAME_SETTING = setting_pushName;
	QUICK_REPLY_ACTION = quick_reply;
	RECENT_EMOJI_WEIGHTS_ACTION = recent_emoji_weights_action;
	LABEL_MESSAGE_ACTION = label_message;
	LABEL_EDIT_ACTION = label_edit;
	LABEL_ASSOCIATION_ACTION = label_jid;
	LOCALE_SETTING = setting_locale;
	ARCHIVE_CHAT_ACTION = archive;
	DELETE_MESSAGE_FOR_ME_ACTION = deleteMessageForMe;
	KEY_EXPIRATION = sentinel;
	MARK_CHAT_AS_READ_ACTION = markChatAsRead;
	CLEAR_CHAT_ACTION = clearChat;
	DELETE_CHAT_ACTION = deleteChat;
	UNARCHIVE_CHATS_SETTING = setting_unarchiveChats;
	PRIMARY_FEATURE = primary_feature;
	ANDROID_UNSUPPORTED_ACTIONS = android_unsupported_actions;
	AGENT_ACTION = deviceAgent;
	SUBSCRIPTION_ACTION = subscription;
	USER_STATUS_MUTE_ACTION = userStatusMute;
	TIME_FORMAT_ACTION = time_format;
	NUX_ACTION = nux;
	PRIMARY_VERSION_ACTION = primary_version;
	STICKER_ACTION = favoriteSticker;
	REMOVE_RECENT_STICKER_ACTION = removeRecentSticker;
	CHAT_ASSIGNMENT = agentChatAssignment;
	CHAT_ASSIGNMENT_OPENED_STATUS = agentChatAssignmentOpenedStatus;
	PN_FOR_LID_CHAT_ACTION = pnForLidChat;
	MARKETING_MESSAGE_ACTION = marketingMessage;
	MARKETING_MESSAGE_BROADCAST_ACTION = marketingMessageBroadcast;
	EXTERNAL_WEB_BETA_ACTION = external_web_beta;
	PRIVACY_SETTING_RELAY_ALL_CALLS = setting_relayAllCalls;
	CALL_LOG_ACTION = call_log;
	UGC_BOT = ugc_bot;
	STATUS_PRIVACY = status_privacy;
	BOT_WELCOME_REQUEST_ACTION = bot_welcome_request;
	DELETE_INDIVIDUAL_CALL_LOG = delete_individual_call_log;
	LABEL_REORDERING_ACTION = label_reordering;
	PAYMENT_INFO_ACTION = payment_info;
	CUSTOM_PAYMENT_METHODS_ACTION = custom_payment_methods;
	LOCK_CHAT_ACTION = lock;
	CHAT_LOCK_SETTINGS = setting_chatLock;
	WAMO_USER_IDENTIFIER_ACTION = generated_wui;
	PRIVACY_SETTING_DISABLE_LINK_PREVIEWS_ACTION = setting_disableLinkPreviews;
	DEVICE_CAPABILITIES = device_capabilities;
	NOTE_EDIT_ACTION = note_edit;
	FAVORITES_ACTION = favorites;
	MERCHANT_PAYMENT_PARTNER_ACTION = merchant_payment_partner;
	WAFFLE_ACCOUNT_LINK_STATE_ACTION = waffle_account_link_state;
	USERNAME_CHAT_START_MODE = usernameChatStartMode;
	NOTIFICATION_ACTIVITY_SETTING_ACTION = notificationActivitySetting;
	LID_CONTACT_ACTION = lid_contact;
	CTWA_PER_CUSTOMER_DATA_SHARING_ACTION = ctwaPerCustomerDataSharing;
	PAYMENT_TOS_ACTION = payment_tos;
	PRIVACY_SETTING_CHANNELS_PERSONALISED_RECOMMENDATION_ACTION = setting_channels_personalised_recommendation_optout;
	BUSINESS_BROADCAST_ASSOCIATION_ACTION = broadcast_jid;
	DETECTED_OUTCOMES_STATUS_ACTION = detected_outcomes_status_action;
	MAIBA_AI_FEATURES_CONTROL_ACTION = maiba_ai_features_control;
	BUSINESS_BROADCAST_LIST_ACTION = business_broadcast_list;
	MUSIC_USER_ID_ACTION = music_user_id;
	STATUS_POST_OPT_IN_NOTIFICATION_PREFERENCES_ACTION = status_post_opt_in_notification_preferences_action;
	AVATAR_UPDATED_ACTION = avatar_updated_action;
	GALAXY_FLOW_ACTION = galaxy_flow_action;
	PRIVATE_PROCESSING_SETTING_ACTION = private_processing_setting;
	NEWSLETTER_SAVED_INTERESTS_ACTION = newsletter_saved_interests;
	AI_THREAD_RENAME_ACTION = ai_thread_rename;
	INTERACTIVE_MESSAGE_ACTION = interactive_message_action;
	SETTINGS_SYNC_ACTION = settings_sync;
	OUT_CONTACT_ACTION = out_contact;
	NCT_SALT_SYNC_ACTION = nct_salt_sync;
	BUSINESS_BROADCAST_CAMPAIGN_ACTION = business_broadcast_campaign;
	BUSINESS_BROADCAST_INSIGHTS_ACTION = business_broadcast_insights_sync;
	SHARE_OWN_PN = shareOwnPn;
	BUSINESS_BROADCAST_ACTION = broadcast;
	AI_THREAD_DELETE_ACTION = ai_thread_delete;
}
*/

/*
enum CollectionName {
}
*/

/*
enum CollectionNameStr {
	REGULAR = regular;
	REGULAR_LOW = regular_low;
	REGULAR_HIGH = regular_high;
	CRITICAL_BLOCK = critical_block;
	CRITICAL_UNBLOCK_LOW = critical_unblock_low;
}
*/

message RecentEmojiWeight {
	optional string emoji = 1;
	optional float weight = 2;
}

message SyncActionValue {
	optional int64 timestamp = 1;
	optional StarAction starAction = 2;
	optional ContactAction contactAction = 3;
	optional MuteAction muteAction = 4;
	optional PinAction pinAction = 5;
	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 UGCBot ugcBot = 43;
	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 WAWebProtobufsChatLockSettings.ChatLockSettings chatLockSettings = 51;
	optional WamoUserIdentifierAction wamoUserIdentifierAction = 52;
	optional PrivacySettingDisableLinkPreviewsAction privacySettingDisableLinkPreviewsAction = 53;
	optional WAWebProtobufsDeviceCapabilities.DeviceCapabilities deviceCapabilities = 54;
	optional NoteEditAction noteEditAction = 55;
	optional FavoritesAction favoritesAction = 56;
	optional MerchantPaymentPartnerAction merchantPaymentPartnerAction = 57;
	optional WaffleAccountLinkStateAction waffleAccountLinkStateAction = 58;
	optional UsernameChatStartModeAction usernameChatStartMode = 59;
	optional NotificationActivitySettingAction notificationActivitySettingAction = 60;
	optional LidContactAction lidContactAction = 61;
	optional CtwaPerCustomerDataSharingAction ctwaPerCustomerDataSharingAction = 62;
	optional PaymentTosAction paymentTosAction = 63;
	optional PrivacySettingChannelsPersonalisedRecommendationAction privacySettingChannelsPersonalisedRecommendationAction = 64;
	optional DetectedOutcomesStatusAction detectedOutcomesStatusAction = 66;
	optional MaibaAIFeaturesControlAction maibaAiFeaturesControlAction = 68;
	optional BusinessBroadcastListAction businessBroadcastListAction = 69;
	optional MusicUserIdAction musicUserIDAction = 70;
	optional StatusPostOptInNotificationPreferencesAction statusPostOptInNotificationPreferencesAction = 71;
	optional AvatarUpdatedAction avatarUpdatedAction = 72;
	optional PrivateProcessingSettingAction privateProcessingSettingAction = 74;
	optional NewsletterSavedInterestsAction newsletterSavedInterestsAction = 75;
	optional AiThreadRenameAction aiThreadRenameAction = 76;
	optional InteractiveMessageAction interactiveMessageAction = 77;
	optional SettingsSyncAction settingsSyncAction = 78;
	optional OutContactAction outContactAction = 79;
	optional NctSaltSyncAction nctSaltSyncAction = 80;
	optional BusinessBroadcastCampaignAction businessBroadcastCampaignAction = 81;
	optional BusinessBroadcastInsightsAction businessBroadcastInsightsAction = 82;
}

message BusinessBroadcastInsightsAction {
	optional int32 recipientCount = 1;
	optional int32 deliveredCount = 2;
	optional int32 readCount = 3;
	optional int32 repliedCount = 4;
	optional int32 quickReplyCount = 5;
}

message NctSaltSyncAction {
	optional bytes salt = 1;
}

message AiThreadRenameAction {
	optional string newTitle = 1;
}

message StatusPostOptInNotificationPreferencesAction {
	optional bool enabled = 1;
}

message BroadcastListParticipant {
	required string lidJID = 1;
	optional string pnJID = 2;
}

message BusinessBroadcastCampaignAction {
	optional int32 deviceID = 1;
	optional string adID = 2;
	optional string name = 3;
	optional string msgID = 4;
	optional string broadcastJID = 5;
	optional int32 reservedQuota = 6;
	optional int64 scheduledTimestamp = 7;
	optional int64 createTimestamp = 8;
	optional BusinessBroadcastCampaignStatus status = 9;
}

message BusinessBroadcastListAction {
	optional bool deleted = 1;
	repeated BroadcastListParticipant participants = 2;
	optional string listName = 3;
	repeated string labelIDs = 4;
}

message BusinessBroadcastAssociationAction {
	optional bool deleted = 1;
}

message CtwaPerCustomerDataSharingAction {
	optional bool isCtwaPerCustomerDataSharingEnabled = 1;
}

message OutContactAction {
	optional string fullName = 1;
	optional string firstName = 2;
}

message LidContactAction {
	optional string fullName = 1;
	optional string firstName = 2;
	optional string username = 3;
}

message FavoritesAction {
	message Favorite {
		optional string ID = 1;
	}

	repeated Favorite favorites = 1;
}

message PrivacySettingChannelsPersonalisedRecommendationAction {
	optional bool isUserOptedOut = 1;
}

message PrivacySettingDisableLinkPreviewsAction {
	optional bool isPreviewsDisabled = 1;
}

message WamoUserIdentifierAction {
	optional string identifier = 1;
}

message LockChatAction {
	optional bool locked = 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 PaymentInfoAction {
	optional string cpi = 1;
}

message LabelReorderingAction {
	repeated int32 sortedLabelIDs = 1;
}

message DeleteIndividualCallLogAction {
	optional string peerJID = 1;
	optional bool isIncoming = 2;
}

message BotWelcomeRequestAction {
	optional bool isSent = 1;
}

message NewsletterSavedInterestsAction {
	optional string newsletterSavedInterests = 1;
}

message MusicUserIdAction {
	optional string musicUserID = 1;
	// TODO switch to proto3 and enable this
	//optional map<string, string> music_user_id_map = 2;
}

message UGCBot {
	optional bytes definition = 1;
}

message CallLogAction {
	optional CallLogRecord callLogRecord = 1;
}

message PrivacySettingRelayAllCalls {
	optional bool isEnabled = 1;
}

message DetectedOutcomesStatusAction {
	optional bool isEnabled = 1;
}

message ExternalWebBetaAction {
	optional bool isOptIn = 1;
}

message MarketingMessageBroadcastAction {
	optional int32 repliedCount = 1;
}

message PnForLidChatAction {
	optional string pnJID = 1;
}

message ChatAssignmentOpenedStatusAction {
	optional bool chatOpened = 1;
}

message ChatAssignmentAction {
	optional string deviceAgentID = 1;
}

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;
	optional bool isLottie = 11;
	optional string imageHash = 12;
	optional bool isAvatarSticker = 13;
}

message RemoveRecentStickerAction {
	optional int64 lastStickerSentTS = 1;
}

message PrimaryVersionAction {
	optional string version = 1;
}

message NuxAction {
	optional bool acknowledged = 1;
}

message TimeFormatAction {
	optional bool isTwentyFourHourFormatEnabled = 1;
}

message UserStatusMuteAction {
	optional bool muted = 1;
}

message SubscriptionAction {
	optional bool isDeactivated = 1;
	optional bool isAutoRenewing = 2;
	optional int64 expirationDate = 3;
}

message AgentAction {
	optional string name = 1;
	optional int32 deviceID = 2;
	optional bool isDeleted = 3;
}

message AndroidUnsupportedActions {
	optional bool allowed = 1;
}

message PrimaryFeature {
	repeated string flags = 1;
}

message KeyExpiration {
	optional int32 expiredKeyEpoch = 1;
}

message SyncActionMessage {
	optional WACommon.MessageKey key = 1;
	optional int64 timestamp = 2;
}

message SyncActionMessageRange {
	optional int64 lastMessageTimestamp = 1;
	optional int64 lastSystemMessageTimestamp = 2;
	repeated SyncActionMessage messages = 3;
}

message UnarchiveChatsSetting {
	optional bool unarchiveChats = 1;
}

message DeleteChatAction {
	optional SyncActionMessageRange messageRange = 1;
}

message ClearChatAction {
	optional SyncActionMessageRange messageRange = 1;
}

message MarkChatAsReadAction {
	optional bool read = 1;
	optional SyncActionMessageRange messageRange = 2;
}

message DeleteMessageForMeAction {
	optional bool deleteMedia = 1;
	optional int64 messageTimestamp = 2;
}

message ArchiveChatAction {
	optional bool archived = 1;
	optional SyncActionMessageRange messageRange = 2;
}

message RecentEmojiWeightsAction {
	repeated RecentEmojiWeight weights = 1;
}

message LabelAssociationAction {
	optional bool labeled = 1;
}

message QuickReplyAction {
	optional string shortcut = 1;
	optional string message = 2;
	repeated string keywords = 3;
	optional int32 count = 4;
	optional bool deleted = 5;
}

message LocaleSetting {
	optional string locale = 1;
}

message PushNameSetting {
	optional string name = 1;
}

message PinAction {
	optional bool pinned = 1;
}

message MuteAction {
	optional bool muted = 1;
	optional int64 muteEndTimestamp = 2;
	optional bool autoMuted = 3;
	optional int64 muteEveryoneMentionEndTimestamp = 4;
}

message ContactAction {
	optional string fullName = 1;
	optional string firstName = 2;
	optional string lidJID = 3;
	optional bool saveOnPrimaryAddressbook = 4;
	optional string pnJID = 5;
	optional string username = 6;
}

message StarAction {
	optional bool starred = 1;
}

message SyncActionData {
	optional bytes index = 1;
	optional SyncActionValue value = 2;
	optional bytes padding = 3;
	optional int32 version = 4;
}
