ImagingTools Core SDK
COpenApiSchema.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#include <QtCore/QList>
11
12// ImtCore includes
13#include <imtoas/CInfo.h>
14#include <imtoas/CSecurity.h>
15#include <imtoas/CPath.h>
16#include <imtoas/CComponents.h>
17#include <imtoas/CServer.h>
18
19
20namespace imtoas
21{
22
23
24class COpenApiSchema
25{
26public:
27 [[nodiscard]] QString GetOpenapi() const;
28 void SetOpenapi(const QString& openapi);
29
30 [[nodiscard]] CInfo GetInfo() const;
31 void SetInfo(const CInfo& info);
32
33 [[nodiscard]] QString GetJsonSchemaDialect() const;
34 void SetJsonSchemaDialect(const QString& jsonSchemaDialect);
35
36 [[nodiscard]] QList<CServer> GetServers() const;
37 void SetServers(const QList<CServer>& servers);
38
39 [[nodiscard]] QList<CPath> GetPaths() const;
40 void SetPaths(const QList<CPath>& paths);
41
42 [[nodiscard]] CComponents GetComponents() const;
43 void SetComponents(const CComponents& components);
44
45 [[nodiscard]] CSecurity GetSecurity() const;
46 void SetSecurity(const CSecurity& security);
47
48 [[nodiscard]] static bool ReadFromJsonObject(COpenApiSchema& object, const QJsonObject& jsonObject, const QJsonObject& globalObject);
49
50 bool operator==(const COpenApiSchema& other) const;
51 bool operator!=(const COpenApiSchema& other) const { return !(operator==(other)); }
52
53private:
54 QString m_openapi;
55 CInfo m_info;
56 QString m_jsonSchemaDialect;
57 QList<CServer> m_servers;
58 QList<CPath> m_paths;
59 CComponents m_components;
60 CSecurity m_security;
61};
62
63
64} // namespace imtoas
65
66
67Q_DECLARE_METATYPE(imtoas::COpenApiSchema);
68
69