import { AbstractService, extendServiceContainer } from '@iotize/tap';
import { TapRequestFrame } from '@iotize/tap/client/api';
import { createEnumConverter, createEnumArrayConverter, converters } from '@iotize/tap/service/core';

/* eslint-disable */
/**
 * This file was automatically generated by json-schema-to-typescript.
 * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
 * and run json-schema-to-typescript to regenerate this file.
 */
var WifiMode;
(function (WifiMode) {
    WifiMode[WifiMode["PEER_TO_PEER"] = 0] = "PEER_TO_PEER";
    WifiMode[WifiMode["NETWORK"] = 1] = "NETWORK";
})(WifiMode || (WifiMode = {}));
/* eslint-disable */
/**
 * This file was automatically generated by json-schema-to-typescript.
 * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
 * and run json-schema-to-typescript to regenerate this file.
 */
var WifiProtocol;
(function (WifiProtocol) {
    WifiProtocol[WifiProtocol["B"] = 1] = "B";
    WifiProtocol[WifiProtocol["G"] = 2] = "G";
    WifiProtocol[WifiProtocol["N"] = 4] = "N";
})(WifiProtocol || (WifiProtocol = {}));
/* eslint-disable */
/**
 * This file was automatically generated by json-schema-to-typescript.
 * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
 * and run json-schema-to-typescript to regenerate this file.
 */
var WifiSSIDVisibility;
(function (WifiSSIDVisibility) {
    WifiSSIDVisibility[WifiSSIDVisibility["VISIBLE"] = 0] = "VISIBLE";
    WifiSSIDVisibility[WifiSSIDVisibility["HIDDEN_FROM_SCAN"] = 1] = "HIDDEN_FROM_SCAN";
    WifiSSIDVisibility[WifiSSIDVisibility["HIDDEN"] = 2] = "HIDDEN";
})(WifiSSIDVisibility || (WifiSSIDVisibility = {}));
/* eslint-disable */
/**
 * This file was automatically generated by json-schema-to-typescript.
 * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
 * and run json-schema-to-typescript to regenerate this file.
 */
var WifiKeyVisibility;
(function (WifiKeyVisibility) {
    WifiKeyVisibility[WifiKeyVisibility["VISIBLE"] = 0] = "VISIBLE";
    WifiKeyVisibility[WifiKeyVisibility["HIDDEN"] = 1] = "HIDDEN";
})(WifiKeyVisibility || (WifiKeyVisibility = {}));

/**
 *   Generated file. Do not edit
 */
const wifiMode = createEnumConverter(WifiMode, 1);
const wifiModeArray = createEnumArrayConverter(WifiMode, 1);
const wifiProtocol = createEnumConverter(WifiProtocol, 1);
const wifiProtocolArray = createEnumArrayConverter(WifiProtocol, 1);
const wifiSSIDVisibility = createEnumConverter(WifiSSIDVisibility, 1);
const wifiSSIDVisibilityArray = createEnumArrayConverter(WifiSSIDVisibility, 1);
const wifiKeyVisibility = createEnumConverter(WifiKeyVisibility, 1);
const wifiKeyVisibilityArray = createEnumArrayConverter(WifiKeyVisibility, 1);

var serviceConverters = /*#__PURE__*/Object.freeze({
    __proto__: null,
    wifiMode: wifiMode,
    wifiModeArray: wifiModeArray,
    wifiProtocol: wifiProtocol,
    wifiProtocolArray: wifiProtocolArray,
    wifiSSIDVisibility: wifiSSIDVisibility,
    wifiSSIDVisibilityArray: wifiSSIDVisibilityArray,
    wifiKeyVisibility: wifiKeyVisibility,
    wifiKeyVisibilityArray: wifiKeyVisibilityArray
});

/**
 *   Generated file. Do not edit
 */
