{
  "code_name": "arp_scan",
  "unique_prefix": "ARPSCAN",
  "enabled": true,
  "data_source": "script",
  "mapped_to_table": "CurrentScan",  
  "data_filters": [
    {
        "compare_column" : "Object_PrimaryID",
        "compare_operator" : "==",
        "compare_field_id": "txtMacFilter",
        "compare_js_template": "'{value}'.toString()", 
        "compare_use_quotes": true 
    }
  ],
  "show_ui": true,
  "localized": ["display_name", "description", "icon"],

  "display_name": [
    {
      "language_code": "en_us",
      "string": "Arp-Scan (Network scan)"
    },
    {
      "language_code": "es_es",
      "string": "Arp-Scan (Escaneo de red)"
    }	
  ],
  "icon": [
    {
      "language_code": "en_us",
      "string": "<i class=\"fa-solid fa-search\"></i>"
    },
    {
      "language_code": "es_es",
      "string": "<i class=\"fa-solid fa-search\"></i>"
    }	
  ],
  "description": [
    {
      "language_code": "en_us",
      "string": "This plugin is to execute an arp-scan on the local network"
    },
    {
      "language_code": "es_es",
      "string": "Este plugin es para ejecutar un escaneo arp en la red local."
    }	
  ],
    "params" : [
    {
        "name"  : "subnets",
        "type"  : "setting",
        "value" : "SCAN_SUBNETS",
        "base64": true
    }],  

  "settings": [
    {
      "function": "RUN",            
      "type": "text.select",            
      "default_value":"schedule",
      "options": ["disabled", "once", "schedule", "always_after_scan",  "on_new_device"],
      "localized": ["name", "description"],
      "events": ["run"],
      "name" :[
	  {
          "language_code":"en_us",
          "string" : "When to run"
      },
	  {
          "language_code":"es_es",
          "string" : "Cuando ejecutar"
      }],
      "description": [{
          "language_code":"en_us",
          "string" : "Specify when your Network-discovery scan will run. Typical setting would be <code>schedule</code> and then you specify a cron-like schedule in the <a href=\"#ARPSCAN_RUN_SCHD\"><code>ARPSCAN_RUN_SCHD</code>setting</a> "
      },
	  {
          "language_code":"es_es",
          "string" : "Especifique cuándo se ejecutará su análisis de descubrimiento de red. La configuración típica sería <code>schedule</code> y luego se especifica una programación similar a cron en la configuración <a href=\"#ARPSCAN_RUN_SCHD\"><code>ARPSCAN_RUN_SCHD</code></a> "
      }]
  },    
    {
      "function": "CMD",
      "type": "readonly",
      "default_value": "python3 /home/pi/pialert/front/plugins/arp_scan/script.py userSubnets={subnets}",
      "options": [],
      "localized": ["name", "description"],
      "name": [
        {
          "language_code": "en_us",
          "string": "Command"
        },
        {
          "language_code": "es_es",
          "string": "Comando"
        }		
      ],
      "description": [
        {
          "language_code": "en_us",
          "string": "Command to run. This should not be changed"
        },
        {
          "language_code": "es_es",
          "string": "Comando para ejecutar. Esto no debe ser cambiado"
        }		
      ]
    },
    
    {
      "function": "RUN_TIMEOUT",
      "type": "integer",
      "default_value": 300,
      "options": [],
      "localized": ["name", "description"],
      "name": [
        {
          "language_code": "en_us",
          "string": "Run timeout"
        },
        {
          "language_code": "es_es",
          "string": "Tiempo límite de ejecución"
        }		
      ],
      "description": [
        {
          "language_code": "en_us",
          "string": "Maximum time in seconds to wait for the script to finish. If this time is exceeded the script is aborted."
        },
        {
          "language_code": "es_es",
          "string": "Tiempo máximo en segundos para esperar a que finalice el script. Si se supera este tiempo, se cancela el script."
        }		
      ]
    },
    {
        "function": "RUN_SCHD",
        "type": "text",
        "default_value":"*/3 * * * *",
        "options": [],
        "localized": ["name", "description"],
        "name" : [{
            "language_code":"en_us",
            "string" : "Schedule"
        },
		{
            "language_code":"es_es",
            "string" : "Schedule"
        }],
        "description": [{
            "language_code":"en_us",
            "string" : "Only enabled if you select <code>schedule</code> in the <a href=\"#ARPSCAN_RUN\"><code>ARPSCAN_RUN</code> setting</a>. Make sure you enter the schedule in the correct cron-like format (e.g. validate at <a href=\"https://crontab.guru/\" target=\"_blank\">crontab.guru</a>). For example entering <code>*/3 * * * *</code> will run the scan every 3 minutes. Will be run NEXT time the time passes. <br/> It's recommended to use the same schedule interval for all plugins responsible for discovering new devices."
        },
		{
            "language_code":"es_es",
            "string" : "Solo está habilitado si selecciona <code>schedule</code> en la configuración <a href=\"#ARPSCAN_RUN\"><code>ARPSCAN_RUN</code></a>. Asegúrese de ingresar la programación en el formato similar a cron correcto (por ejemplo, valide en <a href=\"https://crontab.guru/\" target=\"_blank\">crontab.guru</a>). Por ejemplo, ingresar <code>*/3 * * * *</code> ejecutará el escaneo cada 3 minutos. Se ejecutará la PRÓXIMA vez que pase el tiempo. <br/> Se recomienda utilizar el mismo intervalo de programación para todos los complementos que analizan su red."
        }]
    },
    {
        "function": "WATCH",
        "type": "text.multiselect",
        "default_value":["Watched_Value1", "Watched_Value2"],
        "options": ["Watched_Value1","Watched_Value2","Watched_Value3","Watched_Value4"],
        "localized": ["name", "description"],
        "name" :[{
            "language_code":"en_us",
            "string" : "Watched"
        },
		{
            "language_code":"es_es",
            "string" : "Watched"
        }] ,
        "description":[{
            "language_code":"en_us",
            "string" : "Send a notification if selected values change. Use <code>CTRL + Click</code> to select/deselect. <ul> <li><code>Watched_Value1</code> is IP</li><li><code>Watched_Value2</code> is Vendor</li><li><code>Watched_Value3</code> is Interface </li><li><code>Watched_Value4</code> is N/A </li></ul>"
        },
		{
            "language_code":"es_es",
            "string" : "Envía una notificación si los valores seleccionados cambian. Utilice <code>CTRL + clic</code> para seleccionar/deseleccionar. <ul> <li><code>Valor_observado1</code> es IP</li><li><code>Valor_observado2</code> es Proveedor</li><li><code>Valor_observado3</code> es Interfaz </li><li><code>Valor_observado4</code> es N/A </li></ul>"
        }] 
    },
    {
      "function": "REPORT_ON",
      "type": "text.multiselect",
      "default_value": ["new"],
      "options": ["new", "watched-changed", "watched-not-changed", "missing-in-last-scan"],
      "localized": ["name", "description"],
      "name": [
        {
          "language_code": "en_us",
          "string": "Report on"
        },
	    {
          "language_code": "es_es",
          "string": "Informar sobre"
        }	
      ],
      "description": [
        {
          "language_code": "en_us",
          "string": "When should notification be sent out."
        },
        {
          "language_code": "es_es",
          "string": "Cuándo debe enviarse una notificación."
        }		
      ]
    }
  ],

  "database_column_definitions": 
  [          
    {
      "column": "Object_PrimaryID",
      "mapped_to_column": "cur_MAC",         
      "css_classes": "col-sm-2",
      "show": true,
      "type": "device_name_mac",            
      "default_value":"",
      "options": [],
      "localized": ["name"],
      "name":[{
          "language_code":"en_us",
          "string" : "MAC"
          },
		  {
          "language_code":"es_es",
          "string" : "MAC"
          }]
    }, 
    {
        "column": "Watched_Value1",
        "mapped_to_column": "cur_IP", 
        "css_classes": "col-sm-2",
        "show": true,
        "type": "device_ip",            
        "default_value":"",
        "options": [],
        "localized": ["name"],
        "name":[{
            "language_code":"en_us",
            "string" : "IP"
            },
			{
            "language_code":"es_es",
            "string" : "IP"
            }]
    },
    {
        "column": "Watched_Value2",
        "mapped_to_column": "cur_Vendor", 
        "css_classes": "col-sm-2",
        "show": true,
        "type": "label",            
        "default_value":"",
        "options": [],
        "localized": ["name"],
        "name":[{
            "language_code":"en_us",
            "string" : "Vendor"
            },
			{
            "language_code":"es_es",
            "string" : "Proveedor"
            }]
    } ,
    {
      "column": "Dummy",
      "mapped_to_column": "cur_ScanMethod", 
      "mapped_to_column_data": {
        "value": "arp-scan"                
      }, 
      "css_classes": "col-sm-2",
      "show": true,
      "type": "label",            
      "default_value":"",
      "options": [],
      "localized": ["name"],
      "name":[{
          "language_code":"en_us",
          "string" : "Scan method"
          },
          {
          "language_code":"es_es",
          "string" : "Método de escaneo"
          }]
    } ,
    {
      "column": "DateTimeCreated",
      "css_classes": "col-sm-2",
      "show": true,
      "type": "label",            
      "default_value":"",
      "options": [],
      "localized": ["name"],
      "name":[{
          "language_code":"en_us",
          "string" : "Created"
          },
		  {
          "language_code":"es_es",
          "string" : "Creado"
          }]
    },   
    {
        "column": "DateTimeChanged",        
        "css_classes": "col-sm-2",
        "show": true,
        "type": "label",            
        "default_value":"",
        "options": [],
        "localized": ["name"],
        "name":[
          {
            "language_code":"en_us",
            "string" : "Changed"
          },
          {
            "language_code":"es_es",
            "string" : "Cambiado"
          }
        ]
    },        
    {
        "column": "Status",
        "css_classes": "col-sm-1",
        "show": true,
        "type": "replace",            
        "default_value":"",
        "options": [
            {
                "equals": "watched-not-changed",
                "replacement": "<div style='text-align:center'><i class='fa-solid fa-square-check'></i><div></div>"
            },
            {
                "equals": "watched-changed",
                "replacement": "<div style='text-align:center'><i class='fa-solid fa-triangle-exclamation'></i></div>"
            },
            {
                "equals": "new",
                "replacement": "<div style='text-align:center'><i class='fa-solid fa-circle-plus'></i></div>"
            },
            {
                "equals": "missing-in-last-scan",
                "replacement": "<div style='text-align:center'><i class='fa-solid fa-question'></i></div>"
            }
        ],
        "localized": ["name"],
        "name":[{
            "language_code":"en_us",
            "string" : "Status"
            },
    {
            "language_code":"es_es",
            "string" : "Estado"
            }]
    }           
  ]
}
