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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class _NBX:
    ValueType = typing.NewType('ValueType', builtins.int)
    V: typing_extensions.TypeAlias = ValueType
class _NBXEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_NBX.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    LOCAL: _NBX.ValueType  # 0
    JOB: _NBX.ValueType  # 1
    SERVING: _NBX.ValueType  # 2
class NBX(_NBX, metaclass=_NBXEnumTypeWrapper):
    """
    Trackers are the new architecture we using, thing like this is a singular client that can
    be used by anyone to track metrics, logs, etc.

    """
    pass

LOCAL: NBX.ValueType  # 0
JOB: NBX.ValueType  # 1
SERVING: NBX.ValueType  # 2
global___NBX = NBX


class _TrackerType:
    ValueType = typing.NewType('ValueType', builtins.int)
    V: typing_extensions.TypeAlias = ValueType
class _TrackerTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_TrackerType.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    UNSET_TYPE: _TrackerType.ValueType  # 0
    """this is not allowed in the DB, but given here for completeness"""

    EXPERIMENT: _TrackerType.ValueType  # 1
    """this is a tracker for an experiment"""

    LIVE: _TrackerType.ValueType  # 2
    """this is a tracker for a live run"""

class TrackerType(_TrackerType, metaclass=_TrackerTypeEnumTypeWrapper):
    pass

UNSET_TYPE: TrackerType.ValueType  # 0
"""this is not allowed in the DB, but given here for completeness"""

EXPERIMENT: TrackerType.ValueType  # 1
"""this is a tracker for an experiment"""

LIVE: TrackerType.ValueType  # 2
"""this is a tracker for a live run"""

global___TrackerType = TrackerType


class InitTrackerRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    WORKSPACE_ID_FIELD_NUMBER: builtins.int
    PROJECT_ID_FIELD_NUMBER: builtins.int
    TYPE_FIELD_NUMBER: builtins.int
    NBX_GROUP_ID_FIELD_NUMBER: builtins.int
    NBX_INSTANCE_ID_FIELD_NUMBER: builtins.int
    CONFIG_FIELD_NUMBER: builtins.int
    TRACKER_TYPE_FIELD_NUMBER: builtins.int
    workspace_id: typing.Text
    project_id: typing.Text
    type: global___NBX.ValueType
    """this is the type of the agent, JOB or SERVING"""

    nbx_group_id: typing.Text
    """this is the group ID of the NBX-Job or Serving"""

    nbx_instance_id: typing.Text
    """this is the instance ID of the NBX-Job or Serving"""

    @property
    def config(self) -> google.protobuf.struct_pb2.Struct:
        """anything else that the user wants to log"""
        pass
    tracker_type: global___TrackerType.ValueType
    """the type of the tracker"""

    def __init__(self,
        *,
        workspace_id: typing.Text = ...,
        project_id: typing.Text = ...,
        type: global___NBX.ValueType = ...,
        nbx_group_id: typing.Text = ...,
        nbx_instance_id: typing.Text = ...,
        config: typing.Optional[google.protobuf.struct_pb2.Struct] = ...,
        tracker_type: global___TrackerType.ValueType = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["config",b"config"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["config",b"config","nbx_group_id",b"nbx_group_id","nbx_instance_id",b"nbx_instance_id","project_id",b"project_id","tracker_type",b"tracker_type","type",b"type","workspace_id",b"workspace_id"]) -> None: ...
global___InitTrackerRequest = InitTrackerRequest

class Tracker(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    class _Status:
        ValueType = typing.NewType('ValueType', builtins.int)
        V: typing_extensions.TypeAlias = ValueType
    class _StatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Tracker._Status.ValueType], builtins.type):
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        UNSET_STATUS: Tracker._Status.ValueType  # 0
        """When created and added to DB but no further action taken"""

        RUNNING: Tracker._Status.ValueType  # 1
        """When the first on_log has been called"""

        COMPLETED: Tracker._Status.ValueType  # 2
        """When the tracking has ended"""

        FAILED: Tracker._Status.ValueType  # 3
        """When the NBX-Run/Model failed"""

    class Status(_Status, metaclass=_StatusEnumTypeWrapper):
        pass

    UNSET_STATUS: Tracker.Status.ValueType  # 0
    """When created and added to DB but no further action taken"""

    RUNNING: Tracker.Status.ValueType  # 1
    """When the first on_log has been called"""

    COMPLETED: Tracker.Status.ValueType  # 2
    """When the tracking has ended"""

    FAILED: Tracker.Status.ValueType  # 3
    """When the NBX-Run/Model failed"""


    WORKSPACE_ID_FIELD_NUMBER: builtins.int
    PROJECT_ID_FIELD_NUMBER: builtins.int
    ID_FIELD_NUMBER: builtins.int
    CONFIG_FIELD_NUMBER: builtins.int
    CREATED_AT_FIELD_NUMBER: builtins.int
    UPDATED_AT_FIELD_NUMBER: builtins.int
    SAVE_LOCATION_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    TRACKER_TYPE_FIELD_NUMBER: builtins.int
    TYPE_FIELD_NUMBER: builtins.int
    NBX_GROUP_ID_FIELD_NUMBER: builtins.int
    NBX_INSTANCE_ID_FIELD_NUMBER: builtins.int
    UPDATE_KEYS_FIELD_NUMBER: builtins.int
    workspace_id: typing.Text
    project_id: typing.Text
    id: typing.Text
    """this is the unique tracker ID"""

    @property
    def config(self) -> google.protobuf.struct_pb2.Struct:
        """anything else that the user wants to log"""
        pass
    @property
    def created_at(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def updated_at(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    save_location: typing.Text
    """the location where the files are saved, this will be pulled by the server"""

    status: global___Tracker.Status.ValueType
    """the last known status of this tracker"""

    tracker_type: global___TrackerType.ValueType
    """the type of the tracker"""

    type: global___NBX.ValueType
    """this is the type of the agent, JOB or SERVING"""

    nbx_group_id: typing.Text
    """this is the group ID of the NBX-Job or Serving"""

    nbx_instance_id: typing.Text
    """this is the instance ID of the NBX-Job or Serving"""

    @property
    def update_keys(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]:
        """now we create a special thing which will be populated and sent during updates"""
        pass
    def __init__(self,
        *,
        workspace_id: typing.Text = ...,
        project_id: typing.Text = ...,
        id: typing.Text = ...,
        config: typing.Optional[google.protobuf.struct_pb2.Struct] = ...,
        created_at: typing.Optional[google.protobuf.timestamp_pb2.Timestamp] = ...,
        updated_at: typing.Optional[google.protobuf.timestamp_pb2.Timestamp] = ...,
        save_location: typing.Text = ...,
        status: global___Tracker.Status.ValueType = ...,
        tracker_type: global___TrackerType.ValueType = ...,
        type: global___NBX.ValueType = ...,
        nbx_group_id: typing.Text = ...,
        nbx_instance_id: typing.Text = ...,
        update_keys: typing.Optional[typing.Iterable[typing.Text]] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["config",b"config","created_at",b"created_at","updated_at",b"updated_at"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["config",b"config","created_at",b"created_at","id",b"id","nbx_group_id",b"nbx_group_id","nbx_instance_id",b"nbx_instance_id","project_id",b"project_id","save_location",b"save_location","status",b"status","tracker_type",b"tracker_type","type",b"type","update_keys",b"update_keys","updated_at",b"updated_at","workspace_id",b"workspace_id"]) -> None: ...
global___Tracker = Tracker

class ListTrackersRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    WORKSPACE_ID_FIELD_NUMBER: builtins.int
    PROJECT_ID_FIELD_NUMBER: builtins.int
    OFFSET_FIELD_NUMBER: builtins.int
    LIMIT_FIELD_NUMBER: builtins.int
    CREATED_AFTER_FIELD_NUMBER: builtins.int
    CREATED_BEFORE_FIELD_NUMBER: builtins.int
    UPDATED_AFTER_FIELD_NUMBER: builtins.int
    UPDATED_BEFORE_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    TRACKER_TYPE_FIELD_NUMBER: builtins.int
    workspace_id: typing.Text
    project_id: typing.Text
    offset: builtins.int
    """the offset for pagination"""

    limit: builtins.int
    """the limit for pagination"""

    @property
    def created_after(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """the time after which the project was created"""
        pass
    @property
    def created_before(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """the time before which the project was created"""
        pass
    @property
    def updated_after(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """the time after which the project was updated"""
        pass
    @property
    def updated_before(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """the time before which the project was updated"""
        pass
    status: global___Tracker.Status.ValueType
    """the status of the tracker"""

    tracker_type: global___TrackerType.ValueType
    """the type of the tracker"""

    def __init__(self,
        *,
        workspace_id: typing.Text = ...,
        project_id: typing.Text = ...,
        offset: builtins.int = ...,
        limit: builtins.int = ...,
        created_after: typing.Optional[google.protobuf.timestamp_pb2.Timestamp] = ...,
        created_before: typing.Optional[google.protobuf.timestamp_pb2.Timestamp] = ...,
        updated_after: typing.Optional[google.protobuf.timestamp_pb2.Timestamp] = ...,
        updated_before: typing.Optional[google.protobuf.timestamp_pb2.Timestamp] = ...,
        status: global___Tracker.Status.ValueType = ...,
        tracker_type: global___TrackerType.ValueType = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["created_after",b"created_after","created_before",b"created_before","updated_after",b"updated_after","updated_before",b"updated_before"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["created_after",b"created_after","created_before",b"created_before","limit",b"limit","offset",b"offset","project_id",b"project_id","status",b"status","tracker_type",b"tracker_type","updated_after",b"updated_after","updated_before",b"updated_before","workspace_id",b"workspace_id"]) -> None: ...
global___ListTrackersRequest = ListTrackersRequest

class ListTrackersResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    TRACKERS_FIELD_NUMBER: builtins.int
    TOTAL_PAGES_FIELD_NUMBER: builtins.int
    @property
    def trackers(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Tracker]: ...
    total_pages: builtins.int
    """the total number of pages"""

    def __init__(self,
        *,
        trackers: typing.Optional[typing.Iterable[global___Tracker]] = ...,
        total_pages: builtins.int = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["total_pages",b"total_pages","trackers",b"trackers"]) -> None: ...
global___ListTrackersResponse = ListTrackersResponse
