# 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 AccessRights(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Type of AccessRights."""

    MANAGE = "Manage"
    """MANAGE."""
    SEND = "Send"
    """SEND."""
    LISTEN = "Listen"
    """LISTEN."""


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 DefaultAction(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Default Action for Network Rule Set."""

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


class EndPointProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Provisioning state of the Private Endpoint Connection."""

    CREATING = "Creating"
    """CREATING."""
    UPDATING = "Updating"
    """UPDATING."""
    DELETING = "Deleting"
    """DELETING."""
    SUCCEEDED = "Succeeded"
    """SUCCEEDED."""
    CANCELED = "Canceled"
    """CANCELED."""
    FAILED = "Failed"
    """FAILED."""


class EntityStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Entity status."""

    ACTIVE = "Active"
    """ACTIVE."""
    DISABLED = "Disabled"
    """DISABLED."""
    RESTORING = "Restoring"
    """RESTORING."""
    SEND_DISABLED = "SendDisabled"
    """SEND_DISABLED."""
    RECEIVE_DISABLED = "ReceiveDisabled"
    """RECEIVE_DISABLED."""
    CREATING = "Creating"
    """CREATING."""
    DELETING = "Deleting"
    """DELETING."""
    RENAMING = "Renaming"
    """RENAMING."""
    UNKNOWN = "Unknown"
    """UNKNOWN."""


class FilterType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Rule filter types."""

    SQL_FILTER = "SqlFilter"
    """SQL_FILTER."""
    CORRELATION_FILTER = "CorrelationFilter"
    """CORRELATION_FILTER."""


class GeoDRRoleType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """GeoDR Role Types."""

    PRIMARY = "Primary"
    """PRIMARY."""
    SECONDARY = "Secondary"
    """SECONDARY."""


class IpAddressType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The IP address type for the namespace. Determines whether the namespace supports IPv4 only or
    both IPv4 and IPv6 (dual stack).
    """

    I_PV4 = "IPv4"
    """The namespace supports IPv4 addresses only."""
    DUAL_STACK = "DualStack"
    """The namespace supports both IPv4 and IPv6 addresses (dual stack)."""


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

    PRIMARY_KEY = "PrimaryKey"
    """PRIMARY_KEY."""
    SECONDARY_KEY = "SecondaryKey"
    """SECONDARY_KEY."""


class ManagedServiceIdentityType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Type of managed service identity."""

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


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

    DEFAULT = "$default"
    """DEFAULT."""


class Mode(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Setting to Enable or Disable Confidential Compute."""

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


class NetworkRuleIPAction(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The IP Filter Action."""

    ALLOW = "Allow"
    """ALLOW."""


class NetworkSecurityPerimeterConfigurationProvisioningState(  # pylint: disable=name-too-long
    str, Enum, metaclass=CaseInsensitiveEnumMeta
):
    """Provisioning state of NetworkSecurityPerimeter configuration propagation."""

    UNKNOWN = "Unknown"
    """UNKNOWN."""
    CREATING = "Creating"
    """CREATING."""
    UPDATING = "Updating"
    """UPDATING."""
    ACCEPTED = "Accepted"
    """ACCEPTED."""
    INVALID_RESPONSE = "InvalidResponse"
    """INVALID_RESPONSE."""
    SUCCEEDED = "Succeeded"
    """SUCCEEDED."""
    SUCCEEDED_WITH_ISSUES = "SucceededWithIssues"
    """SUCCEEDED_WITH_ISSUES."""
    FAILED = "Failed"
    """FAILED."""
    DELETING = "Deleting"
    """DELETING."""
    DELETED = "Deleted"
    """DELETED."""
    CANCELED = "Canceled"
    """CANCELED."""


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

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


class PrivateLinkConnectionStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Status of the connection."""

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


class ProvisioningStateDR(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Provisioning state of the Alias(Disaster Recovery configuration) - possible values 'Accepted'
    or 'Succeeded' or 'Failed'.
    """

    ACCEPTED = "Accepted"
    """ACCEPTED."""
    SUCCEEDED = "Succeeded"
    """SUCCEEDED."""
    FAILED = "Failed"
    """FAILED."""


class PublicNetworkAccess(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """This determines if traffic is allowed over public network. By default it is enabled."""

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


class PublicNetworkAccessFlag(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """This determines if traffic is allowed over public network. By default it is enabled."""

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


class ResourceAssociationAccessMode(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Access Mode of the resource association."""

    NO_ASSOCIATION_MODE = "NoAssociationMode"
    """NO_ASSOCIATION_MODE."""
    ENFORCED_MODE = "EnforcedMode"
    """ENFORCED_MODE."""
    LEARNING_MODE = "LearningMode"
    """LEARNING_MODE."""
    AUDIT_MODE = "AuditMode"
    """AUDIT_MODE."""
    UNSPECIFIED_MODE = "UnspecifiedMode"
    """UNSPECIFIED_MODE."""


class RoleDisasterRecovery(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """role of namespace in GEO DR - possible values 'Primary' or 'PrimaryNotReplicating' or
    'Secondary'.
    """

    PRIMARY = "Primary"
    """PRIMARY."""
    PRIMARY_NOT_REPLICATING = "PrimaryNotReplicating"
    """PRIMARY_NOT_REPLICATING."""
    SECONDARY = "Secondary"
    """SECONDARY."""


class SkuName(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Name of this SKU."""

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


class SkuTier(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The billing tier of this particular SKU."""

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


class TlsVersion(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The minimum TLS version for the cluster to support, e.g. '1.3'."""

    ONE0 = "1.0"
    """ONE0."""
    ONE1 = "1.1"
    """ONE1."""
    ONE2 = "1.2"
    """ONE2."""
    ONE3 = "1.3"
    """ONE3."""


class UnavailableReason(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Specifies the reason for the unavailability of the service."""

    NONE = "None"
    """NONE."""
    INVALID_NAME = "InvalidName"
    """INVALID_NAME."""
    SUBSCRIPTION_IS_DISABLED = "SubscriptionIsDisabled"
    """SUBSCRIPTION_IS_DISABLED."""
    NAME_IN_USE = "NameInUse"
    """NAME_IN_USE."""
    NAME_IN_LOCKDOWN = "NameInLockdown"
    """NAME_IN_LOCKDOWN."""
    TOO_MANY_NAMESPACE_IN_CURRENT_SUBSCRIPTION = "TooManyNamespaceInCurrentSubscription"
    """TOO_MANY_NAMESPACE_IN_CURRENT_SUBSCRIPTION."""
