Notifications data types ​
Fields below are declared serialized members. Base types contribute their own fields; related types link the payload graph. ? means nullable, and required marks a required C# initializer. These are schematic C# contract shapes, not compilable declarations or a separate JSON schema. Constructor members are repeated in the field list for easy scanning. Serialization attributes and implementation helpers are omitted; use the linked source for exact wire aliases and formatters.
AttentionNotification ​
Attention Notification contract used by the API operations and related records below. Source
public sealed partial record AttentionNotification(
NotificationId Id,
long Version = 0
) : ChatEntryNotification(Id, Version)No additional serialized fields are declared here; use the base contract or string-identifier representation.
Related types: ChatEntryNotification.
CallNotification ​
An incoming voice/video call ring. The similarity key is the call's CallId, so the ring and its later dismissal collapse onto a single banner - and a dismissal that arrives late can't take down the ring of the next call to the same chat. Source
public sealed partial record CallNotification(
NotificationId Id,
long Version = 0
) : ChatNotification(Id, Version)
{
bool HasVideo;
}Related types: ChatNotification.
ChatEntryNotification ​
Base for notifications about a specific chat entry — they are seen individually: the similarity key is the ChatEntryId, from which ChatId and EntryLid derive. Compare with ChatEntryRelatedNotification, which references an entry but is keyed by (and collapses per) chat. Source
public abstract partial record ChatEntryNotification(
NotificationId Id,
long Version = 0
) : ChatNotification(Id, Version)No additional serialized fields are declared here; use the base contract or string-identifier representation.
Related types: ChatNotification.
ChatEntryRelatedNotification ​
Base for chat notifications that reference an entry but collapse per chat: the similarity key is the ChatId and EntryLid is stored. Compare with ChatEntryNotification, whose similarity key is the entry itself. Source
public abstract partial record ChatEntryRelatedNotification(
NotificationId Id,
long Version = 0
) : ChatNotification(Id, Version)
{
long EntryLid;
long StartEntryLid;
int UnreadCount;
ApiArray<AuthorId> AuthorIds;
string LeadText;
int BeepCount;
Moment LastBeepAt;
int LeadCount;
ApiArray<NotificationMessage> RecentMessages;
string BeepGroup;
string LastBeepGroup;
}Related types: AuthorId, ChatNotification, NotificationMessage.
ChatNotification ​
Base for notifications related to a chat. The similarity key is the ChatId. Source
public abstract partial record ChatNotification(
NotificationId Id,
long Version = 0
) : Notification(Id, Version)
{
AuthorId? AuthorId;
string SenderName;
string GroupTitle;
}Related types: AuthorId, Notification.
ConversationNotification ​
Notification about a conversation (live or regular). The similarity key is the ConversationId, so all phases of one conversation collapse onto a single banner. Source
public sealed partial record ConversationNotification(
NotificationId Id,
long Version = 0
) : ChatNotification(Id, Version)
{
long StartEntryLid;
long EndEntryLid;
}Related types: ChatNotification.
DeviceType ​
Identifies the type of client device receiving notifications. Source
public enum DeviceType
{
WebBrowser = 0,
WindowsApp = 1,
iOSApp = 2,
AndroidApp = 3,
iOSPttApp = 4,
iOSVoipApp = 5,
}InvitationNotification ​
Invitation Notification contract used by the API operations and related records below. Source
public sealed partial record InvitationNotification(
NotificationId Id,
long Version = 0
) : ChatNotification(Id, Version)No additional serialized fields are declared here; use the base contract or string-identifier representation.
Related types: ChatNotification.
LegacyThreadNotification ​
Legacy Thread Notification contract used by the API operations and related records below. Source
public sealed partial record LegacyThreadNotification(
NotificationId Id,
long Version = 0
) : ChatEntryRelatedNotification(Id, Version)No additional serialized fields are declared here; use the base contract or string-identifier representation.
Related types: ChatEntryRelatedNotification.
MentionAlertStatus ​
Mention Alert Status contract used by the API operations and related records below. Source
public sealed partial record MentionAlertStatus(
AuthorId AuthorId,
UserId UserId,
bool IsNotified,
bool IsRead
)
{
AuthorId AuthorId;
UserId UserId;
bool IsNotified;
bool IsRead;
}Related types: AuthorId, UserId.
MentionNotification ​
Mention Notification contract used by the API operations and related records below. Source
public sealed partial record MentionNotification(
NotificationId Id,
long Version = 0
) : ChatEntryNotification(Id, Version)No additional serialized fields are declared here; use the base contract or string-identifier representation.
Related types: ChatEntryNotification.
MessageNotification ​
Message Notification contract used by the API operations and related records below. Source
public sealed partial record MessageNotification(
NotificationId Id,
long Version = 0
) : ChatEntryRelatedNotification(Id, Version)No additional serialized fields are declared here; use the base contract or string-identifier representation.
Related types: ChatEntryRelatedNotification.
Notification ​
A single notification in a user's notification set. The union base carries only the identity/dedup key (NotificationId) and display data — it does not assume the notification is chat-related. Source
public abstract partial record Notification(
NotificationId Id,
long Version = 0
)
: IHasId<NotificationId>,
IHasVersion<long>,
ISanitized,
IForwardCompatibleUnion<Notification>
{
NotificationId Id;
long Version;
string Title;
string Text;
string IconUrl;
Moment CreatedAt;
Moment SentAt;
ApiArray<NotificationAction> Actions;
}Related types: AttentionNotification, CallNotification, ConversationNotification, InvitationNotification, LegacyThreadNotification, MentionNotification, MessageNotification, NotificationAction, NotificationId, ReactionNotification, ReplyNotification, ThreadNotification.
NotificationAction ​
One action button on a Notification. Target is an optional local URL for NotificationActionKind.Open (falls back to the notification's own link). Source
public sealed partial record NotificationAction(
NotificationActionKind Kind,
string Title,
string Target = ""
)
{
NotificationActionKind Kind;
string Title;
string Target;
}Related types: NotificationActionKind.
NotificationActionKind ​
A call-to-action the client can render as a button on a notification. Only kinds the client can honor on its own are defined here; richer kinds (Accept/Decline etc.) arrive with their server producers + command routing. Source
public enum NotificationActionKind
{
None = 0,
Open,
Dismiss,
}NotificationHistoryItem ​
One row of a user's notification log: what a Notification looked like when it fired, kept after the active set has dropped it. Source
public sealed partial record NotificationHistoryItem(long Seq, NotificationKind Kind)
{
long Seq;
NotificationKind Kind;
Moment SentAt;
ChatId? ChatId;
ChatEntryId? EntryId;
AuthorId? AuthorId;
string Title;
string Text;
NotificationId? NotificationId;
}Related types: AuthorId, ChatEntryId, ChatId, NotificationId, NotificationKind.
NotificationHistoryQuery ​
A page request over a user's notification log. AfterSeq is a cursor in walk order: with IsNewestFirst the page continues to older rows, otherwise to newer. Source
public sealed partial record NotificationHistoryQuery
{
ApiArray<NotificationKind> Kinds;
long AfterSeq;
int Limit;
bool IsNewestFirst;
}Related types: NotificationKind.
NotificationMessage ​
One message inside a coalesced chat notification: a display-ready snapshot (author name resolved at send time) kept in ChatEntryRelatedNotification.RecentMessages. Source
public sealed partial record NotificationMessage : ISanitized
{
AuthorId? AuthorId;
string AuthorName;
string Text;
long EntryLid;
Moment SentAt;
}Related types: AuthorId.
Notifications_DeregisterDevice ​
Command payload for notifications deregister device. Source
public sealed partial record Notifications_DeregisterDevice : ApiCommand<Unit>
{
required Symbol DeviceId;
}Related types: ApiCommand.
Notifications_Dismiss ​
Command payload for notifications dismiss. Source
public sealed partial record Notifications_Dismiss : ApiCommand<Unit>
{
required NotificationId NotificationId;
}Related types: ApiCommand, NotificationId.
Notifications_DismissAll ​
Command payload for notifications dismiss all. Source
public sealed partial record Notifications_DismissAll : ApiCommand<Unit>No additional serialized fields are declared here; use the base contract or string-identifier representation.
Related types: ApiCommand.
Notifications_NotifyMembers ​
Command payload for notifications notify members. Source
public sealed partial record Notifications_NotifyMembers : ApiCommand<Unit>
{
required ChatId ChatId;
}Related types: ApiCommand, ChatId.
Notifications_NotifyMentionedMembers ​
Command payload for notifications notify mentioned members. Source
public sealed partial record Notifications_NotifyMentionedMembers : ApiCommand<Unit>
{
required ChatEntryId ChatEntryId;
ApiArray<AuthorId> AuthorIds;
}Related types: ApiCommand, AuthorId, ChatEntryId.
Notifications_RegisterDevice ​
Command payload for notifications register device. Source
public sealed partial record Notifications_RegisterDevice
: ApiCommand<Unit>,
INotDeduplicated
{
required Symbol DeviceId;
required DeviceType DeviceType;
bool IsPttEnabled;
}Related types: ApiCommand, DeviceType.
ReactionNotification ​
Reaction Notification contract used by the API operations and related records below. Source
public sealed partial record ReactionNotification(
NotificationId Id,
long Version = 0
) : ChatEntryNotification(Id, Version)
{
ApiArray<AuthorId> AuthorIds;
ApiArray<Emoji> Emojis;
string QuotedText;
Emoji? LastEmoji;
string DisplaySenderName;
}Related types: AuthorId, ChatEntryNotification, Emoji.
ReplyNotification ​
Reply Notification contract used by the API operations and related records below. Source
public sealed partial record ReplyNotification(
NotificationId Id,
long Version = 0
) : ChatEntryRelatedNotification(Id, Version)No additional serialized fields are declared here; use the base contract or string-identifier representation.
Related types: ChatEntryRelatedNotification.
ThreadNotification ​
Thread Notification contract used by the API operations and related records below. Source
public sealed partial record ThreadNotification(
NotificationId Id,
long Version = 0
) : ChatEntryNotification(Id, Version)No additional serialized fields are declared here; use the base contract or string-identifier representation.
Related types: ChatEntryNotification.