# | VM Configuration instances (defaults only)
# | Migrated from: provisioning/kcl/vm.k
# | Pattern: Hybrid - defaults + makers + direct access (contracts available via import)

let contracts_lib = import "./contracts.ncl" in
let defaults_lib = import "./defaults.ncl" in

{
  defaults = defaults_lib,

  make_vm_config | not_exported = fun overrides =>
    defaults_lib.vm_config & overrides,
  make_vm_network | not_exported = fun overrides =>
    defaults_lib.vm_network & overrides,
  make_vm_port_mapping | not_exported = fun overrides =>
    defaults_lib.vm_port_mapping & overrides,
  make_vm_mount | not_exported = fun overrides =>
    defaults_lib.vm_mount & overrides,
  make_vm_volume | not_exported = fun overrides =>
    defaults_lib.vm_volume & overrides,
  make_vm_cloud_init | not_exported = fun overrides =>
    defaults_lib.vm_cloud_init & overrides,
  make_vm_image | not_exported = fun overrides =>
    defaults_lib.vm_image & overrides,
  make_vm_state | not_exported = fun overrides =>
    defaults_lib.vm_state & overrides,
  make_vm_registry | not_exported = fun overrides =>
    defaults_lib.vm_registry & overrides,
  make_vm_capacity | not_exported = fun overrides =>
    defaults_lib.vm_capacity & overrides,

  DefaultVmConfig = defaults_lib.vm_config,
  DefaultVmNetwork = defaults_lib.vm_network,
  DefaultVmPortMapping = defaults_lib.vm_port_mapping,
  DefaultVmMount = defaults_lib.vm_mount,
  DefaultVmVolume = defaults_lib.vm_volume,
  DefaultVmCloudInit = defaults_lib.vm_cloud_init,
  DefaultVmImage = defaults_lib.vm_image,
  DefaultVmState = defaults_lib.vm_state,
  DefaultVmRegistry = defaults_lib.vm_registry,
  DefaultVmCapacity = defaults_lib.vm_capacity,
}
