# 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 ActionType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Extensible enum. Indicates the action type. "Internal" refers to actions that are for internal
    only APIs.
    """

    INTERNAL = "Internal"
    """Actions are for internal-only APIs."""


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

    ALLOWED_PARENTS = "AllowedParents"
    """AllowedParents."""
    ALLOWED_CHILDREN = "AllowedChildren"
    """AllowedChildren."""
    PARENT_AND_FIRST_LEVEL_CHILDREN = "ParentAndFirstLevelChildren"
    """ParentAndFirstLevelChildren."""
    PARENT_ONLY = "ParentOnly"
    """ParentOnly."""
    CHILDREN_ONLY = "ChildrenOnly"
    """ChildrenOnly."""


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

    FULL_HIERARCHY = "FullHierarchy"
    """FullHierarchy."""
    GROUPS_ONLY = "GroupsOnly"
    """GroupsOnly."""
    SUBSCRIPTIONS_ONLY = "SubscriptionsOnly"
    """SubscriptionsOnly."""
    AUDIT = "Audit"
    """Audit."""


class ManagementGroupChildType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The type of child resource."""

    MICROSOFT_MANAGEMENT_MANAGEMENT_GROUPS = "Microsoft.Management/managementGroups"
    """Microsoft.Management/managementGroups."""
    SUBSCRIPTIONS = "/subscriptions"
    """/subscriptions."""


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

    CHILDREN = "children"
    """children."""
    PATH = "path"
    """path."""
    ANCESTORS = "ancestors"
    """ancestors."""


class Origin(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit
    logs UX. Default value is "user,system".
    """

    USER = "user"
    """Indicates the operation is initiated by a user."""
    SYSTEM = "system"
    """Indicates the operation is initiated by a system."""
    USER_SYSTEM = "user,system"
    """Indicates the operation is initiated by a user or system."""


class Permissions(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The users specific permissions to this item."""

    NOACCESS = "noaccess"
    """noaccess."""
    VIEW = "view"
    """view."""
    EDIT = "edit"
    """edit."""
    DELETE = "delete"
    """delete."""


class Reason(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Required if nameAvailable == false. Invalid indicates the name provided does not match the
    resource provider's naming requirements (incorrect length, unsupported characters, etc.)
    AlreadyExists indicates that the name is already in use and is therefore unavailable.
    """

    INVALID = "Invalid"
    """Invalid."""
    ALREADY_EXISTS = "AlreadyExists"
    """AlreadyExists."""


class Status(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The status of the Tenant Backfill."""

    NOT_STARTED = "NotStarted"
    """NotStarted."""
    NOT_STARTED_BUT_GROUPS_EXIST = "NotStartedButGroupsExist"
    """NotStartedButGroupsExist."""
    STARTED = "Started"
    """Started."""
    FAILED = "Failed"
    """Failed."""
    CANCELLED = "Cancelled"
    """Cancelled."""
    COMPLETED = "Completed"
    """Completed."""
