"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import flyteidl.core.compiler_pb2
import flyteidl.core.identifier_pb2
import flyteidl.core.tasks_pb2
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import google.protobuf.timestamp_pb2
import typing
import typing_extensions

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

class TaskCreateRequest(google.protobuf.message.Message):
    """Represents a request structure to create a revision of a task.
    See :ref:`ref_flyteidl.admin.Task` for more details
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    ID_FIELD_NUMBER: builtins.int
    SPEC_FIELD_NUMBER: builtins.int
    @property
    def id(self) -> flyteidl.core.identifier_pb2.Identifier:
        """id represents the unique identifier of the task.
        +required
        """
        pass
    @property
    def spec(self) -> global___TaskSpec:
        """Represents the specification for task.
        +required
        """
        pass
    def __init__(self,
        *,
        id : typing.Optional[flyteidl.core.identifier_pb2.Identifier] = ...,
        spec : typing.Optional[global___TaskSpec] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"id",b"id",u"spec",b"spec"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"id",b"id",u"spec",b"spec"]) -> None: ...
global___TaskCreateRequest = TaskCreateRequest

class TaskCreateResponse(google.protobuf.message.Message):
    """Represents a response structure if task creation succeeds.
    Purposefully empty, may be populated in the future.
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    def __init__(self,
        ) -> None: ...
global___TaskCreateResponse = TaskCreateResponse

class Task(google.protobuf.message.Message):
    """Flyte workflows are composed of many ordered tasks. That is small, reusable, self-contained logical blocks
    arranged to process workflow inputs and produce a deterministic set of outputs.
    Tasks can come in many varieties tuned for specialized behavior.
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    ID_FIELD_NUMBER: builtins.int
    CLOSURE_FIELD_NUMBER: builtins.int
    @property
    def id(self) -> flyteidl.core.identifier_pb2.Identifier:
        """id represents the unique identifier of the task."""
        pass
    @property
    def closure(self) -> global___TaskClosure:
        """closure encapsulates all the fields that maps to a compiled version of the task."""
        pass
    def __init__(self,
        *,
        id : typing.Optional[flyteidl.core.identifier_pb2.Identifier] = ...,
        closure : typing.Optional[global___TaskClosure] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"closure",b"closure",u"id",b"id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"closure",b"closure",u"id",b"id"]) -> None: ...
global___Task = Task

class TaskList(google.protobuf.message.Message):
    """Represents a list of tasks returned from the admin.
    See :ref:`ref_flyteidl.admin.Task` for more details
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    TASKS_FIELD_NUMBER: builtins.int
    TOKEN_FIELD_NUMBER: builtins.int
    @property
    def tasks(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Task]:
        """A list of tasks returned based on the request."""
        pass
    token: typing.Text = ...
    """In the case of multiple pages of results, the server-provided token can be used to fetch the next page
    in a query. If there are no more results, this value will be empty.
    """

    def __init__(self,
        *,
        tasks : typing.Optional[typing.Iterable[global___Task]] = ...,
        token : typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"tasks",b"tasks",u"token",b"token"]) -> None: ...
global___TaskList = TaskList

class TaskSpec(google.protobuf.message.Message):
    """Represents a structure that encapsulates the user-configured specification of the task."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    TEMPLATE_FIELD_NUMBER: builtins.int
    @property
    def template(self) -> flyteidl.core.tasks_pb2.TaskTemplate:
        """Template of the task that encapsulates all the metadata of the task."""
        pass
    def __init__(self,
        *,
        template : typing.Optional[flyteidl.core.tasks_pb2.TaskTemplate] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"template",b"template"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"template",b"template"]) -> None: ...
global___TaskSpec = TaskSpec

class TaskClosure(google.protobuf.message.Message):
    """Compute task attributes which include values derived from the TaskSpec, as well as plugin-specific data
    and task metadata.
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    COMPILED_TASK_FIELD_NUMBER: builtins.int
    CREATED_AT_FIELD_NUMBER: builtins.int
    @property
    def compiled_task(self) -> flyteidl.core.compiler_pb2.CompiledTask:
        """Represents the compiled representation of the task from the specification provided."""
        pass
    @property
    def created_at(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Time at which the task was created."""
        pass
    def __init__(self,
        *,
        compiled_task : typing.Optional[flyteidl.core.compiler_pb2.CompiledTask] = ...,
        created_at : typing.Optional[google.protobuf.timestamp_pb2.Timestamp] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"compiled_task",b"compiled_task",u"created_at",b"created_at"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"compiled_task",b"compiled_task",u"created_at",b"created_at"]) -> None: ...
global___TaskClosure = TaskClosure
