# 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 AutoRunState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Enabling this field will trigger an automatic build on image template creation or update."""

    AUTO_RUN_ENABLED = "Enabled"
    """Autorun is enabled."""
    AUTO_RUN_DISABLED = "Disabled"
    """Autorun is disabled."""


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 OnBuildError(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Error handling behavior upon build failure."""

    CLEANUP = "cleanup"
    """cleanup."""
    ABORT = "abort"
    """abort."""


class ProvisioningErrorCode(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Error code of the provisioning failure."""

    BAD_SOURCE_TYPE = "BadSourceType"
    """BadSourceType."""
    BAD_PIR_SOURCE = "BadPIRSource"
    """BadPIRSource."""
    BAD_MANAGED_IMAGE_SOURCE = "BadManagedImageSource"
    """BadManagedImageSource."""
    BAD_SHARED_IMAGE_VERSION_SOURCE = "BadSharedImageVersionSource"
    """BadSharedImageVersionSource."""
    BAD_CUSTOMIZER_TYPE = "BadCustomizerType"
    """BadCustomizerType."""
    UNSUPPORTED_CUSTOMIZER_TYPE = "UnsupportedCustomizerType"
    """UnsupportedCustomizerType."""
    NO_CUSTOMIZER_SCRIPT = "NoCustomizerScript"
    """NoCustomizerScript."""
    BAD_VALIDATOR_TYPE = "BadValidatorType"
    """BadValidatorType."""
    UNSUPPORTED_VALIDATOR_TYPE = "UnsupportedValidatorType"
    """UnsupportedValidatorType."""
    NO_VALIDATOR_SCRIPT = "NoValidatorScript"
    """NoValidatorScript."""
    BAD_DISTRIBUTE_TYPE = "BadDistributeType"
    """BadDistributeType."""
    BAD_SHARED_IMAGE_DISTRIBUTE = "BadSharedImageDistribute"
    """BadSharedImageDistribute."""
    BAD_STAGING_RESOURCE_GROUP = "BadStagingResourceGroup"
    """BadStagingResourceGroup."""
    SERVER_ERROR = "ServerError"
    """ServerError."""
    OTHER = "Other"
    """Other."""


class ProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Provisioning state of the resource."""

    CREATING = "Creating"
    """Creating."""
    UPDATING = "Updating"
    """Updating."""
    SUCCEEDED = "Succeeded"
    """Succeeded."""
    FAILED = "Failed"
    """Failed."""
    DELETING = "Deleting"
    """Deleting."""
    CANCELED = "Canceled"
    """Canceled."""


class ReplicationMode(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Describes replication mode for distribution in Azure Compute Gallery. Omit to use the default
    (Full).
    """

    FULL = "Full"
    """Full replication mode."""
    SHALLOW = "Shallow"
    """Shallow replication mode."""


class ResourceIdentityType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The type of identity used for the image template. The type 'None' will remove any identities
    from the image template.
    """

    USER_ASSIGNED = "UserAssigned"
    """UserAssigned."""
    NONE = "None"
    """None."""


class RunState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """State of the last run."""

    RUNNING = "Running"
    """Running."""
    CANCELING = "Canceling"
    """Canceling."""
    SUCCEEDED = "Succeeded"
    """Succeeded."""
    PARTIALLY_SUCCEEDED = "PartiallySucceeded"
    """PartiallySucceeded."""
    FAILED = "Failed"
    """Failed."""
    CANCELED = "Canceled"
    """Canceled."""


class RunSubState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Sub-state of the last run."""

    QUEUED = "Queued"
    """Queued."""
    BUILDING = "Building"
    """Building."""
    CUSTOMIZING = "Customizing"
    """Customizing."""
    OPTIMIZING = "Optimizing"
    """Optimizing."""
    VALIDATING = "Validating"
    """Validating."""
    DISTRIBUTING = "Distributing"
    """Distributing."""


class SharedImageStorageAccountType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Specifies the storage account type to be used to store the Azure Compute Gallery image version
    in.
    """

    STANDARD_LRS = "Standard_LRS"
    """Standard_LRS."""
    STANDARD_ZRS = "Standard_ZRS"
    """Standard_ZRS."""
    PREMIUM_LRS = "Premium_LRS"
    """Premium_LRS."""


class VMBootOptimizationState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Enabling this field will improve VM boot time by optimizing the final customized image output."""

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


class WorkloadOptimizationState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Enabling this field will optimize vm images for specific workloads."""

    ENABLED = "Enabled"
    """Workload optimization is enabled."""
    DISABLED = "Disabled"
    """Workload optimization is disabled."""
