malware on-demand queue put:
  type: dict
  help: Queue on-demand scans for the selected paths
  return_type: NullAgentResponse
  cli:
    users:
      - root
  schema:
    paths:
      type: list
      schema:
        type: string
      required: true
      positional: true
      help: Paths to add to the queue

    prioritize:
      type: boolean
      default: false
      help: Put the scans on top of the queue

    detect_elf:
      type: boolean
      default: false
      help: Treat ELF binaries in home directories as malware.

    file_mask:
      type: string
      nullable: true
      help: |
        Several patterns can be added with ", " delimiter.
        Example: `*.js, *.php`

    ignore_mask:
      type: string
      nullable: true
      help: |
        Several patterns can be added with ", " delimiter.
        Example: `*.log, *.tmp`

    intensity:
      type: string
      nullable: true
      allowed:
        - low
        - moderate
        - high
      help: |
        Scan intensity, simplified.
        Overrides `intensity_cpu`, `intensity_io` and `intensity_ram`.

    intensity_cpu:
      type: integer
      coerce: int
      nullable: true
      min: 1
      max: 7
      help: |
        CPU usage allowed for the scan - from minimal, to 1 cpu core.
        The method depends on the system: lve, cgroups, nice.
        The default value can be configured in `MALWARE_SCAN_INTENSITY.cpu` config option.

    intensity_io:
      type: integer
      coerce: int
      nullable: true
      min: 1
      max: 7
      help: |
        Disk usage allowed for the scan.
        The default value can be configured in `MALWARE_SCAN_INTENSITY.io` config option.

    intensity_ram:
      type: integer
      coerce: int
      nullable: true
      min: 1024
      help: |
        RAM usage allowed for the scan, in MB.
        The default value can be configured in `MALWARE_SCAN_INTENSITY.ram` config option.

    follow_symlinks:
      type: boolean
      default: false
      help: If true, the scanner may traverse outside of the initial directory.

    scan_file:
      type: boolean
      default: true
      help: Scan files in set path.

    scan_db:
      type: boolean
      default: null
      coerce: scan_db
      help: Scan databases of applications found in set path.

malware on-demand queue remove:
  return_type: NullAgentResponse
  help: Remove on-demand scans from the queue
  cli:
    users:
      - root
  schema:
    scan_ids:
      type: list
      schema:
        type: string
      required: false
      positional: true
      help: IDs obtained via `malware on-demand list`