const allConverters = Object.assign(Object.assign({}, converters), serviceConverters);
const SERVICE_CALLS = {
    getMode: {
        method: TapRequestFrame.MethodType.GET,
        pathAlias: '/wifi/mode',
        path: '/1024//15',
        responseBodyDecoder: allConverters.wifiMode,
    },
    putMode: {
        method: TapRequestFrame.MethodType.PUT,
        pathAlias: '/wifi/mode',
        path: '/1024//15',
        bodyEncoder: allConverters.wifiMode,
    },
    getKey: {
        method: TapRequestFrame.MethodType.GET,
        pathAlias: '/wifi/key',
        path: '/1024//16',
        responseBodyDecoder: allConverters.ascii,
    },
    putKey: {
        method: TapRequestFrame.MethodType.PUT,
        pathAlias: '/wifi/key',
        path: '/1024//16',
        bodyEncoder: allConverters.ascii,
    },
    getHostname: {
        method: TapRequestFrame.MethodType.GET,
        pathAlias: '/wifi/hostname',
        path: '/1024//35',
        responseBodyDecoder: allConverters.ascii,
    },
    getIp: {
        method: TapRequestFrame.MethodType.GET,
        pathAlias: '/wifi/ip',
        path: '/1024//30',
        responseBodyDecoder: allConverters.stringIpv4,
    },
    putIp: {
        method: TapRequestFrame.MethodType.PUT,
        pathAlias: '/wifi/ip',
        path: '/1024//30',
        bodyEncoder: allConverters.stringIpv4,
    },
    getGatewayIp: {
        method: TapRequestFrame.MethodType.GET,
        pathAlias: '/wifi/gateway-ip',
        path: '/1024//31',
        responseBodyDecoder: allConverters.stringIpv4,
    },
    putGatewayIp: {
        method: TapRequestFrame.MethodType.PUT,
        pathAlias: '/wifi/gateway-ip',
        path: '/1024//31',
        bodyEncoder: allConverters.stringIpv4,
    },
    getIpMask: {
        method: TapRequestFrame.MethodType.GET,
        pathAlias: '/wifi/ip-mask',
        path: '/1024//32',
        responseBodyDecoder: allConverters.stringIpv4mask,
    },
    putIpMask: {
        method: TapRequestFrame.MethodType.PUT,
        pathAlias: '/wifi/ip-mask',
        path: '/1024//32',
        bodyEncoder: allConverters.stringIpv4mask,
    },
    getDnsIp: {
        method: TapRequestFrame.MethodType.GET,
        pathAlias: '/wifi/dns-ip',
        path: '/1024//124',
        responseBodyDecoder: allConverters.stringIpv4,
    },
    putDnsIp: {
        method: TapRequestFrame.MethodType.PUT,
        pathAlias: '/wifi/dns-ip',
        path: '/1024//124',
        bodyEncoder: allConverters.stringIpv4,
    },
    getSSID: {
        method: TapRequestFrame.MethodType.GET,
        pathAlias: '/wifi/ssid',
        path: '/1024//25',
        responseBodyDecoder: allConverters.ascii,
    },
    putSSID: {
        method: TapRequestFrame.MethodType.PUT,
        pathAlias: '/wifi/ssid',
        path: '/1024//25',
        bodyEncoder: allConverters.ascii,
    },
    getCountryCode: {
        method: TapRequestFrame.MethodType.GET,
        pathAlias: '/wifi/country-code',
        path: '/1024//95',
        responseBodyDecoder: allConverters.uint16,
    },
    putCountryCode: {
        method: TapRequestFrame.MethodType.PUT,
        pathAlias: '/wifi/country-code',
        path: '/1024//95',
        bodyEncoder: allConverters.uint16,
    },
    getProtocol: {
        method: TapRequestFrame.MethodType.GET,
        pathAlias: '/wifi/protocol',
        path: '/1024//96',
        responseBodyDecoder: allConverters.wifiProtocol,
    },
    putProtocol: {
        method: TapRequestFrame.MethodType.PUT,
        pathAlias: '/wifi/protocol',
        path: '/1024//96',
        bodyEncoder: allConverters.wifiProtocolArray,
    },
    getTxPower: {
        method: TapRequestFrame.MethodType.GET,
        pathAlias: '/wifi/tx-power',
        path: '/1024//97',
        responseBodyDecoder: allConverters.int8,
    },
    putTxPower: {
        method: TapRequestFrame.MethodType.PUT,
        pathAlias: '/wifi/tx-power',
        path: '/1024//97',
        bodyEncoder: allConverters.int8,
    },
    getSSIDVisibility: {
        method: TapRequestFrame.MethodType.GET,
        pathAlias: '/wifi/ssid-visibility',
        path: '/1024//98',
        responseBodyDecoder: allConverters.wifiSSIDVisibility,
    },
    putSSIDVisibility: {
        method: TapRequestFrame.MethodType.PUT,
        pathAlias: '/wifi/ssid-visibility',
        path: '/1024//98',
        bodyEncoder: allConverters.wifiSSIDVisibility,
    },
    getKeyVisibility: {
        method: TapRequestFrame.MethodType.GET,
        pathAlias: '/wifi/key-visibility',
        path: '/1024//99',
        responseBodyDecoder: allConverters.wifiKeyVisibility,
    },
    putKeyVisibility: {
        method: TapRequestFrame.MethodType.PUT,
        pathAlias: '/wifi/key-visibility',
        path: '/1024//99',
        bodyEncoder: allConverters.wifiKeyVisibility,
    },
    getNetworkMode: {
        method: TapRequestFrame.MethodType.GET,
        pathAlias: '/wifi/network-mode',
        path: '/1024//128',
        responseBodyDecoder: allConverters.wifiMode,
    },
    putNetworkMode: {
        method: TapRequestFrame.MethodType.PUT,
        pathAlias: '/wifi/network-mode',
        path: '/1024//128',
        bodyEncoder: allConverters.wifiMode,
    },
    getDisabled: {
        method: TapRequestFrame.MethodType.GET,
        pathAlias: '/wifi/disabled',
        path: '/1024//129',
        responseBodyDecoder: allConverters.boolean,
    },
    putDisabled: {
        method: TapRequestFrame.MethodType.PUT,
        pathAlias: '/wifi/disabled',
        path: '/1024//129',
        bodyEncoder: allConverters.boolean,
    },
};

