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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class _FilterParameterType:
    ValueType = typing.NewType('ValueType', builtins.int)
    V: typing_extensions.TypeAlias = ValueType
class _FilterParameterTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_FilterParameterType.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    NUMBER: _FilterParameterType.ValueType  # 0
    BOOLEAN: _FilterParameterType.ValueType  # 1
    STRING: _FilterParameterType.ValueType  # 2
    STRING_LIST: _FilterParameterType.ValueType  # 3
class FilterParameterType(_FilterParameterType, metaclass=_FilterParameterTypeEnumTypeWrapper):
    pass

NUMBER: FilterParameterType.ValueType  # 0
BOOLEAN: FilterParameterType.ValueType  # 1
STRING: FilterParameterType.ValueType  # 2
STRING_LIST: FilterParameterType.ValueType  # 3
global___FilterParameterType = FilterParameterType


class _TimeRelation:
    ValueType = typing.NewType('ValueType', builtins.int)
    V: typing_extensions.TypeAlias = ValueType
class _TimeRelationEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_TimeRelation.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    NEXT: _TimeRelation.ValueType  # 0
    PREVIOUS: _TimeRelation.ValueType  # 1
class TimeRelation(_TimeRelation, metaclass=_TimeRelationEnumTypeWrapper):
    pass

NEXT: TimeRelation.ValueType  # 0
PREVIOUS: TimeRelation.ValueType  # 1
global___TimeRelation = TimeRelation


class MessageStreamsRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    def __init__(self,
        ) -> None: ...
global___MessageStreamsRequest = MessageStreamsRequest

class MessageFiltersRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    def __init__(self,
        ) -> None: ...
global___MessageFiltersRequest = MessageFiltersRequest

class EventFiltersRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    def __init__(self,
        ) -> None: ...
global___EventFiltersRequest = EventFiltersRequest

class EventResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    EVENT_ID_FIELD_NUMBER: builtins.int
    PARENT_EVENT_ID_FIELD_NUMBER: builtins.int
    BATCH_ID_FIELD_NUMBER: builtins.int
    IS_BATCHED_FIELD_NUMBER: builtins.int
    START_TIMESTAMP_FIELD_NUMBER: builtins.int
    END_TIMESTAMP_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    EVENT_NAME_FIELD_NUMBER: builtins.int
    EVENT_TYPE_FIELD_NUMBER: builtins.int
    BODY_FIELD_NUMBER: builtins.int
    ATTACHED_MESSAGE_ID_FIELD_NUMBER: builtins.int
    @property
    def event_id(self) -> th2_grpc_common.common_pb2.EventID:
        """Current event id"""
        pass
    @property
    def parent_event_id(self) -> th2_grpc_common.common_pb2.EventID:
        """Event id of a parent event. It is absent for root event"""
        pass
    @property
    def batch_id(self) -> th2_grpc_common.common_pb2.EventID:
        """Event id of a parent event. It is absent for root event"""
        pass
    is_batched: builtins.bool
    """Flag indicating that the event is in batch"""

    @property
    def start_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def end_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """May be absent."""
        pass
    status: th2_grpc_common.common_pb2.EventStatus.ValueType
    """Aggregated status of current and children events which sync written."""

    event_name: typing.Text
    event_type: typing.Text
    """May be absent."""

    body: builtins.bytes
    """May be absent."""

    @property
    def attached_message_id(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[th2_grpc_common.common_pb2.MessageID]:
        """ids of messages linked to this event"""
        pass
    def __init__(self,
        *,
        event_id: typing.Optional[th2_grpc_common.common_pb2.EventID] = ...,
        parent_event_id: typing.Optional[th2_grpc_common.common_pb2.EventID] = ...,
        batch_id: typing.Optional[th2_grpc_common.common_pb2.EventID] = ...,
        is_batched: builtins.bool = ...,
        start_timestamp: typing.Optional[google.protobuf.timestamp_pb2.Timestamp] = ...,
        end_timestamp: typing.Optional[google.protobuf.timestamp_pb2.Timestamp] = ...,
        status: th2_grpc_common.common_pb2.EventStatus.ValueType = ...,
        event_name: typing.Text = ...,
        event_type: typing.Text = ...,
        body: builtins.bytes = ...,
        attached_message_id: typing.Optional[typing.Iterable[th2_grpc_common.common_pb2.MessageID]] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["batch_id",b"batch_id","end_timestamp",b"end_timestamp","event_id",b"event_id","parent_event_id",b"parent_event_id","start_timestamp",b"start_timestamp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["attached_message_id",b"attached_message_id","batch_id",b"batch_id","body",b"body","end_timestamp",b"end_timestamp","event_id",b"event_id","event_name",b"event_name","event_type",b"event_type","is_batched",b"is_batched","parent_event_id",b"parent_event_id","start_timestamp",b"start_timestamp","status",b"status"]) -> None: ...
global___EventResponse = EventResponse

class EventMetadata(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    EVENT_ID_FIELD_NUMBER: builtins.int
    PARENT_EVENT_ID_FIELD_NUMBER: builtins.int
    START_TIMESTAMP_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    EVENT_NAME_FIELD_NUMBER: builtins.int
    EVENT_TYPE_FIELD_NUMBER: builtins.int
    @property
    def event_id(self) -> th2_grpc_common.common_pb2.EventID:
        """Current event id"""
        pass
    @property
    def parent_event_id(self) -> th2_grpc_common.common_pb2.EventID:
        """Event id of a parent event. It is absent for root event"""
        pass
    @property
    def start_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    status: th2_grpc_common.common_pb2.EventStatus.ValueType
    """Aggregated status of current and children events which sync written."""

    event_name: typing.Text
    event_type: typing.Text
    def __init__(self,
        *,
        event_id: typing.Optional[th2_grpc_common.common_pb2.EventID] = ...,
        parent_event_id: typing.Optional[th2_grpc_common.common_pb2.EventID] = ...,
        start_timestamp: typing.Optional[google.protobuf.timestamp_pb2.Timestamp] = ...,
        status: th2_grpc_common.common_pb2.EventStatus.ValueType = ...,
        event_name: typing.Text = ...,
        event_type: typing.Text = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["event_id",b"event_id","parent_event_id",b"parent_event_id","start_timestamp",b"start_timestamp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["event_id",b"event_id","event_name",b"event_name","event_type",b"event_type","parent_event_id",b"parent_event_id","start_timestamp",b"start_timestamp","status",b"status"]) -> None: ...
global___EventMetadata = EventMetadata

class BulkEventRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    ID_FIELD_NUMBER: builtins.int
    @property
    def id(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[th2_grpc_common.common_pb2.EventID]: ...
    def __init__(self,
        *,
        id: typing.Optional[typing.Iterable[th2_grpc_common.common_pb2.EventID]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["id",b"id"]) -> None: ...
global___BulkEventRequest = BulkEventRequest

class BulkEventResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    EVENT_FIELD_NUMBER: builtins.int
    @property
    def event(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___EventResponse]: ...
    def __init__(self,
        *,
        event: typing.Optional[typing.Iterable[global___EventResponse]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["event",b"event"]) -> None: ...
global___BulkEventResponse = BulkEventResponse

class MessageGroupItem(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    MESSAGE_FIELD_NUMBER: builtins.int
    MATCH_FIELD_NUMBER: builtins.int
    @property
    def message(self) -> th2_grpc_common.common_pb2.Message: ...
    match: builtins.bool
    def __init__(self,
        *,
        message: typing.Optional[th2_grpc_common.common_pb2.Message] = ...,
        match: builtins.bool = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["message",b"message"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["match",b"match","message",b"message"]) -> None: ...
global___MessageGroupItem = MessageGroupItem

class MessageGroupResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    MESSAGE_ID_FIELD_NUMBER: builtins.int
    TIMESTAMP_FIELD_NUMBER: builtins.int
    BODY_RAW_FIELD_NUMBER: builtins.int
    ATTACHED_EVENT_ID_FIELD_NUMBER: builtins.int
    MESSAGE_ITEM_FIELD_NUMBER: builtins.int
    @property
    def message_id(self) -> th2_grpc_common.common_pb2.MessageID:
        """Message id should be unique in session"""
        pass
    @property
    def timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Message creation timestamp"""
        pass
    body_raw: builtins.bytes
    @property
    def attached_event_id(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[th2_grpc_common.common_pb2.EventID]:
        """ids of events linked to this message group"""
        pass
    @property
    def message_item(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___MessageGroupItem]:
        """May be absent."""
        pass
    def __init__(self,
        *,
        message_id: typing.Optional[th2_grpc_common.common_pb2.MessageID] = ...,
        timestamp: typing.Optional[google.protobuf.timestamp_pb2.Timestamp] = ...,
        body_raw: builtins.bytes = ...,
        attached_event_id: typing.Optional[typing.Iterable[th2_grpc_common.common_pb2.EventID]] = ...,
        message_item: typing.Optional[typing.Iterable[global___MessageGroupItem]] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["message_id",b"message_id","timestamp",b"timestamp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["attached_event_id",b"attached_event_id","body_raw",b"body_raw","message_id",b"message_id","message_item",b"message_item","timestamp",b"timestamp"]) -> None: ...
global___MessageGroupResponse = MessageGroupResponse

class FilterInfoRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    FILTER_NAME_FIELD_NUMBER: builtins.int
    @property
    def filter_name(self) -> global___FilterName: ...
    def __init__(self,
        *,
        filter_name: typing.Optional[global___FilterName] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["filter_name",b"filter_name"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["filter_name",b"filter_name"]) -> None: ...
global___FilterInfoRequest = FilterInfoRequest

class FilterName(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    NAME_FIELD_NUMBER: builtins.int
    name: typing.Text
    def __init__(self,
        *,
        name: typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["name",b"name"]) -> None: ...
global___FilterName = FilterName

class FilterNamesResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    FILTER_NAME_FIELD_NUMBER: builtins.int
    @property
    def filter_name(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FilterName]: ...
    def __init__(self,
        *,
        filter_name: typing.Optional[typing.Iterable[global___FilterName]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["filter_name",b"filter_name"]) -> None: ...
global___FilterNamesResponse = FilterNamesResponse

class FilterParameter(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    NAME_FIELD_NUMBER: builtins.int
    TYPE_FIELD_NUMBER: builtins.int
    DEFAULT_VALUE_FIELD_NUMBER: builtins.int
    HINT_FIELD_NUMBER: builtins.int
    name: typing.Text
    type: global___FilterParameterType.ValueType
    @property
    def default_value(self) -> google.protobuf.any_pb2.Any: ...
    hint: typing.Text
    def __init__(self,
        *,
        name: typing.Text = ...,
        type: global___FilterParameterType.ValueType = ...,
        default_value: typing.Optional[google.protobuf.any_pb2.Any] = ...,
        hint: typing.Text = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["default_value",b"default_value"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["default_value",b"default_value","hint",b"hint","name",b"name","type",b"type"]) -> None: ...
global___FilterParameter = FilterParameter

class FilterInfoResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    NAME_FIELD_NUMBER: builtins.int
    HINT_FIELD_NUMBER: builtins.int
    PARAMETER_FIELD_NUMBER: builtins.int
    @property
    def name(self) -> global___FilterName: ...
    hint: typing.Text
    @property
    def parameter(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FilterParameter]: ...
    def __init__(self,
        *,
        name: typing.Optional[global___FilterName] = ...,
        hint: typing.Text = ...,
        parameter: typing.Optional[typing.Iterable[global___FilterParameter]] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["name",b"name"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["hint",b"hint","name",b"name","parameter",b"parameter"]) -> None: ...
global___FilterInfoResponse = FilterInfoResponse

class MessageMatchRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    MESSAGE_ID_FIELD_NUMBER: builtins.int
    FILTER_FIELD_NUMBER: builtins.int
    @property
    def message_id(self) -> th2_grpc_common.common_pb2.MessageID: ...
    @property
    def filter(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Filter]: ...
    def __init__(self,
        *,
        message_id: typing.Optional[th2_grpc_common.common_pb2.MessageID] = ...,
        filter: typing.Optional[typing.Iterable[global___Filter]] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["message_id",b"message_id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["filter",b"filter","message_id",b"message_id"]) -> None: ...
global___MessageMatchRequest = MessageMatchRequest

class EventMatchRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    EVENT_ID_FIELD_NUMBER: builtins.int
    FILTER_FIELD_NUMBER: builtins.int
    @property
    def event_id(self) -> th2_grpc_common.common_pb2.EventID: ...
    @property
    def filter(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Filter]: ...
    def __init__(self,
        *,
        event_id: typing.Optional[th2_grpc_common.common_pb2.EventID] = ...,
        filter: typing.Optional[typing.Iterable[global___Filter]] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["event_id",b"event_id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["event_id",b"event_id","filter",b"filter"]) -> None: ...
global___EventMatchRequest = EventMatchRequest

class MatchResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    MATCH_FIELD_NUMBER: builtins.int
    match: builtins.bool
    def __init__(self,
        *,
        match: builtins.bool = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["match",b"match"]) -> None: ...
global___MatchResponse = MatchResponse

class Filter(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    NAME_FIELD_NUMBER: builtins.int
    NEGATIVE_FIELD_NUMBER: builtins.int
    VALUE_FIELD_NUMBER: builtins.int
    CONJUNCT_FIELD_NUMBER: builtins.int
    @property
    def name(self) -> global___FilterName: ...
    negative: builtins.bool
    @property
    def value(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...
    conjunct: builtins.bool
    def __init__(self,
        *,
        name: typing.Optional[global___FilterName] = ...,
        negative: builtins.bool = ...,
        value: typing.Optional[typing.Iterable[typing.Text]] = ...,
        conjunct: builtins.bool = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["name",b"name"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["conjunct",b"conjunct","name",b"name","negative",b"negative","value",b"value"]) -> None: ...
global___Filter = Filter

class EventSearchRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    START_TIMESTAMP_FIELD_NUMBER: builtins.int
    END_TIMESTAMP_FIELD_NUMBER: builtins.int
    PARENT_EVENT_FIELD_NUMBER: builtins.int
    SEARCH_DIRECTION_FIELD_NUMBER: builtins.int
    RESUME_FROM_ID_FIELD_NUMBER: builtins.int
    RESULT_COUNT_LIMIT_FIELD_NUMBER: builtins.int
    KEEP_OPEN_FIELD_NUMBER: builtins.int
    LIMIT_FOR_PARENT_FIELD_NUMBER: builtins.int
    METADATA_ONLY_FIELD_NUMBER: builtins.int
    ATTACHED_MESSAGES_FIELD_NUMBER: builtins.int
    FILTER_FIELD_NUMBER: builtins.int
    @property
    def start_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """unix timestamp - Sets the search starting point. One of the 'start_timestamp' or 'resume_from_id' must not absent"""
        pass
    @property
    def end_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """unix timestamp - Sets the timestamp to which the search will be performed, starting with 'start_timestamp'. When 'search_direction' is previous, end_timestamp must be less than start_timestamp. By default it is absent (the search is carried out endlessly into the past or into the future)."""
        pass
    @property
    def parent_event(self) -> th2_grpc_common.common_pb2.EventID:
        """Match events to the specified parent. Only the immediate children of the specified event will be returned."""
        pass
    search_direction: global___TimeRelation.ValueType
    """Sets the lookup direction. Can be used for pagination. Set by default to NEXT."""

    @property
    def resume_from_id(self) -> th2_grpc_common.common_pb2.EventID:
        """last event id. In order to continue the execution of an interrupted sse request, you need to send exactly the same request with an indication of the element ID, from which the data transfer will be resumed. By default it is absent. One of the 'start_timestamp' or 'resume_from_id' must not absent"""
        pass
    @property
    def result_count_limit(self) -> google.protobuf.wrappers_pb2.Int32Value:
        """Sets the maximum amount of events to return. By default it is absent (unlimited)."""
        pass
    @property
    def keep_open(self) -> google.protobuf.wrappers_pb2.BoolValue:
        """If the search has reached the current moment, it is necessary to wait further for the appearance of new data. Set to false by default."""
        pass
    @property
    def limit_for_parent(self) -> google.protobuf.wrappers_pb2.Int64Value:
        """How many children events for each parent do we want to request. By default it is absent (unlimited)."""
        pass
    @property
    def metadata_only(self) -> google.protobuf.wrappers_pb2.BoolValue:
        """ Receive only metadata (true) or entire event (false) (without attachedMessageIds). Set by default to true."""
        pass
    @property
    def attached_messages(self) -> google.protobuf.wrappers_pb2.BoolValue:
        """If the metadataOnly is false, it will additionally load attachedMessageIds. Set by default to false."""
        pass
    @property
    def filter(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Filter]:
        """List of event search filters. (See 'search/sse/events' HTTP method https://github.com/th2-net/th2-rpt-data-provider)"""
        pass
    def __init__(self,
        *,
        start_timestamp: typing.Optional[google.protobuf.timestamp_pb2.Timestamp] = ...,
        end_timestamp: typing.Optional[google.protobuf.timestamp_pb2.Timestamp] = ...,
        parent_event: typing.Optional[th2_grpc_common.common_pb2.EventID] = ...,
        search_direction: global___TimeRelation.ValueType = ...,
        resume_from_id: typing.Optional[th2_grpc_common.common_pb2.EventID] = ...,
        result_count_limit: typing.Optional[google.protobuf.wrappers_pb2.Int32Value] = ...,
        keep_open: typing.Optional[google.protobuf.wrappers_pb2.BoolValue] = ...,
        limit_for_parent: typing.Optional[google.protobuf.wrappers_pb2.Int64Value] = ...,
        metadata_only: typing.Optional[google.protobuf.wrappers_pb2.BoolValue] = ...,
        attached_messages: typing.Optional[google.protobuf.wrappers_pb2.BoolValue] = ...,
        filter: typing.Optional[typing.Iterable[global___Filter]] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["attached_messages",b"attached_messages","end_timestamp",b"end_timestamp","keep_open",b"keep_open","limit_for_parent",b"limit_for_parent","metadata_only",b"metadata_only","parent_event",b"parent_event","result_count_limit",b"result_count_limit","resume_from_id",b"resume_from_id","start_timestamp",b"start_timestamp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["attached_messages",b"attached_messages","end_timestamp",b"end_timestamp","filter",b"filter","keep_open",b"keep_open","limit_for_parent",b"limit_for_parent","metadata_only",b"metadata_only","parent_event",b"parent_event","result_count_limit",b"result_count_limit","resume_from_id",b"resume_from_id","search_direction",b"search_direction","start_timestamp",b"start_timestamp"]) -> None: ...
global___EventSearchRequest = EventSearchRequest

class EventSearchResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    EVENT_FIELD_NUMBER: builtins.int
    EVENT_METADATA_FIELD_NUMBER: builtins.int
    EVENT_STREAM_POINTER_FIELD_NUMBER: builtins.int
    @property
    def event(self) -> global___EventResponse: ...
    @property
    def event_metadata(self) -> global___EventMetadata: ...
    @property
    def event_stream_pointer(self) -> global___EventStreamPointer: ...
    def __init__(self,
        *,
        event: typing.Optional[global___EventResponse] = ...,
        event_metadata: typing.Optional[global___EventMetadata] = ...,
        event_stream_pointer: typing.Optional[global___EventStreamPointer] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["data",b"data","event",b"event","event_metadata",b"event_metadata","event_stream_pointer",b"event_stream_pointer"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["data",b"data","event",b"event","event_metadata",b"event_metadata","event_stream_pointer",b"event_stream_pointer"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["data",b"data"]) -> typing.Optional[typing_extensions.Literal["event","event_metadata","event_stream_pointer"]]: ...
global___EventSearchResponse = EventSearchResponse

class EventStreamPointer(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    HAS_STARTED_FIELD_NUMBER: builtins.int
    HAS_ENDED_FIELD_NUMBER: builtins.int
    LAST_ID_FIELD_NUMBER: builtins.int
    has_started: builtins.bool
    """These flags indicate the state of the stream.
    There is data that matches our request.
    """

    has_ended: builtins.bool
    """All of the relevant data was already processed and there is nothing left."""

    @property
    def last_id(self) -> th2_grpc_common.common_pb2.EventID: ...
    def __init__(self,
        *,
        has_started: builtins.bool = ...,
        has_ended: builtins.bool = ...,
        last_id: typing.Optional[th2_grpc_common.common_pb2.EventID] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["last_id",b"last_id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["has_ended",b"has_ended","has_started",b"has_started","last_id",b"last_id"]) -> None: ...
global___EventStreamPointer = EventStreamPointer

class MessageSearchRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    START_TIMESTAMP_FIELD_NUMBER: builtins.int
    END_TIMESTAMP_FIELD_NUMBER: builtins.int
    SEARCH_DIRECTION_FIELD_NUMBER: builtins.int
    RESULT_COUNT_LIMIT_FIELD_NUMBER: builtins.int
    STREAM_FIELD_NUMBER: builtins.int
    KEEP_OPEN_FIELD_NUMBER: builtins.int
    STREAM_POINTER_FIELD_NUMBER: builtins.int
    FILTER_FIELD_NUMBER: builtins.int
    ATTACHED_EVENTS_FIELD_NUMBER: builtins.int
    @property
    def start_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """unix timestamp - Sets the search starting point. One of the 'start_timestamp' or 'resume_from_id' or 'message_id' must not absent"""
        pass
    @property
    def end_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """unix timestamp - Sets the timestamp to which the search will be performed, starting with 'start_timestamp'. When search_direction is 'previous', 'end_timestamp' must be less than 'start_timestamp'. By default it is absent (the search is carried out endlessly into the past or into the future)."""
        pass
    search_direction: global___TimeRelation.ValueType
    """Sets the lookup direction. Can be used for pagination. Set by default to NEXT."""

    @property
    def result_count_limit(self) -> google.protobuf.wrappers_pb2.Int32Value:
        """Sets the maximum amount of messages to return. By default it is absent (unlimited)"""
        pass
    @property
    def stream(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___MessageStream]:
        """Sets the stream names and directions to search in. Case-sensitive. Required."""
        pass
    @property
    def keep_open(self) -> google.protobuf.wrappers_pb2.BoolValue:
        """ If the search has reached the current moment, it is necessary to wait further for the appearance of new data. Set by default to false."""
        pass
    @property
    def stream_pointer(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___MessageStreamPointer]:
        """List of stream pointers to restore the search from. start_timestamp will be ignored if this parameter is specified. By default it is absent."""
        pass
    @property
    def filter(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Filter]:
        """List of message search filters. (See 'search/sse/message' HTTP method https://github.com/th2-net/th2-rpt-data-provider)"""
        pass
    @property
    def attached_events(self) -> google.protobuf.wrappers_pb2.BoolValue:
        """If true, it will additionally load attachedEventsIds. Set by default to false."""
        pass
    def __init__(self,
        *,
        start_timestamp: typing.Optional[google.protobuf.timestamp_pb2.Timestamp] = ...,
        end_timestamp: typing.Optional[google.protobuf.timestamp_pb2.Timestamp] = ...,
        search_direction: global___TimeRelation.ValueType = ...,
        result_count_limit: typing.Optional[google.protobuf.wrappers_pb2.Int32Value] = ...,
        stream: typing.Optional[typing.Iterable[global___MessageStream]] = ...,
        keep_open: typing.Optional[google.protobuf.wrappers_pb2.BoolValue] = ...,
        stream_pointer: typing.Optional[typing.Iterable[global___MessageStreamPointer]] = ...,
        filter: typing.Optional[typing.Iterable[global___Filter]] = ...,
        attached_events: typing.Optional[google.protobuf.wrappers_pb2.BoolValue] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["attached_events",b"attached_events","end_timestamp",b"end_timestamp","keep_open",b"keep_open","result_count_limit",b"result_count_limit","start_timestamp",b"start_timestamp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["attached_events",b"attached_events","end_timestamp",b"end_timestamp","filter",b"filter","keep_open",b"keep_open","result_count_limit",b"result_count_limit","search_direction",b"search_direction","start_timestamp",b"start_timestamp","stream",b"stream","stream_pointer",b"stream_pointer"]) -> None: ...
global___MessageSearchRequest = MessageSearchRequest

class MessageSearchResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    MESSAGE_FIELD_NUMBER: builtins.int
    MESSAGE_STREAM_POINTERS_FIELD_NUMBER: builtins.int
    @property
    def message(self) -> global___MessageGroupResponse: ...
    @property
    def message_stream_pointers(self) -> global___MessageStreamPointers: ...
    def __init__(self,
        *,
        message: typing.Optional[global___MessageGroupResponse] = ...,
        message_stream_pointers: typing.Optional[global___MessageStreamPointers] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["data",b"data","message",b"message","message_stream_pointers",b"message_stream_pointers"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["data",b"data","message",b"message","message_stream_pointers",b"message_stream_pointers"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["data",b"data"]) -> typing.Optional[typing_extensions.Literal["message","message_stream_pointers"]]: ...
global___MessageSearchResponse = MessageSearchResponse

class MessageStreamPointers(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    MESSAGE_STREAM_POINTER_FIELD_NUMBER: builtins.int
    @property
    def message_stream_pointer(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___MessageStreamPointer]: ...
    def __init__(self,
        *,
        message_stream_pointer: typing.Optional[typing.Iterable[global___MessageStreamPointer]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["message_stream_pointer",b"message_stream_pointer"]) -> None: ...
global___MessageStreamPointers = MessageStreamPointers

class MessageStreamPointer(google.protobuf.message.Message):
    """This object contains the data of the last message in the stream on which
    the search has stopped, it is necessary to continue the search from the same point
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    MESSAGE_STREAM_FIELD_NUMBER: builtins.int
    HAS_STARTED_FIELD_NUMBER: builtins.int
    HAS_ENDED_FIELD_NUMBER: builtins.int
    LAST_ID_FIELD_NUMBER: builtins.int
    @property
    def message_stream(self) -> global___MessageStream: ...
    has_started: builtins.bool
    has_ended: builtins.bool
    @property
    def last_id(self) -> th2_grpc_common.common_pb2.MessageID:
        """Might be abscent if the stream has no messages"""
        pass
    def __init__(self,
        *,
        message_stream: typing.Optional[global___MessageStream] = ...,
        has_started: builtins.bool = ...,
        has_ended: builtins.bool = ...,
        last_id: typing.Optional[th2_grpc_common.common_pb2.MessageID] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["last_id",b"last_id","message_stream",b"message_stream"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["has_ended",b"has_ended","has_started",b"has_started","last_id",b"last_id","message_stream",b"message_stream"]) -> None: ...
global___MessageStreamPointer = MessageStreamPointer

class MessageStream(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    NAME_FIELD_NUMBER: builtins.int
    DIRECTION_FIELD_NUMBER: builtins.int
    name: typing.Text
    """Case sensitive. Required."""

    direction: th2_grpc_common.common_pb2.Direction.ValueType
    """Required."""

    def __init__(self,
        *,
        name: typing.Text = ...,
        direction: th2_grpc_common.common_pb2.Direction.ValueType = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["direction",b"direction","name",b"name"]) -> None: ...
global___MessageStream = MessageStream

class MessageStreamsResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    MESSAGESTREAM_FIELD_NUMBER: builtins.int
    @property
    def messageStream(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___MessageStream]: ...
    def __init__(self,
        *,
        messageStream: typing.Optional[typing.Iterable[global___MessageStream]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["messageStream",b"messageStream"]) -> None: ...
global___MessageStreamsResponse = MessageStreamsResponse
