# Nested Provisioning Defaults
#
# Concrete default values for nested provisioning schemas.

{
  VolumeConfig = {
    name = "",
    type = 'local,
    mount_path = "/",
    readonly = false,
    mount_mode = "755",
    provider = 'aws,
  },

  NetworkConfig = {
    name = "",
    type = 'bridge,
    subnet = "192.168.1.0/24",
    mtu = 1500,
    dhcp_enabled = true,
    allow_outbound = true,
    allow_inbound = false,
  },

  NestedVmConfig = {
    name = "",
    parent_vm = "",
    cpu = 2,
    memory_mb = 2048,
    disk_gb = 20,
    nested_virt = true,
    base_image = "ubuntu-22.04",
    networks = [],
    auto_start = false,
    start_order = 100,
    restart_policy = 'always,
  },

  ContainerConfig = {
    name = "",
    image = "",
    tag = "latest",
    parent_vm = "",
    runtime = 'containerd,
    cpu_millicores = 1000,
    memory_mb = 512,
    disk_gb = 10,
    auto_start = false,
    restart_policy = 'unless_stopped,
  },

  MultiTierDeployment = {
    name = "",
    version = "1.0.0",
    networks = [],
    volumes = [],
    parent_vms = [],
    nested_vms = [],
    containers = [],
    replicas = 1,
    strategy = 'rolling,
    health_check_interval = 30,
  },

  NetworkPolicy = {
    name = "",
    direction = 'both,
    protocol = 'all,
    action = 'allow,
    priority = 100,
  },

  VolumeSnapshot = {
    name = "",
    volume_name = "",
    created_at = "1970-01-01T00:00:00Z",
    size_gb = 0,
    checksum = "",
    retention_days = 30,
    auto_delete = true,
  },

  NestedProvisioningPolicy = {
    max_nesting_depth = 3,
    max_vms_per_parent = 10,
    max_containers_per_vm = 50,
    max_cpu_per_vm = 16,
    max_memory_per_vm = 32768,
    max_disk_per_vm = 500,
    default_network_type = "bridge",
    enable_ipv6 = false,
    enable_vlan_tagging = false,
    default_volume_type = "local",
    snapshot_retention_days = 30,
    enable_security_hardening = true,
    enable_network_isolation = true,
    require_auth_between_tiers = false,
  },
}
