{
  "script": {
    "type": "string",
    "require": true,
    "alias" : "exec"
  },
  "args": {
    "type": [
      "array",
      "string"
    ]
  },
  "node_args": {
    "type": [
      "array",
      "string"
    ],
    "alias": ["interpreterArgs", "interpreter_args"]
  },
  "name": {
    "type": "string"
  },
  "max_memory_restart": {
    "type": [
      "string",
      "number"
    ],
    "regex": "^\\d+(G|M|K)?$",
    "ext_type": "sbyte",
    "desc": "it should be a NUMBER - byte, \"[NUMBER]G\"(Gigabyte), \"[NUMBER]M\"(Megabyte) or \"[NUMBER]K\"(Kilobyte)"
  },
  "uid" : {
    "type" : "string"
  },
  "gid" : {
    "type" : "string"
  },
  "restart_delay": {
    "type" : "number"
  },
  "source_map_support" : {
    "type": "boolean"
  },
  "wait_ready" : {
    "type": "boolean"
  },
  "disable_source_map_support" : {
    "type": "boolean"
  },
  "instances": {
    "type": "number"
  },
  "kill_timeout": {
    "type": "number"
  },
  "listen_timeout": {
    "type": "number"
  },
  "port": {
    "type": "number"
  },
  "log_file": {
    "type": [
      "boolean",
      "string"
    ],
    "alias": "log"
  },
  "error_file": {
    "type": "string",
    "alias": ["error", "err", "err_file", "err_log"]
  },
  "log_type": {
    "type": "string"
  },
  "out_file": {
    "type": "string",
    "alias": ["output", "out", "out_log"]
  },
  "pid_file": {
    "type": "string",
    "alias": "pid"
  },
  "cron_restart": {
    "type": "string",
    "alias": "cron"
  },
  "cwd": {
    "type": "string"
  },
  "merge_logs": {
    "type": "boolean",
    "alias" : "combine_logs"
  },
  "vizion" : {
    "type": "boolean",
    "default" : true
  },
  "pmx" : {
    "type": "boolean",
    "default" : true
  },
  "automation" : {
    "type": "boolean",
    "default" : true
  },
  "autorestart" : {
    "type": "boolean",
    "default" : true
  },
  "treekill" : {
    "type": "boolean",
    "default" : true
  },
  "watch": {
    "type": [
      "boolean",
      "array",
      "string"
    ]
  },
  "ignore_watch": {
    "type": [
      "array",
      "string"
    ]
  },
  "watch_options": {
    "type": "object"
  },
  "env": {
    "type": [
      "object",
      "string"
    ]
  },
  "^env_\\S*$": {
    "type": [
      "object",
      "string"
    ]
  },
  "disable_logs" : {
    "type": "boolean"
  },
  "log_date_format": {
    "type": "string"
  },
  "min_uptime": {
    "type": [
      "number",
      "string"
    ],
    "regex": "^\\d+(h|m|s)?$",
    "desc": "it should be a NUMBER - milliseconds, \"[NUMBER]h\"(hours), \"[NUMBER]m\"(minutes) or \"[NUMBER]s\"(seconds)",
    "min": 100,
    "ext_type": "stime"
  },
  "max_restarts": {
    "type": "number",
    "min": 0
  },
  "exec_mode": {
    "type": "string",
    "regex": "^(cluster|fork)(_mode)?$",
    "alias": "executeCommand",
    "desc": "it should be \"cluster\"(\"cluster_mode\") or \"fork\"(\"fork_mode\") only"
  },
  "exec_interpreter": {
    "type": "string",
    "alias": "interpreter"
  },
  "write": {
    "type": "boolean"
  },
  "force": {
    "type": "boolean"
  },
  "append_env_to_name": {
      "type": "boolean"
  },
  "post_update": {
    "type": "array"
  },
  "disable_trace": {
    "type": [
      "boolean"
    ]
  },
  "trace": {
    "type": [
      "boolean"
    ]
  },
  "increment_var": {
    "type": "string"
  },
  "instance_var": {
    "type": "string",
    "default" : "NODE_APP_INSTANCE"
  }
}
