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

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

class Domain(google.protobuf.message.Message):
    """Namespace within a project commonly used to differentiate between different service instances.
    e.g. "production", "development", etc.
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    ID_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    id: typing.Text = ...
    """Globally unique domain name."""

    name: typing.Text = ...
    """Display name."""

    def __init__(self,
        *,
        id : typing.Text = ...,
        name : typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"id",b"id",u"name",b"name"]) -> None: ...
global___Domain = Domain

class Project(google.protobuf.message.Message):
    """Top-level namespace used to classify different entities like workflows and executions."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class ProjectState(_ProjectState, metaclass=_ProjectStateEnumTypeWrapper):
        """The state of the project is used to control its visibility in the UI and validity."""
        pass
    class _ProjectState:
        V = typing.NewType('V', builtins.int)
    class _ProjectStateEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ProjectState.V], builtins.type):
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor = ...
        ACTIVE = Project.ProjectState.V(0)
        """By default, all projects are considered active."""

        ARCHIVED = Project.ProjectState.V(1)
        """Archived projects are no longer visible in the UI and no longer valid."""

        SYSTEM_GENERATED = Project.ProjectState.V(2)
        """System generated projects that aren't explicitly created or managed by a user."""


    ACTIVE = Project.ProjectState.V(0)
    """By default, all projects are considered active."""

    ARCHIVED = Project.ProjectState.V(1)
    """Archived projects are no longer visible in the UI and no longer valid."""

    SYSTEM_GENERATED = Project.ProjectState.V(2)
    """System generated projects that aren't explicitly created or managed by a user."""


    ID_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    DOMAINS_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    LABELS_FIELD_NUMBER: builtins.int
    STATE_FIELD_NUMBER: builtins.int
    id: typing.Text = ...
    """Globally unique project name."""

    name: typing.Text = ...
    """Display name."""

    @property
    def domains(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Domain]: ...
    description: typing.Text = ...
    @property
    def labels(self) -> flyteidl.admin.common_pb2.Labels:
        """Leverage Labels from flyteidel.admin.common.proto to
        tag projects with ownership information.
        """
        pass
    state: global___Project.ProjectState.V = ...
    def __init__(self,
        *,
        id : typing.Text = ...,
        name : typing.Text = ...,
        domains : typing.Optional[typing.Iterable[global___Domain]] = ...,
        description : typing.Text = ...,
        labels : typing.Optional[flyteidl.admin.common_pb2.Labels] = ...,
        state : global___Project.ProjectState.V = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"labels",b"labels"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"description",b"description",u"domains",b"domains",u"id",b"id",u"labels",b"labels",u"name",b"name",u"state",b"state"]) -> None: ...
global___Project = Project

class Projects(google.protobuf.message.Message):
    """Represents a list of projects.
    See :ref:`ref_flyteidl.admin.Project` for more details
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    PROJECTS_FIELD_NUMBER: builtins.int
    TOKEN_FIELD_NUMBER: builtins.int
    @property
    def projects(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Project]: ...
    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,
        *,
        projects : typing.Optional[typing.Iterable[global___Project]] = ...,
        token : typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"projects",b"projects",u"token",b"token"]) -> None: ...
global___Projects = Projects

class ProjectListRequest(google.protobuf.message.Message):
    """Request to retrieve a list of projects matching specified filters. 
    See :ref:`ref_flyteidl.admin.Project` for more details
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    LIMIT_FIELD_NUMBER: builtins.int
    TOKEN_FIELD_NUMBER: builtins.int
    FILTERS_FIELD_NUMBER: builtins.int
    SORT_BY_FIELD_NUMBER: builtins.int
    limit: builtins.int = ...
    """Indicates the number of projects to be returned.
    +required
    """

    token: typing.Text = ...
    """In the case of multiple pages of results, this server-provided token can be used to fetch the next page
    in a query.
    +optional
    """

    filters: typing.Text = ...
    """Indicates a list of filters passed as string.
    More info on constructing filters : <Link>
    +optional
    """

    @property
    def sort_by(self) -> flyteidl.admin.common_pb2.Sort:
        """Sort ordering.
        +optional
        """
        pass
    def __init__(self,
        *,
        limit : builtins.int = ...,
        token : typing.Text = ...,
        filters : typing.Text = ...,
        sort_by : typing.Optional[flyteidl.admin.common_pb2.Sort] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"sort_by",b"sort_by"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"filters",b"filters",u"limit",b"limit",u"sort_by",b"sort_by",u"token",b"token"]) -> None: ...
global___ProjectListRequest = ProjectListRequest

class ProjectRegisterRequest(google.protobuf.message.Message):
    """Adds a new user-project within the Flyte deployment.
    See :ref:`ref_flyteidl.admin.Project` for more details
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    PROJECT_FIELD_NUMBER: builtins.int
    @property
    def project(self) -> global___Project:
        """+required"""
        pass
    def __init__(self,
        *,
        project : typing.Optional[global___Project] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"project",b"project"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"project",b"project"]) -> None: ...
global___ProjectRegisterRequest = ProjectRegisterRequest

class ProjectRegisterResponse(google.protobuf.message.Message):
    """Purposefully empty, may be updated in the future."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    def __init__(self,
        ) -> None: ...
global___ProjectRegisterResponse = ProjectRegisterResponse

class ProjectUpdateResponse(google.protobuf.message.Message):
    """Purposefully empty, may be updated in the future."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    def __init__(self,
        ) -> None: ...
global___ProjectUpdateResponse = ProjectUpdateResponse
