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

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

class WorkflowClosure(google.protobuf.message.Message):
    """Defines an enclosed package of workflow and tasks it references."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    WORKFLOW_FIELD_NUMBER: builtins.int
    TASKS_FIELD_NUMBER: builtins.int
    @property
    def workflow(self) -> flyteidl.core.workflow_pb2.WorkflowTemplate:
        """required. Workflow template."""
        pass
    @property
    def tasks(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flyteidl.core.tasks_pb2.TaskTemplate]:
        """optional. A collection of tasks referenced by the workflow. Only needed if the workflow
        references tasks.
        """
        pass
    def __init__(self,
        *,
        workflow : typing.Optional[flyteidl.core.workflow_pb2.WorkflowTemplate] = ...,
        tasks : typing.Optional[typing.Iterable[flyteidl.core.tasks_pb2.TaskTemplate]] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"workflow",b"workflow"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"tasks",b"tasks",u"workflow",b"workflow"]) -> None: ...
global___WorkflowClosure = WorkflowClosure