class WifiService extends AbstractService {
    constructor() {
        super(...arguments);
        this.resources = SERVICE_CALLS;
    }
    /**
     * Get Wi-Fi mode
     *
     * LWM2M path: /1024//15
     *
     * @tapVersion(">=1.0")
     * @return
     */
    getMode() {
        return this.serviceCallRunner.execute(this.getModeCall());
    }
    /**
     *
     *
     * LWM2M path: /1024//15
     *
     * @tapVersion(">=1.0")
     * @return call options
     */
    getModeCall() {
        const callOptions = Object.assign({}, this.resources.getMode);
        return callOptions;
    }
    /**
     * Write Wi-Fi mode
     *
     * LWM2M path: /1024//15
     *
     * @tapVersion(">=1.0")
     * @param mode input
     * @return
     */
    putMode(
    /*
     *
     */
    mode) {
        return this.serviceCallRunner.execute(this.putModeCall(mode));
    }
    /**
     *
     *
     * LWM2M path: /1024//15
     *
     * @tapVersion(">=1.0")
     * @param mode input
     * @return call options
     */
    putModeCall(
    /*
     *
     */
    mode) {
        const callOptions = Object.assign({}, this.resources.putMode);
        callOptions.body = mode;
        return callOptions;
    }
    /**
     * Get Wi-Fi key
     *
     * LWM2M path: /1024//16
     *
     * @tapVersion(">=1.0")
     * @return
     */
    getKey() {
        return this.serviceCallRunner.execute(this.getKeyCall());
    }
    /**
     *
     *
     * LWM2M path: /1024//16
     *
     * @tapVersion(">=1.0")
     * @return call options
     */
    getKeyCall() {
        const callOptions = Object.assign({}, this.resources.getKey);
        return callOptions;
    }
    /**
     * Write network key
     *
     * LWM2M path: /1024//16
     *
     * @tapVersion(">=1.0")
     * @param key input
     * @return
     */
    putKey(
    /*
     *
     */
    key) {
        return this.serviceCallRunner.execute(this.putKeyCall(key));
    }
    /**
     *
     *
     * LWM2M path: /1024//16
     *
     * @tapVersion(">=1.0")
     * @param key input
     * @return call options
     */
    putKeyCall(
    /*
     *
     */
    key) {
        const callOptions = Object.assign({}, this.resources.putKey);
        callOptions.body = key;
        return callOptions;
    }
    /**
     * Get Wi-Fi hostname
     *
     * LWM2M path: /1024//35
     *
     * @tapVersion(">=1.0")
     * @return
     */
    getHostname() {
        return this.serviceCallRunner.execute(this.getHostnameCall());
    }
    /**
     *
     *
     * LWM2M path: /1024//35
     *
     * @tapVersion(">=1.0")
     * @return call options
     */
    getHostnameCall() {
        const callOptions = Object.assign({}, this.resources.getHostname);
        return callOptions;
    }
    /**
     * Get IoTize device ip on the network
     *
     * LWM2M path: /1024//30
     *
     * @tapVersion(">=1.0")
     * @return
     */
    getIp() {
        return this.serviceCallRunner.execute(this.getIpCall());
    }
    /**
     *
     *
     * LWM2M path: /1024//30
     *
     * @tapVersion(">=1.0")
     * @return call options
     */
    getIpCall() {
        const callOptions = Object.assign({}, this.resources.getIp);
        return callOptions;
    }
    /**
     * Write Tap IP
     *
     * LWM2M path: /1024//30
     *
     * @tapVersion(">=1.0")
     * @param key input
     * @return
     */
    putIp(
    /*
     *
     */
    key) {
        return this.serviceCallRunner.execute(this.putIpCall(key));
    }
    /**
     *
     *
     * LWM2M path: /1024//30
     *
     * @tapVersion(">=1.0")
     * @param key input
     * @return call options
     */
    putIpCall(
    /*
     *
     */
    key) {
        const callOptions = Object.assign({}, this.resources.putIp);
        callOptions.body = key;
        return callOptions;
    }
    /**
     * Get gateway ip on the network
     *
     * LWM2M path: /1024//31
     *
     * @tapVersion(">=1.0")
     * @return
     */
    getGatewayIp() {
        return this.serviceCallRunner.execute(this.getGatewayIpCall());
    }
    /**
     *
     *
     * LWM2M path: /1024//31
     *
     * @tapVersion(">=1.0")
     * @return call options
     */
    getGatewayIpCall() {
        const callOptions = Object.assign({}, this.resources.getGatewayIp);
        return callOptions;
    }
    /**
     * Write gateway ip
     *
     * LWM2M path: /1024//31
     *
     * @tapVersion(">=1.0")
     * @param key input
     * @return
     */
    putGatewayIp(
    /*
     *
     */
    key) {
        return this.serviceCallRunner.execute(this.putGatewayIpCall(key));
    }
    /**
     *
     *
     * LWM2M path: /1024//31
     *
     * @tapVersion(">=1.0")
     * @param key input
     * @return call options
     */
    putGatewayIpCall(
    /*
     *
     */
    key) {
        const callOptions = Object.assign({}, this.resources.putGatewayIp);
        callOptions.body = key;
        return callOptions;
    }
    /**
     * Get network ip mask
     *
     * LWM2M path: /1024//32
     *
     * @tapVersion(">=1.0")
     * @return
     */
    getIpMask() {
        return this.serviceCallRunner.execute(this.getIpMaskCall());
    }
    /**
     *
     *
     * LWM2M path: /1024//32
     *
     * @tapVersion(">=1.0")
     * @return call options
     */
    getIpMaskCall() {
        const callOptions = Object.assign({}, this.resources.getIpMask);
        return callOptions;
    }
    /**
     * Write network ip mask
     *
     * LWM2M path: /1024//32
     *
     * @tapVersion(">=1.0")
     * @param key input
     * @return
     */
    putIpMask(
    /*
     *
     */
    key) {
        return this.serviceCallRunner.execute(this.putIpMaskCall(key));
    }
    /**
     *
     *
     * LWM2M path: /1024//32
     *
     * @tapVersion(">=1.0")
     * @param key input
     * @return call options
     */
    putIpMaskCall(
    /*
     *
     */
    key) {
        const callOptions = Object.assign({}, this.resources.putIpMask);
        callOptions.body = key;
        return callOptions;
    }
    /**
     * Get network dns ip
     *
     * LWM2M path: /1024//124
     *
     * @tapVersion(">=1.0")
     * @return
     */
    getDnsIp() {
        return this.serviceCallRunner.execute(this.getDnsIpCall());
    }
    /**
     *
     *
     * LWM2M path: /1024//124
     *
     * @tapVersion(">=1.0")
     * @return call options
     */
    getDnsIpCall() {
        const callOptions = Object.assign({}, this.resources.getDnsIp);
        return callOptions;
    }
    /**
     * Write network dns ip
     *
     * LWM2M path: /1024//124
     *
     * @tapVersion(">=1.0")
     * @param key input
     * @return
     */
    putDnsIp(
    /*
     *
     */
    key) {
        return this.serviceCallRunner.execute(this.putDnsIpCall(key));
    }
    /**
     *
     *
     * LWM2M path: /1024//124
     *
     * @tapVersion(">=1.0")
     * @param key input
     * @return call options
     */
    putDnsIpCall(
    /*
     *
     */
    key) {
        const callOptions = Object.assign({}, this.resources.putDnsIp);
        callOptions.body = key;
        return callOptions;
    }
    /**
     * Get Wi-Fi ssid
     *
     * LWM2M path: /1024//25
     *
     * @tapVersion(">=1.0")
     * @return
     */
    getSSID() {
        return this.serviceCallRunner.execute(this.getSSIDCall());
    }
    /**
     *
     *
     * LWM2M path: /1024//25
     *
     * @tapVersion(">=1.0")
     * @return call options
     */
    getSSIDCall() {
        const callOptions = Object.assign({}, this.resources.getSSID);
        return callOptions;
    }
    /**
     * Write Wi-Fi ssid
     *
     * LWM2M path: /1024//25
     *
     * @tapVersion(">=1.0")
     * @param key input
     * @return
     */
    putSSID(
    /*
     *
     */
    key) {
        return this.serviceCallRunner.execute(this.putSSIDCall(key));
    }
    /**
     *
     *
     * LWM2M path: /1024//25
     *
     * @tapVersion(">=1.0")
     * @param key input
     * @return call options
     */
    putSSIDCall(
    /*
     *
     */
    key) {
        const callOptions = Object.assign({}, this.resources.putSSID);
        callOptions.body = key;
        return callOptions;
    }
    /**
     * Get Wi-Fi country code
     *
     * LWM2M path: /1024//95
     *
     * @tapVersion(">=1.88")
     * @return
     */
    getCountryCode() {
        return this.serviceCallRunner.execute(this.getCountryCodeCall());
    }
    /**
     *
     *
     * LWM2M path: /1024//95
     *
     * @tapVersion(">=1.88")
     * @return call options
     */
    getCountryCodeCall() {
        const callOptions = Object.assign({}, this.resources.getCountryCode);
        return callOptions;
    }
    /**
     * Write Wi-Fi country code
     *
     * LWM2M path: /1024//95
     *
     * @tapVersion(">=1.88")
     * @param countryCode input
     * @return
     */
    putCountryCode(
    /*
     * ISO 3166 codes
     */
    countryCode) {
        return this.serviceCallRunner.execute(this.putCountryCodeCall(countryCode));
    }
    /**
     *
     *
     * LWM2M path: /1024//95
     *
     * @tapVersion(">=1.88")
     * @param countryCode input
     * @return call options
     */
    putCountryCodeCall(
    /*
     * ISO 3166 codes
     */
    countryCode) {
        const callOptions = Object.assign({}, this.resources.putCountryCode);
        callOptions.body = countryCode;
        return callOptions;
    }
    /**
     * Get Wi-Fi protocol
     *
     * LWM2M path: /1024//96
     *
     * @tapVersion(">=1.88")
     * @return
     */
    getProtocol() {
        return this.serviceCallRunner.execute(this.getProtocolCall());
    }
    /**
     *
     *
     * LWM2M path: /1024//96
     *
     * @tapVersion(">=1.88")
     * @return call options
     */
    getProtocolCall() {
        const callOptions = Object.assign({}, this.resources.getProtocol);
        return callOptions;
    }
    /**
     * Write Wi-Fi protocol
     *
     * LWM2M path: /1024//96
     *
     * @tapVersion(">=1.88")
     * @param protocol input
     * @return
     */
    putProtocol(
    /*
     *
     */
    protocol) {
        return this.serviceCallRunner.execute(this.putProtocolCall(protocol));
    }
    /**
     *
     *
     * LWM2M path: /1024//96
     *
     * @tapVersion(">=1.88")
     * @param protocol input
     * @return call options
     */
    putProtocolCall(
    /*
     *
     */
    protocol) {
        const callOptions = Object.assign({}, this.resources.putProtocol);
        callOptions.body = protocol;
        return callOptions;
    }
    /**
     * Get Wi-Fi TX max power
     *
     * LWM2M path: /1024//97
     *
     * @tapVersion(">=1.88")
     * @return
     */
    getTxPower() {
        return this.serviceCallRunner.execute(this.getTxPowerCall());
    }
    /**
     *
     *
     * LWM2M path: /1024//97
     *
     * @tapVersion(">=1.88")
     * @return call options
     */
    getTxPowerCall() {
        const callOptions = Object.assign({}, this.resources.getTxPower);
        return callOptions;
    }
    /**
     * Write Wi-Fi TX max power
     *
     * LWM2M path: /1024//97
     *
     * @tapVersion(">=1.88")
     * @param maxPower input
     * @return
     */
    putTxPower(
    /*
     *
     */
    maxPower) {
        return this.serviceCallRunner.execute(this.putTxPowerCall(maxPower));
    }
    /**
     *
     *
     * LWM2M path: /1024//97
     *
     * @tapVersion(">=1.88")
     * @param maxPower input
     * @return call options
     */
    putTxPowerCall(
    /*
     *
     */
    maxPower) {
        const callOptions = Object.assign({}, this.resources.putTxPower);
        callOptions.body = maxPower;
        return callOptions;
    }
    /**
     * Get Wi-Fi SSID visibility
     *
     * LWM2M path: /1024//98
     *
     * @tapVersion(">=1.88")
     * @return
     */
    getSSIDVisibility() {
        return this.serviceCallRunner.execute(this.getSSIDVisibilityCall());
    }
    /**
     *
     *
     * LWM2M path: /1024//98
     *
     * @tapVersion(">=1.88")
     * @return call options
     */
    getSSIDVisibilityCall() {
        const callOptions = Object.assign({}, this.resources.getSSIDVisibility);
        return callOptions;
    }
    /**
     * Write Wi-Fi SSID visibility
     *
     * LWM2M path: /1024//98
     *
     * @tapVersion(">=1.88")
     * @param visibility input
     * @return
     */
    putSSIDVisibility(
    /*
     *
     */
    visibility) {
        return this.serviceCallRunner.execute(this.putSSIDVisibilityCall(visibility));
    }
    /**
     *
     *
     * LWM2M path: /1024//98
     *
     * @tapVersion(">=1.88")
     * @param visibility input
     * @return call options
     */
    putSSIDVisibilityCall(
    /*
     *
     */
    visibility) {
        const callOptions = Object.assign({}, this.resources.putSSIDVisibility);
        callOptions.body = visibility;
        return callOptions;
    }
    /**
     * Get Wi-Fi key visibility
     *
     * LWM2M path: /1024//99
     *
     * @tapVersion(">=1.88")
     * @return
     */
    getKeyVisibility() {
        return this.serviceCallRunner.execute(this.getKeyVisibilityCall());
    }
    /**
     *
     *
     * LWM2M path: /1024//99
     *
     * @tapVersion(">=1.88")
     * @return call options
     */
    getKeyVisibilityCall() {
        const callOptions = Object.assign({}, this.resources.getKeyVisibility);
        return callOptions;
    }
    /**
     * Write Wi-Fi key visibility
     *
     * LWM2M path: /1024//99
     *
     * @tapVersion(">=1.88")
     * @param visibility input
     * @return
     */
    putKeyVisibility(
    /*
     *
     */
    visibility) {
        return this.serviceCallRunner.execute(this.putKeyVisibilityCall(visibility));
    }
    /**
     *
     *
     * LWM2M path: /1024//99
     *
     * @tapVersion(">=1.88")
     * @param visibility input
     * @return call options
     */
    putKeyVisibilityCall(
    /*
     *
     */
    visibility) {
        const callOptions = Object.assign({}, this.resources.putKeyVisibility);
        callOptions.body = visibility;
        return callOptions;
    }
    /**
     * Get Wi-Fi network mode
     *
     * LWM2M path: /1024//128
     *
     * @tapVersion(">=2.13")
     * @return
     */
    getNetworkMode() {
        return this.serviceCallRunner.execute(this.getNetworkModeCall());
    }
    /**
     *
     *
     * LWM2M path: /1024//128
     *
     * @tapVersion(">=2.13")
     * @return call options
     */
    getNetworkModeCall() {
        const callOptions = Object.assign({}, this.resources.getNetworkMode);
        return callOptions;
    }
    /**
     * Write Wi-Fi network mode
     *
     * LWM2M path: /1024//128
     *
     * @tapVersion(">=2.13")
     * @param mode input
     * @return
     */
    putNetworkMode(
    /*
     *
     */
    mode) {
        return this.serviceCallRunner.execute(this.putNetworkModeCall(mode));
    }
    /**
     *
     *
     * LWM2M path: /1024//128
     *
     * @tapVersion(">=2.13")
     * @param mode input
     * @return call options
     */
    putNetworkModeCall(
    /*
     *
     */
    mode) {
        const callOptions = Object.assign({}, this.resources.putNetworkMode);
        callOptions.body = mode;
        return callOptions;
    }
    /**
     * Get Wi-Fi disable status
     *
     * LWM2M path: /1024//129
     *
     * @tapVersion(">=2.13")
     * @return
     */
    getDisabled() {
        return this.serviceCallRunner.execute(this.getDisabledCall());
    }
    /**
     *
     *
     * LWM2M path: /1024//129
     *
     * @tapVersion(">=2.13")
     * @return call options
     */
    getDisabledCall() {
        const callOptions = Object.assign({}, this.resources.getDisabled);
        return callOptions;
    }
    /**
     * Write Wi-Fi disable status
     *
     * LWM2M path: /1024//129
     *
     * @tapVersion(">=2.13")
     * @param isDisabled input
     * @return
     */
    putDisabled(
    /*
     * true to disabled wifi
     */
    isDisabled) {
        return this.serviceCallRunner.execute(this.putDisabledCall(isDisabled));
    }
    /**
     *
     *
     * LWM2M path: /1024//129
     *
     * @tapVersion(">=2.13")
     * @param isDisabled input
     * @return call options
     */
    putDisabledCall(
    /*
     * true to disabled wifi
     */
    isDisabled) {
        const callOptions = Object.assign({}, this.resources.putDisabled);
        callOptions.body = isDisabled;
        return callOptions;
    }
}

