from dynamix_sdk.utils import (
    AutoNameEnum as _AutoNameEnum,
    enum_auto as _enum_auto,
)


class AccessType(str, _AutoNameEnum):
    ARCXDU = _enum_auto()
    CXDRAU = _enum_auto()
    RCX = _enum_auto()
    R = _enum_auto()


class AffinityMode(str, _AutoNameEnum):
    ANY = _enum_auto()
    EQ = _enum_auto()
    NE = _enum_auto()


class AffinityPolicy(str, _AutoNameEnum):
    RECOMMENDED = _enum_auto()
    REQUIRED = _enum_auto()


class AffinityTopology(str, _AutoNameEnum):
    vm = 'compute'
    node = _enum_auto()


class BootDevice(str, _AutoNameEnum):
    cdrom = _enum_auto()
    hd = _enum_auto()
    network = _enum_auto()


class Chipset(str, _AutoNameEnum):
    Q35 = _enum_auto()
    i440fx = _enum_auto()


class Driver(str, _AutoNameEnum):
    KVM_X86 = _enum_auto()
    SVA_KVM_X86 = _enum_auto()


class NetType(str, _AutoNameEnum):
    DPDK = _enum_auto()
    EMPTY = _enum_auto()
    EXTNET = _enum_auto()
    SDN = _enum_auto()
    TRUNK = _enum_auto()
    VFNIC = _enum_auto()
    VINS = _enum_auto()


class NetTypeForChangeIP(str, _AutoNameEnum):
    EXTNET = _enum_auto()
    VINS = _enum_auto()


class NumaAffinity(str, _AutoNameEnum):
    none = _enum_auto()
    strict = _enum_auto()
    loose = _enum_auto()


class TXMode(str, _AutoNameEnum):
    iothread = _enum_auto()
    selected_by_hypervisor = 'selected by hypervisor'
    timer = _enum_auto()


class Ioeventfd(str, _AutoNameEnum):
    off = _enum_auto()
    on = _enum_auto()
    selected_by_hypervisor = 'selected by hypervisor'


class EventIdx(str, _AutoNameEnum):
    off = _enum_auto()
    on = _enum_auto()
    selected_by_hypervisor = 'selected by hypervisor'


class ResourceGroupStatus(str, _AutoNameEnum):
    CREATED = _enum_auto()
    DELETED = _enum_auto()
    DESTROYED = _enum_auto()
    DESTROYING = _enum_auto()
    DISABLED = _enum_auto()
    DISABLING = _enum_auto()
    ENABLED = _enum_auto()
    ENABLING = _enum_auto()
    MODELED = _enum_auto()
    RESTORING = _enum_auto()


class LockStatus(str, _AutoNameEnum):
    LOCKED = _enum_auto()
    UNLOCKED = _enum_auto()


class VMFeature(str, _AutoNameEnum):
    changemac = _enum_auto()
    cpupin = _enum_auto()
    dpdk = _enum_auto()
    hugepages = _enum_auto()
    numa = _enum_auto()
    trunk = _enum_auto()
    vfnic = _enum_auto()


class RGDefaultNetTypeForSet(str, _AutoNameEnum):
    PRIVATE = _enum_auto()
    PUBLIC = _enum_auto()


class RGDefaultNetType(str, _AutoNameEnum):
    NONE = _enum_auto()
    PRIVATE = _enum_auto()
    PUBLIC = _enum_auto()


class RGResourceType(str, _AutoNameEnum):
    vm = 'compute'
    k8s = _enum_auto()
    lb = _enum_auto()
    vins = _enum_auto()


class DiskStatus(str, _AutoNameEnum):
    ASSIGNED = _enum_auto()
    BACKUP_RUNNING = _enum_auto()
    CLONING = _enum_auto()
    CREATED = _enum_auto()
    CREATING = _enum_auto()
    DELETED = _enum_auto()
    DESTROYED = _enum_auto()
    MERGE = _enum_auto()
    MIGRATING = _enum_auto()
    MODELED = _enum_auto()
    PURGED = _enum_auto()
    REPLICATION = _enum_auto()
    ROLLBACK = _enum_auto()
    SNAPCREATE = _enum_auto()


class DiskTechStatus(str, _AutoNameEnum):
    ALLOCATED = _enum_auto()
    UNALLOCATED = _enum_auto()


class VMStatus(str, _AutoNameEnum):
    CREATED = _enum_auto()
    DELETED = _enum_auto()
    DELETING = _enum_auto()
    DESTROYED = _enum_auto()
    DESTROYING = _enum_auto()
    DISABLED = _enum_auto()
    ENABLED = _enum_auto()
    MODELED = _enum_auto()
    REDEPLOYING = _enum_auto()


class VMTechStatus(str, _AutoNameEnum):
    BACKUP_RUNNING = _enum_auto()
    BACKUP_STOPPED = _enum_auto()
    CLONING = _enum_auto()
    DOWN = _enum_auto()
    MERGE = _enum_auto()
    MIGRATING = _enum_auto()
    PAUSED = _enum_auto()
    PAUSING = _enum_auto()
    ROLLBACK = _enum_auto()
    SCHEDULED = _enum_auto()
    SNAPCREATE = _enum_auto()
    STARTED = _enum_auto()
    STARTING = _enum_auto()
    STOPPED = _enum_auto()
    STOPPING = _enum_auto()


