/**
 * SDRangel
 * This is the web REST/JSON API of SDRangel SDR software. SDRangel is an Open Source Qt5/OpenGL 3.0+ (4.3+ in Windows) GUI and server Software Defined Radio and signal analyzer in software. It supports Airspy, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 and FunCube    ---   Limitations and specifcities:    * In SDRangel GUI the first Rx device set cannot be deleted. Conversely the server starts with no device sets and its number of device sets can be reduced to zero by as many calls as necessary to /sdrangel/deviceset with DELETE method.   * Preset import and export from/to file is a server only feature.   * Device set focus is a GUI only feature.   * The following channels are not implemented (status 501 is returned): ATV and DATV demodulators, Channel Analyzer NG, LoRa demodulator   * The device settings and report structures contains only the sub-structure corresponding to the device type. The DeviceSettings and DeviceReport structures documented here shows all of them but only one will be or should be present at a time   * The channel settings and report structures contains only the sub-structure corresponding to the channel type. The ChannelSettings and ChannelReport structures documented here shows all of them but only one will be or should be present at a time    --- 
 *
 * OpenAPI spec version: 7.0.0
 * Contact: f4exb06@gmail.com
 *
 * NOTE: This class is auto generated by the swagger code generator program.
 * https://github.com/swagger-api/swagger-codegen.git
 * Do not edit the class manually.
 */

#ifndef _SWG_SWGDeviceSetApi_H_
#define _SWG_SWGDeviceSetApi_H_

#include "SWGHttpRequest.h"

#include "SWGChannelActions.h"
#include "SWGChannelReport.h"
#include "SWGChannelSettings.h"
#include "SWGChannelsDetail.h"
#include "SWGDeviceActions.h"
#include "SWGDeviceListItem.h"
#include "SWGDeviceReport.h"
#include "SWGDeviceSet.h"
#include "SWGDeviceSettings.h"
#include "SWGDeviceState.h"
#include "SWGErrorResponse.h"
#include "SWGGLSpectrum.h"
#include "SWGSpectrumServer.h"
#include "SWGSuccessResponse.h"
#include "SWGWorkspaceInfo.h"

#include <QObject>

namespace SWGSDRangel {

class SWGDeviceSetApi: public QObject {
    Q_OBJECT

public:
    SWGDeviceSetApi();
    SWGDeviceSetApi(QString host, QString basePath);
    ~SWGDeviceSetApi();

    QString host;
    QString basePath;
    QMap<QString, QString> defaultHeaders;

