in source/lambda/filter-kinesis-stream/machine-data-parser.ts [151:196]
private validateConfigItem(configItem: IConfigItem): void {
let requiredProperties: string[];
switch (configItem.type) {
case ConfigType.MESSAGE_FORMAT:
requiredProperties = [
'msgFormatDataMessagesKeyName',
'msgFormatDataAliasDelimiter',
'msgFormatDataMessageTimestampKeyName',
'msgFormatDataMessageValueKeyName',
'msgFormatDataMessageAliasKeyName',
'msgFormatDataMessageQualityKeyName',
'msgFormatDataMessageTimestampFormat'
];
break;
case ConfigType.MACHINE_CONFIG:
const machineConfigItem = configItem as IMachineConfigItem;
if (machineConfigItem.machineStatusTagName && machineConfigItem.machineStatusTagName.trim() !== '') {
let hasStatusValue = false;
const statusValues = [
'machineStatusUpValue',
'machineStatusDownValue',
'machineStatusIdleValue'
];
statusValues.forEach(statusValue => {
if (machineConfigItem[statusValue] && machineConfigItem[statusValue].trim() !== '') {
hasStatusValue = true;
}
});
if (!hasStatusValue) {
throw new Error('Machine config set a status tag name but no value for up/down/idle');
}
}
break;
default:
throw new Error(`Unexpected Config Type: ${configItem.type}`);
}
if (requiredProperties) {
if (!objectHasRequiredProperties(configItem, requiredProperties, true)) {
throw new Error('Missing required property');
}
}
}