@startuml !define RESULT result !define CONCAT_RESULTS concat_results !define TMP_ENTRY tmp_entry start :Начинаем проходить по элементам RESULT; :Создаем массив CONCAT_RESULTS; :Создаем словарь TMP_ENTRY\nв которм будет собираться правило\nпо шаблону ace_template; note ace_template = { "rule_id": 0, "enabled": True, "rule_numbers": [], "action": "", "source": [], "destination": [], "destination_service": "", "source_service": "", "hit_count": 0, "users": [], "logging": "", "logging_interval": "", "time_range": "", "description": "", "raw_entry": "", "raw_entries": [], "hash": "", "protocol": "", } endnote repeat :Берем следующий элемент RESULT; if (RESULT entry = ACE) :Записываем в поля TMP_ENTRY данные из RESULT entry согласно правилам ace; note _fill_template_with_ace_data() endnote :Добавяем TMP_ENTRY в CONCAT_RESULTS; :Сбрасываем ace_template в исходное значение; elseif (RESULT = remark) :Записываем в поля TMP_ENTRY данные из RESULT entry согласно правилам remark; note right _fill_template_with_remark_data() endnote endif repeat while (В RESULT есть еще элементы?) :Возвращаем CONCAT_RESULTS; stop @enduml