/****************************************************************************** * THIS FILE IS GENERATED - ANY EDITS WILL BE OVERWRITTEN */ #pragma once #include "converters.h" #include "jobs/basejob.h" #include namespace Quotient { // Operations /// Start the requesting user participating in a particular room. /*! * *Note that this API requires a room ID, not alias.* ``/join/{roomIdOrAlias}`` * *exists if you have a room alias.* * * This API starts a user participating in a particular room, if that user * is allowed to participate in that room. After this call, the client is * allowed to see all current state events in the room, and all subsequent * events associated with the room until the user leaves the room. * * After a user has joined a room, the room will appear as an entry in the * response of the |/initialSync|_ and |/sync|_ APIs. * * If a ``third_party_signed`` was supplied, the homeserver must verify * that it matches a pending ``m.room.third_party_invite`` event in the * room, and perform key validity checking if required by the event. */ class JoinRoomByIdJob : public BaseJob { public: // Inner data structures /// A signature of an ``m.third_party_invite`` token to prove that this user /// owns a third party identity which has been invited to the room. struct ThirdPartySigned { /// The Matrix ID of the user who issued the invite. QString sender; /// The Matrix ID of the invitee. QString mxid; /// The state key of the m.third_party_invite event. QString token; /// A signatures object containing a signature of the entire signed /// object. QJsonObject signatures; }; // Construction/destruction /*! Start the requesting user participating in a particular room. * \param roomId * The room identifier (not alias) to join. * \param thirdPartySigned * A signature of an ``m.third_party_invite`` token to prove that this * user owns a third party identity which has been invited to the room. */ explicit JoinRoomByIdJob( const QString& roomId, const Omittable& thirdPartySigned = none); ~JoinRoomByIdJob() override; // Result properties /// The joined room ID. const QString& roomId() const; protected: Status parseJson(const QJsonDocument& data) override; private: class Private; QScopedPointer d; }; /// Start the requesting user participating in a particular room. /*! * *Note that this API takes either a room ID or alias, unlike* * ``/room/{roomId}/join``. * * This API starts a user participating in a particular room, if that user * is allowed to participate in that room. After this call, the client is * allowed to see all current state events in the room, and all subsequent * events associated with the room until the user leaves the room. * * After a user has joined a room, the room will appear as an entry in the * response of the |/initialSync|_ and |/sync|_ APIs. * * If a ``third_party_signed`` was supplied, the homeserver must verify * that it matches a pending ``m.room.third_party_invite`` event in the * room, and perform key validity checking if required by the event. */ class JoinRoomJob : public BaseJob { public: // Inner data structures /// *Note that this API takes either a room ID or alias, unlike* /// ``/room/{roomId}/join``.This API starts a user participating in a /// particular room, if that useris allowed to participate in that room. /// After this call, the client isallowed to see all current state events in /// the room, and all subsequentevents associated with the room until the /// user leaves the room.After a user has joined a room, the room will /// appear as an entry in theresponse of the |/initialSync|_ and |/sync|_ /// APIs.If a ``third_party_signed`` was supplied, the homeserver must /// verifythat it matches a pending ``m.room.third_party_invite`` event in /// theroom, and perform key validity checking if required by the event. struct Signed { /// The Matrix ID of the user who issued the invite. QString sender; /// The Matrix ID of the invitee. QString mxid; /// The state key of the m.third_party_invite event. QString token; /// A signatures object containing a signature of the entire signed /// object. QJsonObject signatures; }; /// A signature of an ``m.third_party_invite`` token to prove that this user /// owns a third party identity which has been invited to the room. struct ThirdPartySigned { /// A signature of an ``m.third_party_invite`` token to prove that this /// user owns a third party identity which has been invited to the room. Signed signedData; }; // Construction/destruction /*! Start the requesting user participating in a particular room. * \param roomIdOrAlias * The room identifier or alias to join. * \param serverName * The servers to attempt to join the room through. One of the servers * must be participating in the room. * \param thirdPartySigned * A signature of an ``m.third_party_invite`` token to prove that this * user owns a third party identity which has been invited to the room. */ explicit JoinRoomJob( const QString& roomIdOrAlias, const QStringList& serverName = {}, const Omittable& thirdPartySigned = none); ~JoinRoomJob() override; // Result properties /// The joined room ID. const QString& roomId() const; protected: Status parseJson(const QJsonDocument& data) override; private: class Private; QScopedPointer d; }; } // namespace Quotient