class DiskType(str, _AutoNameEnum):
    B = _enum_auto()
    D = _enum_auto()


class AccountStatus(str, _AutoNameEnum):
    CONFIRMED = _enum_auto()
    DISABLED = _enum_auto()
    DELETED = _enum_auto()
    DESTROYED = _enum_auto()
    DESTROYING = _enum_auto()


class AccountResourceType(str, _AutoNameEnum):
    vm = 'compute'
    k8s = _enum_auto()
    lb = _enum_auto()
    vins = _enum_auto()
    flipgroup = _enum_auto()


class ImageTechStatus(str, _AutoNameEnum):
    ALLOCATED = _enum_auto()
    UNALLOCATED = _enum_auto()


class ImageStatus(str, _AutoNameEnum):
    CREATED = _enum_auto()
    CREATING = _enum_auto()
    DESTROYED = _enum_auto()
    MODELED = _enum_auto()
    PURGED = _enum_auto()


class ImageType(str, _AutoNameEnum):
    cdrom = _enum_auto()
    linux = _enum_auto()
    unknown = _enum_auto()
    virtual = _enum_auto()
    windows = _enum_auto()


class NetIfaceNamingTemplate(str, _AutoNameEnum):
    ens = _enum_auto()
    eth = _enum_auto()


class VINSStatus(str, _AutoNameEnum):
    MODELED = _enum_auto()
    CREATED = _enum_auto()
    ENABLED = _enum_auto()
    ENABLING = _enum_auto()
    DISABLED = _enum_auto()
    DISABLING = _enum_auto()
    DELETED = _enum_auto()
    DELETING = _enum_auto()
    DESTROYED = _enum_auto()
    DESTROYING = _enum_auto()


class VNFType(str, _AutoNameEnum):
    DHCP = _enum_auto()
    GW = _enum_auto()
    NAT = _enum_auto()


class VNFDevStatus(str, _AutoNameEnum):
    MODELED = _enum_auto()
    CREATED = _enum_auto()
    DELETED = _enum_auto()
    DESTROYED = _enum_auto()


class VNFDevTechStatus(str, _AutoNameEnum):
    DOWN = _enum_auto()
    MIGRATING = _enum_auto()
    SCHEDULED = _enum_auto()
    STARTED = _enum_auto()
    STARTING = _enum_auto()
    STOPPED = _enum_auto()
    STOPPING = _enum_auto()


class VNFStatus(str, _AutoNameEnum):
    MODELED = _enum_auto()
    CREATED = _enum_auto()
    ENABLED = _enum_auto()
    DISABLED = _enum_auto()
    DELETED = _enum_auto()
    DESTROYED = _enum_auto()
    STASHED = _enum_auto()


class VNFTechStatus(str, _AutoNameEnum):
    STARTING = _enum_auto()
    STARTED = _enum_auto()
    STOPPING = _enum_auto()
    STOPPED = _enum_auto()
    VIRTUAL = _enum_auto()


class VINSInterfaceType(str, _AutoNameEnum):
    MGMT = _enum_auto()


class NATRuleProtocol(str, _AutoNameEnum):
    tcp = _enum_auto()
    udp = _enum_auto()


class VNFDevType(str, _AutoNameEnum):
    vyos = _enum_auto()


class BootMode(str, _AutoNameEnum):
    bios = _enum_auto()
    uefi = _enum_auto()


class BServiceStatus(str, _AutoNameEnum):
    CREATED = _enum_auto()
    DELETED = _enum_auto()
    DELETING = _enum_auto()
    DESTROYED = _enum_auto()
    DESTROYING = _enum_auto()
    DISABLED = _enum_auto()
    DISABLING = _enum_auto()
    ENABLED = _enum_auto()
    ENABLING = _enum_auto()
    MODELED = _enum_auto()
    RECONFIGURING = _enum_auto()
    RESTORING = _enum_auto()


class BServiceTechStatus(str, _AutoNameEnum):
    PAUSED = _enum_auto()
    PAUSING = _enum_auto()
    STARTED = _enum_auto()
    STARTING = _enum_auto()
    STOPPED = _enum_auto()
    STOPPING = _enum_auto()


class BServiceGroupStatus(str, _AutoNameEnum):
    CREATED = _enum_auto()
    CREATING = _enum_auto()
    CURRUPTED = _enum_auto()
    DELETED = _enum_auto()
    DELETING = _enum_auto()
    DESTROYED = _enum_auto()
    DESTROYING = _enum_auto()
    DISABLED = _enum_auto()
    DISABLING = _enum_auto()
    ENABLED = _enum_auto()
    ENABLING = _enum_auto()
    MODELED = _enum_auto()
    RESTORING = _enum_auto()


class BServiceGroupTechStatus(str, _AutoNameEnum):
    STARTED = _enum_auto()
    STARTING = _enum_auto()
    STOPPED = _enum_auto()
    STOPPING = _enum_auto()


