# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------

from enum import Enum, EnumMeta
from six import with_metaclass

class _CaseInsensitiveEnumMeta(EnumMeta):
    def __getitem__(self, name):
        return super().__getitem__(name.upper())

    def __getattr__(cls, name):
        """Return the enum member matching `name`
        We use __getattr__ instead of descriptors or inserting into the enum
        class' __dict__ in order to support `name` and `value` being both
        properties for enum members (which live in the class' __dict__) and
        enum members themselves.
        """
        try:
            return cls._member_map_[name.upper()]
        except KeyError:
            raise AttributeError(name)


class AgentConfigurationRebootStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):

    UNKNOWN = "unknown"
    REBOOTED = "rebooted"
    NOT_REBOOTED = "notRebooted"

class CredentialType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
    """Credential type of the run as account.
    """

    V_MWARE_FABRIC = "VMwareFabric"
    HYPER_V_FABRIC = "HyperVFabric"
    LINUX_GUEST = "LinuxGuest"
    WINDOWS_GUEST = "WindowsGuest"
    LINUX_SERVER = "LinuxServer"
    WINDOWS_SERVER = "WindowsServer"

class HighlyAvailable(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
    """Value indicating whether the VM is highly available.
    """

    UNKNOWN = "Unknown"
    NO = "No"
    YES = "Yes"

class HypervisorConfigurationHypervisorType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):

    UNKNOWN = "unknown"
    HYPERV = "hyperv"

class MachinePropertiesMonitoringState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):

    MONITORED = "monitored"
    DISCOVERED = "discovered"

class MachinePropertiesVirtualizationState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):

    UNKNOWN = "unknown"
    PHYSICAL = "physical"
    VIRTUAL = "virtual"
    HYPERVISOR = "hypervisor"

class MachineResourcesConfigurationCpuSpeedAccuracy(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):

    ACTUAL = "actual"
    ESTIMATED = "estimated"

class OperatingSystemConfigurationBitness(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):

    THIRTY_TWO_BIT = "32bit"
    SIXTY_FOUR_BIT = "64bit"

class OperatingSystemConfigurationFamily(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):

    UNKNOWN = "unknown"
    WINDOWS = "windows"
    LINUX = "linux"
    SOLARIS = "solaris"
    AIX = "aix"

class VirtualDiskMode(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
    """Disk mode property used for identifying independent disks.
    """

    PERSISTENT = "persistent"
    INDEPENDENT_PERSISTENT = "independent_persistent"
    INDEPENDENT_NONPERSISTENT = "independent_nonpersistent"
    NONPERSISTENT = "nonpersistent"
    UNDOABLE = "undoable"
    APPEND = "append"

class VirtualMachineConfigurationVirtualMachineType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):

    UNKNOWN = "unknown"
    HYPERV = "hyperv"
    LDOM = "ldom"
    LPAR = "lpar"
    VMWARE = "vmware"
    VIRTUAL_PC = "virtualPc"
    XEN = "xen"
