ContentDatajson.RawMessage`json:"content"`// Required. The fields in this object will vary depending on the type of event. When interacting with the REST API, this is the HTTP body.
ETypeEventType`json:"type"`// Required. The type of event. This SHOULD be namespaced similar to Java package naming conventions e.g. 'com.example.subdomain.event.type'
RoomIDstring`json:"room_id"`// Required. The ID of the room associated with this event. Will not be present on events that arrive through /sync, despite being required everywhere else.
StateState`json:"state"`// Updates to the state, between the time indicated by the since parameter, and the start of the timeline (or all state up to the start of the timeline, if since is not given, or full_state is true).
TimelineTimeline`json:"timeline"`// The timeline of messages and state changes in the room.
EphemeralEphemeral`json:"ephemeral"`// The ephemeral events in the room that aren't recorded in the timeline or state of the room. e.g. typing.
AccountDataAccountData`json:"account_data"`// The private data that this user has attached to this room.
UnreadNotificationsUnreadNotificationCounts`json:"unread_notifications"`// Counts of unread notifications for this room
}
typeAccountDatastruct{
Events[]Event`json:"events"`// List of events.
}
typeUnreadNotificationCountsstruct{
HighlightCountint`json:"highlight_count"`// The number of unread notifications for this room with the highlight flag set
NotificationCountint`json:"notification_count"`// The total number of unread notifications for this room
}
typeLeftRoomstruct{
StateState`json:"state"`// The state updates for the room up to the start of the timeline.
TimelineTimeline`json:"timeline"`// The timeline of messages and state changes in the room up to the point when the user left.
AccountDataAccountData`json:"account_data"`// The private data that this user has attached to this room.
}
typeInvitedRoomstruct{
InviteStateInviteState`json:"invite_state"`// The state of a room that the user has been invited to. These state events may only have the sender, type, state_key and content keys present. These events do not replace any state that the client already has for the room, for example if the client has archived the room. Instead the client should keep two separate copies of the state: the one from the invite_state and one from the archived state. If the client joins the room then the current state will be given as a delta against the archived state not the invite_state.
}
typeInviteStatestruct{
Events[]StrippedState`json:"events"`// The StrippedState events that form the invite state.