# Nested Provisioning Public API
#
# Main interface for nested provisioning
# Migrated from provisioning/kcl/nested_provisioning.k

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

{
  # Re-export contracts
  VolumeConfig = contracts.VolumeConfig,
  NetworkConfig = contracts.NetworkConfig,
  NestedVmConfig = contracts.NestedVmConfig,
  ContainerConfig = contracts.ContainerConfig,
  MultiTierDeployment = contracts.MultiTierDeployment,
  NetworkPolicy = contracts.NetworkPolicy,
  VolumeSnapshot = contracts.VolumeSnapshot,
  NestedProvisioningPolicy = contracts.NestedProvisioningPolicy,

  # Re-export defaults
  default_volume = defaults.default_volume,
  default_network = defaults.default_network,
  default_nested_vm = defaults.default_nested_vm,
  default_container = defaults.default_container,
  default_multi_tier = defaults.default_multi_tier,
  default_network_policy = defaults.default_network_policy,
  default_provisioning_policy = defaults.default_provisioning_policy,
}
