# 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 AccessMode(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Access Mode of the resource association."""

    ENFORCED = "Enforced"
    """ENFORCED."""
    LEARNING = "Learning"
    """LEARNING."""
    AUDIT = "Audit"
    """AUDIT."""


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

    ALEXA_CHANNEL = "AlexaChannel"
    """ALEXA_CHANNEL."""
    FACEBOOK_CHANNEL = "FacebookChannel"
    """FACEBOOK_CHANNEL."""
    EMAIL_CHANNEL = "EmailChannel"
    """EMAIL_CHANNEL."""
    KIK_CHANNEL = "KikChannel"
    """KIK_CHANNEL."""
    TELEGRAM_CHANNEL = "TelegramChannel"
    """TELEGRAM_CHANNEL."""
    SLACK_CHANNEL = "SlackChannel"
    """SLACK_CHANNEL."""
    MS_TEAMS_CHANNEL = "MsTeamsChannel"
    """MS_TEAMS_CHANNEL."""
    SKYPE_CHANNEL = "SkypeChannel"
    """SKYPE_CHANNEL."""
    WEB_CHAT_CHANNEL = "WebChatChannel"
    """WEB_CHAT_CHANNEL."""
    DIRECT_LINE_CHANNEL = "DirectLineChannel"
    """DIRECT_LINE_CHANNEL."""
    SMS_CHANNEL = "SmsChannel"
    """SMS_CHANNEL."""
    LINE_CHANNEL = "LineChannel"
    """LINE_CHANNEL."""
    DIRECT_LINE_SPEECH_CHANNEL = "DirectLineSpeechChannel"
    """DIRECT_LINE_SPEECH_CHANNEL."""
    OUTLOOK_CHANNEL = "OutlookChannel"
    """OUTLOOK_CHANNEL."""
    OMNICHANNEL = "Omnichannel"
    """OMNICHANNEL."""
    TELEPHONY_CHANNEL = "TelephonyChannel"
    """TELEPHONY_CHANNEL."""
    ACS_CHAT_CHANNEL = "AcsChatChannel"
    """ACS_CHAT_CHANNEL."""
    SEARCH_ASSISTANT = "SearchAssistant"
    """SEARCH_ASSISTANT."""
    M365_EXTENSIONS = "M365Extensions"
    """M365_EXTENSIONS."""


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 EmailChannelAuthMethod(int, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Email channel auth method. 0 Password (Default); 1 Graph."""

    PASSWORD = 0
    """Basic authentication."""
    GRAPH = 1
    """Modern authentication."""


class Key(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Determines which key is to be regenerated."""

    KEY1 = "key1"
    """KEY1."""
    KEY2 = "key2"
    """KEY2."""


class Kind(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Indicates the type of bot service."""

    SDK = "sdk"
    """SDK."""
    DESIGNER = "designer"
    """DESIGNER."""
    BOT = "bot"
    """BOT."""
    FUNCTION = "function"
    """FUNCTION."""
    AZUREBOT = "azurebot"
    """AZUREBOT."""


class MsaAppType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Microsoft App Type for the bot."""

    USER_ASSIGNED_MSI = "UserAssignedMSI"
    """USER_ASSIGNED_MSI."""
    SINGLE_TENANT = "SingleTenant"
    """SINGLE_TENANT."""
    MULTI_TENANT = "MultiTenant"
    """MULTI_TENANT."""


class NspAccessRuleDirection(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Direction of Access Rule."""

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


class OperationResultStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The status of the operation being performed."""

    CANCELED = "Canceled"
    """CANCELED."""
    SUCCEEDED = "Succeeded"
    """SUCCEEDED."""
    FAILED = "Failed"
    """FAILED."""
    REQUESTED = "Requested"
    """REQUESTED."""
    RUNNING = "Running"
    """RUNNING."""


class PrivateEndpointConnectionProvisioningState(  # pylint: disable=name-too-long
    str, Enum, metaclass=CaseInsensitiveEnumMeta
):
    """The current provisioning state."""

    SUCCEEDED = "Succeeded"
    """SUCCEEDED."""
    CREATING = "Creating"
    """CREATING."""
    DELETING = "Deleting"
    """DELETING."""
    FAILED = "Failed"
    """FAILED."""


class PrivateEndpointServiceConnectionStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The private endpoint connection status."""

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


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

    CREATING = "Creating"
    """CREATING."""
    UPDATING = "Updating"
    """UPDATING."""
    ACCEPTED = "Accepted"
    """ACCEPTED."""
    SUCCEEDED = "Succeeded"
    """SUCCEEDED."""
    FAILED = "Failed"
    """FAILED."""
    DELETING = "Deleting"
    """DELETING."""


class PublicNetworkAccess(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Whether the bot is in an isolated network."""

    ENABLED = "Enabled"
    """ENABLED."""
    DISABLED = "Disabled"
    """DISABLED."""
    SECURED_BY_PERIMETER = "SecuredByPerimeter"
    """SECURED_BY_PERIMETER."""


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

    WEB_CHAT_CHANNEL = "WebChatChannel"
    """WEB_CHAT_CHANNEL."""
    DIRECT_LINE_CHANNEL = "DirectLineChannel"
    """DIRECT_LINE_CHANNEL."""


class Severity(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Provisioning state of Network Security Perimeter configuration propagation."""

    WARNING = "Warning"
    """WARNING."""
    ERROR = "Error"
    """ERROR."""


class SkuName(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The name of SKU."""

    F0 = "F0"
    """F0."""
    S1 = "S1"
    """S1."""


class SkuTier(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Gets the sku tier. This is based on the SKU name."""

    FREE = "Free"
    """FREE."""
    STANDARD = "Standard"
    """STANDARD."""
