# 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__ = [
    'AccessReviewRecurrencePatternType',
    'AccessReviewRecurrenceRangeType',
    'DefaultDecisionType',
    'EnforcementMode',
    'ExemptionCategory',
    'LockLevel',
    'ParameterType',
    'PolicyType',
    'PrincipalType',
    'ResourceIdentityType',
]


class AccessReviewRecurrencePatternType(str, Enum):
    """
    The recurrence type : weekly, monthly, etc.
    """
    WEEKLY = "weekly"
    ABSOLUTE_MONTHLY = "absoluteMonthly"


class AccessReviewRecurrenceRangeType(str, Enum):
    """
    The recurrence range type. The possible values are: endDate, noEnd, numbered.
    """
    END_DATE = "endDate"
    NO_END = "noEnd"
    NUMBERED = "numbered"


class DefaultDecisionType(str, Enum):
    """
    This specifies the behavior for the autoReview feature when an access review completes.
    """
    APPROVE = "Approve"
    DENY = "Deny"
    RECOMMENDATION = "Recommendation"


class EnforcementMode(str, Enum):
    """
    The policy assignment enforcement mode. Possible values are Default and DoNotEnforce.
    """
    DEFAULT = "Default"
    """
    The policy effect is enforced during resource creation or update.
    """
    DO_NOT_ENFORCE = "DoNotEnforce"
    """
    The policy effect is not enforced during resource creation or update.
    """


class ExemptionCategory(str, Enum):
    """
    The policy exemption category. Possible values are Waiver and Mitigated.
    """
    WAIVER = "Waiver"
    """
    This category of exemptions usually means the scope is not applicable for the policy.
    """
    MITIGATED = "Mitigated"
    """
    This category of exemptions usually means the mitigation actions have been applied to the scope.
    """


class LockLevel(str, Enum):
    """
    The level of the lock. Possible values are: NotSpecified, CanNotDelete, ReadOnly. CanNotDelete means authorized users are able to read and modify the resources, but not delete. ReadOnly means authorized users can only read from a resource, but they can't modify or delete it.
    """
    NOT_SPECIFIED = "NotSpecified"
    CAN_NOT_DELETE = "CanNotDelete"
    READ_ONLY = "ReadOnly"


class ParameterType(str, Enum):
    """
    The data type of the parameter.
    """
    STRING = "String"
    ARRAY = "Array"
    OBJECT = "Object"
    BOOLEAN = "Boolean"
    INTEGER = "Integer"
    FLOAT = "Float"
    DATE_TIME = "DateTime"


class PolicyType(str, Enum):
    """
    The type of policy definition. Possible values are NotSpecified, BuiltIn, Custom, and Static.
    """
    NOT_SPECIFIED = "NotSpecified"
    BUILT_IN = "BuiltIn"
    CUSTOM = "Custom"
    STATIC = "Static"


class PrincipalType(str, Enum):
    """
    The principal type of the assigned principal ID.
    """
    USER = "User"
    GROUP = "Group"
    SERVICE_PRINCIPAL = "ServicePrincipal"
    FOREIGN_GROUP = "ForeignGroup"


class ResourceIdentityType(str, Enum):
    """
    The identity type. This is the only required field when adding a system assigned identity to a resource.
    """
    SYSTEM_ASSIGNED = "SystemAssigned"
    """
    Indicates that a system assigned identity is associated with the resource.
    """
    NONE = "None"
    """
    Indicates that no identity is associated with the resource or that the existing identity should be removed.
    """
