{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://nao1215.github.io/jsonize/schemas/top/linux.json",
  "title": "top/linux",
  "description": "top -b on Linux (procps): one record per iteration, the summary lines plus the task table",
  "x-jsonize": {
    "definition": "top/linux",
    "version": 2
  },
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "uptime": {
        "type": "object",
        "properties": {
          "time": {
            "type": "string"
          },
          "uptime": {
            "type": "number"
          },
          "users": {
            "type": "integer"
          },
          "load_1m": {
            "type": "number"
          },
          "load_5m": {
            "type": "number"
          },
          "load_15m": {
            "type": "number"
          }
        },
        "required": [
          "time",
          "uptime",
          "users",
          "load_1m",
          "load_5m",
          "load_15m"
        ]
      },
      "tasks": {
        "type": "object",
        "properties": {
          "total": {
            "type": "integer"
          },
          "running": {
            "type": "integer"
          },
          "sleeping": {
            "type": "integer"
          },
          "stopped": {
            "type": "integer"
          },
          "zombie": {
            "type": "integer"
          }
        },
        "required": [
          "total",
          "running",
          "sleeping",
          "stopped",
          "zombie"
        ]
      },
      "cpu": {
        "type": "object",
        "properties": {
          "user": {
            "type": "number"
          },
          "system": {
            "type": "number"
          },
          "nice": {
            "type": "number"
          },
          "idle": {
            "type": "number"
          },
          "iowait": {
            "type": "number"
          },
          "hardware_irq": {
            "type": "number"
          },
          "software_irq": {
            "type": "number"
          },
          "steal": {
            "type": "number"
          }
        },
        "required": [
          "user",
          "system",
          "nice",
          "idle",
          "iowait",
          "hardware_irq",
          "software_irq",
          "steal"
        ]
      },
      "memory": {
        "type": "object",
        "properties": {
          "unit": {
            "type": "string"
          },
          "total": {
            "type": "number"
          },
          "free": {
            "type": "number"
          },
          "used": {
            "type": "number"
          },
          "buff_cache": {
            "type": "number"
          }
        },
        "required": [
          "unit",
          "total",
          "free",
          "used",
          "buff_cache"
        ]
      },
      "swap": {
        "type": "object",
        "properties": {
          "unit": {
            "type": "string"
          },
          "total": {
            "type": "number"
          },
          "free": {
            "type": "number"
          },
          "used": {
            "type": "number"
          },
          "available": {
            "type": "number"
          }
        },
        "required": [
          "unit",
          "total",
          "free",
          "used",
          "available"
        ]
      },
      "processes": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "cpu_percent": {
              "type": [
                "number",
                "null"
              ]
            },
            "mem_percent": {
              "type": [
                "number",
                "null"
              ]
            },
            "ni": {
              "type": [
                "integer",
                "null"
              ]
            },
            "pid": {
              "type": "integer"
            },
            "user": {
              "type": "string"
            }
          },
          "additionalProperties": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      }
    },
    "required": [
      "uptime",
      "tasks",
      "cpu",
      "memory",
      "swap",
      "processes"
    ]
  }
}
