# `Hyper.Vm.Spec`
[🔗](https://github.com/harmont-dev/hyper/blob/main/lib/hyper/vm/spec.ex#L1)

A request to create a VM: which image to boot, the instance size, the guest
architecture, and optional kernel boot args.

`type` defaults to `:base`. `arch` defaults to `nil`, meaning "resolve to the
scheduling node's architecture at create time" (`Hyper.create_vm/1` fills it in
via `Sys.Arch.current/0`). `boot_args` defaults to `nil`, meaning the standard
serial-console cmdline (`Hyper.Node.FireVMM.BootSpec`'s default).

# `t`

```elixir
@type t() :: %Hyper.Vm.Spec{
  arch: Hyper.Vm.Instance.arch() | nil,
  boot_args: String.t() | nil,
  img_id: Hyper.Img.id(),
  type: Hyper.Vm.Instance.t()
}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
