"""Default VM templates configuration."""

from typing import List, Dict, Any

# Default templates for common OS versions
DEFAULT_TEMPLATES: List[Dict[str, Any]] = [
    {
        "name": "ubuntu-16.04",
        "os": "ubuntu",
        "version": "16.04",
        "os_type": "hvm",
        "os_variant": "ubuntu16.04",
        "arch": "x86_64",
        "boot": "hd",
        "description": "Ubuntu 16.04 LTS (Xenial Xerus) [EOL]",
        "cloud_image_support": True,
        "cloud_image_url": "https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cloud-images/xenial/current/xenial-server-cloudimg-amd64-disk1.img",
    },
    {
        "name": "ubuntu-18.04",
        "os": "ubuntu",
        "version": "18.04",
        "os_type": "hvm",
        "os_variant": "ubuntu18.04",
        "arch": "x86_64",
        "boot": "hd",
        "description": "Ubuntu 18.04 LTS (Bionic Beaver)",
        "cloud_image_support": True,
        "cloud_image_url": "https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cloud-images/bionic/current/bionic-server-cloudimg-amd64.img",
    },
    {
        "name": "ubuntu-20.04",
        "os": "ubuntu",
        "version": "20.04",
        "os_type": "hvm",
        "os_variant": "ubuntu20.04",
        "arch": "x86_64",
        "boot": "hd",
        "description": "Ubuntu 20.04 LTS (Focal Fossa)",
        "cloud_image_support": True,
        "cloud_image_url": "https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cloud-images/focal/current/focal-server-cloudimg-amd64.img",
    },
    {
        "name": "ubuntu-22.04",
        "os": "ubuntu",
        "version": "22.04",
        "os_type": "hvm",
        "os_variant": "ubuntu22.04",
        "arch": "x86_64",
        "boot": "hd",
        "description": "Ubuntu 22.04 LTS (Jammy Jellyfish)",
        "cloud_image_support": True,
        "cloud_image_url": "https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cloud-images/jammy/current/jammy-server-cloudimg-amd64.img",
    },
    {
        "name": "ubuntu-24.04",
        "os": "ubuntu",
        "version": "24.04",
        "os_type": "hvm",
        "os_variant": "ubuntu24.04",
        "arch": "x86_64",
        "boot": "hd",
        "description": "Ubuntu 24.04 LTS (Noble Numbat)",
        "cloud_image_support": True,
        "cloud_image_url": "https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cloud-images/noble/current/noble-server-cloudimg-amd64.img",
    },
    {
        "name": "debian-10",
        "os": "debian",
        "version": "10",
        "os_type": "hvm",
        "os_variant": "debian10",
        "arch": "x86_64",
        "boot": "hd",
        "description": "Debian 10 (Buster)",
        "cloud_image_support": True,
        "cloud_image_url": "https://cdimage.debian.org/cdimage/cloud/buster/latest/debian-10-generic-amd64.qcow2",
    },
    {
        "name": "debian-11",
        "os": "debian",
        "version": "11",
        "os_type": "hvm",
        "os_variant": "debian11",
        "arch": "x86_64",
        "boot": "hd",
        "description": "Debian 11 (Bullseye)",
        "cloud_image_support": True,
        "cloud_image_url": "https://cdimage.debian.org/cdimage/cloud/bullseye/latest/debian-11-generic-amd64.qcow2",
    },
    {
        "name": "debian-12",
        "os": "debian",
        "version": "12",
        "os_type": "hvm",
        "os_variant": "debian12",
        "arch": "x86_64",
        "boot": "hd",
        "description": "Debian 12 (Bookworm)",
        "cloud_image_support": True,
        "cloud_image_url": "https://cdimage.debian.org/cdimage/cloud/bookworm/latest/debian-12-generic-amd64.qcow2",
    },
    {
        "name": "debian-13",
        "os": "debian",
        "version": "13",
        "os_type": "hvm",
        "os_variant": "debian13",
        "arch": "x86_64",
        "boot": "hd",
        "description": "Debian 13 (Trixie)",
        "cloud_image_support": True,
        "cloud_image_url": "https://cdimage.debian.org/cdimage/cloud/trixie/latest/debian-13-generic-amd64.qcow2",
    },
    {
        "name": "centos-7",
        "os": "centos",
        "version": "7",
        "os_type": "hvm",
        "os_variant": "centos7.0",
        "arch": "x86_64",
        "boot": "hd",
        "description": "CentOS 7",
        "cloud_image_support": False,  # CentOS 7 EOL, no official cloud images
    },
    {
        "name": "rocky-8",
        "os": "rocky",
        "version": "8",
        "os_type": "hvm",
        "os_variant": "rocky8",
        "arch": "x86_64",
        "boot": "hd",
        "description": "Rocky Linux 8",
        "cloud_image_support": True,
        "cloud_image_url": "https://download.rockylinux.org/pub/rocky/8/images/Rocky-8-GenericCloud-Base-8.10-20240620.0.x86_64.qcow2",
    },
    {
        "name": "rocky-9",
        "os": "rocky",
        "version": "9",
        "os_type": "hvm",
        "os_variant": "rocky9",
        "arch": "x86_64",
        "boot": "hd",
        "description": "Rocky Linux 9",
        "cloud_image_support": True,
        "cloud_image_url": "https://download.rockylinux.org/pub/rocky/9/images/x86_64/Rocky-9-GenericCloud-Base-9.4-20240501.0.x86_64.qcow2",
    },
    {
        "name": "fedora-38",
        "os": "fedora",
        "version": "38",
        "os_type": "hvm",
        "os_variant": "fedora38",
        "arch": "x86_64",
        "boot": "hd",
        "description": "Fedora 38",
        "cloud_image_support": False,  # Fedora releases update frequently, URLs change
    },
    {
        "name": "fedora-39",
        "os": "fedora",
        "version": "39",
        "os_type": "hvm",
        "os_variant": "fedora39",
        "arch": "x86_64",
        "boot": "hd",
        "description": "Fedora 39",
        "cloud_image_support": False,
    },
    {
        "name": "fedora-40",
        "os": "fedora",
        "version": "40",
        "os_type": "hvm",
        "os_variant": "fedora40",
        "arch": "x86_64",
        "boot": "hd",
        "description": "Fedora 40",
        "cloud_image_support": False,
    },
    {
        "name": "almalinux-8",
        "os": "almalinux",
        "version": "8",
        "os_type": "hvm",
        "os_variant": "almalinux8",
        "arch": "x86_64",
        "boot": "hd",
        "description": "AlmaLinux 8",
        "cloud_image_support": True,
        "cloud_image_url": "https://repo.almalinux.org/almalinux/8/cloud/x86_64/images/AlmaLinux-8-GenericCloud-8.10-20240619.x86_64.qcow2",
    },
    {
        "name": "almalinux-9",
        "os": "almalinux",
        "version": "9",
        "os_type": "hvm",
        "os_variant": "almalinux9",
        "arch": "x86_64",
        "boot": "hd",
        "description": "AlmaLinux 9",
        "cloud_image_support": True,
        "cloud_image_url": "https://repo.almalinux.org/almalinux/9/cloud/x86_64/images/AlmaLinux-9-GenericCloud-9.4-20240520.x86_64.qcow2",
    },
]
