"""
@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(metaclass=_FilterParameterType):
    V = typing.NewType('V', builtins.int)

global___FilterParameterType = FilterParameterType

NUMBER = FilterParameterType.V(0)
BOOLEAN = FilterParameterType.V(1)
STRING = FilterParameterType.V(2)
STRING_LIST = FilterParameterType.V(3)

class _FilterParameterType(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[FilterParameterType.V], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor = ...
    NUMBER = FilterParameterType.V(0)
    BOOLEAN = FilterParameterType.V(1)
    STRING = FilterParameterType.V(2)
    STRING_LIST = FilterParameterType.V(3)

class TimeRelation(metaclass=_TimeRelation):
    V = typing.NewType('V', builtins.int)

global___TimeRelation = TimeRelation

NEXT = TimeRelation.V(0)
PREVIOUS = TimeRelation.V(1)

class _TimeRelation(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[TimeRelation.V], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor = ...
    NEXT = TimeRelation.V(0)
    PREVIOUS = TimeRelation.V(1)

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
    is_batched: builtins.bool = ...
    status: th2_grpc_common.common_pb2.EventStatus.V = ...
    event_name: typing.Text = ...
    event_type: typing.Text = ...
    body: builtins.bytes = ...

    @property
    def event_id(self) -> th2_grpc_common.common_pb2.EventID: ...

    @property
    def parent_event_id(self) -> th2_grpc_common.common_pb2.EventID: ...

    @property
    def batch_id(self) -> th2_grpc_common.common_pb2.EventID: ...

    @property
    def start_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ...

    @property
    def end_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ...

    @property
    def attached_message_id(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[th2_grpc_common.common_pb2.MessageID]: ...

    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.V = ...,
        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[u"batch_id",b"batch_id",u"end_timestamp",b"end_timestamp",u"event_id",b"event_id",u"parent_event_id",b"parent_event_id",u"start_timestamp",b"start_timestamp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"attached_message_id",b"attached_message_id",u"batch_id",b"batch_id",u"body",b"body",u"end_timestamp",b"end_timestamp",u"event_id",b"event_id",u"event_name",b"event_name",u"event_type",b"event_type",u"is_batched",b"is_batched",u"parent_event_id",b"parent_event_id",u"start_timestamp",b"start_timestamp",u"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
    status: th2_grpc_common.common_pb2.EventStatus.V = ...
    event_name: typing.Text = ...
    event_type: typing.Text = ...

    @property
    def event_id(self) -> th2_grpc_common.common_pb2.EventID: ...

    @property
    def parent_event_id(self) -> th2_grpc_common.common_pb2.EventID: ...

    @property
    def start_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ...

    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.V = ...,
        event_name : typing.Text = ...,
        event_type : typing.Text = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"event_id",b"event_id",u"parent_event_id",b"parent_event_id",u"start_timestamp",b"start_timestamp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"event_id",b"event_id",u"event_name",b"event_name",u"event_type",b"event_type",u"parent_event_id",b"parent_event_id",u"start_timestamp",b"start_timestamp",u"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[u"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[u"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
    match: builtins.bool = ...

    @property
    def message(self) -> th2_grpc_common.common_pb2.Message: ...

    def __init__(self,
        *,
        message : typing.Optional[th2_grpc_common.common_pb2.Message] = ...,
        match : builtins.bool = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"message",b"message"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"match",b"match",u"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
    body_raw: builtins.bytes = ...

    @property
    def message_id(self) -> th2_grpc_common.common_pb2.MessageID: ...

    @property
    def timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ...

    @property
    def attached_event_id(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[th2_grpc_common.common_pb2.EventID]: ...

    @property
    def message_item(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___MessageGroupItem]: ...

    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[u"message_id",b"message_id",u"timestamp",b"timestamp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"attached_event_id",b"attached_event_id",u"body_raw",b"body_raw",u"message_id",b"message_id",u"message_item",b"message_item",u"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[u"filter_name",b"filter_name"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"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[u"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[u"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.V = ...
    hint: typing.Text = ...

    @property
    def default_value(self) -> google.protobuf.any_pb2.Any: ...

    def __init__(self,
        *,
        name : typing.Text = ...,
        type : global___FilterParameterType.V = ...,
        default_value : typing.Optional[google.protobuf.any_pb2.Any] = ...,
        hint : typing.Text = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"default_value",b"default_value"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"default_value",b"default_value",u"hint",b"hint",u"name",b"name",u"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
    hint: typing.Text = ...

    @property
    def name(self) -> global___FilterName: ...

    @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[u"name",b"name"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"hint",b"hint",u"name",b"name",u"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[u"message_id",b"message_id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"filter",b"filter",u"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[u"event_id",b"event_id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"event_id",b"event_id",u"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[u"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
    negative: builtins.bool = ...

    @property
    def value(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...
    conjunct: builtins.bool = ...

    @property
    def name(self) -> global___FilterName: ...

    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[u"name",b"name"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"conjunct",b"conjunct",u"name",b"name",u"negative",b"negative",u"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
    search_direction: global___TimeRelation.V = ...

    @property
    def start_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ...

    @property
    def end_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ...

    @property
    def parent_event(self) -> th2_grpc_common.common_pb2.EventID: ...

    @property
    def resume_from_id(self) -> th2_grpc_common.common_pb2.EventID: ...

    @property
    def result_count_limit(self) -> google.protobuf.wrappers_pb2.Int32Value: ...

    @property
    def keep_open(self) -> google.protobuf.wrappers_pb2.BoolValue: ...

    @property
    def limit_for_parent(self) -> google.protobuf.wrappers_pb2.Int64Value: ...

    @property
    def metadata_only(self) -> google.protobuf.wrappers_pb2.BoolValue: ...

    @property
    def attached_messages(self) -> google.protobuf.wrappers_pb2.BoolValue: ...

    @property
    def filter(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Filter]: ...

    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.V = ...,
        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[u"attached_messages",b"attached_messages",u"end_timestamp",b"end_timestamp",u"keep_open",b"keep_open",u"limit_for_parent",b"limit_for_parent",u"metadata_only",b"metadata_only",u"parent_event",b"parent_event",u"result_count_limit",b"result_count_limit",u"resume_from_id",b"resume_from_id",u"start_timestamp",b"start_timestamp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"attached_messages",b"attached_messages",u"end_timestamp",b"end_timestamp",u"filter",b"filter",u"keep_open",b"keep_open",u"limit_for_parent",b"limit_for_parent",u"metadata_only",b"metadata_only",u"parent_event",b"parent_event",u"result_count_limit",b"result_count_limit",u"resume_from_id",b"resume_from_id",u"search_direction",b"search_direction",u"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[u"data",b"data",u"event",b"event",u"event_metadata",b"event_metadata",u"event_stream_pointer",b"event_stream_pointer"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"data",b"data",u"event",b"event",u"event_metadata",b"event_metadata",u"event_stream_pointer",b"event_stream_pointer"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal[u"data",b"data"]) -> 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 = ...
    has_ended: builtins.bool = ...

    @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[u"last_id",b"last_id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"has_ended",b"has_ended",u"has_started",b"has_started",u"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
    search_direction: global___TimeRelation.V = ...

    @property
    def start_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ...

    @property
    def end_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ...

    @property
    def result_count_limit(self) -> google.protobuf.wrappers_pb2.Int32Value: ...

    @property
    def stream(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___MessageStream]: ...

    @property
    def keep_open(self) -> google.protobuf.wrappers_pb2.BoolValue: ...

    @property
    def stream_pointer(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___MessageStreamPointer]: ...

    @property
    def filter(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Filter]: ...

    @property
    def attached_events(self) -> google.protobuf.wrappers_pb2.BoolValue: ...

    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.V = ...,
        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[u"attached_events",b"attached_events",u"end_timestamp",b"end_timestamp",u"keep_open",b"keep_open",u"result_count_limit",b"result_count_limit",u"start_timestamp",b"start_timestamp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"attached_events",b"attached_events",u"end_timestamp",b"end_timestamp",u"filter",b"filter",u"keep_open",b"keep_open",u"result_count_limit",b"result_count_limit",u"search_direction",b"search_direction",u"start_timestamp",b"start_timestamp",u"stream",b"stream",u"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[u"data",b"data",u"message",b"message",u"message_stream_pointers",b"message_stream_pointers"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"data",b"data",u"message",b"message",u"message_stream_pointers",b"message_stream_pointers"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal[u"data",b"data"]) -> 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[u"message_stream_pointer",b"message_stream_pointer"]) -> None: ...
global___MessageStreamPointers = MessageStreamPointers

class MessageStreamPointer(google.protobuf.message.Message):
    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
    has_started: builtins.bool = ...
    has_ended: builtins.bool = ...

    @property
    def message_stream(self) -> global___MessageStream: ...

    @property
    def last_id(self) -> th2_grpc_common.common_pb2.MessageID: ...

    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[u"last_id",b"last_id",u"message_stream",b"message_stream"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"has_ended",b"has_ended",u"has_started",b"has_started",u"last_id",b"last_id",u"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 = ...
    direction: th2_grpc_common.common_pb2.Direction.V = ...

    def __init__(self,
        *,
        name : typing.Text = ...,
        direction : th2_grpc_common.common_pb2.Direction.V = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"direction",b"direction",u"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[u"messageStream",b"messageStream"]) -> None: ...
global___MessageStreamsResponse = MessageStreamsResponse
