# coding=utf-8
# *** WARNING: this file was generated by the Pulumi SDK Generator. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

from enum import Enum

__all__ = [
    'ArmServicePackageActivationMode',
    'ArmUpgradeFailureAction',
    'ClusterUpgradeCadence',
    'ManagedIdentityType',
    'MoveCost',
    'NotificationCategory',
    'NotificationChannel',
    'NotificationLevel',
    'PartitionScheme',
    'RollingUpgradeMode',
    'ServiceCorrelationScheme',
    'ServiceKind',
    'ServiceLoadMetricWeight',
    'ServicePlacementPolicyType',
    'SfZonalUpgradeMode',
    'UpgradeMode',
    'VmssZonalUpgradeMode',
]


class ArmServicePackageActivationMode(str, Enum):
    """
    The activation Mode of the service package
    """
    SHARED_PROCESS = "SharedProcess"
    EXCLUSIVE_PROCESS = "ExclusiveProcess"


class ArmUpgradeFailureAction(str, Enum):
    """
    The activation Mode of the service package
    """
    ROLLBACK = "Rollback"
    MANUAL = "Manual"


class ClusterUpgradeCadence(str, Enum):
    """
    Indicates when new cluster runtime version upgrades will be applied after they are released. By default is Wave0. Only applies when **upgradeMode** is set to 'Automatic'.
    """
    WAVE0 = "Wave0"
    WAVE1 = "Wave1"
    WAVE2 = "Wave2"


class ManagedIdentityType(str, Enum):
    """
    The type of managed identity for the resource.
    """
    SYSTEM_ASSIGNED = "SystemAssigned"
    USER_ASSIGNED = "UserAssigned"
    SYSTEM_ASSIGNED_USER_ASSIGNED = "SystemAssigned, UserAssigned"
    NONE = "None"


class MoveCost(str, Enum):
    """
    Specifies the move cost for the service.
    """
    ZERO = "Zero"
    LOW = "Low"
    MEDIUM = "Medium"
    HIGH = "High"


class NotificationCategory(str, Enum):
    """
    The category of notification.
    """
    WAVE_PROGRESS = "WaveProgress"


class NotificationChannel(str, Enum):
    """
    The notification channel indicates the type of receivers subscribed to the notification, either user or subscription.
    """
    EMAIL_USER = "EmailUser"
    EMAIL_SUBSCRIPTION = "EmailSubscription"


class NotificationLevel(str, Enum):
    """
    The level of notification.
    """
    CRITICAL = "Critical"
    ALL = "All"


class PartitionScheme(str, Enum):
    """
    Specifies how the service is partitioned.
    """
    INVALID = "Invalid"
    SINGLETON = "Singleton"
    UNIFORM_INT64_RANGE = "UniformInt64Range"
    NAMED = "Named"


class RollingUpgradeMode(str, Enum):
    """
    The mode used to monitor health during a rolling upgrade. The values are UnmonitoredAuto, UnmonitoredManual, and Monitored.
    """
    INVALID = "Invalid"
    UNMONITORED_AUTO = "UnmonitoredAuto"
    UNMONITORED_MANUAL = "UnmonitoredManual"
    MONITORED = "Monitored"


class ServiceCorrelationScheme(str, Enum):
    """
    The ServiceCorrelationScheme which describes the relationship between this service and the service specified via ServiceName.
    """
    INVALID = "Invalid"
    AFFINITY = "Affinity"
    ALIGNED_AFFINITY = "AlignedAffinity"
    NON_ALIGNED_AFFINITY = "NonAlignedAffinity"


class ServiceKind(str, Enum):
    """
    The kind of service (Stateless or Stateful).
    """
    INVALID = "Invalid"
    STATELESS = "Stateless"
    STATEFUL = "Stateful"


class ServiceLoadMetricWeight(str, Enum):
    """
    The service load metric relative weight, compared to other metrics configured for this service, as a number.
    """
    ZERO = "Zero"
    LOW = "Low"
    MEDIUM = "Medium"
    HIGH = "High"


class ServicePlacementPolicyType(str, Enum):
    """
    The type of placement policy for a service fabric service. Following are the possible values.
    """
    INVALID = "Invalid"
    INVALID_DOMAIN = "InvalidDomain"
    REQUIRED_DOMAIN = "RequiredDomain"
    PREFERRED_PRIMARY_DOMAIN = "PreferredPrimaryDomain"
    REQUIRED_DOMAIN_DISTRIBUTION = "RequiredDomainDistribution"
    NON_PARTIALLY_PLACE_SERVICE = "NonPartiallyPlaceService"


class SfZonalUpgradeMode(str, Enum):
    """
    This property controls the logical grouping of VMs in upgrade domains (UDs). This property can't be modified if a node type with multiple Availability Zones is already present in the cluster.
    """
    PARALLEL = "Parallel"
    HIERARCHICAL = "Hierarchical"


class UpgradeMode(str, Enum):
    """
    The upgrade mode of the cluster when new Service Fabric runtime version is available.
    """
    AUTOMATIC = "Automatic"
    MANUAL = "Manual"


class VmssZonalUpgradeMode(str, Enum):
    """
    This property defines the upgrade mode for the virtual machine scale set, it is mandatory if a node type with multiple Availability Zones is added.
    """
    PARALLEL = "Parallel"
    HIERARCHICAL = "Hierarchical"
