# Copyright 2018 New Vector Ltd # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. type: object title: m.presence description: |- An EDU representing presence updates for users of the sending homeserver. allOf: - $ref: ../edu.yaml - type: object properties: edu_type: type: enum enum: ['m.presence'] description: The string `m.presence` example: "m.presence" content: type: object description: The presence updates and requests. title: Presence Update properties: push: type: array description: |- A list of presence updates that the receiving server is likely to be interested in. items: type: object title: User Presence Update properties: user_id: type: string description: The user ID this presence EDU is for. example: "@john:matrix.org" presence: type: enum enum: ['offline', 'unavailable', 'online'] description: The presence of the user. example: "online" status_msg: type: string description: An optional description to accompany the presence. example: "Making cupcakes" last_active_ago: type: integer format: int64 description: |- The number of milliseconds that have elapsed since the user last did something. example: 5000 currently_active: type: boolean description: |- True if the user is likely to be interacting with their client. This may be indicated by the user having a `last_active_ago` within the last few minutes. Defaults to false. example: true required: ['user_id', 'presence', 'last_active_ago'] required: ['push']