# 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.direct_to_device description: |- An EDU that lets servers push send events directly to a specific device on a remote server - for instance, to maintain an Olm E2E encrypted message channel between a local and remote device. allOf: - $ref: ../edu.yaml - type: object properties: edu_type: type: string enum: ['m.direct_to_device'] description: The string `m.direct_to_device`. example: "m.direct_to_device" content: type: object description: The description of the direct-to-device message. title: To Device Message properties: sender: type: string description: User ID of the sender. example: "@john:example.com" type: type: string description: Event type for the message. example: "m.room_key_request" message_id: type: string description: Unique ID for the message, used for idempotence. Arbitrary utf8 string, of maximum length 32 codepoints. example: "hiezohf6Hoo7kaev" messages: type: object description: |- The contents of the messages to be sent. These are arranged in a map of user IDs to a map of device IDs to message bodies. The device ID may also be `*`, meaning all known devices for the user. patternProperties: "^@": x-pattern-format: mx-user-id type: object title: User Devices additionalProperties: type: object title: Device Message Contents properties: {} example: { "@alice:example.org": { "IWHQUZUIAH": { "algorithm": "m.megolm.v1.aes-sha2", "room_id": "!Cuyf34gef24t:localhost", "session_id": "X3lUlvLELLYxeTx4yOVu6UDpasGEVO0Jbu+QFnm0cKQ", "session_key": "AgAAAADxKHa9uFxcXzwYoNueL5Xqi69IkD4sni8LlfJL7qNBEY..." } } } required: - sender - type - message_id - messages