ImagingTools Core SDK
COperation.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/CSecurityScheme.h>
14#include <imtoas/CParameter.h>
15#include <imtoas/CRequestBody.h>
16#include <imtoas/CResponse.h>
17#include <imtoas/CServer.h>
18
19
20namespace imtoas
21{
22
23
24class COperation
25{
26public:
27 COperation();
28
29 [[nodiscard]] QList<QString> GetTags() const;
30 void SetTags(const QList<QString>& tags);
31
32 [[nodiscard]] QString GetSummary() const;
33 void SetSummary(const QString& summary);
34
35 [[nodiscard]] QString GetDescription() const;
36 void SetDescription(const QString& description);
37
38 [[nodiscard]] QString GetOperationId() const;
39 void SetOperationId(const QString& operationId);
40
41 [[nodiscard]] QList<CParameter> GetParameters() const;
42 void SetParameters(const QList<CParameter>& parameters);
43
44 [[nodiscard]] CRequestBody GetRequestBody() const;
45 void SetRequestBody(const CRequestBody& requestBody);
46
47 [[nodiscard]] QList<CResponse> GetResponses() const;
48 void SetResponses(const QList<CResponse>& responses);
49
50 [[nodiscard]] bool IsDeprecated() const;
51 void SetDeprecated(bool deprecated = true);
52
53 [[nodiscard]] QList<CSecurityScheme> GetSecurity() const;
54 void SetSecurity(const QList<CSecurityScheme>& security);
55
56 [[nodiscard]] QList<CServer> GetServers() const;
57 void SetServers(const QList<CServer>& servers);
58
59 [[nodiscard]] static bool ReadFromJsonObject(COperation& object, const QJsonObject& jsonObject, const QJsonObject& globalObject);
60
61 bool operator==(const COperation& other) const;
62 bool operator!=(const COperation& other) const { return !(operator==(other)); }
63
64private:
65 QList<QString> m_tags;
66 QString m_summary;
67 QString m_description;
68 QString m_operationId;
69 QList<CParameter> m_parameters;
70 CRequestBody m_requestBody;
71 QList<CResponse> m_responses;
72 bool m_isDeprecated;
73 QList<CSecurityScheme> m_security;
74 QList<CServer> m_servers;
75};
76
77
78} // namespace imtoas
79
80
81Q_DECLARE_METATYPE(imtoas::COperation);
82
83