    void devicesetChannelActionsPost(qint32 device_set_index, qint32 channel_index, SWGChannelActions& body);
    void devicesetChannelDelete(qint32 device_set_index, qint32 channel_index);
    void devicesetChannelPost(qint32 device_set_index, SWGChannelSettings& body);
    void devicesetChannelReportGet(qint32 device_set_index, qint32 channel_index);
    void devicesetChannelSettingsGet(qint32 device_set_index, qint32 channel_index);
    void devicesetChannelSettingsPatch(qint32 device_set_index, qint32 channel_index, SWGChannelSettings& body);
    void devicesetChannelSettingsPut(qint32 device_set_index, qint32 channel_index, SWGChannelSettings& body);
    void devicesetChannelWorkspaceGet(qint32 device_set_index, qint32 channel_index);
    void devicesetChannelWorkspacePut(qint32 device_set_index, qint32 channel_index, SWGWorkspaceInfo& body);
    void devicesetChannelsReportGet(qint32 device_set_index);
    void devicesetDeviceActionsPost(qint32 device_set_index, SWGDeviceActions& body);
    void devicesetDevicePut(qint32 device_set_index, SWGDeviceListItem& body);
    void devicesetDeviceReportGet(qint32 device_set_index);
    void devicesetDeviceRunDelete(qint32 device_set_index, SWGDeviceSettings& body);
    void devicesetDeviceRunGet(qint32 device_set_index);
    void devicesetDeviceRunPost(qint32 device_set_index, SWGDeviceSettings& body);
    void devicesetDeviceSettingsGet(qint32 device_set_index);
    void devicesetDeviceSettingsPatch(qint32 device_set_index, SWGDeviceSettings& body);
    void devicesetDeviceSettingsPut(qint32 device_set_index, SWGDeviceSettings& body);
    void devicesetDeviceSubsystemRunDelete(qint32 device_set_index, qint32 subsystem_index, SWGDeviceSettings& body);
    void devicesetDeviceSubsystemRunGet(qint32 device_set_index, qint32 subsystem_index);
    void devicesetDeviceSubsystemRunPost(qint32 device_set_index, qint32 subsystem_index, SWGDeviceSettings& body);
    void devicesetDeviceWorkspaceGet(qint32 device_set_index);
    void devicesetDeviceWorkspacePut(qint32 device_set_index, SWGWorkspaceInfo& body);
    void devicesetGet(qint32 device_set_index);
    void devicesetSpectrumServerDelete(qint32 device_set_index);
    void devicesetSpectrumServerGet(qint32 device_set_index);
    void devicesetSpectrumServerPost(qint32 device_set_index);
    void devicesetSpectrumSettingsGet(qint32 device_set_index);
    void devicesetSpectrumSettingsPatch(qint32 device_set_index, SWGGLSpectrum& body);
    void devicesetSpectrumSettingsPut(qint32 device_set_index, SWGGLSpectrum& body);
    void devicesetSpectrumWorkspaceGet(qint32 device_set_index);
    void devicesetSpectrumWorkspacePut(qint32 device_set_index, SWGWorkspaceInfo& body);
    void instanceDeviceSetDelete();
    void instanceDeviceSetPost(qint32 direction);
    
private:
    void devicesetChannelActionsPostCallback (SWGHttpRequestWorker * worker);
    void devicesetChannelDeleteCallback (SWGHttpRequestWorker * worker);
    void devicesetChannelPostCallback (SWGHttpRequestWorker * worker);
    void devicesetChannelReportGetCallback (SWGHttpRequestWorker * worker);
    void devicesetChannelSettingsGetCallback (SWGHttpRequestWorker * worker);
    void devicesetChannelSettingsPatchCallback (SWGHttpRequestWorker * worker);
    void devicesetChannelSettingsPutCallback (SWGHttpRequestWorker * worker);
    void devicesetChannelWorkspaceGetCallback (SWGHttpRequestWorker * worker);
    void devicesetChannelWorkspacePutCallback (SWGHttpRequestWorker * worker);
    void devicesetChannelsReportGetCallback (SWGHttpRequestWorker * worker);
    void devicesetDeviceActionsPostCallback (SWGHttpRequestWorker * worker);
    void devicesetDevicePutCallback (SWGHttpRequestWorker * worker);
    void devicesetDeviceReportGetCallback (SWGHttpRequestWorker * worker);
    void devicesetDeviceRunDeleteCallback (SWGHttpRequestWorker * worker);
    void devicesetDeviceRunGetCallback (SWGHttpRequestWorker * worker);
    void devicesetDeviceRunPostCallback (SWGHttpRequestWorker * worker);
    void devicesetDeviceSettingsGetCallback (SWGHttpRequestWorker * worker);
    void devicesetDeviceSettingsPatchCallback (SWGHttpRequestWorker * worker);
    void devicesetDeviceSettingsPutCallback (SWGHttpRequestWorker * worker);
    void devicesetDeviceSubsystemRunDeleteCallback (SWGHttpRequestWorker * worker);
    void devicesetDeviceSubsystemRunGetCallback (SWGHttpRequestWorker * worker);
    void devicesetDeviceSubsystemRunPostCallback (SWGHttpRequestWorker * worker);
    void devicesetDeviceWorkspaceGetCallback (SWGHttpRequestWorker * worker);
    void devicesetDeviceWorkspacePutCallback (SWGHttpRequestWorker * worker);
    void devicesetGetCallback (SWGHttpRequestWorker * worker);
    void devicesetSpectrumServerDeleteCallback (SWGHttpRequestWorker * worker);
    void devicesetSpectrumServerGetCallback (SWGHttpRequestWorker * worker);
    void devicesetSpectrumServerPostCallback (SWGHttpRequestWorker * worker);
    void devicesetSpectrumSettingsGetCallback (SWGHttpRequestWorker * worker);
    void devicesetSpectrumSettingsPatchCallback (SWGHttpRequestWorker * worker);
    void devicesetSpectrumSettingsPutCallback (SWGHttpRequestWorker * worker);
    void devicesetSpectrumWorkspaceGetCallback (SWGHttpRequestWorker * worker);
    void devicesetSpectrumWorkspacePutCallback (SWGHttpRequestWorker * worker);
    void instanceDeviceSetDeleteCallback (SWGHttpRequestWorker * worker);
    void instanceDeviceSetPostCallback (SWGHttpRequestWorker * worker);
    
signals:
    void devicesetChannelActionsPostSignal(SWGSuccessResponse* summary);
    void devicesetChannelDeleteSignal(SWGChannelSettings* summary);
    void devicesetChannelPostSignal(SWGSuccessResponse* summary);
    void devicesetChannelReportGetSignal(SWGChannelReport* summary);
    void devicesetChannelSettingsGetSignal(SWGChannelSettings* summary);
    void devicesetChannelSettingsPatchSignal(SWGChannelSettings* summary);
    void devicesetChannelSettingsPutSignal(SWGChannelSettings* summary);
    void devicesetChannelWorkspaceGetSignal(SWGWorkspaceInfo* summary);
    void devicesetChannelWorkspacePutSignal(SWGSuccessResponse* summary);
    void devicesetChannelsReportGetSignal(SWGChannelsDetail* summary);
    void devicesetDeviceActionsPostSignal(SWGSuccessResponse* summary);
    void devicesetDevicePutSignal(SWGDeviceListItem* summary);
    void devicesetDeviceReportGetSignal(SWGDeviceReport* summary);
    void devicesetDeviceRunDeleteSignal(SWGDeviceState* summary);
    void devicesetDeviceRunGetSignal(SWGDeviceState* summary);
    void devicesetDeviceRunPostSignal(SWGDeviceState* summary);
    void devicesetDeviceSettingsGetSignal(SWGDeviceSettings* summary);
    void devicesetDeviceSettingsPatchSignal(SWGDeviceSettings* summary);
    void devicesetDeviceSettingsPutSignal(SWGDeviceSettings* summary);
    void devicesetDeviceSubsystemRunDeleteSignal(SWGDeviceState* summary);
    void devicesetDeviceSubsystemRunGetSignal(SWGDeviceState* summary);
    void devicesetDeviceSubsystemRunPostSignal(SWGDeviceState* summary);
    void devicesetDeviceWorkspaceGetSignal(SWGWorkspaceInfo* summary);
    void devicesetDeviceWorkspacePutSignal(SWGSuccessResponse* summary);
    void devicesetGetSignal(SWGDeviceSet* summary);
    void devicesetSpectrumServerDeleteSignal(SWGSuccessResponse* summary);
    void devicesetSpectrumServerGetSignal(SWGSpectrumServer* summary);
    void devicesetSpectrumServerPostSignal(SWGSuccessResponse* summary);
    void devicesetSpectrumSettingsGetSignal(SWGGLSpectrum* summary);
    void devicesetSpectrumSettingsPatchSignal(SWGGLSpectrum* summary);
    void devicesetSpectrumSettingsPutSignal(SWGGLSpectrum* summary);
    void devicesetSpectrumWorkspaceGetSignal(SWGWorkspaceInfo* summary);
    void devicesetSpectrumWorkspacePutSignal(SWGSuccessResponse* summary);
    void instanceDeviceSetDeleteSignal(SWGSuccessResponse* summary);
    void instanceDeviceSetPostSignal(SWGSuccessResponse* summary);
    
