// 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"

namespace nymea::api {

class StateDescriptor {
public:
    // wire: 'interface' (optional)
    std::optional<QString> interface;
    // wire: 'interfaceState' (optional)
    std::optional<QString> interfaceState;
    // wire: 'stateTypeId' (optional)
    std::optional<QUuid> stateTypeId;
    // wire: 'thingId' (optional)
    std::optional<QUuid> thingId;
    // wire: 'value' (optional)
    std::optional<QJsonValue> value;
    // wire: 'valueStateTypeId' (optional)
    std::optional<QUuid> valueStateTypeId;
    // wire: 'valueThingId' (optional)
    std::optional<QUuid> valueThingId;
    // wire: 'operator' (field)
    ValueOperator operatorValue{};

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

} // namespace nymea::api
