{
  "code_name": "newdev_template",
  "template_type": "database-entry",
  "unique_prefix": "NEWDEV",
  "plugin_type": "system",
  "enabled": true,
  "data_source": "template",
  "show_ui": false,
  "localized": ["display_name", "description", "icon"],
  "display_name": [
    {
      "language_code": "en_us",
      "string": "New Devices"
    }
  ],
  "description": [
    {
      "language_code": "en_us",
      "string": "The template used for new devices."
    }
  ],
  "icon": [
    {
      "language_code": "en_us",
      "string": "<i class=\"fa fa-plus\"></i>"
    }
  ],
  "settings": [
    {
      "function": "ignored_MACs",
      "type": {
        "dataType": "array",
        "elements": [
          {
            "elementType": "input",
            "elementOptions": [
              { "placeholder": "Enter value" },
              { "suffix": "_in" },
              { "cssClasses": "col-sm-10" },
              { "prefillValue": "null" }
            ],
            "transformers": []
          },
          {
            "elementType": "button",
            "elementOptions": [
              { "sourceSuffixes": ["_in"] },
              { "separator": "" },
              { "cssClasses": "col-xs-12" },
              { "onClick": "addList(this, false)" },
              { "getStringKey": "Gen_Add" }
            ],
            "transformers": []
          },
          {
            "elementType": "select",
            "elementHasInputValue": 1,
            "elementOptions": [
              { "multiple": "true" },
              { "readonly": "true" },
              { "editable": "true" }
            ],
            "transformers": []
          },
          {
            "elementType": "button",
            "elementOptions": [
              { "sourceSuffixes": [] },
              { "separator": "" },
              { "cssClasses": "col-xs-6" },
              { "onClick": "removeAllOptions(this)" },
              { "getStringKey": "Gen_Remove_All" }
            ],
            "transformers": []
          },
          {
            "elementType": "button",
            "elementOptions": [
              { "sourceSuffixes": [] },
              { "separator": "" },
              { "cssClasses": "col-xs-6" },
              { "onClick": "removeFromList(this)" },
              { "getStringKey": "Gen_Remove_Last" }
            ],
            "transformers": []
          }
        ]
      },
      "default_value": [],
      "options": [],
      "localized": ["name", "description"],
      "name": [
        {
          "language_code": "en_us",
          "string": "Ignored MACs"
        }
      ],
      "description": [
        {
          "language_code": "en_us",
          "string": "List of MACs to ignore. Use <code>%</code> as a wildcard. Ignored devices will not be shown anywhere in the UI or notifications. <br/><br/>For example <code>02:42:ac:%</code> to filter out docker containers."
        }
      ]
    },
    {
      "function": "ignored_IPs",
      "type": {
        "dataType": "array",
        "elements": [
          {
            "elementType": "input",
            "elementOptions": [
              { "placeholder": "Enter value" },
              { "suffix": "_in" },
              { "cssClasses": "col-sm-10" },
              { "prefillValue": "null" }
            ],
            "transformers": []
          },
          {
            "elementType": "button",
            "elementOptions": [
              { "sourceSuffixes": ["_in"] },
              { "separator": "" },
              { "cssClasses": "col-xs-12" },
              { "onClick": "addList(this, false)" },
              { "getStringKey": "Gen_Add" }
            ],
            "transformers": []
          },
          {
            "elementType": "select",
            "elementHasInputValue": 1,
            "elementOptions": [
              { "multiple": "true" },
              { "readonly": "true" },
              { "editable": "true" }
            ],
            "transformers": []
          },
          {
            "elementType": "button",
            "elementOptions": [
              { "sourceSuffixes": [] },
              { "separator": "" },
              { "cssClasses": "col-xs-6" },
              { "onClick": "removeAllOptions(this)" },
              { "getStringKey": "Gen_Remove_All" }
            ],
            "transformers": []
          },
          {
            "elementType": "button",
            "elementOptions": [
              { "sourceSuffixes": [] },
              { "separator": "" },
              { "cssClasses": "col-xs-6" },
              { "onClick": "removeFromList(this)" },
              { "getStringKey": "Gen_Remove_Last" }
            ],
            "transformers": []
          }
        ]
      },
      "default_value": [],
      "options": [],
      "localized": ["name", "description"],
      "name": [
        {
          "language_code": "en_us",
          "string": "Ignored IPs"
        }
      ],
      "description": [
        {
          "language_code": "en_us",
          "string": "List of IPs to ignore. Use <code>%</code> as a wildcard. Ignored devices will not be shown anywhere in the UI or notifications. <br/><br/>For example <code>192.168.3.%</code> to filter out an IP range."
        }
      ]
    },
    {
      "function": "NAME_CLEANUP_REGEX",
      "type": {
        "dataType": "array",
        "elements": [
          {
            "elementType": "input",
            "elementOptions": [
              { "placeholder": "Enter value" },
              { "suffix": "_in" },
              { "cssClasses": "col-sm-10" },
              { "prefillValue": "null" }
            ],
            "transformers": []
          },
          {
            "elementType": "button",
            "elementOptions": [
              { "sourceSuffixes": ["_in"] },
              { "separator": "" },
              { "cssClasses": "col-xs-12" },
              { "onClick": "addList(this, false)" },
              { "getStringKey": "Gen_Add" }
            ],
            "transformers": []
          },
          {
            "elementType": "select",
            "elementHasInputValue": 1,
            "elementOptions": [
              { "multiple": "true" },
              { "readonly": "true" },
              { "editable": "true" }
            ],
            "transformers": ["base64"]
          },
          {
            "elementType": "button",
            "elementOptions": [
              { "sourceSuffixes": [] },
              { "separator": "" },
              { "cssClasses": "col-xs-6" },
              { "onClick": "removeFromList(this)" },
              { "getStringKey": "Gen_Remove_Last" }
            ],
            "transformers": []
          },
          {
            "elementType": "button",
            "elementOptions": [
              { "sourceSuffixes": [] },
              { "separator": "" },
              { "cssClasses": "col-xs-6" },
              { "onClick": "removeAllOptions(this)" },
              { "getStringKey": "Gen_Remove_All" }
            ],
            "transformers": []
          }
        ]
      },
      "default_value": [
        "XC5fYWlycGxheQ==",
        "XC5fdGNw",
        "XC5sb2NhbGRvbWFpbg==",
        "XC5sb2NhbA==",
        "XC5fZXNwaG9tZWxpYg==",
        "XC5fZ29vZ2xlY2FzdA==",
        "XC5sYW4=",
        "XC5ob21l",
        "LVthLWZBLUYwLTldezMyfQ==",
        "Iy4q"
      ],
      "options": [],
      "localized": ["name", "description"],
      "name": [
        {
          "language_code": "en_us",
          "string": "Name Cleanup REGEX"
        }
      ],
      "description": [
        {
          "language_code": "en_us",
          "string": "All the newly discovered device names are cleaned up by applying the following REGEX expression in this order. All the below are replaced by a blank string."
        }
      ]
    },
    {
      "function": "replace_preset_icon",
      "type": {
        "dataType": "boolean",
        "elements": [
          {
            "elementType": "input",
            "elementOptions": [{ "type": "checkbox" }],
            "transformers": []
          }
        ]
      },
      "default_value": false,
      "options": [],
      "localized": ["name", "description"],
      "name": [
        {
          "language_code": "en_us",
          "string": "Overwrite Preset Icon"
        }
      ],
      "description": [
        {
          "language_code": "en_us",
          "string": "If checked, the application replaces the preset icon in <code>NEWDEV_devIcon</code> with a pre-assigned vendor or device icon if found. If this is checked, avoid manually assigning this icon to devices, as it may be replaced."
        }
      ]
    },
    {
      "function": "devMac",
      "type": {
        "dataType": "string",
        "elements": [
          {
            "elementType": "input",
            "elementOptions": [{ "readonly": "true" }],
            "transformers": []
          }
        ]
      },
      "maxLength": 50,
      "default_value": "",
      "options": [],
      "localized": ["name", "description"],
      "name": [
        {
          "language_code": "en_us",
          "string": "MAC"
        }
      ],
      "description": [
        {
          "language_code": "en_us",
          "string": "The MAC address of the device. Uneditable - Autodetected."
        }
      ]
    },
    {
      "function": "devLastIP",
      "type": {
        "dataType": "string",
        "elements": [
          {
            "elementType": "input",
            "elementOptions": [],
            "transformers": []
          }
        ]
      },
      "maxLength": 50,
      "default_value": "",
      "options": [],
      "localized": ["name", "description"],
      "name": [
        {
          "language_code": "en_us",
          "string": "Last IP"
        }
      ],
      "description": [
        {
          "language_code": "en_us",
          "string": "The last known IP address of the device. Uneditable - Autodetected."
        }
      ]
    },
    {
      "function": "devName",
      "type": {
        "dataType": "string",
        "elements": [
          {
            "elementType": "input",
            "elementOptions": [{ "readonly": "true" }],
            "transformers": []
          }
        ]
      },
      "maxLength": 50,
      "default_value": "(unknown)",
      "options": [],
      "localized": ["name", "description"],
      "name": [
        {
          "language_code": "en_us",
          "string": "Name"
        }
      ],
      "description": [
        {
          "language_code": "en_us",
          "string": "The name of the device. If the value is set to <code>(unknown)</code> or <code>(name not found)</code> the application will try to discover the name of the device."
        }
      ]
    },
    {
      "function": "devIcon",
      "events": ["copy_icons", "add_icon"],
      "type": {
        "dataType": "string",
        "elements": [
          {
            "elementType": "span",
            "elementOptions": [
              { "cssClasses": "input-group-addon iconPreview" },
              { "getStringKey": "Gen_SelectIcon" },
              { "customId": "NEWDEV_devIcon_preview" }
            ],
            "transformers": []
          },
          {
            "elementType": "select",
            "elementHasInputValue": 1,
            "elementOptions": [
              { "cssClasses": "col-xs-12" },
              {
                "onChange": "updateIconPreview(this)"
              },
              { "customParams": "NEWDEV_devIcon,NEWDEV_devIcon_preview" }
            ],
            "transformers": []
          }          
        ]
      },
      "default_value": "",
      "options": ["{value}"],
      "options_params": [
        {
          "name": "value",
          "type": "sql",
          "value": "WITH RECURSIVE SettingsIcons AS (SELECT REPLACE(REPLACE(REPLACE(setValue, '[', ''), ']', ''), '''', '') AS icon_list FROM Settings WHERE setKey = 'UI_ICONS'), SplitIcons AS (SELECT TRIM(SUBSTR(icon_list, 1, INSTR(icon_list || ',', ',') - 1)) AS icon, SUBSTR(icon_list, INSTR(icon_list || ',', ',') + 1) AS remaining_icons FROM SettingsIcons WHERE icon_list <> '' UNION ALL SELECT TRIM(SUBSTR(remaining_icons, 1, INSTR(remaining_icons || ',', ',') - 1)) AS icon, SUBSTR(remaining_icons, INSTR(remaining_icons || ',', ',') + 1) AS remaining_icons FROM SplitIcons WHERE remaining_icons <> '') SELECT DISTINCT * FROM (SELECT icon as name, icon as id  FROM SplitIcons UNION SELECT  '❌None' AS name, '' AS id  UNION SELECT devIcon AS name, devIcon AS id FROM Devices WHERE devIcon <> '') AS combined_results;"
        }
      ],
      "localized": ["name", "description"],
      "name": [
        {
          "language_code": "en_us",
          "string": "Icon"
        }
      ],
      "description": [
        {
          "language_code": "en_us",
          "string": "The icon associated with the device. Check the <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/ICONS.md\" target=\"_blank\">documentation on icons</a> for more details."
        }
      ]
    },
    {
      "function": "devOwner",
      "events": ["add_option"],
      "type": {
        "dataType": "string",
        "elements": [
          { "elementType": "select", "elementOptions": [], "transformers": [] }
        ]
      },
      "maxLength": 30,
      "default_value": "",
      "options": ["{value}"],
      "options_params": [
        {
          "name": "value",
          "type": "sql",
          "value": "SELECT DISTINCT '' as id, '❌None' as name UNION SELECT devOwner as id, devOwner as name FROM (SELECT devOwner FROM Devices UNION SELECT 'House' ) AS all_devices ORDER BY id;"
        }
      ],
      "localized": ["name", "description"],
      "name": [
        {
          "language_code": "en_us",
          "string": "Owner"
        }
      ],
      "description": [
        {
          "language_code": "en_us",
          "string": "The owner of the device."
        }
      ]
    },
    {
      "function": "devType",
      "events": ["add_option"],
      "type": {
        "dataType": "string",
        "elements": [
          { "elementType": "select", "elementOptions": [], "transformers": [] }
        ]
      },
      "maxLength": 30,
      "default_value": "",
      "options": ["{value}"],
      "options_params": [
        {
          "name": "value",
          "type": "sql",
          "value": "SELECT DISTINCT 9 as ord, devType as id, devType as name FROM Devices WHERE devType NOT IN ('', 'Smartphone', 'Tablet', 'Laptop', 'Mini PC', 'PC', 'Printer', 'Server', 'Singleboard Computer (SBC)', 'NAS', 'Domotic', 'IP Camera', 'Game Console', 'SmartTV', 'TV Decoder', 'Virtual Assistance', 'Clock', 'House Appliance', 'Phone', 'Radio', 'AP', 'Gateway', 'Firewall', 'Hypervisor', 'Powerline', 'Switch', 'WLAN', 'PLC', 'Router', 'USB LAN Adapter', 'USB WIFI Adapter') UNION SELECT 0 as ord, '', '❌None' UNION SELECT 1 as ord, '-----', '-- 📱Handhelds --' UNION SELECT 1 as ord, 'Smartphone', 'Smartphone' UNION SELECT 1 as ord, 'Tablet', 'Tablet' UNION SELECT 2 as ord, '-----', '-- 💻Computers --' UNION SELECT 2 as ord, 'Laptop', 'Laptop' UNION SELECT 2 as ord, 'Mini PC', 'Mini PC' UNION SELECT 2 as ord, 'PC', 'PC' UNION SELECT 2 as ord, 'Printer', 'Printer' UNION SELECT 2 as ord, 'Server', 'Server' UNION SELECT 2 as ord, 'Singleboard Computer (SBC)', 'Singleboard Computer (SBC)' UNION SELECT 2 as ord, 'NAS', 'NAS' UNION SELECT 3 as ord, '-----', '-- 🏠Smart home --' UNION SELECT 3 as ord, 'Domotic', 'Domotic' UNION SELECT 3 as ord, 'IP Camera', 'IP Camera' UNION SELECT 3 as ord, 'Game Console', 'Game Console' UNION SELECT 3 as ord, 'SmartTV', 'SmartTV' UNION SELECT 3 as ord, 'TV Decoder', 'TV Decoder' UNION SELECT 3 as ord, 'Virtual Assistance', 'Virtual Assistance' UNION SELECT 4 as ord, '-----', '-- Wired --' UNION SELECT 4 as ord, 'Clock', 'Clock' UNION SELECT 4 as ord, 'House Appliance', 'House Appliance' UNION SELECT 4 as ord, 'Phone', 'Phone' UNION SELECT 4 as ord, 'Radio', 'Radio' UNION SELECT 5 as ord, '-----', '-- 📡Network nodes --' UNION SELECT 5 as ord, 'AP', 'AP' UNION SELECT 5 as ord, 'Gateway', 'Gateway' UNION SELECT 5 as ord, 'Firewall', 'Firewall' UNION SELECT 5 as ord, 'Hypervisor', 'Hypervisor' UNION SELECT 5 as ord, 'Powerline', 'Powerline' UNION SELECT 5 as ord, 'Switch', 'Switch' UNION SELECT 5 as ord, 'WLAN', 'WLAN' UNION SELECT 5 as ord, 'PLC', 'PLC' UNION SELECT 5 as ord, 'Router', 'Router' UNION SELECT 5 as ord, 'USB LAN Adapter', 'USB LAN Adapter' UNION SELECT 5 as ord, 'USB WIFI Adapter', 'USB WIFI Adapter' UNION SELECT 9 as ord, '-----', '-- ⚙Custom --' UNION SELECT 10 as ord, '-----', '-----' UNION SELECT 10 as ord, 'Other', 'Other' ORDER BY 1,2;"
        },
        {
          "name": "uilang",
          "type": "setting",
          "value": "UI_LANG"
        }
      ],
      "localized": ["name", "description"],
      "name": [
        {
          "language_code": "en_us",
          "string": "Type"
        }
      ],
      "description": [
        {
          "language_code": "en_us",
          "string": "The type of the device."
        }
      ]
    },
    {
      "function": "devVendor",
      "type": {
        "dataType": "string",
        "elements": [
          {
            "elementType": "input",
            "elementOptions": [],
            "transformers": []
          }
        ]
      },
      "maxLength": 250,
      "default_value": "",
      "options": [],
      "localized": ["name", "description"],
      "name": [
        {
          "language_code": "en_us",
          "string": "Vendor"
        }
      ],
      "description": [
        {
          "language_code": "en_us",
          "string": "The vendor of the device. If set to empty or <code>(unknown)</code> teh app will try to auto-detect it."
        }
      ]
    },
    {
      "function": "devFavorite",
      "type": {
        "dataType": "integer",
        "elements": [
          {
            "elementType": "input",
            "elementOptions": [{ "type": "checkbox" }],
            "transformers": []
          }
        ]
      },
      "default_value": 0,
      "options": [],
      "localized": ["name", "description"],
      "name": [
        {
          "language_code": "en_us",
          "string": "Favorite Device"
        }
      ],
      "description": [
        {
          "language_code": "en_us",
          "string": "Indicates whether the device is marked as a favorite."
        }
      ]
    },
    {
      "function": "devGroup",
      "events": ["add_option"],
      "type": {
        "dataType": "string",
        "elements": [
          { "elementType": "select", "elementOptions": [], "transformers": [] }
        ]
      },
      "maxLength": 10,
      "default_value": "",
      "options": ["{value}"],
      "options_params": [
        {
          "name": "value",
          "type": "sql",
          "value": "SELECT DISTINCT '' as id, '❌None' as name UNION SELECT devGroup as id, devGroup as name FROM (SELECT devGroup FROM Devices WHERE devGroup <> '' UNION SELECT 'Personal' UNION SELECT 'Always on' UNION SELECT 'Friends' UNION SELECT 'Others' ) AS all_devices ORDER BY id;"
        }
      ],
      "localized": ["name", "description"],
      "name": [
        {
          "language_code": "en_us",
          "string": "Group"
        }
      ],
      "description": [
        {
          "language_code": "en_us",
          "string": "The group to which the device belongs."
        }
      ]
    },
    {
      "function": "devLocation",
      "events": ["add_option"],
      "type": {
        "dataType": "string",
        "elements": [
          { "elementType": "select", "elementOptions": [], "transformers": [] }
        ]
      },
      "maxLength": 250,
      "default_value": "",
      "options": ["{value}"],
      "options_params": [
        {
          "name": "value",
          "type": "sql",
          "value": "SELECT DISTINCT '' AS id, '❌None' AS name UNION SELECT devLocation AS id, devLocation AS name FROM Devices WHERE devLocation NOT IN ('', 'null') AND devLocation IS NOT NULL UNION SELECT 'Bathroom' AS id, 'Bathroom' AS name UNION SELECT 'Bedroom', 'Bedroom' UNION SELECT 'Dining room', 'Dining room' UNION SELECT 'Hall', 'Hall' UNION SELECT 'Kitchen', 'Kitchen' UNION SELECT 'Laundry', 'Laundry' UNION SELECT 'Living room', 'Living room' UNION SELECT 'Study', 'Study' UNION SELECT 'Attic', 'Attic' UNION SELECT 'Basement', 'Basement' UNION SELECT 'Garage', 'Garage' UNION SELECT 'Back yard', 'Back yard' UNION SELECT 'Garden', 'Garden' UNION SELECT 'Terrace', 'Terrace' ORDER BY id;"
        }
      ],
      "localized": ["name", "description"],
      "name": [
        {
          "language_code": "en_us",
          "string": "Location"
        }
      ],
      "description": [
        {
          "language_code": "en_us",
          "string": "The location of the device."
        }
      ]
    },
    {
      "function": "devComments",
      "type": {
        "dataType": "string",
        "elements": [
          { "elementType": "textarea", "elementOptions": [], "transformers": [] }
        ]
      },
      "default_value": "",
      "options": [],
      "localized": ["name", "description"],
      "name": [
        {
          "language_code": "en_us",
          "string": "Comments"
        }
      ],
      "description": [
        {
          "language_code": "en_us",
          "string": "Additional comments or notes about the device."
        }
      ]
    },
    {
      "function": "devFirstConnection",
      "type": {
        "dataType": "string",
        "elements": [
          {
            "elementType": "input",
            "elementOptions": [{ "readonly": "true" }],
            "transformers": []
          }
        ]
      },
      "format": "date-time",
      "default_value": "",
      "options": [],
      "localized": ["name", "description"],
      "name": [
        {
          "language_code": "en_us",
          "string": "First Connection"
        }
      ],
      "description": [
        {
          "language_code": "en_us",
          "string": "The date and time of the first connection with the device. Uneditable - Autodetected."
        }
      ]
    },
    {
      "function": "devLastConnection",
      "type": {
        "dataType": "string",
        "elements": [
          {
            "elementType": "input",
            "elementOptions": [{ "readonly": "true" }],
            "transformers": []
          }
        ]
      },
      "format": "date-time",
      "default_value": "",
      "options": [],
      "localized": ["name", "description"],
      "name": [
        {
          "language_code": "en_us",
          "string": "Last Connection"
        }
      ],
      "description": [
        {
          "language_code": "en_us",
          "string": "The date and time of the last connection with the device. Uneditable - Autodetected."
        }
      ]
    },
    {
      "function": "devStaticIP",
      "type": {
        "dataType": "integer",
        "elements": [
          {
            "elementType": "input",
            "elementOptions": [{ "type": "checkbox" }],
            "transformers": []
          }
        ]
      },
      "default_value": 0,
      "options": [],
      "localized": ["name", "description"],
      "name": [
        {
          "language_code": "en_us",
          "string": "Static IP"
        }
      ],
      "description": [
        {
          "language_code": "en_us",
          "string": "Indicates whether the device has a static IP address."
        }
      ]
    },
    {
      "function": "devScan",
      "type": {
        "dataType": "integer",
        "elements": [
          {
            "elementType": "input",
            "elementOptions": [{ "type": "checkbox" }],
            "transformers": []
          }
        ]
      },
      "default_value": 1,
      "options": [],
      "localized": ["name", "description"],
      "name": [
        {
          "language_code": "en_us",
          "string": "Scan device"
        }
      ],
      "description": [
        {
          "language_code": "en_us",
          "string": "Select if the device should be scanned."
        }
      ]
    },
    {
      "function": "devLogEvents",
      "type": {
        "dataType": "integer",
        "elements": [
          {
            "elementType": "input",
            "elementOptions": [{ "type": "checkbox" }],
            "transformers": []
          }
        ]
      },
      "default_value": 1,
      "options": [],
      "localized": ["name", "description"],
      "name": [
        {
          "language_code": "en_us",
          "string": "Log Events"
        }
      ],
      "description": [
        {
          "language_code": "en_us",
          "string": "Indicates whether events related to the device shouldbe logged."
        }
      ]
    },
    {
      "function": "devAlertEvents",
      "type": {
        "dataType": "integer",
        "elements": [
          {
            "elementType": "input",
            "elementOptions": [{ "type": "checkbox" }],
            "transformers": []
          }
        ]
      },
      "default_value": 1,
      "options": [],
      "localized": ["name", "description"],
      "name": [
        {
          "language_code": "en_us",
          "string": "Alert Events"
        }
      ],
      "description": [
        {
          "language_code": "en_us",
          "string": "Indicates whether events related to the device should trigger alerts. The default value of the <code>Alert Events</code> checkbox. Down and New Device notifications are always sent unless unselected in <code>NTFPRCS_INCLUDED_SECTIONS</code>."
        }
      ]
    },
    {
      "function": "devAlertDown",
      "type": {
        "dataType": "integer",
        "elements": [
          {
            "elementType": "input",
            "elementOptions": [{ "type": "checkbox" }],
            "transformers": []
          }
        ]
      },
      "default_value": 0,
      "options": [],
      "localized": ["name", "description"],
      "name": [
        {
          "language_code": "en_us",
          "string": "Alert Down"
        }
      ],
      "description": [
        {
          "language_code": "en_us",
          "string": "Indicates whether an alert should be triggered when the device goes down. The device has to be down for longet than the time set in the <b>Alert Down After</b> <code>NTFPRCS_alert_down_time</code> setting."
        }
      ]
    },
    {
      "function": "devSkipRepeated",
      "type": {
        "dataType": "string",
        "elements": [
          { "elementType": "select", "elementOptions": [], "transformers": [] }
        ]
      },
      "default_value": 0,
      "options": ["{value}"],
      "options_params": [
        {
          "name": "value",
          "type": "sql",
          "value": "SELECT '0' as id, '0 (notify all)' as name UNION SELECT '168' as id, '1 week' as name UNION SELECT '24' as id, '1 day' as name UNION SELECT '8' as id, '8 h' as name UNION SELECT '1' as id, '1 h' as name"
        }
      ],
      "localized": ["name", "description"],
      "name": [
        {
          "language_code": "en_us",
          "string": "Skip Repeated"
        }
      ],
      "description": [
        {
          "language_code": "en_us",
          "string": "Enter number of <b>hours</b> for which repeated notifications should be ignored for. If you select <code>0</code> then you get notified on all events."
        }
      ]
    },
    {
      "function": "devLastNotification",
      "type": {
        "dataType": "string",
        "elements": [
          {
            "elementType": "input",
            "elementOptions": [{ "readonly": "true" }],
            "transformers": []
          }
        ]
      },
      "format": "date-time",
      "default_value": "",
      "options": [],
      "localized": ["name", "description"],
      "name": [
        {
          "language_code": "en_us",
          "string": "Last Notification"
        }
      ],
      "description": [
        {
          "language_code": "en_us",
          "string": "The date and time of the last notification sent for the device. Uneditable - Autodetected."
        }
      ]
    },
    {
      "function": "devPresentLastScan",
      "type": {
        "dataType": "integer",
        "elements": [
          {
            "elementType": "input",
            "elementOptions": [{ "type": "checkbox" }],
            "transformers": []
          }
        ]
      },
      "default_value": 1,
      "options": [],
      "localized": ["name", "description"],
      "name": [
        {
          "language_code": "en_us",
          "string": "Present Last Scan"
        }
      ],
      "description": [
        {
          "language_code": "en_us",
          "string": "Indicates whether the device should be marked as present after detected in a scan."
        }
      ]
    },
    {
      "function": "devIsNew",
      "type": {
        "dataType": "integer",
        "elements": [
          {
            "elementType": "input",
            "elementOptions": [{ "type": "checkbox" }],
            "transformers": []
          }
        ]
      },
      "default_value": 1,
      "options": [],
      "localized": ["name", "description"],
      "name": [
        {
          "language_code": "en_us",
          "string": "New Device"
        }
      ],
      "description": [
        {
          "language_code": "en_us",
          "string": "Indicates whether the device is considered a new device. The default value of the <code>New Device</code> checkbox. If checked this will show the New status for the device and include it in lists when the New Devices filter is active. Doesn't affect notifications."
        }
      ]
    },
    {
      "function": "devIsArchived",
      "type": {
        "dataType": "integer",
        "elements": [
          {
            "elementType": "input",
            "elementOptions": [{ "type": "checkbox" }],
            "transformers": []
          }
        ]
      },
      "default_value": 0,
      "options": [],
      "localized": ["name", "description"],
      "name": [
        {
          "language_code": "en_us",
          "string": "Archived"
        }
      ],
      "description": [
        {
          "language_code": "en_us",
          "string": "Indicates whether the device is archived. The default value of the <code>Archived</code> checkbox."
        }
      ]
    },
    {
      "function": "devParentMAC",
      "events": ["go_to_node"],
      "type": {
        "dataType": "string",
        "elements": [
          { "elementType": "select", "elementOptions": [], "transformers": [] }
        ]
      },
      "default_value": "",
      "options": ["{value}"],
      "options_params": [
        {
          "name": "value",
          "type": "sql",
          "value": "SELECT '❌None' as name, '' as id UNION SELECT devName as name, devMac as id FROM Devices WHERE EXISTS (SELECT 1 FROM Settings WHERE setKey = 'NETWORK_DEVICE_TYPES' AND LOWER(setValue) LIKE '%' || LOWER(devType) || '%' AND devType <> '')"
        },
        {
          "name": "target_macs",
          "type": "setting",
          "value": "KNWN_target_macs"
        }
      ],
      "localized": ["name", "description"],
      "name": [
        {
          "language_code": "en_us",
          "string": "Network Node"
        }
      ],
      "description": [
        {
          "language_code": "en_us",
          "string": "The MAC address of the network node."
        }
      ]
    },
    {
      "function": "devParentPort",
      "type": {
        "dataType": "string",
        "elements": [
          {
            "elementType": "input",
            "elementOptions": [],
            "transformers": []
          }
        ]
      },
      "default_value": 0,
      "options": [],
      "localized": ["name", "description"],
      "name": [
        {
          "language_code": "en_us",
          "string": "Network Node Port"
        }
      ],
      "description": [
        {
          "language_code": "en_us",
          "string": "The port number of the network node."
        }
      ]
    },
    {
      "function": "devSSID",
      "type": {
        "dataType": "string",
        "elements": [
          {
            "elementType": "input",
            "elementOptions": [],
            "transformers": []
          }
        ]
      },
      "default_value": "",
      "options": [],
      "localized": ["name", "description"],
      "name": [
        {
          "language_code": "en_us",
          "string": "SSID"
        }
      ],
      "description": [
        {
          "language_code": "en_us",
          "string": "The network SSID."
        }
      ]
    },
    {
      "function": "devSite",
      "type": {
        "dataType": "string",
        "elements": [
          {
            "elementType": "input",
            "elementOptions": [],
            "transformers": []
          }
        ]
      },
      "default_value": "",
      "options": [],
      "localized": ["name", "description"],
      "name": [
        {
          "language_code": "en_us",
          "string": "Network Site"
        }
      ],
      "description": [
        {
          "language_code": "en_us",
          "string": "The network site."
        }
      ]
    }   
  ],
  "required": [
  ],
  "additionalProperties": false
}