    void devicesetChannelActionsPostSignalE(SWGSuccessResponse* summary, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetChannelDeleteSignalE(SWGChannelSettings* summary, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetChannelPostSignalE(SWGSuccessResponse* summary, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetChannelReportGetSignalE(SWGChannelReport* summary, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetChannelSettingsGetSignalE(SWGChannelSettings* summary, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetChannelSettingsPatchSignalE(SWGChannelSettings* summary, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetChannelSettingsPutSignalE(SWGChannelSettings* summary, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetChannelWorkspaceGetSignalE(SWGWorkspaceInfo* summary, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetChannelWorkspacePutSignalE(SWGSuccessResponse* summary, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetChannelsReportGetSignalE(SWGChannelsDetail* summary, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetDeviceActionsPostSignalE(SWGSuccessResponse* summary, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetDevicePutSignalE(SWGDeviceListItem* summary, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetDeviceReportGetSignalE(SWGDeviceReport* summary, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetDeviceRunDeleteSignalE(SWGDeviceState* summary, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetDeviceRunGetSignalE(SWGDeviceState* summary, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetDeviceRunPostSignalE(SWGDeviceState* summary, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetDeviceSettingsGetSignalE(SWGDeviceSettings* summary, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetDeviceSettingsPatchSignalE(SWGDeviceSettings* summary, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetDeviceSettingsPutSignalE(SWGDeviceSettings* summary, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetDeviceSubsystemRunDeleteSignalE(SWGDeviceState* summary, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetDeviceSubsystemRunGetSignalE(SWGDeviceState* summary, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetDeviceSubsystemRunPostSignalE(SWGDeviceState* summary, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetDeviceWorkspaceGetSignalE(SWGWorkspaceInfo* summary, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetDeviceWorkspacePutSignalE(SWGSuccessResponse* summary, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetGetSignalE(SWGDeviceSet* summary, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetSpectrumServerDeleteSignalE(SWGSuccessResponse* summary, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetSpectrumServerGetSignalE(SWGSpectrumServer* summary, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetSpectrumServerPostSignalE(SWGSuccessResponse* summary, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetSpectrumSettingsGetSignalE(SWGGLSpectrum* summary, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetSpectrumSettingsPatchSignalE(SWGGLSpectrum* summary, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetSpectrumSettingsPutSignalE(SWGGLSpectrum* summary, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetSpectrumWorkspaceGetSignalE(SWGWorkspaceInfo* summary, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetSpectrumWorkspacePutSignalE(SWGSuccessResponse* summary, QNetworkReply::NetworkError error_type, QString& error_str);
    void instanceDeviceSetDeleteSignalE(SWGSuccessResponse* summary, QNetworkReply::NetworkError error_type, QString& error_str);
    void instanceDeviceSetPostSignalE(SWGSuccessResponse* summary, QNetworkReply::NetworkError error_type, QString& error_str);
    
    void devicesetChannelActionsPostSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetChannelDeleteSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetChannelPostSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetChannelReportGetSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetChannelSettingsGetSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetChannelSettingsPatchSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetChannelSettingsPutSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetChannelWorkspaceGetSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetChannelWorkspacePutSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetChannelsReportGetSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetDeviceActionsPostSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetDevicePutSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetDeviceReportGetSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetDeviceRunDeleteSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetDeviceRunGetSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetDeviceRunPostSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetDeviceSettingsGetSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetDeviceSettingsPatchSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetDeviceSettingsPutSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetDeviceSubsystemRunDeleteSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetDeviceSubsystemRunGetSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetDeviceSubsystemRunPostSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetDeviceWorkspaceGetSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetDeviceWorkspacePutSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetGetSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetSpectrumServerDeleteSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetSpectrumServerGetSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetSpectrumServerPostSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetSpectrumSettingsGetSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetSpectrumSettingsPatchSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetSpectrumSettingsPutSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetSpectrumWorkspaceGetSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
    void devicesetSpectrumWorkspacePutSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
    void instanceDeviceSetDeleteSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
    void instanceDeviceSetPostSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
    
};

}
#endif
