# 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 AllowedEndpointRecordType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The allowed type DNS record types for this profile."""

    DOMAIN_NAME = "DomainName"
    """DOMAIN_NAME."""
    I_PV4_ADDRESS = "IPv4Address"
    """I_PV4_ADDRESS."""
    I_PV6_ADDRESS = "IPv6Address"
    """I_PV6_ADDRESS."""
    ANY = "Any"
    """ANY."""


class AlwaysServe(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """If Always Serve is enabled, probing for endpoint health will be disabled and endpoints will be
    included in the traffic routing method.
    """

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


class EndpointMonitorStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The monitoring status of the endpoint."""

    CHECKING_ENDPOINT = "CheckingEndpoint"
    """CHECKING_ENDPOINT."""
    ONLINE = "Online"
    """ONLINE."""
    DEGRADED = "Degraded"
    """DEGRADED."""
    DISABLED = "Disabled"
    """DISABLED."""
    INACTIVE = "Inactive"
    """INACTIVE."""
    STOPPED = "Stopped"
    """STOPPED."""
    UNMONITORED = "Unmonitored"
    """UNMONITORED."""


class EndpointStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The status of the endpoint. If the endpoint is Enabled, it is probed for endpoint health and is
    included in the traffic routing method.
    """

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


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

    AZURE_ENDPOINTS = "AzureEndpoints"
    """AZURE_ENDPOINTS."""
    EXTERNAL_ENDPOINTS = "ExternalEndpoints"
    """EXTERNAL_ENDPOINTS."""
    NESTED_ENDPOINTS = "NestedEndpoints"
    """NESTED_ENDPOINTS."""


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

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


class MonitorProtocol(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The protocol (HTTP, HTTPS or TCP) used to probe for endpoint health."""

    HTTP = "HTTP"
    """HTTP."""
    HTTPS = "HTTPS"
    """HTTPS."""
    TCP = "TCP"
    """TCP."""


class ProfileMonitorStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The profile-level monitoring status of the Traffic Manager profile."""

    CHECKING_ENDPOINTS = "CheckingEndpoints"
    """CHECKING_ENDPOINTS."""
    ONLINE = "Online"
    """ONLINE."""
    DEGRADED = "Degraded"
    """DEGRADED."""
    DISABLED = "Disabled"
    """DISABLED."""
    INACTIVE = "Inactive"
    """INACTIVE."""


class ProfileStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The status of the Traffic Manager profile."""

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


class RecordType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """When record type is set, a traffic manager profile will allow only endpoints that match this
    type.
    """

    A = "A"
    """A record type."""
    AAAA = "AAAA"
    """AAAA record type."""
    CNAME = "CNAME"
    """CNAME record type."""


class TrafficRoutingMethod(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The traffic routing method of the Traffic Manager profile."""

    PERFORMANCE = "Performance"
    """PERFORMANCE."""
    PRIORITY = "Priority"
    """PRIORITY."""
    WEIGHTED = "Weighted"
    """WEIGHTED."""
    GEOGRAPHIC = "Geographic"
    """GEOGRAPHIC."""
    MULTI_VALUE = "MultiValue"
    """MULTI_VALUE."""
    SUBNET = "Subnet"
    """SUBNET."""


class TrafficViewEnrollmentStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Indicates whether Traffic View is 'Enabled' or 'Disabled' for the Traffic Manager profile.
    Null, indicates 'Disabled'. Enabling this feature will increase the cost of the Traffic Manage
    profile.
    """

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