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

if sys.version_info >= (3, 10):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class _SortBy:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _SortByEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_SortBy.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    SORT_BY_INVALID: _SortBy.ValueType  # 0
    SORT_BY_NAME: _SortBy.ValueType  # 1
    """Sort models by name (default)."""
    SORT_BY_CREATION_DATE: _SortBy.ValueType  # 2
    """Sort models by their creation date."""

class SortBy(_SortBy, metaclass=_SortByEnumTypeWrapper): ...

SORT_BY_INVALID: SortBy.ValueType  # 0
SORT_BY_NAME: SortBy.ValueType  # 1
"""Sort models by name (default)."""
SORT_BY_CREATION_DATE: SortBy.ValueType  # 2
"""Sort models by their creation date."""
global___SortBy = SortBy

class _SortOrder:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _SortOrderEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_SortOrder.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    SORT_ORDER_INVALID: _SortOrder.ValueType  # 0
    SORT_ORDER_ASC: _SortOrder.ValueType  # 1
    """Sort in ascending order (default)."""
    SORT_ORDER_DESC: _SortOrder.ValueType  # 2
    """Sort in descending order."""

class SortOrder(_SortOrder, metaclass=_SortOrderEnumTypeWrapper): ...

SORT_ORDER_INVALID: SortOrder.ValueType  # 0
SORT_ORDER_ASC: SortOrder.ValueType  # 1
"""Sort in ascending order (default)."""
SORT_ORDER_DESC: SortOrder.ValueType  # 2
"""Sort in descending order."""
global___SortOrder = SortOrder

class _DeploymentModelStatusFilter:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _DeploymentModelStatusFilterEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_DeploymentModelStatusFilter.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    DEPLOYMENT_MODEL_STATUS_FILTER_INVALID: _DeploymentModelStatusFilter.ValueType  # 0
    DEPLOYMENT_MODEL_STATUS_FILTER_DEPLOYED: _DeploymentModelStatusFilter.ValueType  # 1
    DEPLOYMENT_MODEL_STATUS_FILTER_UNDEPLOYED: _DeploymentModelStatusFilter.ValueType  # 2

class DeploymentModelStatusFilter(_DeploymentModelStatusFilter, metaclass=_DeploymentModelStatusFilterEnumTypeWrapper): ...

DEPLOYMENT_MODEL_STATUS_FILTER_INVALID: DeploymentModelStatusFilter.ValueType  # 0
DEPLOYMENT_MODEL_STATUS_FILTER_DEPLOYED: DeploymentModelStatusFilter.ValueType  # 1
DEPLOYMENT_MODEL_STATUS_FILTER_UNDEPLOYED: DeploymentModelStatusFilter.ValueType  # 2
global___DeploymentModelStatusFilter = DeploymentModelStatusFilter

class SortModels(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SORT_BY_FIELD_NUMBER: builtins.int
    SORT_ORDER_FIELD_NUMBER: builtins.int
    sort_by: global___SortBy.ValueType
    sort_order: global___SortOrder.ValueType
    def __init__(
        self,
        *,
        sort_by: global___SortBy.ValueType = ...,
        sort_order: global___SortOrder.ValueType = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["sort_by", b"sort_by", "sort_by_opt", b"sort_by_opt", "sort_order", b"sort_order", "sort_order_opt", b"sort_order_opt"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["sort_by", b"sort_by", "sort_by_opt", b"sort_by_opt", "sort_order", b"sort_order", "sort_order_opt", b"sort_order_opt"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["sort_by_opt", b"sort_by_opt"]) -> typing_extensions.Literal["sort_by"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["sort_order_opt", b"sort_order_opt"]) -> typing_extensions.Literal["sort_order"] | None: ...

global___SortModels = SortModels

class Filter(google.protobuf.message.Message):
    """Filter models by specific properties using a filter expression.
    The following fields are used to filter the models returned by the query. An AND operation is applied between each of these fields.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MODEL_NAME_SUBSTRING_FIELD_NUMBER: builtins.int
    MODEL_GROUP_NAMES_FIELD_NUMBER: builtins.int
    DEPLOYMENT_MODEL_STATUS_FIELD_NUMBER: builtins.int
    model_name_substring: builtins.str
    @property
    def model_group_names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """Filter models by one or more model group names.
        Return models that belong to one of the specified model groups.
        Optional field. If not specified, models from all groups are included.
        """
    deployment_model_status: global___DeploymentModelStatusFilter.ValueType
    def __init__(
        self,
        *,
        model_name_substring: builtins.str = ...,
        model_group_names: collections.abc.Iterable[builtins.str] | None = ...,
        deployment_model_status: global___DeploymentModelStatusFilter.ValueType = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["deployment_model_status", b"deployment_model_status", "deployment_model_status_opt", b"deployment_model_status_opt", "model_name_substring", b"model_name_substring", "search_opt", b"search_opt"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["deployment_model_status", b"deployment_model_status", "deployment_model_status_opt", b"deployment_model_status_opt", "model_group_names", b"model_group_names", "model_name_substring", b"model_name_substring", "search_opt", b"search_opt"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["deployment_model_status_opt", b"deployment_model_status_opt"]) -> typing_extensions.Literal["deployment_model_status"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["search_opt", b"search_opt"]) -> typing_extensions.Literal["model_name_substring"] | None: ...

global___Filter = Filter

class PaginationMetadata(google.protobuf.message.Message):
    """Metadata for pagination."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PAGE_SIZE_FIELD_NUMBER: builtins.int
    NEXT_CURSOR_FIELD_NUMBER: builtins.int
    page_size: builtins.int
    """Number of items per page."""
    next_cursor: builtins.str
    """Cursor for the next page.
    If there are no more pages, this field will be empty.
    """
    def __init__(
        self,
        *,
        page_size: builtins.int = ...,
        next_cursor: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["next_cursor", b"next_cursor", "page_size", b"page_size"]) -> None: ...

global___PaginationMetadata = PaginationMetadata
