<!-- Code generated from the comments of the CommonConfig struct in builder/hyperv/common/config.go; DO NOT EDIT MANUALLY -->

- `disk_block_size` (uint) - The block size of the VHD to be created.
  Recommended disk block size for Linux hyper-v guests is 1 MiB. This
  defaults to "32" MiB.

- `memory` (uint) - The amount, in megabytes, of RAM to assign to the
  VM. By default, this is 1 GB.

- `secondary_iso_images` ([]string) - A list of ISO paths to
  attach to a VM when it is booted. This is most useful for unattended
  Windows installs, which look for an Autounattend.xml file on removable
  media. By default, no secondary ISO will be attached.

- `disk_additional_size` ([]uint) - The size or sizes of any
  additional hard disks for the VM in megabytes. If this is not specified
  then the VM will only contain a primary hard disk. Additional drives
  will be attached to the SCSI interface only. The builder uses
  expandable rather than fixed-size virtual hard disks, so the actual
  file representing the disk will not use the full size unless it is
  full.

- `guest_additions_mode` (string) - If set to attach then attach and
  mount the ISO image specified in guest_additions_path. If set to
  none then guest additions are not attached and mounted; This is the
  default.

- `guest_additions_path` (string) - The path to the ISO image for guest
  additions.

- `vm_name` (string) - This is the name of the new virtual machine,
  without the file extension. By default this is "packer-BUILDNAME",
  where "BUILDNAME" is the name of the build.

- `switch_name` (string) - The name of the switch to connect the virtual
  machine to. By default, leaving this value unset will cause Packer to
  try and determine the switch to use by looking for an external switch
  that is up and running.

- `switch_vlan_id` (string) - This is the VLAN of the virtual switch's
  network card. By default none is set. If none is set then a VLAN is not
  set on the switch's network card. If this value is set it should match
  the VLAN specified in by vlan_id.

- `mac_address` (string) - This allows a specific MAC address to be used on
  the default virtual network card. The MAC address must be a string with
  no delimiters, for example "0000deadbeef".

- `vlan_id` (string) - This is the VLAN of the virtual machine's network
  card for the new virtual machine. By default none is set. If none is set
  then VLANs are not set on the virtual machine's network card.

- `cpus` (uint) - The number of CPUs the virtual machine should use. If
  this isn't specified, the default is 1 CPU.

- `generation` (uint) - The Hyper-V generation for the virtual machine. By
  default, this is 1. Generation 2 Hyper-V virtual machines do not support
  floppy drives. In this scenario use secondary_iso_images instead. Hard
  drives and DVD drives will also be SCSI and not IDE.

- `enable_mac_spoofing` (bool) - If true enable MAC address spoofing
  for the virtual machine. This defaults to false.

- `enable_dynamic_memory` (bool) - If true enable dynamic memory for
  the virtual machine. This defaults to false.

- `enable_secure_boot` (bool) - If true enable secure boot for the
  virtual machine. This defaults to false. See secure_boot_template
  below for additional settings.

- `secure_boot_template` (string) - The secure boot template to be
  configured. Valid values are "MicrosoftWindows" (Windows) or
  "MicrosoftUEFICertificateAuthority" (Linux). This only takes effect if
  enable_secure_boot is set to "true". This defaults to "MicrosoftWindows".

- `enable_virtualization_extensions` (bool) - If true enable
  virtualization extensions for the virtual machine. This defaults to
  false. For nested virtualization you need to enable MAC spoofing,
  disable dynamic memory and have at least 4GB of RAM assigned to the
  virtual machine.

- `temp_path` (string) - The location under which Packer will create a directory to house all the
  VM files and folders during the build. By default `%TEMP%` is used
  which, for most systems, will evaluate to
  `%USERPROFILE%/AppData/Local/Temp`.
  
  The build directory housed under `temp_path` will have a name similar to
  `packerhv1234567`. The seven digit number at the end of the name is
  automatically generated by Packer to ensure the directory name is
  unique.

- `configuration_version` (string) - This allows you to set the vm version when calling New-VM to generate
  the vm.

- `keep_registered` (bool) - If "true", Packer will not delete the VM from
  The Hyper-V manager.

- `communicator` (string) - Communicator

- `skip_compaction` (bool) - If true skip compacting the hard disk for
  the virtual machine when exporting. This defaults to false.

- `skip_export` (bool) - If true Packer will skip the export of the VM.
  If you are interested only in the VHD/VHDX files, you can enable this
  option. The resulting VHD/VHDX file will be output to
  <output_directory>/Virtual Hard Disks. By default this option is false
  and Packer will export the VM to output_directory.

- `headless` (bool) - Packer defaults to building Hyper-V virtual
  machines by launching a GUI that shows the console of the machine being
  built. When this value is set to true, the machine will start without a
  console.

- `first_boot_device` (string) - When configured, determines the device or device type that is given preferential
  treatment when choosing a boot device.
  
  For Generation 1:
    - `IDE`
    - `CD` *or* `DVD`
    - `Floppy`
    - `NET`
  
  For Generation 2:
    - `IDE:x:y`
    - `SCSI:x:y`
    - `CD` *or* `DVD`
    - `NET`

- `boot_order` ([]string) - When configured, the boot order determines the order of the devices
  from which to boot.
  
  The device name must be in the form of `SCSI:x:y`, for example,
  to boot from the first scsi device use `SCSI:0:0`.
  
  **NB** You should also set `first_boot_device` (e.g. `DVD`).
  
  **NB** Although the VM will have this initial boot order, the OS can
  change it, for example, Ubuntu 18.04 will modify the boot order to
  include itself as the first boot option.
  
  **NB** This only works for Generation 2 machines.
