"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var service_1 = require("./service");
/**
 * TODO Generate this class
 */
var IoTizeDeviceService = /** @class */ (function () {
    function IoTizeDeviceService(_bundle, _device, _datalog, _scram, _firmware, _group, _interface, _target, _variable, _singlePacket, _adp, _lora) {
        this._bundle = _bundle;
        this._device = _device;
        this._datalog = _datalog;
        this._scram = _scram;
        this._firmware = _firmware;
        this._group = _group;
        this._interface = _interface;
        this._target = _target;
        this._variable = _variable;
        this._singlePacket = _singlePacket;
        this._adp = _adp;
        this._lora = _lora;
    }
    IoTizeDeviceService.create = function (client, apiConfig) {
        var instance = new IoTizeDeviceService(new service_1.BundleService(client, apiConfig), new service_1.DeviceService(client, apiConfig), new service_1.DataLogService(client, apiConfig), new service_1.ScramService(client, apiConfig), new service_1.FirmwareService(client, apiConfig), new service_1.GroupService(client, apiConfig), new service_1.InterfaceService(client, apiConfig), new service_1.TargetService(client, apiConfig), new service_1.VariableService(client, apiConfig), new service_1.SinglePacketService(client, apiConfig), new service_1.AdpService(client, apiConfig), new service_1.LoraService(client, apiConfig));
        return instance;
    };
    Object.defineProperty(IoTizeDeviceService.prototype, "device", {
        get: function () {
            return this._device;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IoTizeDeviceService.prototype, "bundle", {
        get: function () {
            return this._bundle;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IoTizeDeviceService.prototype, "datalog", {
        get: function () {
            return this._datalog;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IoTizeDeviceService.prototype, "firmware", {
        get: function () {
            return this._firmware;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IoTizeDeviceService.prototype, "group", {
        get: function () {
            return this._group;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IoTizeDeviceService.prototype, "interface", {
        get: function () {
            return this._interface;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IoTizeDeviceService.prototype, "target", {
        // get secureElement(){
        //     return this._secureElement;
        // }
        get: function () {
            return this._target;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IoTizeDeviceService.prototype, "variable", {
        get: function () {
            return this._variable;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IoTizeDeviceService.prototype, "scram", {
        get: function () {
            return this._scram;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IoTizeDeviceService.prototype, "singlePacket", {
        get: function () {
            return this._singlePacket;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IoTizeDeviceService.prototype, "lora", {
        get: function () {
            return this._lora;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IoTizeDeviceService.prototype, "adp", {
        get: function () {
            return this._adp;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IoTizeDeviceService.prototype, "client", {
        set: function (client) {
            this._device.client = client;
            this._bundle.client = client;
            this._datalog.client = client;
            this._firmware.client = client;
            this._group.client = client;
            this._interface.client = client;
            // this._secureElement.client = client;
            this._target.client = client;
            this._variable.client = client;
            this._scram.client = client;
            this._singlePacket.client = client;
            this._lora.client = client;
            this._adp.client = client;
        },
        enumerable: true,
        configurable: true
    });
    return IoTizeDeviceService;
}());
exports.IoTizeDeviceService = IoTizeDeviceService;
