1 | /****************************************************************************** |
2 | * THIS FILE IS GENERATED - ANY EDITS WILL BE OVERWRITTEN |
3 | */ |
4 | |
5 | #pragma once |
6 | |
7 | #include <Quotient/csapi/definitions/auth_data.h> |
8 | #include <Quotient/csapi/definitions/cross_signing_key.h> |
9 | |
10 | #include <Quotient/jobs/basejob.h> |
11 | |
12 | namespace Quotient { |
13 | |
14 | /*! \brief Upload cross-signing keys. |
15 | * |
16 | * Publishes cross-signing keys for the user. |
17 | * |
18 | * This API endpoint uses the [User-Interactive Authentication |
19 | * API](/client-server-api/#user-interactive-authentication-api). |
20 | */ |
21 | class QUOTIENT_API UploadCrossSigningKeysJob : public BaseJob { |
22 | public: |
23 | /*! \brief Upload cross-signing keys. |
24 | * |
25 | * \param masterKey |
26 | * Optional. The user\'s master key. |
27 | * |
28 | * \param selfSigningKey |
29 | * Optional. The user\'s self-signing key. Must be signed by |
30 | * the accompanying master key, or by the user\'s most recently |
31 | * uploaded master key if no master key is included in the |
32 | * request. |
33 | * |
34 | * \param userSigningKey |
35 | * Optional. The user\'s user-signing key. Must be signed by |
36 | * the accompanying master key, or by the user\'s most recently |
37 | * uploaded master key if no master key is included in the |
38 | * request. |
39 | * |
40 | * \param auth |
41 | * Additional authentication information for the |
42 | * user-interactive authentication API. |
43 | */ |
44 | explicit UploadCrossSigningKeysJob( |
45 | const Omittable<CrossSigningKey>& masterKey = none, |
46 | const Omittable<CrossSigningKey>& selfSigningKey = none, |
47 | const Omittable<CrossSigningKey>& userSigningKey = none, |
48 | const Omittable<AuthenticationData>& auth = none); |
49 | }; |
50 | |
51 | /*! \brief Upload cross-signing signatures. |
52 | * |
53 | * Publishes cross-signing signatures for the user. |
54 | * |
55 | * The request body is a map from user ID to key ID to signed JSON object. |
56 | * The signed JSON object must match the key previously uploaded or |
57 | * retrieved for the given key ID, with the exception of the `signatures` |
58 | * property, which contains the new signature(s) to add. |
59 | */ |
60 | class QUOTIENT_API UploadCrossSigningSignaturesJob : public BaseJob { |
61 | public: |
62 | /*! \brief Upload cross-signing signatures. |
63 | * |
64 | * \param signatures |
65 | * A map from user ID to key ID to signed JSON objects containing the |
66 | * signatures to be published. |
67 | */ |
68 | explicit UploadCrossSigningSignaturesJob( |
69 | const QHash<QString, QHash<QString, QJsonObject>>& signatures); |
70 | |
71 | // Result properties |
72 | |
73 | /// A map from user ID to key ID to an error for any signatures |
74 | /// that failed. If a signature was invalid, the `errcode` will |
75 | /// be set to `M_INVALID_SIGNATURE`. |
76 | QHash<QString, QHash<QString, QJsonObject>> failures() const |
77 | { |
78 | return loadFromJson<QHash<QString, QHash<QString, QJsonObject>>>( |
79 | keyName: "failures"_ls ); |
80 | } |
81 | }; |
82 | |
83 | } // namespace Quotient |
84 | |