# 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 AccessMode(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Access mode for storage."""

    READ_ONLY = "ReadOnly"
    """ReadOnly."""
    READ_WRITE = "ReadWrite"
    """ReadWrite."""


class Action(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Allow or Deny rules to determine for incoming IP. Note: Rules can only consist of ALL Allow or
    ALL Deny.
    """

    ALLOW = "Allow"
    """Allow."""
    DENY = "Deny"
    """Deny."""


class ActiveRevisionsMode(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Controls how active revisions are handled for the Container app."""

    MULTIPLE = "Multiple"
    """Multiple."""
    SINGLE = "Single"
    """Single."""


class Affinity(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Sticky Session Affinity."""

    STICKY = "sticky"
    """sticky."""
    NONE = "none"
    """none."""


class Applicability(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """indicates whether the profile is default for the location."""

    LOCATION_DEFAULT = "LocationDefault"
    """LocationDefault."""
    CUSTOM = "Custom"
    """Custom."""


class AppProtocol(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Tells Dapr which protocol your application is using. Valid options are http and grpc. Default
    is http.
    """

    HTTP = "http"
    """http."""
    GRPC = "grpc"
    """grpc."""


class BindingType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Custom Domain binding type."""

    DISABLED = "Disabled"
    """Disabled."""
    SNI_ENABLED = "SniEnabled"
    """SniEnabled."""
    AUTO = "Auto"
    """Auto."""


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

    SUCCEEDED = "Succeeded"
    """Succeeded."""
    FAILED = "Failed"
    """Failed."""
    CANCELED = "Canceled"
    """Canceled."""
    DELETE_FAILED = "DeleteFailed"
    """DeleteFailed."""
    PENDING = "Pending"
    """Pending."""
    DELETING = "Deleting"
    """Deleting."""


class CheckNameAvailabilityReason(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Possible reasons for a name not being available."""

    INVALID = "Invalid"
    """Name is invalid."""
    ALREADY_EXISTS = "AlreadyExists"
    """Name already exists."""


class ConnectedEnvironmentProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Provisioning state of the Kubernetes Environment."""

    SUCCEEDED = "Succeeded"
    """Succeeded."""
    FAILED = "Failed"
    """Failed."""
    CANCELED = "Canceled"
    """Canceled."""
    WAITING = "Waiting"
    """Waiting."""
    INITIALIZATION_IN_PROGRESS = "InitializationInProgress"
    """InitializationInProgress."""
    INFRASTRUCTURE_SETUP_IN_PROGRESS = "InfrastructureSetupInProgress"
    """InfrastructureSetupInProgress."""
    INFRASTRUCTURE_SETUP_COMPLETE = "InfrastructureSetupComplete"
    """InfrastructureSetupComplete."""
    SCHEDULED_FOR_DELETE = "ScheduledForDelete"
    """ScheduledForDelete."""


class ConnectedEnvironmentStorageProvisioningState(  # pylint: disable=name-too-long
    str, Enum, metaclass=CaseInsensitiveEnumMeta
):
    """Provisioning state of the storage."""

    SUCCEEDED = "Succeeded"
    """Succeeded."""
    FAILED = "Failed"
    """Failed."""
    CANCELED = "Canceled"
    """Canceled."""
    IN_PROGRESS = "InProgress"
    """InProgress."""
    DELETING = "Deleting"
    """Deleting."""


class ContainerAppContainerRunningState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Current running state of the container."""

    RUNNING = "Running"
    """Running."""
    TERMINATED = "Terminated"
    """Terminated."""
    WAITING = "Waiting"
    """Waiting."""


class ContainerAppProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Provisioning state of the Container App."""

    IN_PROGRESS = "InProgress"
    """InProgress."""
    SUCCEEDED = "Succeeded"
    """Succeeded."""
    FAILED = "Failed"
    """Failed."""
    CANCELED = "Canceled"
    """Canceled."""
    DELETING = "Deleting"
    """Deleting."""


class ContainerAppReplicaRunningState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Current running state of the replica."""

    RUNNING = "Running"
    """Running."""
    NOT_RUNNING = "NotRunning"
    """NotRunning."""
    UNKNOWN = "Unknown"
    """Unknown."""


class ContainerAppRunningStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Running status of the Container App."""

    PROGRESSING = "Progressing"
    """Container App is transitioning between Stopped and Running states."""
    RUNNING = "Running"
    """Container App is in Running state."""
    STOPPED = "Stopped"
    """Container App is in Stopped state."""
    SUSPENDED = "Suspended"
    """Container App Job is in Suspended state."""
    READY = "Ready"
    """Container App Job is in Ready state."""


class ContainerType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The container type of the sessions. You can use your own container to build the session pool,
    or you can use a predefined container to run workload with specific language.
    """

    CUSTOM_CONTAINER = "CustomContainer"
    """CustomContainer."""
    PYTHON_LTS = "PythonLTS"
    """PythonLTS."""


class CookieExpirationConvention(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The convention used when determining the session cookie's expiration."""

    FIXED_TIME = "FixedTime"
    """FixedTime."""
    IDENTITY_PROVIDER_DERIVED = "IdentityProviderDerived"
    """IdentityProviderDerived."""


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 DaprComponentProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Provisioning state of the Connected Environment Dapr Component."""

    SUCCEEDED = "Succeeded"
    """Succeeded."""
    FAILED = "Failed"
    """Failed."""
    CANCELED = "Canceled"
    """Canceled."""
    IN_PROGRESS = "InProgress"
    """InProgress."""
    DELETING = "Deleting"
    """Deleting."""


class DnsVerificationTestResult(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """DNS verification test result."""

    PASSED = "Passed"
    """Passed."""
    FAILED = "Failed"
    """Failed."""
    SKIPPED = "Skipped"
    """Skipped."""


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

    SUCCEEDED = "Succeeded"
    """Succeeded."""
    FAILED = "Failed"
    """Failed."""
    CANCELED = "Canceled"
    """Canceled."""
    WAITING = "Waiting"
    """Waiting."""
    INITIALIZATION_IN_PROGRESS = "InitializationInProgress"
    """InitializationInProgress."""
    INFRASTRUCTURE_SETUP_IN_PROGRESS = "InfrastructureSetupInProgress"
    """InfrastructureSetupInProgress."""
    INFRASTRUCTURE_SETUP_COMPLETE = "InfrastructureSetupComplete"
    """InfrastructureSetupComplete."""
    SCHEDULED_FOR_DELETE = "ScheduledForDelete"
    """ScheduledForDelete."""
    UPGRADE_REQUESTED = "UpgradeRequested"
    """UpgradeRequested."""
    UPGRADE_FAILED = "UpgradeFailed"
    """UpgradeFailed."""


class ExtendedLocationTypes(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The type of extendedLocation."""

    CUSTOM_LOCATION = "CustomLocation"
    """CustomLocation."""


class ForwardProxyConvention(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The convention used to determine the url of the request made."""

    NO_PROXY = "NoProxy"
    """NoProxy."""
    STANDARD = "Standard"
    """Standard."""
    CUSTOM = "Custom"
    """Custom."""


class HttpRouteProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The current provisioning state."""

    SUCCEEDED = "Succeeded"
    """Succeeded."""
    FAILED = "Failed"
    """Failed."""
    CANCELED = "Canceled"
    """Canceled."""
    WAITING = "Waiting"
    """Waiting."""
    UPDATING = "Updating"
    """Updating."""
    DELETING = "Deleting"
    """Deleting."""
    PENDING = "Pending"
    """Pending."""


class IdentitySettingsLifeCycle(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Use to select the lifecycle stages of a Container App during which the Managed Identity should
    be available.
    """

    NONE = "None"
    """Do not use managed identity during any lifecycle stage."""
    MAIN = "Main"
    """Use managed identity during the main stage of the Container App lifecycle."""
    INIT = "Init"
    """Use managed identity during the init stage of the Container App lifecycle."""
    ALL = "All"
    """Use managed identity during all lifecycle stages of the Container App."""


class IngressClientCertificateMode(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Client certificate mode for mTLS authentication. Ignore indicates server drops client
    certificate on forwarding. Accept indicates server forwards client certificate but does not
    require a client certificate. Require indicates server requires a client certificate.
    """

    IGNORE = "ignore"
    """ignore."""
    ACCEPT = "accept"
    """accept."""
    REQUIRE = "require"
    """require."""


class IngressTransportMethod(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Ingress transport protocol."""

    AUTO = "auto"
    """auto."""
    HTTP = "http"
    """http."""
    HTTP2 = "http2"
    """http2."""
    TCP = "tcp"
    """tcp."""


class JavaComponentProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Provisioning state of the Java Component."""

    SUCCEEDED = "Succeeded"
    """Succeeded."""
    FAILED = "Failed"
    """Failed."""
    CANCELED = "Canceled"
    """Canceled."""
    DELETING = "Deleting"
    """Deleting."""
    IN_PROGRESS = "InProgress"
    """InProgress."""


class JavaComponentType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Type of the Java Component."""

    SPRING_BOOT_ADMIN = "SpringBootAdmin"
    """SpringBootAdmin."""
    SPRING_CLOUD_EUREKA = "SpringCloudEureka"
    """SpringCloudEureka."""
    SPRING_CLOUD_CONFIG = "SpringCloudConfig"
    """SpringCloudConfig."""


class JobExecutionRunningState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Current running State of the job."""

    RUNNING = "Running"
    """Running."""
    PROCESSING = "Processing"
    """Processing."""
    STOPPED = "Stopped"
    """Stopped."""
    DEGRADED = "Degraded"
    """Degraded."""
    FAILED = "Failed"
    """Failed."""
    UNKNOWN = "Unknown"
    """Unknown."""
    SUCCEEDED = "Succeeded"
    """Succeeded."""


class JobProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Provisioning state of the Container Apps Job."""

    IN_PROGRESS = "InProgress"
    """InProgress."""
    SUCCEEDED = "Succeeded"
    """Succeeded."""
    FAILED = "Failed"
    """Failed."""
    CANCELED = "Canceled"
    """Canceled."""
    DELETING = "Deleting"
    """Deleting."""


class Kind(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Metadata to represent the container app kind, representing if a container app is workflowapp or
    functionapp.
    """

    WORKFLOWAPP = "workflowapp"
    """workflowapp."""
    FUNCTIONAPP = "functionapp"
    """functionapp."""


class LifecycleType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The lifecycle type of the session pool."""

    TIMED = "Timed"
    """Timed."""
    ON_CONTAINER_EXIT = "OnContainerExit"
    """OnContainerExit."""


class LogLevel(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default
    is info.
    """

    INFO = "info"
    """info."""
    DEBUG = "debug"
    """debug."""
    WARN = "warn"
    """warn."""
    ERROR = "error"
    """error."""


class ManagedCertificateDomainControlValidation(  # pylint: disable=name-too-long
    str, Enum, metaclass=CaseInsensitiveEnumMeta
):
    """Selected type of domain control validation for managed certificates."""

    CNAME = "CNAME"
    """CNAME."""
    HTTP = "HTTP"
    """HTTP."""
    TXT = "TXT"
    """TXT."""


class ManagedServiceIdentityType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Type of managed service identity (where both SystemAssigned and UserAssigned types are
    allowed).
    """

    NONE = "None"
    """No managed identity."""
    SYSTEM_ASSIGNED = "SystemAssigned"
    """System assigned managed identity."""
    USER_ASSIGNED = "UserAssigned"
    """User assigned managed identity."""
    SYSTEM_ASSIGNED_USER_ASSIGNED = "SystemAssigned,UserAssigned"
    """System and user assigned managed identity."""


class PoolManagementType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The pool management type of the session pool."""

    MANUAL = "Manual"
    """Manual."""
    DYNAMIC = "Dynamic"
    """Dynamic."""


class PrivateEndpointConnectionProvisioningState(  # pylint: disable=name-too-long
    str, Enum, metaclass=CaseInsensitiveEnumMeta
):
    """The current provisioning state."""

    SUCCEEDED = "Succeeded"
    """Succeeded."""
    FAILED = "Failed"
    """Failed."""
    CANCELED = "Canceled"
    """Canceled."""
    WAITING = "Waiting"
    """Waiting."""
    UPDATING = "Updating"
    """Updating."""
    DELETING = "Deleting"
    """Deleting."""
    PENDING = "Pending"
    """Pending."""


class PrivateEndpointServiceConnectionStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The private endpoint connection status."""

    PENDING = "Pending"
    """Pending."""
    APPROVED = "Approved"
    """Approved."""
    REJECTED = "Rejected"
    """Rejected."""
    DISCONNECTED = "Disconnected"
    """Disconnected."""


class PublicNetworkAccess(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Property to allow or block all public traffic. Allowed Values: 'Enabled', 'Disabled'."""

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


class RevisionHealthState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Current health State of the revision."""

    HEALTHY = "Healthy"
    """Healthy."""
    UNHEALTHY = "Unhealthy"
    """Unhealthy."""
    NONE = "None"
    """None."""


class RevisionProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Current provisioning State of the revision."""

    PROVISIONING = "Provisioning"
    """Provisioning."""
    PROVISIONED = "Provisioned"
    """Provisioned."""
    FAILED = "Failed"
    """Failed."""
    DEPROVISIONING = "Deprovisioning"
    """Deprovisioning."""
    DEPROVISIONED = "Deprovisioned"
    """Deprovisioned."""


class RevisionRunningState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Current running state of the revision."""

    RUNNING = "Running"
    """Running."""
    PROCESSING = "Processing"
    """Processing."""
    STOPPED = "Stopped"
    """Stopped."""
    DEGRADED = "Degraded"
    """Degraded."""
    FAILED = "Failed"
    """Failed."""
    UNKNOWN = "Unknown"
    """Unknown."""


class Scheme(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Scheme to use for connecting to the host. Defaults to HTTP."""

    HTTP = "HTTP"
    """HTTP."""
    HTTPS = "HTTPS"
    """HTTPS."""


class SessionNetworkStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Network status for the sessions."""

    EGRESS_ENABLED = "EgressEnabled"
    """EgressEnabled."""
    EGRESS_DISABLED = "EgressDisabled"
    """EgressDisabled."""


class SessionPoolIdentityLifeCycle(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Use to select the lifecycle stages of a Session Pool during which the Managed Identity should
    be available.
    """

    NONE = "None"
    """Do not use managed identity during any lifecycle stage."""
    MAIN = "Main"
    """Use managed identity during the main stage of the Container App lifecycle."""


class SessionPoolProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Provisioning state of the session pool."""

    IN_PROGRESS = "InProgress"
    """InProgress."""
    SUCCEEDED = "Succeeded"
    """Succeeded."""
    FAILED = "Failed"
    """Failed."""
    CANCELED = "Canceled"
    """Canceled."""
    DELETING = "Deleting"
    """Deleting."""


class SourceControlOperationState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Current provisioning State of the operation."""

    IN_PROGRESS = "InProgress"
    """InProgress."""
    SUCCEEDED = "Succeeded"
    """Succeeded."""
    FAILED = "Failed"
    """Failed."""
    CANCELED = "Canceled"
    """Canceled."""


class StorageType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Storage type for the volume. If not provided, use EmptyDir."""

    AZURE_FILE = "AzureFile"
    """AzureFile."""
    EMPTY_DIR = "EmptyDir"
    """EmptyDir."""
    SECRET = "Secret"
    """Secret."""
    NFS_AZURE_FILE = "NfsAzureFile"
    """NfsAzureFile."""


class TriggerType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Trigger type of the job."""

    SCHEDULE = "Schedule"
    """Schedule."""
    EVENT = "Event"
    """Event."""
    MANUAL = "Manual"
    """Manual."""


class Type(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The type of probe."""

    LIVENESS = "Liveness"
    """Liveness."""
    READINESS = "Readiness"
    """Readiness."""
    STARTUP = "Startup"
    """Startup."""


class UnauthenticatedClientActionV2(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The action to take when an unauthenticated client attempts to access the app."""

    REDIRECT_TO_LOGIN_PAGE = "RedirectToLoginPage"
    """RedirectToLoginPage."""
    ALLOW_ANONYMOUS = "AllowAnonymous"
    """AllowAnonymous."""
    RETURN401 = "Return401"
    """Return401."""
    RETURN403 = "Return403"
    """Return403."""


class WeekDay(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Day of the week when a managed environment can be patched."""

    MONDAY = "Monday"
    """Monday."""
    TUESDAY = "Tuesday"
    """Tuesday."""
    WEDNESDAY = "Wednesday"
    """Wednesday."""
    THURSDAY = "Thursday"
    """Thursday."""
    FRIDAY = "Friday"
    """Friday."""
    SATURDAY = "Saturday"
    """Saturday."""
    SUNDAY = "Sunday"
    """Sunday."""


class WorkflowHealthState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Gets or sets the workflow health state."""

    NOT_SPECIFIED = "NotSpecified"
    """NotSpecified."""
    HEALTHY = "Healthy"
    """Healthy."""
    UNHEALTHY = "Unhealthy"
    """Unhealthy."""
    UNKNOWN = "Unknown"
    """Unknown."""


class WorkflowKind(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Gets the logic app hybrid workflow kind."""

    STATEFUL = "Stateful"
    """Stateful."""
    STATELESS = "Stateless"
    """Stateless."""
    AGENTIC = "Agentic"
    """Agentic."""


class WorkflowState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The workflow state."""

    NOT_SPECIFIED = "NotSpecified"
    """NotSpecified."""
    COMPLETED = "Completed"
    """Completed."""
    ENABLED = "Enabled"
    """Enabled."""
    DISABLED = "Disabled"
    """Disabled."""
    DELETED = "Deleted"
    """Deleted."""
    SUSPENDED = "Suspended"
    """Suspended."""
