1/******************************************************************************
2 * THIS FILE IS GENERATED - ANY EDITS WILL BE OVERWRITTEN
3 */
4
5#pragma once
6
7#include <Quotient/csapi/definitions/openid_token.h>
8
9#include <Quotient/jobs/basejob.h>
10
11namespace Quotient {
12
13/*! \brief Get an OpenID token object to verify the requester's identity.
14 *
15 * Gets an OpenID token object that the requester may supply to another
16 * service to verify their identity in Matrix. The generated token is only
17 * valid for exchanging for user information from the federation API for
18 * OpenID.
19 *
20 * The access token generated is only valid for the OpenID API. It cannot
21 * be used to request another OpenID access token or call `/sync`, for
22 * example.
23 */
24class QUOTIENT_API RequestOpenIdTokenJob : public BaseJob {
25public:
26 /*! \brief Get an OpenID token object to verify the requester's identity.
27 *
28 * \param userId
29 * The user to request an OpenID token for. Should be the user who
30 * is authenticated for the request.
31 *
32 * \param body
33 * An empty object. Reserved for future expansion.
34 */
35 explicit RequestOpenIdTokenJob(const QString& userId,
36 const QJsonObject& body = {});
37
38 // Result properties
39
40 /// OpenID token information. This response is nearly compatible with the
41 /// response documented in the
42 /// [OpenID Connect 1.0
43 /// Specification](http://openid.net/specs/openid-connect-core-1_0.html#TokenResponse)
44 /// with the only difference being the lack of an `id_token`. Instead,
45 /// the Matrix homeserver's name is provided.
46 OpenIdCredentials tokenData() const
47 {
48 return fromJson<OpenIdCredentials>(json: jsonData());
49 }
50};
51
52} // namespace Quotient
53