class SEPType(str, _AutoNameEnum):
    HITACHI = _enum_auto()
    DES = _enum_auto()
    OVS = _enum_auto()
    LOCAL = _enum_auto()
    TATLIN = _enum_auto()
    DORADO = _enum_auto()
    SHARED = _enum_auto()


class ExtNetStatus(str, _AutoNameEnum):
    CREATED = _enum_auto()
    DESTROYED = _enum_auto()
    DESTROYING = _enum_auto()
    DISABLED = _enum_auto()
    DISABLING = _enum_auto()
    ENABLED = _enum_auto()
    ENABLING = _enum_auto()
    MODELED = _enum_auto()


class BootLoaderType(str, _AutoNameEnum):
    linux = _enum_auto()
    unknown = _enum_auto()
    windows = _enum_auto()


class FlipGroupClientType(str, _AutoNameEnum):
    VM = 'compute'


class FlipGroupStatus(str, _AutoNameEnum):
    CREATED = _enum_auto()
    DESTROYED = _enum_auto()


class FlipGroupNetType(str, _AutoNameEnum):
    EXTNET = _enum_auto()
    VINS = _enum_auto()


class PoolDiskType(str, _AutoNameEnum):
    B = _enum_auto()
    D = _enum_auto()
    ANY = _enum_auto()


class CountChangeMode(str, _AutoNameEnum):
    ABSOLUTE = _enum_auto()
    RELATIVE = _enum_auto()


class LBStatus(str, _AutoNameEnum):
    MODELED = _enum_auto()
    CREATING = _enum_auto()
    CREATED = _enum_auto()
    DELETING = _enum_auto()
    DELETED = _enum_auto()
    DESTROYING = _enum_auto()
    DESTROYED = _enum_auto()
    ENABLING = _enum_auto()
    ENABLED = _enum_auto()
    DISABLING = _enum_auto()
    DISABLED = _enum_auto()
    RESTORING = _enum_auto()


class LBTechStatus(str, _AutoNameEnum):
    STARTING = _enum_auto()
    STARTED = _enum_auto()
    STOPPING = _enum_auto()
    STOPPED = _enum_auto()


class LBBackendAlgorithm(str, _AutoNameEnum):
    ROUNDROBIN = 'roundrobin'
    STATIC_RR = 'static-rr'
    LEASTCONN = 'leastconn'


class LBServerCheck(str, _AutoNameEnum):
    ENABLED = 'enabled'
    DISABLED = 'disabled'


class AccessTypeForSet(str, _AutoNameEnum):
    ARCXDU = _enum_auto()
    RCX = _enum_auto()
    R = _enum_auto()


class DataDisksChangeMode(str, _AutoNameEnum):
    DESTROY = _enum_auto()
    DETACH = _enum_auto()
    KEEP = _enum_auto()


class PhysicalNodeStatus(str, _AutoNameEnum):
    DECOMMISSIONED = _enum_auto()
    DECOMMISSIONING = _enum_auto()
    ENABLED = _enum_auto()
    ERROR = _enum_auto()
    INSTALLING = _enum_auto()
    MAINTENANCE = _enum_auto()
    RESTRICTED = _enum_auto()


class AuthBroker(str, _AutoNameEnum):
    DECS3O = 'decs3o'
    BVS = 'bvs'


class DHCPReservationType(str, _AutoNameEnum):
    DHCP = _enum_auto()
    EXCLUDED = _enum_auto()
    SERVICE = _enum_auto()
    VIP = _enum_auto()


class TaskStatus(str, _AutoNameEnum):
    ABORTED = _enum_auto()
    CLEANUPED = _enum_auto()
    ERROR = _enum_auto()
    OK = _enum_auto()
    PROCESSING = _enum_auto()
    SCHEDULED = _enum_auto()


class K8sNetworkPlugin(str, _AutoNameEnum):
    FLANNEL = 'flannel'
    CALICO = 'calico'
    WEAVENET = 'weavenet'


class K8CIStatus(str, _AutoNameEnum):
    CREATED = _enum_auto()
    DELETED = _enum_auto()
    DESTROYED = _enum_auto()
    DISABLED = _enum_auto()
    ENABLED = _enum_auto()
    MODELED = _enum_auto()


class K8sStatus(str, _AutoNameEnum):
    CREATED = _enum_auto()
    CREATING = _enum_auto()
    DELETED = _enum_auto()
    DELETING = _enum_auto()
    DESTROYED = _enum_auto()
    DESTROYING = _enum_auto()
    DISABLED = _enum_auto()
    DISABLING = _enum_auto()
    ENABLED = _enum_auto()
    ENABLING = _enum_auto()
    MODELED = _enum_auto()
    RESTORING = _enum_auto()


class K8sTechStatus(str, _AutoNameEnum):
    STARTED = _enum_auto()
    STARTING = _enum_auto()
    STOPPED = _enum_auto()
    STOPPING = _enum_auto()


class DPDKNetStatus(str, _AutoNameEnum):
    CREATED = _enum_auto()
    DESTROYED = _enum_auto()
    DISABLED = _enum_auto()
    ENABLED = _enum_auto()
