/****************************************************************************** * THIS FILE IS GENERATED - ANY EDITS WILL BE OVERWRITTEN */ #pragma once #include "converters.h" #include "csapi/../application-service/definitions/location.h" #include "csapi/../application-service/definitions/protocol.h" #include "csapi/../application-service/definitions/user.h" #include "jobs/basejob.h" #include #include namespace QMatrixClient { // Operations /// Retrieve metadata about all protocols that a homeserver supports. /*! * Fetches the overall metadata about protocols supported by the * homeserver. Includes both the available protocols and all fields * required for queries against each protocol. */ class GetProtocolsJob : public BaseJob { public: explicit GetProtocolsJob(); /*! Construct a URL without creating a full-fledged job object * * This function can be used when a URL for * GetProtocolsJob is necessary but the job * itself isn't. */ static QUrl makeRequestUrl(QUrl baseUrl); ~GetProtocolsJob() override; // Result properties /// The protocols supported by the homeserver. const QHash& data() const; protected: Status parseJson(const QJsonDocument& data) override; private: class Private; QScopedPointer d; }; /// Retrieve metadata about a specific protocol that the homeserver supports. /*! * Fetches the metadata from the homeserver about a particular third party * protocol. */ class GetProtocolMetadataJob : public BaseJob { public: /*! Retrieve metadata about a specific protocol that the homeserver * supports. \param protocol The name of the protocol. */ explicit GetProtocolMetadataJob(const QString& protocol); /*! Construct a URL without creating a full-fledged job object * * This function can be used when a URL for * GetProtocolMetadataJob is necessary but the job * itself isn't. */ static QUrl makeRequestUrl(QUrl baseUrl, const QString& protocol); ~GetProtocolMetadataJob() override; // Result properties /// The protocol was found and metadata returned. const ThirdPartyProtocol& data() const; protected: Status parseJson(const QJsonDocument& data) override; private: class Private; QScopedPointer d; }; /// Retrieve Matrix-side portals rooms leading to a third party location. /*! * Requesting this endpoint with a valid protocol name results in a list * of successful mapping results in a JSON array. Each result contains * objects to represent the Matrix room or rooms that represent a portal * to this third party network. Each has the Matrix room alias string, * an identifier for the particular third party network protocol, and an * object containing the network-specific fields that comprise this * identifier. It should attempt to canonicalise the identifier as much * as reasonably possible given the network type. */ class QueryLocationByProtocolJob : public BaseJob { public: /*! Retrieve Matrix-side portals rooms leading to a third party location. * \param protocol * The protocol used to communicate to the third party network. * \param searchFields * One or more custom fields to help identify the third party * location. */ explicit QueryLocationByProtocolJob(const QString& protocol, const QString& searchFields = {}); /*! Construct a URL without creating a full-fledged job object * * This function can be used when a URL for * QueryLocationByProtocolJob is necessary but the job * itself isn't. */ static QUrl makeRequestUrl(QUrl baseUrl, const QString& protocol, const QString& searchFields = {}); ~QueryLocationByProtocolJob() override; // Result properties /// At least one portal room was found. const QVector& data() const; protected: Status parseJson(const QJsonDocument& data) override; private: class Private; QScopedPointer d; }; /// Retrieve the Matrix User ID of a corresponding third party user. /*! * Retrieve a Matrix User ID linked to a user on the third party service, given * a set of user parameters. */ class QueryUserByProtocolJob : public BaseJob { public: /*! Retrieve the Matrix User ID of a corresponding third party user. * \param protocol * The name of the protocol. * \param fields * One or more custom fields that are passed to the AS to help identify * the user. */ explicit QueryUserByProtocolJob(const QString& protocol, const QString& fields = {}); /*! Construct a URL without creating a full-fledged job object * * This function can be used when a URL for * QueryUserByProtocolJob is necessary but the job * itself isn't. */ static QUrl makeRequestUrl(QUrl baseUrl, const QString& protocol, const QString& fields = {}); ~QueryUserByProtocolJob() override; // Result properties /// The Matrix User IDs found with the given parameters. const QVector& data() const; protected: Status parseJson(const QJsonDocument& data) override; private: class Private; QScopedPointer d; }; /// Reverse-lookup third party locations given a Matrix room alias. /*! * Retrieve an array of third party network locations from a Matrix room * alias. */ class QueryLocationByAliasJob : public BaseJob { public: /*! Reverse-lookup third party locations given a Matrix room alias. * \param alias * The Matrix room alias to look up. */ explicit QueryLocationByAliasJob(const QString& alias); /*! Construct a URL without creating a full-fledged job object * * This function can be used when a URL for * QueryLocationByAliasJob is necessary but the job * itself isn't. */ static QUrl makeRequestUrl(QUrl baseUrl, const QString& alias); ~QueryLocationByAliasJob() override; // Result properties /// All found third party locations. const QVector& data() const; protected: Status parseJson(const QJsonDocument& data) override; private: class Private; QScopedPointer d; }; /// Reverse-lookup third party users given a Matrix User ID. /*! * Retrieve an array of third party users from a Matrix User ID. */ class QueryUserByIDJob : public BaseJob { public: /*! Reverse-lookup third party users given a Matrix User ID. * \param userid * The Matrix User ID to look up. */ explicit QueryUserByIDJob(const QString& userid); /*! Construct a URL without creating a full-fledged job object * * This function can be used when a URL for * QueryUserByIDJob is necessary but the job * itself isn't. */ static QUrl makeRequestUrl(QUrl baseUrl, const QString& userid); ~QueryUserByIDJob() override; // Result properties /// An array of third party users. const QVector& data() const; protected: Status parseJson(const QJsonDocument& data) override; private: class Private; QScopedPointer d; }; } // namespace QMatrixClient