# 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 Aggregated(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The aggregation level of the score."""

    WEEK = "week"
    """WEEK."""
    DAY = "day"
    """DAY."""
    MONTH = "month"
    """MONTH."""


class Category(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The category of the recommendation."""

    HIGH_AVAILABILITY = "HighAvailability"
    """HIGH_AVAILABILITY."""
    SECURITY = "Security"
    """SECURITY."""
    PERFORMANCE = "Performance"
    """PERFORMANCE."""
    COST = "Cost"
    """COST."""
    OPERATIONAL_EXCELLENCE = "OperationalExcellence"
    """OPERATIONAL_EXCELLENCE."""


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

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


class Control(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The sub-category of the recommendation."""

    HIGH_AVAILABILITY = "HighAvailability"
    """HIGH_AVAILABILITY."""
    BUSINESS_CONTINUITY = "BusinessContinuity"
    """BUSINESS_CONTINUITY."""
    DISASTER_RECOVERY = "DisasterRecovery"
    """DISASTER_RECOVERY."""
    SCALABILITY = "Scalability"
    """SCALABILITY."""
    MONITORING_AND_ALERTING = "MonitoringAndAlerting"
    """MONITORING_AND_ALERTING."""
    SERVICE_UPGRADE_AND_RETIREMENT = "ServiceUpgradeAndRetirement"
    """SERVICE_UPGRADE_AND_RETIREMENT."""
    OTHER = "Other"
    """OTHER."""
    PRIORITIZED_RECOMMENDATIONS = "PrioritizedRecommendations"
    """PRIORITIZED_RECOMMENDATIONS."""
    PERSONALIZED = "Personalized"
    """PERSONALIZED."""


class CpuThreshold(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Minimum percentage threshold for Advisor low CPU utilization evaluation. Valid only for
    subscriptions. Valid values: 5 (default), 10, 15 or 20.
    """

    FIVE = "5"
    """FIVE."""
    TEN = "10"
    """TEN."""
    FIFTEEN = "15"
    """FIFTEEN."""
    TWENTY = "20"
    """TWENTY."""


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 DigestConfigState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """State of digest configuration."""

    ACTIVE = "Active"
    """ACTIVE."""
    DISABLED = "Disabled"
    """DISABLED."""


class Duration(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Minimum duration for Advisor low CPU utilization evaluation. Valid only for subscriptions.
    Valid values: 7 (default), 14, 21, 30, 60 or 90.
    """

    ENUM_7 = "7"
    """7."""
    ENUM_14 = "14"
    """14."""
    ENUM_21 = "21"
    """21."""
    ENUM_30 = "30"
    """30."""
    ENUM_60 = "60"
    """60."""
    ENUM_90 = "90"
    """90."""


class Impact(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The business impact of the recommendation."""

    HIGH = "High"
    """HIGH."""
    MEDIUM = "Medium"
    """MEDIUM."""
    LOW = "Low"
    """LOW."""


class PredictionType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Type of the prediction."""

    PREDICTIVE_RIGHTSIZING = "PredictiveRightsizing"
    """PREDICTIVE_RIGHTSIZING."""


class Priority(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The Priority of the Recommendation."""

    CRITICAL = "Critical"
    """CRITICAL."""
    HIGH = "High"
    """HIGH."""
    MEDIUM = "Medium"
    """MEDIUM."""
    LOW = "Low"
    """LOW."""
    INFORMATIONAL = "Informational"
    """INFORMATIONAL."""


class RecommendationDismissReason(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The reason for dismissing the Recommendation."""

    EXCESSIVE_COST_INVESTMENT_REQUIRED = "ExcessiveCostInvestmentRequired"
    """EXCESSIVE_COST_INVESTMENT_REQUIRED."""
    TOO_COMPLEX_OR_IMPRACTICAL_TO_IMPLEMENT = "TooComplexOrImpracticalToImplement"
    """TOO_COMPLEX_OR_IMPRACTICAL_TO_IMPLEMENT."""
    AN_ALTERNATIVE_SOLUTION_IS_ALREADY_IN_PLACE = "AnAlternativeSolutionIsAlreadyInPlace"
    """AN_ALTERNATIVE_SOLUTION_IS_ALREADY_IN_PLACE."""
    INCOMPATIBLE_WITH_THE_CURRENT_CONFIGURATION = "IncompatibleWithTheCurrentConfiguration"
    """INCOMPATIBLE_WITH_THE_CURRENT_CONFIGURATION."""
    IMPLEMENTATION_STEPS_ARE_UNCLEAR = "ImplementationStepsAreUnclear"
    """IMPLEMENTATION_STEPS_ARE_UNCLEAR."""
    RISK_IS_ACCEPTABLE = "RiskIsAcceptable"
    """RISK_IS_ACCEPTABLE."""
    OTHER = "Other"
    """OTHER."""


class RecommendationStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The state of the Recommendation applicable from v2026-02-01-preview."""

    NEW = "New"
    """NEW."""
    POSTPONED = "Postponed"
    """POSTPONED."""
    DISMISSED = "Dismissed"
    """DISMISSED."""
    COMPLETED = "Completed"
    """COMPLETED."""


class ReviewStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Review status."""

    NEW = "New"
    """The review has been newly created."""
    IN_PROGRESS = "InProgress"
    """The review is currently in progress."""
    COMPLETED = "Completed"
    """The review has been completed."""


class Risk(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The potential risk of not implementing the recommendation."""

    ERROR = "Error"
    """ERROR."""
    WARNING = "Warning"
    """WARNING."""
    NONE = "None"
    """NONE."""


class Scenario(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The list of scenarios applicable to this metadata entity."""

    ALERTS = "Alerts"
    """ALERTS."""
