"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import google.protobuf.descriptor
import google.protobuf.duration_pb2
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import typing
import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor = ...

class WorkflowExecution(google.protobuf.message.Message):
    """Indicates various phases of Workflow Execution"""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class Phase(_Phase, metaclass=_PhaseEnumTypeWrapper):
        pass
    class _Phase:
        V = typing.NewType('V', builtins.int)
    class _PhaseEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Phase.V], builtins.type):
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor = ...
        UNDEFINED = WorkflowExecution.Phase.V(0)
        QUEUED = WorkflowExecution.Phase.V(1)
        RUNNING = WorkflowExecution.Phase.V(2)
        SUCCEEDING = WorkflowExecution.Phase.V(3)
        SUCCEEDED = WorkflowExecution.Phase.V(4)
        FAILING = WorkflowExecution.Phase.V(5)
        FAILED = WorkflowExecution.Phase.V(6)
        ABORTED = WorkflowExecution.Phase.V(7)
        TIMED_OUT = WorkflowExecution.Phase.V(8)

    UNDEFINED = WorkflowExecution.Phase.V(0)
    QUEUED = WorkflowExecution.Phase.V(1)
    RUNNING = WorkflowExecution.Phase.V(2)
    SUCCEEDING = WorkflowExecution.Phase.V(3)
    SUCCEEDED = WorkflowExecution.Phase.V(4)
    FAILING = WorkflowExecution.Phase.V(5)
    FAILED = WorkflowExecution.Phase.V(6)
    ABORTED = WorkflowExecution.Phase.V(7)
    TIMED_OUT = WorkflowExecution.Phase.V(8)

    def __init__(self,
        ) -> None: ...
global___WorkflowExecution = WorkflowExecution

class NodeExecution(google.protobuf.message.Message):
    """Indicates various phases of Node Execution"""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class Phase(_Phase, metaclass=_PhaseEnumTypeWrapper):
        pass
    class _Phase:
        V = typing.NewType('V', builtins.int)
    class _PhaseEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Phase.V], builtins.type):
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor = ...
        UNDEFINED = NodeExecution.Phase.V(0)
        QUEUED = NodeExecution.Phase.V(1)
        RUNNING = NodeExecution.Phase.V(2)
        SUCCEEDED = NodeExecution.Phase.V(3)
        FAILING = NodeExecution.Phase.V(4)
        FAILED = NodeExecution.Phase.V(5)
        ABORTED = NodeExecution.Phase.V(6)
        SKIPPED = NodeExecution.Phase.V(7)
        TIMED_OUT = NodeExecution.Phase.V(8)
        DYNAMIC_RUNNING = NodeExecution.Phase.V(9)
        RECOVERED = NodeExecution.Phase.V(10)

    UNDEFINED = NodeExecution.Phase.V(0)
    QUEUED = NodeExecution.Phase.V(1)
    RUNNING = NodeExecution.Phase.V(2)
    SUCCEEDED = NodeExecution.Phase.V(3)
    FAILING = NodeExecution.Phase.V(4)
    FAILED = NodeExecution.Phase.V(5)
    ABORTED = NodeExecution.Phase.V(6)
    SKIPPED = NodeExecution.Phase.V(7)
    TIMED_OUT = NodeExecution.Phase.V(8)
    DYNAMIC_RUNNING = NodeExecution.Phase.V(9)
    RECOVERED = NodeExecution.Phase.V(10)

    def __init__(self,
        ) -> None: ...
global___NodeExecution = NodeExecution

class TaskExecution(google.protobuf.message.Message):
    """Phases that task plugins can go through. Not all phases may be applicable to a specific plugin task,
    but this is the cumulative list that customers may want to know about for their task.
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class Phase(_Phase, metaclass=_PhaseEnumTypeWrapper):
        pass
    class _Phase:
        V = typing.NewType('V', builtins.int)
    class _PhaseEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Phase.V], builtins.type):
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor = ...
        UNDEFINED = TaskExecution.Phase.V(0)
        QUEUED = TaskExecution.Phase.V(1)
        RUNNING = TaskExecution.Phase.V(2)
        SUCCEEDED = TaskExecution.Phase.V(3)
        ABORTED = TaskExecution.Phase.V(4)
        FAILED = TaskExecution.Phase.V(5)
        INITIALIZING = TaskExecution.Phase.V(6)
        """To indicate cases where task is initializing, like: ErrImagePull, ContainerCreating, PodInitializing"""

        WAITING_FOR_RESOURCES = TaskExecution.Phase.V(7)
        """To address cases, where underlying resource is not available: Backoff error, Resource quota exceeded"""


    UNDEFINED = TaskExecution.Phase.V(0)
    QUEUED = TaskExecution.Phase.V(1)
    RUNNING = TaskExecution.Phase.V(2)
    SUCCEEDED = TaskExecution.Phase.V(3)
    ABORTED = TaskExecution.Phase.V(4)
    FAILED = TaskExecution.Phase.V(5)
    INITIALIZING = TaskExecution.Phase.V(6)
    """To indicate cases where task is initializing, like: ErrImagePull, ContainerCreating, PodInitializing"""

    WAITING_FOR_RESOURCES = TaskExecution.Phase.V(7)
    """To address cases, where underlying resource is not available: Backoff error, Resource quota exceeded"""


    def __init__(self,
        ) -> None: ...
global___TaskExecution = TaskExecution

class ExecutionError(google.protobuf.message.Message):
    """Represents the error message from the execution."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class ErrorKind(_ErrorKind, metaclass=_ErrorKindEnumTypeWrapper):
        """Error type: System or User"""
        pass
    class _ErrorKind:
        V = typing.NewType('V', builtins.int)
    class _ErrorKindEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ErrorKind.V], builtins.type):
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor = ...
        UNKNOWN = ExecutionError.ErrorKind.V(0)
        USER = ExecutionError.ErrorKind.V(1)
        SYSTEM = ExecutionError.ErrorKind.V(2)

    UNKNOWN = ExecutionError.ErrorKind.V(0)
    USER = ExecutionError.ErrorKind.V(1)
    SYSTEM = ExecutionError.ErrorKind.V(2)

    CODE_FIELD_NUMBER: builtins.int
    MESSAGE_FIELD_NUMBER: builtins.int
    ERROR_URI_FIELD_NUMBER: builtins.int
    KIND_FIELD_NUMBER: builtins.int
    code: typing.Text = ...
    """Error code indicates a grouping of a type of error.
    More Info: <Link>
    """

    message: typing.Text = ...
    """Detailed description of the error - including stack trace."""

    error_uri: typing.Text = ...
    """Full error contents accessible via a URI"""

    kind: global___ExecutionError.ErrorKind.V = ...
    def __init__(self,
        *,
        code : typing.Text = ...,
        message : typing.Text = ...,
        error_uri : typing.Text = ...,
        kind : global___ExecutionError.ErrorKind.V = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"code",b"code",u"error_uri",b"error_uri",u"kind",b"kind",u"message",b"message"]) -> None: ...
