Package com.io7m.waxmill.client.api

# Interface WXMClientConfigurationType

All Known Implementing Classes:
  `WXMClientConfiguration`

    @Immutable
    public interface WXMClientConfigurationType

Configuration values passed to the client.

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `default java.nio.file.Path` | `bhyveCtlExecutable()` |
  `default java.nio.file.Path` | `bhyveExecutable()` |
  `default void` | `checkPreconditions()` | Check preconditions for the type.
  `default java.nio.file.Path` | `cuExecutable()` |
  `default java.nio.file.Path` | `grubBhyveExecutable()` |
  `default java.nio.file.Path` | `ifconfigExecutable()` |
  `java.nio.file.Path` | `virtualMachineConfigurationDirectory()` | A directory that contains virtual machine configurations.
  `WXMZFSFilesystem` | `virtualMachineRuntimeFilesystem()` | A ZFS filesystem that contains virtual machines.
  `default WXMZFSFilesystem` | `virtualMachineRuntimeFilesystemFor​(java.util.UUID machineId)` | Derive a runtime directory for a specific virtual machine.
  `default java.nio.file.Path` | `zfsExecutable()` |

- ## Method Details

  - ### virtualMachineConfigurationDirectory

    java.nio.file.Path virtualMachineConfigurationDirectory()
    A directory that contains virtual machine configurations.
    Returns:
      The virtual machine configuration directory

  - ### virtualMachineRuntimeFilesystem

    WXMZFSFilesystem virtualMachineRuntimeFilesystem()
    A ZFS filesystem that contains virtual machines. This directory will contain one ZFS filesystem per virtual machine. Note that this value is the name of the ZFS filesystem, and this doesn't necessarily match where that filesystem is mounted! For example, `zfs create x/y/z && zfs set mountpoint=/a/b/c x/y/z` will create a ZFS filesystem `x/y/z` and mount it at `/a/b/c`; the value expected here is `x/y/z`.
    Returns:
      The ZFS filesystem containing virtual machines

  - ### bhyveExecutable

    @Default default java.nio.file.Path bhyveExecutable()
    Returns:
      The "bhyve" executable path, such as `/usr/sbin/bhyve`

  - ### bhyveCtlExecutable

    @Default default java.nio.file.Path bhyveCtlExecutable()
    Returns:
      The "bhyvectl" executable path, such as `/usr/sbin/bhyvectl`

  - ### grubBhyveExecutable

    @Default default java.nio.file.Path grubBhyveExecutable()
    Returns:
      The "grub-bhyve" executable path, such as `/usr/local/sbin/grub-bhyve`

  - ### zfsExecutable

    @Default default java.nio.file.Path zfsExecutable()
    Returns:
      The "zfs" executable path, such as `/sbin/zfs`

  - ### ifconfigExecutable

    @Default default java.nio.file.Path ifconfigExecutable()
    Returns:
      The "ifconfig" executable path, such as `/sbin/ifconfig`

  - ### cuExecutable

    @Default default java.nio.file.Path cuExecutable()
    Returns:
      The "cu" executable path, such as `/usr/bin/cu`

  - ### virtualMachineRuntimeFilesystemFor

    default WXMZFSFilesystem virtualMachineRuntimeFilesystemFor​(java.util.UUID machineId)
    Derive a runtime directory for a specific virtual machine.
    Parameters:
      `machineId` - The machine ID
    Returns:
      A runtime directory

  - ### checkPreconditions

    @Check default void checkPreconditions()
    Check preconditions for the type.