/******************************************************************************
 * 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-user-id-endpoint:
    /// 
    /// *Note that there are two forms of this API, which are documented separately.
    /// This version of the API requires that the inviter knows the Matrix
    /// identifier of the invitee. The other is documented in the*
    /// `third party invites 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 user was invited to the room, the homeserver will append a
    /// ``m.room.member`` event to the room.
    /// 
    /// .. _third party invites section: `invite-by-third-party-id-endpoint`_
    class InviteUserJob : 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 userId
             *   The fully qualified user ID of the invitee.
             */
            explicit InviteUserJob(const QString& roomId, const QString& userId);
    };
} // namespace QMatrixClient