const _TAP_SERVICE_EXTENSION_WIFI_ = extendServiceContainer('wifi', WifiService);

/**
 *   Generated file. Do not edit
 */

/**
 *   Generated file. Do not edit
 */

/**
 *   Generated file. Do not edit
 */
const ResourceMetaData = {
    '/wifi/mode': {
        put: {
            minApiVersion: 1.0,
            configModeRequired: false,
            schema: {
                $ref: './definitions.yaml#/WifiMode',
            },
        },
    },
    '/wifi/key': {
        put: {
            minApiVersion: 1.0,
            configModeRequired: false,
            schema: {
                type: 'string',
                minLength: 8,
                maxLength: 64,
            },
        },
    },
    '/wifi/ip': {
        put: {
            minApiVersion: 1.0,
            configModeRequired: false,
            schema: {
                type: 'string',
                format: 'ipv4',
                pattern: '^(?:[0-9]{1,3}\\.){3}[0-9]{1,3}$',
            },
        },
    },
    '/wifi/gateway-ip': {
        put: {
            minApiVersion: 1.0,
            configModeRequired: false,
            schema: {
                type: 'string',
                format: 'ipv4',
            },
        },
    },
    '/wifi/ip-mask': {
        put: {
            minApiVersion: 1.0,
            configModeRequired: false,
            schema: {
                type: 'string',
                format: 'ipv4mask',
            },
        },
    },
    '/wifi/dns-ip': {
        put: {
            minApiVersion: 1.0,
            configModeRequired: false,
            schema: {
                type: 'string',
                format: 'ipv4',
            },
        },
    },
    '/wifi/ssid': {
        put: {
            minApiVersion: 1.0,
            configModeRequired: false,
            schema: {
                type: 'string',
                maxLength: 32,
                minLength: 1,
                pattern: '^[^ !#;+\\]\\/"\\t][^+\\]\\/"\\t]{0,30}[^ !#;+\\]\\/"\\t]$|^[^ !#;+\\]\\/"\\t]$',
            },
        },
    },
    '/wifi/country-code': {
        put: {
            minApiVersion: 1.88,
            configModeRequired: false,
            schema: {
                type: 'integer',
                format: 'uint16',
            },
        },
    },
    '/wifi/protocol': {
        put: {
            minApiVersion: 1.88,
            configModeRequired: false,
            schema: {
                type: 'array',
                items: {
                    $ref: './definitions.yaml#/WifiProtocol',
                },
            },
        },
    },
    '/wifi/tx-power': {
        put: {
            minApiVersion: 1.88,
            configModeRequired: false,
            schema: {
                type: 'integer',
                format: 'int8',
            },
        },
    },
    '/wifi/ssid-visibility': {
        put: {
            minApiVersion: 1.88,
            configModeRequired: false,
            schema: {
                $ref: './definitions.yaml#/WifiSSIDVisibility',
            },
        },
    },
    '/wifi/key-visibility': {
        put: {
            minApiVersion: 1.88,
            configModeRequired: false,
            schema: {
                $ref: './definitions.yaml#/WifiKeyVisibility',
            },
        },
    },
    '/wifi/network-mode': {
        put: {
            minApiVersion: 2.13,
            configModeRequired: false,
            schema: {
                $ref: './definitions.yaml#/WifiMode',
            },
        },
    },
    '/wifi/disabled': {
        put: {
            minApiVersion: 2.13,
            configModeRequired: false,
            schema: {
                type: 'boolean',
            },
        },
    },
};

// import './lib/custom/extension';

/**
 * Generated bundle index. Do not edit.
 */

export { SERVICE_CALLS as WIFI_SERVICE_CALLS, WifiKeyVisibility, WifiMode, WifiProtocol, ResourceMetaData as WifiResourceMetaData, WifiSSIDVisibility, WifiService, _TAP_SERVICE_EXTENSION_WIFI_, serviceConverters as wifiConverters };
//# sourceMappingURL=iotize-tap-service-impl-wifi.js.map
