# 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) Python Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------

from enum import Enum
from azure.core import CaseInsensitiveEnumMeta


class AsyncOperationState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The async operation state."""

    IN_PROGRESS = "InProgress"
    """InProgress."""
    SUCCEEDED = "Succeeded"
    """Succeeded."""
    FAILED = "Failed"
    """Failed."""


class CreatedByType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The kind of entity that created the resource."""

    USER = "User"
    """The entity was created by a user."""
    APPLICATION = "Application"
    """The entity was created by an application."""
    MANAGED_IDENTITY = "ManagedIdentity"
    """The entity was created by a managed identity."""
    KEY = "Key"
    """The entity was created by a key."""


class DaysOfWeek(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Type of DaysOfWeek."""

    MONDAY = "Monday"
    """Monday."""
    TUESDAY = "Tuesday"
    """Tuesday."""
    WEDNESDAY = "Wednesday"
    """Wednesday."""
    THURSDAY = "Thursday"
    """Thursday."""
    FRIDAY = "Friday"
    """Friday."""
    SATURDAY = "Saturday"
    """Saturday."""
    SUNDAY = "Sunday"
    """Sunday."""


class DirectoryType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The directory type."""

    ACTIVE_DIRECTORY = "ActiveDirectory"
    """ActiveDirectory."""


class FilterMode(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The filtering mode. Effectively this can enabling or disabling the VM sizes in a particular
    set.
    """

    EXCLUDE = "Exclude"
    """Exclude."""
    INCLUDE = "Include"
    """Include."""
    RECOMMEND = "Recommend"
    """Recommend."""
    DEFAULT = "Default"
    """Default."""


class HDInsightClusterProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The provisioning state, which only appears in the response."""

    IN_PROGRESS = "InProgress"
    """InProgress."""
    FAILED = "Failed"
    """Failed."""
    SUCCEEDED = "Succeeded"
    """Succeeded."""
    CANCELED = "Canceled"
    """Canceled."""
    DELETING = "Deleting"
    """Deleting."""


class JsonWebKeyEncryptionAlgorithm(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Algorithm identifier for encryption, default RSA-OAEP."""

    RSA_OAEP = "RSA-OAEP"
    """RSA-OAEP."""
    RSA_OAEP256 = "RSA-OAEP-256"
    """RSA-OAEP-256."""
    RSA1_5 = "RSA1_5"
    """RSA1_5."""


class OSType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The type of operating system."""

    WINDOWS = "Windows"
    """Windows."""
    LINUX = "Linux"
    """Linux."""


class OutboundDependenciesManagedType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """A value to describe how the outbound dependencies of a HDInsight cluster are managed. 'Managed'
    means that the outbound dependencies are managed by the HDInsight service. 'External' means
    that the outbound dependencies are managed by a customer specific solution.
    """

    MANAGED = "Managed"
    """Managed."""
    EXTERNAL = "External"
    """External."""


class PrivateEndpointConnectionProvisioningState(  # pylint: disable=name-too-long
    str, Enum, metaclass=CaseInsensitiveEnumMeta
):
    """The provisioning state, which only appears in the response."""

    IN_PROGRESS = "InProgress"
    """InProgress."""
    UPDATING = "Updating"
    """Updating."""
    FAILED = "Failed"
    """Failed."""
    SUCCEEDED = "Succeeded"
    """Succeeded."""
    CANCELED = "Canceled"
    """Canceled."""
    DELETING = "Deleting"
    """Deleting."""


class PrivateIPAllocationMethod(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The method that private IP address is allocated."""

    DYNAMIC = "dynamic"
    """dynamic."""
    STATIC = "static"
    """static."""


class PrivateLink(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Indicates whether or not private link is enabled."""

    DISABLED = "Disabled"
    """Disabled."""
    ENABLED = "Enabled"
    """Enabled."""


class PrivateLinkConfigurationProvisioningState(  # pylint: disable=name-too-long
    str, Enum, metaclass=CaseInsensitiveEnumMeta
):
    """The private link configuration provisioning state, which only appears in the response."""

    IN_PROGRESS = "InProgress"
    """InProgress."""
    FAILED = "Failed"
    """Failed."""
    SUCCEEDED = "Succeeded"
    """Succeeded."""
    CANCELED = "Canceled"
    """Canceled."""
    DELETING = "Deleting"
    """Deleting."""


class PrivateLinkServiceConnectionStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The concrete private link service connection."""

    APPROVED = "Approved"
    """Approved."""
    REJECTED = "Rejected"
    """Rejected."""
    PENDING = "Pending"
    """Pending."""
    REMOVED = "Removed"
    """Removed."""


class ResourceIdentityType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The type of identity used for the cluster. The type 'SystemAssigned, UserAssigned' includes
    both an implicitly created identity and a set of user assigned identities.
    """

    SYSTEM_ASSIGNED = "SystemAssigned"
    """SystemAssigned."""
    USER_ASSIGNED = "UserAssigned"
    """UserAssigned."""
    SYSTEM_ASSIGNED_USER_ASSIGNED = "SystemAssigned, UserAssigned"
    """SystemAssigned, UserAssigned."""
    NONE = "None"
    """None."""


class ResourceProviderConnection(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The direction for the resource provider connection."""

    INBOUND = "Inbound"
    """Inbound."""
    OUTBOUND = "Outbound"
    """Outbound."""


class RoleName(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Type of RoleName."""

    WORKERNODE = "workernode"
    """workernode."""


class Tier(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The cluster tier."""

    STANDARD = "Standard"
    """Standard."""
    PREMIUM = "Premium"
    """Premium."""
