1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//! Types for the *m.key.verification.request* event.

use std::time::SystemTime;

use ruma_events_macros::ruma_event;
use ruma_identifiers::DeviceId;

use super::VerificationMethod;

ruma_event! {
    /// Requests a key verification with another user's devices.
    ///
    /// Typically sent as a to-device event.
    RequestEvent {
        kind: Event,
        event_type: "m.key.verification.request",
        content: {
            /// The device ID which is initiating the request.
            pub from_device: DeviceId,

            /// An opaque identifier for the verification request.
            ///
            /// Must be unique with respect to the devices involved.
            pub transaction_id: String,

            /// The verification methods supported by the sender.
            pub methods: Vec<VerificationMethod>,

            /// The time in milliseconds for when the request was made.
            ///
            /// If the request is in the future by more than 5 minutes or more than 10 minutes in
            /// the past, the message should be ignored by the receiver.
            #[serde(with = "ruma_serde::time::ms_since_unix_epoch")]
            pub timestamp: SystemTime,
        },
    }
}