<!-- Code generated from the comments of the Volume struct in builder/libvirt/volume/volume.go; DO NOT EDIT MANUALLY -->

- `pool` (string) - Specifies the name of the storage pool (managed by libvirt) where the disk resides. If not specified
  the pool named `default` will be used

- `name` (string) - Providing a name for the volume which is unique to the pool. (For a disk pool, the name must be
  combination of the source device path device and next partition number to be
  created. For example, if the source device path is /dev/sdb and there are no
  partitions on the disk, then the name must be sdb1 with the next name being
  sdb2 and so on.)
  If not provided, a name will be generated in a format of `<domain_name>-<postfix>` where
  postfix will be either the alias or a random id.
  For cloudinit, the generated name will be `<domain_name>-cloudinit`

- `source` (\*VolumeSource) - Provides information about the underlying storage allocation of the volume.
  This may not be available for some pool types.

- `size` (string) - Providing the total storage allocation for the volume.
  This may be smaller than the logical capacity if the volume is sparsely allocated.
  It may also be larger than the logical capacity if the volume has substantial metadata overhead.
  If omitted when creating a volume, the volume will be fully allocated at time of creation.
  If set to a value smaller than the capacity, the pool has the option of deciding to sparsely allocate a volume.
  It does not have to honour requests for sparse allocation though.
  Different types of pools may treat sparse volumes differently.
  For example, the logical pool will not automatically expand volume's allocation when it gets full;

- `capacity` (string) - Providing the logical capacity for the volume. This value is in bytes by default,
  but a unit attribute can be specified with the same semantics as for allocation
  This is compulsory when creating a volume.

- `readonly` (bool) - If true, it indicates the device cannot be modified by the guest.

- `target_dev` (string) - DEPRECATED!
  The device order on the bus is determined automatically from the order of definition

- `bus` (string) - The optional bus attribute specifies the type of disk device to emulate;
  possible values are driver specific, with typical values being
  `ide`, `scsi`, `virtio`, `xen`, `usb`, `sata`, or `sd` `sd` since 1.1.2.
  If omitted, the bus type is inferred from the style of the device name
  (e.g. a device named 'sda' will typically be exported using a SCSI bus).

- `alias` (string) - To help users identifying devices they care about, every device can have an alias which must be unique within the domain.
  Additionally, the identifier must consist only of the following characters: `[a-zA-Z0-9_-]`.

- `format` (string) - Specifies the volume format type, like `qcow`, `qcow2`, `vmdk`, `raw`. If omitted, the storage pool's default format
  will be used.

- `device` (string) - Specifies the device type. If omitted, defaults to "disk". Can be `disk`, `floppy`, `cdrom` or `lun`.

<!-- End of code generated from the comments of the Volume struct in builder/libvirt/volume/volume.go; -->
