/****************************************************************************** * THIS FILE IS GENERATED - ANY EDITS WILL BE OVERWRITTEN */ #pragma once #include "jobs/basejob.h" namespace QMatrixClient { // Operations /// Invite a user to participate in a particular room. /// /// .. _invite-by-third-party-id-endpoint: /// /// *Note that there are two forms of this API, which are documented separately. /// This version of the API does not require that the inviter know the Matrix /// identifier of the invitee, and instead relies on third party identifiers. /// The homeserver uses an identity server to perform the mapping from /// third party identifier to a Matrix identifier. The other is documented in the* /// `joining rooms section`_. /// /// This API invites a user to participate in a particular room. /// They do not start participating in the room until they actually join the /// room. /// /// Only users currently in a particular room can invite other users to /// join that room. /// /// If the identity server did know the Matrix user identifier for the /// third party identifier, the homeserver will append a ``m.room.member`` /// event to the room. /// /// If the identity server does not know a Matrix user identifier for the /// passed third party identifier, the homeserver will issue an invitation /// which can be accepted upon providing proof of ownership of the third /// party identifier. This is achieved by the identity server generating a /// token, which it gives to the inviting homeserver. The homeserver will /// add an ``m.room.third_party_invite`` event into the graph for the room, /// containing that token. /// /// When the invitee binds the invited third party identifier to a Matrix /// user ID, the identity server will give the user a list of pending /// invitations, each containing: /// /// - The room ID to which they were invited /// /// - The token given to the homeserver /// /// - A signature of the token, signed with the identity server's private key /// /// - The matrix user ID who invited them to the room /// /// If a token is requested from the identity server, the homeserver will /// append a ``m.room.third_party_invite`` event to the room. /// /// .. _joining rooms section: `invite-by-user-id-endpoint`_ class InviteBy3PIDJob : public BaseJob { public: /*! Invite a user to participate in a particular room. * \param roomId * The room identifier (not alias) to which to invite the user. * \param idServer * The hostname+port of the identity server which should be used for third party identifier lookups. * \param medium * The kind of address being passed in the address field, for example ``email``. * \param address * The invitee's third party identifier. */ explicit InviteBy3PIDJob(const QString& roomId, const QString& idServer, const QString& medium, const QString& address); }; } // namespace QMatrixClient