// SPDX-License-Identifier: GPL-3.0-or-later

// This file is auto-generated by scripts/generate_nymea_api.py
// Any changes made here will be lost when the files are regenerated.
// Do not edit manually.

#pragma once

#include "apiutils.h"
#include "cachehash.h"
#include "experience.h"

namespace nymea::api {

class JSONRPCHelloResponse {
public:
    // wire: 'authenticationRequired' (field)
    bool authenticationRequired{};
    // wire: 'initialSetupRequired' (field)
    bool initialSetupRequired{};
    // wire: 'language' (field)
    QString language{};
    // wire: 'locale' (field)
    QString locale{};
    // wire: 'name' (field)
    QString name{};
    // wire: 'authenticated' (optional)
    std::optional<bool> authenticated;
    // wire: 'cacheHashes' (optional)
    std::optional<QList<CacheHash>> cacheHashes;
    // wire: 'experiences' (optional)
    std::optional<QList<Experience>> experiences;
    // wire: 'permissionScopes' (optional)
    std::optional<PermissionScopes> permissionScopes;
    // wire: 'username' (optional)
    std::optional<QString> username;
    // wire: 'protocol version' (field)
    QString protocolVersion{};
    // wire: 'pushButtonAuthAvailable' (field)
    bool pushButtonAuthAvailable{};
    // wire: 'server' (field)
    QString server{};
    // wire: 'uuid' (field)
    QUuid uuid{};
    // wire: 'version' (field)
    QString version{};

    static JSONRPCHelloResponse fromJson(const QJsonObject &object);
    QJsonObject toJson() const;
};

} // namespace nymea::api
