"""
@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.message
import sentry_protos.snuba.v1.request_common_pb2
import sentry_protos.snuba.v1.trace_item_attribute_pb2
import sentry_protos.snuba.v1.trace_item_filter_pb2
import typing

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing.final
class TraceItemTableRequest(google.protobuf.message.Message):
    """Serves requests for table views of the data"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class OrderBy(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        COLUMN_FIELD_NUMBER: builtins.int
        DESCENDING_FIELD_NUMBER: builtins.int
        descending: builtins.bool
        @property
        def column(self) -> global___Column: ...
        def __init__(
            self,
            *,
            column: global___Column | None = ...,
            descending: builtins.bool = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["column", b"column"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["column", b"column", "descending", b"descending"]) -> None: ...

    META_FIELD_NUMBER: builtins.int
    COLUMNS_FIELD_NUMBER: builtins.int
    FILTER_FIELD_NUMBER: builtins.int
    ORDER_BY_FIELD_NUMBER: builtins.int
    GROUP_BY_FIELD_NUMBER: builtins.int
    LIMIT_FIELD_NUMBER: builtins.int
    PAGE_TOKEN_FIELD_NUMBER: builtins.int
    VIRTUAL_COLUMN_CONTEXTS_FIELD_NUMBER: builtins.int
    limit: builtins.int
    @property
    def meta(self) -> sentry_protos.snuba.v1.request_common_pb2.RequestMeta: ...
    @property
    def columns(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Column]: ...
    @property
    def filter(self) -> sentry_protos.snuba.v1.trace_item_filter_pb2.TraceItemFilter: ...
    @property
    def order_by(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TraceItemTableRequest.OrderBy]: ...
    @property
    def group_by(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeKey]: ...
    @property
    def page_token(self) -> sentry_protos.snuba.v1.request_common_pb2.PageToken: ...
    @property
    def virtual_column_contexts(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[sentry_protos.snuba.v1.trace_item_attribute_pb2.VirtualColumnContext]: ...
    def __init__(
        self,
        *,
        meta: sentry_protos.snuba.v1.request_common_pb2.RequestMeta | None = ...,
        columns: collections.abc.Iterable[global___Column] | None = ...,
        filter: sentry_protos.snuba.v1.trace_item_filter_pb2.TraceItemFilter | None = ...,
        order_by: collections.abc.Iterable[global___TraceItemTableRequest.OrderBy] | None = ...,
        group_by: collections.abc.Iterable[sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeKey] | None = ...,
        limit: builtins.int = ...,
        page_token: sentry_protos.snuba.v1.request_common_pb2.PageToken | None = ...,
        virtual_column_contexts: collections.abc.Iterable[sentry_protos.snuba.v1.trace_item_attribute_pb2.VirtualColumnContext] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["filter", b"filter", "meta", b"meta", "page_token", b"page_token"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["columns", b"columns", "filter", b"filter", "group_by", b"group_by", "limit", b"limit", "meta", b"meta", "order_by", b"order_by", "page_token", b"page_token", "virtual_column_contexts", b"virtual_column_contexts"]) -> None: ...

global___TraceItemTableRequest = TraceItemTableRequest

@typing.final
class Column(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    KEY_FIELD_NUMBER: builtins.int
    AGGREGATION_FIELD_NUMBER: builtins.int
    LABEL_FIELD_NUMBER: builtins.int
    label: builtins.str
    @property
    def key(self) -> sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeKey: ...
    @property
    def aggregation(self) -> sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeAggregation: ...
    def __init__(
        self,
        *,
        key: sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeKey | None = ...,
        aggregation: sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeAggregation | None = ...,
        label: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["aggregation", b"aggregation", "column", b"column", "key", b"key"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["aggregation", b"aggregation", "column", b"column", "key", b"key", "label", b"label"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["column", b"column"]) -> typing.Literal["key", "aggregation"] | None: ...

global___Column = Column

@typing.final
class TraceItemColumnValues(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ATTRIBUTE_NAME_FIELD_NUMBER: builtins.int
    RESULTS_FIELD_NUMBER: builtins.int
    RELIABILITIES_FIELD_NUMBER: builtins.int
    attribute_name: builtins.str
    @property
    def results(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeValue]: ...
    @property
    def reliabilities(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[sentry_protos.snuba.v1.trace_item_attribute_pb2.Reliability.ValueType]: ...
    def __init__(
        self,
        *,
        attribute_name: builtins.str = ...,
        results: collections.abc.Iterable[sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeValue] | None = ...,
        reliabilities: collections.abc.Iterable[sentry_protos.snuba.v1.trace_item_attribute_pb2.Reliability.ValueType] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["attribute_name", b"attribute_name", "reliabilities", b"reliabilities", "results", b"results"]) -> None: ...

global___TraceItemColumnValues = TraceItemColumnValues

@typing.final
class TraceItemTableResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    COLUMN_VALUES_FIELD_NUMBER: builtins.int
    PAGE_TOKEN_FIELD_NUMBER: builtins.int
    META_FIELD_NUMBER: builtins.int
    @property
    def column_values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TraceItemColumnValues]: ...
    @property
    def page_token(self) -> sentry_protos.snuba.v1.request_common_pb2.PageToken: ...
    @property
    def meta(self) -> sentry_protos.snuba.v1.request_common_pb2.ResponseMeta: ...
    def __init__(
        self,
        *,
        column_values: collections.abc.Iterable[global___TraceItemColumnValues] | None = ...,
        page_token: sentry_protos.snuba.v1.request_common_pb2.PageToken | None = ...,
        meta: sentry_protos.snuba.v1.request_common_pb2.ResponseMeta | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["meta", b"meta", "page_token", b"page_token"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["column_values", b"column_values", "meta", b"meta", "page_token", b"page_token"]) -> None: ...

global___TraceItemTableResponse = TraceItemTableResponse
