# VM Configuration Public API
#
# Main interface for VM configuration
# Migrated from provisioning/kcl/vm.k

let contracts = import "contracts.ncl" in
let defaults = import "defaults.ncl" in

{
  # Re-export contracts
  VmConfig = contracts.VmConfig,
  VmImage = contracts.VmImage,
  VmState = contracts.VmState,
  VmRegistry = contracts.VmRegistry,
  VmCapacity = contracts.VmCapacity,
  VmNetwork = contracts.VmNetwork,
  VmPortMapping = contracts.VmPortMapping,
  VmMount = contracts.VmMount,
  VmVolume = contracts.VmVolume,
  VmCloudInit = contracts.VmCloudInit,

  # Re-export defaults
  default_vm_config = defaults.default_vm_config,
  default_vm_image = defaults.default_vm_image,
  default_vm_network = defaults.default_vm_network,
  default_vm_volume = defaults.default_vm_volume,
  default_vm_state = defaults.default_vm_state,
  default_vm_capacity = defaults.default_vm_capacity,
  test_vm = defaults.test_vm,
  dev_vm = defaults.dev_vm,
}
