@iotize/tap
Version:
IoTize Device client for Javascript
582 lines • 57.2 kB
JavaScript
/**
* Generated file. Do not edit
*/
import { CloudPlatform, LowPowerOptimizationLevel, TargetProtocol, NfcConnectionPriority, WifiKeyVisibility, WifiMode, WifiSSIDVisibility, HostProtocol, WifiProtocol, } from '@iotize/tap/service/all';
import { isTapFirmwareVersionGreaterThanOrEqual, isTapFirmwareVersionLessThanOrEqual, enumKeyToEnumValue, enumKeysToEnumValues, configValueToBytes, } from '../util';
import { ConfigKeyNotSupportedByFirmwareVersion } from '../errors';
const ɵ0 = (context) => {
return context.service.interface.putApplicationDataCall(configValueToBytes(context.value));
}, ɵ1 = (context) => {
return context.service.interface.putAppNameCall(context.value);
}, ɵ2 = (context) => {
if (context.firmwareVersion) {
if (!isTapFirmwareVersionGreaterThanOrEqual(context.firmwareVersion, '1.113')) {
return new ConfigKeyNotSupportedByFirmwareVersion('application.productCode', context.firmwareVersion, {
minApiVersion: '1.113',
maxApiVersion: undefined,
});
}
}
return context.service.interface.putProductCodeCall(context.value);
}, ɵ3 = (context) => {
return context.service.interface.putUniversalLinkCall(context.value);
}, ɵ4 = (context) => {
return context.service.interface.putAppPathCall(context.value);
}, ɵ5 = (context) => {
return context.service.cloud.putDataLogPublishTopicCall(context.value);
}, ɵ6 = (context) => {
return context.service.cloud.putDataLogSubscribeTopicCall(context.value);
}, ɵ7 = (context) => {
return context.service.cloud.putDataLogUploadPeriodCall(context.value);
}, ɵ8 = (context) => {
if (context.firmwareVersion) {
if (!isTapFirmwareVersionLessThanOrEqual(context.firmwareVersion, '1.103')) {
return new ConfigKeyNotSupportedByFirmwareVersion('cloud.mqtt.brokerPort', context.firmwareVersion, {
minApiVersion: undefined,
maxApiVersion: '1.103',
});
}
}
return context.service.cloud.putMqttBrokerPortCall(context.value);
}, ɵ9 = (context) => {
if (context.firmwareVersion) {
if (!isTapFirmwareVersionLessThanOrEqual(context.firmwareVersion, '1.103')) {
return new ConfigKeyNotSupportedByFirmwareVersion('cloud.mqtt.clientId', context.firmwareVersion, {
minApiVersion: undefined,
maxApiVersion: '1.103',
});
}
}
return context.service.cloud.putMqttClientIdCall(context.value);
}, ɵ10 = (context) => {
if (context.firmwareVersion) {
if (!isTapFirmwareVersionLessThanOrEqual(context.firmwareVersion, '1.103')) {
return new ConfigKeyNotSupportedByFirmwareVersion('cloud.mqtt.password', context.firmwareVersion, {
minApiVersion: undefined,
maxApiVersion: '1.103',
});
}
}
return context.service.cloud.putMqttPasswordCall(context.value);
}, ɵ11 = (context) => {
if (context.firmwareVersion) {
if (!isTapFirmwareVersionLessThanOrEqual(context.firmwareVersion, '1.103')) {
return new ConfigKeyNotSupportedByFirmwareVersion('cloud.mqtt.username', context.firmwareVersion, {
minApiVersion: undefined,
maxApiVersion: '1.103',
});
}
}
return context.service.cloud.putMqttUsernameCall(context.value);
}, ɵ12 = (context) => {
return context.service.cloud.putPlatformCall(enumKeyToEnumValue(context.value, CloudPlatform));
}, ɵ13 = (context) => {
return context.service.interface.putConfigFormatVersionCall(context.value);
}, ɵ14 = (context) => {
return context.service.bundle.createCall(context.param);
}, ɵ15 = (context) => {
return context.service.bundle.putAclCall(context.param, context.value);
}, ɵ16 = (context) => {
return context.service.bundle.putDataLogCryptoGroupIdCall(context.param, context.value);
}, ɵ17 = (context) => {
return context.service.bundle.putDataLogPeriodCall(context.param, context.value);
}, ɵ18 = (context) => {
return context.service.bundle.putNameCall(context.param, context.value);
}, ɵ19 = (context) => {
if (context.firmwareVersion) {
if (!isTapFirmwareVersionGreaterThanOrEqual(context.firmwareVersion, '1.23')) {
return new ConfigKeyNotSupportedByFirmwareVersion('data.features[].bundleId', context.firmwareVersion, {
minApiVersion: '1.23',
maxApiVersion: undefined,
});
}
}
return context.service.interface.setSpecialFeatureProfileCall(context.param, context.value);
}, ɵ20 = (context) => {
return context.service.group.createCall(context.param);
}, ɵ21 = (context) => {
return context.service.group.putAliasCall(context.param, context.value);
}, ɵ22 = (context) => {
return context.service.group.changePasswordKeyCall(context.param, configValueToBytes(context.value));
}, ɵ23 = (context) => {
return context.service.group.putSessionLifetimeCall(context.param, context.value);
}, ɵ24 = (context) => {
return context.service.group.changePasswordCall(context.param, context.value);
}, ɵ25 = (context) => {
return context.service.group.putNameCall(context.param, context.value);
}, ɵ26 = (context) => {
return context.service.variable.createCall(context.param, context.value);
}, ɵ27 = (context) => {
return context.service.variable.putVariableAddressCall(context.param, context.value);
}, ɵ28 = (context) => {
return context.service.variable.putBundleIdCall(context.param, context.value);
}, ɵ29 = (context) => {
return context.service.variable.putNumberOfElementsCall(context.param, context.value);
}, ɵ30 = (context) => {
if (context.firmwareVersion) {
if (!isTapFirmwareVersionGreaterThanOrEqual(context.firmwareVersion, '1.73')) {
return new ConfigKeyNotSupportedByFirmwareVersion('data.variables[].meta', context.firmwareVersion, {
minApiVersion: '1.73',
maxApiVersion: undefined,
});
}
}
return context.service.variable.putMetaCall(context.param, context.value);
}, ɵ31 = (context) => {
return context.service.variable.putModbusVariableAddressCall(context.param, context.value);
}, ɵ32 = (context) => {
if (context.firmwareVersion) {
if (!isTapFirmwareVersionGreaterThanOrEqual(context.firmwareVersion, '1.73')) {
return new ConfigKeyNotSupportedByFirmwareVersion('data.variables[].rawMeta', context.firmwareVersion, {
minApiVersion: '1.73',
maxApiVersion: undefined,
});
}
}
return context.service.variable.putRawMetaCall(context.param, configValueToBytes(context.value));
}, ɵ33 = (context) => {
return context.service.variable.putTypeCall(context.param, context.value);
}, ɵ34 = (context) => {
return context.service.variable.setValueCall(context.param, configValueToBytes(context.value));
}, ɵ35 = (context) => {
if (context.firmwareVersion) {
if (!isTapFirmwareVersionGreaterThanOrEqual(context.firmwareVersion, '1.90')) {
return new ConfigKeyNotSupportedByFirmwareVersion('jvm.code', context.firmwareVersion, {
minApiVersion: '1.90',
maxApiVersion: undefined,
});
}
}
return context.service.jvm.appendCodeAppendCalls(configValueToBytes(context.value));
}, ɵ36 = (context) => {
if (context.firmwareVersion) {
if (!isTapFirmwareVersionGreaterThanOrEqual(context.firmwareVersion, '1.90')) {
return new ConfigKeyNotSupportedByFirmwareVersion('jvm.codeSize', context.firmwareVersion, {
minApiVersion: '1.90',
maxApiVersion: undefined,
});
}
}
return context.service.jvm.putCodeSizeCall(context.value);
}, ɵ37 = (context) => {
return context.service.jvm.putProfileIdCall(context.value);
}, ɵ38 = (context) => {
if (context.firmwareVersion) {
if (!isTapFirmwareVersionGreaterThanOrEqual(context.firmwareVersion, '2.7')) {
return new ConfigKeyNotSupportedByFirmwareVersion('ports.ethernet.gatewayIp', context.firmwareVersion, {
minApiVersion: '2.7',
maxApiVersion: undefined,
});
}
}
return context.service.ethernet.putGatewayIpCall(context.value);
}, ɵ39 = (context) => {
if (context.firmwareVersion) {
if (!isTapFirmwareVersionGreaterThanOrEqual(context.firmwareVersion, '2.7')) {
return new ConfigKeyNotSupportedByFirmwareVersion('ports.ethernet.ip', context.firmwareVersion, {
minApiVersion: '2.7',
maxApiVersion: undefined,
});
}
}
return context.service.ethernet.putIpCall(context.value);
}, ɵ40 = (context) => {
if (context.firmwareVersion) {
if (!isTapFirmwareVersionGreaterThanOrEqual(context.firmwareVersion, '2.7')) {
return new ConfigKeyNotSupportedByFirmwareVersion('ports.ethernet.ipMask', context.firmwareVersion, {
minApiVersion: '2.7',
maxApiVersion: undefined,
});
}
}
return context.service.ethernet.putIpMaskCall(context.value);
}, ɵ41 = (context) => {
if (context.firmwareVersion) {
if (!isTapFirmwareVersionGreaterThanOrEqual(context.firmwareVersion, '2.11')) {
return new ConfigKeyNotSupportedByFirmwareVersion('tap.autoRebootTimeout', context.firmwareVersion, {
minApiVersion: '2.11',
maxApiVersion: undefined,
});
}
}
return context.service.interface.putAutoRebootTimeoutCall(context.value);
}, ɵ42 = (context) => {
if (context.firmwareVersion) {
if (!isTapFirmwareVersionGreaterThanOrEqual(context.firmwareVersion, '1.86')) {
return new ConfigKeyNotSupportedByFirmwareVersion('tap.certificate.privateKey', context.firmwareVersion, {
minApiVersion: '1.86',
maxApiVersion: undefined,
});
}
}
return context.service.interface.putCertificatePrivateKeyAppendCalls(configValueToBytes(context.value));
}, ɵ43 = (context) => {
if (context.firmwareVersion) {
if (!isTapFirmwareVersionGreaterThanOrEqual(context.firmwareVersion, '1.86')) {
return new ConfigKeyNotSupportedByFirmwareVersion('tap.certificate.publicKey', context.firmwareVersion, {
minApiVersion: '1.86',
maxApiVersion: undefined,
});
}
}
return context.service.interface.putCertificatePublicKeyAppendCalls(configValueToBytes(context.value));
}, ɵ44 = (context) => {
if (context.firmwareVersion) {
if (!isTapFirmwareVersionGreaterThanOrEqual(context.firmwareVersion, '1.86')) {
return new ConfigKeyNotSupportedByFirmwareVersion('tap.certificate.rootKey', context.firmwareVersion, {
minApiVersion: '1.86',
maxApiVersion: undefined,
});
}
}
return context.service.interface.putCertificateRootKeyAppendCalls(configValueToBytes(context.value));
}, ɵ45 = (context) => {
return context.service.interface.putMaxLowPowerTimeCall(context.value);
}, ɵ46 = (context) => {
return context.service.interface.putPowerOptimisationLevelCall(enumKeyToEnumValue(context.value, LowPowerOptimizationLevel));
}, ɵ47 = (context) => {
if (context.firmwareVersion) {
if (!isTapFirmwareVersionGreaterThanOrEqual(context.firmwareVersion, '2.15')) {
return new ConfigKeyNotSupportedByFirmwareVersion('tap.powerOptimizationOptions', context.firmwareVersion, {
minApiVersion: '2.15',
maxApiVersion: undefined,
});
}
}
return context.service.interface.putPowerOptimisationOptionsCall(context.value);
}, ɵ48 = (context) => {
if (context.firmwareVersion) {
if (!isTapFirmwareVersionGreaterThanOrEqual(context.firmwareVersion, '1.11')) {
return new ConfigKeyNotSupportedByFirmwareVersion('tap.scram.hashIteration', context.firmwareVersion, {
minApiVersion: '1.11',
maxApiVersion: undefined,
});
}
}
return context.service.scram.putHashIterationCall(context.value);
}, ɵ49 = (context) => {
return context.service.interface.putSecurityOptionsCall(context.value);
}, ɵ50 = (context) => {
if (context.firmwareVersion) {
if (!isTapFirmwareVersionGreaterThanOrEqual(context.firmwareVersion, '1.107')) {
return new ConfigKeyNotSupportedByFirmwareVersion('tap.time.ntpServer', context.firmwareVersion, {
minApiVersion: '1.107',
maxApiVersion: undefined,
});
}
}
return context.service.time.putNtpServerCall(context.value);
}, ɵ51 = (context) => {
if (context.firmwareVersion) {
if (!isTapFirmwareVersionGreaterThanOrEqual(context.firmwareVersion, '1.107')) {
return new ConfigKeyNotSupportedByFirmwareVersion('tap.time.zone', context.firmwareVersion, {
minApiVersion: '1.107',
maxApiVersion: undefined,
});
}
}
return context.service.time.putTimeZoneCall(context.value);
}, ɵ52 = (context) => {
return context.service.target.putFirmwareVersionCall(context.value);
}, ɵ53 = (context) => {
return context.service.target.putModbusDefaultSlaveAddressCall(context.value);
}, ɵ54 = (context) => {
return context.service.target.putProtocolCall(enumKeyToEnumValue(context.value, TargetProtocol));
}, ɵ55 = (context) => {
return context.service.interface.putConfigVersionCall(context.value);
}, ɵ56 = (context) => {
return context.service.interface.putAuthorizedHostProtocolCall(enumKeysToEnumValues(context.value, HostProtocol));
}, ɵ57 = (context) => {
return context.service.interface.putHostInactivityPeriodCall(context.value);
}, ɵ58 = (context) => {
if (context.firmwareVersion) {
if (!isTapFirmwareVersionGreaterThanOrEqual(context.firmwareVersion, '2.13')) {
return new ConfigKeyNotSupportedByFirmwareVersion('wireless.options.network', context.firmwareVersion, {
minApiVersion: '2.13',
maxApiVersion: undefined,
});
}
}
return context.service.interface.putNetworkOptionsCall(context.value);
}, ɵ59 = (context) => {
return context.service.interface.putPairingOptionsCall(context.value);
}, ɵ60 = (context) => {
if (context.firmwareVersion) {
if (!isTapFirmwareVersionGreaterThanOrEqual(context.firmwareVersion, '2.7')) {
return new ConfigKeyNotSupportedByFirmwareVersion('wireless.protocols.ethernet.dnsIp', context.firmwareVersion, {
minApiVersion: '2.7',
maxApiVersion: undefined,
});
}
}
return context.service.ethernet.putDnsIpCall(context.value);
}, ɵ61 = (context) => {
return context.service.lora.putConfigCall(context.value);
}, ɵ62 = (context) => {
return context.service.lora.putIdsCall(configValueToBytes(context.value));
}, ɵ63 = (context) => {
if (context.firmwareVersion) {
if (!isTapFirmwareVersionGreaterThanOrEqual(context.firmwareVersion, '2.11')) {
return new ConfigKeyNotSupportedByFirmwareVersion('wireless.protocols.lte.applicationData', context.firmwareVersion, {
minApiVersion: '2.11',
maxApiVersion: undefined,
});
}
}
return context.service.lte.putApplicationDataCall(configValueToBytes(context.value));
}, ɵ64 = (context) => {
if (context.firmwareVersion) {
if (!isTapFirmwareVersionGreaterThanOrEqual(context.firmwareVersion, '1.86')) {
return new ConfigKeyNotSupportedByFirmwareVersion('wireless.protocols.mqtt.brokerCertificate', context.firmwareVersion, {
minApiVersion: '1.86',
maxApiVersion: undefined,
});
}
}
return context.service.mqtt.putBrokerCertificateAppendCalls(configValueToBytes(context.value));
}, ɵ65 = (context) => {
return context.service.mqtt.putBrokerHostnameCall(context.value);
}, ɵ66 = (context) => {
return context.service.mqtt.putBrokerPortCall(context.value);
}, ɵ67 = (context) => {
if (context.firmwareVersion) {
if (!isTapFirmwareVersionGreaterThanOrEqual(context.firmwareVersion, '1.86')) {
return new ConfigKeyNotSupportedByFirmwareVersion('wireless.protocols.mqtt.clientId', context.firmwareVersion, {
minApiVersion: '1.86',
maxApiVersion: undefined,
});
}
}
return context.service.mqtt.putClientIdCall(context.value);
}, ɵ68 = (context) => {
return context.service.mqtt.putPasswordCall(context.value);
}, ɵ69 = (context) => {
return context.service.mqtt.putRelayNetKeyCall(context.value);
}, ɵ70 = (context) => {
if (context.firmwareVersion) {
if (!isTapFirmwareVersionGreaterThanOrEqual(context.firmwareVersion, '1.86')) {
return new ConfigKeyNotSupportedByFirmwareVersion('wireless.protocols.mqtt.requestTopic', context.firmwareVersion, {
minApiVersion: '1.86',
maxApiVersion: undefined,
});
}
}
return context.service.mqtt.putRequestTopicCall(context.value);
}, ɵ71 = (context) => {
if (context.firmwareVersion) {
if (!isTapFirmwareVersionGreaterThanOrEqual(context.firmwareVersion, '1.107')) {
return new ConfigKeyNotSupportedByFirmwareVersion('wireless.protocols.mqtt.responseTopic', context.firmwareVersion, {
minApiVersion: '1.107',
maxApiVersion: undefined,
});
}
}
return context.service.mqtt.putResponseTopicCall(context.value);
}, ɵ72 = (context) => {
if (context.firmwareVersion) {
if (!isTapFirmwareVersionGreaterThanOrEqual(context.firmwareVersion, '1.86')) {
return new ConfigKeyNotSupportedByFirmwareVersion('wireless.protocols.mqtt.topicPrefix', context.firmwareVersion, {
minApiVersion: '1.86',
maxApiVersion: undefined,
});
}
}
return context.service.mqtt.putTopicPrefixCall(context.value);
}, ɵ73 = (context) => {
if (context.firmwareVersion) {
if (!isTapFirmwareVersionGreaterThanOrEqual(context.firmwareVersion, '1.86')) {
return new ConfigKeyNotSupportedByFirmwareVersion('wireless.protocols.mqtt.username', context.firmwareVersion, {
minApiVersion: '1.86',
maxApiVersion: undefined,
});
}
}
return context.service.mqtt.putUsernameCall(context.value);
}, ɵ74 = (context) => {
if (context.firmwareVersion) {
if (!isTapFirmwareVersionGreaterThanOrEqual(context.firmwareVersion, '1.55')) {
return new ConfigKeyNotSupportedByFirmwareVersion('wireless.protocols.nfc.autoLogProfileId', context.firmwareVersion, {
minApiVersion: '1.55',
maxApiVersion: undefined,
});
}
}
return context.service.interface.putNfcAutologProfileIdCall(context.value);
}, ɵ75 = (context) => {
if (context.firmwareVersion) {
if (!isTapFirmwareVersionGreaterThanOrEqual(context.firmwareVersion, '1.85')) {
return new ConfigKeyNotSupportedByFirmwareVersion('wireless.protocols.nfc.connectionPriority', context.firmwareVersion, {
minApiVersion: '1.85',
maxApiVersion: undefined,
});
}
}
return context.service.interface.putNfcConnectionPriorityCall(enumKeyToEnumValue(context.value, NfcConnectionPriority));
}, ɵ76 = (context) => {
if (context.firmwareVersion) {
if (!isTapFirmwareVersionGreaterThanOrEqual(context.firmwareVersion, '1.88')) {
return new ConfigKeyNotSupportedByFirmwareVersion('wireless.protocols.wifi.countryCode', context.firmwareVersion, {
minApiVersion: '1.88',
maxApiVersion: undefined,
});
}
}
return context.service.wifi.putCountryCodeCall(context.value);
}, ɵ77 = (context) => {
return context.service.wifi.putDnsIpCall(context.value);
}, ɵ78 = (context) => {
return context.service.wifi.putGatewayIpCall(context.value);
}, ɵ79 = (context) => {
return context.service.wifi.putIpCall(context.value);
}, ɵ80 = (context) => {
return context.service.wifi.putKeyCall(context.value);
}, ɵ81 = (context) => {
if (context.firmwareVersion) {
if (!isTapFirmwareVersionGreaterThanOrEqual(context.firmwareVersion, '1.88')) {
return new ConfigKeyNotSupportedByFirmwareVersion('wireless.protocols.wifi.keyVisibility', context.firmwareVersion, {
minApiVersion: '1.88',
maxApiVersion: undefined,
});
}
}
return context.service.wifi.putKeyVisibilityCall(enumKeyToEnumValue(context.value, WifiKeyVisibility));
}, ɵ82 = (context) => {
return context.service.wifi.putIpMaskCall(context.value);
}, ɵ83 = (context) => {
return context.service.wifi.putModeCall(enumKeyToEnumValue(context.value, WifiMode));
}, ɵ84 = (context) => {
if (context.firmwareVersion) {
if (!isTapFirmwareVersionGreaterThanOrEqual(context.firmwareVersion, '2.13')) {
return new ConfigKeyNotSupportedByFirmwareVersion('wireless.protocols.wifi.networkMode', context.firmwareVersion, {
minApiVersion: '2.13',
maxApiVersion: undefined,
});
}
}
return context.service.wifi.putNetworkModeCall(enumKeyToEnumValue(context.value, WifiMode));
}, ɵ85 = (context) => {
if (context.firmwareVersion) {
if (!isTapFirmwareVersionGreaterThanOrEqual(context.firmwareVersion, '1.88')) {
return new ConfigKeyNotSupportedByFirmwareVersion('wireless.protocols.wifi.protocol', context.firmwareVersion, {
minApiVersion: '1.88',
maxApiVersion: undefined,
});
}
}
return context.service.wifi.putProtocolCall(enumKeysToEnumValues(context.value, WifiProtocol));
}, ɵ86 = (context) => {
return context.service.wifi.putSSIDCall(context.value);
}, ɵ87 = (context) => {
if (context.firmwareVersion) {
if (!isTapFirmwareVersionGreaterThanOrEqual(context.firmwareVersion, '1.88')) {
return new ConfigKeyNotSupportedByFirmwareVersion('wireless.protocols.wifi.ssidVisibility', context.firmwareVersion, {
minApiVersion: '1.88',
maxApiVersion: undefined,
});
}
}
return context.service.wifi.putSSIDVisibilityCall(enumKeyToEnumValue(context.value, WifiSSIDVisibility));
}, ɵ88 = (context) => {
if (context.firmwareVersion) {
if (!isTapFirmwareVersionGreaterThanOrEqual(context.firmwareVersion, '1.88')) {
return new ConfigKeyNotSupportedByFirmwareVersion('wireless.protocols.wifi.txPower', context.firmwareVersion, {
minApiVersion: '1.88',
maxApiVersion: undefined,
});
}
}
return context.service.wifi.putTxPowerCall(context.value);
};
export const WRITE_CONFIGURATOR_CONFIG = {
'application.data': ɵ0,
'application.name': ɵ1,
'application.productCode': ɵ2,
'application.universalLink': ɵ3,
'application.uri': ɵ4,
'cloud.dataLog.mqttPublishTopic': ɵ5,
'cloud.dataLog.mqttSubscribeTopic': ɵ6,
'cloud.dataLog.uploadPeriod': ɵ7,
'cloud.mqtt.brokerPort': ɵ8,
'cloud.mqtt.clientId': ɵ9,
'cloud.mqtt.password': ɵ10,
'cloud.mqtt.username': ɵ11,
'cloud.platform': ɵ12,
configFormatVersion: ɵ13,
'data.bundles[]': ɵ14,
'data.bundles[].acl[].$': ɵ15,
'data.bundles[].dataLog.cryptoGroupId': ɵ16,
'data.bundles[].dataLog.period': ɵ17,
'data.bundles[].name': ɵ18,
'data.features[].bundleId': ɵ19,
'data.profiles[]': ɵ20,
'data.profiles[].alias': ɵ21,
'data.profiles[].key': ɵ22,
'data.profiles[].lifeTime': ɵ23,
'data.profiles[].password': ɵ24,
'data.profiles[].username': ɵ25,
'data.variables[]': ɵ26,
'data.variables[].address': ɵ27,
'data.variables[].bundleId': ɵ28,
'data.variables[].length': ɵ29,
'data.variables[].meta': ɵ30,
'data.variables[].modbusAddress': ɵ31,
'data.variables[].rawMeta': ɵ32,
'data.variables[].type': ɵ33,
'data.variables[].value': ɵ34,
'jvm.code': ɵ35,
'jvm.codeSize': ɵ36,
'jvm.profileId': ɵ37,
'ports.ethernet.gatewayIp': ɵ38,
'ports.ethernet.ip': ɵ39,
'ports.ethernet.ipMask': ɵ40,
'tap.autoRebootTimeout': ɵ41,
'tap.certificate.privateKey': ɵ42,
'tap.certificate.publicKey': ɵ43,
'tap.certificate.rootKey': ɵ44,
'tap.maxLowPowerTime': ɵ45,
'tap.powerOptimization': ɵ46,
'tap.powerOptimizationOptions': ɵ47,
'tap.scram.hashIteration': ɵ48,
'tap.security': ɵ49,
'tap.time.ntpServer': ɵ50,
'tap.time.zone': ɵ51,
'target.firmwareVersion': ɵ52,
'target.modbusDefaultSlaveAddress': ɵ53,
'target.protocol.type': ɵ54,
version: ɵ55,
'wireless.options.authorizedProtocols': ɵ56,
'wireless.options.inactivityTimeout': ɵ57,
'wireless.options.network': ɵ58,
'wireless.options.pairing': ɵ59,
'wireless.protocols.ethernet.dnsIp': ɵ60,
'wireless.protocols.lora.config': ɵ61,
'wireless.protocols.lora.ids': ɵ62,
'wireless.protocols.lte.applicationData': ɵ63,
'wireless.protocols.mqtt.brokerCertificate': ɵ64,
'wireless.protocols.mqtt.brokerHostname': ɵ65,
'wireless.protocols.mqtt.brokerPort': ɵ66,
'wireless.protocols.mqtt.clientId': ɵ67,
'wireless.protocols.mqtt.password': ɵ68,
'wireless.protocols.mqtt.relayNetKey': ɵ69,
'wireless.protocols.mqtt.requestTopic': ɵ70,
'wireless.protocols.mqtt.responseTopic': ɵ71,
'wireless.protocols.mqtt.topicPrefix': ɵ72,
'wireless.protocols.mqtt.username': ɵ73,
'wireless.protocols.nfc.autoLogProfileId': ɵ74,
'wireless.protocols.nfc.connectionPriority': ɵ75,
'wireless.protocols.wifi.countryCode': ɵ76,
'wireless.protocols.wifi.dnsIp': ɵ77,
'wireless.protocols.wifi.gatewayIp': ɵ78,
'wireless.protocols.wifi.ip': ɵ79,
'wireless.protocols.wifi.key': ɵ80,
'wireless.protocols.wifi.keyVisibility': ɵ81,
'wireless.protocols.wifi.mask': ɵ82,
'wireless.protocols.wifi.mode': ɵ83,
'wireless.protocols.wifi.networkMode': ɵ84,
'wireless.protocols.wifi.protocol': ɵ85,
'wireless.protocols.wifi.ssid': ɵ86,
'wireless.protocols.wifi.ssidVisibility': ɵ87,
'wireless.protocols.wifi.txPower': ɵ88,
};
export { ɵ0, ɵ1, ɵ2, ɵ3, ɵ4, ɵ5, ɵ6, ɵ7, ɵ8, ɵ9, ɵ10, ɵ11, ɵ12, ɵ13, ɵ14, ɵ15, ɵ16, ɵ17, ɵ18, ɵ19, ɵ20, ɵ21, ɵ22, ɵ23, ɵ24, ɵ25, ɵ26, ɵ27, ɵ28, ɵ29, ɵ30, ɵ31, ɵ32, ɵ33, ɵ34, ɵ35, ɵ36, ɵ37, ɵ38, ɵ39, ɵ40, ɵ41, ɵ42, ɵ43, ɵ44, ɵ45, ɵ46, ɵ47, ɵ48, ɵ49, ɵ50, ɵ51, ɵ52, ɵ53, ɵ54, ɵ55, ɵ56, ɵ57, ɵ58, ɵ59, ɵ60, ɵ61, ɵ62, ɵ63, ɵ64, ɵ65, ɵ66, ɵ67, ɵ68, ɵ69, ɵ70, ɵ71, ɵ72, ɵ73, ɵ74, ɵ75, ɵ76, ɵ77, ɵ78, ɵ79, ɵ80, ɵ81, ɵ82, ɵ83, ɵ84, ɵ85, ɵ86, ɵ87, ɵ88 };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtY29uZmlndXJhdG9yLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvbmZpZ3VyYXRvci9zcmMvbGliL2dlbmVyYXRlZC93cml0ZS1jb25maWd1cmF0b3ItY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBR0gsT0FBTyxFQWVMLGFBQWEsRUFLYix5QkFBeUIsRUFHekIsY0FBYyxFQUlkLHFCQUFxQixFQUNyQixpQkFBaUIsRUFDakIsUUFBUSxFQUNSLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osWUFBWSxHQUNiLE1BQU0seUJBQXlCLENBQUM7QUFFakMsT0FBTyxFQUNMLHNDQUFzQyxFQUN0QyxtQ0FBbUMsRUFDbkMsa0JBQWtCLEVBQ2xCLG9CQUFvQixFQUNwQixrQkFBa0IsR0FDbkIsTUFBTSxTQUFTLENBQUM7QUFDakIsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sV0FBVyxDQUFDO1dBSTdDLENBQUMsT0FBa0QsRUFBRSxFQUFFO0lBQ3pFLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQ3JELGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FDbEMsQ0FBQztBQUNKLENBQUMsT0FFbUIsQ0FBQyxPQUE4QyxFQUFFLEVBQUU7SUFDckUsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2pFLENBQUMsT0FFMEIsQ0FDekIsT0FBOEMsRUFDOUMsRUFBRTtJQUNGLElBQUksT0FBTyxDQUFDLGVBQWUsRUFBRTtRQUMzQixJQUNFLENBQUMsc0NBQXNDLENBQ3JDLE9BQU8sQ0FBQyxlQUFlLEVBQ3ZCLE9BQU8sQ0FDUixFQUNEO1lBQ0EsT0FBTyxJQUFJLHNDQUFzQyxDQUMvQyx5QkFBeUIsRUFDekIsT0FBTyxDQUFDLGVBQWUsRUFD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