global___ExecutionError = ExecutionError

class TaskLog(google.protobuf.message.Message):
    """Log information for the task that is specific to a log sink
    When our log story is flushed out, we may have more metadata here like log link expiry
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class MessageFormat(_MessageFormat, metaclass=_MessageFormatEnumTypeWrapper):
        pass
    class _MessageFormat:
        V = typing.NewType('V', builtins.int)
    class _MessageFormatEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_MessageFormat.V], builtins.type):
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor = ...
        UNKNOWN = TaskLog.MessageFormat.V(0)
        CSV = TaskLog.MessageFormat.V(1)
        JSON = TaskLog.MessageFormat.V(2)

    UNKNOWN = TaskLog.MessageFormat.V(0)
    CSV = TaskLog.MessageFormat.V(1)
    JSON = TaskLog.MessageFormat.V(2)

    URI_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    MESSAGE_FORMAT_FIELD_NUMBER: builtins.int
    TTL_FIELD_NUMBER: builtins.int
    uri: typing.Text = ...
    name: typing.Text = ...
    message_format: global___TaskLog.MessageFormat.V = ...
    @property
    def ttl(self) -> google.protobuf.duration_pb2.Duration: ...
    def __init__(self,
        *,
        uri : typing.Text = ...,
        name : typing.Text = ...,
        message_format : global___TaskLog.MessageFormat.V = ...,
        ttl : typing.Optional[google.protobuf.duration_pb2.Duration] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"ttl",b"ttl"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"message_format",b"message_format",u"name",b"name",u"ttl",b"ttl",u"uri",b"uri"]) -> None: ...
global___TaskLog = TaskLog

class QualityOfServiceSpec(google.protobuf.message.Message):
    """Represents customized execution run-time attributes."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    QUEUEING_BUDGET_FIELD_NUMBER: builtins.int
    @property
    def queueing_budget(self) -> google.protobuf.duration_pb2.Duration:
        """Indicates how much queueing delay an execution can tolerate."""
        pass
    def __init__(self,
        *,
        queueing_budget : typing.Optional[google.protobuf.duration_pb2.Duration] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"queueing_budget",b"queueing_budget"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"queueing_budget",b"queueing_budget"]) -> None: ...
global___QualityOfServiceSpec = QualityOfServiceSpec

class QualityOfService(google.protobuf.message.Message):
    """Indicates the priority of an execution."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class Tier(_Tier, metaclass=_TierEnumTypeWrapper):
        pass
    class _Tier:
        V = typing.NewType('V', builtins.int)
    class _TierEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Tier.V], builtins.type):
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor = ...
        UNDEFINED = QualityOfService.Tier.V(0)
        """Default: no quality of service specified."""

        HIGH = QualityOfService.Tier.V(1)
        MEDIUM = QualityOfService.Tier.V(2)
        LOW = QualityOfService.Tier.V(3)

    UNDEFINED = QualityOfService.Tier.V(0)
    """Default: no quality of service specified."""

    HIGH = QualityOfService.Tier.V(1)
    MEDIUM = QualityOfService.Tier.V(2)
    LOW = QualityOfService.Tier.V(3)

    TIER_FIELD_NUMBER: builtins.int
    SPEC_FIELD_NUMBER: builtins.int
    tier: global___QualityOfService.Tier.V = ...
    @property
    def spec(self) -> global___QualityOfServiceSpec: ...
    def __init__(self,
        *,
        tier : global___QualityOfService.Tier.V = ...,
        spec : typing.Optional[global___QualityOfServiceSpec] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"designation",b"designation",u"spec",b"spec",u"tier",b"tier"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"designation",b"designation",u"spec",b"spec",u"tier",b"tier"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal[u"designation",b"designation"]) -> typing.Optional[typing_extensions.Literal["tier","spec"]]: ...
global___QualityOfService = QualityOfService
