ImagingTools Core SDK
CSecurityScheme.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4
5// Qt includes
6#include <QtCore/QJsonObject>
7#include <QtCore/QJsonArray>
8#include <QtCore/QJsonValue>
9#include <QtCore/QString>
10
11// ACF includes
12#include <istd/istd.h>
13
14
15namespace imtoas
16{
17
18
19class CSecurityScheme
20{
21public:
22 enum Type
23 {
24 T_API_KEY,
25 T_HTTP,
26 T_MUTUAL_TLS,
27 T_OAUTH2,
28 T_OPEN_ID_CONNECT
29 };
30 I_DECLARE_ENUM(Type,
31 T_API_KEY,
32 T_HTTP,
33 T_MUTUAL_TLS,
34 T_OAUTH2,
35 T_OPEN_ID_CONNECT)
36
37 CSecurityScheme();
38
39 [[nodiscard]] Type GetType() const;
40 void SetType(Type type);
41
42 [[nodiscard]] QString GetDescription() const;
43 void SetDescription(const QString& description);
44
45 [[nodiscard]] QString GetName() const;
46 void SetName(const QString& name);
47
48 [[nodiscard]] QString GetIn() const;
49 void SetIn(const QString& in);
50
51 [[nodiscard]] QString GetScheme() const;
52 void SetScheme(const QString& scheme);
53
54 [[nodiscard]] QString GetOpenIdConnectUrl() const;
55 void SetOpenIdConnectUrl(const QString& openIdConnectUrl);
56
57 [[nodiscard]] static bool ReadFromJsonObject(CSecurityScheme& object, const QJsonObject& jsonObject, const QJsonObject& globalObject);
58
59 bool operator==(const CSecurityScheme& other) const;
60 bool operator!=(const CSecurityScheme& other) const { return !(operator==(other)); }
61
62 [[nodiscard]] QString GetId() const;
63 void SetId(const QString& id);
64
65private:
66 QString m_id;
67 Type m_type;
68 QString m_description;
69 QString m_name;
70 QString m_in;
71 QString m_scheme;
72 QString m_openIdConnectUrl;
73
74};
75
76
77} // namespace imtoas
78
79
80Q_DECLARE_METATYPE(imtoas::CSecurityScheme);
81
82