# The values in comments are the defaults.

"/Runner":
  # The directory used to store data files. Defaults to (depending on 
  # values available):
  #  * $XDG_DATA_HOME/vmrunner/${vm.name}
  #  * $HOME/.local/share/vmrunner/${vm.name}
  #  * ./${vm.name}
  # "dataDir": "$XDG_DATA_HOME"
  
  # The directory used to store runtime files. Defaults to (depending on 
  # values available):
  #  * $XDG_RUNTIME_DIR/vmrunner/${vm.name}
  #  * /tmp/${USER}/vmrunner/${vm.name}
  #  * /tmp/vmrunner/${vm.name}
  # "runtimeDir": "$XDG_RUNTIME_DIR/vmrunner/${vm.name}"
  
  # The template to use. Resolved relative to /opt/vmrunner/templates.
  # "template": "Standard-VM-latest.ftl.yaml"

  # The template is copied to the data diretory when the VM starts for
  # the first time. Subsequent starts use the copy unless this option is set.
  # "updateTemplate": false

  # Define the VM (required)
  "vm":
    # The VM's name (required)
    "name": "test-vm"
    
    # The machine's uuid. If none is specified, a uuid is generated
    # and stored in the data directory. If the uuid is important
    # (e.g. because licenses depend on it) it is recommaned to specify
    # it here explicitly or to carefully backup the data directory.
    # "uuid": "generated uuid"
    
    # Whether to provide a software TPM (defaults to false)
    # "useTpm": false
    
    # How to boot (see https://github.com/mnlipp/VM-Operator/blob/main/org.jdrupes.vmoperator.runner.qemu/resources/org/jdrupes/vmoperator/runner/qemu/defaults.yaml):
    #  * bios
    #  * uefi[-4m]
    #  * secure[-4m]
    # "firmware": "uefi"
    
    # Whether to show a boot menu.
    # "bootMenu": false
    
    # When terminating, a graceful powerdown is attempted. If it
    # doesn't succeed within the given timeout (seconds) SIGTERM
    # is sent to Qemu.
    # "powerdownTimeout": 900
    
    # RAM settings
    # "maximumRam": "1G"
    # "currentRam": "1G"
    
    # CPU settings
    # "cpuModel": "host"
    # Setting maximumCpus to 1 omits the "-smp" options. The defaults (0)
    # cause the corresponding property to be omitted from the "-smp" option.
    # If currentCpus is greater than maximumCpus, the latter is adjusted.
    # "maximumCpus": 1
    # "currentCpus": 1
    # "cpuSockets": 0
    # "diesPerSocket": 0
    # "coresPerSocket": 0
    # "threadsPerCore": 0
    # "accelertor": "kvm"
    
    # RTC settings.
    # "rtcBase": "utc"
    # "rtcClock": "rt"
    
    # Network settings
    # Supported types are "tap" and "user" (for debugging). Type "user"
    # supports only the property "net".
    # "network":
    # - "type": "tap"
    #   "bridge": "br0"
    #   "device": "virtio-net"
    #   "mac": (undefined)

    # There are no default drives. The supported types are "ide-cd"
    # and "raw". All types support a "bootindex" property.
    # Type "raw" can have a property "file" (if backed by a file on
    # the host) or a property "device" (if backed by a device).
    # Alternatively you can use "resource", which automatically be
    # interpreted as file or device as appropriate
    # (see https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/nio/file/Files.html#isRegularFile(java.nio.file.Path,java.nio.file.LinkOption...)).    
    # "drives":
    # - "type": "ide-cd"
    #   "bootindex": (undefined)
    #   "resource": (undefined)
      
    # "display":
    #   "spice":
    #     "port": 5900
    #     "ticket": (default is to disable ticketing)
    #     "streamingVideo": (default)
    #     "usbRedirects": 2
