# 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 ACLAction(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Azure Networking ACL Action."""

    ALLOW = "Allow"
    """ALLOW."""
    DENY = "Deny"
    """DENY."""


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

    THROTTLE_BY_JWT_SIGNATURE_RULE = "ThrottleByJwtSignatureRule"
    """THROTTLE_BY_JWT_SIGNATURE_RULE."""
    THROTTLE_BY_USER_ID_RULE = "ThrottleByUserIdRule"
    """THROTTLE_BY_USER_ID_RULE."""
    THROTTLE_BY_JWT_CUSTOM_CLAIM_RULE = "ThrottleByJwtCustomClaimRule"
    """THROTTLE_BY_JWT_CUSTOM_CLAIM_RULE."""


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

    TRAFFIC_THROTTLE_BY_JWT_SIGNATURE_RULE = "TrafficThrottleByJwtSignatureRule"
    """TRAFFIC_THROTTLE_BY_JWT_SIGNATURE_RULE."""
    TRAFFIC_THROTTLE_BY_USER_ID_RULE = "TrafficThrottleByUserIdRule"
    """TRAFFIC_THROTTLE_BY_USER_ID_RULE."""
    TRAFFIC_THROTTLE_BY_JWT_CUSTOM_CLAIM_RULE = "TrafficThrottleByJwtCustomClaimRule"
    """TRAFFIC_THROTTLE_BY_JWT_CUSTOM_CLAIM_RULE."""


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 FeatureFlags(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """FeatureFlags is the supported features of Azure SignalR service.

    * ServiceMode: Flag for backend server for SignalR service. Values allowed: "Default": have
    your own backend server; "Serverless": your application doesn't have a backend server;
    "Classic": for backward compatibility. Support both Default and Serverless mode but not
    recommended; "PredefinedOnly": for future use.
    * EnableConnectivityLogs: "true"/"false", to enable/disable the connectivity log category
    respectively.
    * EnableMessagingLogs: "true"/"false", to enable/disable the connectivity log category
    respectively.
    * EnableLiveTrace: Live Trace allows you to know what's happening inside Azure SignalR service,
    it will give you live traces in real time, it will be helpful when you developing your own
    Azure SignalR based web application or self-troubleshooting some issues. Please note that live
    traces are counted as outbound messages that will be charged. Values allowed: "true"/"false",
    to enable/disable live trace feature.
    """

    SERVICE_MODE = "ServiceMode"
    """SERVICE_MODE."""
    ENABLE_CONNECTIVITY_LOGS = "EnableConnectivityLogs"
    """ENABLE_CONNECTIVITY_LOGS."""
    ENABLE_MESSAGING_LOGS = "EnableMessagingLogs"
    """ENABLE_MESSAGING_LOGS."""
    ENABLE_LIVE_TRACE = "EnableLiveTrace"
    """ENABLE_LIVE_TRACE."""


class KeyType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The type of access key."""

    PRIMARY = "Primary"
    """PRIMARY."""
    SECONDARY = "Secondary"
    """SECONDARY."""
    SALT = "Salt"
    """SALT."""


class ManagedIdentityType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Represents the identity type: systemAssigned, userAssigned, None."""

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


class PrivateLinkServiceConnectionStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Indicates whether the connection has been Approved/Rejected/Removed by the owner of the
    service.
    """

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


class ProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Provisioning state of the resource."""

    UNKNOWN = "Unknown"
    """UNKNOWN."""
    SUCCEEDED = "Succeeded"
    """SUCCEEDED."""
    FAILED = "Failed"
    """FAILED."""
    CANCELED = "Canceled"
    """CANCELED."""
    RUNNING = "Running"
    """RUNNING."""
    CREATING = "Creating"
    """CREATING."""
    UPDATING = "Updating"
    """UPDATING."""
    DELETING = "Deleting"
    """DELETING."""
    MOVING = "Moving"
    """MOVING."""


class ScaleType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The scale type applicable to the sku."""

    NONE = "None"
    """NONE."""
    MANUAL = "Manual"
    """MANUAL."""
    AUTOMATIC = "Automatic"
    """AUTOMATIC."""


class ServiceKind(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The kind of the service."""

    SIGNAL_R = "SignalR"
    """SIGNAL_R."""
    RAW_WEB_SOCKETS = "RawWebSockets"
    """RAW_WEB_SOCKETS."""


class SharedPrivateLinkResourceStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Status of the shared private link resource."""

    PENDING = "Pending"
    """PENDING."""
    APPROVED = "Approved"
    """APPROVED."""
    REJECTED = "Rejected"
    """REJECTED."""
    DISCONNECTED = "Disconnected"
    """DISCONNECTED."""
    TIMEOUT = "Timeout"
    """TIMEOUT."""


class SignalRRequestType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The incoming request type to the service."""

    CLIENT_CONNECTION = "ClientConnection"
    """CLIENT_CONNECTION."""
    SERVER_CONNECTION = "ServerConnection"
    """SERVER_CONNECTION."""
    RESTAPI = "RESTAPI"
    """RESTAPI."""
    TRACE = "Trace"
    """TRACE."""


class SignalRSkuTier(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Optional tier of this particular SKU. 'Standard' or 'Free'.

    ``Basic`` is deprecated, use ``Standard`` instead.
    """

    FREE = "Free"
    """FREE."""
    BASIC = "Basic"
    """BASIC."""
    STANDARD = "Standard"
    """STANDARD."""
    PREMIUM = "Premium"
    """PREMIUM."""


class UpstreamAuthType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Upstream auth type enum."""

    NONE = "None"
    """NONE."""
    MANAGED_IDENTITY = "ManagedIdentity"
    """MANAGED_IDENTITY."""
