diff --git a/.gitignore b/.gitignore index 7f0e541d..2c0bd98d 100644 --- a/.gitignore +++ b/.gitignore @@ -149,7 +149,7 @@ data/ .artifacts/ # Generated bindings -/py/sentry_protos/* +# /py/sentry_protos/* # Generated documentation /docs/build/* diff --git a/Cargo.lock b/Cargo.lock index 0e8c4bbf..2c65cf3b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -668,7 +668,7 @@ checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" [[package]] name = "sentry_protos" -version = "0.4.9" +version = "0.4.10" dependencies = [ "prost", "prost-types", diff --git a/proto/sentry_protos/taskbroker/v1/taskbroker.proto b/proto/sentry_protos/taskbroker/v1/taskbroker.proto index 3dc50132..2e296fca 100644 --- a/proto/sentry_protos/taskbroker/v1/taskbroker.proto +++ b/proto/sentry_protos/taskbroker/v1/taskbroker.proto @@ -82,8 +82,26 @@ service ConsumerService { // Update the state of a task with execution results. rpc SetTaskStatus(SetTaskStatusRequest) returns (SetTaskStatusResponse) {} + + // Add a worker to the broker's inner worker pool. + rpc AddWorker(AddWorkerRequest) returns (AddWorkerResponse) {} + + // Remove a worker from the broker's inner worker pool. + rpc RemoveWorker(RemoveWorkerRequest) returns (RemoveWorkerResponse) {} } +message AddWorkerRequest { + string address = 1; +} + +message AddWorkerResponse {} + +message RemoveWorkerRequest { + string address = 1; +} + +message RemoveWorkerResponse {} + message GetTaskRequest { optional string namespace = 1; } @@ -104,6 +122,8 @@ message SetTaskStatusRequest { // If fetch_next is provided, receive a new task in the response optional FetchNextTask fetch_next_task = 3; + + string address = 4; } message SetTaskStatusResponse { diff --git a/proto/sentry_protos/taskworker/v1/taskworker.proto b/proto/sentry_protos/taskworker/v1/taskworker.proto new file mode 100644 index 00000000..34d37460 --- /dev/null +++ b/proto/sentry_protos/taskworker/v1/taskworker.proto @@ -0,0 +1,20 @@ +syntax = "proto3"; + +package sentry_protos.taskworker.v1; + +import "sentry_protos/taskbroker/v1/taskbroker.proto"; + +service WorkerService { + // Receives a task to execute. + rpc PushTask(PushTaskRequest) returns (PushTaskResponse) {} +} + +message PushTaskRequest { + sentry_protos.taskbroker.v1.TaskActivation task = 1; + string callback_url = 2; +} + +message PushTaskResponse { + bool added = 1; + uint32 queue_size = 2; +} diff --git a/py/sentry_protos/__init__.py b/py/sentry_protos/__init__.py new file mode 100644 index 00000000..805e7c47 --- /dev/null +++ b/py/sentry_protos/__init__.py @@ -0,0 +1 @@ +__version__ = "0.4.10" diff --git a/py/sentry_protos/conduit/__init__.py b/py/sentry_protos/conduit/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/py/sentry_protos/conduit/v1alpha/__init__.py b/py/sentry_protos/conduit/v1alpha/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/py/sentry_protos/conduit/v1alpha/publish_pb2.py b/py/sentry_protos/conduit/v1alpha/publish_pb2.py new file mode 100644 index 00000000..da61dbec --- /dev/null +++ b/py/sentry_protos/conduit/v1alpha/publish_pb2.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: sentry_protos/conduit/v1alpha/publish.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n+sentry_protos/conduit/v1alpha/publish.proto\x12\x1dsentry_protos.conduit.v1alpha\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xdf\x01\n\x0ePublishRequest\x12\x12\n\nchannel_id\x18\x01 \x01(\t\x12\x12\n\nmessage_id\x18\x02 \x01(\t\x12\x34\n\x10\x63lient_timestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x33\n\x05phase\x18\x04 \x01(\x0e\x32$.sentry_protos.conduit.v1alpha.Phase\x12\x10\n\x08sequence\x18\x05 \x01(\x04\x12(\n\x07payload\x18\x06 \x01(\x0b\x32\x17.google.protobuf.Struct*`\n\x05Phase\x12\x15\n\x11PHASE_UNSPECIFIED\x10\x00\x12\x0f\n\x0bPHASE_START\x10\x01\x12\x0f\n\x0bPHASE_DELTA\x10\x02\x12\r\n\tPHASE_END\x10\x03\x12\x0f\n\x0bPHASE_ERROR\x10\x04\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sentry_protos.conduit.v1alpha.publish_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_PHASE']._serialized_start=367 + _globals['_PHASE']._serialized_end=463 + _globals['_PUBLISHREQUEST']._serialized_start=142 + _globals['_PUBLISHREQUEST']._serialized_end=365 +# @@protoc_insertion_point(module_scope) diff --git a/py/sentry_protos/conduit/v1alpha/publish_pb2.pyi b/py/sentry_protos/conduit/v1alpha/publish_pb2.pyi new file mode 100644 index 00000000..5d67a285 --- /dev/null +++ b/py/sentry_protos/conduit/v1alpha/publish_pb2.pyi @@ -0,0 +1,90 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.internal.enum_type_wrapper +import google.protobuf.message +import google.protobuf.struct_pb2 +import google.protobuf.timestamp_pb2 +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 _Phase: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _PhaseEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Phase.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + PHASE_UNSPECIFIED: _Phase.ValueType # 0 + PHASE_START: _Phase.ValueType # 1 + """Initial event to establish stream""" + PHASE_DELTA: _Phase.ValueType # 2 + """Incremental updates""" + PHASE_END: _Phase.ValueType # 3 + """Clean stream termination""" + PHASE_ERROR: _Phase.ValueType # 4 + """Stream encountered an error""" + +class Phase(_Phase, metaclass=_PhaseEnumTypeWrapper): ... + +PHASE_UNSPECIFIED: Phase.ValueType # 0 +PHASE_START: Phase.ValueType # 1 +"""Initial event to establish stream""" +PHASE_DELTA: Phase.ValueType # 2 +"""Incremental updates""" +PHASE_END: Phase.ValueType # 3 +"""Clean stream termination""" +PHASE_ERROR: Phase.ValueType # 4 +"""Stream encountered an error""" +global___Phase = Phase + +@typing.final +class PublishRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CHANNEL_ID_FIELD_NUMBER: builtins.int + MESSAGE_ID_FIELD_NUMBER: builtins.int + CLIENT_TIMESTAMP_FIELD_NUMBER: builtins.int + PHASE_FIELD_NUMBER: builtins.int + SEQUENCE_FIELD_NUMBER: builtins.int + PAYLOAD_FIELD_NUMBER: builtins.int + channel_id: builtins.str + """Channel identifier for routing""" + message_id: builtins.str + """Unique message identifier for deduplication and idempotency""" + phase: global___Phase.ValueType + """Current phase of the streaming lifecycle""" + sequence: builtins.int + """Monotonically increasing sequence number within a stream""" + @property + def client_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: + """Timestamp when client sent the event""" + + @property + def payload(self) -> google.protobuf.struct_pb2.Struct: + """Application-specific payload data""" + + def __init__( + self, + *, + channel_id: builtins.str = ..., + message_id: builtins.str = ..., + client_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + phase: global___Phase.ValueType = ..., + sequence: builtins.int = ..., + payload: google.protobuf.struct_pb2.Struct | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["client_timestamp", b"client_timestamp", "payload", b"payload"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["channel_id", b"channel_id", "client_timestamp", b"client_timestamp", "message_id", b"message_id", "payload", b"payload", "phase", b"phase", "sequence", b"sequence"]) -> None: ... + +global___PublishRequest = PublishRequest diff --git a/py/sentry_protos/conduit/v1alpha/publish_pb2_grpc.py b/py/sentry_protos/conduit/v1alpha/publish_pb2_grpc.py new file mode 100644 index 00000000..bbe3aff6 --- /dev/null +++ b/py/sentry_protos/conduit/v1alpha/publish_pb2_grpc.py @@ -0,0 +1,29 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.65.4' +GRPC_VERSION = grpc.__version__ +EXPECTED_ERROR_RELEASE = '1.66.0' +SCHEDULED_RELEASE_DATE = 'August 6, 2024' +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + warnings.warn( + f'The grpc package installed is at version {GRPC_VERSION},' + + f' but the generated code in sentry_protos/conduit/v1alpha/publish_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + + f' This warning will become an error in {EXPECTED_ERROR_RELEASE},' + + f' scheduled for release on {SCHEDULED_RELEASE_DATE}.', + RuntimeWarning + ) diff --git a/py/sentry_protos/conduit/v1alpha/publish_pb2_grpc.pyi b/py/sentry_protos/conduit/v1alpha/publish_pb2_grpc.pyi new file mode 100644 index 00000000..a6a9cff9 --- /dev/null +++ b/py/sentry_protos/conduit/v1alpha/publish_pb2_grpc.pyi @@ -0,0 +1,17 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import grpc +import grpc.aio +import typing + +_T = typing.TypeVar("_T") + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg] + ... diff --git a/py/sentry_protos/kafka/__init__.py b/py/sentry_protos/kafka/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/py/sentry_protos/kafka/events/__init__.py b/py/sentry_protos/kafka/events/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/py/sentry_protos/kafka/events/v1/__init__.py b/py/sentry_protos/kafka/events/v1/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/py/sentry_protos/kafka/events/v1/events_pb2.py b/py/sentry_protos/kafka/events/v1/events_pb2.py new file mode 100644 index 00000000..30fe8f6a --- /dev/null +++ b/py/sentry_protos/kafka/events/v1/events_pb2.py @@ -0,0 +1,206 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: sentry_protos/kafka/events/v1/events.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 +from sentry_protos.options.v1 import options_pb2 as sentry__protos_dot_options_dot_v1_dot_options__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n*sentry_protos/kafka/events/v1/events.proto\x12\x1dsentry_protos.kafka.events.v1\x1a\x1cgoogle/protobuf/struct.proto\x1a&sentry_protos/options/v1/options.proto\"\xeb\t\n\x12\x45ventStreamMessage\x12O\n\x12inserteventmessage\x18\x01 \x01(\x0b\x32\x31.sentry_protos.kafka.events.v1.InserteventmessageH\x00\x12[\n\x18startdeletegroupsmessage\x18\x02 \x01(\x0b\x32\x37.sentry_protos.kafka.events.v1.StartdeletegroupsmessageH\x00\x12M\n\x11startmergemessage\x18\x03 \x01(\x0b\x32\x30.sentry_protos.kafka.events.v1.StartmergemessageH\x00\x12Q\n\x13startunmergemessage\x18\x04 \x01(\x0b\x32\x32.sentry_protos.kafka.events.v1.StartunmergemessageH\x00\x12i\n\x1fstartunmergehierarchicalmessage\x18\x05 \x01(\x0b\x32>.sentry_protos.kafka.events.v1.StartunmergehierarchicalmessageH\x00\x12U\n\x15startdeletetagmessage\x18\x06 \x01(\x0b\x32\x34.sentry_protos.kafka.events.v1.StartdeletetagmessageH\x00\x12W\n\x16\x65nddeletegroupsmessage\x18\x07 \x01(\x0b\x32\x35.sentry_protos.kafka.events.v1.EnddeletegroupsmessageH\x00\x12I\n\x0f\x65ndmergemessage\x18\x08 \x01(\x0b\x32..sentry_protos.kafka.events.v1.EndmergemessageH\x00\x12M\n\x11\x65ndunmergemessage\x18\t \x01(\x0b\x32\x30.sentry_protos.kafka.events.v1.EndunmergemessageH\x00\x12\x65\n\x1d\x65ndunmergehierarchicalmessage\x18\n \x01(\x0b\x32<.sentry_protos.kafka.events.v1.EndunmergehierarchicalmessageH\x00\x12Q\n\x13\x65nddeletetagmessage\x18\x0b \x01(\x0b\x32\x32.sentry_protos.kafka.events.v1.EnddeletetagmessageH\x00\x12W\n\x16tombstoneeventsmessage\x18\x0c \x01(\x0b\x32\x35.sentry_protos.kafka.events.v1.TombstoneeventsmessageH\x00\x12Q\n\x13replacegroupmessage\x18\r \x01(\x0b\x32\x32.sentry_protos.kafka.events.v1.ReplacegroupmessageH\x00\x12S\n\x14\x65xcludegroupsmessage\x18\x0e \x01(\x0b\x32\x33.sentry_protos.kafka.events.v1.ExcludegroupsmessageH\x00:\x0c\xc2\xb7\x04\x08\n\x06\x65rrorsB\x07\n\x05value\"\x96\x02\n\x11Startmergemessage\x12\n\n\x02\x61\x30\x18\x01 \x01(\x03\x12\x1d\n\x02\x61\x31\x18\x02 \x01(\tB\x11\xc2\xb7\x04\r\x12\x0bstart_merge\x12O\n\x02\x61\x32\x18\x03 \x01(\x0b\x32\x43.sentry_protos.kafka.events.v1.Startmergemessage.Startmergemessage2\x1a\x84\x01\n\x12Startmergemessage2\x12\x16\n\x0etransaction_id\x18\x01 \x01(\t\x12\x12\n\nproject_id\x18\x02 \x01(\x03\x12\x1a\n\x12previous_group_ids\x18\x03 \x03(\x03\x12\x14\n\x0cnew_group_id\x18\x04 \x01(\x03\x12\x10\n\x08\x64\x61tetime\x18\x05 \x01(\t\"\x8c\x02\n\x0f\x45ndmergemessage\x12\n\n\x02\x61\x30\x18\x01 \x01(\x03\x12\x1b\n\x02\x61\x31\x18\x02 \x01(\tB\x0f\xc2\xb7\x04\x0b\x12\tend_merge\x12K\n\x02\x61\x32\x18\x03 \x01(\x0b\x32?.sentry_protos.kafka.events.v1.Endmergemessage.Endmergemessage2\x1a\x82\x01\n\x10\x45ndmergemessage2\x12\x16\n\x0etransaction_id\x18\x01 \x01(\t\x12\x12\n\nproject_id\x18\x02 \x01(\x03\x12\x1a\n\x12previous_group_ids\x18\x03 \x03(\x03\x12\x14\n\x0cnew_group_id\x18\x04 \x01(\x03\x12\x10\n\x08\x64\x61tetime\x18\x05 \x01(\t\"\x9a\x02\n\x18Startdeletegroupsmessage\x12\n\n\x02\x61\x30\x18\x01 \x01(\x03\x12%\n\x02\x61\x31\x18\x02 \x01(\tB\x19\xc2\xb7\x04\x15\x12\x13start_delete_groups\x12]\n\x02\x61\x32\x18\x03 \x01(\x0b\x32Q.sentry_protos.kafka.events.v1.Startdeletegroupsmessage.Startdeletegroupsmessage2\x1al\n\x19Startdeletegroupsmessage2\x12\x16\n\x0etransaction_id\x18\x01 \x01(\t\x12\x12\n\nproject_id\x18\x02 \x01(\x03\x12\x11\n\tgroup_ids\x18\x03 \x03(\x03\x12\x10\n\x08\x64\x61tetime\x18\x04 \x01(\t\"\x90\x02\n\x16\x45nddeletegroupsmessage\x12\n\n\x02\x61\x30\x18\x01 \x01(\x03\x12#\n\x02\x61\x31\x18\x02 \x01(\tB\x17\xc2\xb7\x04\x13\x12\x11\x65nd_delete_groups\x12Y\n\x02\x61\x32\x18\x03 \x01(\x0b\x32M.sentry_protos.kafka.events.v1.Enddeletegroupsmessage.Enddeletegroupsmessage2\x1aj\n\x17\x45nddeletegroupsmessage2\x12\x16\n\x0etransaction_id\x18\x01 \x01(\t\x12\x12\n\nproject_id\x18\x02 \x01(\x03\x12\x11\n\tgroup_ids\x18\x03 \x03(\x03\x12\x10\n\x08\x64\x61tetime\x18\x04 \x01(\t\"\xc3\x01\n\x13Startunmergemessage\x12\n\n\x02\x61\x30\x18\x01 \x01(\x03\x12\x1f\n\x02\x61\x31\x18\x02 \x01(\tB\x13\xc2\xb7\x04\x0f\x12\rstart_unmerge\x12S\n\x02\x61\x32\x18\x03 \x01(\x0b\x32G.sentry_protos.kafka.events.v1.Startunmergemessage.Startunmergemessage2\x1a*\n\x14Startunmergemessage2\x12\x12\n\nproject_id\x18\x01 \x01(\x03\"\x80\x02\n\x1fStartunmergehierarchicalmessage\x12\n\n\x02\x61\x30\x18\x01 \x01(\x03\x12,\n\x02\x61\x31\x18\x02 \x01(\tB \xc2\xb7\x04\x1c\x12\x1astart_unmerge_hierarchical\x12k\n\x02\x61\x32\x18\x03 \x01(\x0b\x32_.sentry_protos.kafka.events.v1.Startunmergehierarchicalmessage.Startunmergehierarchicalmessage2\x1a\x36\n Startunmergehierarchicalmessage2\x12\x12\n\nproject_id\x18\x01 \x01(\x03\"\xce\x01\n\x15Startdeletetagmessage\x12\n\n\x02\x61\x30\x18\x01 \x01(\x03\x12\"\n\x02\x61\x31\x18\x02 \x01(\tB\x16\xc2\xb7\x04\x12\x12\x10start_delete_tag\x12W\n\x02\x61\x32\x18\x03 \x01(\x0b\x32K.sentry_protos.kafka.events.v1.Startdeletetagmessage.Startdeletetagmessage2\x1a,\n\x16Startdeletetagmessage2\x12\x12\n\nproject_id\x18\x01 \x01(\x03\"\xa5\x02\n\x11\x45ndunmergemessage\x12\n\n\x02\x61\x30\x18\x01 \x01(\x03\x12\x1d\n\x02\x61\x31\x18\x02 \x01(\tB\x11\xc2\xb7\x04\r\x12\x0b\x65nd_unmerge\x12O\n\x02\x61\x32\x18\x03 \x01(\x0b\x32\x43.sentry_protos.kafka.events.v1.Endunmergemessage.Endunmergemessage2\x1a\x93\x01\n\x12\x45ndunmergemessage2\x12\x16\n\x0etransaction_id\x18\x01 \x01(\t\x12\x12\n\nproject_id\x18\x02 \x01(\x03\x12\x19\n\x11previous_group_id\x18\x03 \x01(\x03\x12\x14\n\x0cnew_group_id\x18\x04 \x01(\x03\x12\x0e\n\x06hashes\x18\x05 \x03(\t\x12\x10\n\x08\x64\x61tetime\x18\x06 \x01(\t\"\xeb\x02\n\x1d\x45ndunmergehierarchicalmessage\x12\n\n\x02\x61\x30\x18\x01 \x01(\x03\x12*\n\x02\x61\x31\x18\x02 \x01(\tB\x1e\xc2\xb7\x04\x1a\x12\x18\x65nd_unmerge_hierarchical\x12g\n\x02\x61\x32\x18\x03 \x01(\x0b\x32[.sentry_protos.kafka.events.v1.Endunmergehierarchicalmessage.Endunmergehierarchicalmessage2\x1a\xa8\x01\n\x1e\x45ndunmergehierarchicalmessage2\x12\x12\n\nproject_id\x18\x01 \x01(\x03\x12\x19\n\x11previous_group_id\x18\x02 \x01(\x03\x12\x14\n\x0cnew_group_id\x18\x03 \x01(\x03\x12\x14\n\x0cprimary_hash\x18\x04 \x01(\t\x12\x19\n\x11hierarchical_hash\x18\x05 \x01(\t\x12\x10\n\x08\x64\x61tetime\x18\x06 \x01(\t\"\xe3\x01\n\x13\x45nddeletetagmessage\x12\n\n\x02\x61\x30\x18\x01 \x01(\x03\x12 \n\x02\x61\x31\x18\x02 \x01(\tB\x14\xc2\xb7\x04\x10\x12\x0e\x65nd_delete_tag\x12S\n\x02\x61\x32\x18\x03 \x01(\x0b\x32G.sentry_protos.kafka.events.v1.Enddeletetagmessage.Enddeletetagmessage2\x1aI\n\x14\x45nddeletetagmessage2\x12\x0b\n\x03tag\x18\x01 \x01(\t\x12\x10\n\x08\x64\x61tetime\x18\x02 \x01(\t\x12\x12\n\nproject_id\x18\x03 \x01(\x03\"\xda\x02\n\x16Tombstoneeventsmessage\x12\n\n\x02\x61\x30\x18\x01 \x01(\x03\x12\"\n\x02\x61\x31\x18\x02 \x01(\tB\x16\xc2\xb7\x04\x12\x12\x10tombstone_events\x12Y\n\x02\x61\x32\x18\x03 \x01(\x0b\x32M.sentry_protos.kafka.events.v1.Tombstoneeventsmessage.Tombstoneeventsmessage2\x1a\xb4\x01\n\x17Tombstoneeventsmessage2\x12\x12\n\nproject_id\x18\x01 \x01(\x03\x12\x11\n\tevent_ids\x18\x02 \x03(\t\x12\x1a\n\x10old_primary_hash\x18\x03 \x01(\tH\x00\x12\x16\n\x0e\x66rom_timestamp\x18\x04 \x01(\t\x12\x14\n\x0cto_timestamp\x18\x05 \x01(\t\x12\x10\n\x08\x64\x61tetime\x18\x06 \x01(\tB\x16\n\x14has_old_primary_hash\"\xc5\x02\n\x13Replacegroupmessage\x12\n\n\x02\x61\x30\x18\x01 \x01(\x03\x12\x1f\n\x02\x61\x31\x18\x02 \x01(\tB\x13\xc2\xb7\x04\x0f\x12\rreplace_group\x12S\n\x02\x61\x32\x18\x03 \x01(\x0b\x32G.sentry_protos.kafka.events.v1.Replacegroupmessage.Replacegroupmessage2\x1a\xab\x01\n\x14Replacegroupmessage2\x12\x11\n\tevent_ids\x18\x01 \x03(\t\x12\x12\n\nproject_id\x18\x02 \x01(\x03\x12\x16\n\x0e\x66rom_timestamp\x18\x03 \x01(\t\x12\x14\n\x0cto_timestamp\x18\x04 \x01(\t\x12\x16\n\x0etransaction_id\x18\x05 \x01(\t\x12\x10\n\x08\x64\x61tetime\x18\x06 \x01(\t\x12\x14\n\x0cnew_group_id\x18\x07 \x01(\x03\"\xdb\x01\n\x14\x45xcludegroupsmessage\x12\n\n\x02\x61\x30\x18\x01 \x01(\x03\x12 \n\x02\x61\x31\x18\x02 \x01(\tB\x14\xc2\xb7\x04\x10\x12\x0e\x65xclude_groups\x12U\n\x02\x61\x32\x18\x03 \x01(\x0b\x32I.sentry_protos.kafka.events.v1.Excludegroupsmessage.Excludegroupsmessage2\x1a>\n\x15\x45xcludegroupsmessage2\x12\x12\n\nproject_id\x18\x01 \x01(\x03\x12\x11\n\tgroup_ids\x18\x02 \x03(\x03\"\xe8\x02\n\x08\x43ontexts\x12H\n\x06replay\x18\x01 \x01(\x0b\x32\x36.sentry_protos.kafka.events.v1.Contexts.ContextsReplayH\x00\x12\x46\n\x05trace\x18\x02 \x01(\x0b\x32\x35.sentry_protos.kafka.events.v1.Contexts.ContextsTraceH\x01\x1a\x36\n\x0e\x43ontextsReplay\x12\x13\n\treplay_id\x18\x01 \x01(\tH\x00\x42\x0f\n\rhas_replay_id\x1aw\n\rContextsTrace\x12\x11\n\x07sampled\x18\x01 \x01(\x08H\x00\x12\x11\n\x07span_id\x18\x02 \x01(\tH\x01\x12\x12\n\x08trace_id\x18\x03 \x01(\tH\x02\x42\r\n\x0bhas_sampledB\r\n\x0bhas_span_idB\x0e\n\x0chas_trace_idB\x0c\n\nhas_replayB\x0b\n\thas_trace\"\xbd\x1d\n\tErrordata\x12N\n\x08\x63ontexts\x18\x01 \x01(\x0b\x32:.sentry_protos.kafka.events.v1.Errordata.ErrordataContextsH\x00\x12\'\n\x07\x63ulprit\x18\x02 \x01(\x0b\x32\x16.google.protobuf.Value\x12&\n\x06\x65rrors\x18\x03 \x03(\x0b\x32\x16.google.protobuf.Value\x12P\n\texception\x18\x04 \x01(\x0b\x32;.sentry_protos.kafka.events.v1.Errordata.ErrordataExceptionH\x01\x12\x1b\n\x13hierarchical_hashes\x18\x05 \x03(\t\x12\x12\n\x08location\x18\x06 \x01(\tH\x02\x12\x46\n\x07modules\x18\x07 \x03(\x0b\x32\x35.sentry_protos.kafka.events.v1.Errordata.ModulesEntry\x12\x10\n\x08received\x18\x08 \x01(\x01\x12L\n\x07request\x18\t \x01(\x0b\x32\x39.sentry_protos.kafka.events.v1.Errordata.ErrordataRequestH\x03\x12\x44\n\x03sdk\x18\n \x01(\x0b\x32\x35.sentry_protos.kafka.events.v1.Errordata.ErrordataSdkH\x04\x12\x44\n\x04tags\x18\x0b \x03(\x0b\x32\x36.sentry_protos.kafka.events.v1.Errordata.ErrordataTags\x12L\n\x07threads\x18\x0c \x01(\x0b\x32\x39.sentry_protos.kafka.events.v1.Errordata.ErrordataThreadsH\x05\x12%\n\x05title\x18\r \x01(\x0b\x32\x16.google.protobuf.Value\x12$\n\x04type\x18\x0e \x01(\x0b\x32\x16.google.protobuf.Value\x12\x46\n\x04user\x18\x0f \x01(\x0b\x32\x36.sentry_protos.kafka.events.v1.Errordata.ErrordataUserH\x06\x12\x11\n\x07version\x18\x10 \x01(\tH\x07\x1a\xbc\x03\n\x11\x45rrordataContexts\x12\x64\n\x06replay\x18\x01 \x01(\x0b\x32R.sentry_protos.kafka.events.v1.Errordata.ErrordataContexts.ErrordataContextsReplayH\x00\x12\x62\n\x05trace\x18\x02 \x01(\x0b\x32Q.sentry_protos.kafka.events.v1.Errordata.ErrordataContexts.ErrordataContextsTraceH\x01\x1a?\n\x17\x45rrordataContextsReplay\x12\x13\n\treplay_id\x18\x01 \x01(\tH\x00\x42\x0f\n\rhas_replay_id\x1a\x80\x01\n\x16\x45rrordataContextsTrace\x12\x11\n\x07sampled\x18\x01 \x01(\x08H\x00\x12\x11\n\x07span_id\x18\x02 \x01(\tH\x01\x12\x12\n\x08trace_id\x18\x03 \x01(\tH\x02\x42\r\n\x0bhas_sampledB\r\n\x0bhas_span_idB\x0e\n\x0chas_trace_idB\x0c\n\nhas_replayB\x0b\n\thas_trace\x1a\x8c\n\n\x12\x45rrordataException\x12\x64\n\x06values\x18\x01 \x03(\x0b\x32T.sentry_protos.kafka.events.v1.Errordata.ErrordataException.ErrordataExceptionValues\x1a\x8f\t\n\x18\x45rrordataExceptionValues\x12\x8b\x01\n\tmechanism\x18\x01 \x01(\x0b\x32v.sentry_protos.kafka.events.v1.Errordata.ErrordataException.ErrordataExceptionValues.ErrordataExceptionValuesMechanismH\x00\x12\x8d\x01\n\nstacktrace\x18\x02 \x01(\x0b\x32w.sentry_protos.kafka.events.v1.Errordata.ErrordataException.ErrordataExceptionValues.ErrordataExceptionValuesStacktraceH\x01\x12+\n\tthread_id\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueH\x02\x12$\n\x04type\x18\x04 \x01(\x0b\x32\x16.google.protobuf.Value\x12%\n\x05value\x18\x05 \x01(\x0b\x32\x16.google.protobuf.Value\x1ar\n!ErrordataExceptionValuesMechanism\x12\'\n\x07handled\x18\x01 \x01(\x0b\x32\x16.google.protobuf.Value\x12$\n\x04type\x18\x02 \x01(\x0b\x32\x16.google.protobuf.Value\x1a\xb2\x04\n\"ErrordataExceptionValuesStacktrace\x12\xb1\x01\n\x06\x66rames\x18\x01 \x03(\x0b\x32\xa0\x01.sentry_protos.kafka.events.v1.Errordata.ErrordataException.ErrordataExceptionValues.ErrordataExceptionValuesStacktrace.ErrordataExceptionValuesStacktraceFrames\x1a\xd7\x02\n(ErrordataExceptionValuesStacktraceFrames\x12(\n\x08\x61\x62s_path\x18\x01 \x01(\x0b\x32\x16.google.protobuf.Value\x12\x0f\n\x05\x63olno\x18\x02 \x01(\x03H\x00\x12(\n\x08\x66ilename\x18\x03 \x01(\x0b\x32\x16.google.protobuf.Value\x12(\n\x08\x66unction\x18\x04 \x01(\x0b\x32\x16.google.protobuf.Value\x12\x10\n\x06in_app\x18\x05 \x01(\x08H\x01\x12\x10\n\x06lineno\x18\x06 \x01(\x03H\x02\x12&\n\x06module\x18\x07 \x01(\x0b\x32\x16.google.protobuf.Value\x12\'\n\x07package\x18\x08 \x01(\x0b\x32\x16.google.protobuf.ValueB\x0b\n\thas_colnoB\x0c\n\nhas_in_appB\x0c\n\nhas_linenoB\x0f\n\rhas_mechanismB\x10\n\x0ehas_stacktraceB\x0f\n\rhas_thread_id\x1a\xe9\x01\n\x10\x45rrordataRequest\x12\x62\n\x07headers\x18\x01 \x03(\x0b\x32Q.sentry_protos.kafka.events.v1.Errordata.ErrordataRequest.ErrordataRequestHeaders\x12&\n\x06method\x18\x02 \x01(\x0b\x32\x16.google.protobuf.Value\x1aI\n\x17\x45rrordataRequestHeaders\x12\n\n\x02\x61\x30\x18\x01 \x01(\t\x12\"\n\x02\x61\x31\x18\x02 \x01(\x0b\x32\x16.google.protobuf.Value\x1a\x8b\x01\n\x0c\x45rrordataSdk\x12,\n\x0cintegrations\x18\x01 \x03(\x0b\x32\x16.google.protobuf.Value\x12$\n\x04name\x18\x02 \x01(\x0b\x32\x16.google.protobuf.Value\x12\'\n\x07version\x18\x03 \x01(\x0b\x32\x16.google.protobuf.Value\x1aW\n\rErrordataTags\x12\"\n\x02\x61\x30\x18\x01 \x01(\x0b\x32\x16.google.protobuf.Value\x12\"\n\x02\x61\x31\x18\x02 \x01(\x0b\x32\x16.google.protobuf.Value\x1a\xda\x01\n\x10\x45rrordataThreads\x12`\n\x06values\x18\x01 \x03(\x0b\x32P.sentry_protos.kafka.events.v1.Errordata.ErrordataThreads.ErrordataThreadsValues\x1a\x64\n\x16\x45rrordataThreadsValues\x12$\n\x02id\x18\x01 \x01(\x0b\x32\x16.google.protobuf.ValueH\x00\x12\x0e\n\x04main\x18\x02 \x01(\x08H\x01\x42\x08\n\x06has_idB\n\n\x08has_main\x1a\xbe\x02\n\rErrordataUser\x12%\n\x05\x65mail\x18\x01 \x01(\x0b\x32\x16.google.protobuf.Value\x12L\n\x03geo\x18\x02 \x03(\x0b\x32?.sentry_protos.kafka.events.v1.Errordata.ErrordataUser.GeoEntry\x12\"\n\x02id\x18\x03 \x01(\x0b\x32\x16.google.protobuf.Value\x12\x14\n\nip_address\x18\x04 \x01(\tH\x00\x12(\n\x08username\x18\x05 \x01(\x0b\x32\x16.google.protobuf.Value\x1a\x42\n\x08GeoEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.Value:\x02\x38\x01\x42\x10\n\x0ehas_ip_address\x1a.\n\x0cModulesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0e\n\x0chas_contextsB\x0f\n\rhas_exceptionB\x0e\n\x0chas_locationB\r\n\x0bhas_requestB\t\n\x07has_sdkB\r\n\x0bhas_threadsB\n\n\x08has_userB\r\n\x0bhas_version\"\x8b\x02\n\x0c\x45rrormessage\x12\x36\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32(.sentry_protos.kafka.events.v1.Errordata\x12\x10\n\x08\x64\x61tetime\x18\x02 \x01(\t\x12\x10\n\x08\x65vent_id\x18\x03 \x01(\t\x12\x10\n\x08group_id\x18\x04 \x01(\x03\x12\x0f\n\x07message\x18\x05 \x01(\t\x12\x12\n\x08platform\x18\x06 \x01(\tH\x00\x12\x14\n\x0cprimary_hash\x18\x07 \x01(\t\x12\x12\n\nproject_id\x18\x08 \x01(\x03\x12\x18\n\x0eretention_days\x18\t \x01(\x03H\x01\x42\x0e\n\x0chas_platformB\x14\n\x12has_retention_days\"\xc8\x08\n\tException\x12H\n\x06values\x18\x01 \x03(\x0b\x32\x38.sentry_protos.kafka.events.v1.Exception.ExceptionValues\x1a\xf0\x07\n\x0f\x45xceptionValues\x12\x66\n\tmechanism\x18\x01 \x01(\x0b\x32Q.sentry_protos.kafka.events.v1.Exception.ExceptionValues.ExceptionValuesMechanismH\x00\x12h\n\nstacktrace\x18\x02 \x01(\x0b\x32R.sentry_protos.kafka.events.v1.Exception.ExceptionValues.ExceptionValuesStacktraceH\x01\x12+\n\tthread_id\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueH\x02\x12$\n\x04type\x18\x04 \x01(\x0b\x32\x16.google.protobuf.Value\x12%\n\x05value\x18\x05 \x01(\x0b\x32\x16.google.protobuf.Value\x1ai\n\x18\x45xceptionValuesMechanism\x12\'\n\x07handled\x18\x01 \x01(\x0b\x32\x16.google.protobuf.Value\x12$\n\x04type\x18\x02 \x01(\x0b\x32\x16.google.protobuf.Value\x1a\xf1\x03\n\x19\x45xceptionValuesStacktrace\x12\x82\x01\n\x06\x66rames\x18\x01 \x03(\x0b\x32r.sentry_protos.kafka.events.v1.Exception.ExceptionValues.ExceptionValuesStacktrace.ExceptionValuesStacktraceFrames\x1a\xce\x02\n\x1f\x45xceptionValuesStacktraceFrames\x12(\n\x08\x61\x62s_path\x18\x01 \x01(\x0b\x32\x16.google.protobuf.Value\x12\x0f\n\x05\x63olno\x18\x02 \x01(\x03H\x00\x12(\n\x08\x66ilename\x18\x03 \x01(\x0b\x32\x16.google.protobuf.Value\x12(\n\x08\x66unction\x18\x04 \x01(\x0b\x32\x16.google.protobuf.Value\x12\x10\n\x06in_app\x18\x05 \x01(\x08H\x01\x12\x10\n\x06lineno\x18\x06 \x01(\x03H\x02\x12&\n\x06module\x18\x07 \x01(\x0b\x32\x16.google.protobuf.Value\x12\'\n\x07package\x18\x08 \x01(\x0b\x32\x16.google.protobuf.ValueB\x0b\n\thas_colnoB\x0c\n\nhas_in_appB\x0c\n\nhas_linenoB\x0f\n\rhas_mechanismB\x10\n\x0ehas_stacktraceB\x0f\n\rhas_thread_id\"c\n\x12\x45xceptionmechanism\x12\'\n\x07handled\x18\x01 \x01(\x0b\x32\x16.google.protobuf.Value\x12$\n\x04type\x18\x02 \x01(\x0b\x32\x16.google.protobuf.Value\"\xc6\x07\n\x0e\x45xceptionvalue\x12Z\n\tmechanism\x18\x01 \x01(\x0b\x32\x45.sentry_protos.kafka.events.v1.Exceptionvalue.ExceptionvalueMechanismH\x00\x12\\\n\nstacktrace\x18\x02 \x01(\x0b\x32\x46.sentry_protos.kafka.events.v1.Exceptionvalue.ExceptionvalueStacktraceH\x01\x12+\n\tthread_id\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueH\x02\x12$\n\x04type\x18\x04 \x01(\x0b\x32\x16.google.protobuf.Value\x12%\n\x05value\x18\x05 \x01(\x0b\x32\x16.google.protobuf.Value\x1ah\n\x17\x45xceptionvalueMechanism\x12\'\n\x07handled\x18\x01 \x01(\x0b\x32\x16.google.protobuf.Value\x12$\n\x04type\x18\x02 \x01(\x0b\x32\x16.google.protobuf.Value\x1a\xe1\x03\n\x18\x45xceptionvalueStacktrace\x12u\n\x06\x66rames\x18\x01 \x03(\x0b\x32\x65.sentry_protos.kafka.events.v1.Exceptionvalue.ExceptionvalueStacktrace.ExceptionvalueStacktraceFrames\x1a\xcd\x02\n\x1e\x45xceptionvalueStacktraceFrames\x12(\n\x08\x61\x62s_path\x18\x01 \x01(\x0b\x32\x16.google.protobuf.Value\x12\x0f\n\x05\x63olno\x18\x02 \x01(\x03H\x00\x12(\n\x08\x66ilename\x18\x03 \x01(\x0b\x32\x16.google.protobuf.Value\x12(\n\x08\x66unction\x18\x04 \x01(\x0b\x32\x16.google.protobuf.Value\x12\x10\n\x06in_app\x18\x05 \x01(\x08H\x01\x12\x10\n\x06lineno\x18\x06 \x01(\x03H\x02\x12&\n\x06module\x18\x07 \x01(\x0b\x32\x16.google.protobuf.Value\x12\'\n\x07package\x18\x08 \x01(\x0b\x32\x16.google.protobuf.ValueB\x0b\n\thas_colnoB\x0c\n\nhas_in_appB\x0c\n\nhas_linenoB\x0f\n\rhas_mechanismB\x10\n\x0ehas_stacktraceB\x0f\n\rhas_thread_id\"\x89\x01\n\x12Inserteventmessage\x12\n\n\x02\x61\x30\x18\x01 \x01(\x03\x12\n\n\x02\x61\x31\x18\x02 \x01(\t\x12\x37\n\x02\x61\x32\x18\x03 \x01(\x0b\x32+.sentry_protos.kafka.events.v1.Errormessage\x12\"\n\x02\x61\x33\x18\x04 \x01(\x0b\x32\x16.google.protobuf.Value\"5\n\rReplaycontext\x12\x13\n\treplay_id\x18\x01 \x01(\tH\x00\x42\x0f\n\rhas_replay_id\"\xbb\x01\n\x07Request\x12\x46\n\x07headers\x18\x01 \x03(\x0b\x32\x35.sentry_protos.kafka.events.v1.Request.RequestHeaders\x12&\n\x06method\x18\x02 \x01(\x0b\x32\x16.google.protobuf.Value\x1a@\n\x0eRequestHeaders\x12\n\n\x02\x61\x30\x18\x01 \x01(\t\x12\"\n\x02\x61\x31\x18\x02 \x01(\x0b\x32\x16.google.protobuf.Value\"\x82\x01\n\x03Sdk\x12,\n\x0cintegrations\x18\x01 \x03(\x0b\x32\x16.google.protobuf.Value\x12$\n\x04name\x18\x02 \x01(\x0b\x32\x16.google.protobuf.Value\x12\'\n\x07version\x18\x03 \x01(\x0b\x32\x16.google.protobuf.Value\"\xb9\x02\n\nStackframe\x12(\n\x08\x61\x62s_path\x18\x01 \x01(\x0b\x32\x16.google.protobuf.Value\x12\x0f\n\x05\x63olno\x18\x02 \x01(\x03H\x00\x12(\n\x08\x66ilename\x18\x03 \x01(\x0b\x32\x16.google.protobuf.Value\x12(\n\x08\x66unction\x18\x04 \x01(\x0b\x32\x16.google.protobuf.Value\x12\x10\n\x06in_app\x18\x05 \x01(\x08H\x01\x12\x10\n\x06lineno\x18\x06 \x01(\x03H\x02\x12&\n\x06module\x18\x07 \x01(\x0b\x32\x16.google.protobuf.Value\x12\'\n\x07package\x18\x08 \x01(\x0b\x32\x16.google.protobuf.ValueB\x0b\n\thas_colnoB\x0c\n\nhas_in_appB\x0c\n\nhas_lineno\"\x9a\x03\n\nStacktrace\x12J\n\x06\x66rames\x18\x01 \x03(\x0b\x32:.sentry_protos.kafka.events.v1.Stacktrace.StacktraceFrames\x1a\xbf\x02\n\x10StacktraceFrames\x12(\n\x08\x61\x62s_path\x18\x01 \x01(\x0b\x32\x16.google.protobuf.Value\x12\x0f\n\x05\x63olno\x18\x02 \x01(\x03H\x00\x12(\n\x08\x66ilename\x18\x03 \x01(\x0b\x32\x16.google.protobuf.Value\x12(\n\x08\x66unction\x18\x04 \x01(\x0b\x32\x16.google.protobuf.Value\x12\x10\n\x06in_app\x18\x05 \x01(\x08H\x01\x12\x10\n\x06lineno\x18\x06 \x01(\x03H\x02\x12&\n\x06module\x18\x07 \x01(\x0b\x32\x16.google.protobuf.Value\x12\'\n\x07package\x18\x08 \x01(\x0b\x32\x16.google.protobuf.ValueB\x0b\n\thas_colnoB\x0c\n\nhas_in_appB\x0c\n\nhas_lineno\"\xa8\x01\n\x06Thread\x12\x42\n\x06values\x18\x01 \x03(\x0b\x32\x32.sentry_protos.kafka.events.v1.Thread.ThreadValues\x1aZ\n\x0cThreadValues\x12$\n\x02id\x18\x01 \x01(\x0b\x32\x16.google.protobuf.ValueH\x00\x12\x0e\n\x04main\x18\x02 \x01(\x08H\x01\x42\x08\n\x06has_idB\n\n\x08has_main\"Y\n\x0bThreadvalue\x12$\n\x02id\x18\x01 \x01(\x0b\x32\x16.google.protobuf.ValueH\x00\x12\x0e\n\x04main\x18\x02 \x01(\x08H\x01\x42\x08\n\x06has_idB\n\n\x08has_main\"v\n\x0cTracecontext\x12\x11\n\x07sampled\x18\x01 \x01(\x08H\x00\x12\x11\n\x07span_id\x18\x02 \x01(\tH\x01\x12\x12\n\x08trace_id\x18\x03 \x01(\tH\x02\x42\r\n\x0bhas_sampledB\r\n\x0bhas_span_idB\x0e\n\x0chas_trace_id\"\xa2\x02\n\x04User\x12%\n\x05\x65mail\x18\x01 \x01(\x0b\x32\x16.google.protobuf.Value\x12\x39\n\x03geo\x18\x02 \x03(\x0b\x32,.sentry_protos.kafka.events.v1.User.GeoEntry\x12\"\n\x02id\x18\x03 \x01(\x0b\x32\x16.google.protobuf.Value\x12\x14\n\nip_address\x18\x04 \x01(\tH\x00\x12(\n\x08username\x18\x05 \x01(\x0b\x32\x16.google.protobuf.Value\x1a\x42\n\x08GeoEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.Value:\x02\x38\x01\x42\x10\n\x0ehas_ip_addressb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sentry_protos.kafka.events.v1.events_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_EVENTSTREAMMESSAGE']._loaded_options = None + _globals['_EVENTSTREAMMESSAGE']._serialized_options = b'\302\267\004\010\n\006errors' + _globals['_STARTMERGEMESSAGE'].fields_by_name['a1']._loaded_options = None + _globals['_STARTMERGEMESSAGE'].fields_by_name['a1']._serialized_options = b'\302\267\004\r\022\013start_merge' + _globals['_ENDMERGEMESSAGE'].fields_by_name['a1']._loaded_options = None + _globals['_ENDMERGEMESSAGE'].fields_by_name['a1']._serialized_options = b'\302\267\004\013\022\tend_merge' + _globals['_STARTDELETEGROUPSMESSAGE'].fields_by_name['a1']._loaded_options = None + _globals['_STARTDELETEGROUPSMESSAGE'].fields_by_name['a1']._serialized_options = b'\302\267\004\025\022\023start_delete_groups' + _globals['_ENDDELETEGROUPSMESSAGE'].fields_by_name['a1']._loaded_options = None + _globals['_ENDDELETEGROUPSMESSAGE'].fields_by_name['a1']._serialized_options = b'\302\267\004\023\022\021end_delete_groups' + _globals['_STARTUNMERGEMESSAGE'].fields_by_name['a1']._loaded_options = None + _globals['_STARTUNMERGEMESSAGE'].fields_by_name['a1']._serialized_options = b'\302\267\004\017\022\rstart_unmerge' + _globals['_STARTUNMERGEHIERARCHICALMESSAGE'].fields_by_name['a1']._loaded_options = None + _globals['_STARTUNMERGEHIERARCHICALMESSAGE'].fields_by_name['a1']._serialized_options = b'\302\267\004\034\022\032start_unmerge_hierarchical' + _globals['_STARTDELETETAGMESSAGE'].fields_by_name['a1']._loaded_options = None + _globals['_STARTDELETETAGMESSAGE'].fields_by_name['a1']._serialized_options = b'\302\267\004\022\022\020start_delete_tag' + _globals['_ENDUNMERGEMESSAGE'].fields_by_name['a1']._loaded_options = None + _globals['_ENDUNMERGEMESSAGE'].fields_by_name['a1']._serialized_options = b'\302\267\004\r\022\013end_unmerge' + _globals['_ENDUNMERGEHIERARCHICALMESSAGE'].fields_by_name['a1']._loaded_options = None + _globals['_ENDUNMERGEHIERARCHICALMESSAGE'].fields_by_name['a1']._serialized_options = b'\302\267\004\032\022\030end_unmerge_hierarchical' + _globals['_ENDDELETETAGMESSAGE'].fields_by_name['a1']._loaded_options = None + _globals['_ENDDELETETAGMESSAGE'].fields_by_name['a1']._serialized_options = b'\302\267\004\020\022\016end_delete_tag' + _globals['_TOMBSTONEEVENTSMESSAGE'].fields_by_name['a1']._loaded_options = None + _globals['_TOMBSTONEEVENTSMESSAGE'].fields_by_name['a1']._serialized_options = b'\302\267\004\022\022\020tombstone_events' + _globals['_REPLACEGROUPMESSAGE'].fields_by_name['a1']._loaded_options = None + _globals['_REPLACEGROUPMESSAGE'].fields_by_name['a1']._serialized_options = b'\302\267\004\017\022\rreplace_group' + _globals['_EXCLUDEGROUPSMESSAGE'].fields_by_name['a1']._loaded_options = None + _globals['_EXCLUDEGROUPSMESSAGE'].fields_by_name['a1']._serialized_options = b'\302\267\004\020\022\016exclude_groups' + _globals['_ERRORDATA_ERRORDATAUSER_GEOENTRY']._loaded_options = None + _globals['_ERRORDATA_ERRORDATAUSER_GEOENTRY']._serialized_options = b'8\001' + _globals['_ERRORDATA_MODULESENTRY']._loaded_options = None + _globals['_ERRORDATA_MODULESENTRY']._serialized_options = b'8\001' + _globals['_USER_GEOENTRY']._loaded_options = None + _globals['_USER_GEOENTRY']._serialized_options = b'8\001' + _globals['_EVENTSTREAMMESSAGE']._serialized_start=148 + _globals['_EVENTSTREAMMESSAGE']._serialized_end=1407 + _globals['_STARTMERGEMESSAGE']._serialized_start=1410 + _globals['_STARTMERGEMESSAGE']._serialized_end=1688 + _globals['_STARTMERGEMESSAGE_STARTMERGEMESSAGE2']._serialized_start=1556 + _globals['_STARTMERGEMESSAGE_STARTMERGEMESSAGE2']._serialized_end=1688 + _globals['_ENDMERGEMESSAGE']._serialized_start=1691 + _globals['_ENDMERGEMESSAGE']._serialized_end=1959 + _globals['_ENDMERGEMESSAGE_ENDMERGEMESSAGE2']._serialized_start=1829 + _globals['_ENDMERGEMESSAGE_ENDMERGEMESSAGE2']._serialized_end=1959 + _globals['_STARTDELETEGROUPSMESSAGE']._serialized_start=1962 + _globals['_STARTDELETEGROUPSMESSAGE']._serialized_end=2244 + _globals['_STARTDELETEGROUPSMESSAGE_STARTDELETEGROUPSMESSAGE2']._serialized_start=2136 + _globals['_STARTDELETEGROUPSMESSAGE_STARTDELETEGROUPSMESSAGE2']._serialized_end=2244 + _globals['_ENDDELETEGROUPSMESSAGE']._serialized_start=2247 + _globals['_ENDDELETEGROUPSMESSAGE']._serialized_end=2519 + _globals['_ENDDELETEGROUPSMESSAGE_ENDDELETEGROUPSMESSAGE2']._serialized_start=2413 + _globals['_ENDDELETEGROUPSMESSAGE_ENDDELETEGROUPSMESSAGE2']._serialized_end=2519 + _globals['_STARTUNMERGEMESSAGE']._serialized_start=2522 + _globals['_STARTUNMERGEMESSAGE']._serialized_end=2717 + _globals['_STARTUNMERGEMESSAGE_STARTUNMERGEMESSAGE2']._serialized_start=2675 + _globals['_STARTUNMERGEMESSAGE_STARTUNMERGEMESSAGE2']._serialized_end=2717 + _globals['_STARTUNMERGEHIERARCHICALMESSAGE']._serialized_start=2720 + _globals['_STARTUNMERGEHIERARCHICALMESSAGE']._serialized_end=2976 + _globals['_STARTUNMERGEHIERARCHICALMESSAGE_STARTUNMERGEHIERARCHICALMESSAGE2']._serialized_start=2922 + _globals['_STARTUNMERGEHIERARCHICALMESSAGE_STARTUNMERGEHIERARCHICALMESSAGE2']._serialized_end=2976 + _globals['_STARTDELETETAGMESSAGE']._serialized_start=2979 + _globals['_STARTDELETETAGMESSAGE']._serialized_end=3185 + _globals['_STARTDELETETAGMESSAGE_STARTDELETETAGMESSAGE2']._serialized_start=3141 + _globals['_STARTDELETETAGMESSAGE_STARTDELETETAGMESSAGE2']._serialized_end=3185 + _globals['_ENDUNMERGEMESSAGE']._serialized_start=3188 + _globals['_ENDUNMERGEMESSAGE']._serialized_end=3481 + _globals['_ENDUNMERGEMESSAGE_ENDUNMERGEMESSAGE2']._serialized_start=3334 + _globals['_ENDUNMERGEMESSAGE_ENDUNMERGEMESSAGE2']._serialized_end=3481 + _globals['_ENDUNMERGEHIERARCHICALMESSAGE']._serialized_start=3484 + _globals['_ENDUNMERGEHIERARCHICALMESSAGE']._serialized_end=3847 + _globals['_ENDUNMERGEHIERARCHICALMESSAGE_ENDUNMERGEHIERARCHICALMESSAGE2']._serialized_start=3679 + _globals['_ENDUNMERGEHIERARCHICALMESSAGE_ENDUNMERGEHIERARCHICALMESSAGE2']._serialized_end=3847 + _globals['_ENDDELETETAGMESSAGE']._serialized_start=3850 + _globals['_ENDDELETETAGMESSAGE']._serialized_end=4077 + _globals['_ENDDELETETAGMESSAGE_ENDDELETETAGMESSAGE2']._serialized_start=4004 + _globals['_ENDDELETETAGMESSAGE_ENDDELETETAGMESSAGE2']._serialized_end=4077 + _globals['_TOMBSTONEEVENTSMESSAGE']._serialized_start=4080 + _globals['_TOMBSTONEEVENTSMESSAGE']._serialized_end=4426 + _globals['_TOMBSTONEEVENTSMESSAGE_TOMBSTONEEVENTSMESSAGE2']._serialized_start=4246 + _globals['_TOMBSTONEEVENTSMESSAGE_TOMBSTONEEVENTSMESSAGE2']._serialized_end=4426 + _globals['_REPLACEGROUPMESSAGE']._serialized_start=4429 + _globals['_REPLACEGROUPMESSAGE']._serialized_end=4754 + _globals['_REPLACEGROUPMESSAGE_REPLACEGROUPMESSAGE2']._serialized_start=4583 + _globals['_REPLACEGROUPMESSAGE_REPLACEGROUPMESSAGE2']._serialized_end=4754 + _globals['_EXCLUDEGROUPSMESSAGE']._serialized_start=4757 + _globals['_EXCLUDEGROUPSMESSAGE']._serialized_end=4976 + _globals['_EXCLUDEGROUPSMESSAGE_EXCLUDEGROUPSMESSAGE2']._serialized_start=4914 + _globals['_EXCLUDEGROUPSMESSAGE_EXCLUDEGROUPSMESSAGE2']._serialized_end=4976 + _globals['_CONTEXTS']._serialized_start=4979 + _globals['_CONTEXTS']._serialized_end=5339 + _globals['_CONTEXTS_CONTEXTSREPLAY']._serialized_start=5137 + _globals['_CONTEXTS_CONTEXTSREPLAY']._serialized_end=5191 + _globals['_CONTEXTS_CONTEXTSTRACE']._serialized_start=5193 + _globals['_CONTEXTS_CONTEXTSTRACE']._serialized_end=5312 + _globals['_ERRORDATA']._serialized_start=5342 + _globals['_ERRORDATA']._serialized_end=9115 + _globals['_ERRORDATA_ERRORDATACONTEXTS']._serialized_start=6202 + _globals['_ERRORDATA_ERRORDATACONTEXTS']._serialized_end=6646 + _globals['_ERRORDATA_ERRORDATACONTEXTS_ERRORDATACONTEXTSREPLAY']._serialized_start=6425 + _globals['_ERRORDATA_ERRORDATACONTEXTS_ERRORDATACONTEXTSREPLAY']._serialized_end=6488 + _globals['_ERRORDATA_ERRORDATACONTEXTS_ERRORDATACONTEXTSTRACE']._serialized_start=6491 + _globals['_ERRORDATA_ERRORDATACONTEXTS_ERRORDATACONTEXTSTRACE']._serialized_end=6619 + _globals['_ERRORDATA_ERRORDATAEXCEPTION']._serialized_start=6649 + _globals['_ERRORDATA_ERRORDATAEXCEPTION']._serialized_end=7941 + _globals['_ERRORDATA_ERRORDATAEXCEPTION_ERRORDATAEXCEPTIONVALUES']._serialized_start=6774 + _globals['_ERRORDATA_ERRORDATAEXCEPTION_ERRORDATAEXCEPTIONVALUES']._serialized_end=7941 + _globals['_ERRORDATA_ERRORDATAEXCEPTION_ERRORDATAEXCEPTIONVALUES_ERRORDATAEXCEPTIONVALUESMECHANISM']._serialized_start=7210 + _globals['_ERRORDATA_ERRORDATAEXCEPTION_ERRORDATAEXCEPTIONVALUES_ERRORDATAEXCEPTIONVALUESMECHANISM']._serialized_end=7324 + _globals['_ERRORDATA_ERRORDATAEXCEPTION_ERRORDATAEXCEPTIONVALUES_ERRORDATAEXCEPTIONVALUESSTACKTRACE']._serialized_start=7327 + _globals['_ERRORDATA_ERRORDATAEXCEPTION_ERRORDATAEXCEPTIONVALUES_ERRORDATAEXCEPTIONVALUESSTACKTRACE']._serialized_end=7889 + _globals['_ERRORDATA_ERRORDATAEXCEPTION_ERRORDATAEXCEPTIONVALUES_ERRORDATAEXCEPTIONVALUESSTACKTRACE_ERRORDATAEXCEPTIONVALUESSTACKTRACEFRAMES']._serialized_start=7546 + _globals['_ERRORDATA_ERRORDATAEXCEPTION_ERRORDATAEXCEPTIONVALUES_ERRORDATAEXCEPTIONVALUESSTACKTRACE_ERRORDATAEXCEPTIONVALUESSTACKTRACEFRAMES']._serialized_end=7889 + _globals['_ERRORDATA_ERRORDATAREQUEST']._serialized_start=7944 + _globals['_ERRORDATA_ERRORDATAREQUEST']._serialized_end=8177 + _globals['_ERRORDATA_ERRORDATAREQUEST_ERRORDATAREQUESTHEADERS']._serialized_start=8104 + _globals['_ERRORDATA_ERRORDATAREQUEST_ERRORDATAREQUESTHEADERS']._serialized_end=8177 + _globals['_ERRORDATA_ERRORDATASDK']._serialized_start=8180 + _globals['_ERRORDATA_ERRORDATASDK']._serialized_end=8319 + _globals['_ERRORDATA_ERRORDATATAGS']._serialized_start=8321 + _globals['_ERRORDATA_ERRORDATATAGS']._serialized_end=8408 + _globals['_ERRORDATA_ERRORDATATHREADS']._serialized_start=8411 + _globals['_ERRORDATA_ERRORDATATHREADS']._serialized_end=8629 + _globals['_ERRORDATA_ERRORDATATHREADS_ERRORDATATHREADSVALUES']._serialized_start=8529 + _globals['_ERRORDATA_ERRORDATATHREADS_ERRORDATATHREADSVALUES']._serialized_end=8629 + _globals['_ERRORDATA_ERRORDATAUSER']._serialized_start=8632 + _globals['_ERRORDATA_ERRORDATAUSER']._serialized_end=8950 + _globals['_ERRORDATA_ERRORDATAUSER_GEOENTRY']._serialized_start=8866 + _globals['_ERRORDATA_ERRORDATAUSER_GEOENTRY']._serialized_end=8932 + _globals['_ERRORDATA_MODULESENTRY']._serialized_start=8952 + _globals['_ERRORDATA_MODULESENTRY']._serialized_end=8998 + _globals['_ERRORMESSAGE']._serialized_start=9118 + _globals['_ERRORMESSAGE']._serialized_end=9385 + _globals['_EXCEPTION']._serialized_start=9388 + _globals['_EXCEPTION']._serialized_end=10484 + _globals['_EXCEPTION_EXCEPTIONVALUES']._serialized_start=9476 + _globals['_EXCEPTION_EXCEPTIONVALUES']._serialized_end=10484 + _globals['_EXCEPTION_EXCEPTIONVALUES_EXCEPTIONVALUESMECHANISM']._serialized_start=9827 + _globals['_EXCEPTION_EXCEPTIONVALUES_EXCEPTIONVALUESMECHANISM']._serialized_end=9932 + _globals['_EXCEPTION_EXCEPTIONVALUES_EXCEPTIONVALUESSTACKTRACE']._serialized_start=9935 + _globals['_EXCEPTION_EXCEPTIONVALUES_EXCEPTIONVALUESSTACKTRACE']._serialized_end=10432 + _globals['_EXCEPTION_EXCEPTIONVALUES_EXCEPTIONVALUESSTACKTRACE_EXCEPTIONVALUESSTACKTRACEFRAMES']._serialized_start=10098 + _globals['_EXCEPTION_EXCEPTIONVALUES_EXCEPTIONVALUESSTACKTRACE_EXCEPTIONVALUESSTACKTRACEFRAMES']._serialized_end=10432 + _globals['_EXCEPTIONMECHANISM']._serialized_start=10486 + _globals['_EXCEPTIONMECHANISM']._serialized_end=10585 + _globals['_EXCEPTIONVALUE']._serialized_start=10588 + _globals['_EXCEPTIONVALUE']._serialized_end=11554 + _globals['_EXCEPTIONVALUE_EXCEPTIONVALUEMECHANISM']._serialized_start=10914 + _globals['_EXCEPTIONVALUE_EXCEPTIONVALUEMECHANISM']._serialized_end=11018 + _globals['_EXCEPTIONVALUE_EXCEPTIONVALUESTACKTRACE']._serialized_start=11021 + _globals['_EXCEPTIONVALUE_EXCEPTIONVALUESTACKTRACE']._serialized_end=11502 + _globals['_EXCEPTIONVALUE_EXCEPTIONVALUESTACKTRACE_EXCEPTIONVALUESTACKTRACEFRAMES']._serialized_start=11169 + _globals['_EXCEPTIONVALUE_EXCEPTIONVALUESTACKTRACE_EXCEPTIONVALUESTACKTRACEFRAMES']._serialized_end=11502 + _globals['_INSERTEVENTMESSAGE']._serialized_start=11557 + _globals['_INSERTEVENTMESSAGE']._serialized_end=11694 + _globals['_REPLAYCONTEXT']._serialized_start=11696 + _globals['_REPLAYCONTEXT']._serialized_end=11749 + _globals['_REQUEST']._serialized_start=11752 + _globals['_REQUEST']._serialized_end=11939 + _globals['_REQUEST_REQUESTHEADERS']._serialized_start=11875 + _globals['_REQUEST_REQUESTHEADERS']._serialized_end=11939 + _globals['_SDK']._serialized_start=11942 + _globals['_SDK']._serialized_end=12072 + _globals['_STACKFRAME']._serialized_start=12075 + _globals['_STACKFRAME']._serialized_end=12388 + _globals['_STACKTRACE']._serialized_start=12391 + _globals['_STACKTRACE']._serialized_end=12801 + _globals['_STACKTRACE_STACKTRACEFRAMES']._serialized_start=12482 + _globals['_STACKTRACE_STACKTRACEFRAMES']._serialized_end=12801 + _globals['_THREAD']._serialized_start=12804 + _globals['_THREAD']._serialized_end=12972 + _globals['_THREAD_THREADVALUES']._serialized_start=12882 + _globals['_THREAD_THREADVALUES']._serialized_end=12972 + _globals['_THREADVALUE']._serialized_start=12974 + _globals['_THREADVALUE']._serialized_end=13063 + _globals['_TRACECONTEXT']._serialized_start=13065 + _globals['_TRACECONTEXT']._serialized_end=13183 + _globals['_USER']._serialized_start=13186 + _globals['_USER']._serialized_end=13476 + _globals['_USER_GEOENTRY']._serialized_start=8866 + _globals['_USER_GEOENTRY']._serialized_end=8932 +# @@protoc_insertion_point(module_scope) diff --git a/py/sentry_protos/kafka/events/v1/events_pb2.pyi b/py/sentry_protos/kafka/events/v1/events_pb2.pyi new file mode 100644 index 00000000..2de4ad37 --- /dev/null +++ b/py/sentry_protos/kafka/events/v1/events_pb2.pyi @@ -0,0 +1,1881 @@ +""" +@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 google.protobuf.struct_pb2 +import typing + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class EventStreamMessage(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + INSERTEVENTMESSAGE_FIELD_NUMBER: builtins.int + STARTDELETEGROUPSMESSAGE_FIELD_NUMBER: builtins.int + STARTMERGEMESSAGE_FIELD_NUMBER: builtins.int + STARTUNMERGEMESSAGE_FIELD_NUMBER: builtins.int + STARTUNMERGEHIERARCHICALMESSAGE_FIELD_NUMBER: builtins.int + STARTDELETETAGMESSAGE_FIELD_NUMBER: builtins.int + ENDDELETEGROUPSMESSAGE_FIELD_NUMBER: builtins.int + ENDMERGEMESSAGE_FIELD_NUMBER: builtins.int + ENDUNMERGEMESSAGE_FIELD_NUMBER: builtins.int + ENDUNMERGEHIERARCHICALMESSAGE_FIELD_NUMBER: builtins.int + ENDDELETETAGMESSAGE_FIELD_NUMBER: builtins.int + TOMBSTONEEVENTSMESSAGE_FIELD_NUMBER: builtins.int + REPLACEGROUPMESSAGE_FIELD_NUMBER: builtins.int + EXCLUDEGROUPSMESSAGE_FIELD_NUMBER: builtins.int + @property + def inserteventmessage(self) -> global___Inserteventmessage: ... + @property + def startdeletegroupsmessage(self) -> global___Startdeletegroupsmessage: ... + @property + def startmergemessage(self) -> global___Startmergemessage: ... + @property + def startunmergemessage(self) -> global___Startunmergemessage: ... + @property + def startunmergehierarchicalmessage(self) -> global___Startunmergehierarchicalmessage: ... + @property + def startdeletetagmessage(self) -> global___Startdeletetagmessage: ... + @property + def enddeletegroupsmessage(self) -> global___Enddeletegroupsmessage: ... + @property + def endmergemessage(self) -> global___Endmergemessage: ... + @property + def endunmergemessage(self) -> global___Endunmergemessage: ... + @property + def endunmergehierarchicalmessage(self) -> global___Endunmergehierarchicalmessage: ... + @property + def enddeletetagmessage(self) -> global___Enddeletetagmessage: ... + @property + def tombstoneeventsmessage(self) -> global___Tombstoneeventsmessage: ... + @property + def replacegroupmessage(self) -> global___Replacegroupmessage: ... + @property + def excludegroupsmessage(self) -> global___Excludegroupsmessage: ... + def __init__( + self, + *, + inserteventmessage: global___Inserteventmessage | None = ..., + startdeletegroupsmessage: global___Startdeletegroupsmessage | None = ..., + startmergemessage: global___Startmergemessage | None = ..., + startunmergemessage: global___Startunmergemessage | None = ..., + startunmergehierarchicalmessage: global___Startunmergehierarchicalmessage | None = ..., + startdeletetagmessage: global___Startdeletetagmessage | None = ..., + enddeletegroupsmessage: global___Enddeletegroupsmessage | None = ..., + endmergemessage: global___Endmergemessage | None = ..., + endunmergemessage: global___Endunmergemessage | None = ..., + endunmergehierarchicalmessage: global___Endunmergehierarchicalmessage | None = ..., + enddeletetagmessage: global___Enddeletetagmessage | None = ..., + tombstoneeventsmessage: global___Tombstoneeventsmessage | None = ..., + replacegroupmessage: global___Replacegroupmessage | None = ..., + excludegroupsmessage: global___Excludegroupsmessage | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["enddeletegroupsmessage", b"enddeletegroupsmessage", "enddeletetagmessage", b"enddeletetagmessage", "endmergemessage", b"endmergemessage", "endunmergehierarchicalmessage", b"endunmergehierarchicalmessage", "endunmergemessage", b"endunmergemessage", "excludegroupsmessage", b"excludegroupsmessage", "inserteventmessage", b"inserteventmessage", "replacegroupmessage", b"replacegroupmessage", "startdeletegroupsmessage", b"startdeletegroupsmessage", "startdeletetagmessage", b"startdeletetagmessage", "startmergemessage", b"startmergemessage", "startunmergehierarchicalmessage", b"startunmergehierarchicalmessage", "startunmergemessage", b"startunmergemessage", "tombstoneeventsmessage", b"tombstoneeventsmessage", "value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["enddeletegroupsmessage", b"enddeletegroupsmessage", "enddeletetagmessage", b"enddeletetagmessage", "endmergemessage", b"endmergemessage", "endunmergehierarchicalmessage", b"endunmergehierarchicalmessage", "endunmergemessage", b"endunmergemessage", "excludegroupsmessage", b"excludegroupsmessage", "inserteventmessage", b"inserteventmessage", "replacegroupmessage", b"replacegroupmessage", "startdeletegroupsmessage", b"startdeletegroupsmessage", "startdeletetagmessage", b"startdeletetagmessage", "startmergemessage", b"startmergemessage", "startunmergehierarchicalmessage", b"startunmergehierarchicalmessage", "startunmergemessage", b"startunmergemessage", "tombstoneeventsmessage", b"tombstoneeventsmessage", "value", b"value"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["value", b"value"]) -> typing.Literal["inserteventmessage", "startdeletegroupsmessage", "startmergemessage", "startunmergemessage", "startunmergehierarchicalmessage", "startdeletetagmessage", "enddeletegroupsmessage", "endmergemessage", "endunmergemessage", "endunmergehierarchicalmessage", "enddeletetagmessage", "tombstoneeventsmessage", "replacegroupmessage", "excludegroupsmessage"] | None: ... + +global___EventStreamMessage = EventStreamMessage + +@typing.final +class Startmergemessage(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class Startmergemessage2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + TRANSACTION_ID_FIELD_NUMBER: builtins.int + PROJECT_ID_FIELD_NUMBER: builtins.int + PREVIOUS_GROUP_IDS_FIELD_NUMBER: builtins.int + NEW_GROUP_ID_FIELD_NUMBER: builtins.int + DATETIME_FIELD_NUMBER: builtins.int + transaction_id: builtins.str + project_id: builtins.int + new_group_id: builtins.int + datetime: builtins.str + @property + def previous_group_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ... + def __init__( + self, + *, + transaction_id: builtins.str = ..., + project_id: builtins.int = ..., + previous_group_ids: collections.abc.Iterable[builtins.int] | None = ..., + new_group_id: builtins.int = ..., + datetime: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["datetime", b"datetime", "new_group_id", b"new_group_id", "previous_group_ids", b"previous_group_ids", "project_id", b"project_id", "transaction_id", b"transaction_id"]) -> None: ... + + A0_FIELD_NUMBER: builtins.int + A1_FIELD_NUMBER: builtins.int + A2_FIELD_NUMBER: builtins.int + a0: builtins.int + a1: builtins.str + @property + def a2(self) -> global___Startmergemessage.Startmergemessage2: ... + def __init__( + self, + *, + a0: builtins.int = ..., + a1: builtins.str = ..., + a2: global___Startmergemessage.Startmergemessage2 | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["a2", b"a2"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["a0", b"a0", "a1", b"a1", "a2", b"a2"]) -> None: ... + +global___Startmergemessage = Startmergemessage + +@typing.final +class Endmergemessage(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class Endmergemessage2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + TRANSACTION_ID_FIELD_NUMBER: builtins.int + PROJECT_ID_FIELD_NUMBER: builtins.int + PREVIOUS_GROUP_IDS_FIELD_NUMBER: builtins.int + NEW_GROUP_ID_FIELD_NUMBER: builtins.int + DATETIME_FIELD_NUMBER: builtins.int + transaction_id: builtins.str + project_id: builtins.int + new_group_id: builtins.int + datetime: builtins.str + @property + def previous_group_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ... + def __init__( + self, + *, + transaction_id: builtins.str = ..., + project_id: builtins.int = ..., + previous_group_ids: collections.abc.Iterable[builtins.int] | None = ..., + new_group_id: builtins.int = ..., + datetime: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["datetime", b"datetime", "new_group_id", b"new_group_id", "previous_group_ids", b"previous_group_ids", "project_id", b"project_id", "transaction_id", b"transaction_id"]) -> None: ... + + A0_FIELD_NUMBER: builtins.int + A1_FIELD_NUMBER: builtins.int + A2_FIELD_NUMBER: builtins.int + a0: builtins.int + a1: builtins.str + @property + def a2(self) -> global___Endmergemessage.Endmergemessage2: ... + def __init__( + self, + *, + a0: builtins.int = ..., + a1: builtins.str = ..., + a2: global___Endmergemessage.Endmergemessage2 | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["a2", b"a2"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["a0", b"a0", "a1", b"a1", "a2", b"a2"]) -> None: ... + +global___Endmergemessage = Endmergemessage + +@typing.final +class Startdeletegroupsmessage(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class Startdeletegroupsmessage2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + TRANSACTION_ID_FIELD_NUMBER: builtins.int + PROJECT_ID_FIELD_NUMBER: builtins.int + GROUP_IDS_FIELD_NUMBER: builtins.int + DATETIME_FIELD_NUMBER: builtins.int + transaction_id: builtins.str + project_id: builtins.int + datetime: builtins.str + @property + def group_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ... + def __init__( + self, + *, + transaction_id: builtins.str = ..., + project_id: builtins.int = ..., + group_ids: collections.abc.Iterable[builtins.int] | None = ..., + datetime: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["datetime", b"datetime", "group_ids", b"group_ids", "project_id", b"project_id", "transaction_id", b"transaction_id"]) -> None: ... + + A0_FIELD_NUMBER: builtins.int + A1_FIELD_NUMBER: builtins.int + A2_FIELD_NUMBER: builtins.int + a0: builtins.int + a1: builtins.str + @property + def a2(self) -> global___Startdeletegroupsmessage.Startdeletegroupsmessage2: ... + def __init__( + self, + *, + a0: builtins.int = ..., + a1: builtins.str = ..., + a2: global___Startdeletegroupsmessage.Startdeletegroupsmessage2 | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["a2", b"a2"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["a0", b"a0", "a1", b"a1", "a2", b"a2"]) -> None: ... + +global___Startdeletegroupsmessage = Startdeletegroupsmessage + +@typing.final +class Enddeletegroupsmessage(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class Enddeletegroupsmessage2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + TRANSACTION_ID_FIELD_NUMBER: builtins.int + PROJECT_ID_FIELD_NUMBER: builtins.int + GROUP_IDS_FIELD_NUMBER: builtins.int + DATETIME_FIELD_NUMBER: builtins.int + transaction_id: builtins.str + project_id: builtins.int + datetime: builtins.str + @property + def group_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ... + def __init__( + self, + *, + transaction_id: builtins.str = ..., + project_id: builtins.int = ..., + group_ids: collections.abc.Iterable[builtins.int] | None = ..., + datetime: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["datetime", b"datetime", "group_ids", b"group_ids", "project_id", b"project_id", "transaction_id", b"transaction_id"]) -> None: ... + + A0_FIELD_NUMBER: builtins.int + A1_FIELD_NUMBER: builtins.int + A2_FIELD_NUMBER: builtins.int + a0: builtins.int + a1: builtins.str + @property + def a2(self) -> global___Enddeletegroupsmessage.Enddeletegroupsmessage2: ... + def __init__( + self, + *, + a0: builtins.int = ..., + a1: builtins.str = ..., + a2: global___Enddeletegroupsmessage.Enddeletegroupsmessage2 | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["a2", b"a2"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["a0", b"a0", "a1", b"a1", "a2", b"a2"]) -> None: ... + +global___Enddeletegroupsmessage = Enddeletegroupsmessage + +@typing.final +class Startunmergemessage(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class Startunmergemessage2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PROJECT_ID_FIELD_NUMBER: builtins.int + project_id: builtins.int + def __init__( + self, + *, + project_id: builtins.int = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["project_id", b"project_id"]) -> None: ... + + A0_FIELD_NUMBER: builtins.int + A1_FIELD_NUMBER: builtins.int + A2_FIELD_NUMBER: builtins.int + a0: builtins.int + a1: builtins.str + @property + def a2(self) -> global___Startunmergemessage.Startunmergemessage2: ... + def __init__( + self, + *, + a0: builtins.int = ..., + a1: builtins.str = ..., + a2: global___Startunmergemessage.Startunmergemessage2 | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["a2", b"a2"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["a0", b"a0", "a1", b"a1", "a2", b"a2"]) -> None: ... + +global___Startunmergemessage = Startunmergemessage + +@typing.final +class Startunmergehierarchicalmessage(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class Startunmergehierarchicalmessage2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PROJECT_ID_FIELD_NUMBER: builtins.int + project_id: builtins.int + def __init__( + self, + *, + project_id: builtins.int = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["project_id", b"project_id"]) -> None: ... + + A0_FIELD_NUMBER: builtins.int + A1_FIELD_NUMBER: builtins.int + A2_FIELD_NUMBER: builtins.int + a0: builtins.int + a1: builtins.str + @property + def a2(self) -> global___Startunmergehierarchicalmessage.Startunmergehierarchicalmessage2: ... + def __init__( + self, + *, + a0: builtins.int = ..., + a1: builtins.str = ..., + a2: global___Startunmergehierarchicalmessage.Startunmergehierarchicalmessage2 | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["a2", b"a2"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["a0", b"a0", "a1", b"a1", "a2", b"a2"]) -> None: ... + +global___Startunmergehierarchicalmessage = Startunmergehierarchicalmessage + +@typing.final +class Startdeletetagmessage(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class Startdeletetagmessage2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PROJECT_ID_FIELD_NUMBER: builtins.int + project_id: builtins.int + def __init__( + self, + *, + project_id: builtins.int = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["project_id", b"project_id"]) -> None: ... + + A0_FIELD_NUMBER: builtins.int + A1_FIELD_NUMBER: builtins.int + A2_FIELD_NUMBER: builtins.int + a0: builtins.int + a1: builtins.str + @property + def a2(self) -> global___Startdeletetagmessage.Startdeletetagmessage2: ... + def __init__( + self, + *, + a0: builtins.int = ..., + a1: builtins.str = ..., + a2: global___Startdeletetagmessage.Startdeletetagmessage2 | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["a2", b"a2"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["a0", b"a0", "a1", b"a1", "a2", b"a2"]) -> None: ... + +global___Startdeletetagmessage = Startdeletetagmessage + +@typing.final +class Endunmergemessage(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class Endunmergemessage2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + TRANSACTION_ID_FIELD_NUMBER: builtins.int + PROJECT_ID_FIELD_NUMBER: builtins.int + PREVIOUS_GROUP_ID_FIELD_NUMBER: builtins.int + NEW_GROUP_ID_FIELD_NUMBER: builtins.int + HASHES_FIELD_NUMBER: builtins.int + DATETIME_FIELD_NUMBER: builtins.int + transaction_id: builtins.str + project_id: builtins.int + previous_group_id: builtins.int + new_group_id: builtins.int + datetime: builtins.str + @property + def hashes(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + def __init__( + self, + *, + transaction_id: builtins.str = ..., + project_id: builtins.int = ..., + previous_group_id: builtins.int = ..., + new_group_id: builtins.int = ..., + hashes: collections.abc.Iterable[builtins.str] | None = ..., + datetime: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["datetime", b"datetime", "hashes", b"hashes", "new_group_id", b"new_group_id", "previous_group_id", b"previous_group_id", "project_id", b"project_id", "transaction_id", b"transaction_id"]) -> None: ... + + A0_FIELD_NUMBER: builtins.int + A1_FIELD_NUMBER: builtins.int + A2_FIELD_NUMBER: builtins.int + a0: builtins.int + a1: builtins.str + @property + def a2(self) -> global___Endunmergemessage.Endunmergemessage2: ... + def __init__( + self, + *, + a0: builtins.int = ..., + a1: builtins.str = ..., + a2: global___Endunmergemessage.Endunmergemessage2 | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["a2", b"a2"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["a0", b"a0", "a1", b"a1", "a2", b"a2"]) -> None: ... + +global___Endunmergemessage = Endunmergemessage + +@typing.final +class Endunmergehierarchicalmessage(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class Endunmergehierarchicalmessage2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PROJECT_ID_FIELD_NUMBER: builtins.int + PREVIOUS_GROUP_ID_FIELD_NUMBER: builtins.int + NEW_GROUP_ID_FIELD_NUMBER: builtins.int + PRIMARY_HASH_FIELD_NUMBER: builtins.int + HIERARCHICAL_HASH_FIELD_NUMBER: builtins.int + DATETIME_FIELD_NUMBER: builtins.int + project_id: builtins.int + previous_group_id: builtins.int + new_group_id: builtins.int + primary_hash: builtins.str + hierarchical_hash: builtins.str + datetime: builtins.str + def __init__( + self, + *, + project_id: builtins.int = ..., + previous_group_id: builtins.int = ..., + new_group_id: builtins.int = ..., + primary_hash: builtins.str = ..., + hierarchical_hash: builtins.str = ..., + datetime: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["datetime", b"datetime", "hierarchical_hash", b"hierarchical_hash", "new_group_id", b"new_group_id", "previous_group_id", b"previous_group_id", "primary_hash", b"primary_hash", "project_id", b"project_id"]) -> None: ... + + A0_FIELD_NUMBER: builtins.int + A1_FIELD_NUMBER: builtins.int + A2_FIELD_NUMBER: builtins.int + a0: builtins.int + a1: builtins.str + @property + def a2(self) -> global___Endunmergehierarchicalmessage.Endunmergehierarchicalmessage2: ... + def __init__( + self, + *, + a0: builtins.int = ..., + a1: builtins.str = ..., + a2: global___Endunmergehierarchicalmessage.Endunmergehierarchicalmessage2 | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["a2", b"a2"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["a0", b"a0", "a1", b"a1", "a2", b"a2"]) -> None: ... + +global___Endunmergehierarchicalmessage = Endunmergehierarchicalmessage + +@typing.final +class Enddeletetagmessage(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class Enddeletetagmessage2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + TAG_FIELD_NUMBER: builtins.int + DATETIME_FIELD_NUMBER: builtins.int + PROJECT_ID_FIELD_NUMBER: builtins.int + tag: builtins.str + datetime: builtins.str + project_id: builtins.int + def __init__( + self, + *, + tag: builtins.str = ..., + datetime: builtins.str = ..., + project_id: builtins.int = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["datetime", b"datetime", "project_id", b"project_id", "tag", b"tag"]) -> None: ... + + A0_FIELD_NUMBER: builtins.int + A1_FIELD_NUMBER: builtins.int + A2_FIELD_NUMBER: builtins.int + a0: builtins.int + a1: builtins.str + @property + def a2(self) -> global___Enddeletetagmessage.Enddeletetagmessage2: ... + def __init__( + self, + *, + a0: builtins.int = ..., + a1: builtins.str = ..., + a2: global___Enddeletetagmessage.Enddeletetagmessage2 | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["a2", b"a2"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["a0", b"a0", "a1", b"a1", "a2", b"a2"]) -> None: ... + +global___Enddeletetagmessage = Enddeletetagmessage + +@typing.final +class Tombstoneeventsmessage(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class Tombstoneeventsmessage2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PROJECT_ID_FIELD_NUMBER: builtins.int + EVENT_IDS_FIELD_NUMBER: builtins.int + OLD_PRIMARY_HASH_FIELD_NUMBER: builtins.int + FROM_TIMESTAMP_FIELD_NUMBER: builtins.int + TO_TIMESTAMP_FIELD_NUMBER: builtins.int + DATETIME_FIELD_NUMBER: builtins.int + project_id: builtins.int + old_primary_hash: builtins.str + from_timestamp: builtins.str + to_timestamp: builtins.str + datetime: builtins.str + @property + def event_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + def __init__( + self, + *, + project_id: builtins.int = ..., + event_ids: collections.abc.Iterable[builtins.str] | None = ..., + old_primary_hash: builtins.str = ..., + from_timestamp: builtins.str = ..., + to_timestamp: builtins.str = ..., + datetime: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_old_primary_hash", b"has_old_primary_hash", "old_primary_hash", b"old_primary_hash"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["datetime", b"datetime", "event_ids", b"event_ids", "from_timestamp", b"from_timestamp", "has_old_primary_hash", b"has_old_primary_hash", "old_primary_hash", b"old_primary_hash", "project_id", b"project_id", "to_timestamp", b"to_timestamp"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["has_old_primary_hash", b"has_old_primary_hash"]) -> typing.Literal["old_primary_hash"] | None: ... + + A0_FIELD_NUMBER: builtins.int + A1_FIELD_NUMBER: builtins.int + A2_FIELD_NUMBER: builtins.int + a0: builtins.int + a1: builtins.str + @property + def a2(self) -> global___Tombstoneeventsmessage.Tombstoneeventsmessage2: ... + def __init__( + self, + *, + a0: builtins.int = ..., + a1: builtins.str = ..., + a2: global___Tombstoneeventsmessage.Tombstoneeventsmessage2 | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["a2", b"a2"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["a0", b"a0", "a1", b"a1", "a2", b"a2"]) -> None: ... + +global___Tombstoneeventsmessage = Tombstoneeventsmessage + +@typing.final +class Replacegroupmessage(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class Replacegroupmessage2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + EVENT_IDS_FIELD_NUMBER: builtins.int + PROJECT_ID_FIELD_NUMBER: builtins.int + FROM_TIMESTAMP_FIELD_NUMBER: builtins.int + TO_TIMESTAMP_FIELD_NUMBER: builtins.int + TRANSACTION_ID_FIELD_NUMBER: builtins.int + DATETIME_FIELD_NUMBER: builtins.int + NEW_GROUP_ID_FIELD_NUMBER: builtins.int + project_id: builtins.int + from_timestamp: builtins.str + to_timestamp: builtins.str + transaction_id: builtins.str + datetime: builtins.str + new_group_id: builtins.int + @property + def event_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + def __init__( + self, + *, + event_ids: collections.abc.Iterable[builtins.str] | None = ..., + project_id: builtins.int = ..., + from_timestamp: builtins.str = ..., + to_timestamp: builtins.str = ..., + transaction_id: builtins.str = ..., + datetime: builtins.str = ..., + new_group_id: builtins.int = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["datetime", b"datetime", "event_ids", b"event_ids", "from_timestamp", b"from_timestamp", "new_group_id", b"new_group_id", "project_id", b"project_id", "to_timestamp", b"to_timestamp", "transaction_id", b"transaction_id"]) -> None: ... + + A0_FIELD_NUMBER: builtins.int + A1_FIELD_NUMBER: builtins.int + A2_FIELD_NUMBER: builtins.int + a0: builtins.int + a1: builtins.str + @property + def a2(self) -> global___Replacegroupmessage.Replacegroupmessage2: ... + def __init__( + self, + *, + a0: builtins.int = ..., + a1: builtins.str = ..., + a2: global___Replacegroupmessage.Replacegroupmessage2 | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["a2", b"a2"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["a0", b"a0", "a1", b"a1", "a2", b"a2"]) -> None: ... + +global___Replacegroupmessage = Replacegroupmessage + +@typing.final +class Excludegroupsmessage(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class Excludegroupsmessage2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PROJECT_ID_FIELD_NUMBER: builtins.int + GROUP_IDS_FIELD_NUMBER: builtins.int + project_id: builtins.int + @property + def group_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ... + def __init__( + self, + *, + project_id: builtins.int = ..., + group_ids: collections.abc.Iterable[builtins.int] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["group_ids", b"group_ids", "project_id", b"project_id"]) -> None: ... + + A0_FIELD_NUMBER: builtins.int + A1_FIELD_NUMBER: builtins.int + A2_FIELD_NUMBER: builtins.int + a0: builtins.int + a1: builtins.str + @property + def a2(self) -> global___Excludegroupsmessage.Excludegroupsmessage2: ... + def __init__( + self, + *, + a0: builtins.int = ..., + a1: builtins.str = ..., + a2: global___Excludegroupsmessage.Excludegroupsmessage2 | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["a2", b"a2"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["a0", b"a0", "a1", b"a1", "a2", b"a2"]) -> None: ... + +global___Excludegroupsmessage = Excludegroupsmessage + +@typing.final +class Contexts(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class ContextsReplay(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + REPLAY_ID_FIELD_NUMBER: builtins.int + replay_id: builtins.str + def __init__( + self, + *, + replay_id: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_replay_id", b"has_replay_id", "replay_id", b"replay_id"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_replay_id", b"has_replay_id", "replay_id", b"replay_id"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["has_replay_id", b"has_replay_id"]) -> typing.Literal["replay_id"] | None: ... + + @typing.final + class ContextsTrace(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + SAMPLED_FIELD_NUMBER: builtins.int + SPAN_ID_FIELD_NUMBER: builtins.int + TRACE_ID_FIELD_NUMBER: builtins.int + sampled: builtins.bool + span_id: builtins.str + trace_id: builtins.str + def __init__( + self, + *, + sampled: builtins.bool = ..., + span_id: builtins.str = ..., + trace_id: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_sampled", b"has_sampled", "has_span_id", b"has_span_id", "has_trace_id", b"has_trace_id", "sampled", b"sampled", "span_id", b"span_id", "trace_id", b"trace_id"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_sampled", b"has_sampled", "has_span_id", b"has_span_id", "has_trace_id", b"has_trace_id", "sampled", b"sampled", "span_id", b"span_id", "trace_id", b"trace_id"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_sampled", b"has_sampled"]) -> typing.Literal["sampled"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_span_id", b"has_span_id"]) -> typing.Literal["span_id"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_trace_id", b"has_trace_id"]) -> typing.Literal["trace_id"] | None: ... + + REPLAY_FIELD_NUMBER: builtins.int + TRACE_FIELD_NUMBER: builtins.int + @property + def replay(self) -> global___Contexts.ContextsReplay: ... + @property + def trace(self) -> global___Contexts.ContextsTrace: ... + def __init__( + self, + *, + replay: global___Contexts.ContextsReplay | None = ..., + trace: global___Contexts.ContextsTrace | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_replay", b"has_replay", "has_trace", b"has_trace", "replay", b"replay", "trace", b"trace"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_replay", b"has_replay", "has_trace", b"has_trace", "replay", b"replay", "trace", b"trace"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_replay", b"has_replay"]) -> typing.Literal["replay"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_trace", b"has_trace"]) -> typing.Literal["trace"] | None: ... + +global___Contexts = Contexts + +@typing.final +class Errordata(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class ErrordataContexts(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class ErrordataContextsReplay(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + REPLAY_ID_FIELD_NUMBER: builtins.int + replay_id: builtins.str + def __init__( + self, + *, + replay_id: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_replay_id", b"has_replay_id", "replay_id", b"replay_id"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_replay_id", b"has_replay_id", "replay_id", b"replay_id"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["has_replay_id", b"has_replay_id"]) -> typing.Literal["replay_id"] | None: ... + + @typing.final + class ErrordataContextsTrace(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + SAMPLED_FIELD_NUMBER: builtins.int + SPAN_ID_FIELD_NUMBER: builtins.int + TRACE_ID_FIELD_NUMBER: builtins.int + sampled: builtins.bool + span_id: builtins.str + trace_id: builtins.str + def __init__( + self, + *, + sampled: builtins.bool = ..., + span_id: builtins.str = ..., + trace_id: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_sampled", b"has_sampled", "has_span_id", b"has_span_id", "has_trace_id", b"has_trace_id", "sampled", b"sampled", "span_id", b"span_id", "trace_id", b"trace_id"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_sampled", b"has_sampled", "has_span_id", b"has_span_id", "has_trace_id", b"has_trace_id", "sampled", b"sampled", "span_id", b"span_id", "trace_id", b"trace_id"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_sampled", b"has_sampled"]) -> typing.Literal["sampled"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_span_id", b"has_span_id"]) -> typing.Literal["span_id"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_trace_id", b"has_trace_id"]) -> typing.Literal["trace_id"] | None: ... + + REPLAY_FIELD_NUMBER: builtins.int + TRACE_FIELD_NUMBER: builtins.int + @property + def replay(self) -> global___Errordata.ErrordataContexts.ErrordataContextsReplay: ... + @property + def trace(self) -> global___Errordata.ErrordataContexts.ErrordataContextsTrace: ... + def __init__( + self, + *, + replay: global___Errordata.ErrordataContexts.ErrordataContextsReplay | None = ..., + trace: global___Errordata.ErrordataContexts.ErrordataContextsTrace | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_replay", b"has_replay", "has_trace", b"has_trace", "replay", b"replay", "trace", b"trace"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_replay", b"has_replay", "has_trace", b"has_trace", "replay", b"replay", "trace", b"trace"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_replay", b"has_replay"]) -> typing.Literal["replay"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_trace", b"has_trace"]) -> typing.Literal["trace"] | None: ... + + @typing.final + class ErrordataException(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class ErrordataExceptionValues(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class ErrordataExceptionValuesMechanism(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + HANDLED_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + @property + def handled(self) -> google.protobuf.struct_pb2.Value: ... + @property + def type(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + handled: google.protobuf.struct_pb2.Value | None = ..., + type: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["handled", b"handled", "type", b"type"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["handled", b"handled", "type", b"type"]) -> None: ... + + @typing.final + class ErrordataExceptionValuesStacktrace(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class ErrordataExceptionValuesStacktraceFrames(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ABS_PATH_FIELD_NUMBER: builtins.int + COLNO_FIELD_NUMBER: builtins.int + FILENAME_FIELD_NUMBER: builtins.int + FUNCTION_FIELD_NUMBER: builtins.int + IN_APP_FIELD_NUMBER: builtins.int + LINENO_FIELD_NUMBER: builtins.int + MODULE_FIELD_NUMBER: builtins.int + PACKAGE_FIELD_NUMBER: builtins.int + colno: builtins.int + in_app: builtins.bool + lineno: builtins.int + @property + def abs_path(self) -> google.protobuf.struct_pb2.Value: ... + @property + def filename(self) -> google.protobuf.struct_pb2.Value: ... + @property + def function(self) -> google.protobuf.struct_pb2.Value: ... + @property + def module(self) -> google.protobuf.struct_pb2.Value: ... + @property + def package(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + abs_path: google.protobuf.struct_pb2.Value | None = ..., + colno: builtins.int = ..., + filename: google.protobuf.struct_pb2.Value | None = ..., + function: google.protobuf.struct_pb2.Value | None = ..., + in_app: builtins.bool = ..., + lineno: builtins.int = ..., + module: google.protobuf.struct_pb2.Value | None = ..., + package: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["abs_path", b"abs_path", "colno", b"colno", "filename", b"filename", "function", b"function", "has_colno", b"has_colno", "has_in_app", b"has_in_app", "has_lineno", b"has_lineno", "in_app", b"in_app", "lineno", b"lineno", "module", b"module", "package", b"package"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["abs_path", b"abs_path", "colno", b"colno", "filename", b"filename", "function", b"function", "has_colno", b"has_colno", "has_in_app", b"has_in_app", "has_lineno", b"has_lineno", "in_app", b"in_app", "lineno", b"lineno", "module", b"module", "package", b"package"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_colno", b"has_colno"]) -> typing.Literal["colno"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_in_app", b"has_in_app"]) -> typing.Literal["in_app"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_lineno", b"has_lineno"]) -> typing.Literal["lineno"] | None: ... + + FRAMES_FIELD_NUMBER: builtins.int + @property + def frames(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Errordata.ErrordataException.ErrordataExceptionValues.ErrordataExceptionValuesStacktrace.ErrordataExceptionValuesStacktraceFrames]: ... + def __init__( + self, + *, + frames: collections.abc.Iterable[global___Errordata.ErrordataException.ErrordataExceptionValues.ErrordataExceptionValuesStacktrace.ErrordataExceptionValuesStacktraceFrames] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["frames", b"frames"]) -> None: ... + + MECHANISM_FIELD_NUMBER: builtins.int + STACKTRACE_FIELD_NUMBER: builtins.int + THREAD_ID_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + @property + def mechanism(self) -> global___Errordata.ErrordataException.ErrordataExceptionValues.ErrordataExceptionValuesMechanism: ... + @property + def stacktrace(self) -> global___Errordata.ErrordataException.ErrordataExceptionValues.ErrordataExceptionValuesStacktrace: ... + @property + def thread_id(self) -> google.protobuf.struct_pb2.Value: ... + @property + def type(self) -> google.protobuf.struct_pb2.Value: ... + @property + def value(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + mechanism: global___Errordata.ErrordataException.ErrordataExceptionValues.ErrordataExceptionValuesMechanism | None = ..., + stacktrace: global___Errordata.ErrordataException.ErrordataExceptionValues.ErrordataExceptionValuesStacktrace | None = ..., + thread_id: google.protobuf.struct_pb2.Value | None = ..., + type: google.protobuf.struct_pb2.Value | None = ..., + value: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_mechanism", b"has_mechanism", "has_stacktrace", b"has_stacktrace", "has_thread_id", b"has_thread_id", "mechanism", b"mechanism", "stacktrace", b"stacktrace", "thread_id", b"thread_id", "type", b"type", "value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_mechanism", b"has_mechanism", "has_stacktrace", b"has_stacktrace", "has_thread_id", b"has_thread_id", "mechanism", b"mechanism", "stacktrace", b"stacktrace", "thread_id", b"thread_id", "type", b"type", "value", b"value"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_mechanism", b"has_mechanism"]) -> typing.Literal["mechanism"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_stacktrace", b"has_stacktrace"]) -> typing.Literal["stacktrace"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_thread_id", b"has_thread_id"]) -> typing.Literal["thread_id"] | None: ... + + VALUES_FIELD_NUMBER: builtins.int + @property + def values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Errordata.ErrordataException.ErrordataExceptionValues]: ... + def __init__( + self, + *, + values: collections.abc.Iterable[global___Errordata.ErrordataException.ErrordataExceptionValues] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["values", b"values"]) -> None: ... + + @typing.final + class ErrordataRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class ErrordataRequestHeaders(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A0_FIELD_NUMBER: builtins.int + A1_FIELD_NUMBER: builtins.int + a0: builtins.str + @property + def a1(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + a0: builtins.str = ..., + a1: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["a1", b"a1"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["a0", b"a0", "a1", b"a1"]) -> None: ... + + HEADERS_FIELD_NUMBER: builtins.int + METHOD_FIELD_NUMBER: builtins.int + @property + def headers(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Errordata.ErrordataRequest.ErrordataRequestHeaders]: ... + @property + def method(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + headers: collections.abc.Iterable[global___Errordata.ErrordataRequest.ErrordataRequestHeaders] | None = ..., + method: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["method", b"method"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["headers", b"headers", "method", b"method"]) -> None: ... + + @typing.final + class ErrordataSdk(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + INTEGRATIONS_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + VERSION_FIELD_NUMBER: builtins.int + @property + def integrations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[google.protobuf.struct_pb2.Value]: ... + @property + def name(self) -> google.protobuf.struct_pb2.Value: ... + @property + def version(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + integrations: collections.abc.Iterable[google.protobuf.struct_pb2.Value] | None = ..., + name: google.protobuf.struct_pb2.Value | None = ..., + version: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["name", b"name", "version", b"version"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["integrations", b"integrations", "name", b"name", "version", b"version"]) -> None: ... + + @typing.final + class ErrordataTags(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A0_FIELD_NUMBER: builtins.int + A1_FIELD_NUMBER: builtins.int + @property + def a0(self) -> google.protobuf.struct_pb2.Value: ... + @property + def a1(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + a0: google.protobuf.struct_pb2.Value | None = ..., + a1: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["a0", b"a0", "a1", b"a1"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["a0", b"a0", "a1", b"a1"]) -> None: ... + + @typing.final + class ErrordataThreads(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class ErrordataThreadsValues(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ID_FIELD_NUMBER: builtins.int + MAIN_FIELD_NUMBER: builtins.int + main: builtins.bool + @property + def id(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + id: google.protobuf.struct_pb2.Value | None = ..., + main: builtins.bool = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_id", b"has_id", "has_main", b"has_main", "id", b"id", "main", b"main"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_id", b"has_id", "has_main", b"has_main", "id", b"id", "main", b"main"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_id", b"has_id"]) -> typing.Literal["id"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_main", b"has_main"]) -> typing.Literal["main"] | None: ... + + VALUES_FIELD_NUMBER: builtins.int + @property + def values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Errordata.ErrordataThreads.ErrordataThreadsValues]: ... + def __init__( + self, + *, + values: collections.abc.Iterable[global___Errordata.ErrordataThreads.ErrordataThreadsValues] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["values", b"values"]) -> None: ... + + @typing.final + class ErrordataUser(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class GeoEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + @property + def value(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + key: builtins.str = ..., + value: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... + + EMAIL_FIELD_NUMBER: builtins.int + GEO_FIELD_NUMBER: builtins.int + ID_FIELD_NUMBER: builtins.int + IP_ADDRESS_FIELD_NUMBER: builtins.int + USERNAME_FIELD_NUMBER: builtins.int + ip_address: builtins.str + @property + def email(self) -> google.protobuf.struct_pb2.Value: ... + @property + def geo(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, google.protobuf.struct_pb2.Value]: ... + @property + def id(self) -> google.protobuf.struct_pb2.Value: ... + @property + def username(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + email: google.protobuf.struct_pb2.Value | None = ..., + geo: collections.abc.Mapping[builtins.str, google.protobuf.struct_pb2.Value] | None = ..., + id: google.protobuf.struct_pb2.Value | None = ..., + ip_address: builtins.str = ..., + username: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["email", b"email", "has_ip_address", b"has_ip_address", "id", b"id", "ip_address", b"ip_address", "username", b"username"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["email", b"email", "geo", b"geo", "has_ip_address", b"has_ip_address", "id", b"id", "ip_address", b"ip_address", "username", b"username"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["has_ip_address", b"has_ip_address"]) -> typing.Literal["ip_address"] | None: ... + + @typing.final + class ModulesEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str + def __init__( + self, + *, + key: builtins.str = ..., + value: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... + + CONTEXTS_FIELD_NUMBER: builtins.int + CULPRIT_FIELD_NUMBER: builtins.int + ERRORS_FIELD_NUMBER: builtins.int + EXCEPTION_FIELD_NUMBER: builtins.int + HIERARCHICAL_HASHES_FIELD_NUMBER: builtins.int + LOCATION_FIELD_NUMBER: builtins.int + MODULES_FIELD_NUMBER: builtins.int + RECEIVED_FIELD_NUMBER: builtins.int + REQUEST_FIELD_NUMBER: builtins.int + SDK_FIELD_NUMBER: builtins.int + TAGS_FIELD_NUMBER: builtins.int + THREADS_FIELD_NUMBER: builtins.int + TITLE_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + USER_FIELD_NUMBER: builtins.int + VERSION_FIELD_NUMBER: builtins.int + location: builtins.str + received: builtins.float + version: builtins.str + @property + def contexts(self) -> global___Errordata.ErrordataContexts: ... + @property + def culprit(self) -> google.protobuf.struct_pb2.Value: ... + @property + def errors(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[google.protobuf.struct_pb2.Value]: ... + @property + def exception(self) -> global___Errordata.ErrordataException: ... + @property + def hierarchical_hashes(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def modules(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... + @property + def request(self) -> global___Errordata.ErrordataRequest: ... + @property + def sdk(self) -> global___Errordata.ErrordataSdk: ... + @property + def tags(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Errordata.ErrordataTags]: ... + @property + def threads(self) -> global___Errordata.ErrordataThreads: ... + @property + def title(self) -> google.protobuf.struct_pb2.Value: ... + @property + def type(self) -> google.protobuf.struct_pb2.Value: ... + @property + def user(self) -> global___Errordata.ErrordataUser: ... + def __init__( + self, + *, + contexts: global___Errordata.ErrordataContexts | None = ..., + culprit: google.protobuf.struct_pb2.Value | None = ..., + errors: collections.abc.Iterable[google.protobuf.struct_pb2.Value] | None = ..., + exception: global___Errordata.ErrordataException | None = ..., + hierarchical_hashes: collections.abc.Iterable[builtins.str] | None = ..., + location: builtins.str = ..., + modules: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + received: builtins.float = ..., + request: global___Errordata.ErrordataRequest | None = ..., + sdk: global___Errordata.ErrordataSdk | None = ..., + tags: collections.abc.Iterable[global___Errordata.ErrordataTags] | None = ..., + threads: global___Errordata.ErrordataThreads | None = ..., + title: google.protobuf.struct_pb2.Value | None = ..., + type: google.protobuf.struct_pb2.Value | None = ..., + user: global___Errordata.ErrordataUser | None = ..., + version: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["contexts", b"contexts", "culprit", b"culprit", "exception", b"exception", "has_contexts", b"has_contexts", "has_exception", b"has_exception", "has_location", b"has_location", "has_request", b"has_request", "has_sdk", b"has_sdk", "has_threads", b"has_threads", "has_user", b"has_user", "has_version", b"has_version", "location", b"location", "request", b"request", "sdk", b"sdk", "threads", b"threads", "title", b"title", "type", b"type", "user", b"user", "version", b"version"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["contexts", b"contexts", "culprit", b"culprit", "errors", b"errors", "exception", b"exception", "has_contexts", b"has_contexts", "has_exception", b"has_exception", "has_location", b"has_location", "has_request", b"has_request", "has_sdk", b"has_sdk", "has_threads", b"has_threads", "has_user", b"has_user", "has_version", b"has_version", "hierarchical_hashes", b"hierarchical_hashes", "location", b"location", "modules", b"modules", "received", b"received", "request", b"request", "sdk", b"sdk", "tags", b"tags", "threads", b"threads", "title", b"title", "type", b"type", "user", b"user", "version", b"version"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_contexts", b"has_contexts"]) -> typing.Literal["contexts"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_exception", b"has_exception"]) -> typing.Literal["exception"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_location", b"has_location"]) -> typing.Literal["location"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_request", b"has_request"]) -> typing.Literal["request"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_sdk", b"has_sdk"]) -> typing.Literal["sdk"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_threads", b"has_threads"]) -> typing.Literal["threads"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_user", b"has_user"]) -> typing.Literal["user"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_version", b"has_version"]) -> typing.Literal["version"] | None: ... + +global___Errordata = Errordata + +@typing.final +class Errormessage(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + DATA_FIELD_NUMBER: builtins.int + DATETIME_FIELD_NUMBER: builtins.int + EVENT_ID_FIELD_NUMBER: builtins.int + GROUP_ID_FIELD_NUMBER: builtins.int + MESSAGE_FIELD_NUMBER: builtins.int + PLATFORM_FIELD_NUMBER: builtins.int + PRIMARY_HASH_FIELD_NUMBER: builtins.int + PROJECT_ID_FIELD_NUMBER: builtins.int + RETENTION_DAYS_FIELD_NUMBER: builtins.int + datetime: builtins.str + event_id: builtins.str + group_id: builtins.int + message: builtins.str + platform: builtins.str + primary_hash: builtins.str + project_id: builtins.int + retention_days: builtins.int + @property + def data(self) -> global___Errordata: ... + def __init__( + self, + *, + data: global___Errordata | None = ..., + datetime: builtins.str = ..., + event_id: builtins.str = ..., + group_id: builtins.int = ..., + message: builtins.str = ..., + platform: builtins.str = ..., + primary_hash: builtins.str = ..., + project_id: builtins.int = ..., + retention_days: builtins.int = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["data", b"data", "has_platform", b"has_platform", "has_retention_days", b"has_retention_days", "platform", b"platform", "retention_days", b"retention_days"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["data", b"data", "datetime", b"datetime", "event_id", b"event_id", "group_id", b"group_id", "has_platform", b"has_platform", "has_retention_days", b"has_retention_days", "message", b"message", "platform", b"platform", "primary_hash", b"primary_hash", "project_id", b"project_id", "retention_days", b"retention_days"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_platform", b"has_platform"]) -> typing.Literal["platform"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_retention_days", b"has_retention_days"]) -> typing.Literal["retention_days"] | None: ... + +global___Errormessage = Errormessage + +@typing.final +class Exception(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class ExceptionValues(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class ExceptionValuesMechanism(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + HANDLED_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + @property + def handled(self) -> google.protobuf.struct_pb2.Value: ... + @property + def type(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + handled: google.protobuf.struct_pb2.Value | None = ..., + type: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["handled", b"handled", "type", b"type"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["handled", b"handled", "type", b"type"]) -> None: ... + + @typing.final + class ExceptionValuesStacktrace(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class ExceptionValuesStacktraceFrames(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ABS_PATH_FIELD_NUMBER: builtins.int + COLNO_FIELD_NUMBER: builtins.int + FILENAME_FIELD_NUMBER: builtins.int + FUNCTION_FIELD_NUMBER: builtins.int + IN_APP_FIELD_NUMBER: builtins.int + LINENO_FIELD_NUMBER: builtins.int + MODULE_FIELD_NUMBER: builtins.int + PACKAGE_FIELD_NUMBER: builtins.int + colno: builtins.int + in_app: builtins.bool + lineno: builtins.int + @property + def abs_path(self) -> google.protobuf.struct_pb2.Value: ... + @property + def filename(self) -> google.protobuf.struct_pb2.Value: ... + @property + def function(self) -> google.protobuf.struct_pb2.Value: ... + @property + def module(self) -> google.protobuf.struct_pb2.Value: ... + @property + def package(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + abs_path: google.protobuf.struct_pb2.Value | None = ..., + colno: builtins.int = ..., + filename: google.protobuf.struct_pb2.Value | None = ..., + function: google.protobuf.struct_pb2.Value | None = ..., + in_app: builtins.bool = ..., + lineno: builtins.int = ..., + module: google.protobuf.struct_pb2.Value | None = ..., + package: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["abs_path", b"abs_path", "colno", b"colno", "filename", b"filename", "function", b"function", "has_colno", b"has_colno", "has_in_app", b"has_in_app", "has_lineno", b"has_lineno", "in_app", b"in_app", "lineno", b"lineno", "module", b"module", "package", b"package"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["abs_path", b"abs_path", "colno", b"colno", "filename", b"filename", "function", b"function", "has_colno", b"has_colno", "has_in_app", b"has_in_app", "has_lineno", b"has_lineno", "in_app", b"in_app", "lineno", b"lineno", "module", b"module", "package", b"package"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_colno", b"has_colno"]) -> typing.Literal["colno"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_in_app", b"has_in_app"]) -> typing.Literal["in_app"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_lineno", b"has_lineno"]) -> typing.Literal["lineno"] | None: ... + + FRAMES_FIELD_NUMBER: builtins.int + @property + def frames(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Exception.ExceptionValues.ExceptionValuesStacktrace.ExceptionValuesStacktraceFrames]: ... + def __init__( + self, + *, + frames: collections.abc.Iterable[global___Exception.ExceptionValues.ExceptionValuesStacktrace.ExceptionValuesStacktraceFrames] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["frames", b"frames"]) -> None: ... + + MECHANISM_FIELD_NUMBER: builtins.int + STACKTRACE_FIELD_NUMBER: builtins.int + THREAD_ID_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + @property + def mechanism(self) -> global___Exception.ExceptionValues.ExceptionValuesMechanism: ... + @property + def stacktrace(self) -> global___Exception.ExceptionValues.ExceptionValuesStacktrace: ... + @property + def thread_id(self) -> google.protobuf.struct_pb2.Value: ... + @property + def type(self) -> google.protobuf.struct_pb2.Value: ... + @property + def value(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + mechanism: global___Exception.ExceptionValues.ExceptionValuesMechanism | None = ..., + stacktrace: global___Exception.ExceptionValues.ExceptionValuesStacktrace | None = ..., + thread_id: google.protobuf.struct_pb2.Value | None = ..., + type: google.protobuf.struct_pb2.Value | None = ..., + value: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_mechanism", b"has_mechanism", "has_stacktrace", b"has_stacktrace", "has_thread_id", b"has_thread_id", "mechanism", b"mechanism", "stacktrace", b"stacktrace", "thread_id", b"thread_id", "type", b"type", "value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_mechanism", b"has_mechanism", "has_stacktrace", b"has_stacktrace", "has_thread_id", b"has_thread_id", "mechanism", b"mechanism", "stacktrace", b"stacktrace", "thread_id", b"thread_id", "type", b"type", "value", b"value"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_mechanism", b"has_mechanism"]) -> typing.Literal["mechanism"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_stacktrace", b"has_stacktrace"]) -> typing.Literal["stacktrace"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_thread_id", b"has_thread_id"]) -> typing.Literal["thread_id"] | None: ... + + VALUES_FIELD_NUMBER: builtins.int + @property + def values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Exception.ExceptionValues]: ... + def __init__( + self, + *, + values: collections.abc.Iterable[global___Exception.ExceptionValues] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["values", b"values"]) -> None: ... + +global___Exception = Exception + +@typing.final +class Exceptionmechanism(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + HANDLED_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + @property + def handled(self) -> google.protobuf.struct_pb2.Value: ... + @property + def type(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + handled: google.protobuf.struct_pb2.Value | None = ..., + type: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["handled", b"handled", "type", b"type"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["handled", b"handled", "type", b"type"]) -> None: ... + +global___Exceptionmechanism = Exceptionmechanism + +@typing.final +class Exceptionvalue(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class ExceptionvalueMechanism(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + HANDLED_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + @property + def handled(self) -> google.protobuf.struct_pb2.Value: ... + @property + def type(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + handled: google.protobuf.struct_pb2.Value | None = ..., + type: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["handled", b"handled", "type", b"type"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["handled", b"handled", "type", b"type"]) -> None: ... + + @typing.final + class ExceptionvalueStacktrace(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class ExceptionvalueStacktraceFrames(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ABS_PATH_FIELD_NUMBER: builtins.int + COLNO_FIELD_NUMBER: builtins.int + FILENAME_FIELD_NUMBER: builtins.int + FUNCTION_FIELD_NUMBER: builtins.int + IN_APP_FIELD_NUMBER: builtins.int + LINENO_FIELD_NUMBER: builtins.int + MODULE_FIELD_NUMBER: builtins.int + PACKAGE_FIELD_NUMBER: builtins.int + colno: builtins.int + in_app: builtins.bool + lineno: builtins.int + @property + def abs_path(self) -> google.protobuf.struct_pb2.Value: ... + @property + def filename(self) -> google.protobuf.struct_pb2.Value: ... + @property + def function(self) -> google.protobuf.struct_pb2.Value: ... + @property + def module(self) -> google.protobuf.struct_pb2.Value: ... + @property + def package(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + abs_path: google.protobuf.struct_pb2.Value | None = ..., + colno: builtins.int = ..., + filename: google.protobuf.struct_pb2.Value | None = ..., + function: google.protobuf.struct_pb2.Value | None = ..., + in_app: builtins.bool = ..., + lineno: builtins.int = ..., + module: google.protobuf.struct_pb2.Value | None = ..., + package: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["abs_path", b"abs_path", "colno", b"colno", "filename", b"filename", "function", b"function", "has_colno", b"has_colno", "has_in_app", b"has_in_app", "has_lineno", b"has_lineno", "in_app", b"in_app", "lineno", b"lineno", "module", b"module", "package", b"package"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["abs_path", b"abs_path", "colno", b"colno", "filename", b"filename", "function", b"function", "has_colno", b"has_colno", "has_in_app", b"has_in_app", "has_lineno", b"has_lineno", "in_app", b"in_app", "lineno", b"lineno", "module", b"module", "package", b"package"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_colno", b"has_colno"]) -> typing.Literal["colno"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_in_app", b"has_in_app"]) -> typing.Literal["in_app"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_lineno", b"has_lineno"]) -> typing.Literal["lineno"] | None: ... + + FRAMES_FIELD_NUMBER: builtins.int + @property + def frames(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Exceptionvalue.ExceptionvalueStacktrace.ExceptionvalueStacktraceFrames]: ... + def __init__( + self, + *, + frames: collections.abc.Iterable[global___Exceptionvalue.ExceptionvalueStacktrace.ExceptionvalueStacktraceFrames] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["frames", b"frames"]) -> None: ... + + MECHANISM_FIELD_NUMBER: builtins.int + STACKTRACE_FIELD_NUMBER: builtins.int + THREAD_ID_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + @property + def mechanism(self) -> global___Exceptionvalue.ExceptionvalueMechanism: ... + @property + def stacktrace(self) -> global___Exceptionvalue.ExceptionvalueStacktrace: ... + @property + def thread_id(self) -> google.protobuf.struct_pb2.Value: ... + @property + def type(self) -> google.protobuf.struct_pb2.Value: ... + @property + def value(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + mechanism: global___Exceptionvalue.ExceptionvalueMechanism | None = ..., + stacktrace: global___Exceptionvalue.ExceptionvalueStacktrace | None = ..., + thread_id: google.protobuf.struct_pb2.Value | None = ..., + type: google.protobuf.struct_pb2.Value | None = ..., + value: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_mechanism", b"has_mechanism", "has_stacktrace", b"has_stacktrace", "has_thread_id", b"has_thread_id", "mechanism", b"mechanism", "stacktrace", b"stacktrace", "thread_id", b"thread_id", "type", b"type", "value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_mechanism", b"has_mechanism", "has_stacktrace", b"has_stacktrace", "has_thread_id", b"has_thread_id", "mechanism", b"mechanism", "stacktrace", b"stacktrace", "thread_id", b"thread_id", "type", b"type", "value", b"value"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_mechanism", b"has_mechanism"]) -> typing.Literal["mechanism"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_stacktrace", b"has_stacktrace"]) -> typing.Literal["stacktrace"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_thread_id", b"has_thread_id"]) -> typing.Literal["thread_id"] | None: ... + +global___Exceptionvalue = Exceptionvalue + +@typing.final +class Inserteventmessage(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A0_FIELD_NUMBER: builtins.int + A1_FIELD_NUMBER: builtins.int + A2_FIELD_NUMBER: builtins.int + A3_FIELD_NUMBER: builtins.int + a0: builtins.int + a1: builtins.str + @property + def a2(self) -> global___Errormessage: ... + @property + def a3(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + a0: builtins.int = ..., + a1: builtins.str = ..., + a2: global___Errormessage | None = ..., + a3: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["a2", b"a2", "a3", b"a3"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["a0", b"a0", "a1", b"a1", "a2", b"a2", "a3", b"a3"]) -> None: ... + +global___Inserteventmessage = Inserteventmessage + +@typing.final +class Replaycontext(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + REPLAY_ID_FIELD_NUMBER: builtins.int + replay_id: builtins.str + def __init__( + self, + *, + replay_id: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_replay_id", b"has_replay_id", "replay_id", b"replay_id"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_replay_id", b"has_replay_id", "replay_id", b"replay_id"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["has_replay_id", b"has_replay_id"]) -> typing.Literal["replay_id"] | None: ... + +global___Replaycontext = Replaycontext + +@typing.final +class Request(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class RequestHeaders(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A0_FIELD_NUMBER: builtins.int + A1_FIELD_NUMBER: builtins.int + a0: builtins.str + @property + def a1(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + a0: builtins.str = ..., + a1: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["a1", b"a1"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["a0", b"a0", "a1", b"a1"]) -> None: ... + + HEADERS_FIELD_NUMBER: builtins.int + METHOD_FIELD_NUMBER: builtins.int + @property + def headers(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Request.RequestHeaders]: ... + @property + def method(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + headers: collections.abc.Iterable[global___Request.RequestHeaders] | None = ..., + method: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["method", b"method"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["headers", b"headers", "method", b"method"]) -> None: ... + +global___Request = Request + +@typing.final +class Sdk(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + INTEGRATIONS_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + VERSION_FIELD_NUMBER: builtins.int + @property + def integrations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[google.protobuf.struct_pb2.Value]: ... + @property + def name(self) -> google.protobuf.struct_pb2.Value: ... + @property + def version(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + integrations: collections.abc.Iterable[google.protobuf.struct_pb2.Value] | None = ..., + name: google.protobuf.struct_pb2.Value | None = ..., + version: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["name", b"name", "version", b"version"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["integrations", b"integrations", "name", b"name", "version", b"version"]) -> None: ... + +global___Sdk = Sdk + +@typing.final +class Stackframe(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ABS_PATH_FIELD_NUMBER: builtins.int + COLNO_FIELD_NUMBER: builtins.int + FILENAME_FIELD_NUMBER: builtins.int + FUNCTION_FIELD_NUMBER: builtins.int + IN_APP_FIELD_NUMBER: builtins.int + LINENO_FIELD_NUMBER: builtins.int + MODULE_FIELD_NUMBER: builtins.int + PACKAGE_FIELD_NUMBER: builtins.int + colno: builtins.int + in_app: builtins.bool + lineno: builtins.int + @property + def abs_path(self) -> google.protobuf.struct_pb2.Value: ... + @property + def filename(self) -> google.protobuf.struct_pb2.Value: ... + @property + def function(self) -> google.protobuf.struct_pb2.Value: ... + @property + def module(self) -> google.protobuf.struct_pb2.Value: ... + @property + def package(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + abs_path: google.protobuf.struct_pb2.Value | None = ..., + colno: builtins.int = ..., + filename: google.protobuf.struct_pb2.Value | None = ..., + function: google.protobuf.struct_pb2.Value | None = ..., + in_app: builtins.bool = ..., + lineno: builtins.int = ..., + module: google.protobuf.struct_pb2.Value | None = ..., + package: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["abs_path", b"abs_path", "colno", b"colno", "filename", b"filename", "function", b"function", "has_colno", b"has_colno", "has_in_app", b"has_in_app", "has_lineno", b"has_lineno", "in_app", b"in_app", "lineno", b"lineno", "module", b"module", "package", b"package"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["abs_path", b"abs_path", "colno", b"colno", "filename", b"filename", "function", b"function", "has_colno", b"has_colno", "has_in_app", b"has_in_app", "has_lineno", b"has_lineno", "in_app", b"in_app", "lineno", b"lineno", "module", b"module", "package", b"package"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_colno", b"has_colno"]) -> typing.Literal["colno"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_in_app", b"has_in_app"]) -> typing.Literal["in_app"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_lineno", b"has_lineno"]) -> typing.Literal["lineno"] | None: ... + +global___Stackframe = Stackframe + +@typing.final +class Stacktrace(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class StacktraceFrames(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ABS_PATH_FIELD_NUMBER: builtins.int + COLNO_FIELD_NUMBER: builtins.int + FILENAME_FIELD_NUMBER: builtins.int + FUNCTION_FIELD_NUMBER: builtins.int + IN_APP_FIELD_NUMBER: builtins.int + LINENO_FIELD_NUMBER: builtins.int + MODULE_FIELD_NUMBER: builtins.int + PACKAGE_FIELD_NUMBER: builtins.int + colno: builtins.int + in_app: builtins.bool + lineno: builtins.int + @property + def abs_path(self) -> google.protobuf.struct_pb2.Value: ... + @property + def filename(self) -> google.protobuf.struct_pb2.Value: ... + @property + def function(self) -> google.protobuf.struct_pb2.Value: ... + @property + def module(self) -> google.protobuf.struct_pb2.Value: ... + @property + def package(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + abs_path: google.protobuf.struct_pb2.Value | None = ..., + colno: builtins.int = ..., + filename: google.protobuf.struct_pb2.Value | None = ..., + function: google.protobuf.struct_pb2.Value | None = ..., + in_app: builtins.bool = ..., + lineno: builtins.int = ..., + module: google.protobuf.struct_pb2.Value | None = ..., + package: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["abs_path", b"abs_path", "colno", b"colno", "filename", b"filename", "function", b"function", "has_colno", b"has_colno", "has_in_app", b"has_in_app", "has_lineno", b"has_lineno", "in_app", b"in_app", "lineno", b"lineno", "module", b"module", "package", b"package"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["abs_path", b"abs_path", "colno", b"colno", "filename", b"filename", "function", b"function", "has_colno", b"has_colno", "has_in_app", b"has_in_app", "has_lineno", b"has_lineno", "in_app", b"in_app", "lineno", b"lineno", "module", b"module", "package", b"package"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_colno", b"has_colno"]) -> typing.Literal["colno"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_in_app", b"has_in_app"]) -> typing.Literal["in_app"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_lineno", b"has_lineno"]) -> typing.Literal["lineno"] | None: ... + + FRAMES_FIELD_NUMBER: builtins.int + @property + def frames(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Stacktrace.StacktraceFrames]: ... + def __init__( + self, + *, + frames: collections.abc.Iterable[global___Stacktrace.StacktraceFrames] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["frames", b"frames"]) -> None: ... + +global___Stacktrace = Stacktrace + +@typing.final +class Thread(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class ThreadValues(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ID_FIELD_NUMBER: builtins.int + MAIN_FIELD_NUMBER: builtins.int + main: builtins.bool + @property + def id(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + id: google.protobuf.struct_pb2.Value | None = ..., + main: builtins.bool = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_id", b"has_id", "has_main", b"has_main", "id", b"id", "main", b"main"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_id", b"has_id", "has_main", b"has_main", "id", b"id", "main", b"main"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_id", b"has_id"]) -> typing.Literal["id"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_main", b"has_main"]) -> typing.Literal["main"] | None: ... + + VALUES_FIELD_NUMBER: builtins.int + @property + def values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Thread.ThreadValues]: ... + def __init__( + self, + *, + values: collections.abc.Iterable[global___Thread.ThreadValues] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["values", b"values"]) -> None: ... + +global___Thread = Thread + +@typing.final +class Threadvalue(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ID_FIELD_NUMBER: builtins.int + MAIN_FIELD_NUMBER: builtins.int + main: builtins.bool + @property + def id(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + id: google.protobuf.struct_pb2.Value | None = ..., + main: builtins.bool = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_id", b"has_id", "has_main", b"has_main", "id", b"id", "main", b"main"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_id", b"has_id", "has_main", b"has_main", "id", b"id", "main", b"main"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_id", b"has_id"]) -> typing.Literal["id"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_main", b"has_main"]) -> typing.Literal["main"] | None: ... + +global___Threadvalue = Threadvalue + +@typing.final +class Tracecontext(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + SAMPLED_FIELD_NUMBER: builtins.int + SPAN_ID_FIELD_NUMBER: builtins.int + TRACE_ID_FIELD_NUMBER: builtins.int + sampled: builtins.bool + span_id: builtins.str + trace_id: builtins.str + def __init__( + self, + *, + sampled: builtins.bool = ..., + span_id: builtins.str = ..., + trace_id: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_sampled", b"has_sampled", "has_span_id", b"has_span_id", "has_trace_id", b"has_trace_id", "sampled", b"sampled", "span_id", b"span_id", "trace_id", b"trace_id"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_sampled", b"has_sampled", "has_span_id", b"has_span_id", "has_trace_id", b"has_trace_id", "sampled", b"sampled", "span_id", b"span_id", "trace_id", b"trace_id"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_sampled", b"has_sampled"]) -> typing.Literal["sampled"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_span_id", b"has_span_id"]) -> typing.Literal["span_id"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_trace_id", b"has_trace_id"]) -> typing.Literal["trace_id"] | None: ... + +global___Tracecontext = Tracecontext + +@typing.final +class User(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class GeoEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + @property + def value(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + key: builtins.str = ..., + value: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... + + EMAIL_FIELD_NUMBER: builtins.int + GEO_FIELD_NUMBER: builtins.int + ID_FIELD_NUMBER: builtins.int + IP_ADDRESS_FIELD_NUMBER: builtins.int + USERNAME_FIELD_NUMBER: builtins.int + ip_address: builtins.str + @property + def email(self) -> google.protobuf.struct_pb2.Value: ... + @property + def geo(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, google.protobuf.struct_pb2.Value]: ... + @property + def id(self) -> google.protobuf.struct_pb2.Value: ... + @property + def username(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + email: google.protobuf.struct_pb2.Value | None = ..., + geo: collections.abc.Mapping[builtins.str, google.protobuf.struct_pb2.Value] | None = ..., + id: google.protobuf.struct_pb2.Value | None = ..., + ip_address: builtins.str = ..., + username: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["email", b"email", "has_ip_address", b"has_ip_address", "id", b"id", "ip_address", b"ip_address", "username", b"username"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["email", b"email", "geo", b"geo", "has_ip_address", b"has_ip_address", "id", b"id", "ip_address", b"ip_address", "username", b"username"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["has_ip_address", b"has_ip_address"]) -> typing.Literal["ip_address"] | None: ... + +global___User = User diff --git a/py/sentry_protos/kafka/events/v1/events_pb2_grpc.py b/py/sentry_protos/kafka/events/v1/events_pb2_grpc.py new file mode 100644 index 00000000..d58e9901 --- /dev/null +++ b/py/sentry_protos/kafka/events/v1/events_pb2_grpc.py @@ -0,0 +1,29 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.65.4' +GRPC_VERSION = grpc.__version__ +EXPECTED_ERROR_RELEASE = '1.66.0' +SCHEDULED_RELEASE_DATE = 'August 6, 2024' +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + warnings.warn( + f'The grpc package installed is at version {GRPC_VERSION},' + + f' but the generated code in sentry_protos/kafka/events/v1/events_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + + f' This warning will become an error in {EXPECTED_ERROR_RELEASE},' + + f' scheduled for release on {SCHEDULED_RELEASE_DATE}.', + RuntimeWarning + ) diff --git a/py/sentry_protos/kafka/events/v1/events_pb2_grpc.pyi b/py/sentry_protos/kafka/events/v1/events_pb2_grpc.pyi new file mode 100644 index 00000000..a6a9cff9 --- /dev/null +++ b/py/sentry_protos/kafka/events/v1/events_pb2_grpc.pyi @@ -0,0 +1,17 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import grpc +import grpc.aio +import typing + +_T = typing.TypeVar("_T") + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg] + ... diff --git a/py/sentry_protos/options/__init__.py b/py/sentry_protos/options/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/py/sentry_protos/options/v1/__init__.py b/py/sentry_protos/options/v1/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/py/sentry_protos/options/v1/options_pb2.py b/py/sentry_protos/options/v1/options_pb2.py new file mode 100644 index 00000000..f6615b88 --- /dev/null +++ b/py/sentry_protos/options/v1/options_pb2.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: sentry_protos/options/v1/options.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 +from sentry_protos.options.v1 import topics_pb2 as sentry__protos_dot_options_dot_v1_dot_topics__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&sentry_protos/options/v1/options.proto\x12\x18sentry_protos.options.v1\x1a google/protobuf/descriptor.proto\x1a%sentry_protos/options/v1/topics.proto\"$\n\x05\x43onst\x12\x0b\n\x03int\x18\x01 \x01(\x03\x12\x0e\n\x06string\x18\x02 \x01(\t:Q\n\x05\x63onst\x12\x1d.google.protobuf.FieldOptions\x18\xf8\x46 \x01(\x0b\x32\x1f.sentry_protos.options.v1.Const\x88\x01\x01:`\n\x0ctopic_config\x12\x1f.google.protobuf.MessageOptions\x18\xf8\x46 \x01(\x0b\x32%.sentry_protos.options.v1.TopicConfig\x88\x01\x01\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sentry_protos.options.v1.options_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_CONST']._serialized_start=141 + _globals['_CONST']._serialized_end=177 +# @@protoc_insertion_point(module_scope) diff --git a/py/sentry_protos/options/v1/options_pb2.pyi b/py/sentry_protos/options/v1/options_pb2.pyi new file mode 100644 index 00000000..7cf1fc86 --- /dev/null +++ b/py/sentry_protos/options/v1/options_pb2.pyi @@ -0,0 +1,43 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.descriptor_pb2 +import google.protobuf.internal.extension_dict +import google.protobuf.message +import sentry_protos.options.v1.topics_pb2 +import typing + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class Const(google.protobuf.message.Message): + """Signals that a producer of this data intends a specific value as a potential discriminator. + At a protocol level, consts should not be enforced or validated, but they can be used to + make decisions. They are a lightweight coordination paradigm with little more guarantee + than best-effort. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + INT_FIELD_NUMBER: builtins.int + STRING_FIELD_NUMBER: builtins.int + int: builtins.int + string: builtins.str + def __init__( + self, + *, + int: builtins.int = ..., + string: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["int", b"int", "string", b"string"]) -> None: ... + +global___Const = Const + +CONST_FIELD_NUMBER: builtins.int +TOPIC_CONFIG_FIELD_NUMBER: builtins.int +const: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.FieldOptions, global___Const] +topic_config: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, sentry_protos.options.v1.topics_pb2.TopicConfig] diff --git a/py/sentry_protos/options/v1/options_pb2_grpc.py b/py/sentry_protos/options/v1/options_pb2_grpc.py new file mode 100644 index 00000000..1614f25c --- /dev/null +++ b/py/sentry_protos/options/v1/options_pb2_grpc.py @@ -0,0 +1,29 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.65.4' +GRPC_VERSION = grpc.__version__ +EXPECTED_ERROR_RELEASE = '1.66.0' +SCHEDULED_RELEASE_DATE = 'August 6, 2024' +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + warnings.warn( + f'The grpc package installed is at version {GRPC_VERSION},' + + f' but the generated code in sentry_protos/options/v1/options_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + + f' This warning will become an error in {EXPECTED_ERROR_RELEASE},' + + f' scheduled for release on {SCHEDULED_RELEASE_DATE}.', + RuntimeWarning + ) diff --git a/py/sentry_protos/options/v1/options_pb2_grpc.pyi b/py/sentry_protos/options/v1/options_pb2_grpc.pyi new file mode 100644 index 00000000..a6a9cff9 --- /dev/null +++ b/py/sentry_protos/options/v1/options_pb2_grpc.pyi @@ -0,0 +1,17 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import grpc +import grpc.aio +import typing + +_T = typing.TypeVar("_T") + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg] + ... diff --git a/py/sentry_protos/options/v1/topics_pb2.py b/py/sentry_protos/options/v1/topics_pb2.py new file mode 100644 index 00000000..ee195248 --- /dev/null +++ b/py/sentry_protos/options/v1/topics_pb2.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: sentry_protos/options/v1/topics.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%sentry_protos/options/v1/topics.proto\x12\x18sentry_protos.options.v1\"\xdc\x02\n\x0bTopicConfig\x12\r\n\x05topic\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x38\n\x08services\x18\x03 \x01(\x0b\x32&.sentry_protos.options.v1.ServicesData\x12\x10\n\x08pipeline\x18\x04 \x01(\t\x12]\n\x15topic_creation_config\x18\x05 \x03(\x0b\x32>.sentry_protos.options.v1.TopicConfig.TopicCreationConfigEntry\x12\"\n\x18\x65nforced_partition_count\x18\x06 \x01(\x04H\x00\x1a:\n\x18TopicCreationConfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x1e\n\x1chas_enforced_partition_count\"4\n\x0cServicesData\x12\x11\n\tconsumers\x18\x01 \x03(\t\x12\x11\n\tproducers\x18\x02 \x03(\tb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sentry_protos.options.v1.topics_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_TOPICCONFIG_TOPICCREATIONCONFIGENTRY']._loaded_options = None + _globals['_TOPICCONFIG_TOPICCREATIONCONFIGENTRY']._serialized_options = b'8\001' + _globals['_TOPICCONFIG']._serialized_start=68 + _globals['_TOPICCONFIG']._serialized_end=416 + _globals['_TOPICCONFIG_TOPICCREATIONCONFIGENTRY']._serialized_start=326 + _globals['_TOPICCONFIG_TOPICCREATIONCONFIGENTRY']._serialized_end=384 + _globals['_SERVICESDATA']._serialized_start=418 + _globals['_SERVICESDATA']._serialized_end=470 +# @@protoc_insertion_point(module_scope) diff --git a/py/sentry_protos/options/v1/topics_pb2.pyi b/py/sentry_protos/options/v1/topics_pb2.pyi new file mode 100644 index 00000000..0c05cfe1 --- /dev/null +++ b/py/sentry_protos/options/v1/topics_pb2.pyi @@ -0,0 +1,87 @@ +""" +@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 typing + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class TopicConfig(google.protobuf.message.Message): + """Used to signal that a schema is associated with the output of a kafka topic, including + some metadata about that. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class TopicCreationConfigEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str + def __init__( + self, + *, + key: builtins.str = ..., + value: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... + + TOPIC_FIELD_NUMBER: builtins.int + DESCRIPTION_FIELD_NUMBER: builtins.int + SERVICES_FIELD_NUMBER: builtins.int + PIPELINE_FIELD_NUMBER: builtins.int + TOPIC_CREATION_CONFIG_FIELD_NUMBER: builtins.int + ENFORCED_PARTITION_COUNT_FIELD_NUMBER: builtins.int + topic: builtins.str + description: builtins.str + pipeline: builtins.str + enforced_partition_count: builtins.int + @property + def services(self) -> global___ServicesData: ... + @property + def topic_creation_config(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... + def __init__( + self, + *, + topic: builtins.str = ..., + description: builtins.str = ..., + services: global___ServicesData | None = ..., + pipeline: builtins.str = ..., + topic_creation_config: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + enforced_partition_count: builtins.int = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["enforced_partition_count", b"enforced_partition_count", "has_enforced_partition_count", b"has_enforced_partition_count", "services", b"services"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["description", b"description", "enforced_partition_count", b"enforced_partition_count", "has_enforced_partition_count", b"has_enforced_partition_count", "pipeline", b"pipeline", "services", b"services", "topic", b"topic", "topic_creation_config", b"topic_creation_config"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["has_enforced_partition_count", b"has_enforced_partition_count"]) -> typing.Literal["enforced_partition_count"] | None: ... + +global___TopicConfig = TopicConfig + +@typing.final +class ServicesData(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CONSUMERS_FIELD_NUMBER: builtins.int + PRODUCERS_FIELD_NUMBER: builtins.int + @property + def consumers(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def producers(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + def __init__( + self, + *, + consumers: collections.abc.Iterable[builtins.str] | None = ..., + producers: collections.abc.Iterable[builtins.str] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["consumers", b"consumers", "producers", b"producers"]) -> None: ... + +global___ServicesData = ServicesData diff --git a/py/sentry_protos/options/v1/topics_pb2_grpc.py b/py/sentry_protos/options/v1/topics_pb2_grpc.py new file mode 100644 index 00000000..724e5195 --- /dev/null +++ b/py/sentry_protos/options/v1/topics_pb2_grpc.py @@ -0,0 +1,29 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.65.4' +GRPC_VERSION = grpc.__version__ +EXPECTED_ERROR_RELEASE = '1.66.0' +SCHEDULED_RELEASE_DATE = 'August 6, 2024' +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + warnings.warn( + f'The grpc package installed is at version {GRPC_VERSION},' + + f' but the generated code in sentry_protos/options/v1/topics_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + + f' This warning will become an error in {EXPECTED_ERROR_RELEASE},' + + f' scheduled for release on {SCHEDULED_RELEASE_DATE}.', + RuntimeWarning + ) diff --git a/py/sentry_protos/options/v1/topics_pb2_grpc.pyi b/py/sentry_protos/options/v1/topics_pb2_grpc.pyi new file mode 100644 index 00000000..a6a9cff9 --- /dev/null +++ b/py/sentry_protos/options/v1/topics_pb2_grpc.pyi @@ -0,0 +1,17 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import grpc +import grpc.aio +import typing + +_T = typing.TypeVar("_T") + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg] + ... diff --git a/py/sentry_protos/py.typed b/py/sentry_protos/py.typed new file mode 100644 index 00000000..e69de29b diff --git a/py/sentry_protos/relay/__init__.py b/py/sentry_protos/relay/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/py/sentry_protos/relay/v1/__init__.py b/py/sentry_protos/relay/v1/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/py/sentry_protos/relay/v1/event_pb2.py b/py/sentry_protos/relay/v1/event_pb2.py new file mode 100644 index 00000000..488e454d --- /dev/null +++ b/py/sentry_protos/relay/v1/event_pb2.py @@ -0,0 +1,299 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: sentry_protos/relay/v1/event.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"sentry_protos/relay/v1/event.proto\x12\x16sentry_protos.relay.v1\x1a\x1cgoogle/protobuf/struct.proto\"\xaf\x66\n\x05\x45vent\x12\x45\n\x0b\x62readcrumbs\x18\x01 \x01(\x0b\x32..sentry_protos.relay.v1.Event.EventBreadcrumbsH\x00\x12=\n\x08\x63ontexts\x18\x02 \x03(\x0b\x32+.sentry_protos.relay.v1.Event.ContextsEntry\x12\x11\n\x07\x63ulprit\x18\x03 \x01(\tH\x01\x12\x42\n\ndebug_meta\x18\x04 \x01(\x0b\x32,.sentry_protos.relay.v1.Event.EventDebugMetaH\x02\x12\x0e\n\x04\x64ist\x18\x05 \x01(\tH\x03\x12\x15\n\x0b\x65nvironment\x18\x06 \x01(\tH\x04\x12\x39\n\x06\x65rrors\x18\x07 \x03(\x0b\x32).sentry_protos.relay.v1.Event.EventErrors\x12\x12\n\x08\x65vent_id\x18\x08 \x01(\tH\x05\x12\x41\n\texception\x18\t \x01(\x0b\x32,.sentry_protos.relay.v1.Event.EventExceptionH\x06\x12\'\n\x05\x65xtra\x18\n \x01(\x0b\x32\x16.google.protobuf.ValueH\x07\x12\x13\n\x0b\x66ingerprint\x18\x0b \x03(\t\x12\x0f\n\x05level\x18\x0c \x01(\tH\x08\x12?\n\x08logentry\x18\r \x01(\x0b\x32+.sentry_protos.relay.v1.Event.EventLogentryH\t\x12\x10\n\x06logger\x18\x0e \x01(\tH\n\x12;\n\x07modules\x18\x0f \x03(\x0b\x32*.sentry_protos.relay.v1.Event.ModulesEntry\x12\x12\n\x08platform\x18\x10 \x01(\tH\x0b\x12*\n\x08received\x18\x11 \x01(\x0b\x32\x16.google.protobuf.ValueH\x0c\x12\x11\n\x07release\x18\x12 \x01(\tH\r\x12=\n\x07request\x18\x13 \x01(\x0b\x32*.sentry_protos.relay.v1.Event.EventRequestH\x0e\x12\x35\n\x03sdk\x18\x14 \x01(\x0b\x32&.sentry_protos.relay.v1.Event.EventSdkH\x0f\x12\x15\n\x0bserver_name\x18\x15 \x01(\tH\x10\x12\x43\n\nstacktrace\x18\x16 \x01(\x0b\x32-.sentry_protos.relay.v1.Event.EventStacktraceH\x11\x12&\n\x04tags\x18\x17 \x01(\x0b\x32\x16.google.protobuf.ValueH\x12\x12=\n\x07threads\x18\x18 \x01(\x0b\x32*.sentry_protos.relay.v1.Event.EventThreadsH\x13\x12\x14\n\ntime_spent\x18\x19 \x01(\x04H\x14\x12+\n\ttimestamp\x18\x1a \x01(\x0b\x32\x16.google.protobuf.ValueH\x15\x12\x15\n\x0btransaction\x18\x1b \x01(\tH\x16\x12N\n\x10transaction_info\x18\x1c \x01(\x0b\x32\x32.sentry_protos.relay.v1.Event.EventTransactionInfoH\x17\x12\x0e\n\x04type\x18\x1d \x01(\tH\x18\x12\x37\n\x04user\x18\x1e \x01(\x0b\x32\'.sentry_protos.relay.v1.Event.EventUserH\x19\x12\x11\n\x07version\x18\x1f \x01(\tH\x1a\x1a\x9a\x03\n\x10\x45ventBreadcrumbs\x12U\n\x06values\x18\x01 \x03(\x0b\x32\x45.sentry_protos.relay.v1.Event.EventBreadcrumbs.EventBreadcrumbsValues\x1a\xae\x02\n\x16\x45ventBreadcrumbsValues\x12\x12\n\x08\x63\x61tegory\x18\x01 \x01(\tH\x00\x12&\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueH\x01\x12\x12\n\x08\x65vent_id\x18\x03 \x01(\tH\x02\x12\x0f\n\x05level\x18\x04 \x01(\tH\x03\x12\x11\n\x07message\x18\x05 \x01(\tH\x04\x12+\n\ttimestamp\x18\x06 \x01(\x0b\x32\x16.google.protobuf.ValueH\x05\x12\x0e\n\x04type\x18\x07 \x01(\tH\x06\x42\x0e\n\x0chas_categoryB\n\n\x08has_dataB\x0e\n\x0chas_event_idB\x0b\n\thas_levelB\r\n\x0bhas_messageB\x0f\n\rhas_timestampB\n\n\x08has_type\x1a\xf2\x02\n\x0e\x45ventDebugMeta\x12&\n\x06images\x18\x01 \x03(\x0b\x32\x16.google.protobuf.Value\x12V\n\x08sdk_info\x18\x02 \x01(\x0b\x32\x42.sentry_protos.relay.v1.Event.EventDebugMeta.EventDebugMetaSdkInfoH\x00\x1a\xcf\x01\n\x15\x45ventDebugMetaSdkInfo\x12\x12\n\x08sdk_name\x18\x01 \x01(\tH\x00\x12\x17\n\rversion_major\x18\x02 \x01(\x04H\x01\x12\x17\n\rversion_minor\x18\x03 \x01(\x04H\x02\x12\x1c\n\x12version_patchlevel\x18\x04 \x01(\x04H\x03\x42\x0e\n\x0chas_sdk_nameB\x13\n\x11has_version_majorB\x13\n\x11has_version_minorB\x18\n\x16has_version_patchlevelB\x0e\n\x0chas_sdk_info\x1a^\n\x0b\x45ventErrors\x12\x0e\n\x04name\x18\x01 \x01(\tH\x00\x12\x0c\n\x04type\x18\x02 \x01(\t\x12%\n\x05value\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueB\n\n\x08has_name\x1a\xf4!\n\x0e\x45ventException\x12Q\n\x06values\x18\x01 \x03(\x0b\x32\x41.sentry_protos.relay.v1.Event.EventException.EventExceptionValues\x1a\x8e!\n\x14\x45ventExceptionValues\x12t\n\tmechanism\x18\x01 \x01(\x0b\x32_.sentry_protos.relay.v1.Event.EventException.EventExceptionValues.EventExceptionValuesMechanismH\x00\x12\x10\n\x06module\x18\x02 \x01(\tH\x01\x12v\n\nstacktrace\x18\x03 \x01(\x0b\x32`.sentry_protos.relay.v1.Event.EventException.EventExceptionValues.EventExceptionValuesStacktraceH\x02\x12+\n\tthread_id\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueH\x03\x12\x0e\n\x04type\x18\x05 \x01(\tH\x04\x12\x0f\n\x05value\x18\x06 \x01(\tH\x05\x1a\xe2\x0f\n\x1d\x45ventExceptionValuesMechanism\x12&\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x16.google.protobuf.ValueH\x00\x12\x15\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x01\x12\x16\n\x0c\x65xception_id\x18\x03 \x01(\x04H\x02\x12\x11\n\x07handled\x18\x04 \x01(\x08H\x03\x12\x13\n\thelp_link\x18\x05 \x01(\tH\x04\x12\x1c\n\x12is_exception_group\x18\x06 \x01(\x08H\x05\x12\x92\x01\n\x04meta\x18\x07 \x01(\x0b\x32\x81\x01.sentry_protos.relay.v1.Event.EventException.EventExceptionValues.EventExceptionValuesMechanism.EventExceptionValuesMechanismMetaH\x06\x12\x13\n\tparent_id\x18\x08 \x01(\x04H\x07\x12\x10\n\x06source\x18\t \x01(\tH\x08\x12\x13\n\tsynthetic\x18\n \x01(\x08H\t\x12\x0c\n\x04type\x18\x0b \x01(\t\x1a\x9b\x0b\n!EventExceptionValuesMechanismMeta\x12\xba\x01\n\x05\x65rrno\x18\x01 \x01(\x0b\x32\xa8\x01.sentry_protos.relay.v1.Event.EventException.EventExceptionValues.EventExceptionValuesMechanism.EventExceptionValuesMechanismMeta.EventExceptionValuesMechanismMetaErrnoH\x00\x12\xcb\x01\n\x0emach_exception\x18\x02 \x01(\x0b\x32\xb0\x01.sentry_protos.relay.v1.Event.EventException.EventExceptionValues.EventExceptionValuesMechanism.EventExceptionValuesMechanismMeta.EventExceptionValuesMechanismMetaMachExceptionH\x01\x12\xbf\x01\n\x08ns_error\x18\x03 \x01(\x0b\x32\xaa\x01.sentry_protos.relay.v1.Event.EventException.EventExceptionValues.EventExceptionValuesMechanism.EventExceptionValuesMechanismMeta.EventExceptionValuesMechanismMetaNsErrorH\x02\x12\xbc\x01\n\x06signal\x18\x04 \x01(\x0b\x32\xa9\x01.sentry_protos.relay.v1.Event.EventException.EventExceptionValues.EventExceptionValuesMechanism.EventExceptionValuesMechanismMeta.EventExceptionValuesMechanismMetaSignalH\x03\x1a\x64\n&EventExceptionValuesMechanismMetaErrno\x12\x0e\n\x04name\x18\x01 \x01(\tH\x00\x12\x10\n\x06number\x18\x02 \x01(\x03H\x01\x42\n\n\x08has_nameB\x0c\n\nhas_number\x1a\xb0\x01\n.EventExceptionValuesMechanismMetaMachException\x12\x0e\n\x04\x63ode\x18\x01 \x01(\x04H\x00\x12\x13\n\texception\x18\x02 \x01(\x03H\x01\x12\x0e\n\x04name\x18\x03 \x01(\tH\x02\x12\x11\n\x07subcode\x18\x04 \x01(\x04H\x03\x42\n\n\x08has_codeB\x0f\n\rhas_exceptionB\n\n\x08has_nameB\r\n\x0bhas_subcode\x1a\x66\n(EventExceptionValuesMechanismMetaNsError\x12\x0e\n\x04\x63ode\x18\x01 \x01(\x03H\x00\x12\x10\n\x06\x64omain\x18\x02 \x01(\tH\x01\x42\n\n\x08has_codeB\x0c\n\nhas_domain\x1a\xa7\x01\n\'EventExceptionValuesMechanismMetaSignal\x12\x0e\n\x04\x63ode\x18\x01 \x01(\x03H\x00\x12\x13\n\tcode_name\x18\x02 \x01(\tH\x01\x12\x0e\n\x04name\x18\x03 \x01(\tH\x02\x12\x10\n\x06number\x18\x04 \x01(\x03H\x03\x42\n\n\x08has_codeB\x0f\n\rhas_code_nameB\n\n\x08has_nameB\x0c\n\nhas_numberB\x0b\n\thas_errnoB\x14\n\x12has_mach_exceptionB\x0e\n\x0chas_ns_errorB\x0c\n\nhas_signalB\n\n\x08has_dataB\x11\n\x0fhas_descriptionB\x12\n\x10has_exception_idB\r\n\x0bhas_handledB\x0f\n\rhas_help_linkB\x18\n\x16has_is_exception_groupB\n\n\x08has_metaB\x0f\n\rhas_parent_idB\x0c\n\nhas_sourceB\x0f\n\rhas_synthetic\x1a\xe7\r\n\x1e\x45ventExceptionValuesStacktrace\x12\x96\x01\n\x06\x66rames\x18\x01 \x03(\x0b\x32\x85\x01.sentry_protos.relay.v1.Event.EventException.EventExceptionValues.EventExceptionValuesStacktrace.EventExceptionValuesStacktraceFrames\x12%\n\x1binstruction_addr_adjustment\x18\x02 \x01(\tH\x00\x12\x0e\n\x04lang\x18\x03 \x01(\tH\x01\x12\x82\x01\n\tregisters\x18\x04 \x03(\x0b\x32o.sentry_protos.relay.v1.Event.EventException.EventExceptionValues.EventExceptionValuesStacktrace.RegistersEntry\x12\x12\n\x08snapshot\x18\x05 \x01(\x08H\x02\x1a\xea\t\n$EventExceptionValuesStacktraceFrames\x12\x12\n\x08\x61\x62s_path\x18\x01 \x01(\tH\x00\x12\x13\n\taddr_mode\x18\x02 \x01(\tH\x01\x12\x0f\n\x05\x63olno\x18\x03 \x01(\x04H\x02\x12\x16\n\x0c\x63ontext_line\x18\x04 \x01(\tH\x03\x12\x12\n\x08\x66ilename\x18\x05 \x01(\tH\x04\x12\x12\n\x08\x66unction\x18\x06 \x01(\tH\x05\x12\x15\n\x0b\x66unction_id\x18\x07 \x01(\tH\x06\x12\x14\n\nimage_addr\x18\x08 \x01(\tH\x07\x12\x10\n\x06in_app\x18\t \x01(\x08H\x08\x12\x1a\n\x10instruction_addr\x18\n \x01(\tH\t\x12\x10\n\x06lineno\x18\x0b \x01(\x04H\n\x12\xbf\x01\n\x04lock\x18\x0c \x01(\x0b\x32\xae\x01.sentry_protos.relay.v1.Event.EventException.EventExceptionValues.EventExceptionValuesStacktrace.EventExceptionValuesStacktraceFrames.EventExceptionValuesStacktraceFramesLockH\x0b\x12\x10\n\x06module\x18\r \x01(\tH\x0c\x12\x11\n\x07package\x18\x0e \x01(\tH\r\x12\x12\n\x08platform\x18\x0f \x01(\tH\x0e\x12\x14\n\x0cpost_context\x18\x10 \x03(\t\x12\x13\n\x0bpre_context\x18\x11 \x03(\t\x12\x16\n\x0craw_function\x18\x12 \x01(\tH\x0f\x12\x15\n\x0bstack_start\x18\x13 \x01(\x08H\x10\x12\x10\n\x06symbol\x18\x14 \x01(\tH\x11\x12\x15\n\x0bsymbol_addr\x18\x15 \x01(\tH\x12\x12&\n\x04vars\x18\x16 \x01(\x0b\x32\x16.google.protobuf.ValueH\x13\x1a\xec\x01\n(EventExceptionValuesStacktraceFramesLock\x12\x11\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x12\x14\n\nclass_name\x18\x02 \x01(\tH\x01\x12\x16\n\x0cpackage_name\x18\x03 \x01(\tH\x02\x12+\n\tthread_id\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueH\x03\x12\x0c\n\x04type\x18\x05 \x01(\tB\r\n\x0bhas_addressB\x10\n\x0ehas_class_nameB\x12\n\x10has_package_nameB\x0f\n\rhas_thread_idB\x0e\n\x0chas_abs_pathB\x0f\n\rhas_addr_modeB\x0b\n\thas_colnoB\x12\n\x10has_context_lineB\x0e\n\x0chas_filenameB\x0e\n\x0chas_functionB\x11\n\x0fhas_function_idB\x10\n\x0ehas_image_addrB\x0c\n\nhas_in_appB\x16\n\x14has_instruction_addrB\x0c\n\nhas_linenoB\n\n\x08has_lockB\x0c\n\nhas_moduleB\r\n\x0bhas_packageB\x0e\n\x0chas_platformB\x12\n\x10has_raw_functionB\x11\n\x0fhas_stack_startB\x0c\n\nhas_symbolB\x11\n\x0fhas_symbol_addrB\n\n\x08has_vars\x1a\x30\n\x0eRegistersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42!\n\x1fhas_instruction_addr_adjustmentB\n\n\x08has_langB\x0e\n\x0chas_snapshotB\x0f\n\rhas_mechanismB\x0c\n\nhas_moduleB\x10\n\x0ehas_stacktraceB\x0f\n\rhas_thread_idB\n\n\x08has_typeB\x0b\n\thas_value\x1a\x7f\n\rEventLogentry\x12\x13\n\tformatted\x18\x01 \x01(\tH\x00\x12\x11\n\x07message\x18\x02 \x01(\tH\x01\x12&\n\x06params\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueB\x0f\n\rhas_formattedB\r\n\x0bhas_message\x1a\xac\x04\n\x0c\x45ventRequest\x12\x14\n\napi_target\x18\x01 \x01(\tH\x00\x12\x13\n\tbody_size\x18\x02 \x01(\x04H\x01\x12)\n\x07\x63ookies\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueH\x02\x12$\n\x04\x64\x61ta\x18\x04 \x01(\x0b\x32\x16.google.protobuf.Value\x12%\n\x03\x65nv\x18\x05 \x01(\x0b\x32\x16.google.protobuf.ValueH\x03\x12\x12\n\x08\x66ragment\x18\x06 \x01(\tH\x04\x12)\n\x07headers\x18\x07 \x01(\x0b\x32\x16.google.protobuf.ValueH\x05\x12\x1f\n\x15inferred_content_type\x18\x08 \x01(\tH\x06\x12\x10\n\x06method\x18\t \x01(\tH\x07\x12\x12\n\x08protocol\x18\n \x01(\tH\x08\x12.\n\x0cquery_string\x18\x0b \x01(\x0b\x32\x16.google.protobuf.ValueH\t\x12\r\n\x03url\x18\x0c \x01(\tH\nB\x10\n\x0ehas_api_targetB\x0f\n\rhas_body_sizeB\r\n\x0bhas_cookiesB\t\n\x07has_envB\x0e\n\x0chas_fragmentB\r\n\x0bhas_headersB\x1b\n\x19has_inferred_content_typeB\x0c\n\nhas_methodB\x0e\n\x0chas_protocolB\x12\n\x10has_query_stringB\t\n\x07has_url\x1a\xdc\x01\n\x08\x45ventSdk\x12\x14\n\x0cintegrations\x18\x01 \x03(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12I\n\x08packages\x18\x03 \x03(\x0b\x32\x37.sentry_protos.relay.v1.Event.EventSdk.EventSdkPackages\x12\x0f\n\x07version\x18\x04 \x01(\t\x1aP\n\x10\x45ventSdkPackages\x12\x0e\n\x04name\x18\x01 \x01(\tH\x00\x12\x11\n\x07version\x18\x02 \x01(\tH\x01\x42\n\n\x08has_nameB\r\n\x0bhas_version\x1a\xef\x0b\n\x0f\x45ventStacktrace\x12S\n\x06\x66rames\x18\x01 \x03(\x0b\x32\x43.sentry_protos.relay.v1.Event.EventStacktrace.EventStacktraceFrames\x12%\n\x1binstruction_addr_adjustment\x18\x02 \x01(\tH\x00\x12\x0e\n\x04lang\x18\x03 \x01(\tH\x01\x12O\n\tregisters\x18\x04 \x03(\x0b\x32<.sentry_protos.relay.v1.Event.EventStacktrace.RegistersEntry\x12\x12\n\x08snapshot\x18\x05 \x01(\x08H\x02\x1a\xf9\x08\n\x15\x45ventStacktraceFrames\x12\x12\n\x08\x61\x62s_path\x18\x01 \x01(\tH\x00\x12\x13\n\taddr_mode\x18\x02 \x01(\tH\x01\x12\x0f\n\x05\x63olno\x18\x03 \x01(\x04H\x02\x12\x16\n\x0c\x63ontext_line\x18\x04 \x01(\tH\x03\x12\x12\n\x08\x66ilename\x18\x05 \x01(\tH\x04\x12\x12\n\x08\x66unction\x18\x06 \x01(\tH\x05\x12\x15\n\x0b\x66unction_id\x18\x07 \x01(\tH\x06\x12\x14\n\nimage_addr\x18\x08 \x01(\tH\x07\x12\x10\n\x06in_app\x18\t \x01(\x08H\x08\x12\x1a\n\x10instruction_addr\x18\n \x01(\tH\t\x12\x10\n\x06lineno\x18\x0b \x01(\x04H\n\x12m\n\x04lock\x18\x0c \x01(\x0b\x32].sentry_protos.relay.v1.Event.EventStacktrace.EventStacktraceFrames.EventStacktraceFramesLockH\x0b\x12\x10\n\x06module\x18\r \x01(\tH\x0c\x12\x11\n\x07package\x18\x0e \x01(\tH\r\x12\x12\n\x08platform\x18\x0f \x01(\tH\x0e\x12\x14\n\x0cpost_context\x18\x10 \x03(\t\x12\x13\n\x0bpre_context\x18\x11 \x03(\t\x12\x16\n\x0craw_function\x18\x12 \x01(\tH\x0f\x12\x15\n\x0bstack_start\x18\x13 \x01(\x08H\x10\x12\x10\n\x06symbol\x18\x14 \x01(\tH\x11\x12\x15\n\x0bsymbol_addr\x18\x15 \x01(\tH\x12\x12&\n\x04vars\x18\x16 \x01(\x0b\x32\x16.google.protobuf.ValueH\x13\x1a\xdd\x01\n\x19\x45ventStacktraceFramesLock\x12\x11\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x12\x14\n\nclass_name\x18\x02 \x01(\tH\x01\x12\x16\n\x0cpackage_name\x18\x03 \x01(\tH\x02\x12+\n\tthread_id\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueH\x03\x12\x0c\n\x04type\x18\x05 \x01(\tB\r\n\x0bhas_addressB\x10\n\x0ehas_class_nameB\x12\n\x10has_package_nameB\x0f\n\rhas_thread_idB\x0e\n\x0chas_abs_pathB\x0f\n\rhas_addr_modeB\x0b\n\thas_colnoB\x12\n\x10has_context_lineB\x0e\n\x0chas_filenameB\x0e\n\x0chas_functionB\x11\n\x0fhas_function_idB\x10\n\x0ehas_image_addrB\x0c\n\nhas_in_appB\x16\n\x14has_instruction_addrB\x0c\n\nhas_linenoB\n\n\x08has_lockB\x0c\n\nhas_moduleB\r\n\x0bhas_packageB\x0e\n\x0chas_platformB\x12\n\x10has_raw_functionB\x11\n\x0fhas_stack_startB\x0c\n\nhas_symbolB\x11\n\x0fhas_symbol_addrB\n\n\x08has_vars\x1a\x30\n\x0eRegistersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42!\n\x1fhas_instruction_addr_adjustmentB\n\n\x08has_langB\x0e\n\x0chas_snapshot\x1a\xde\x14\n\x0c\x45ventThreads\x12M\n\x06values\x18\x01 \x03(\x0b\x32=.sentry_protos.relay.v1.Event.EventThreads.EventThreadsValues\x1a\xfe\x13\n\x12\x45ventThreadsValues\x12\x11\n\x07\x63rashed\x18\x01 \x01(\x08H\x00\x12\x11\n\x07\x63urrent\x18\x02 \x01(\x08H\x01\x12`\n\nheld_locks\x18\x03 \x03(\x0b\x32L.sentry_protos.relay.v1.Event.EventThreads.EventThreadsValues.HeldLocksEntry\x12$\n\x02id\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueH\x02\x12\x0e\n\x04main\x18\x05 \x01(\x08H\x03\x12\x0e\n\x04name\x18\x06 \x01(\tH\x04\x12p\n\nstacktrace\x18\x07 \x01(\x0b\x32Z.sentry_protos.relay.v1.Event.EventThreads.EventThreadsValues.EventThreadsValuesStacktraceH\x05\x12\x0f\n\x05state\x18\x08 \x01(\tH\x06\x1a\xdf\x01\n\x1b\x45ventThreadsValuesHeldLocks\x12\x11\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x12\x14\n\nclass_name\x18\x02 \x01(\tH\x01\x12\x16\n\x0cpackage_name\x18\x03 \x01(\tH\x02\x12+\n\tthread_id\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueH\x03\x12\x0c\n\x04type\x18\x05 \x01(\tB\r\n\x0bhas_addressB\x10\n\x0ehas_class_nameB\x12\n\x10has_package_nameB\x0f\n\rhas_thread_id\x1a\xc7\r\n\x1c\x45ventThreadsValuesStacktrace\x12\x8d\x01\n\x06\x66rames\x18\x01 \x03(\x0b\x32}.sentry_protos.relay.v1.Event.EventThreads.EventThreadsValues.EventThreadsValuesStacktrace.EventThreadsValuesStacktraceFrames\x12%\n\x1binstruction_addr_adjustment\x18\x02 \x01(\tH\x00\x12\x0e\n\x04lang\x18\x03 \x01(\tH\x01\x12|\n\tregisters\x18\x04 \x03(\x0b\x32i.sentry_protos.relay.v1.Event.EventThreads.EventThreadsValues.EventThreadsValuesStacktrace.RegistersEntry\x12\x12\n\x08snapshot\x18\x05 \x01(\x08H\x02\x1a\xdc\t\n\"EventThreadsValuesStacktraceFrames\x12\x12\n\x08\x61\x62s_path\x18\x01 \x01(\tH\x00\x12\x13\n\taddr_mode\x18\x02 \x01(\tH\x01\x12\x0f\n\x05\x63olno\x18\x03 \x01(\x04H\x02\x12\x16\n\x0c\x63ontext_line\x18\x04 \x01(\tH\x03\x12\x12\n\x08\x66ilename\x18\x05 \x01(\tH\x04\x12\x12\n\x08\x66unction\x18\x06 \x01(\tH\x05\x12\x15\n\x0b\x66unction_id\x18\x07 \x01(\tH\x06\x12\x14\n\nimage_addr\x18\x08 \x01(\tH\x07\x12\x10\n\x06in_app\x18\t \x01(\x08H\x08\x12\x1a\n\x10instruction_addr\x18\n \x01(\tH\t\x12\x10\n\x06lineno\x18\x0b \x01(\x04H\n\x12\xb5\x01\n\x04lock\x18\x0c \x01(\x0b\x32\xa4\x01.sentry_protos.relay.v1.Event.EventThreads.EventThreadsValues.EventThreadsValuesStacktrace.EventThreadsValuesStacktraceFrames.EventThreadsValuesStacktraceFramesLockH\x0b\x12\x10\n\x06module\x18\r \x01(\tH\x0c\x12\x11\n\x07package\x18\x0e \x01(\tH\r\x12\x12\n\x08platform\x18\x0f \x01(\tH\x0e\x12\x14\n\x0cpost_context\x18\x10 \x03(\t\x12\x13\n\x0bpre_context\x18\x11 \x03(\t\x12\x16\n\x0craw_function\x18\x12 \x01(\tH\x0f\x12\x15\n\x0bstack_start\x18\x13 \x01(\x08H\x10\x12\x10\n\x06symbol\x18\x14 \x01(\tH\x11\x12\x15\n\x0bsymbol_addr\x18\x15 \x01(\tH\x12\x12&\n\x04vars\x18\x16 \x01(\x0b\x32\x16.google.protobuf.ValueH\x13\x1a\xea\x01\n&EventThreadsValuesStacktraceFramesLock\x12\x11\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x12\x14\n\nclass_name\x18\x02 \x01(\tH\x01\x12\x16\n\x0cpackage_name\x18\x03 \x01(\tH\x02\x12+\n\tthread_id\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueH\x03\x12\x0c\n\x04type\x18\x05 \x01(\tB\r\n\x0bhas_addressB\x10\n\x0ehas_class_nameB\x12\n\x10has_package_nameB\x0f\n\rhas_thread_idB\x0e\n\x0chas_abs_pathB\x0f\n\rhas_addr_modeB\x0b\n\thas_colnoB\x12\n\x10has_context_lineB\x0e\n\x0chas_filenameB\x0e\n\x0chas_functionB\x11\n\x0fhas_function_idB\x10\n\x0ehas_image_addrB\x0c\n\nhas_in_appB\x16\n\x14has_instruction_addrB\x0c\n\nhas_linenoB\n\n\x08has_lockB\x0c\n\nhas_moduleB\r\n\x0bhas_packageB\x0e\n\x0chas_platformB\x12\n\x10has_raw_functionB\x11\n\x0fhas_stack_startB\x0c\n\nhas_symbolB\x11\n\x0fhas_symbol_addrB\n\n\x08has_vars\x1a\x30\n\x0eRegistersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42!\n\x1fhas_instruction_addr_adjustmentB\n\n\x08has_langB\x0e\n\x0chas_snapshot\x1a\x8b\x01\n\x0eHeldLocksEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12h\n\x05value\x18\x02 \x01(\x0b\x32Y.sentry_protos.relay.v1.Event.EventThreads.EventThreadsValues.EventThreadsValuesHeldLocks:\x02\x38\x01\x42\r\n\x0bhas_crashedB\r\n\x0bhas_currentB\x08\n\x06has_idB\n\n\x08has_mainB\n\n\x08has_nameB\x10\n\x0ehas_stacktraceB\x0b\n\thas_state\x1a\x91\x03\n\x14\x45ventTransactionInfo\x12_\n\x07\x63hanges\x18\x01 \x03(\x0b\x32N.sentry_protos.relay.v1.Event.EventTransactionInfo.EventTransactionInfoChanges\x12\x12\n\x08original\x18\x02 \x01(\tH\x00\x12\x16\n\x0cpropagations\x18\x03 \x01(\x04H\x01\x12\x10\n\x06source\x18\x04 \x01(\tH\x02\x1a\xa7\x01\n\x1b\x45ventTransactionInfoChanges\x12\x16\n\x0cpropagations\x18\x01 \x01(\x04H\x00\x12\x10\n\x06source\x18\x02 \x01(\tH\x01\x12+\n\ttimestamp\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueH\x02\x42\x12\n\x10has_propagationsB\x0c\n\nhas_sourceB\x0f\n\rhas_timestampB\x0e\n\x0chas_originalB\x12\n\x10has_propagationsB\x0c\n\nhas_source\x1a\x9c\x04\n\tEventUser\x12&\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x16.google.protobuf.ValueH\x00\x12\x0f\n\x05\x65mail\x18\x02 \x01(\tH\x01\x12\x43\n\x03geo\x18\x03 \x01(\x0b\x32\x34.sentry_protos.relay.v1.Event.EventUser.EventUserGeoH\x02\x12\x0c\n\x02id\x18\x04 \x01(\tH\x03\x12\x14\n\nip_address\x18\x05 \x01(\tH\x04\x12\x0e\n\x04name\x18\x06 \x01(\tH\x05\x12\x11\n\x07segment\x18\x07 \x01(\tH\x06\x12\x15\n\x0bsentry_user\x18\x08 \x01(\tH\x07\x12\x12\n\x08username\x18\t \x01(\tH\x08\x1a\xa0\x01\n\x0c\x45ventUserGeo\x12\x0e\n\x04\x63ity\x18\x01 \x01(\tH\x00\x12\x16\n\x0c\x63ountry_code\x18\x02 \x01(\tH\x01\x12\x10\n\x06region\x18\x03 \x01(\tH\x02\x12\x15\n\x0bsubdivision\x18\x04 \x01(\tH\x03\x42\n\n\x08has_cityB\x12\n\x10has_country_codeB\x0c\n\nhas_regionB\x11\n\x0fhas_subdivisionB\n\n\x08has_dataB\x0b\n\thas_emailB\t\n\x07has_geoB\x08\n\x06has_idB\x10\n\x0ehas_ip_addressB\n\n\x08has_nameB\r\n\x0bhas_segmentB\x11\n\x0fhas_sentry_userB\x0e\n\x0chas_username\x1aG\n\rContextsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.Value:\x02\x38\x01\x1a.\n\x0cModulesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x11\n\x0fhas_breadcrumbsB\r\n\x0bhas_culpritB\x10\n\x0ehas_debug_metaB\n\n\x08has_distB\x11\n\x0fhas_environmentB\x0e\n\x0chas_event_idB\x0f\n\rhas_exceptionB\x0b\n\thas_extraB\x0b\n\thas_levelB\x0e\n\x0chas_logentryB\x0c\n\nhas_loggerB\x0e\n\x0chas_platformB\x0e\n\x0chas_receivedB\r\n\x0bhas_releaseB\r\n\x0bhas_requestB\t\n\x07has_sdkB\x11\n\x0fhas_server_nameB\x10\n\x0ehas_stacktraceB\n\n\x08has_tagsB\r\n\x0bhas_threadsB\x10\n\x0ehas_time_spentB\x0f\n\rhas_timestampB\x11\n\x0fhas_transactionB\x16\n\x14has_transaction_infoB\n\n\x08has_typeB\n\n\x08has_userB\r\n\x0bhas_version\"\xa4\x03\n\nAppcontext\x12\x13\n\tapp_build\x18\x01 \x01(\tH\x00\x12\x18\n\x0e\x61pp_identifier\x18\x02 \x01(\tH\x01\x12\x14\n\napp_memory\x18\x03 \x01(\x04H\x02\x12\x12\n\x08\x61pp_name\x18\x04 \x01(\tH\x03\x12\x18\n\x0e\x61pp_start_time\x18\x05 \x01(\tH\x04\x12\x15\n\x0b\x61pp_version\x18\x06 \x01(\tH\x05\x12\x14\n\nbuild_type\x18\x07 \x01(\tH\x06\x12\x19\n\x0f\x64\x65vice_app_hash\x18\x08 \x01(\tH\x07\x12\x17\n\rin_foreground\x18\t \x01(\x08H\x08\x12\x12\n\nview_names\x18\n \x03(\tB\x0f\n\rhas_app_buildB\x14\n\x12has_app_identifierB\x10\n\x0ehas_app_memoryB\x0e\n\x0chas_app_nameB\x14\n\x12has_app_start_timeB\x11\n\x0fhas_app_versionB\x10\n\x0ehas_build_typeB\x15\n\x13has_device_app_hashB\x13\n\x11has_in_foreground\"\xeb\x01\n\x0f\x41ppledebugimage\x12\x0e\n\x04\x61rch\x18\x01 \x01(\tH\x00\x12\x15\n\x0b\x63pu_subtype\x18\x02 \x01(\x04H\x01\x12\x12\n\x08\x63pu_type\x18\x03 \x01(\x04H\x02\x12\x12\n\nimage_addr\x18\x04 \x01(\t\x12\x12\n\nimage_size\x18\x05 \x01(\x04\x12\x16\n\x0cimage_vmaddr\x18\x06 \x01(\tH\x03\x12\x0c\n\x04name\x18\x07 \x01(\t\x12\x0c\n\x04uuid\x18\x08 \x01(\tB\n\n\x08has_archB\x11\n\x0fhas_cpu_subtypeB\x0e\n\x0chas_cpu_typeB\x12\n\x10has_image_vmaddr\"\xa2\x02\n\nBreadcrumb\x12\x12\n\x08\x63\x61tegory\x18\x01 \x01(\tH\x00\x12&\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueH\x01\x12\x12\n\x08\x65vent_id\x18\x03 \x01(\tH\x02\x12\x0f\n\x05level\x18\x04 \x01(\tH\x03\x12\x11\n\x07message\x18\x05 \x01(\tH\x04\x12+\n\ttimestamp\x18\x06 \x01(\x0b\x32\x16.google.protobuf.ValueH\x05\x12\x0e\n\x04type\x18\x07 \x01(\tH\x06\x42\x0e\n\x0chas_categoryB\n\n\x08has_dataB\x0e\n\x0chas_event_idB\x0b\n\thas_levelB\r\n\x0bhas_messageB\x0f\n\rhas_timestampB\n\n\x08has_type\"N\n\x0e\x42rowsercontext\x12\x0e\n\x04name\x18\x01 \x01(\tH\x00\x12\x11\n\x07version\x18\x02 \x01(\tH\x01\x42\n\n\x08has_nameB\r\n\x0bhas_version\"D\n\x06\x43\x65rror\x12\x0e\n\x04name\x18\x01 \x01(\tH\x00\x12\x10\n\x06number\x18\x02 \x01(\x03H\x01\x42\n\n\x08has_nameB\x0c\n\nhas_number\"\xea\x01\n\rClientsdkinfo\x12\x14\n\x0cintegrations\x18\x01 \x03(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12M\n\x08packages\x18\x03 \x03(\x0b\x32;.sentry_protos.relay.v1.Clientsdkinfo.ClientsdkinfoPackages\x12\x0f\n\x07version\x18\x04 \x01(\t\x1aU\n\x15\x43lientsdkinfoPackages\x12\x0e\n\x04name\x18\x01 \x01(\tH\x00\x12\x11\n\x07version\x18\x02 \x01(\tH\x01\x42\n\n\x08has_nameB\r\n\x0bhas_version\"P\n\x10\x43lientsdkpackage\x12\x0e\n\x04name\x18\x01 \x01(\tH\x00\x12\x11\n\x07version\x18\x02 \x01(\tH\x01\x42\n\n\x08has_nameB\r\n\x0bhas_version\"\xf6\x02\n\x04\x44\x61ta\x12H\n\x0eprevious_route\x18\x01 \x01(\x0b\x32..sentry_protos.relay.v1.Data.DataPreviousrouteH\x00\x12\x37\n\x05route\x18\x02 \x01(\x0b\x32&.sentry_protos.relay.v1.Data.DataRouteH\x01\x1ag\n\x11\x44\x61taPreviousroute\x12\x0e\n\x04name\x18\x01 \x01(\tH\x00\x12(\n\x06params\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueH\x01\x42\n\n\x08has_nameB\x0c\n\nhas_params\x1a_\n\tDataRoute\x12\x0e\n\x04name\x18\x01 \x01(\tH\x00\x12(\n\x06params\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueH\x01\x42\n\n\x08has_nameB\x0c\n\nhas_paramsB\x14\n\x12has_previous_routeB\x0b\n\thas_route\"\xd8\x02\n\tDebugmeta\x12&\n\x06images\x18\x01 \x03(\x0b\x32\x16.google.protobuf.Value\x12\x46\n\x08sdk_info\x18\x02 \x01(\x0b\x32\x32.sentry_protos.relay.v1.Debugmeta.DebugmetaSdkInfoH\x00\x1a\xca\x01\n\x10\x44\x65\x62ugmetaSdkInfo\x12\x12\n\x08sdk_name\x18\x01 \x01(\tH\x00\x12\x17\n\rversion_major\x18\x02 \x01(\x04H\x01\x12\x17\n\rversion_minor\x18\x03 \x01(\x04H\x02\x12\x1c\n\x12version_patchlevel\x18\x04 \x01(\x04H\x03\x42\x0e\n\x0chas_sdk_nameB\x13\n\x11has_version_majorB\x13\n\x11has_version_minorB\x18\n\x16has_version_patchlevelB\x0e\n\x0chas_sdk_info\"\x9f\x0e\n\rDevicecontext\x12\x0e\n\x04\x61rch\x18\x01 \x01(\tH\x00\x12\x17\n\rbattery_level\x18\x02 \x01(\x01H\x01\x12\x18\n\x0e\x62\x61ttery_status\x18\x03 \x01(\tH\x02\x12\x13\n\tboot_time\x18\x04 \x01(\tH\x03\x12\x0f\n\x05\x62rand\x18\x05 \x01(\tH\x04\x12\x12\n\x08\x63harging\x18\x06 \x01(\x08H\x05\x12\x19\n\x0f\x63pu_description\x18\x07 \x01(\tH\x06\x12\x15\n\x0b\x64\x65vice_type\x18\x08 \x01(\tH\x07\x12\"\n\x18\x64\x65vice_unique_identifier\x18\t \x01(\tH\x08\x12\x1f\n\x15\x65xternal_free_storage\x18\n \x01(\x04H\t\x12\x1f\n\x15\x65xternal_storage_size\x18\x0b \x01(\x04H\n\x12\x10\n\x06\x66\x61mily\x18\x0c \x01(\tH\x0b\x12\x15\n\x0b\x66ree_memory\x18\r \x01(\x04H\x0c\x12\x16\n\x0c\x66ree_storage\x18\x0e \x01(\x04H\r\x12\x10\n\x06locale\x18\x0f \x01(\tH\x0e\x12\x14\n\nlow_memory\x18\x10 \x01(\x08H\x0f\x12\x16\n\x0cmanufacturer\x18\x11 \x01(\tH\x10\x12\x15\n\x0bmemory_size\x18\x12 \x01(\x04H\x11\x12\x0f\n\x05model\x18\x13 \x01(\tH\x12\x12\x12\n\x08model_id\x18\x14 \x01(\tH\x13\x12\x0e\n\x04name\x18\x15 \x01(\tH\x14\x12\x10\n\x06online\x18\x16 \x01(\x08H\x15\x12\x15\n\x0borientation\x18\x17 \x01(\tH\x16\x12\x19\n\x0fprocessor_count\x18\x18 \x01(\x04H\x17\x12\x1d\n\x13processor_frequency\x18\x19 \x01(\x04H\x18\x12\x18\n\x0escreen_density\x18\x1a \x01(\x01H\x19\x12\x14\n\nscreen_dpi\x18\x1b \x01(\x04H\x1a\x12\x1e\n\x14screen_height_pixels\x18\x1c \x01(\x04H\x1b\x12\x1b\n\x11screen_resolution\x18\x1d \x01(\tH\x1c\x12\x1d\n\x13screen_width_pixels\x18\x1e \x01(\x04H\x1d\x12\x13\n\tsimulator\x18\x1f \x01(\x08H\x1e\x12\x16\n\x0cstorage_size\x18 \x01(\x04H\x1f\x12 \n\x16supports_accelerometer\x18! \x01(\x08H \x12\x18\n\x0esupports_audio\x18\" \x01(\x08H!\x12\x1c\n\x12supports_gyroscope\x18# \x01(\x08H\"\x12#\n\x19supports_location_service\x18$ \x01(\x08H#\x12\x1c\n\x12supports_vibration\x18% \x01(\x08H$\x12\x12\n\x08timezone\x18& \x01(\tH%\x12\x17\n\rusable_memory\x18\' \x01(\x04H&\x12\x0e\n\x04uuid\x18( \x01(\tH\'B\n\n\x08has_archB\x13\n\x11has_battery_levelB\x14\n\x12has_battery_statusB\x0f\n\rhas_boot_timeB\x0b\n\thas_brandB\x0e\n\x0chas_chargingB\x15\n\x13has_cpu_descriptionB\x11\n\x0fhas_device_typeB\x1e\n\x1chas_device_unique_identifierB\x1b\n\x19has_external_free_storageB\x1b\n\x19has_external_storage_sizeB\x0c\n\nhas_familyB\x11\n\x0fhas_free_memoryB\x12\n\x10has_free_storageB\x0c\n\nhas_localeB\x10\n\x0ehas_low_memoryB\x12\n\x10has_manufacturerB\x11\n\x0fhas_memory_sizeB\x0b\n\thas_modelB\x0e\n\x0chas_model_idB\n\n\x08has_nameB\x0c\n\nhas_onlineB\x11\n\x0fhas_orientationB\x15\n\x13has_processor_countB\x19\n\x17has_processor_frequencyB\x14\n\x12has_screen_densityB\x10\n\x0ehas_screen_dpiB\x1a\n\x18has_screen_height_pixelsB\x17\n\x15has_screen_resolutionB\x19\n\x17has_screen_width_pixelsB\x0f\n\rhas_simulatorB\x12\n\x10has_storage_sizeB\x1c\n\x1ahas_supports_accelerometerB\x14\n\x12has_supports_audioB\x18\n\x16has_supports_gyroscopeB\x1f\n\x1dhas_supports_location_serviceB\x18\n\x16has_supports_vibrationB\x0e\n\x0chas_timezoneB\x13\n\x11has_usable_memoryB\n\n\x08has_uuid\"g\n\x14\x45ventprocessingerror\x12\x0e\n\x04name\x18\x01 \x01(\tH\x00\x12\x0c\n\x04type\x18\x02 \x01(\t\x12%\n\x05value\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueB\n\n\x08has_name\"\xe0\x1b\n\tException\x12I\n\tmechanism\x18\x01 \x01(\x0b\x32\x34.sentry_protos.relay.v1.Exception.ExceptionMechanismH\x00\x12\x10\n\x06module\x18\x02 \x01(\tH\x01\x12K\n\nstacktrace\x18\x03 \x01(\x0b\x32\x35.sentry_protos.relay.v1.Exception.ExceptionStacktraceH\x02\x12+\n\tthread_id\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueH\x03\x12\x0e\n\x04type\x18\x05 \x01(\tH\x04\x12\x0f\n\x05value\x18\x06 \x01(\tH\x05\x1a\xdd\x0c\n\x12\x45xceptionMechanism\x12&\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x16.google.protobuf.ValueH\x00\x12\x15\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x01\x12\x16\n\x0c\x65xception_id\x18\x03 \x01(\x04H\x02\x12\x11\n\x07handled\x18\x04 \x01(\x08H\x03\x12\x13\n\thelp_link\x18\x05 \x01(\tH\x04\x12\x1c\n\x12is_exception_group\x18\x06 \x01(\x08H\x05\x12[\n\x04meta\x18\x07 \x01(\x0b\x32K.sentry_protos.relay.v1.Exception.ExceptionMechanism.ExceptionMechanismMetaH\x06\x12\x13\n\tparent_id\x18\x08 \x01(\x04H\x07\x12\x10\n\x06source\x18\t \x01(\tH\x08\x12\x13\n\tsynthetic\x18\n \x01(\x08H\t\x12\x0c\n\x04type\x18\x0b \x01(\t\x1a\xd9\x08\n\x16\x45xceptionMechanismMeta\x12x\n\x05\x65rrno\x18\x01 \x01(\x0b\x32g.sentry_protos.relay.v1.Exception.ExceptionMechanism.ExceptionMechanismMeta.ExceptionMechanismMetaErrnoH\x00\x12\x89\x01\n\x0emach_exception\x18\x02 \x01(\x0b\x32o.sentry_protos.relay.v1.Exception.ExceptionMechanism.ExceptionMechanismMeta.ExceptionMechanismMetaMachExceptionH\x01\x12}\n\x08ns_error\x18\x03 \x01(\x0b\x32i.sentry_protos.relay.v1.Exception.ExceptionMechanism.ExceptionMechanismMeta.ExceptionMechanismMetaNsErrorH\x02\x12z\n\x06signal\x18\x04 \x01(\x0b\x32h.sentry_protos.relay.v1.Exception.ExceptionMechanism.ExceptionMechanismMeta.ExceptionMechanismMetaSignalH\x03\x1aY\n\x1b\x45xceptionMechanismMetaErrno\x12\x0e\n\x04name\x18\x01 \x01(\tH\x00\x12\x10\n\x06number\x18\x02 \x01(\x03H\x01\x42\n\n\x08has_nameB\x0c\n\nhas_number\x1a\xa5\x01\n#ExceptionMechanismMetaMachException\x12\x0e\n\x04\x63ode\x18\x01 \x01(\x04H\x00\x12\x13\n\texception\x18\x02 \x01(\x03H\x01\x12\x0e\n\x04name\x18\x03 \x01(\tH\x02\x12\x11\n\x07subcode\x18\x04 \x01(\x04H\x03\x42\n\n\x08has_codeB\x0f\n\rhas_exceptionB\n\n\x08has_nameB\r\n\x0bhas_subcode\x1a[\n\x1d\x45xceptionMechanismMetaNsError\x12\x0e\n\x04\x63ode\x18\x01 \x01(\x03H\x00\x12\x10\n\x06\x64omain\x18\x02 \x01(\tH\x01\x42\n\n\x08has_codeB\x0c\n\nhas_domain\x1a\x9c\x01\n\x1c\x45xceptionMechanismMetaSignal\x12\x0e\n\x04\x63ode\x18\x01 \x01(\x03H\x00\x12\x13\n\tcode_name\x18\x02 \x01(\tH\x01\x12\x0e\n\x04name\x18\x03 \x01(\tH\x02\x12\x10\n\x06number\x18\x04 \x01(\x03H\x03\x42\n\n\x08has_codeB\x0f\n\rhas_code_nameB\n\n\x08has_nameB\x0c\n\nhas_numberB\x0b\n\thas_errnoB\x14\n\x12has_mach_exceptionB\x0e\n\x0chas_ns_errorB\x0c\n\nhas_signalB\n\n\x08has_dataB\x11\n\x0fhas_descriptionB\x12\n\x10has_exception_idB\r\n\x0bhas_handledB\x0f\n\rhas_help_linkB\x18\n\x16has_is_exception_groupB\n\n\x08has_metaB\x0f\n\rhas_parent_idB\x0c\n\nhas_sourceB\x0f\n\rhas_synthetic\x1a\x9f\x0c\n\x13\x45xceptionStacktrace\x12_\n\x06\x66rames\x18\x01 \x03(\x0b\x32O.sentry_protos.relay.v1.Exception.ExceptionStacktrace.ExceptionStacktraceFrames\x12%\n\x1binstruction_addr_adjustment\x18\x02 \x01(\tH\x00\x12\x0e\n\x04lang\x18\x03 \x01(\tH\x01\x12W\n\tregisters\x18\x04 \x03(\x0b\x32\x44.sentry_protos.relay.v1.Exception.ExceptionStacktrace.RegistersEntry\x12\x12\n\x08snapshot\x18\x05 \x01(\x08H\x02\x1a\x91\t\n\x19\x45xceptionStacktraceFrames\x12\x12\n\x08\x61\x62s_path\x18\x01 \x01(\tH\x00\x12\x13\n\taddr_mode\x18\x02 \x01(\tH\x01\x12\x0f\n\x05\x63olno\x18\x03 \x01(\x04H\x02\x12\x16\n\x0c\x63ontext_line\x18\x04 \x01(\tH\x03\x12\x12\n\x08\x66ilename\x18\x05 \x01(\tH\x04\x12\x12\n\x08\x66unction\x18\x06 \x01(\tH\x05\x12\x15\n\x0b\x66unction_id\x18\x07 \x01(\tH\x06\x12\x14\n\nimage_addr\x18\x08 \x01(\tH\x07\x12\x10\n\x06in_app\x18\t \x01(\x08H\x08\x12\x1a\n\x10instruction_addr\x18\n \x01(\tH\t\x12\x10\n\x06lineno\x18\x0b \x01(\x04H\n\x12}\n\x04lock\x18\x0c \x01(\x0b\x32m.sentry_protos.relay.v1.Exception.ExceptionStacktrace.ExceptionStacktraceFrames.ExceptionStacktraceFramesLockH\x0b\x12\x10\n\x06module\x18\r \x01(\tH\x0c\x12\x11\n\x07package\x18\x0e \x01(\tH\r\x12\x12\n\x08platform\x18\x0f \x01(\tH\x0e\x12\x14\n\x0cpost_context\x18\x10 \x03(\t\x12\x13\n\x0bpre_context\x18\x11 \x03(\t\x12\x16\n\x0craw_function\x18\x12 \x01(\tH\x0f\x12\x15\n\x0bstack_start\x18\x13 \x01(\x08H\x10\x12\x10\n\x06symbol\x18\x14 \x01(\tH\x11\x12\x15\n\x0bsymbol_addr\x18\x15 \x01(\tH\x12\x12&\n\x04vars\x18\x16 \x01(\x0b\x32\x16.google.protobuf.ValueH\x13\x1a\xe1\x01\n\x1d\x45xceptionStacktraceFramesLock\x12\x11\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x12\x14\n\nclass_name\x18\x02 \x01(\tH\x01\x12\x16\n\x0cpackage_name\x18\x03 \x01(\tH\x02\x12+\n\tthread_id\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueH\x03\x12\x0c\n\x04type\x18\x05 \x01(\tB\r\n\x0bhas_addressB\x10\n\x0ehas_class_nameB\x12\n\x10has_package_nameB\x0f\n\rhas_thread_idB\x0e\n\x0chas_abs_pathB\x0f\n\rhas_addr_modeB\x0b\n\thas_colnoB\x12\n\x10has_context_lineB\x0e\n\x0chas_filenameB\x0e\n\x0chas_functionB\x11\n\x0fhas_function_idB\x10\n\x0ehas_image_addrB\x0c\n\nhas_in_appB\x16\n\x14has_instruction_addrB\x0c\n\nhas_linenoB\n\n\x08has_lockB\x0c\n\nhas_moduleB\r\n\x0bhas_packageB\x0e\n\x0chas_platformB\x12\n\x10has_raw_functionB\x11\n\x0fhas_stack_startB\x0c\n\nhas_symbolB\x11\n\x0fhas_symbol_addrB\n\n\x08has_vars\x1a\x30\n\x0eRegistersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42!\n\x1fhas_instruction_addr_adjustmentB\n\n\x08has_langB\x0e\n\x0chas_snapshotB\x0f\n\rhas_mechanismB\x0c\n\nhas_moduleB\x10\n\x0ehas_stacktraceB\x0f\n\rhas_thread_idB\n\n\x08has_typeB\x0b\n\thas_value\"\xa3\x08\n\x05\x46rame\x12\x12\n\x08\x61\x62s_path\x18\x01 \x01(\tH\x00\x12\x13\n\taddr_mode\x18\x02 \x01(\tH\x01\x12\x0f\n\x05\x63olno\x18\x03 \x01(\x04H\x02\x12\x16\n\x0c\x63ontext_line\x18\x04 \x01(\tH\x03\x12\x12\n\x08\x66ilename\x18\x05 \x01(\tH\x04\x12\x12\n\x08\x66unction\x18\x06 \x01(\tH\x05\x12\x15\n\x0b\x66unction_id\x18\x07 \x01(\tH\x06\x12\x14\n\nimage_addr\x18\x08 \x01(\tH\x07\x12\x10\n\x06in_app\x18\t \x01(\x08H\x08\x12\x1a\n\x10instruction_addr\x18\n \x01(\tH\t\x12\x10\n\x06lineno\x18\x0b \x01(\x04H\n\x12\x37\n\x04lock\x18\x0c \x01(\x0b\x32\'.sentry_protos.relay.v1.Frame.FrameLockH\x0b\x12\x10\n\x06module\x18\r \x01(\tH\x0c\x12\x11\n\x07package\x18\x0e \x01(\tH\r\x12\x12\n\x08platform\x18\x0f \x01(\tH\x0e\x12\x14\n\x0cpost_context\x18\x10 \x03(\t\x12\x13\n\x0bpre_context\x18\x11 \x03(\t\x12\x16\n\x0craw_function\x18\x12 \x01(\tH\x0f\x12\x15\n\x0bstack_start\x18\x13 \x01(\x08H\x10\x12\x10\n\x06symbol\x18\x14 \x01(\tH\x11\x12\x15\n\x0bsymbol_addr\x18\x15 \x01(\tH\x12\x12&\n\x04vars\x18\x16 \x01(\x0b\x32\x16.google.protobuf.ValueH\x13\x1a\xcd\x01\n\tFrameLock\x12\x11\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x12\x14\n\nclass_name\x18\x02 \x01(\tH\x01\x12\x16\n\x0cpackage_name\x18\x03 \x01(\tH\x02\x12+\n\tthread_id\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueH\x03\x12\x0c\n\x04type\x18\x05 \x01(\tB\r\n\x0bhas_addressB\x10\n\x0ehas_class_nameB\x12\n\x10has_package_nameB\x0f\n\rhas_thread_idB\x0e\n\x0chas_abs_pathB\x0f\n\rhas_addr_modeB\x0b\n\thas_colnoB\x12\n\x10has_context_lineB\x0e\n\x0chas_filenameB\x0e\n\x0chas_functionB\x11\n\x0fhas_function_idB\x10\n\x0ehas_image_addrB\x0c\n\nhas_in_appB\x16\n\x14has_instruction_addrB\x0c\n\nhas_linenoB\n\n\x08has_lockB\x0c\n\nhas_moduleB\r\n\x0bhas_packageB\x0e\n\x0chas_platformB\x12\n\x10has_raw_functionB\x11\n\x0fhas_stack_startB\x0c\n\nhas_symbolB\x11\n\x0fhas_symbol_addrB\n\n\x08has_vars\"\x97\x01\n\x03Geo\x12\x0e\n\x04\x63ity\x18\x01 \x01(\tH\x00\x12\x16\n\x0c\x63ountry_code\x18\x02 \x01(\tH\x01\x12\x10\n\x06region\x18\x03 \x01(\tH\x02\x12\x15\n\x0bsubdivision\x18\x04 \x01(\tH\x03\x42\n\n\x08has_cityB\x12\n\x10has_country_codeB\x0c\n\nhas_regionB\x11\n\x0fhas_subdivision\"\x82\x06\n\nGpucontext\x12\x12\n\x08\x61pi_type\x18\x01 \x01(\tH\x00\x12\x1f\n\x15graphics_shader_level\x18\x02 \x01(\tH\x01\x12\"\n\x02id\x18\x03 \x01(\x0b\x32\x16.google.protobuf.Value\x12\x1a\n\x10max_texture_size\x18\x04 \x01(\x04H\x02\x12\x15\n\x0bmemory_size\x18\x05 \x01(\x04H\x03\x12\"\n\x18multi_threaded_rendering\x18\x06 \x01(\x08H\x04\x12\x0e\n\x04name\x18\x07 \x01(\tH\x05\x12\x16\n\x0cnpot_support\x18\x08 \x01(\tH\x06\x12\"\n\x18supports_compute_shaders\x18\t \x01(\x08H\x07\x12\'\n\x1dsupports_draw_call_instancing\x18\n \x01(\x08H\x08\x12#\n\x19supports_geometry_shaders\x18\x0b \x01(\x08H\t\x12\x1e\n\x14supports_ray_tracing\x18\x0c \x01(\x08H\n\x12\x13\n\tvendor_id\x18\r \x01(\tH\x0b\x12\x15\n\x0bvendor_name\x18\x0e \x01(\tH\x0c\x12\x11\n\x07version\x18\x0f \x01(\tH\rB\x0e\n\x0chas_api_typeB\x1b\n\x19has_graphics_shader_levelB\x16\n\x14has_max_texture_sizeB\x11\n\x0fhas_memory_sizeB\x1e\n\x1chas_multi_threaded_renderingB\n\n\x08has_nameB\x12\n\x10has_npot_supportB\x1e\n\x1chas_supports_compute_shadersB#\n!has_supports_draw_call_instancingB\x1f\n\x1dhas_supports_geometry_shadersB\x1a\n\x18has_supports_ray_tracingB\x0f\n\rhas_vendor_idB\x11\n\x0fhas_vendor_nameB\r\n\x0bhas_version\"!\n\rJvmdebugimage\x12\x10\n\x08\x64\x65\x62ug_id\x18\x01 \x01(\t\"\xce\x01\n\nLockreason\x12\x11\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x12\x14\n\nclass_name\x18\x02 \x01(\tH\x01\x12\x16\n\x0cpackage_name\x18\x03 \x01(\tH\x02\x12+\n\tthread_id\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueH\x03\x12\x0c\n\x04type\x18\x05 \x01(\tB\r\n\x0bhas_addressB\x10\n\x0ehas_class_nameB\x12\n\x10has_package_nameB\x0f\n\rhas_thread_id\"z\n\x08Logentry\x12\x13\n\tformatted\x18\x01 \x01(\tH\x00\x12\x11\n\x07message\x18\x02 \x01(\tH\x01\x12&\n\x06params\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueB\x0f\n\rhas_formattedB\r\n\x0bhas_message\"\x8f\x01\n\rMachexception\x12\x0e\n\x04\x63ode\x18\x01 \x01(\x04H\x00\x12\x13\n\texception\x18\x02 \x01(\x03H\x01\x12\x0e\n\x04name\x18\x03 \x01(\tH\x02\x12\x11\n\x07subcode\x18\x04 \x01(\x04H\x03\x42\n\n\x08has_codeB\x0f\n\rhas_exceptionB\n\n\x08has_nameB\r\n\x0bhas_subcode\"\xf6\n\n\tMechanism\x12&\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x16.google.protobuf.ValueH\x00\x12\x15\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x01\x12\x16\n\x0c\x65xception_id\x18\x03 \x01(\x04H\x02\x12\x11\n\x07handled\x18\x04 \x01(\x08H\x03\x12\x13\n\thelp_link\x18\x05 \x01(\tH\x04\x12\x1c\n\x12is_exception_group\x18\x06 \x01(\x08H\x05\x12?\n\x04meta\x18\x07 \x01(\x0b\x32/.sentry_protos.relay.v1.Mechanism.MechanismMetaH\x06\x12\x13\n\tparent_id\x18\x08 \x01(\x04H\x07\x12\x10\n\x06source\x18\t \x01(\tH\x08\x12\x13\n\tsynthetic\x18\n \x01(\x08H\t\x12\x0c\n\x04type\x18\x0b \x01(\t\x1a\x97\x07\n\rMechanismMeta\x12S\n\x05\x65rrno\x18\x01 \x01(\x0b\x32\x42.sentry_protos.relay.v1.Mechanism.MechanismMeta.MechanismMetaErrnoH\x00\x12\x64\n\x0emach_exception\x18\x02 \x01(\x0b\x32J.sentry_protos.relay.v1.Mechanism.MechanismMeta.MechanismMetaMachExceptionH\x01\x12X\n\x08ns_error\x18\x03 \x01(\x0b\x32\x44.sentry_protos.relay.v1.Mechanism.MechanismMeta.MechanismMetaNsErrorH\x02\x12U\n\x06signal\x18\x04 \x01(\x0b\x32\x43.sentry_protos.relay.v1.Mechanism.MechanismMeta.MechanismMetaSignalH\x03\x1aP\n\x12MechanismMetaErrno\x12\x0e\n\x04name\x18\x01 \x01(\tH\x00\x12\x10\n\x06number\x18\x02 \x01(\x03H\x01\x42\n\n\x08has_nameB\x0c\n\nhas_number\x1a\x9c\x01\n\x1aMechanismMetaMachException\x12\x0e\n\x04\x63ode\x18\x01 \x01(\x04H\x00\x12\x13\n\texception\x18\x02 \x01(\x03H\x01\x12\x0e\n\x04name\x18\x03 \x01(\tH\x02\x12\x11\n\x07subcode\x18\x04 \x01(\x04H\x03\x42\n\n\x08has_codeB\x0f\n\rhas_exceptionB\n\n\x08has_nameB\r\n\x0bhas_subcode\x1aR\n\x14MechanismMetaNsError\x12\x0e\n\x04\x63ode\x18\x01 \x01(\x03H\x00\x12\x10\n\x06\x64omain\x18\x02 \x01(\tH\x01\x42\n\n\x08has_codeB\x0c\n\nhas_domain\x1a\x93\x01\n\x13MechanismMetaSignal\x12\x0e\n\x04\x63ode\x18\x01 \x01(\x03H\x00\x12\x13\n\tcode_name\x18\x02 \x01(\tH\x01\x12\x0e\n\x04name\x18\x03 \x01(\tH\x02\x12\x10\n\x06number\x18\x04 \x01(\x03H\x03\x42\n\n\x08has_codeB\x0f\n\rhas_code_nameB\n\n\x08has_nameB\x0c\n\nhas_numberB\x0b\n\thas_errnoB\x14\n\x12has_mach_exceptionB\x0e\n\x0chas_ns_errorB\x0c\n\nhas_signalB\n\n\x08has_dataB\x11\n\x0fhas_descriptionB\x12\n\x10has_exception_idB\r\n\x0bhas_handledB\x0f\n\rhas_help_linkB\x18\n\x16has_is_exception_groupB\n\n\x08has_metaB\x0f\n\rhas_parent_idB\x0c\n\nhas_sourceB\x0f\n\rhas_synthetic\"\xef\x06\n\rMechanismmeta\x12I\n\x05\x65rrno\x18\x01 \x01(\x0b\x32\x38.sentry_protos.relay.v1.Mechanismmeta.MechanismmetaErrnoH\x00\x12Z\n\x0emach_exception\x18\x02 \x01(\x0b\x32@.sentry_protos.relay.v1.Mechanismmeta.MechanismmetaMachExceptionH\x01\x12N\n\x08ns_error\x18\x03 \x01(\x0b\x32:.sentry_protos.relay.v1.Mechanismmeta.MechanismmetaNsErrorH\x02\x12K\n\x06signal\x18\x04 \x01(\x0b\x32\x39.sentry_protos.relay.v1.Mechanismmeta.MechanismmetaSignalH\x03\x1aP\n\x12MechanismmetaErrno\x12\x0e\n\x04name\x18\x01 \x01(\tH\x00\x12\x10\n\x06number\x18\x02 \x01(\x03H\x01\x42\n\n\x08has_nameB\x0c\n\nhas_number\x1a\x9c\x01\n\x1aMechanismmetaMachException\x12\x0e\n\x04\x63ode\x18\x01 \x01(\x04H\x00\x12\x13\n\texception\x18\x02 \x01(\x03H\x01\x12\x0e\n\x04name\x18\x03 \x01(\tH\x02\x12\x11\n\x07subcode\x18\x04 \x01(\x04H\x03\x42\n\n\x08has_codeB\x0f\n\rhas_exceptionB\n\n\x08has_nameB\r\n\x0bhas_subcode\x1aR\n\x14MechanismmetaNsError\x12\x0e\n\x04\x63ode\x18\x01 \x01(\x03H\x00\x12\x10\n\x06\x64omain\x18\x02 \x01(\tH\x01\x42\n\n\x08has_codeB\x0c\n\nhas_domain\x1a\x93\x01\n\x13MechanismmetaSignal\x12\x0e\n\x04\x63ode\x18\x01 \x01(\x03H\x00\x12\x13\n\tcode_name\x18\x02 \x01(\tH\x01\x12\x0e\n\x04name\x18\x03 \x01(\tH\x02\x12\x10\n\x06number\x18\x04 \x01(\x03H\x03\x42\n\n\x08has_codeB\x0f\n\rhas_code_nameB\n\n\x08has_nameB\x0c\n\nhas_numberB\x0b\n\thas_errnoB\x14\n\x12has_mach_exceptionB\x0e\n\x0chas_ns_errorB\x0c\n\nhas_signal\"\xc9\x02\n\x10Nativedebugimage\x12\x0e\n\x04\x61rch\x18\x01 \x01(\tH\x00\x12\x11\n\tcode_file\x18\x02 \x01(\t\x12\x11\n\x07\x63ode_id\x18\x03 \x01(\tH\x01\x12\x18\n\x0e\x64\x65\x62ug_checksum\x18\x04 \x01(\tH\x02\x12\x14\n\ndebug_file\x18\x05 \x01(\tH\x03\x12\x10\n\x08\x64\x65\x62ug_id\x18\x06 \x01(\t\x12\x14\n\nimage_addr\x18\x07 \x01(\tH\x04\x12\x14\n\nimage_size\x18\x08 \x01(\x04H\x05\x12\x16\n\x0cimage_vmaddr\x18\t \x01(\tH\x06\x42\n\n\x08has_archB\r\n\x0bhas_code_idB\x14\n\x12has_debug_checksumB\x10\n\x0ehas_debug_fileB\x10\n\x0ehas_image_addrB\x10\n\x0ehas_image_sizeB\x12\n\x10has_image_vmaddr\"\xf2\x01\n\nNelcontext\x12\x16\n\x0c\x65lapsed_time\x18\x01 \x01(\x04H\x00\x12\x14\n\nerror_type\x18\x02 \x01(\tH\x01\x12\'\n\x05phase\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueH\x02\x12\x1b\n\x11sampling_fraction\x18\x04 \x01(\x01H\x03\x12\x13\n\tserver_ip\x18\x05 \x01(\tH\x04\x42\x12\n\x10has_elapsed_timeB\x10\n\x0ehas_error_typeB\x0b\n\thas_phaseB\x17\n\x15has_sampling_fractionB\x0f\n\rhas_server_ip\"E\n\x07Nserror\x12\x0e\n\x04\x63ode\x18\x01 \x01(\x03H\x00\x12\x10\n\x06\x64omain\x18\x02 \x01(\tH\x01\x42\n\n\x08has_codeB\x0c\n\nhas_domain\"\xe9\x01\n\tOscontext\x12\x0f\n\x05\x62uild\x18\x01 \x01(\tH\x00\x12\x18\n\x0ekernel_version\x18\x02 \x01(\tH\x01\x12\x0e\n\x04name\x18\x03 \x01(\tH\x02\x12\x19\n\x0fraw_description\x18\x04 \x01(\tH\x03\x12\x10\n\x06rooted\x18\x05 \x01(\x08H\x04\x12\x11\n\x07version\x18\x06 \x01(\tH\x05\x42\x0b\n\thas_buildB\x14\n\x12has_kernel_versionB\n\n\x08has_nameB\x15\n\x13has_raw_descriptionB\x0c\n\nhas_rootedB\r\n\x0bhas_version\"\x89\x01\n\x0bOtelcontext\x12,\n\nattributes\x18\x01 \x01(\x0b\x32\x16.google.protobuf.ValueH\x00\x12*\n\x08resource\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueH\x01\x42\x10\n\x0ehas_attributesB\x0e\n\x0chas_resource\"\x8b\x01\n\x0bPosixsignal\x12\x0e\n\x04\x63ode\x18\x01 \x01(\x03H\x00\x12\x13\n\tcode_name\x18\x02 \x01(\tH\x01\x12\x0e\n\x04name\x18\x03 \x01(\tH\x02\x12\x10\n\x06number\x18\x04 \x01(\x03H\x03\x42\n\n\x08has_codeB\x0f\n\rhas_code_nameB\n\n\x08has_nameB\x0c\n\nhas_number\"$\n\x0eProfilecontext\x12\x12\n\nprofile_id\x18\x01 \x01(\t\"\"\n\x12Proguarddebugimage\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"\xcb\x0b\n\rRawstacktrace\x12I\n\x06\x66rames\x18\x01 \x03(\x0b\x32\x39.sentry_protos.relay.v1.Rawstacktrace.RawstacktraceFrames\x12%\n\x1binstruction_addr_adjustment\x18\x02 \x01(\tH\x00\x12\x0e\n\x04lang\x18\x03 \x01(\tH\x01\x12G\n\tregisters\x18\x04 \x03(\x0b\x32\x34.sentry_protos.relay.v1.Rawstacktrace.RegistersEntry\x12\x12\n\x08snapshot\x18\x05 \x01(\x08H\x02\x1a\xe9\x08\n\x13RawstacktraceFrames\x12\x12\n\x08\x61\x62s_path\x18\x01 \x01(\tH\x00\x12\x13\n\taddr_mode\x18\x02 \x01(\tH\x01\x12\x0f\n\x05\x63olno\x18\x03 \x01(\x04H\x02\x12\x16\n\x0c\x63ontext_line\x18\x04 \x01(\tH\x03\x12\x12\n\x08\x66ilename\x18\x05 \x01(\tH\x04\x12\x12\n\x08\x66unction\x18\x06 \x01(\tH\x05\x12\x15\n\x0b\x66unction_id\x18\x07 \x01(\tH\x06\x12\x14\n\nimage_addr\x18\x08 \x01(\tH\x07\x12\x10\n\x06in_app\x18\t \x01(\x08H\x08\x12\x1a\n\x10instruction_addr\x18\n \x01(\tH\t\x12\x10\n\x06lineno\x18\x0b \x01(\x04H\n\x12\x61\n\x04lock\x18\x0c \x01(\x0b\x32Q.sentry_protos.relay.v1.Rawstacktrace.RawstacktraceFrames.RawstacktraceFramesLockH\x0b\x12\x10\n\x06module\x18\r \x01(\tH\x0c\x12\x11\n\x07package\x18\x0e \x01(\tH\r\x12\x12\n\x08platform\x18\x0f \x01(\tH\x0e\x12\x14\n\x0cpost_context\x18\x10 \x03(\t\x12\x13\n\x0bpre_context\x18\x11 \x03(\t\x12\x16\n\x0craw_function\x18\x12 \x01(\tH\x0f\x12\x15\n\x0bstack_start\x18\x13 \x01(\x08H\x10\x12\x10\n\x06symbol\x18\x14 \x01(\tH\x11\x12\x15\n\x0bsymbol_addr\x18\x15 \x01(\tH\x12\x12&\n\x04vars\x18\x16 \x01(\x0b\x32\x16.google.protobuf.ValueH\x13\x1a\xdb\x01\n\x17RawstacktraceFramesLock\x12\x11\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x12\x14\n\nclass_name\x18\x02 \x01(\tH\x01\x12\x16\n\x0cpackage_name\x18\x03 \x01(\tH\x02\x12+\n\tthread_id\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueH\x03\x12\x0c\n\x04type\x18\x05 \x01(\tB\r\n\x0bhas_addressB\x10\n\x0ehas_class_nameB\x12\n\x10has_package_nameB\x0f\n\rhas_thread_idB\x0e\n\x0chas_abs_pathB\x0f\n\rhas_addr_modeB\x0b\n\thas_colnoB\x12\n\x10has_context_lineB\x0e\n\x0chas_filenameB\x0e\n\x0chas_functionB\x11\n\x0fhas_function_idB\x10\n\x0ehas_image_addrB\x0c\n\nhas_in_appB\x16\n\x14has_instruction_addrB\x0c\n\nhas_linenoB\n\n\x08has_lockB\x0c\n\nhas_moduleB\r\n\x0bhas_packageB\x0e\n\x0chas_platformB\x12\n\x10has_raw_functionB\x11\n\x0fhas_stack_startB\x0c\n\nhas_symbolB\x11\n\x0fhas_symbol_addrB\n\n\x08has_vars\x1a\x30\n\x0eRegistersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42!\n\x1fhas_instruction_addr_adjustmentB\n\n\x08has_langB\x0e\n\x0chas_snapshot\"5\n\rReplaycontext\x12\x13\n\treplay_id\x18\x01 \x01(\tH\x00\x42\x0f\n\rhas_replay_id\"\xa7\x04\n\x07Request\x12\x14\n\napi_target\x18\x01 \x01(\tH\x00\x12\x13\n\tbody_size\x18\x02 \x01(\x04H\x01\x12)\n\x07\x63ookies\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueH\x02\x12$\n\x04\x64\x61ta\x18\x04 \x01(\x0b\x32\x16.google.protobuf.Value\x12%\n\x03\x65nv\x18\x05 \x01(\x0b\x32\x16.google.protobuf.ValueH\x03\x12\x12\n\x08\x66ragment\x18\x06 \x01(\tH\x04\x12)\n\x07headers\x18\x07 \x01(\x0b\x32\x16.google.protobuf.ValueH\x05\x12\x1f\n\x15inferred_content_type\x18\x08 \x01(\tH\x06\x12\x10\n\x06method\x18\t \x01(\tH\x07\x12\x12\n\x08protocol\x18\n \x01(\tH\x08\x12.\n\x0cquery_string\x18\x0b \x01(\x0b\x32\x16.google.protobuf.ValueH\t\x12\r\n\x03url\x18\x0c \x01(\tH\nB\x10\n\x0ehas_api_targetB\x0f\n\rhas_body_sizeB\r\n\x0bhas_cookiesB\t\n\x07has_envB\x0e\n\x0chas_fragmentB\r\n\x0bhas_headersB\x1b\n\x19has_inferred_content_typeB\x0c\n\nhas_methodB\x0e\n\x0chas_protocolB\x12\n\x10has_query_stringB\t\n\x07has_url\"\xb9\x02\n\x0fResponsecontext\x12\x13\n\tbody_size\x18\x01 \x01(\x04H\x00\x12)\n\x07\x63ookies\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueH\x01\x12$\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x16.google.protobuf.Value\x12)\n\x07headers\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueH\x02\x12\x1f\n\x15inferred_content_type\x18\x05 \x01(\tH\x03\x12\x15\n\x0bstatus_code\x18\x06 \x01(\x04H\x04\x42\x0f\n\rhas_body_sizeB\r\n\x0bhas_cookiesB\r\n\x0bhas_headersB\x1b\n\x19has_inferred_content_typeB\x11\n\x0fhas_status_code\"[\n\x05Route\x12\x0e\n\x04name\x18\x01 \x01(\tH\x00\x12(\n\x06params\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueH\x01\x42\n\n\x08has_nameB\x0c\n\nhas_params\"\x9e\x01\n\x0eRuntimecontext\x12\x0f\n\x05\x62uild\x18\x01 \x01(\tH\x00\x12\x0e\n\x04name\x18\x02 \x01(\tH\x01\x12\x19\n\x0fraw_description\x18\x03 \x01(\tH\x02\x12\x11\n\x07version\x18\x04 \x01(\tH\x03\x42\x0b\n\thas_buildB\n\n\x08has_nameB\x15\n\x13has_raw_descriptionB\r\n\x0bhas_version\"b\n\x13Sourcemapdebugimage\x12\x11\n\tcode_file\x18\x01 \x01(\t\x12\x14\n\ndebug_file\x18\x02 \x01(\tH\x00\x12\x10\n\x08\x64\x65\x62ug_id\x18\x03 \x01(\tB\x10\n\x0ehas_debug_file\"\xb0\x0b\n\nStacktrace\x12\x43\n\x06\x66rames\x18\x01 \x03(\x0b\x32\x33.sentry_protos.relay.v1.Stacktrace.StacktraceFrames\x12%\n\x1binstruction_addr_adjustment\x18\x02 \x01(\tH\x00\x12\x0e\n\x04lang\x18\x03 \x01(\tH\x01\x12\x44\n\tregisters\x18\x04 \x03(\x0b\x32\x31.sentry_protos.relay.v1.Stacktrace.RegistersEntry\x12\x12\n\x08snapshot\x18\x05 \x01(\x08H\x02\x1a\xda\x08\n\x10StacktraceFrames\x12\x12\n\x08\x61\x62s_path\x18\x01 \x01(\tH\x00\x12\x13\n\taddr_mode\x18\x02 \x01(\tH\x01\x12\x0f\n\x05\x63olno\x18\x03 \x01(\x04H\x02\x12\x16\n\x0c\x63ontext_line\x18\x04 \x01(\tH\x03\x12\x12\n\x08\x66ilename\x18\x05 \x01(\tH\x04\x12\x12\n\x08\x66unction\x18\x06 \x01(\tH\x05\x12\x15\n\x0b\x66unction_id\x18\x07 \x01(\tH\x06\x12\x14\n\nimage_addr\x18\x08 \x01(\tH\x07\x12\x10\n\x06in_app\x18\t \x01(\x08H\x08\x12\x1a\n\x10instruction_addr\x18\n \x01(\tH\t\x12\x10\n\x06lineno\x18\x0b \x01(\x04H\n\x12X\n\x04lock\x18\x0c \x01(\x0b\x32H.sentry_protos.relay.v1.Stacktrace.StacktraceFrames.StacktraceFramesLockH\x0b\x12\x10\n\x06module\x18\r \x01(\tH\x0c\x12\x11\n\x07package\x18\x0e \x01(\tH\r\x12\x12\n\x08platform\x18\x0f \x01(\tH\x0e\x12\x14\n\x0cpost_context\x18\x10 \x03(\t\x12\x13\n\x0bpre_context\x18\x11 \x03(\t\x12\x16\n\x0craw_function\x18\x12 \x01(\tH\x0f\x12\x15\n\x0bstack_start\x18\x13 \x01(\x08H\x10\x12\x10\n\x06symbol\x18\x14 \x01(\tH\x11\x12\x15\n\x0bsymbol_addr\x18\x15 \x01(\tH\x12\x12&\n\x04vars\x18\x16 \x01(\x0b\x32\x16.google.protobuf.ValueH\x13\x1a\xd8\x01\n\x14StacktraceFramesLock\x12\x11\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x12\x14\n\nclass_name\x18\x02 \x01(\tH\x01\x12\x16\n\x0cpackage_name\x18\x03 \x01(\tH\x02\x12+\n\tthread_id\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueH\x03\x12\x0c\n\x04type\x18\x05 \x01(\tB\r\n\x0bhas_addressB\x10\n\x0ehas_class_nameB\x12\n\x10has_package_nameB\x0f\n\rhas_thread_idB\x0e\n\x0chas_abs_pathB\x0f\n\rhas_addr_modeB\x0b\n\thas_colnoB\x12\n\x10has_context_lineB\x0e\n\x0chas_filenameB\x0e\n\x0chas_functionB\x11\n\x0fhas_function_idB\x10\n\x0ehas_image_addrB\x0c\n\nhas_in_appB\x16\n\x14has_instruction_addrB\x0c\n\nhas_linenoB\n\n\x08has_lockB\x0c\n\nhas_moduleB\r\n\x0bhas_packageB\x0e\n\x0chas_platformB\x12\n\x10has_raw_functionB\x11\n\x0fhas_stack_startB\x0c\n\nhas_symbolB\x11\n\x0fhas_symbol_addrB\n\n\x08has_vars\x1a\x30\n\x0eRegistersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42!\n\x1fhas_instruction_addr_adjustmentB\n\n\x08has_langB\x0e\n\x0chas_snapshot\"\xc7\x01\n\rSystemsdkinfo\x12\x12\n\x08sdk_name\x18\x01 \x01(\tH\x00\x12\x17\n\rversion_major\x18\x02 \x01(\x04H\x01\x12\x17\n\rversion_minor\x18\x03 \x01(\x04H\x02\x12\x1c\n\x12version_patchlevel\x18\x04 \x01(\x04H\x03\x42\x0e\n\x0chas_sdk_nameB\x13\n\x11has_version_majorB\x13\n\x11has_version_minorB\x18\n\x16has_version_patchlevel\":\n\x08Tagentry\x12\x0c\n\x02\x61\x30\x18\x01 \x01(\tH\x00\x12\x0c\n\x02\x61\x31\x18\x02 \x01(\tH\x01\x42\x08\n\x06has_a0B\x08\n\x06has_a1\"\xa4\x11\n\x06Thread\x12\x11\n\x07\x63rashed\x18\x01 \x01(\x08H\x00\x12\x11\n\x07\x63urrent\x18\x02 \x01(\x08H\x01\x12\x41\n\nheld_locks\x18\x03 \x03(\x0b\x32-.sentry_protos.relay.v1.Thread.HeldLocksEntry\x12$\n\x02id\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueH\x02\x12\x0e\n\x04main\x18\x05 \x01(\x08H\x03\x12\x0e\n\x04name\x18\x06 \x01(\tH\x04\x12\x45\n\nstacktrace\x18\x07 \x01(\x0b\x32/.sentry_protos.relay.v1.Thread.ThreadStacktraceH\x05\x12\x0f\n\x05state\x18\x08 \x01(\tH\x06\x1a\xd3\x01\n\x0fThreadHeldLocks\x12\x11\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x12\x14\n\nclass_name\x18\x02 \x01(\tH\x01\x12\x16\n\x0cpackage_name\x18\x03 \x01(\tH\x02\x12+\n\tthread_id\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueH\x03\x12\x0c\n\x04type\x18\x05 \x01(\tB\r\n\x0bhas_addressB\x10\n\x0ehas_class_nameB\x12\n\x10has_package_nameB\x0f\n\rhas_thread_id\x1a\xfb\x0b\n\x10ThreadStacktrace\x12V\n\x06\x66rames\x18\x01 \x03(\x0b\x32\x46.sentry_protos.relay.v1.Thread.ThreadStacktrace.ThreadStacktraceFrames\x12%\n\x1binstruction_addr_adjustment\x18\x02 \x01(\tH\x00\x12\x0e\n\x04lang\x18\x03 \x01(\tH\x01\x12Q\n\tregisters\x18\x04 \x03(\x0b\x32>.sentry_protos.relay.v1.Thread.ThreadStacktrace.RegistersEntry\x12\x12\n\x08snapshot\x18\x05 \x01(\x08H\x02\x1a\xff\x08\n\x16ThreadStacktraceFrames\x12\x12\n\x08\x61\x62s_path\x18\x01 \x01(\tH\x00\x12\x13\n\taddr_mode\x18\x02 \x01(\tH\x01\x12\x0f\n\x05\x63olno\x18\x03 \x01(\x04H\x02\x12\x16\n\x0c\x63ontext_line\x18\x04 \x01(\tH\x03\x12\x12\n\x08\x66ilename\x18\x05 \x01(\tH\x04\x12\x12\n\x08\x66unction\x18\x06 \x01(\tH\x05\x12\x15\n\x0b\x66unction_id\x18\x07 \x01(\tH\x06\x12\x14\n\nimage_addr\x18\x08 \x01(\tH\x07\x12\x10\n\x06in_app\x18\t \x01(\x08H\x08\x12\x1a\n\x10instruction_addr\x18\n \x01(\tH\t\x12\x10\n\x06lineno\x18\x0b \x01(\x04H\n\x12q\n\x04lock\x18\x0c \x01(\x0b\x32\x61.sentry_protos.relay.v1.Thread.ThreadStacktrace.ThreadStacktraceFrames.ThreadStacktraceFramesLockH\x0b\x12\x10\n\x06module\x18\r \x01(\tH\x0c\x12\x11\n\x07package\x18\x0e \x01(\tH\r\x12\x12\n\x08platform\x18\x0f \x01(\tH\x0e\x12\x14\n\x0cpost_context\x18\x10 \x03(\t\x12\x13\n\x0bpre_context\x18\x11 \x03(\t\x12\x16\n\x0craw_function\x18\x12 \x01(\tH\x0f\x12\x15\n\x0bstack_start\x18\x13 \x01(\x08H\x10\x12\x10\n\x06symbol\x18\x14 \x01(\tH\x11\x12\x15\n\x0bsymbol_addr\x18\x15 \x01(\tH\x12\x12&\n\x04vars\x18\x16 \x01(\x0b\x32\x16.google.protobuf.ValueH\x13\x1a\xde\x01\n\x1aThreadStacktraceFramesLock\x12\x11\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x12\x14\n\nclass_name\x18\x02 \x01(\tH\x01\x12\x16\n\x0cpackage_name\x18\x03 \x01(\tH\x02\x12+\n\tthread_id\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueH\x03\x12\x0c\n\x04type\x18\x05 \x01(\tB\r\n\x0bhas_addressB\x10\n\x0ehas_class_nameB\x12\n\x10has_package_nameB\x0f\n\rhas_thread_idB\x0e\n\x0chas_abs_pathB\x0f\n\rhas_addr_modeB\x0b\n\thas_colnoB\x12\n\x10has_context_lineB\x0e\n\x0chas_filenameB\x0e\n\x0chas_functionB\x11\n\x0fhas_function_idB\x10\n\x0ehas_image_addrB\x0c\n\nhas_in_appB\x16\n\x14has_instruction_addrB\x0c\n\nhas_linenoB\n\n\x08has_lockB\x0c\n\nhas_moduleB\r\n\x0bhas_packageB\x0e\n\x0chas_platformB\x12\n\x10has_raw_functionB\x11\n\x0fhas_stack_startB\x0c\n\nhas_symbolB\x11\n\x0fhas_symbol_addrB\n\n\x08has_vars\x1a\x30\n\x0eRegistersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42!\n\x1fhas_instruction_addr_adjustmentB\n\n\x08has_langB\x0e\n\x0chas_snapshot\x1a`\n\x0eHeldLocksEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12=\n\x05value\x18\x02 \x01(\x0b\x32..sentry_protos.relay.v1.Thread.ThreadHeldLocks:\x02\x38\x01\x42\r\n\x0bhas_crashedB\r\n\x0bhas_currentB\x08\n\x06has_idB\n\n\x08has_mainB\n\n\x08has_nameB\x10\n\x0ehas_stacktraceB\x0b\n\thas_state\"\xfd\x06\n\x0cTracecontext\x12\x1c\n\x12\x63lient_sample_rate\x18\x01 \x01(\x01H\x00\x12\x45\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x35.sentry_protos.relay.v1.Tracecontext.TracecontextDataH\x01\x12\x18\n\x0e\x65xclusive_time\x18\x03 \x01(\x01H\x02\x12\x0c\n\x02op\x18\x04 \x01(\tH\x03\x12\x10\n\x06origin\x18\x05 \x01(\tH\x04\x12\x18\n\x0eparent_span_id\x18\x06 \x01(\tH\x05\x12\x11\n\x07sampled\x18\x07 \x01(\x08H\x06\x12\x0f\n\x07span_id\x18\x08 \x01(\t\x12\x10\n\x06status\x18\t \x01(\tH\x07\x12\x10\n\x08trace_id\x18\n \x01(\t\x1a\xe4\x03\n\x10TracecontextData\x12m\n\x0eprevious_route\x18\x01 \x01(\x0b\x32S.sentry_protos.relay.v1.Tracecontext.TracecontextData.TracecontextDataPreviousrouteH\x00\x12\\\n\x05route\x18\x02 \x01(\x0b\x32K.sentry_protos.relay.v1.Tracecontext.TracecontextData.TracecontextDataRouteH\x01\x1as\n\x1dTracecontextDataPreviousroute\x12\x0e\n\x04name\x18\x01 \x01(\tH\x00\x12(\n\x06params\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueH\x01\x42\n\n\x08has_nameB\x0c\n\nhas_params\x1ak\n\x15TracecontextDataRoute\x12\x0e\n\x04name\x18\x01 \x01(\tH\x00\x12(\n\x06params\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueH\x01\x42\n\n\x08has_nameB\x0c\n\nhas_paramsB\x14\n\x12has_previous_routeB\x0b\n\thas_routeB\x18\n\x16has_client_sample_rateB\n\n\x08has_dataB\x14\n\x12has_exclusive_timeB\x08\n\x06has_opB\x0c\n\nhas_originB\x14\n\x12has_parent_span_idB\r\n\x0bhas_sampledB\x0c\n\nhas_status\"\xf7\x02\n\x0fTransactioninfo\x12O\n\x07\x63hanges\x18\x01 \x03(\x0b\x32>.sentry_protos.relay.v1.Transactioninfo.TransactioninfoChanges\x12\x12\n\x08original\x18\x02 \x01(\tH\x00\x12\x16\n\x0cpropagations\x18\x03 \x01(\x04H\x01\x12\x10\n\x06source\x18\x04 \x01(\tH\x02\x1a\xa2\x01\n\x16TransactioninfoChanges\x12\x16\n\x0cpropagations\x18\x01 \x01(\x04H\x00\x12\x10\n\x06source\x18\x02 \x01(\tH\x01\x12+\n\ttimestamp\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueH\x02\x42\x12\n\x10has_propagationsB\x0c\n\nhas_sourceB\x0f\n\rhas_timestampB\x0e\n\x0chas_originalB\x12\n\x10has_propagationsB\x0c\n\nhas_source\"\xa1\x01\n\x15Transactionnamechange\x12\x16\n\x0cpropagations\x18\x01 \x01(\x04H\x00\x12\x10\n\x06source\x18\x02 \x01(\tH\x01\x12+\n\ttimestamp\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueH\x02\x42\x12\n\x10has_propagationsB\x0c\n\nhas_sourceB\x0f\n\rhas_timestamp\"\x82\x04\n\x04User\x12&\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x16.google.protobuf.ValueH\x00\x12\x0f\n\x05\x65mail\x18\x02 \x01(\tH\x01\x12\x33\n\x03geo\x18\x03 \x01(\x0b\x32$.sentry_protos.relay.v1.User.UserGeoH\x02\x12\x0c\n\x02id\x18\x04 \x01(\tH\x03\x12\x14\n\nip_address\x18\x05 \x01(\tH\x04\x12\x0e\n\x04name\x18\x06 \x01(\tH\x05\x12\x11\n\x07segment\x18\x07 \x01(\tH\x06\x12\x15\n\x0bsentry_user\x18\x08 \x01(\tH\x07\x12\x12\n\x08username\x18\t \x01(\tH\x08\x1a\x9b\x01\n\x07UserGeo\x12\x0e\n\x04\x63ity\x18\x01 \x01(\tH\x00\x12\x16\n\x0c\x63ountry_code\x18\x02 \x01(\tH\x01\x12\x10\n\x06region\x18\x03 \x01(\tH\x02\x12\x15\n\x0bsubdivision\x18\x04 \x01(\tH\x03\x42\n\n\x08has_cityB\x12\n\x10has_country_codeB\x0c\n\nhas_regionB\x11\n\x0fhas_subdivisionB\n\n\x08has_dataB\x0b\n\thas_emailB\t\n\x07has_geoB\x08\n\x06has_idB\x10\n\x0ehas_ip_addressB\n\n\x08has_nameB\r\n\x0bhas_segmentB\x11\n\x0fhas_sentry_userB\x0e\n\x0chas_username\"e\n\x13Userreportv2Context\x12\x17\n\rcontact_email\x18\x01 \x01(\tH\x00\x12\x11\n\x07message\x18\x02 \x01(\tH\x01\x42\x13\n\x11has_contact_emailB\r\n\x0bhas_messageb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sentry_protos.relay.v1.event_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_EVENT_EVENTEXCEPTION_EVENTEXCEPTIONVALUES_EVENTEXCEPTIONVALUESSTACKTRACE_REGISTERSENTRY']._loaded_options = None + _globals['_EVENT_EVENTEXCEPTION_EVENTEXCEPTIONVALUES_EVENTEXCEPTIONVALUESSTACKTRACE_REGISTERSENTRY']._serialized_options = b'8\001' + _globals['_EVENT_EVENTSTACKTRACE_REGISTERSENTRY']._loaded_options = None + _globals['_EVENT_EVENTSTACKTRACE_REGISTERSENTRY']._serialized_options = b'8\001' + _globals['_EVENT_EVENTTHREADS_EVENTTHREADSVALUES_EVENTTHREADSVALUESSTACKTRACE_REGISTERSENTRY']._loaded_options = None + _globals['_EVENT_EVENTTHREADS_EVENTTHREADSVALUES_EVENTTHREADSVALUESSTACKTRACE_REGISTERSENTRY']._serialized_options = b'8\001' + _globals['_EVENT_EVENTTHREADS_EVENTTHREADSVALUES_HELDLOCKSENTRY']._loaded_options = None + _globals['_EVENT_EVENTTHREADS_EVENTTHREADSVALUES_HELDLOCKSENTRY']._serialized_options = b'8\001' + _globals['_EVENT_CONTEXTSENTRY']._loaded_options = None + _globals['_EVENT_CONTEXTSENTRY']._serialized_options = b'8\001' + _globals['_EVENT_MODULESENTRY']._loaded_options = None + _globals['_EVENT_MODULESENTRY']._serialized_options = b'8\001' + _globals['_EXCEPTION_EXCEPTIONSTACKTRACE_REGISTERSENTRY']._loaded_options = None + _globals['_EXCEPTION_EXCEPTIONSTACKTRACE_REGISTERSENTRY']._serialized_options = b'8\001' + _globals['_RAWSTACKTRACE_REGISTERSENTRY']._loaded_options = None + _globals['_RAWSTACKTRACE_REGISTERSENTRY']._serialized_options = b'8\001' + _globals['_STACKTRACE_REGISTERSENTRY']._loaded_options = None + _globals['_STACKTRACE_REGISTERSENTRY']._serialized_options = b'8\001' + _globals['_THREAD_THREADSTACKTRACE_REGISTERSENTRY']._loaded_options = None + _globals['_THREAD_THREADSTACKTRACE_REGISTERSENTRY']._serialized_options = b'8\001' + _globals['_THREAD_HELDLOCKSENTRY']._loaded_options = None + _globals['_THREAD_HELDLOCKSENTRY']._serialized_options = b'8\001' + _globals['_EVENT']._serialized_start=93 + _globals['_EVENT']._serialized_end=13196 + _globals['_EVENT_EVENTBREADCRUMBS']._serialized_start=1390 + _globals['_EVENT_EVENTBREADCRUMBS']._serialized_end=1800 + _globals['_EVENT_EVENTBREADCRUMBS_EVENTBREADCRUMBSVALUES']._serialized_start=1498 + _globals['_EVENT_EVENTBREADCRUMBS_EVENTBREADCRUMBSVALUES']._serialized_end=1800 + _globals['_EVENT_EVENTDEBUGMETA']._serialized_start=1803 + _globals['_EVENT_EVENTDEBUGMETA']._serialized_end=2173 + _globals['_EVENT_EVENTDEBUGMETA_EVENTDEBUGMETASDKINFO']._serialized_start=1950 + _globals['_EVENT_EVENTDEBUGMETA_EVENTDEBUGMETASDKINFO']._serialized_end=2157 + _globals['_EVENT_EVENTERRORS']._serialized_start=2175 + _globals['_EVENT_EVENTERRORS']._serialized_end=2269 + _globals['_EVENT_EVENTEXCEPTION']._serialized_start=2272 + _globals['_EVENT_EVENTEXCEPTION']._serialized_end=6612 + _globals['_EVENT_EVENTEXCEPTION_EVENTEXCEPTIONVALUES']._serialized_start=2374 + _globals['_EVENT_EVENTEXCEPTION_EVENTEXCEPTIONVALUES']._serialized_end=6612 + _globals['_EVENT_EVENTEXCEPTION_EVENTEXCEPTIONVALUES_EVENTEXCEPTIONVALUESMECHANISM']._serialized_start=2733 + _globals['_EVENT_EVENTEXCEPTION_EVENTEXCEPTIONVALUES_EVENTEXCEPTIONVALUESMECHANISM']._serialized_end=4751 + _globals['_EVENT_EVENTEXCEPTION_EVENTEXCEPTIONVALUES_EVENTEXCEPTIONVALUESMECHANISM_EVENTEXCEPTIONVALUESMECHANISMMETA']._serialized_start=3147 + _globals['_EVENT_EVENTEXCEPTION_EVENTEXCEPTIONVALUES_EVENTEXCEPTIONVALUESMECHANISM_EVENTEXCEPTIONVALUESMECHANISMMETA']._serialized_end=4582 + _globals['_EVENT_EVENTEXCEPTION_EVENTEXCEPTIONVALUES_EVENTEXCEPTIONVALUESMECHANISM_EVENTEXCEPTIONVALUESMECHANISMMETA_EVENTEXCEPTIONVALUESMECHANISMMETAERRNO']._serialized_start=3964 + _globals['_EVENT_EVENTEXCEPTION_EVENTEXCEPTIONVALUES_EVENTEXCEPTIONVALUESMECHANISM_EVENTEXCEPTIONVALUESMECHANISMMETA_EVENTEXCEPTIONVALUESMECHANISMMETAERRNO']._serialized_end=4064 + _globals['_EVENT_EVENTEXCEPTION_EVENTEXCEPTIONVALUES_EVENTEXCEPTIONVALUESMECHANISM_EVENTEXCEPTIONVALUESMECHANISMMETA_EVENTEXCEPTIONVALUESMECHANISMMETAMACHEXCEPTION']._serialized_start=4067 + _globals['_EVENT_EVENTEXCEPTION_EVENTEXCEPTIONVALUES_EVENTEXCEPTIONVALUESMECHANISM_EVENTEXCEPTIONVALUESMECHANISMMETA_EVENTEXCEPTIONVALUESMECHANISMMETAMACHEXCEPTION']._serialized_end=4243 + _globals['_EVENT_EVENTEXCEPTION_EVENTEXCEPTIONVALUES_EVENTEXCEPTIONVALUESMECHANISM_EVENTEXCEPTIONVALUESMECHANISMMETA_EVENTEXCEPTIONVALUESMECHANISMMETANSERROR']._serialized_start=4245 + _globals['_EVENT_EVENTEXCEPTION_EVENTEXCEPTIONVALUES_EVENTEXCEPTIONVALUESMECHANISM_EVENTEXCEPTIONVALUESMECHANISMMETA_EVENTEXCEPTIONVALUESMECHANISMMETANSERROR']._serialized_end=4347 + _globals['_EVENT_EVENTEXCEPTION_EVENTEXCEPTIONVALUES_EVENTEXCEPTIONVALUESMECHANISM_EVENTEXCEPTIONVALUESMECHANISMMETA_EVENTEXCEPTIONVALUESMECHANISMMETASIGNAL']._serialized_start=4350 + _globals['_EVENT_EVENTEXCEPTION_EVENTEXCEPTIONVALUES_EVENTEXCEPTIONVALUESMECHANISM_EVENTEXCEPTIONVALUESMECHANISMMETA_EVENTEXCEPTIONVALUESMECHANISMMETASIGNAL']._serialized_end=4517 + _globals['_EVENT_EVENTEXCEPTION_EVENTEXCEPTIONVALUES_EVENTEXCEPTIONVALUESSTACKTRACE']._serialized_start=4754 + _globals['_EVENT_EVENTEXCEPTION_EVENTEXCEPTIONVALUES_EVENTEXCEPTIONVALUESSTACKTRACE']._serialized_end=6521 + _globals['_EVENT_EVENTEXCEPTION_EVENTEXCEPTIONVALUES_EVENTEXCEPTIONVALUESSTACKTRACE_EVENTEXCEPTIONVALUESSTACKTRACEFRAMES']._serialized_start=5150 + _globals['_EVENT_EVENTEXCEPTION_EVENTEXCEPTIONVALUES_EVENTEXCEPTIONVALUESSTACKTRACE_EVENTEXCEPTIONVALUESSTACKTRACEFRAMES']._serialized_end=6408 + _globals['_EVENT_EVENTEXCEPTION_EVENTEXCEPTIONVALUES_EVENTEXCEPTIONVALUESSTACKTRACE_EVENTEXCEPTIONVALUESSTACKTRACEFRAMES_EVENTEXCEPTIONVALUESSTACKTRACEFRAMESLOCK']._serialized_start=5844 + _globals['_EVENT_EVENTEXCEPTION_EVENTEXCEPTIONVALUES_EVENTEXCEPTIONVALUESSTACKTRACE_EVENTEXCEPTIONVALUESSTACKTRACEFRAMES_EVENTEXCEPTIONVALUESSTACKTRACEFRAMESLOCK']._serialized_end=6080 + _globals['_EVENT_EVENTEXCEPTION_EVENTEXCEPTIONVALUES_EVENTEXCEPTIONVALUESSTACKTRACE_REGISTERSENTRY']._serialized_start=6410 + _globals['_EVENT_EVENTEXCEPTION_EVENTEXCEPTIONVALUES_EVENTEXCEPTIONVALUESSTACKTRACE_REGISTERSENTRY']._serialized_end=6458 + _globals['_EVENT_EVENTLOGENTRY']._serialized_start=6614 + _globals['_EVENT_EVENTLOGENTRY']._serialized_end=6741 + _globals['_EVENT_EVENTREQUEST']._serialized_start=6744 + _globals['_EVENT_EVENTREQUEST']._serialized_end=7300 + _globals['_EVENT_EVENTSDK']._serialized_start=7303 + _globals['_EVENT_EVENTSDK']._serialized_end=7523 + _globals['_EVENT_EVENTSDK_EVENTSDKPACKAGES']._serialized_start=7443 + _globals['_EVENT_EVENTSDK_EVENTSDKPACKAGES']._serialized_end=7523 + _globals['_EVENT_EVENTSTACKTRACE']._serialized_start=7526 + _globals['_EVENT_EVENTSTACKTRACE']._serialized_end=9045 + _globals['_EVENT_EVENTSTACKTRACE_EVENTSTACKTRACEFRAMES']._serialized_start=7787 + _globals['_EVENT_EVENTSTACKTRACE_EVENTSTACKTRACEFRAMES']._serialized_end=8932 + _globals['_EVENT_EVENTSTACKTRACE_EVENTSTACKTRACEFRAMES_EVENTSTACKTRACEFRAMESLOCK']._serialized_start=8383 + _globals['_EVENT_EVENTSTACKTRACE_EVENTSTACKTRACEFRAMES_EVENTSTACKTRACEFRAMESLOCK']._serialized_end=8604 + _globals['_EVENT_EVENTSTACKTRACE_REGISTERSENTRY']._serialized_start=6410 + _globals['_EVENT_EVENTSTACKTRACE_REGISTERSENTRY']._serialized_end=6458 + _globals['_EVENT_EVENTTHREADS']._serialized_start=9048 + _globals['_EVENT_EVENTTHREADS']._serialized_end=11702 + _globals['_EVENT_EVENTTHREADS_EVENTTHREADSVALUES']._serialized_start=9144 + _globals['_EVENT_EVENTTHREADS_EVENTTHREADSVALUES']._serialized_end=11702 + _globals['_EVENT_EVENTTHREADS_EVENTTHREADSVALUES_EVENTTHREADSVALUESHELDLOCKS']._serialized_start=9504 + _globals['_EVENT_EVENTTHREADS_EVENTTHREADSVALUES_EVENTTHREADSVALUESHELDLOCKS']._serialized_end=9727 + _globals['_EVENT_EVENTTHREADS_EVENTTHREADSVALUES_EVENTTHREADSVALUESSTACKTRACE']._serialized_start=9730 + _globals['_EVENT_EVENTTHREADS_EVENTTHREADSVALUES_EVENTTHREADSVALUESSTACKTRACE']._serialized_end=11465 + _globals['_EVENT_EVENTTHREADS_EVENTTHREADSVALUES_EVENTTHREADSVALUESSTACKTRACE_EVENTTHREADSVALUESSTACKTRACEFRAMES']._serialized_start=10108 + _globals['_EVENT_EVENTTHREADS_EVENTTHREADSVALUES_EVENTTHREADSVALUESSTACKTRACE_EVENTTHREADSVALUESSTACKTRACEFRAMES']._serialized_end=11352 + _globals['_EVENT_EVENTTHREADS_EVENTTHREADSVALUES_EVENTTHREADSVALUESSTACKTRACE_EVENTTHREADSVALUESSTACKTRACEFRAMES_EVENTTHREADSVALUESSTACKTRACEFRAMESLOCK']._serialized_start=10790 + _globals['_EVENT_EVENTTHREADS_EVENTTHREADSVALUES_EVENTTHREADSVALUESSTACKTRACE_EVENTTHREADSVALUESSTACKTRACEFRAMES_EVENTTHREADSVALUESSTACKTRACEFRAMESLOCK']._serialized_end=11024 + _globals['_EVENT_EVENTTHREADS_EVENTTHREADSVALUES_EVENTTHREADSVALUESSTACKTRACE_REGISTERSENTRY']._serialized_start=6410 + _globals['_EVENT_EVENTTHREADS_EVENTTHREADSVALUES_EVENTTHREADSVALUESSTACKTRACE_REGISTERSENTRY']._serialized_end=6458 + _globals['_EVENT_EVENTTHREADS_EVENTTHREADSVALUES_HELDLOCKSENTRY']._serialized_start=11468 + _globals['_EVENT_EVENTTHREADS_EVENTTHREADSVALUES_HELDLOCKSENTRY']._serialized_end=11607 + _globals['_EVENT_EVENTTRANSACTIONINFO']._serialized_start=11705 + _globals['_EVENT_EVENTTRANSACTIONINFO']._serialized_end=12106 + _globals['_EVENT_EVENTTRANSACTIONINFO_EVENTTRANSACTIONINFOCHANGES']._serialized_start=11889 + _globals['_EVENT_EVENTTRANSACTIONINFO_EVENTTRANSACTIONINFOCHANGES']._serialized_end=12056 + _globals['_EVENT_EVENTUSER']._serialized_start=12109 + _globals['_EVENT_EVENTUSER']._serialized_end=12649 + _globals['_EVENT_EVENTUSER_EVENTUSERGEO']._serialized_start=12363 + _globals['_EVENT_EVENTUSER_EVENTUSERGEO']._serialized_end=12523 + _globals['_EVENT_CONTEXTSENTRY']._serialized_start=12651 + _globals['_EVENT_CONTEXTSENTRY']._serialized_end=12722 + _globals['_EVENT_MODULESENTRY']._serialized_start=12724 + _globals['_EVENT_MODULESENTRY']._serialized_end=12770 + _globals['_APPCONTEXT']._serialized_start=13199 + _globals['_APPCONTEXT']._serialized_end=13619 + _globals['_APPLEDEBUGIMAGE']._serialized_start=13622 + _globals['_APPLEDEBUGIMAGE']._serialized_end=13857 + _globals['_BREADCRUMB']._serialized_start=13860 + _globals['_BREADCRUMB']._serialized_end=14150 + _globals['_BROWSERCONTEXT']._serialized_start=14152 + _globals['_BROWSERCONTEXT']._serialized_end=14230 + _globals['_CERROR']._serialized_start=14232 + _globals['_CERROR']._serialized_end=14300 + _globals['_CLIENTSDKINFO']._serialized_start=14303 + _globals['_CLIENTSDKINFO']._serialized_end=14537 + _globals['_CLIENTSDKINFO_CLIENTSDKINFOPACKAGES']._serialized_start=14452 + _globals['_CLIENTSDKINFO_CLIENTSDKINFOPACKAGES']._serialized_end=14537 + _globals['_CLIENTSDKPACKAGE']._serialized_start=14539 + _globals['_CLIENTSDKPACKAGE']._serialized_end=14619 + _globals['_DATA']._serialized_start=14622 + _globals['_DATA']._serialized_end=14996 + _globals['_DATA_DATAPREVIOUSROUTE']._serialized_start=14761 + _globals['_DATA_DATAPREVIOUSROUTE']._serialized_end=14864 + _globals['_DATA_DATAROUTE']._serialized_start=14866 + _globals['_DATA_DATAROUTE']._serialized_end=14961 + _globals['_DEBUGMETA']._serialized_start=14999 + _globals['_DEBUGMETA']._serialized_end=15343 + _globals['_DEBUGMETA_DEBUGMETASDKINFO']._serialized_start=15125 + _globals['_DEBUGMETA_DEBUGMETASDKINFO']._serialized_end=15327 + _globals['_DEVICECONTEXT']._serialized_start=15346 + _globals['_DEVICECONTEXT']._serialized_end=17169 + _globals['_EVENTPROCESSINGERROR']._serialized_start=17171 + _globals['_EVENTPROCESSINGERROR']._serialized_end=17274 + _globals['_EXCEPTION']._serialized_start=17277 + _globals['_EXCEPTION']._serialized_end=20829 + _globals['_EXCEPTION_EXCEPTIONMECHANISM']._serialized_start=17539 + _globals['_EXCEPTION_EXCEPTIONMECHANISM']._serialized_end=19168 + _globals['_EXCEPTION_EXCEPTIONMECHANISM_EXCEPTIONMECHANISMMETA']._serialized_start=17886 + _globals['_EXCEPTION_EXCEPTIONMECHANISM_EXCEPTIONMECHANISMMETA']._serialized_end=18999 + _globals['_EXCEPTION_EXCEPTIONMECHANISM_EXCEPTIONMECHANISMMETA_EXCEPTIONMECHANISMMETAERRNO']._serialized_start=18425 + _globals['_EXCEPTION_EXCEPTIONMECHANISM_EXCEPTIONMECHANISMMETA_EXCEPTIONMECHANISMMETAERRNO']._serialized_end=18514 + _globals['_EXCEPTION_EXCEPTIONMECHANISM_EXCEPTIONMECHANISMMETA_EXCEPTIONMECHANISMMETAMACHEXCEPTION']._serialized_start=18517 + _globals['_EXCEPTION_EXCEPTIONMECHANISM_EXCEPTIONMECHANISMMETA_EXCEPTIONMECHANISMMETAMACHEXCEPTION']._serialized_end=18682 + _globals['_EXCEPTION_EXCEPTIONMECHANISM_EXCEPTIONMECHANISMMETA_EXCEPTIONMECHANISMMETANSERROR']._serialized_start=18684 + _globals['_EXCEPTION_EXCEPTIONMECHANISM_EXCEPTIONMECHANISMMETA_EXCEPTIONMECHANISMMETANSERROR']._serialized_end=18775 + _globals['_EXCEPTION_EXCEPTIONMECHANISM_EXCEPTIONMECHANISMMETA_EXCEPTIONMECHANISMMETASIGNAL']._serialized_start=18778 + _globals['_EXCEPTION_EXCEPTIONMECHANISM_EXCEPTIONMECHANISMMETA_EXCEPTIONMECHANISMMETASIGNAL']._serialized_end=18934 + _globals['_EXCEPTION_EXCEPTIONSTACKTRACE']._serialized_start=19171 + _globals['_EXCEPTION_EXCEPTIONSTACKTRACE']._serialized_end=20738 + _globals['_EXCEPTION_EXCEPTIONSTACKTRACE_EXCEPTIONSTACKTRACEFRAMES']._serialized_start=19456 + _globals['_EXCEPTION_EXCEPTIONSTACKTRACE_EXCEPTIONSTACKTRACEFRAMES']._serialized_end=20625 + _globals['_EXCEPTION_EXCEPTIONSTACKTRACE_EXCEPTIONSTACKTRACEFRAMES_EXCEPTIONSTACKTRACEFRAMESLOCK']._serialized_start=20072 + _globals['_EXCEPTION_EXCEPTIONSTACKTRACE_EXCEPTIONSTACKTRACEFRAMES_EXCEPTIONSTACKTRACEFRAMESLOCK']._serialized_end=20297 + _globals['_EXCEPTION_EXCEPTIONSTACKTRACE_REGISTERSENTRY']._serialized_start=6410 + _globals['_EXCEPTION_EXCEPTIONSTACKTRACE_REGISTERSENTRY']._serialized_end=6458 + _globals['_FRAME']._serialized_start=20832 + _globals['_FRAME']._serialized_end=21891 + _globals['_FRAME_FRAMELOCK']._serialized_start=21358 + _globals['_FRAME_FRAMELOCK']._serialized_end=21563 + _globals['_GEO']._serialized_start=21894 + _globals['_GEO']._serialized_end=22045 + _globals['_GPUCONTEXT']._serialized_start=22048 + _globals['_GPUCONTEXT']._serialized_end=22818 + _globals['_JVMDEBUGIMAGE']._serialized_start=22820 + _globals['_JVMDEBUGIMAGE']._serialized_end=22853 + _globals['_LOCKREASON']._serialized_start=22856 + _globals['_LOCKREASON']._serialized_end=23062 + _globals['_LOGENTRY']._serialized_start=23064 + _globals['_LOGENTRY']._serialized_end=23186 + _globals['_MACHEXCEPTION']._serialized_start=23189 + _globals['_MACHEXCEPTION']._serialized_end=23332 + _globals['_MECHANISM']._serialized_start=23335 + _globals['_MECHANISM']._serialized_end=24733 + _globals['_MECHANISM_MECHANISMMETA']._serialized_start=23645 + _globals['_MECHANISM_MECHANISMMETA']._serialized_end=24564 + _globals['_MECHANISM_MECHANISMMETA_MECHANISMMETAERRNO']._serialized_start=24026 + _globals['_MECHANISM_MECHANISMMETA_MECHANISMMETAERRNO']._serialized_end=24106 + _globals['_MECHANISM_MECHANISMMETA_MECHANISMMETAMACHEXCEPTION']._serialized_start=24109 + _globals['_MECHANISM_MECHANISMMETA_MECHANISMMETAMACHEXCEPTION']._serialized_end=24265 + _globals['_MECHANISM_MECHANISMMETA_MECHANISMMETANSERROR']._serialized_start=24267 + _globals['_MECHANISM_MECHANISMMETA_MECHANISMMETANSERROR']._serialized_end=24349 + _globals['_MECHANISM_MECHANISMMETA_MECHANISMMETASIGNAL']._serialized_start=24352 + _globals['_MECHANISM_MECHANISMMETA_MECHANISMMETASIGNAL']._serialized_end=24499 + _globals['_MECHANISMMETA']._serialized_start=24736 + _globals['_MECHANISMMETA']._serialized_end=25615 + _globals['_MECHANISMMETA_MECHANISMMETAERRNO']._serialized_start=25077 + _globals['_MECHANISMMETA_MECHANISMMETAERRNO']._serialized_end=25157 + _globals['_MECHANISMMETA_MECHANISMMETAMACHEXCEPTION']._serialized_start=25160 + _globals['_MECHANISMMETA_MECHANISMMETAMACHEXCEPTION']._serialized_end=25316 + _globals['_MECHANISMMETA_MECHANISMMETANSERROR']._serialized_start=25318 + _globals['_MECHANISMMETA_MECHANISMMETANSERROR']._serialized_end=25400 + _globals['_MECHANISMMETA_MECHANISMMETASIGNAL']._serialized_start=25403 + _globals['_MECHANISMMETA_MECHANISMMETASIGNAL']._serialized_end=25550 + _globals['_NATIVEDEBUGIMAGE']._serialized_start=25618 + _globals['_NATIVEDEBUGIMAGE']._serialized_end=25947 + _globals['_NELCONTEXT']._serialized_start=25950 + _globals['_NELCONTEXT']._serialized_end=26192 + _globals['_NSERROR']._serialized_start=26194 + _globals['_NSERROR']._serialized_end=26263 + _globals['_OSCONTEXT']._serialized_start=26266 + _globals['_OSCONTEXT']._serialized_end=26499 + _globals['_OTELCONTEXT']._serialized_start=26502 + _globals['_OTELCONTEXT']._serialized_end=26639 + _globals['_POSIXSIGNAL']._serialized_start=26642 + _globals['_POSIXSIGNAL']._serialized_end=26781 + _globals['_PROFILECONTEXT']._serialized_start=26783 + _globals['_PROFILECONTEXT']._serialized_end=26819 + _globals['_PROGUARDDEBUGIMAGE']._serialized_start=26821 + _globals['_PROGUARDDEBUGIMAGE']._serialized_end=26855 + _globals['_RAWSTACKTRACE']._serialized_start=26858 + _globals['_RAWSTACKTRACE']._serialized_end=28341 + _globals['_RAWSTACKTRACE_RAWSTACKTRACEFRAMES']._serialized_start=27099 + _globals['_RAWSTACKTRACE_RAWSTACKTRACEFRAMES']._serialized_end=28228 + _globals['_RAWSTACKTRACE_RAWSTACKTRACEFRAMES_RAWSTACKTRACEFRAMESLOCK']._serialized_start=27681 + _globals['_RAWSTACKTRACE_RAWSTACKTRACEFRAMES_RAWSTACKTRACEFRAMESLOCK']._serialized_end=27900 + _globals['_RAWSTACKTRACE_REGISTERSENTRY']._serialized_start=6410 + _globals['_RAWSTACKTRACE_REGISTERSENTRY']._serialized_end=6458 + _globals['_REPLAYCONTEXT']._serialized_start=28343 + _globals['_REPLAYCONTEXT']._serialized_end=28396 + _globals['_REQUEST']._serialized_start=28399 + _globals['_REQUEST']._serialized_end=28950 + _globals['_RESPONSECONTEXT']._serialized_start=28953 + _globals['_RESPONSECONTEXT']._serialized_end=29266 + _globals['_ROUTE']._serialized_start=29268 + _globals['_ROUTE']._serialized_end=29359 + _globals['_RUNTIMECONTEXT']._serialized_start=29362 + _globals['_RUNTIMECONTEXT']._serialized_end=29520 + _globals['_SOURCEMAPDEBUGIMAGE']._serialized_start=29522 + _globals['_SOURCEMAPDEBUGIMAGE']._serialized_end=29620 + _globals['_STACKTRACE']._serialized_start=29623 + _globals['_STACKTRACE']._serialized_end=31079 + _globals['_STACKTRACE_STACKTRACEFRAMES']._serialized_start=29852 + _globals['_STACKTRACE_STACKTRACEFRAMES']._serialized_end=30966 + _globals['_STACKTRACE_STACKTRACEFRAMES_STACKTRACEFRAMESLOCK']._serialized_start=30422 + _globals['_STACKTRACE_STACKTRACEFRAMES_STACKTRACEFRAMESLOCK']._serialized_end=30638 + _globals['_STACKTRACE_REGISTERSENTRY']._serialized_start=6410 + _globals['_STACKTRACE_REGISTERSENTRY']._serialized_end=6458 + _globals['_SYSTEMSDKINFO']._serialized_start=31082 + _globals['_SYSTEMSDKINFO']._serialized_end=31281 + _globals['_TAGENTRY']._serialized_start=31283 + _globals['_TAGENTRY']._serialized_end=31341 + _globals['_THREAD']._serialized_start=31344 + _globals['_THREAD']._serialized_end=33556 + _globals['_THREAD_THREADHELDLOCKS']._serialized_start=31618 + _globals['_THREAD_THREADHELDLOCKS']._serialized_end=31829 + _globals['_THREAD_THREADSTACKTRACE']._serialized_start=31832 + _globals['_THREAD_THREADSTACKTRACE']._serialized_end=33363 + _globals['_THREAD_THREADSTACKTRACE_THREADSTACKTRACEFRAMES']._serialized_start=32099 + _globals['_THREAD_THREADSTACKTRACE_THREADSTACKTRACEFRAMES']._serialized_end=33250 + _globals['_THREAD_THREADSTACKTRACE_THREADSTACKTRACEFRAMES_THREADSTACKTRACEFRAMESLOCK']._serialized_start=32700 + _globals['_THREAD_THREADSTACKTRACE_THREADSTACKTRACEFRAMES_THREADSTACKTRACEFRAMESLOCK']._serialized_end=32922 + _globals['_THREAD_THREADSTACKTRACE_REGISTERSENTRY']._serialized_start=6410 + _globals['_THREAD_THREADSTACKTRACE_REGISTERSENTRY']._serialized_end=6458 + _globals['_THREAD_HELDLOCKSENTRY']._serialized_start=33365 + _globals['_THREAD_HELDLOCKSENTRY']._serialized_end=33461 + _globals['_TRACECONTEXT']._serialized_start=33559 + _globals['_TRACECONTEXT']._serialized_end=34452 + _globals['_TRACECONTEXT_TRACECONTEXTDATA']._serialized_start=33833 + _globals['_TRACECONTEXT_TRACECONTEXTDATA']._serialized_end=34317 + _globals['_TRACECONTEXT_TRACECONTEXTDATA_TRACECONTEXTDATAPREVIOUSROUTE']._serialized_start=34058 + _globals['_TRACECONTEXT_TRACECONTEXTDATA_TRACECONTEXTDATAPREVIOUSROUTE']._serialized_end=34173 + _globals['_TRACECONTEXT_TRACECONTEXTDATA_TRACECONTEXTDATAROUTE']._serialized_start=34175 + _globals['_TRACECONTEXT_TRACECONTEXTDATA_TRACECONTEXTDATAROUTE']._serialized_end=34282 + _globals['_TRANSACTIONINFO']._serialized_start=34455 + _globals['_TRANSACTIONINFO']._serialized_end=34830 + _globals['_TRANSACTIONINFO_TRANSACTIONINFOCHANGES']._serialized_start=34618 + _globals['_TRANSACTIONINFO_TRANSACTIONINFOCHANGES']._serialized_end=34780 + _globals['_TRANSACTIONNAMECHANGE']._serialized_start=34833 + _globals['_TRANSACTIONNAMECHANGE']._serialized_end=34994 + _globals['_USER']._serialized_start=34997 + _globals['_USER']._serialized_end=35511 + _globals['_USER_USERGEO']._serialized_start=35230 + _globals['_USER_USERGEO']._serialized_end=35385 + _globals['_USERREPORTV2CONTEXT']._serialized_start=35513 + _globals['_USERREPORTV2CONTEXT']._serialized_end=35614 +# @@protoc_insertion_point(module_scope) diff --git a/py/sentry_protos/relay/v1/event_pb2.pyi b/py/sentry_protos/relay/v1/event_pb2.pyi new file mode 100644 index 00000000..720b0dd7 --- /dev/null +++ b/py/sentry_protos/relay/v1/event_pb2.pyi @@ -0,0 +1,5938 @@ +""" +@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 google.protobuf.struct_pb2 +import typing + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class Event(google.protobuf.message.Message): + """ + The sentry v7 event structure. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class EventBreadcrumbs(google.protobuf.message.Message): + """ + List of breadcrumbs recorded before this event. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class EventBreadcrumbsValues(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CATEGORY_FIELD_NUMBER: builtins.int + DATA_FIELD_NUMBER: builtins.int + EVENT_ID_FIELD_NUMBER: builtins.int + LEVEL_FIELD_NUMBER: builtins.int + MESSAGE_FIELD_NUMBER: builtins.int + TIMESTAMP_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + category: builtins.str + event_id: builtins.str + level: builtins.str + message: builtins.str + type: builtins.str + @property + def data(self) -> google.protobuf.struct_pb2.Value: ... + @property + def timestamp(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + category: builtins.str = ..., + data: google.protobuf.struct_pb2.Value | None = ..., + event_id: builtins.str = ..., + level: builtins.str = ..., + message: builtins.str = ..., + timestamp: google.protobuf.struct_pb2.Value | None = ..., + type: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["category", b"category", "data", b"data", "event_id", b"event_id", "has_category", b"has_category", "has_data", b"has_data", "has_event_id", b"has_event_id", "has_level", b"has_level", "has_message", b"has_message", "has_timestamp", b"has_timestamp", "has_type", b"has_type", "level", b"level", "message", b"message", "timestamp", b"timestamp", "type", b"type"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["category", b"category", "data", b"data", "event_id", b"event_id", "has_category", b"has_category", "has_data", b"has_data", "has_event_id", b"has_event_id", "has_level", b"has_level", "has_message", b"has_message", "has_timestamp", b"has_timestamp", "has_type", b"has_type", "level", b"level", "message", b"message", "timestamp", b"timestamp", "type", b"type"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_category", b"has_category"]) -> typing.Literal["category"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_data", b"has_data"]) -> typing.Literal["data"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_event_id", b"has_event_id"]) -> typing.Literal["event_id"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_level", b"has_level"]) -> typing.Literal["level"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_message", b"has_message"]) -> typing.Literal["message"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_timestamp", b"has_timestamp"]) -> typing.Literal["timestamp"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_type", b"has_type"]) -> typing.Literal["type"] | None: ... + + VALUES_FIELD_NUMBER: builtins.int + @property + def values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Event.EventBreadcrumbs.EventBreadcrumbsValues]: ... + def __init__( + self, + *, + values: collections.abc.Iterable[global___Event.EventBreadcrumbs.EventBreadcrumbsValues] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["values", b"values"]) -> None: ... + + @typing.final + class EventDebugMeta(google.protobuf.message.Message): + """ + Meta data for event processing and debugging. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class EventDebugMetaSdkInfo(google.protobuf.message.Message): + """ + Information about the system SDK (e.g. iOS SDK). + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + SDK_NAME_FIELD_NUMBER: builtins.int + VERSION_MAJOR_FIELD_NUMBER: builtins.int + VERSION_MINOR_FIELD_NUMBER: builtins.int + VERSION_PATCHLEVEL_FIELD_NUMBER: builtins.int + sdk_name: builtins.str + version_major: builtins.int + version_minor: builtins.int + version_patchlevel: builtins.int + def __init__( + self, + *, + sdk_name: builtins.str = ..., + version_major: builtins.int = ..., + version_minor: builtins.int = ..., + version_patchlevel: builtins.int = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_sdk_name", b"has_sdk_name", "has_version_major", b"has_version_major", "has_version_minor", b"has_version_minor", "has_version_patchlevel", b"has_version_patchlevel", "sdk_name", b"sdk_name", "version_major", b"version_major", "version_minor", b"version_minor", "version_patchlevel", b"version_patchlevel"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_sdk_name", b"has_sdk_name", "has_version_major", b"has_version_major", "has_version_minor", b"has_version_minor", "has_version_patchlevel", b"has_version_patchlevel", "sdk_name", b"sdk_name", "version_major", b"version_major", "version_minor", b"version_minor", "version_patchlevel", b"version_patchlevel"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_sdk_name", b"has_sdk_name"]) -> typing.Literal["sdk_name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_version_major", b"has_version_major"]) -> typing.Literal["version_major"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_version_minor", b"has_version_minor"]) -> typing.Literal["version_minor"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_version_patchlevel", b"has_version_patchlevel"]) -> typing.Literal["version_patchlevel"] | None: ... + + IMAGES_FIELD_NUMBER: builtins.int + SDK_INFO_FIELD_NUMBER: builtins.int + @property + def images(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[google.protobuf.struct_pb2.Value]: ... + @property + def sdk_info(self) -> global___Event.EventDebugMeta.EventDebugMetaSdkInfo: ... + def __init__( + self, + *, + images: collections.abc.Iterable[google.protobuf.struct_pb2.Value] | None = ..., + sdk_info: global___Event.EventDebugMeta.EventDebugMetaSdkInfo | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_sdk_info", b"has_sdk_info", "sdk_info", b"sdk_info"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_sdk_info", b"has_sdk_info", "images", b"images", "sdk_info", b"sdk_info"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["has_sdk_info", b"has_sdk_info"]) -> typing.Literal["sdk_info"] | None: ... + + @typing.final + class EventErrors(google.protobuf.message.Message): + """ + Errors encountered during processing. Intended to be phased out in favor of + annotation/metadata system. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAME_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + name: builtins.str + type: builtins.str + @property + def value(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + name: builtins.str = ..., + type: builtins.str = ..., + value: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_name", b"has_name", "name", b"name", "value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_name", b"has_name", "name", b"name", "type", b"type", "value", b"value"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["has_name", b"has_name"]) -> typing.Literal["name"] | None: ... + + @typing.final + class EventException(google.protobuf.message.Message): + """ + One or multiple chained (nested) exceptions. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class EventExceptionValues(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class EventExceptionValuesMechanism(google.protobuf.message.Message): + """ + Mechanism by which this exception was generated and handled. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class EventExceptionValuesMechanismMeta(google.protobuf.message.Message): + """ + Operating system or runtime meta information. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class EventExceptionValuesMechanismMetaErrno(google.protobuf.message.Message): + """ + Optional ISO C standard error code. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAME_FIELD_NUMBER: builtins.int + NUMBER_FIELD_NUMBER: builtins.int + name: builtins.str + number: builtins.int + def __init__( + self, + *, + name: builtins.str = ..., + number: builtins.int = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_name", b"has_name", "has_number", b"has_number", "name", b"name", "number", b"number"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_name", b"has_name", "has_number", b"has_number", "name", b"name", "number", b"number"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_name", b"has_name"]) -> typing.Literal["name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_number", b"has_number"]) -> typing.Literal["number"] | None: ... + + @typing.final + class EventExceptionValuesMechanismMetaMachException(google.protobuf.message.Message): + """ + A Mach Exception on Apple systems comprising a code triple and optional descriptions. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CODE_FIELD_NUMBER: builtins.int + EXCEPTION_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + SUBCODE_FIELD_NUMBER: builtins.int + code: builtins.int + exception: builtins.int + name: builtins.str + subcode: builtins.int + def __init__( + self, + *, + code: builtins.int = ..., + exception: builtins.int = ..., + name: builtins.str = ..., + subcode: builtins.int = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["code", b"code", "exception", b"exception", "has_code", b"has_code", "has_exception", b"has_exception", "has_name", b"has_name", "has_subcode", b"has_subcode", "name", b"name", "subcode", b"subcode"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["code", b"code", "exception", b"exception", "has_code", b"has_code", "has_exception", b"has_exception", "has_name", b"has_name", "has_subcode", b"has_subcode", "name", b"name", "subcode", b"subcode"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_code", b"has_code"]) -> typing.Literal["code"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_exception", b"has_exception"]) -> typing.Literal["exception"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_name", b"has_name"]) -> typing.Literal["name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_subcode", b"has_subcode"]) -> typing.Literal["subcode"] | None: ... + + @typing.final + class EventExceptionValuesMechanismMetaNsError(google.protobuf.message.Message): + """ + An NSError on Apple systems comprising code and signal. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CODE_FIELD_NUMBER: builtins.int + DOMAIN_FIELD_NUMBER: builtins.int + code: builtins.int + domain: builtins.str + def __init__( + self, + *, + code: builtins.int = ..., + domain: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["code", b"code", "domain", b"domain", "has_code", b"has_code", "has_domain", b"has_domain"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["code", b"code", "domain", b"domain", "has_code", b"has_code", "has_domain", b"has_domain"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_code", b"has_code"]) -> typing.Literal["code"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_domain", b"has_domain"]) -> typing.Literal["domain"] | None: ... + + @typing.final + class EventExceptionValuesMechanismMetaSignal(google.protobuf.message.Message): + """ + Information on the POSIX signal. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CODE_FIELD_NUMBER: builtins.int + CODE_NAME_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + NUMBER_FIELD_NUMBER: builtins.int + code: builtins.int + code_name: builtins.str + name: builtins.str + number: builtins.int + def __init__( + self, + *, + code: builtins.int = ..., + code_name: builtins.str = ..., + name: builtins.str = ..., + number: builtins.int = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["code", b"code", "code_name", b"code_name", "has_code", b"has_code", "has_code_name", b"has_code_name", "has_name", b"has_name", "has_number", b"has_number", "name", b"name", "number", b"number"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["code", b"code", "code_name", b"code_name", "has_code", b"has_code", "has_code_name", b"has_code_name", "has_name", b"has_name", "has_number", b"has_number", "name", b"name", "number", b"number"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_code", b"has_code"]) -> typing.Literal["code"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_code_name", b"has_code_name"]) -> typing.Literal["code_name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_name", b"has_name"]) -> typing.Literal["name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_number", b"has_number"]) -> typing.Literal["number"] | None: ... + + ERRNO_FIELD_NUMBER: builtins.int + MACH_EXCEPTION_FIELD_NUMBER: builtins.int + NS_ERROR_FIELD_NUMBER: builtins.int + SIGNAL_FIELD_NUMBER: builtins.int + @property + def errno(self) -> global___Event.EventException.EventExceptionValues.EventExceptionValuesMechanism.EventExceptionValuesMechanismMeta.EventExceptionValuesMechanismMetaErrno: ... + @property + def mach_exception(self) -> global___Event.EventException.EventExceptionValues.EventExceptionValuesMechanism.EventExceptionValuesMechanismMeta.EventExceptionValuesMechanismMetaMachException: ... + @property + def ns_error(self) -> global___Event.EventException.EventExceptionValues.EventExceptionValuesMechanism.EventExceptionValuesMechanismMeta.EventExceptionValuesMechanismMetaNsError: ... + @property + def signal(self) -> global___Event.EventException.EventExceptionValues.EventExceptionValuesMechanism.EventExceptionValuesMechanismMeta.EventExceptionValuesMechanismMetaSignal: ... + def __init__( + self, + *, + errno: global___Event.EventException.EventExceptionValues.EventExceptionValuesMechanism.EventExceptionValuesMechanismMeta.EventExceptionValuesMechanismMetaErrno | None = ..., + mach_exception: global___Event.EventException.EventExceptionValues.EventExceptionValuesMechanism.EventExceptionValuesMechanismMeta.EventExceptionValuesMechanismMetaMachException | None = ..., + ns_error: global___Event.EventException.EventExceptionValues.EventExceptionValuesMechanism.EventExceptionValuesMechanismMeta.EventExceptionValuesMechanismMetaNsError | None = ..., + signal: global___Event.EventException.EventExceptionValues.EventExceptionValuesMechanism.EventExceptionValuesMechanismMeta.EventExceptionValuesMechanismMetaSignal | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["errno", b"errno", "has_errno", b"has_errno", "has_mach_exception", b"has_mach_exception", "has_ns_error", b"has_ns_error", "has_signal", b"has_signal", "mach_exception", b"mach_exception", "ns_error", b"ns_error", "signal", b"signal"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["errno", b"errno", "has_errno", b"has_errno", "has_mach_exception", b"has_mach_exception", "has_ns_error", b"has_ns_error", "has_signal", b"has_signal", "mach_exception", b"mach_exception", "ns_error", b"ns_error", "signal", b"signal"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_errno", b"has_errno"]) -> typing.Literal["errno"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_mach_exception", b"has_mach_exception"]) -> typing.Literal["mach_exception"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_ns_error", b"has_ns_error"]) -> typing.Literal["ns_error"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_signal", b"has_signal"]) -> typing.Literal["signal"] | None: ... + + DATA_FIELD_NUMBER: builtins.int + DESCRIPTION_FIELD_NUMBER: builtins.int + EXCEPTION_ID_FIELD_NUMBER: builtins.int + HANDLED_FIELD_NUMBER: builtins.int + HELP_LINK_FIELD_NUMBER: builtins.int + IS_EXCEPTION_GROUP_FIELD_NUMBER: builtins.int + META_FIELD_NUMBER: builtins.int + PARENT_ID_FIELD_NUMBER: builtins.int + SOURCE_FIELD_NUMBER: builtins.int + SYNTHETIC_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + description: builtins.str + exception_id: builtins.int + handled: builtins.bool + help_link: builtins.str + is_exception_group: builtins.bool + parent_id: builtins.int + source: builtins.str + synthetic: builtins.bool + type: builtins.str + @property + def data(self) -> google.protobuf.struct_pb2.Value: ... + @property + def meta(self) -> global___Event.EventException.EventExceptionValues.EventExceptionValuesMechanism.EventExceptionValuesMechanismMeta: ... + def __init__( + self, + *, + data: google.protobuf.struct_pb2.Value | None = ..., + description: builtins.str = ..., + exception_id: builtins.int = ..., + handled: builtins.bool = ..., + help_link: builtins.str = ..., + is_exception_group: builtins.bool = ..., + meta: global___Event.EventException.EventExceptionValues.EventExceptionValuesMechanism.EventExceptionValuesMechanismMeta | None = ..., + parent_id: builtins.int = ..., + source: builtins.str = ..., + synthetic: builtins.bool = ..., + type: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["data", b"data", "description", b"description", "exception_id", b"exception_id", "handled", b"handled", "has_data", b"has_data", "has_description", b"has_description", "has_exception_id", b"has_exception_id", "has_handled", b"has_handled", "has_help_link", b"has_help_link", "has_is_exception_group", b"has_is_exception_group", "has_meta", b"has_meta", "has_parent_id", b"has_parent_id", "has_source", b"has_source", "has_synthetic", b"has_synthetic", "help_link", b"help_link", "is_exception_group", b"is_exception_group", "meta", b"meta", "parent_id", b"parent_id", "source", b"source", "synthetic", b"synthetic"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["data", b"data", "description", b"description", "exception_id", b"exception_id", "handled", b"handled", "has_data", b"has_data", "has_description", b"has_description", "has_exception_id", b"has_exception_id", "has_handled", b"has_handled", "has_help_link", b"has_help_link", "has_is_exception_group", b"has_is_exception_group", "has_meta", b"has_meta", "has_parent_id", b"has_parent_id", "has_source", b"has_source", "has_synthetic", b"has_synthetic", "help_link", b"help_link", "is_exception_group", b"is_exception_group", "meta", b"meta", "parent_id", b"parent_id", "source", b"source", "synthetic", b"synthetic", "type", b"type"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_data", b"has_data"]) -> typing.Literal["data"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_description", b"has_description"]) -> typing.Literal["description"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_exception_id", b"has_exception_id"]) -> typing.Literal["exception_id"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_handled", b"has_handled"]) -> typing.Literal["handled"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_help_link", b"has_help_link"]) -> typing.Literal["help_link"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_is_exception_group", b"has_is_exception_group"]) -> typing.Literal["is_exception_group"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_meta", b"has_meta"]) -> typing.Literal["meta"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_parent_id", b"has_parent_id"]) -> typing.Literal["parent_id"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_source", b"has_source"]) -> typing.Literal["source"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_synthetic", b"has_synthetic"]) -> typing.Literal["synthetic"] | None: ... + + @typing.final + class EventExceptionValuesStacktrace(google.protobuf.message.Message): + """ + Stack trace containing frames of this exception. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class EventExceptionValuesStacktraceFrames(google.protobuf.message.Message): + """ + Required. A non-empty list of stack frames. The list is ordered from caller to callee, or + oldest to youngest. The last frame is the one creating the exception. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class EventExceptionValuesStacktraceFramesLock(google.protobuf.message.Message): + """ + A possible lock (java monitor object) held by this frame. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ADDRESS_FIELD_NUMBER: builtins.int + CLASS_NAME_FIELD_NUMBER: builtins.int + PACKAGE_NAME_FIELD_NUMBER: builtins.int + THREAD_ID_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + address: builtins.str + class_name: builtins.str + package_name: builtins.str + type: builtins.str + @property + def thread_id(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + address: builtins.str = ..., + class_name: builtins.str = ..., + package_name: builtins.str = ..., + thread_id: google.protobuf.struct_pb2.Value | None = ..., + type: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["address", b"address", "class_name", b"class_name", "has_address", b"has_address", "has_class_name", b"has_class_name", "has_package_name", b"has_package_name", "has_thread_id", b"has_thread_id", "package_name", b"package_name", "thread_id", b"thread_id"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["address", b"address", "class_name", b"class_name", "has_address", b"has_address", "has_class_name", b"has_class_name", "has_package_name", b"has_package_name", "has_thread_id", b"has_thread_id", "package_name", b"package_name", "thread_id", b"thread_id", "type", b"type"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_address", b"has_address"]) -> typing.Literal["address"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_class_name", b"has_class_name"]) -> typing.Literal["class_name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_package_name", b"has_package_name"]) -> typing.Literal["package_name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_thread_id", b"has_thread_id"]) -> typing.Literal["thread_id"] | None: ... + + ABS_PATH_FIELD_NUMBER: builtins.int + ADDR_MODE_FIELD_NUMBER: builtins.int + COLNO_FIELD_NUMBER: builtins.int + CONTEXT_LINE_FIELD_NUMBER: builtins.int + FILENAME_FIELD_NUMBER: builtins.int + FUNCTION_FIELD_NUMBER: builtins.int + FUNCTION_ID_FIELD_NUMBER: builtins.int + IMAGE_ADDR_FIELD_NUMBER: builtins.int + IN_APP_FIELD_NUMBER: builtins.int + INSTRUCTION_ADDR_FIELD_NUMBER: builtins.int + LINENO_FIELD_NUMBER: builtins.int + LOCK_FIELD_NUMBER: builtins.int + MODULE_FIELD_NUMBER: builtins.int + PACKAGE_FIELD_NUMBER: builtins.int + PLATFORM_FIELD_NUMBER: builtins.int + POST_CONTEXT_FIELD_NUMBER: builtins.int + PRE_CONTEXT_FIELD_NUMBER: builtins.int + RAW_FUNCTION_FIELD_NUMBER: builtins.int + STACK_START_FIELD_NUMBER: builtins.int + SYMBOL_FIELD_NUMBER: builtins.int + SYMBOL_ADDR_FIELD_NUMBER: builtins.int + VARS_FIELD_NUMBER: builtins.int + abs_path: builtins.str + addr_mode: builtins.str + colno: builtins.int + context_line: builtins.str + filename: builtins.str + function: builtins.str + function_id: builtins.str + image_addr: builtins.str + in_app: builtins.bool + instruction_addr: builtins.str + lineno: builtins.int + module: builtins.str + package: builtins.str + platform: builtins.str + raw_function: builtins.str + stack_start: builtins.bool + symbol: builtins.str + symbol_addr: builtins.str + @property + def lock(self) -> global___Event.EventException.EventExceptionValues.EventExceptionValuesStacktrace.EventExceptionValuesStacktraceFrames.EventExceptionValuesStacktraceFramesLock: ... + @property + def post_context(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def pre_context(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def vars(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + abs_path: builtins.str = ..., + addr_mode: builtins.str = ..., + colno: builtins.int = ..., + context_line: builtins.str = ..., + filename: builtins.str = ..., + function: builtins.str = ..., + function_id: builtins.str = ..., + image_addr: builtins.str = ..., + in_app: builtins.bool = ..., + instruction_addr: builtins.str = ..., + lineno: builtins.int = ..., + lock: global___Event.EventException.EventExceptionValues.EventExceptionValuesStacktrace.EventExceptionValuesStacktraceFrames.EventExceptionValuesStacktraceFramesLock | None = ..., + module: builtins.str = ..., + package: builtins.str = ..., + platform: builtins.str = ..., + post_context: collections.abc.Iterable[builtins.str] | None = ..., + pre_context: collections.abc.Iterable[builtins.str] | None = ..., + raw_function: builtins.str = ..., + stack_start: builtins.bool = ..., + symbol: builtins.str = ..., + symbol_addr: builtins.str = ..., + vars: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["abs_path", b"abs_path", "addr_mode", b"addr_mode", "colno", b"colno", "context_line", b"context_line", "filename", b"filename", "function", b"function", "function_id", b"function_id", "has_abs_path", b"has_abs_path", "has_addr_mode", b"has_addr_mode", "has_colno", b"has_colno", "has_context_line", b"has_context_line", "has_filename", b"has_filename", "has_function", b"has_function", "has_function_id", b"has_function_id", "has_image_addr", b"has_image_addr", "has_in_app", b"has_in_app", "has_instruction_addr", b"has_instruction_addr", "has_lineno", b"has_lineno", "has_lock", b"has_lock", "has_module", b"has_module", "has_package", b"has_package", "has_platform", b"has_platform", "has_raw_function", b"has_raw_function", "has_stack_start", b"has_stack_start", "has_symbol", b"has_symbol", "has_symbol_addr", b"has_symbol_addr", "has_vars", b"has_vars", "image_addr", b"image_addr", "in_app", b"in_app", "instruction_addr", b"instruction_addr", "lineno", b"lineno", "lock", b"lock", "module", b"module", "package", b"package", "platform", b"platform", "raw_function", b"raw_function", "stack_start", b"stack_start", "symbol", b"symbol", "symbol_addr", b"symbol_addr", "vars", b"vars"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["abs_path", b"abs_path", "addr_mode", b"addr_mode", "colno", b"colno", "context_line", b"context_line", "filename", b"filename", "function", b"function", "function_id", b"function_id", "has_abs_path", b"has_abs_path", "has_addr_mode", b"has_addr_mode", "has_colno", b"has_colno", "has_context_line", b"has_context_line", "has_filename", b"has_filename", "has_function", b"has_function", "has_function_id", b"has_function_id", "has_image_addr", b"has_image_addr", "has_in_app", b"has_in_app", "has_instruction_addr", b"has_instruction_addr", "has_lineno", b"has_lineno", "has_lock", b"has_lock", "has_module", b"has_module", "has_package", b"has_package", "has_platform", b"has_platform", "has_raw_function", b"has_raw_function", "has_stack_start", b"has_stack_start", "has_symbol", b"has_symbol", "has_symbol_addr", b"has_symbol_addr", "has_vars", b"has_vars", "image_addr", b"image_addr", "in_app", b"in_app", "instruction_addr", b"instruction_addr", "lineno", b"lineno", "lock", b"lock", "module", b"module", "package", b"package", "platform", b"platform", "post_context", b"post_context", "pre_context", b"pre_context", "raw_function", b"raw_function", "stack_start", b"stack_start", "symbol", b"symbol", "symbol_addr", b"symbol_addr", "vars", b"vars"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_abs_path", b"has_abs_path"]) -> typing.Literal["abs_path"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_addr_mode", b"has_addr_mode"]) -> typing.Literal["addr_mode"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_colno", b"has_colno"]) -> typing.Literal["colno"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_context_line", b"has_context_line"]) -> typing.Literal["context_line"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_filename", b"has_filename"]) -> typing.Literal["filename"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_function", b"has_function"]) -> typing.Literal["function"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_function_id", b"has_function_id"]) -> typing.Literal["function_id"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_image_addr", b"has_image_addr"]) -> typing.Literal["image_addr"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_in_app", b"has_in_app"]) -> typing.Literal["in_app"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_instruction_addr", b"has_instruction_addr"]) -> typing.Literal["instruction_addr"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_lineno", b"has_lineno"]) -> typing.Literal["lineno"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_lock", b"has_lock"]) -> typing.Literal["lock"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_module", b"has_module"]) -> typing.Literal["module"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_package", b"has_package"]) -> typing.Literal["package"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_platform", b"has_platform"]) -> typing.Literal["platform"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_raw_function", b"has_raw_function"]) -> typing.Literal["raw_function"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_stack_start", b"has_stack_start"]) -> typing.Literal["stack_start"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_symbol", b"has_symbol"]) -> typing.Literal["symbol"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_symbol_addr", b"has_symbol_addr"]) -> typing.Literal["symbol_addr"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_vars", b"has_vars"]) -> typing.Literal["vars"] | None: ... + + @typing.final + class RegistersEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str + def __init__( + self, + *, + key: builtins.str = ..., + value: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... + + FRAMES_FIELD_NUMBER: builtins.int + INSTRUCTION_ADDR_ADJUSTMENT_FIELD_NUMBER: builtins.int + LANG_FIELD_NUMBER: builtins.int + REGISTERS_FIELD_NUMBER: builtins.int + SNAPSHOT_FIELD_NUMBER: builtins.int + instruction_addr_adjustment: builtins.str + lang: builtins.str + snapshot: builtins.bool + @property + def frames(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Event.EventException.EventExceptionValues.EventExceptionValuesStacktrace.EventExceptionValuesStacktraceFrames]: ... + @property + def registers(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... + def __init__( + self, + *, + frames: collections.abc.Iterable[global___Event.EventException.EventExceptionValues.EventExceptionValuesStacktrace.EventExceptionValuesStacktraceFrames] | None = ..., + instruction_addr_adjustment: builtins.str = ..., + lang: builtins.str = ..., + registers: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + snapshot: builtins.bool = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_instruction_addr_adjustment", b"has_instruction_addr_adjustment", "has_lang", b"has_lang", "has_snapshot", b"has_snapshot", "instruction_addr_adjustment", b"instruction_addr_adjustment", "lang", b"lang", "snapshot", b"snapshot"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["frames", b"frames", "has_instruction_addr_adjustment", b"has_instruction_addr_adjustment", "has_lang", b"has_lang", "has_snapshot", b"has_snapshot", "instruction_addr_adjustment", b"instruction_addr_adjustment", "lang", b"lang", "registers", b"registers", "snapshot", b"snapshot"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_instruction_addr_adjustment", b"has_instruction_addr_adjustment"]) -> typing.Literal["instruction_addr_adjustment"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_lang", b"has_lang"]) -> typing.Literal["lang"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_snapshot", b"has_snapshot"]) -> typing.Literal["snapshot"] | None: ... + + MECHANISM_FIELD_NUMBER: builtins.int + MODULE_FIELD_NUMBER: builtins.int + STACKTRACE_FIELD_NUMBER: builtins.int + THREAD_ID_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + module: builtins.str + type: builtins.str + value: builtins.str + @property + def mechanism(self) -> global___Event.EventException.EventExceptionValues.EventExceptionValuesMechanism: ... + @property + def stacktrace(self) -> global___Event.EventException.EventExceptionValues.EventExceptionValuesStacktrace: ... + @property + def thread_id(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + mechanism: global___Event.EventException.EventExceptionValues.EventExceptionValuesMechanism | None = ..., + module: builtins.str = ..., + stacktrace: global___Event.EventException.EventExceptionValues.EventExceptionValuesStacktrace | None = ..., + thread_id: google.protobuf.struct_pb2.Value | None = ..., + type: builtins.str = ..., + value: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_mechanism", b"has_mechanism", "has_module", b"has_module", "has_stacktrace", b"has_stacktrace", "has_thread_id", b"has_thread_id", "has_type", b"has_type", "has_value", b"has_value", "mechanism", b"mechanism", "module", b"module", "stacktrace", b"stacktrace", "thread_id", b"thread_id", "type", b"type", "value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_mechanism", b"has_mechanism", "has_module", b"has_module", "has_stacktrace", b"has_stacktrace", "has_thread_id", b"has_thread_id", "has_type", b"has_type", "has_value", b"has_value", "mechanism", b"mechanism", "module", b"module", "stacktrace", b"stacktrace", "thread_id", b"thread_id", "type", b"type", "value", b"value"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_mechanism", b"has_mechanism"]) -> typing.Literal["mechanism"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_module", b"has_module"]) -> typing.Literal["module"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_stacktrace", b"has_stacktrace"]) -> typing.Literal["stacktrace"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_thread_id", b"has_thread_id"]) -> typing.Literal["thread_id"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_type", b"has_type"]) -> typing.Literal["type"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_value", b"has_value"]) -> typing.Literal["value"] | None: ... + + VALUES_FIELD_NUMBER: builtins.int + @property + def values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Event.EventException.EventExceptionValues]: ... + def __init__( + self, + *, + values: collections.abc.Iterable[global___Event.EventException.EventExceptionValues] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["values", b"values"]) -> None: ... + + @typing.final + class EventLogentry(google.protobuf.message.Message): + """ + Custom parameterized message for this event. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FORMATTED_FIELD_NUMBER: builtins.int + MESSAGE_FIELD_NUMBER: builtins.int + PARAMS_FIELD_NUMBER: builtins.int + formatted: builtins.str + message: builtins.str + @property + def params(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + formatted: builtins.str = ..., + message: builtins.str = ..., + params: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["formatted", b"formatted", "has_formatted", b"has_formatted", "has_message", b"has_message", "message", b"message", "params", b"params"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["formatted", b"formatted", "has_formatted", b"has_formatted", "has_message", b"has_message", "message", b"message", "params", b"params"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_formatted", b"has_formatted"]) -> typing.Literal["formatted"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_message", b"has_message"]) -> typing.Literal["message"] | None: ... + + @typing.final + class EventRequest(google.protobuf.message.Message): + """ + Information about a web request that occurred during the event. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + API_TARGET_FIELD_NUMBER: builtins.int + BODY_SIZE_FIELD_NUMBER: builtins.int + COOKIES_FIELD_NUMBER: builtins.int + DATA_FIELD_NUMBER: builtins.int + ENV_FIELD_NUMBER: builtins.int + FRAGMENT_FIELD_NUMBER: builtins.int + HEADERS_FIELD_NUMBER: builtins.int + INFERRED_CONTENT_TYPE_FIELD_NUMBER: builtins.int + METHOD_FIELD_NUMBER: builtins.int + PROTOCOL_FIELD_NUMBER: builtins.int + QUERY_STRING_FIELD_NUMBER: builtins.int + URL_FIELD_NUMBER: builtins.int + api_target: builtins.str + body_size: builtins.int + fragment: builtins.str + inferred_content_type: builtins.str + method: builtins.str + protocol: builtins.str + url: builtins.str + @property + def cookies(self) -> google.protobuf.struct_pb2.Value: ... + @property + def data(self) -> google.protobuf.struct_pb2.Value: ... + @property + def env(self) -> google.protobuf.struct_pb2.Value: ... + @property + def headers(self) -> google.protobuf.struct_pb2.Value: ... + @property + def query_string(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + api_target: builtins.str = ..., + body_size: builtins.int = ..., + cookies: google.protobuf.struct_pb2.Value | None = ..., + data: google.protobuf.struct_pb2.Value | None = ..., + env: google.protobuf.struct_pb2.Value | None = ..., + fragment: builtins.str = ..., + headers: google.protobuf.struct_pb2.Value | None = ..., + inferred_content_type: builtins.str = ..., + method: builtins.str = ..., + protocol: builtins.str = ..., + query_string: google.protobuf.struct_pb2.Value | None = ..., + url: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["api_target", b"api_target", "body_size", b"body_size", "cookies", b"cookies", "data", b"data", "env", b"env", "fragment", b"fragment", "has_api_target", b"has_api_target", "has_body_size", b"has_body_size", "has_cookies", b"has_cookies", "has_env", b"has_env", "has_fragment", b"has_fragment", "has_headers", b"has_headers", "has_inferred_content_type", b"has_inferred_content_type", "has_method", b"has_method", "has_protocol", b"has_protocol", "has_query_string", b"has_query_string", "has_url", b"has_url", "headers", b"headers", "inferred_content_type", b"inferred_content_type", "method", b"method", "protocol", b"protocol", "query_string", b"query_string", "url", b"url"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["api_target", b"api_target", "body_size", b"body_size", "cookies", b"cookies", "data", b"data", "env", b"env", "fragment", b"fragment", "has_api_target", b"has_api_target", "has_body_size", b"has_body_size", "has_cookies", b"has_cookies", "has_env", b"has_env", "has_fragment", b"has_fragment", "has_headers", b"has_headers", "has_inferred_content_type", b"has_inferred_content_type", "has_method", b"has_method", "has_protocol", b"has_protocol", "has_query_string", b"has_query_string", "has_url", b"has_url", "headers", b"headers", "inferred_content_type", b"inferred_content_type", "method", b"method", "protocol", b"protocol", "query_string", b"query_string", "url", b"url"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_api_target", b"has_api_target"]) -> typing.Literal["api_target"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_body_size", b"has_body_size"]) -> typing.Literal["body_size"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_cookies", b"has_cookies"]) -> typing.Literal["cookies"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_env", b"has_env"]) -> typing.Literal["env"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_fragment", b"has_fragment"]) -> typing.Literal["fragment"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_headers", b"has_headers"]) -> typing.Literal["headers"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_inferred_content_type", b"has_inferred_content_type"]) -> typing.Literal["inferred_content_type"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_method", b"has_method"]) -> typing.Literal["method"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_protocol", b"has_protocol"]) -> typing.Literal["protocol"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_query_string", b"has_query_string"]) -> typing.Literal["query_string"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_url", b"has_url"]) -> typing.Literal["url"] | None: ... + + @typing.final + class EventSdk(google.protobuf.message.Message): + """ + Information about the Sentry SDK that generated this event. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class EventSdkPackages(google.protobuf.message.Message): + """ + List of installed and loaded SDK packages. _Optional._ + + A list of packages that were installed as part of this SDK or the activated integrations. + Each package consists of a name in the format `source:identifier` and `version`. If the + source is a Git repository, the `source` should be `git`, the identifier should be a + checkout link and the version should be a Git reference (branch, tag or SHA). + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAME_FIELD_NUMBER: builtins.int + VERSION_FIELD_NUMBER: builtins.int + name: builtins.str + version: builtins.str + def __init__( + self, + *, + name: builtins.str = ..., + version: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_name", b"has_name", "has_version", b"has_version", "name", b"name", "version", b"version"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_name", b"has_name", "has_version", b"has_version", "name", b"name", "version", b"version"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_name", b"has_name"]) -> typing.Literal["name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_version", b"has_version"]) -> typing.Literal["version"] | None: ... + + INTEGRATIONS_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + PACKAGES_FIELD_NUMBER: builtins.int + VERSION_FIELD_NUMBER: builtins.int + name: builtins.str + version: builtins.str + @property + def integrations(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def packages(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Event.EventSdk.EventSdkPackages]: ... + def __init__( + self, + *, + integrations: collections.abc.Iterable[builtins.str] | None = ..., + name: builtins.str = ..., + packages: collections.abc.Iterable[global___Event.EventSdk.EventSdkPackages] | None = ..., + version: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["integrations", b"integrations", "name", b"name", "packages", b"packages", "version", b"version"]) -> None: ... + + @typing.final + class EventStacktrace(google.protobuf.message.Message): + """ + Event stacktrace. + + DEPRECATED: Prefer `threads` or `exception` depending on which is more appropriate. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class EventStacktraceFrames(google.protobuf.message.Message): + """ + Required. A non-empty list of stack frames. The list is ordered from caller to callee, or + oldest to youngest. The last frame is the one creating the exception. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class EventStacktraceFramesLock(google.protobuf.message.Message): + """ + A possible lock (java monitor object) held by this frame. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ADDRESS_FIELD_NUMBER: builtins.int + CLASS_NAME_FIELD_NUMBER: builtins.int + PACKAGE_NAME_FIELD_NUMBER: builtins.int + THREAD_ID_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + address: builtins.str + class_name: builtins.str + package_name: builtins.str + type: builtins.str + @property + def thread_id(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + address: builtins.str = ..., + class_name: builtins.str = ..., + package_name: builtins.str = ..., + thread_id: google.protobuf.struct_pb2.Value | None = ..., + type: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["address", b"address", "class_name", b"class_name", "has_address", b"has_address", "has_class_name", b"has_class_name", "has_package_name", b"has_package_name", "has_thread_id", b"has_thread_id", "package_name", b"package_name", "thread_id", b"thread_id"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["address", b"address", "class_name", b"class_name", "has_address", b"has_address", "has_class_name", b"has_class_name", "has_package_name", b"has_package_name", "has_thread_id", b"has_thread_id", "package_name", b"package_name", "thread_id", b"thread_id", "type", b"type"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_address", b"has_address"]) -> typing.Literal["address"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_class_name", b"has_class_name"]) -> typing.Literal["class_name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_package_name", b"has_package_name"]) -> typing.Literal["package_name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_thread_id", b"has_thread_id"]) -> typing.Literal["thread_id"] | None: ... + + ABS_PATH_FIELD_NUMBER: builtins.int + ADDR_MODE_FIELD_NUMBER: builtins.int + COLNO_FIELD_NUMBER: builtins.int + CONTEXT_LINE_FIELD_NUMBER: builtins.int + FILENAME_FIELD_NUMBER: builtins.int + FUNCTION_FIELD_NUMBER: builtins.int + FUNCTION_ID_FIELD_NUMBER: builtins.int + IMAGE_ADDR_FIELD_NUMBER: builtins.int + IN_APP_FIELD_NUMBER: builtins.int + INSTRUCTION_ADDR_FIELD_NUMBER: builtins.int + LINENO_FIELD_NUMBER: builtins.int + LOCK_FIELD_NUMBER: builtins.int + MODULE_FIELD_NUMBER: builtins.int + PACKAGE_FIELD_NUMBER: builtins.int + PLATFORM_FIELD_NUMBER: builtins.int + POST_CONTEXT_FIELD_NUMBER: builtins.int + PRE_CONTEXT_FIELD_NUMBER: builtins.int + RAW_FUNCTION_FIELD_NUMBER: builtins.int + STACK_START_FIELD_NUMBER: builtins.int + SYMBOL_FIELD_NUMBER: builtins.int + SYMBOL_ADDR_FIELD_NUMBER: builtins.int + VARS_FIELD_NUMBER: builtins.int + abs_path: builtins.str + addr_mode: builtins.str + colno: builtins.int + context_line: builtins.str + filename: builtins.str + function: builtins.str + function_id: builtins.str + image_addr: builtins.str + in_app: builtins.bool + instruction_addr: builtins.str + lineno: builtins.int + module: builtins.str + package: builtins.str + platform: builtins.str + raw_function: builtins.str + stack_start: builtins.bool + symbol: builtins.str + symbol_addr: builtins.str + @property + def lock(self) -> global___Event.EventStacktrace.EventStacktraceFrames.EventStacktraceFramesLock: ... + @property + def post_context(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def pre_context(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def vars(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + abs_path: builtins.str = ..., + addr_mode: builtins.str = ..., + colno: builtins.int = ..., + context_line: builtins.str = ..., + filename: builtins.str = ..., + function: builtins.str = ..., + function_id: builtins.str = ..., + image_addr: builtins.str = ..., + in_app: builtins.bool = ..., + instruction_addr: builtins.str = ..., + lineno: builtins.int = ..., + lock: global___Event.EventStacktrace.EventStacktraceFrames.EventStacktraceFramesLock | None = ..., + module: builtins.str = ..., + package: builtins.str = ..., + platform: builtins.str = ..., + post_context: collections.abc.Iterable[builtins.str] | None = ..., + pre_context: collections.abc.Iterable[builtins.str] | None = ..., + raw_function: builtins.str = ..., + stack_start: builtins.bool = ..., + symbol: builtins.str = ..., + symbol_addr: builtins.str = ..., + vars: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["abs_path", b"abs_path", "addr_mode", b"addr_mode", "colno", b"colno", "context_line", b"context_line", "filename", b"filename", "function", b"function", "function_id", b"function_id", "has_abs_path", b"has_abs_path", "has_addr_mode", b"has_addr_mode", "has_colno", b"has_colno", "has_context_line", b"has_context_line", "has_filename", b"has_filename", "has_function", b"has_function", "has_function_id", b"has_function_id", "has_image_addr", b"has_image_addr", "has_in_app", b"has_in_app", "has_instruction_addr", b"has_instruction_addr", "has_lineno", b"has_lineno", "has_lock", b"has_lock", "has_module", b"has_module", "has_package", b"has_package", "has_platform", b"has_platform", "has_raw_function", b"has_raw_function", "has_stack_start", b"has_stack_start", "has_symbol", b"has_symbol", "has_symbol_addr", b"has_symbol_addr", "has_vars", b"has_vars", "image_addr", b"image_addr", "in_app", b"in_app", "instruction_addr", b"instruction_addr", "lineno", b"lineno", "lock", b"lock", "module", b"module", "package", b"package", "platform", b"platform", "raw_function", b"raw_function", "stack_start", b"stack_start", "symbol", b"symbol", "symbol_addr", b"symbol_addr", "vars", b"vars"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["abs_path", b"abs_path", "addr_mode", b"addr_mode", "colno", b"colno", "context_line", b"context_line", "filename", b"filename", "function", b"function", "function_id", b"function_id", "has_abs_path", b"has_abs_path", "has_addr_mode", b"has_addr_mode", "has_colno", b"has_colno", "has_context_line", b"has_context_line", "has_filename", b"has_filename", "has_function", b"has_function", "has_function_id", b"has_function_id", "has_image_addr", b"has_image_addr", "has_in_app", b"has_in_app", "has_instruction_addr", b"has_instruction_addr", "has_lineno", b"has_lineno", "has_lock", b"has_lock", "has_module", b"has_module", "has_package", b"has_package", "has_platform", b"has_platform", "has_raw_function", b"has_raw_function", "has_stack_start", b"has_stack_start", "has_symbol", b"has_symbol", "has_symbol_addr", b"has_symbol_addr", "has_vars", b"has_vars", "image_addr", b"image_addr", "in_app", b"in_app", "instruction_addr", b"instruction_addr", "lineno", b"lineno", "lock", b"lock", "module", b"module", "package", b"package", "platform", b"platform", "post_context", b"post_context", "pre_context", b"pre_context", "raw_function", b"raw_function", "stack_start", b"stack_start", "symbol", b"symbol", "symbol_addr", b"symbol_addr", "vars", b"vars"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_abs_path", b"has_abs_path"]) -> typing.Literal["abs_path"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_addr_mode", b"has_addr_mode"]) -> typing.Literal["addr_mode"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_colno", b"has_colno"]) -> typing.Literal["colno"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_context_line", b"has_context_line"]) -> typing.Literal["context_line"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_filename", b"has_filename"]) -> typing.Literal["filename"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_function", b"has_function"]) -> typing.Literal["function"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_function_id", b"has_function_id"]) -> typing.Literal["function_id"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_image_addr", b"has_image_addr"]) -> typing.Literal["image_addr"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_in_app", b"has_in_app"]) -> typing.Literal["in_app"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_instruction_addr", b"has_instruction_addr"]) -> typing.Literal["instruction_addr"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_lineno", b"has_lineno"]) -> typing.Literal["lineno"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_lock", b"has_lock"]) -> typing.Literal["lock"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_module", b"has_module"]) -> typing.Literal["module"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_package", b"has_package"]) -> typing.Literal["package"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_platform", b"has_platform"]) -> typing.Literal["platform"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_raw_function", b"has_raw_function"]) -> typing.Literal["raw_function"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_stack_start", b"has_stack_start"]) -> typing.Literal["stack_start"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_symbol", b"has_symbol"]) -> typing.Literal["symbol"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_symbol_addr", b"has_symbol_addr"]) -> typing.Literal["symbol_addr"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_vars", b"has_vars"]) -> typing.Literal["vars"] | None: ... + + @typing.final + class RegistersEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str + def __init__( + self, + *, + key: builtins.str = ..., + value: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... + + FRAMES_FIELD_NUMBER: builtins.int + INSTRUCTION_ADDR_ADJUSTMENT_FIELD_NUMBER: builtins.int + LANG_FIELD_NUMBER: builtins.int + REGISTERS_FIELD_NUMBER: builtins.int + SNAPSHOT_FIELD_NUMBER: builtins.int + instruction_addr_adjustment: builtins.str + lang: builtins.str + snapshot: builtins.bool + @property + def frames(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Event.EventStacktrace.EventStacktraceFrames]: ... + @property + def registers(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... + def __init__( + self, + *, + frames: collections.abc.Iterable[global___Event.EventStacktrace.EventStacktraceFrames] | None = ..., + instruction_addr_adjustment: builtins.str = ..., + lang: builtins.str = ..., + registers: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + snapshot: builtins.bool = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_instruction_addr_adjustment", b"has_instruction_addr_adjustment", "has_lang", b"has_lang", "has_snapshot", b"has_snapshot", "instruction_addr_adjustment", b"instruction_addr_adjustment", "lang", b"lang", "snapshot", b"snapshot"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["frames", b"frames", "has_instruction_addr_adjustment", b"has_instruction_addr_adjustment", "has_lang", b"has_lang", "has_snapshot", b"has_snapshot", "instruction_addr_adjustment", b"instruction_addr_adjustment", "lang", b"lang", "registers", b"registers", "snapshot", b"snapshot"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_instruction_addr_adjustment", b"has_instruction_addr_adjustment"]) -> typing.Literal["instruction_addr_adjustment"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_lang", b"has_lang"]) -> typing.Literal["lang"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_snapshot", b"has_snapshot"]) -> typing.Literal["snapshot"] | None: ... + + @typing.final + class EventThreads(google.protobuf.message.Message): + """ + Threads that were active when the event occurred. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class EventThreadsValues(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class EventThreadsValuesHeldLocks(google.protobuf.message.Message): + """ + Represents a collection of locks (java monitor objects) held by a thread. + + A map of lock object addresses and their respective lock reason/details. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ADDRESS_FIELD_NUMBER: builtins.int + CLASS_NAME_FIELD_NUMBER: builtins.int + PACKAGE_NAME_FIELD_NUMBER: builtins.int + THREAD_ID_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + address: builtins.str + class_name: builtins.str + package_name: builtins.str + type: builtins.str + @property + def thread_id(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + address: builtins.str = ..., + class_name: builtins.str = ..., + package_name: builtins.str = ..., + thread_id: google.protobuf.struct_pb2.Value | None = ..., + type: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["address", b"address", "class_name", b"class_name", "has_address", b"has_address", "has_class_name", b"has_class_name", "has_package_name", b"has_package_name", "has_thread_id", b"has_thread_id", "package_name", b"package_name", "thread_id", b"thread_id"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["address", b"address", "class_name", b"class_name", "has_address", b"has_address", "has_class_name", b"has_class_name", "has_package_name", b"has_package_name", "has_thread_id", b"has_thread_id", "package_name", b"package_name", "thread_id", b"thread_id", "type", b"type"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_address", b"has_address"]) -> typing.Literal["address"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_class_name", b"has_class_name"]) -> typing.Literal["class_name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_package_name", b"has_package_name"]) -> typing.Literal["package_name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_thread_id", b"has_thread_id"]) -> typing.Literal["thread_id"] | None: ... + + @typing.final + class EventThreadsValuesStacktrace(google.protobuf.message.Message): + """ + Stack trace containing frames of this exception. + + The thread that crashed with an exception should not have a stack trace, but instead, the `thread_id` attribute should be set on the exception and Sentry will connect the two. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class EventThreadsValuesStacktraceFrames(google.protobuf.message.Message): + """ + Required. A non-empty list of stack frames. The list is ordered from caller to callee, or + oldest to youngest. The last frame is the one creating the exception. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class EventThreadsValuesStacktraceFramesLock(google.protobuf.message.Message): + """ + A possible lock (java monitor object) held by this frame. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ADDRESS_FIELD_NUMBER: builtins.int + CLASS_NAME_FIELD_NUMBER: builtins.int + PACKAGE_NAME_FIELD_NUMBER: builtins.int + THREAD_ID_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + address: builtins.str + class_name: builtins.str + package_name: builtins.str + type: builtins.str + @property + def thread_id(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + address: builtins.str = ..., + class_name: builtins.str = ..., + package_name: builtins.str = ..., + thread_id: google.protobuf.struct_pb2.Value | None = ..., + type: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["address", b"address", "class_name", b"class_name", "has_address", b"has_address", "has_class_name", b"has_class_name", "has_package_name", b"has_package_name", "has_thread_id", b"has_thread_id", "package_name", b"package_name", "thread_id", b"thread_id"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["address", b"address", "class_name", b"class_name", "has_address", b"has_address", "has_class_name", b"has_class_name", "has_package_name", b"has_package_name", "has_thread_id", b"has_thread_id", "package_name", b"package_name", "thread_id", b"thread_id", "type", b"type"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_address", b"has_address"]) -> typing.Literal["address"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_class_name", b"has_class_name"]) -> typing.Literal["class_name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_package_name", b"has_package_name"]) -> typing.Literal["package_name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_thread_id", b"has_thread_id"]) -> typing.Literal["thread_id"] | None: ... + + ABS_PATH_FIELD_NUMBER: builtins.int + ADDR_MODE_FIELD_NUMBER: builtins.int + COLNO_FIELD_NUMBER: builtins.int + CONTEXT_LINE_FIELD_NUMBER: builtins.int + FILENAME_FIELD_NUMBER: builtins.int + FUNCTION_FIELD_NUMBER: builtins.int + FUNCTION_ID_FIELD_NUMBER: builtins.int + IMAGE_ADDR_FIELD_NUMBER: builtins.int + IN_APP_FIELD_NUMBER: builtins.int + INSTRUCTION_ADDR_FIELD_NUMBER: builtins.int + LINENO_FIELD_NUMBER: builtins.int + LOCK_FIELD_NUMBER: builtins.int + MODULE_FIELD_NUMBER: builtins.int + PACKAGE_FIELD_NUMBER: builtins.int + PLATFORM_FIELD_NUMBER: builtins.int + POST_CONTEXT_FIELD_NUMBER: builtins.int + PRE_CONTEXT_FIELD_NUMBER: builtins.int + RAW_FUNCTION_FIELD_NUMBER: builtins.int + STACK_START_FIELD_NUMBER: builtins.int + SYMBOL_FIELD_NUMBER: builtins.int + SYMBOL_ADDR_FIELD_NUMBER: builtins.int + VARS_FIELD_NUMBER: builtins.int + abs_path: builtins.str + addr_mode: builtins.str + colno: builtins.int + context_line: builtins.str + filename: builtins.str + function: builtins.str + function_id: builtins.str + image_addr: builtins.str + in_app: builtins.bool + instruction_addr: builtins.str + lineno: builtins.int + module: builtins.str + package: builtins.str + platform: builtins.str + raw_function: builtins.str + stack_start: builtins.bool + symbol: builtins.str + symbol_addr: builtins.str + @property + def lock(self) -> global___Event.EventThreads.EventThreadsValues.EventThreadsValuesStacktrace.EventThreadsValuesStacktraceFrames.EventThreadsValuesStacktraceFramesLock: ... + @property + def post_context(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def pre_context(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def vars(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + abs_path: builtins.str = ..., + addr_mode: builtins.str = ..., + colno: builtins.int = ..., + context_line: builtins.str = ..., + filename: builtins.str = ..., + function: builtins.str = ..., + function_id: builtins.str = ..., + image_addr: builtins.str = ..., + in_app: builtins.bool = ..., + instruction_addr: builtins.str = ..., + lineno: builtins.int = ..., + lock: global___Event.EventThreads.EventThreadsValues.EventThreadsValuesStacktrace.EventThreadsValuesStacktraceFrames.EventThreadsValuesStacktraceFramesLock | None = ..., + module: builtins.str = ..., + package: builtins.str = ..., + platform: builtins.str = ..., + post_context: collections.abc.Iterable[builtins.str] | None = ..., + pre_context: collections.abc.Iterable[builtins.str] | None = ..., + raw_function: builtins.str = ..., + stack_start: builtins.bool = ..., + symbol: builtins.str = ..., + symbol_addr: builtins.str = ..., + vars: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["abs_path", b"abs_path", "addr_mode", b"addr_mode", "colno", b"colno", "context_line", b"context_line", "filename", b"filename", "function", b"function", "function_id", b"function_id", "has_abs_path", b"has_abs_path", "has_addr_mode", b"has_addr_mode", "has_colno", b"has_colno", "has_context_line", b"has_context_line", "has_filename", b"has_filename", "has_function", b"has_function", "has_function_id", b"has_function_id", "has_image_addr", b"has_image_addr", "has_in_app", b"has_in_app", "has_instruction_addr", b"has_instruction_addr", "has_lineno", b"has_lineno", "has_lock", b"has_lock", "has_module", b"has_module", "has_package", b"has_package", "has_platform", b"has_platform", "has_raw_function", b"has_raw_function", "has_stack_start", b"has_stack_start", "has_symbol", b"has_symbol", "has_symbol_addr", b"has_symbol_addr", "has_vars", b"has_vars", "image_addr", b"image_addr", "in_app", b"in_app", "instruction_addr", b"instruction_addr", "lineno", b"lineno", "lock", b"lock", "module", b"module", "package", b"package", "platform", b"platform", "raw_function", b"raw_function", "stack_start", b"stack_start", "symbol", b"symbol", "symbol_addr", b"symbol_addr", "vars", b"vars"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["abs_path", b"abs_path", "addr_mode", b"addr_mode", "colno", b"colno", "context_line", b"context_line", "filename", b"filename", "function", b"function", "function_id", b"function_id", "has_abs_path", b"has_abs_path", "has_addr_mode", b"has_addr_mode", "has_colno", b"has_colno", "has_context_line", b"has_context_line", "has_filename", b"has_filename", "has_function", b"has_function", "has_function_id", b"has_function_id", "has_image_addr", b"has_image_addr", "has_in_app", b"has_in_app", "has_instruction_addr", b"has_instruction_addr", "has_lineno", b"has_lineno", "has_lock", b"has_lock", "has_module", b"has_module", "has_package", b"has_package", "has_platform", b"has_platform", "has_raw_function", b"has_raw_function", "has_stack_start", b"has_stack_start", "has_symbol", b"has_symbol", "has_symbol_addr", b"has_symbol_addr", "has_vars", b"has_vars", "image_addr", b"image_addr", "in_app", b"in_app", "instruction_addr", b"instruction_addr", "lineno", b"lineno", "lock", b"lock", "module", b"module", "package", b"package", "platform", b"platform", "post_context", b"post_context", "pre_context", b"pre_context", "raw_function", b"raw_function", "stack_start", b"stack_start", "symbol", b"symbol", "symbol_addr", b"symbol_addr", "vars", b"vars"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_abs_path", b"has_abs_path"]) -> typing.Literal["abs_path"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_addr_mode", b"has_addr_mode"]) -> typing.Literal["addr_mode"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_colno", b"has_colno"]) -> typing.Literal["colno"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_context_line", b"has_context_line"]) -> typing.Literal["context_line"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_filename", b"has_filename"]) -> typing.Literal["filename"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_function", b"has_function"]) -> typing.Literal["function"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_function_id", b"has_function_id"]) -> typing.Literal["function_id"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_image_addr", b"has_image_addr"]) -> typing.Literal["image_addr"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_in_app", b"has_in_app"]) -> typing.Literal["in_app"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_instruction_addr", b"has_instruction_addr"]) -> typing.Literal["instruction_addr"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_lineno", b"has_lineno"]) -> typing.Literal["lineno"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_lock", b"has_lock"]) -> typing.Literal["lock"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_module", b"has_module"]) -> typing.Literal["module"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_package", b"has_package"]) -> typing.Literal["package"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_platform", b"has_platform"]) -> typing.Literal["platform"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_raw_function", b"has_raw_function"]) -> typing.Literal["raw_function"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_stack_start", b"has_stack_start"]) -> typing.Literal["stack_start"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_symbol", b"has_symbol"]) -> typing.Literal["symbol"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_symbol_addr", b"has_symbol_addr"]) -> typing.Literal["symbol_addr"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_vars", b"has_vars"]) -> typing.Literal["vars"] | None: ... + + @typing.final + class RegistersEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str + def __init__( + self, + *, + key: builtins.str = ..., + value: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... + + FRAMES_FIELD_NUMBER: builtins.int + INSTRUCTION_ADDR_ADJUSTMENT_FIELD_NUMBER: builtins.int + LANG_FIELD_NUMBER: builtins.int + REGISTERS_FIELD_NUMBER: builtins.int + SNAPSHOT_FIELD_NUMBER: builtins.int + instruction_addr_adjustment: builtins.str + lang: builtins.str + snapshot: builtins.bool + @property + def frames(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Event.EventThreads.EventThreadsValues.EventThreadsValuesStacktrace.EventThreadsValuesStacktraceFrames]: ... + @property + def registers(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... + def __init__( + self, + *, + frames: collections.abc.Iterable[global___Event.EventThreads.EventThreadsValues.EventThreadsValuesStacktrace.EventThreadsValuesStacktraceFrames] | None = ..., + instruction_addr_adjustment: builtins.str = ..., + lang: builtins.str = ..., + registers: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + snapshot: builtins.bool = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_instruction_addr_adjustment", b"has_instruction_addr_adjustment", "has_lang", b"has_lang", "has_snapshot", b"has_snapshot", "instruction_addr_adjustment", b"instruction_addr_adjustment", "lang", b"lang", "snapshot", b"snapshot"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["frames", b"frames", "has_instruction_addr_adjustment", b"has_instruction_addr_adjustment", "has_lang", b"has_lang", "has_snapshot", b"has_snapshot", "instruction_addr_adjustment", b"instruction_addr_adjustment", "lang", b"lang", "registers", b"registers", "snapshot", b"snapshot"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_instruction_addr_adjustment", b"has_instruction_addr_adjustment"]) -> typing.Literal["instruction_addr_adjustment"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_lang", b"has_lang"]) -> typing.Literal["lang"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_snapshot", b"has_snapshot"]) -> typing.Literal["snapshot"] | None: ... + + @typing.final + class HeldLocksEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + @property + def value(self) -> global___Event.EventThreads.EventThreadsValues.EventThreadsValuesHeldLocks: ... + def __init__( + self, + *, + key: builtins.str = ..., + value: global___Event.EventThreads.EventThreadsValues.EventThreadsValuesHeldLocks | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... + + CRASHED_FIELD_NUMBER: builtins.int + CURRENT_FIELD_NUMBER: builtins.int + HELD_LOCKS_FIELD_NUMBER: builtins.int + ID_FIELD_NUMBER: builtins.int + MAIN_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + STACKTRACE_FIELD_NUMBER: builtins.int + STATE_FIELD_NUMBER: builtins.int + crashed: builtins.bool + current: builtins.bool + main: builtins.bool + name: builtins.str + state: builtins.str + @property + def held_locks(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___Event.EventThreads.EventThreadsValues.EventThreadsValuesHeldLocks]: ... + @property + def id(self) -> google.protobuf.struct_pb2.Value: ... + @property + def stacktrace(self) -> global___Event.EventThreads.EventThreadsValues.EventThreadsValuesStacktrace: ... + def __init__( + self, + *, + crashed: builtins.bool = ..., + current: builtins.bool = ..., + held_locks: collections.abc.Mapping[builtins.str, global___Event.EventThreads.EventThreadsValues.EventThreadsValuesHeldLocks] | None = ..., + id: google.protobuf.struct_pb2.Value | None = ..., + main: builtins.bool = ..., + name: builtins.str = ..., + stacktrace: global___Event.EventThreads.EventThreadsValues.EventThreadsValuesStacktrace | None = ..., + state: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["crashed", b"crashed", "current", b"current", "has_crashed", b"has_crashed", "has_current", b"has_current", "has_id", b"has_id", "has_main", b"has_main", "has_name", b"has_name", "has_stacktrace", b"has_stacktrace", "has_state", b"has_state", "id", b"id", "main", b"main", "name", b"name", "stacktrace", b"stacktrace", "state", b"state"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["crashed", b"crashed", "current", b"current", "has_crashed", b"has_crashed", "has_current", b"has_current", "has_id", b"has_id", "has_main", b"has_main", "has_name", b"has_name", "has_stacktrace", b"has_stacktrace", "has_state", b"has_state", "held_locks", b"held_locks", "id", b"id", "main", b"main", "name", b"name", "stacktrace", b"stacktrace", "state", b"state"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_crashed", b"has_crashed"]) -> typing.Literal["crashed"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_current", b"has_current"]) -> typing.Literal["current"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_id", b"has_id"]) -> typing.Literal["id"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_main", b"has_main"]) -> typing.Literal["main"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_name", b"has_name"]) -> typing.Literal["name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_stacktrace", b"has_stacktrace"]) -> typing.Literal["stacktrace"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_state", b"has_state"]) -> typing.Literal["state"] | None: ... + + VALUES_FIELD_NUMBER: builtins.int + @property + def values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Event.EventThreads.EventThreadsValues]: ... + def __init__( + self, + *, + values: collections.abc.Iterable[global___Event.EventThreads.EventThreadsValues] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["values", b"values"]) -> None: ... + + @typing.final + class EventTransactionInfo(google.protobuf.message.Message): + """ + Additional information about the name of the transaction. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class EventTransactionInfoChanges(google.protobuf.message.Message): + """ + A list of changes prior to the final transaction name. + + This list must be empty if the transaction name is set at the beginning of the transaction + and never changed. There is no placeholder entry for the initial transaction name. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PROPAGATIONS_FIELD_NUMBER: builtins.int + SOURCE_FIELD_NUMBER: builtins.int + TIMESTAMP_FIELD_NUMBER: builtins.int + propagations: builtins.int + source: builtins.str + @property + def timestamp(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + propagations: builtins.int = ..., + source: builtins.str = ..., + timestamp: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_propagations", b"has_propagations", "has_source", b"has_source", "has_timestamp", b"has_timestamp", "propagations", b"propagations", "source", b"source", "timestamp", b"timestamp"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_propagations", b"has_propagations", "has_source", b"has_source", "has_timestamp", b"has_timestamp", "propagations", b"propagations", "source", b"source", "timestamp", b"timestamp"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_propagations", b"has_propagations"]) -> typing.Literal["propagations"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_source", b"has_source"]) -> typing.Literal["source"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_timestamp", b"has_timestamp"]) -> typing.Literal["timestamp"] | None: ... + + CHANGES_FIELD_NUMBER: builtins.int + ORIGINAL_FIELD_NUMBER: builtins.int + PROPAGATIONS_FIELD_NUMBER: builtins.int + SOURCE_FIELD_NUMBER: builtins.int + original: builtins.str + propagations: builtins.int + source: builtins.str + @property + def changes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Event.EventTransactionInfo.EventTransactionInfoChanges]: ... + def __init__( + self, + *, + changes: collections.abc.Iterable[global___Event.EventTransactionInfo.EventTransactionInfoChanges] | None = ..., + original: builtins.str = ..., + propagations: builtins.int = ..., + source: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_original", b"has_original", "has_propagations", b"has_propagations", "has_source", b"has_source", "original", b"original", "propagations", b"propagations", "source", b"source"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["changes", b"changes", "has_original", b"has_original", "has_propagations", b"has_propagations", "has_source", b"has_source", "original", b"original", "propagations", b"propagations", "source", b"source"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_original", b"has_original"]) -> typing.Literal["original"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_propagations", b"has_propagations"]) -> typing.Literal["propagations"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_source", b"has_source"]) -> typing.Literal["source"] | None: ... + + @typing.final + class EventUser(google.protobuf.message.Message): + """ + Information about the user who triggered this event. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class EventUserGeo(google.protobuf.message.Message): + """ + Approximate geographical location of the end user or device. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CITY_FIELD_NUMBER: builtins.int + COUNTRY_CODE_FIELD_NUMBER: builtins.int + REGION_FIELD_NUMBER: builtins.int + SUBDIVISION_FIELD_NUMBER: builtins.int + city: builtins.str + country_code: builtins.str + region: builtins.str + subdivision: builtins.str + def __init__( + self, + *, + city: builtins.str = ..., + country_code: builtins.str = ..., + region: builtins.str = ..., + subdivision: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["city", b"city", "country_code", b"country_code", "has_city", b"has_city", "has_country_code", b"has_country_code", "has_region", b"has_region", "has_subdivision", b"has_subdivision", "region", b"region", "subdivision", b"subdivision"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["city", b"city", "country_code", b"country_code", "has_city", b"has_city", "has_country_code", b"has_country_code", "has_region", b"has_region", "has_subdivision", b"has_subdivision", "region", b"region", "subdivision", b"subdivision"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_city", b"has_city"]) -> typing.Literal["city"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_country_code", b"has_country_code"]) -> typing.Literal["country_code"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_region", b"has_region"]) -> typing.Literal["region"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_subdivision", b"has_subdivision"]) -> typing.Literal["subdivision"] | None: ... + + DATA_FIELD_NUMBER: builtins.int + EMAIL_FIELD_NUMBER: builtins.int + GEO_FIELD_NUMBER: builtins.int + ID_FIELD_NUMBER: builtins.int + IP_ADDRESS_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + SEGMENT_FIELD_NUMBER: builtins.int + SENTRY_USER_FIELD_NUMBER: builtins.int + USERNAME_FIELD_NUMBER: builtins.int + email: builtins.str + id: builtins.str + ip_address: builtins.str + name: builtins.str + segment: builtins.str + sentry_user: builtins.str + username: builtins.str + @property + def data(self) -> google.protobuf.struct_pb2.Value: ... + @property + def geo(self) -> global___Event.EventUser.EventUserGeo: ... + def __init__( + self, + *, + data: google.protobuf.struct_pb2.Value | None = ..., + email: builtins.str = ..., + geo: global___Event.EventUser.EventUserGeo | None = ..., + id: builtins.str = ..., + ip_address: builtins.str = ..., + name: builtins.str = ..., + segment: builtins.str = ..., + sentry_user: builtins.str = ..., + username: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["data", b"data", "email", b"email", "geo", b"geo", "has_data", b"has_data", "has_email", b"has_email", "has_geo", b"has_geo", "has_id", b"has_id", "has_ip_address", b"has_ip_address", "has_name", b"has_name", "has_segment", b"has_segment", "has_sentry_user", b"has_sentry_user", "has_username", b"has_username", "id", b"id", "ip_address", b"ip_address", "name", b"name", "segment", b"segment", "sentry_user", b"sentry_user", "username", b"username"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["data", b"data", "email", b"email", "geo", b"geo", "has_data", b"has_data", "has_email", b"has_email", "has_geo", b"has_geo", "has_id", b"has_id", "has_ip_address", b"has_ip_address", "has_name", b"has_name", "has_segment", b"has_segment", "has_sentry_user", b"has_sentry_user", "has_username", b"has_username", "id", b"id", "ip_address", b"ip_address", "name", b"name", "segment", b"segment", "sentry_user", b"sentry_user", "username", b"username"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_data", b"has_data"]) -> typing.Literal["data"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_email", b"has_email"]) -> typing.Literal["email"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_geo", b"has_geo"]) -> typing.Literal["geo"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_id", b"has_id"]) -> typing.Literal["id"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_ip_address", b"has_ip_address"]) -> typing.Literal["ip_address"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_name", b"has_name"]) -> typing.Literal["name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_segment", b"has_segment"]) -> typing.Literal["segment"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_sentry_user", b"has_sentry_user"]) -> typing.Literal["sentry_user"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_username", b"has_username"]) -> typing.Literal["username"] | None: ... + + @typing.final + class ContextsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + @property + def value(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + key: builtins.str = ..., + value: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... + + @typing.final + class ModulesEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str + def __init__( + self, + *, + key: builtins.str = ..., + value: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... + + BREADCRUMBS_FIELD_NUMBER: builtins.int + CONTEXTS_FIELD_NUMBER: builtins.int + CULPRIT_FIELD_NUMBER: builtins.int + DEBUG_META_FIELD_NUMBER: builtins.int + DIST_FIELD_NUMBER: builtins.int + ENVIRONMENT_FIELD_NUMBER: builtins.int + ERRORS_FIELD_NUMBER: builtins.int + EVENT_ID_FIELD_NUMBER: builtins.int + EXCEPTION_FIELD_NUMBER: builtins.int + EXTRA_FIELD_NUMBER: builtins.int + FINGERPRINT_FIELD_NUMBER: builtins.int + LEVEL_FIELD_NUMBER: builtins.int + LOGENTRY_FIELD_NUMBER: builtins.int + LOGGER_FIELD_NUMBER: builtins.int + MODULES_FIELD_NUMBER: builtins.int + PLATFORM_FIELD_NUMBER: builtins.int + RECEIVED_FIELD_NUMBER: builtins.int + RELEASE_FIELD_NUMBER: builtins.int + REQUEST_FIELD_NUMBER: builtins.int + SDK_FIELD_NUMBER: builtins.int + SERVER_NAME_FIELD_NUMBER: builtins.int + STACKTRACE_FIELD_NUMBER: builtins.int + TAGS_FIELD_NUMBER: builtins.int + THREADS_FIELD_NUMBER: builtins.int + TIME_SPENT_FIELD_NUMBER: builtins.int + TIMESTAMP_FIELD_NUMBER: builtins.int + TRANSACTION_FIELD_NUMBER: builtins.int + TRANSACTION_INFO_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + USER_FIELD_NUMBER: builtins.int + VERSION_FIELD_NUMBER: builtins.int + culprit: builtins.str + dist: builtins.str + environment: builtins.str + event_id: builtins.str + level: builtins.str + logger: builtins.str + platform: builtins.str + release: builtins.str + server_name: builtins.str + time_spent: builtins.int + transaction: builtins.str + type: builtins.str + version: builtins.str + @property + def breadcrumbs(self) -> global___Event.EventBreadcrumbs: ... + @property + def contexts(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, google.protobuf.struct_pb2.Value]: ... + @property + def debug_meta(self) -> global___Event.EventDebugMeta: ... + @property + def errors(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Event.EventErrors]: ... + @property + def exception(self) -> global___Event.EventException: ... + @property + def extra(self) -> google.protobuf.struct_pb2.Value: ... + @property + def fingerprint(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def logentry(self) -> global___Event.EventLogentry: ... + @property + def modules(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... + @property + def received(self) -> google.protobuf.struct_pb2.Value: ... + @property + def request(self) -> global___Event.EventRequest: ... + @property + def sdk(self) -> global___Event.EventSdk: ... + @property + def stacktrace(self) -> global___Event.EventStacktrace: ... + @property + def tags(self) -> google.protobuf.struct_pb2.Value: ... + @property + def threads(self) -> global___Event.EventThreads: ... + @property + def timestamp(self) -> google.protobuf.struct_pb2.Value: ... + @property + def transaction_info(self) -> global___Event.EventTransactionInfo: ... + @property + def user(self) -> global___Event.EventUser: ... + def __init__( + self, + *, + breadcrumbs: global___Event.EventBreadcrumbs | None = ..., + contexts: collections.abc.Mapping[builtins.str, google.protobuf.struct_pb2.Value] | None = ..., + culprit: builtins.str = ..., + debug_meta: global___Event.EventDebugMeta | None = ..., + dist: builtins.str = ..., + environment: builtins.str = ..., + errors: collections.abc.Iterable[global___Event.EventErrors] | None = ..., + event_id: builtins.str = ..., + exception: global___Event.EventException | None = ..., + extra: google.protobuf.struct_pb2.Value | None = ..., + fingerprint: collections.abc.Iterable[builtins.str] | None = ..., + level: builtins.str = ..., + logentry: global___Event.EventLogentry | None = ..., + logger: builtins.str = ..., + modules: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + platform: builtins.str = ..., + received: google.protobuf.struct_pb2.Value | None = ..., + release: builtins.str = ..., + request: global___Event.EventRequest | None = ..., + sdk: global___Event.EventSdk | None = ..., + server_name: builtins.str = ..., + stacktrace: global___Event.EventStacktrace | None = ..., + tags: google.protobuf.struct_pb2.Value | None = ..., + threads: global___Event.EventThreads | None = ..., + time_spent: builtins.int = ..., + timestamp: google.protobuf.struct_pb2.Value | None = ..., + transaction: builtins.str = ..., + transaction_info: global___Event.EventTransactionInfo | None = ..., + type: builtins.str = ..., + user: global___Event.EventUser | None = ..., + version: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["breadcrumbs", b"breadcrumbs", "culprit", b"culprit", "debug_meta", b"debug_meta", "dist", b"dist", "environment", b"environment", "event_id", b"event_id", "exception", b"exception", "extra", b"extra", "has_breadcrumbs", b"has_breadcrumbs", "has_culprit", b"has_culprit", "has_debug_meta", b"has_debug_meta", "has_dist", b"has_dist", "has_environment", b"has_environment", "has_event_id", b"has_event_id", "has_exception", b"has_exception", "has_extra", b"has_extra", "has_level", b"has_level", "has_logentry", b"has_logentry", "has_logger", b"has_logger", "has_platform", b"has_platform", "has_received", b"has_received", "has_release", b"has_release", "has_request", b"has_request", "has_sdk", b"has_sdk", "has_server_name", b"has_server_name", "has_stacktrace", b"has_stacktrace", "has_tags", b"has_tags", "has_threads", b"has_threads", "has_time_spent", b"has_time_spent", "has_timestamp", b"has_timestamp", "has_transaction", b"has_transaction", "has_transaction_info", b"has_transaction_info", "has_type", b"has_type", "has_user", b"has_user", "has_version", b"has_version", "level", b"level", "logentry", b"logentry", "logger", b"logger", "platform", b"platform", "received", b"received", "release", b"release", "request", b"request", "sdk", b"sdk", "server_name", b"server_name", "stacktrace", b"stacktrace", "tags", b"tags", "threads", b"threads", "time_spent", b"time_spent", "timestamp", b"timestamp", "transaction", b"transaction", "transaction_info", b"transaction_info", "type", b"type", "user", b"user", "version", b"version"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["breadcrumbs", b"breadcrumbs", "contexts", b"contexts", "culprit", b"culprit", "debug_meta", b"debug_meta", "dist", b"dist", "environment", b"environment", "errors", b"errors", "event_id", b"event_id", "exception", b"exception", "extra", b"extra", "fingerprint", b"fingerprint", "has_breadcrumbs", b"has_breadcrumbs", "has_culprit", b"has_culprit", "has_debug_meta", b"has_debug_meta", "has_dist", b"has_dist", "has_environment", b"has_environment", "has_event_id", b"has_event_id", "has_exception", b"has_exception", "has_extra", b"has_extra", "has_level", b"has_level", "has_logentry", b"has_logentry", "has_logger", b"has_logger", "has_platform", b"has_platform", "has_received", b"has_received", "has_release", b"has_release", "has_request", b"has_request", "has_sdk", b"has_sdk", "has_server_name", b"has_server_name", "has_stacktrace", b"has_stacktrace", "has_tags", b"has_tags", "has_threads", b"has_threads", "has_time_spent", b"has_time_spent", "has_timestamp", b"has_timestamp", "has_transaction", b"has_transaction", "has_transaction_info", b"has_transaction_info", "has_type", b"has_type", "has_user", b"has_user", "has_version", b"has_version", "level", b"level", "logentry", b"logentry", "logger", b"logger", "modules", b"modules", "platform", b"platform", "received", b"received", "release", b"release", "request", b"request", "sdk", b"sdk", "server_name", b"server_name", "stacktrace", b"stacktrace", "tags", b"tags", "threads", b"threads", "time_spent", b"time_spent", "timestamp", b"timestamp", "transaction", b"transaction", "transaction_info", b"transaction_info", "type", b"type", "user", b"user", "version", b"version"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_breadcrumbs", b"has_breadcrumbs"]) -> typing.Literal["breadcrumbs"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_culprit", b"has_culprit"]) -> typing.Literal["culprit"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_debug_meta", b"has_debug_meta"]) -> typing.Literal["debug_meta"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_dist", b"has_dist"]) -> typing.Literal["dist"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_environment", b"has_environment"]) -> typing.Literal["environment"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_event_id", b"has_event_id"]) -> typing.Literal["event_id"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_exception", b"has_exception"]) -> typing.Literal["exception"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_extra", b"has_extra"]) -> typing.Literal["extra"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_level", b"has_level"]) -> typing.Literal["level"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_logentry", b"has_logentry"]) -> typing.Literal["logentry"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_logger", b"has_logger"]) -> typing.Literal["logger"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_platform", b"has_platform"]) -> typing.Literal["platform"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_received", b"has_received"]) -> typing.Literal["received"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_release", b"has_release"]) -> typing.Literal["release"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_request", b"has_request"]) -> typing.Literal["request"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_sdk", b"has_sdk"]) -> typing.Literal["sdk"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_server_name", b"has_server_name"]) -> typing.Literal["server_name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_stacktrace", b"has_stacktrace"]) -> typing.Literal["stacktrace"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_tags", b"has_tags"]) -> typing.Literal["tags"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_threads", b"has_threads"]) -> typing.Literal["threads"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_time_spent", b"has_time_spent"]) -> typing.Literal["time_spent"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_timestamp", b"has_timestamp"]) -> typing.Literal["timestamp"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_transaction", b"has_transaction"]) -> typing.Literal["transaction"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_transaction_info", b"has_transaction_info"]) -> typing.Literal["transaction_info"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_type", b"has_type"]) -> typing.Literal["type"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_user", b"has_user"]) -> typing.Literal["user"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_version", b"has_version"]) -> typing.Literal["version"] | None: ... + +global___Event = Event + +@typing.final +class Appcontext(google.protobuf.message.Message): + """ + Application information. + + App context describes the application. As opposed to the runtime, this is the actual + application that was running and carries metadata about the current session. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + APP_BUILD_FIELD_NUMBER: builtins.int + APP_IDENTIFIER_FIELD_NUMBER: builtins.int + APP_MEMORY_FIELD_NUMBER: builtins.int + APP_NAME_FIELD_NUMBER: builtins.int + APP_START_TIME_FIELD_NUMBER: builtins.int + APP_VERSION_FIELD_NUMBER: builtins.int + BUILD_TYPE_FIELD_NUMBER: builtins.int + DEVICE_APP_HASH_FIELD_NUMBER: builtins.int + IN_FOREGROUND_FIELD_NUMBER: builtins.int + VIEW_NAMES_FIELD_NUMBER: builtins.int + app_build: builtins.str + app_identifier: builtins.str + app_memory: builtins.int + app_name: builtins.str + app_start_time: builtins.str + app_version: builtins.str + build_type: builtins.str + device_app_hash: builtins.str + in_foreground: builtins.bool + @property + def view_names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + def __init__( + self, + *, + app_build: builtins.str = ..., + app_identifier: builtins.str = ..., + app_memory: builtins.int = ..., + app_name: builtins.str = ..., + app_start_time: builtins.str = ..., + app_version: builtins.str = ..., + build_type: builtins.str = ..., + device_app_hash: builtins.str = ..., + in_foreground: builtins.bool = ..., + view_names: collections.abc.Iterable[builtins.str] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["app_build", b"app_build", "app_identifier", b"app_identifier", "app_memory", b"app_memory", "app_name", b"app_name", "app_start_time", b"app_start_time", "app_version", b"app_version", "build_type", b"build_type", "device_app_hash", b"device_app_hash", "has_app_build", b"has_app_build", "has_app_identifier", b"has_app_identifier", "has_app_memory", b"has_app_memory", "has_app_name", b"has_app_name", "has_app_start_time", b"has_app_start_time", "has_app_version", b"has_app_version", "has_build_type", b"has_build_type", "has_device_app_hash", b"has_device_app_hash", "has_in_foreground", b"has_in_foreground", "in_foreground", b"in_foreground"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["app_build", b"app_build", "app_identifier", b"app_identifier", "app_memory", b"app_memory", "app_name", b"app_name", "app_start_time", b"app_start_time", "app_version", b"app_version", "build_type", b"build_type", "device_app_hash", b"device_app_hash", "has_app_build", b"has_app_build", "has_app_identifier", b"has_app_identifier", "has_app_memory", b"has_app_memory", "has_app_name", b"has_app_name", "has_app_start_time", b"has_app_start_time", "has_app_version", b"has_app_version", "has_build_type", b"has_build_type", "has_device_app_hash", b"has_device_app_hash", "has_in_foreground", b"has_in_foreground", "in_foreground", b"in_foreground", "view_names", b"view_names"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_app_build", b"has_app_build"]) -> typing.Literal["app_build"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_app_identifier", b"has_app_identifier"]) -> typing.Literal["app_identifier"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_app_memory", b"has_app_memory"]) -> typing.Literal["app_memory"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_app_name", b"has_app_name"]) -> typing.Literal["app_name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_app_start_time", b"has_app_start_time"]) -> typing.Literal["app_start_time"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_app_version", b"has_app_version"]) -> typing.Literal["app_version"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_build_type", b"has_build_type"]) -> typing.Literal["build_type"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_device_app_hash", b"has_device_app_hash"]) -> typing.Literal["device_app_hash"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_in_foreground", b"has_in_foreground"]) -> typing.Literal["in_foreground"] | None: ... + +global___Appcontext = Appcontext + +@typing.final +class Appledebugimage(google.protobuf.message.Message): + """ + Legacy apple debug images (MachO). + + This was also used for non-apple platforms with similar debug setups. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ARCH_FIELD_NUMBER: builtins.int + CPU_SUBTYPE_FIELD_NUMBER: builtins.int + CPU_TYPE_FIELD_NUMBER: builtins.int + IMAGE_ADDR_FIELD_NUMBER: builtins.int + IMAGE_SIZE_FIELD_NUMBER: builtins.int + IMAGE_VMADDR_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + UUID_FIELD_NUMBER: builtins.int + arch: builtins.str + cpu_subtype: builtins.int + cpu_type: builtins.int + image_addr: builtins.str + image_size: builtins.int + image_vmaddr: builtins.str + name: builtins.str + uuid: builtins.str + def __init__( + self, + *, + arch: builtins.str = ..., + cpu_subtype: builtins.int = ..., + cpu_type: builtins.int = ..., + image_addr: builtins.str = ..., + image_size: builtins.int = ..., + image_vmaddr: builtins.str = ..., + name: builtins.str = ..., + uuid: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["arch", b"arch", "cpu_subtype", b"cpu_subtype", "cpu_type", b"cpu_type", "has_arch", b"has_arch", "has_cpu_subtype", b"has_cpu_subtype", "has_cpu_type", b"has_cpu_type", "has_image_vmaddr", b"has_image_vmaddr", "image_vmaddr", b"image_vmaddr"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["arch", b"arch", "cpu_subtype", b"cpu_subtype", "cpu_type", b"cpu_type", "has_arch", b"has_arch", "has_cpu_subtype", b"has_cpu_subtype", "has_cpu_type", b"has_cpu_type", "has_image_vmaddr", b"has_image_vmaddr", "image_addr", b"image_addr", "image_size", b"image_size", "image_vmaddr", b"image_vmaddr", "name", b"name", "uuid", b"uuid"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_arch", b"has_arch"]) -> typing.Literal["arch"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_cpu_subtype", b"has_cpu_subtype"]) -> typing.Literal["cpu_subtype"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_cpu_type", b"has_cpu_type"]) -> typing.Literal["cpu_type"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_image_vmaddr", b"has_image_vmaddr"]) -> typing.Literal["image_vmaddr"] | None: ... + +global___Appledebugimage = Appledebugimage + +@typing.final +class Breadcrumb(google.protobuf.message.Message): + """ + The Breadcrumbs Interface specifies a series of application events, or "breadcrumbs", that + occurred before an event. + + An event may contain one or more breadcrumbs in an attribute named `breadcrumbs`. The entries + are ordered from oldest to newest. Consequently, the last entry in the list should be the last + entry before the event occurred. + + While breadcrumb attributes are not strictly validated in Sentry, a breadcrumb is most useful + when it includes at least a `timestamp` and `type`, `category` or `message`. The rendering of + breadcrumbs in Sentry depends on what is provided. + + The following example illustrates the breadcrumbs part of the event payload and omits other + attributes for simplicity. + + ```json + { + "breadcrumbs": { + "values": [ + { + "timestamp": "2016-04-20T20:55:53.845Z", + "message": "Something happened", + "category": "log", + "data": { + "foo": "bar", + "blub": "blah" + } + }, + { + "timestamp": "2016-04-20T20:55:53.847Z", + "type": "navigation", + "data": { + "from": "/login", + "to": "/dashboard" + } + } + ] + } + } + ``` + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CATEGORY_FIELD_NUMBER: builtins.int + DATA_FIELD_NUMBER: builtins.int + EVENT_ID_FIELD_NUMBER: builtins.int + LEVEL_FIELD_NUMBER: builtins.int + MESSAGE_FIELD_NUMBER: builtins.int + TIMESTAMP_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + category: builtins.str + event_id: builtins.str + level: builtins.str + message: builtins.str + type: builtins.str + @property + def data(self) -> google.protobuf.struct_pb2.Value: ... + @property + def timestamp(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + category: builtins.str = ..., + data: google.protobuf.struct_pb2.Value | None = ..., + event_id: builtins.str = ..., + level: builtins.str = ..., + message: builtins.str = ..., + timestamp: google.protobuf.struct_pb2.Value | None = ..., + type: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["category", b"category", "data", b"data", "event_id", b"event_id", "has_category", b"has_category", "has_data", b"has_data", "has_event_id", b"has_event_id", "has_level", b"has_level", "has_message", b"has_message", "has_timestamp", b"has_timestamp", "has_type", b"has_type", "level", b"level", "message", b"message", "timestamp", b"timestamp", "type", b"type"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["category", b"category", "data", b"data", "event_id", b"event_id", "has_category", b"has_category", "has_data", b"has_data", "has_event_id", b"has_event_id", "has_level", b"has_level", "has_message", b"has_message", "has_timestamp", b"has_timestamp", "has_type", b"has_type", "level", b"level", "message", b"message", "timestamp", b"timestamp", "type", b"type"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_category", b"has_category"]) -> typing.Literal["category"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_data", b"has_data"]) -> typing.Literal["data"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_event_id", b"has_event_id"]) -> typing.Literal["event_id"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_level", b"has_level"]) -> typing.Literal["level"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_message", b"has_message"]) -> typing.Literal["message"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_timestamp", b"has_timestamp"]) -> typing.Literal["timestamp"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_type", b"has_type"]) -> typing.Literal["type"] | None: ... + +global___Breadcrumb = Breadcrumb + +@typing.final +class Browsercontext(google.protobuf.message.Message): + """ + Web browser information. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAME_FIELD_NUMBER: builtins.int + VERSION_FIELD_NUMBER: builtins.int + name: builtins.str + version: builtins.str + def __init__( + self, + *, + name: builtins.str = ..., + version: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_name", b"has_name", "has_version", b"has_version", "name", b"name", "version", b"version"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_name", b"has_name", "has_version", b"has_version", "name", b"name", "version", b"version"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_name", b"has_name"]) -> typing.Literal["name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_version", b"has_version"]) -> typing.Literal["version"] | None: ... + +global___Browsercontext = Browsercontext + +@typing.final +class Cerror(google.protobuf.message.Message): + """ + POSIX signal with optional extended data. + + Error codes set by Linux system calls and some library functions as specified in ISO C99, + POSIX.1-2001, and POSIX.1-2008. See + [`errno(3)`](https://man7.org/linux/man-pages/man3/errno.3.html) for more information. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAME_FIELD_NUMBER: builtins.int + NUMBER_FIELD_NUMBER: builtins.int + name: builtins.str + number: builtins.int + def __init__( + self, + *, + name: builtins.str = ..., + number: builtins.int = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_name", b"has_name", "has_number", b"has_number", "name", b"name", "number", b"number"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_name", b"has_name", "has_number", b"has_number", "name", b"name", "number", b"number"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_name", b"has_name"]) -> typing.Literal["name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_number", b"has_number"]) -> typing.Literal["number"] | None: ... + +global___Cerror = Cerror + +@typing.final +class Clientsdkinfo(google.protobuf.message.Message): + """ + The SDK Interface describes the Sentry SDK and its configuration used to capture and transmit an event. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class ClientsdkinfoPackages(google.protobuf.message.Message): + """ + List of installed and loaded SDK packages. _Optional._ + + A list of packages that were installed as part of this SDK or the activated integrations. + Each package consists of a name in the format `source:identifier` and `version`. If the + source is a Git repository, the `source` should be `git`, the identifier should be a + checkout link and the version should be a Git reference (branch, tag or SHA). + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAME_FIELD_NUMBER: builtins.int + VERSION_FIELD_NUMBER: builtins.int + name: builtins.str + version: builtins.str + def __init__( + self, + *, + name: builtins.str = ..., + version: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_name", b"has_name", "has_version", b"has_version", "name", b"name", "version", b"version"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_name", b"has_name", "has_version", b"has_version", "name", b"name", "version", b"version"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_name", b"has_name"]) -> typing.Literal["name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_version", b"has_version"]) -> typing.Literal["version"] | None: ... + + INTEGRATIONS_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + PACKAGES_FIELD_NUMBER: builtins.int + VERSION_FIELD_NUMBER: builtins.int + name: builtins.str + version: builtins.str + @property + def integrations(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def packages(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Clientsdkinfo.ClientsdkinfoPackages]: ... + def __init__( + self, + *, + integrations: collections.abc.Iterable[builtins.str] | None = ..., + name: builtins.str = ..., + packages: collections.abc.Iterable[global___Clientsdkinfo.ClientsdkinfoPackages] | None = ..., + version: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["integrations", b"integrations", "name", b"name", "packages", b"packages", "version", b"version"]) -> None: ... + +global___Clientsdkinfo = Clientsdkinfo + +@typing.final +class Clientsdkpackage(google.protobuf.message.Message): + """ + An installed and loaded package as part of the Sentry SDK. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAME_FIELD_NUMBER: builtins.int + VERSION_FIELD_NUMBER: builtins.int + name: builtins.str + version: builtins.str + def __init__( + self, + *, + name: builtins.str = ..., + version: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_name", b"has_name", "has_version", b"has_version", "name", b"name", "version", b"version"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_name", b"has_name", "has_version", b"has_version", "name", b"name", "version", b"version"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_name", b"has_name"]) -> typing.Literal["name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_version", b"has_version"]) -> typing.Literal["version"] | None: ... + +global___Clientsdkpackage = Clientsdkpackage + +@typing.final +class Data(google.protobuf.message.Message): + """ + The arbitrary data on the trace. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class DataPreviousroute(google.protobuf.message.Message): + """ + The previous route in the application + + Set by React Native SDK. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAME_FIELD_NUMBER: builtins.int + PARAMS_FIELD_NUMBER: builtins.int + name: builtins.str + @property + def params(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + name: builtins.str = ..., + params: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_name", b"has_name", "has_params", b"has_params", "name", b"name", "params", b"params"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_name", b"has_name", "has_params", b"has_params", "name", b"name", "params", b"params"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_name", b"has_name"]) -> typing.Literal["name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_params", b"has_params"]) -> typing.Literal["params"] | None: ... + + @typing.final + class DataRoute(google.protobuf.message.Message): + """ + The current route in the application. + + Set by React Native SDK. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAME_FIELD_NUMBER: builtins.int + PARAMS_FIELD_NUMBER: builtins.int + name: builtins.str + @property + def params(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + name: builtins.str = ..., + params: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_name", b"has_name", "has_params", b"has_params", "name", b"name", "params", b"params"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_name", b"has_name", "has_params", b"has_params", "name", b"name", "params", b"params"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_name", b"has_name"]) -> typing.Literal["name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_params", b"has_params"]) -> typing.Literal["params"] | None: ... + + PREVIOUS_ROUTE_FIELD_NUMBER: builtins.int + ROUTE_FIELD_NUMBER: builtins.int + @property + def previous_route(self) -> global___Data.DataPreviousroute: ... + @property + def route(self) -> global___Data.DataRoute: ... + def __init__( + self, + *, + previous_route: global___Data.DataPreviousroute | None = ..., + route: global___Data.DataRoute | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_previous_route", b"has_previous_route", "has_route", b"has_route", "previous_route", b"previous_route", "route", b"route"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_previous_route", b"has_previous_route", "has_route", b"has_route", "previous_route", b"previous_route", "route", b"route"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_previous_route", b"has_previous_route"]) -> typing.Literal["previous_route"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_route", b"has_route"]) -> typing.Literal["route"] | None: ... + +global___Data = Data + +@typing.final +class Debugmeta(google.protobuf.message.Message): + """ + Debugging and processing meta information. + + The debug meta interface carries debug information for processing errors and crash reports. + Sentry amends the information in this interface. + + Example (look at field types to see more detail): + + ```json + { + "debug_meta": { + "images": [], + "sdk_info": { + "sdk_name": "iOS", + "version_major": 10, + "version_minor": 3, + "version_patchlevel": 0 + } + } + } + ``` + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class DebugmetaSdkInfo(google.protobuf.message.Message): + """ + Information about the system SDK (e.g. iOS SDK). + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + SDK_NAME_FIELD_NUMBER: builtins.int + VERSION_MAJOR_FIELD_NUMBER: builtins.int + VERSION_MINOR_FIELD_NUMBER: builtins.int + VERSION_PATCHLEVEL_FIELD_NUMBER: builtins.int + sdk_name: builtins.str + version_major: builtins.int + version_minor: builtins.int + version_patchlevel: builtins.int + def __init__( + self, + *, + sdk_name: builtins.str = ..., + version_major: builtins.int = ..., + version_minor: builtins.int = ..., + version_patchlevel: builtins.int = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_sdk_name", b"has_sdk_name", "has_version_major", b"has_version_major", "has_version_minor", b"has_version_minor", "has_version_patchlevel", b"has_version_patchlevel", "sdk_name", b"sdk_name", "version_major", b"version_major", "version_minor", b"version_minor", "version_patchlevel", b"version_patchlevel"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_sdk_name", b"has_sdk_name", "has_version_major", b"has_version_major", "has_version_minor", b"has_version_minor", "has_version_patchlevel", b"has_version_patchlevel", "sdk_name", b"sdk_name", "version_major", b"version_major", "version_minor", b"version_minor", "version_patchlevel", b"version_patchlevel"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_sdk_name", b"has_sdk_name"]) -> typing.Literal["sdk_name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_version_major", b"has_version_major"]) -> typing.Literal["version_major"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_version_minor", b"has_version_minor"]) -> typing.Literal["version_minor"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_version_patchlevel", b"has_version_patchlevel"]) -> typing.Literal["version_patchlevel"] | None: ... + + IMAGES_FIELD_NUMBER: builtins.int + SDK_INFO_FIELD_NUMBER: builtins.int + @property + def images(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[google.protobuf.struct_pb2.Value]: ... + @property + def sdk_info(self) -> global___Debugmeta.DebugmetaSdkInfo: ... + def __init__( + self, + *, + images: collections.abc.Iterable[google.protobuf.struct_pb2.Value] | None = ..., + sdk_info: global___Debugmeta.DebugmetaSdkInfo | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_sdk_info", b"has_sdk_info", "sdk_info", b"sdk_info"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_sdk_info", b"has_sdk_info", "images", b"images", "sdk_info", b"sdk_info"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["has_sdk_info", b"has_sdk_info"]) -> typing.Literal["sdk_info"] | None: ... + +global___Debugmeta = Debugmeta + +@typing.final +class Devicecontext(google.protobuf.message.Message): + """ + Device information. + + Device context describes the device that caused the event. This is most appropriate for mobile + applications. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ARCH_FIELD_NUMBER: builtins.int + BATTERY_LEVEL_FIELD_NUMBER: builtins.int + BATTERY_STATUS_FIELD_NUMBER: builtins.int + BOOT_TIME_FIELD_NUMBER: builtins.int + BRAND_FIELD_NUMBER: builtins.int + CHARGING_FIELD_NUMBER: builtins.int + CPU_DESCRIPTION_FIELD_NUMBER: builtins.int + DEVICE_TYPE_FIELD_NUMBER: builtins.int + DEVICE_UNIQUE_IDENTIFIER_FIELD_NUMBER: builtins.int + EXTERNAL_FREE_STORAGE_FIELD_NUMBER: builtins.int + EXTERNAL_STORAGE_SIZE_FIELD_NUMBER: builtins.int + FAMILY_FIELD_NUMBER: builtins.int + FREE_MEMORY_FIELD_NUMBER: builtins.int + FREE_STORAGE_FIELD_NUMBER: builtins.int + LOCALE_FIELD_NUMBER: builtins.int + LOW_MEMORY_FIELD_NUMBER: builtins.int + MANUFACTURER_FIELD_NUMBER: builtins.int + MEMORY_SIZE_FIELD_NUMBER: builtins.int + MODEL_FIELD_NUMBER: builtins.int + MODEL_ID_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + ONLINE_FIELD_NUMBER: builtins.int + ORIENTATION_FIELD_NUMBER: builtins.int + PROCESSOR_COUNT_FIELD_NUMBER: builtins.int + PROCESSOR_FREQUENCY_FIELD_NUMBER: builtins.int + SCREEN_DENSITY_FIELD_NUMBER: builtins.int + SCREEN_DPI_FIELD_NUMBER: builtins.int + SCREEN_HEIGHT_PIXELS_FIELD_NUMBER: builtins.int + SCREEN_RESOLUTION_FIELD_NUMBER: builtins.int + SCREEN_WIDTH_PIXELS_FIELD_NUMBER: builtins.int + SIMULATOR_FIELD_NUMBER: builtins.int + STORAGE_SIZE_FIELD_NUMBER: builtins.int + SUPPORTS_ACCELEROMETER_FIELD_NUMBER: builtins.int + SUPPORTS_AUDIO_FIELD_NUMBER: builtins.int + SUPPORTS_GYROSCOPE_FIELD_NUMBER: builtins.int + SUPPORTS_LOCATION_SERVICE_FIELD_NUMBER: builtins.int + SUPPORTS_VIBRATION_FIELD_NUMBER: builtins.int + TIMEZONE_FIELD_NUMBER: builtins.int + USABLE_MEMORY_FIELD_NUMBER: builtins.int + UUID_FIELD_NUMBER: builtins.int + arch: builtins.str + battery_level: builtins.float + battery_status: builtins.str + boot_time: builtins.str + brand: builtins.str + charging: builtins.bool + cpu_description: builtins.str + device_type: builtins.str + device_unique_identifier: builtins.str + external_free_storage: builtins.int + external_storage_size: builtins.int + family: builtins.str + free_memory: builtins.int + free_storage: builtins.int + locale: builtins.str + low_memory: builtins.bool + manufacturer: builtins.str + memory_size: builtins.int + model: builtins.str + model_id: builtins.str + name: builtins.str + online: builtins.bool + orientation: builtins.str + processor_count: builtins.int + processor_frequency: builtins.int + screen_density: builtins.float + screen_dpi: builtins.int + screen_height_pixels: builtins.int + screen_resolution: builtins.str + screen_width_pixels: builtins.int + simulator: builtins.bool + storage_size: builtins.int + supports_accelerometer: builtins.bool + supports_audio: builtins.bool + supports_gyroscope: builtins.bool + supports_location_service: builtins.bool + supports_vibration: builtins.bool + timezone: builtins.str + usable_memory: builtins.int + uuid: builtins.str + def __init__( + self, + *, + arch: builtins.str = ..., + battery_level: builtins.float = ..., + battery_status: builtins.str = ..., + boot_time: builtins.str = ..., + brand: builtins.str = ..., + charging: builtins.bool = ..., + cpu_description: builtins.str = ..., + device_type: builtins.str = ..., + device_unique_identifier: builtins.str = ..., + external_free_storage: builtins.int = ..., + external_storage_size: builtins.int = ..., + family: builtins.str = ..., + free_memory: builtins.int = ..., + free_storage: builtins.int = ..., + locale: builtins.str = ..., + low_memory: builtins.bool = ..., + manufacturer: builtins.str = ..., + memory_size: builtins.int = ..., + model: builtins.str = ..., + model_id: builtins.str = ..., + name: builtins.str = ..., + online: builtins.bool = ..., + orientation: builtins.str = ..., + processor_count: builtins.int = ..., + processor_frequency: builtins.int = ..., + screen_density: builtins.float = ..., + screen_dpi: builtins.int = ..., + screen_height_pixels: builtins.int = ..., + screen_resolution: builtins.str = ..., + screen_width_pixels: builtins.int = ..., + simulator: builtins.bool = ..., + storage_size: builtins.int = ..., + supports_accelerometer: builtins.bool = ..., + supports_audio: builtins.bool = ..., + supports_gyroscope: builtins.bool = ..., + supports_location_service: builtins.bool = ..., + supports_vibration: builtins.bool = ..., + timezone: builtins.str = ..., + usable_memory: builtins.int = ..., + uuid: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["arch", b"arch", "battery_level", b"battery_level", "battery_status", b"battery_status", "boot_time", b"boot_time", "brand", b"brand", "charging", b"charging", "cpu_description", b"cpu_description", "device_type", b"device_type", "device_unique_identifier", b"device_unique_identifier", "external_free_storage", b"external_free_storage", "external_storage_size", b"external_storage_size", "family", b"family", "free_memory", b"free_memory", "free_storage", b"free_storage", "has_arch", b"has_arch", "has_battery_level", b"has_battery_level", "has_battery_status", b"has_battery_status", "has_boot_time", b"has_boot_time", "has_brand", b"has_brand", "has_charging", b"has_charging", "has_cpu_description", b"has_cpu_description", "has_device_type", b"has_device_type", "has_device_unique_identifier", b"has_device_unique_identifier", "has_external_free_storage", b"has_external_free_storage", "has_external_storage_size", b"has_external_storage_size", "has_family", b"has_family", "has_free_memory", b"has_free_memory", "has_free_storage", b"has_free_storage", "has_locale", b"has_locale", "has_low_memory", b"has_low_memory", "has_manufacturer", b"has_manufacturer", "has_memory_size", b"has_memory_size", "has_model", b"has_model", "has_model_id", b"has_model_id", "has_name", b"has_name", "has_online", b"has_online", "has_orientation", b"has_orientation", "has_processor_count", b"has_processor_count", "has_processor_frequency", b"has_processor_frequency", "has_screen_density", b"has_screen_density", "has_screen_dpi", b"has_screen_dpi", "has_screen_height_pixels", b"has_screen_height_pixels", "has_screen_resolution", b"has_screen_resolution", "has_screen_width_pixels", b"has_screen_width_pixels", "has_simulator", b"has_simulator", "has_storage_size", b"has_storage_size", "has_supports_accelerometer", b"has_supports_accelerometer", "has_supports_audio", b"has_supports_audio", "has_supports_gyroscope", b"has_supports_gyroscope", "has_supports_location_service", b"has_supports_location_service", "has_supports_vibration", b"has_supports_vibration", "has_timezone", b"has_timezone", "has_usable_memory", b"has_usable_memory", "has_uuid", b"has_uuid", "locale", b"locale", "low_memory", b"low_memory", "manufacturer", b"manufacturer", "memory_size", b"memory_size", "model", b"model", "model_id", b"model_id", "name", b"name", "online", b"online", "orientation", b"orientation", "processor_count", b"processor_count", "processor_frequency", b"processor_frequency", "screen_density", b"screen_density", "screen_dpi", b"screen_dpi", "screen_height_pixels", b"screen_height_pixels", "screen_resolution", b"screen_resolution", "screen_width_pixels", b"screen_width_pixels", "simulator", b"simulator", "storage_size", b"storage_size", "supports_accelerometer", b"supports_accelerometer", "supports_audio", b"supports_audio", "supports_gyroscope", b"supports_gyroscope", "supports_location_service", b"supports_location_service", "supports_vibration", b"supports_vibration", "timezone", b"timezone", "usable_memory", b"usable_memory", "uuid", b"uuid"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["arch", b"arch", "battery_level", b"battery_level", "battery_status", b"battery_status", "boot_time", b"boot_time", "brand", b"brand", "charging", b"charging", "cpu_description", b"cpu_description", "device_type", b"device_type", "device_unique_identifier", b"device_unique_identifier", "external_free_storage", b"external_free_storage", "external_storage_size", b"external_storage_size", "family", b"family", "free_memory", b"free_memory", "free_storage", b"free_storage", "has_arch", b"has_arch", "has_battery_level", b"has_battery_level", "has_battery_status", b"has_battery_status", "has_boot_time", b"has_boot_time", "has_brand", b"has_brand", "has_charging", b"has_charging", "has_cpu_description", b"has_cpu_description", "has_device_type", b"has_device_type", "has_device_unique_identifier", b"has_device_unique_identifier", "has_external_free_storage", b"has_external_free_storage", "has_external_storage_size", b"has_external_storage_size", "has_family", b"has_family", "has_free_memory", b"has_free_memory", "has_free_storage", b"has_free_storage", "has_locale", b"has_locale", "has_low_memory", b"has_low_memory", "has_manufacturer", b"has_manufacturer", "has_memory_size", b"has_memory_size", "has_model", b"has_model", "has_model_id", b"has_model_id", "has_name", b"has_name", "has_online", b"has_online", "has_orientation", b"has_orientation", "has_processor_count", b"has_processor_count", "has_processor_frequency", b"has_processor_frequency", "has_screen_density", b"has_screen_density", "has_screen_dpi", b"has_screen_dpi", "has_screen_height_pixels", b"has_screen_height_pixels", "has_screen_resolution", b"has_screen_resolution", "has_screen_width_pixels", b"has_screen_width_pixels", "has_simulator", b"has_simulator", "has_storage_size", b"has_storage_size", "has_supports_accelerometer", b"has_supports_accelerometer", "has_supports_audio", b"has_supports_audio", "has_supports_gyroscope", b"has_supports_gyroscope", "has_supports_location_service", b"has_supports_location_service", "has_supports_vibration", b"has_supports_vibration", "has_timezone", b"has_timezone", "has_usable_memory", b"has_usable_memory", "has_uuid", b"has_uuid", "locale", b"locale", "low_memory", b"low_memory", "manufacturer", b"manufacturer", "memory_size", b"memory_size", "model", b"model", "model_id", b"model_id", "name", b"name", "online", b"online", "orientation", b"orientation", "processor_count", b"processor_count", "processor_frequency", b"processor_frequency", "screen_density", b"screen_density", "screen_dpi", b"screen_dpi", "screen_height_pixels", b"screen_height_pixels", "screen_resolution", b"screen_resolution", "screen_width_pixels", b"screen_width_pixels", "simulator", b"simulator", "storage_size", b"storage_size", "supports_accelerometer", b"supports_accelerometer", "supports_audio", b"supports_audio", "supports_gyroscope", b"supports_gyroscope", "supports_location_service", b"supports_location_service", "supports_vibration", b"supports_vibration", "timezone", b"timezone", "usable_memory", b"usable_memory", "uuid", b"uuid"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_arch", b"has_arch"]) -> typing.Literal["arch"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_battery_level", b"has_battery_level"]) -> typing.Literal["battery_level"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_battery_status", b"has_battery_status"]) -> typing.Literal["battery_status"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_boot_time", b"has_boot_time"]) -> typing.Literal["boot_time"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_brand", b"has_brand"]) -> typing.Literal["brand"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_charging", b"has_charging"]) -> typing.Literal["charging"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_cpu_description", b"has_cpu_description"]) -> typing.Literal["cpu_description"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_device_type", b"has_device_type"]) -> typing.Literal["device_type"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_device_unique_identifier", b"has_device_unique_identifier"]) -> typing.Literal["device_unique_identifier"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_external_free_storage", b"has_external_free_storage"]) -> typing.Literal["external_free_storage"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_external_storage_size", b"has_external_storage_size"]) -> typing.Literal["external_storage_size"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_family", b"has_family"]) -> typing.Literal["family"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_free_memory", b"has_free_memory"]) -> typing.Literal["free_memory"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_free_storage", b"has_free_storage"]) -> typing.Literal["free_storage"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_locale", b"has_locale"]) -> typing.Literal["locale"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_low_memory", b"has_low_memory"]) -> typing.Literal["low_memory"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_manufacturer", b"has_manufacturer"]) -> typing.Literal["manufacturer"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_memory_size", b"has_memory_size"]) -> typing.Literal["memory_size"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_model", b"has_model"]) -> typing.Literal["model"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_model_id", b"has_model_id"]) -> typing.Literal["model_id"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_name", b"has_name"]) -> typing.Literal["name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_online", b"has_online"]) -> typing.Literal["online"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_orientation", b"has_orientation"]) -> typing.Literal["orientation"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_processor_count", b"has_processor_count"]) -> typing.Literal["processor_count"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_processor_frequency", b"has_processor_frequency"]) -> typing.Literal["processor_frequency"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_screen_density", b"has_screen_density"]) -> typing.Literal["screen_density"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_screen_dpi", b"has_screen_dpi"]) -> typing.Literal["screen_dpi"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_screen_height_pixels", b"has_screen_height_pixels"]) -> typing.Literal["screen_height_pixels"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_screen_resolution", b"has_screen_resolution"]) -> typing.Literal["screen_resolution"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_screen_width_pixels", b"has_screen_width_pixels"]) -> typing.Literal["screen_width_pixels"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_simulator", b"has_simulator"]) -> typing.Literal["simulator"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_storage_size", b"has_storage_size"]) -> typing.Literal["storage_size"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_supports_accelerometer", b"has_supports_accelerometer"]) -> typing.Literal["supports_accelerometer"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_supports_audio", b"has_supports_audio"]) -> typing.Literal["supports_audio"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_supports_gyroscope", b"has_supports_gyroscope"]) -> typing.Literal["supports_gyroscope"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_supports_location_service", b"has_supports_location_service"]) -> typing.Literal["supports_location_service"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_supports_vibration", b"has_supports_vibration"]) -> typing.Literal["supports_vibration"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_timezone", b"has_timezone"]) -> typing.Literal["timezone"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_usable_memory", b"has_usable_memory"]) -> typing.Literal["usable_memory"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_uuid", b"has_uuid"]) -> typing.Literal["uuid"] | None: ... + +global___Devicecontext = Devicecontext + +@typing.final +class Eventprocessingerror(google.protobuf.message.Message): + """ + An event processing error. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAME_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + name: builtins.str + type: builtins.str + @property + def value(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + name: builtins.str = ..., + type: builtins.str = ..., + value: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_name", b"has_name", "name", b"name", "value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_name", b"has_name", "name", b"name", "type", b"type", "value", b"value"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["has_name", b"has_name"]) -> typing.Literal["name"] | None: ... + +global___Eventprocessingerror = Eventprocessingerror + +@typing.final +class Exception(google.protobuf.message.Message): + """ + A single exception. + + Multiple values inside of an [event](#typedef-Event) represent chained exceptions and should be sorted oldest to newest. For example, consider this Python code snippet: + + ```python + try: + raise Exception("random boring invariant was not met!") + except Exception as e: + raise ValueError("something went wrong, help!") from e + ``` + + `Exception` would be described first in the values list, followed by a description of `ValueError`: + + ```json + { + "exception": { + "values": [ + {"type": "Exception": "value": "random boring invariant was not met!"}, + {"type": "ValueError", "value": "something went wrong, help!"}, + ] + } + } + ``` + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class ExceptionMechanism(google.protobuf.message.Message): + """ + Mechanism by which this exception was generated and handled. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class ExceptionMechanismMeta(google.protobuf.message.Message): + """ + Operating system or runtime meta information. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class ExceptionMechanismMetaErrno(google.protobuf.message.Message): + """ + Optional ISO C standard error code. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAME_FIELD_NUMBER: builtins.int + NUMBER_FIELD_NUMBER: builtins.int + name: builtins.str + number: builtins.int + def __init__( + self, + *, + name: builtins.str = ..., + number: builtins.int = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_name", b"has_name", "has_number", b"has_number", "name", b"name", "number", b"number"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_name", b"has_name", "has_number", b"has_number", "name", b"name", "number", b"number"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_name", b"has_name"]) -> typing.Literal["name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_number", b"has_number"]) -> typing.Literal["number"] | None: ... + + @typing.final + class ExceptionMechanismMetaMachException(google.protobuf.message.Message): + """ + A Mach Exception on Apple systems comprising a code triple and optional descriptions. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CODE_FIELD_NUMBER: builtins.int + EXCEPTION_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + SUBCODE_FIELD_NUMBER: builtins.int + code: builtins.int + exception: builtins.int + name: builtins.str + subcode: builtins.int + def __init__( + self, + *, + code: builtins.int = ..., + exception: builtins.int = ..., + name: builtins.str = ..., + subcode: builtins.int = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["code", b"code", "exception", b"exception", "has_code", b"has_code", "has_exception", b"has_exception", "has_name", b"has_name", "has_subcode", b"has_subcode", "name", b"name", "subcode", b"subcode"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["code", b"code", "exception", b"exception", "has_code", b"has_code", "has_exception", b"has_exception", "has_name", b"has_name", "has_subcode", b"has_subcode", "name", b"name", "subcode", b"subcode"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_code", b"has_code"]) -> typing.Literal["code"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_exception", b"has_exception"]) -> typing.Literal["exception"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_name", b"has_name"]) -> typing.Literal["name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_subcode", b"has_subcode"]) -> typing.Literal["subcode"] | None: ... + + @typing.final + class ExceptionMechanismMetaNsError(google.protobuf.message.Message): + """ + An NSError on Apple systems comprising code and signal. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CODE_FIELD_NUMBER: builtins.int + DOMAIN_FIELD_NUMBER: builtins.int + code: builtins.int + domain: builtins.str + def __init__( + self, + *, + code: builtins.int = ..., + domain: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["code", b"code", "domain", b"domain", "has_code", b"has_code", "has_domain", b"has_domain"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["code", b"code", "domain", b"domain", "has_code", b"has_code", "has_domain", b"has_domain"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_code", b"has_code"]) -> typing.Literal["code"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_domain", b"has_domain"]) -> typing.Literal["domain"] | None: ... + + @typing.final + class ExceptionMechanismMetaSignal(google.protobuf.message.Message): + """ + Information on the POSIX signal. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CODE_FIELD_NUMBER: builtins.int + CODE_NAME_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + NUMBER_FIELD_NUMBER: builtins.int + code: builtins.int + code_name: builtins.str + name: builtins.str + number: builtins.int + def __init__( + self, + *, + code: builtins.int = ..., + code_name: builtins.str = ..., + name: builtins.str = ..., + number: builtins.int = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["code", b"code", "code_name", b"code_name", "has_code", b"has_code", "has_code_name", b"has_code_name", "has_name", b"has_name", "has_number", b"has_number", "name", b"name", "number", b"number"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["code", b"code", "code_name", b"code_name", "has_code", b"has_code", "has_code_name", b"has_code_name", "has_name", b"has_name", "has_number", b"has_number", "name", b"name", "number", b"number"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_code", b"has_code"]) -> typing.Literal["code"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_code_name", b"has_code_name"]) -> typing.Literal["code_name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_name", b"has_name"]) -> typing.Literal["name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_number", b"has_number"]) -> typing.Literal["number"] | None: ... + + ERRNO_FIELD_NUMBER: builtins.int + MACH_EXCEPTION_FIELD_NUMBER: builtins.int + NS_ERROR_FIELD_NUMBER: builtins.int + SIGNAL_FIELD_NUMBER: builtins.int + @property + def errno(self) -> global___Exception.ExceptionMechanism.ExceptionMechanismMeta.ExceptionMechanismMetaErrno: ... + @property + def mach_exception(self) -> global___Exception.ExceptionMechanism.ExceptionMechanismMeta.ExceptionMechanismMetaMachException: ... + @property + def ns_error(self) -> global___Exception.ExceptionMechanism.ExceptionMechanismMeta.ExceptionMechanismMetaNsError: ... + @property + def signal(self) -> global___Exception.ExceptionMechanism.ExceptionMechanismMeta.ExceptionMechanismMetaSignal: ... + def __init__( + self, + *, + errno: global___Exception.ExceptionMechanism.ExceptionMechanismMeta.ExceptionMechanismMetaErrno | None = ..., + mach_exception: global___Exception.ExceptionMechanism.ExceptionMechanismMeta.ExceptionMechanismMetaMachException | None = ..., + ns_error: global___Exception.ExceptionMechanism.ExceptionMechanismMeta.ExceptionMechanismMetaNsError | None = ..., + signal: global___Exception.ExceptionMechanism.ExceptionMechanismMeta.ExceptionMechanismMetaSignal | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["errno", b"errno", "has_errno", b"has_errno", "has_mach_exception", b"has_mach_exception", "has_ns_error", b"has_ns_error", "has_signal", b"has_signal", "mach_exception", b"mach_exception", "ns_error", b"ns_error", "signal", b"signal"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["errno", b"errno", "has_errno", b"has_errno", "has_mach_exception", b"has_mach_exception", "has_ns_error", b"has_ns_error", "has_signal", b"has_signal", "mach_exception", b"mach_exception", "ns_error", b"ns_error", "signal", b"signal"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_errno", b"has_errno"]) -> typing.Literal["errno"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_mach_exception", b"has_mach_exception"]) -> typing.Literal["mach_exception"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_ns_error", b"has_ns_error"]) -> typing.Literal["ns_error"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_signal", b"has_signal"]) -> typing.Literal["signal"] | None: ... + + DATA_FIELD_NUMBER: builtins.int + DESCRIPTION_FIELD_NUMBER: builtins.int + EXCEPTION_ID_FIELD_NUMBER: builtins.int + HANDLED_FIELD_NUMBER: builtins.int + HELP_LINK_FIELD_NUMBER: builtins.int + IS_EXCEPTION_GROUP_FIELD_NUMBER: builtins.int + META_FIELD_NUMBER: builtins.int + PARENT_ID_FIELD_NUMBER: builtins.int + SOURCE_FIELD_NUMBER: builtins.int + SYNTHETIC_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + description: builtins.str + exception_id: builtins.int + handled: builtins.bool + help_link: builtins.str + is_exception_group: builtins.bool + parent_id: builtins.int + source: builtins.str + synthetic: builtins.bool + type: builtins.str + @property + def data(self) -> google.protobuf.struct_pb2.Value: ... + @property + def meta(self) -> global___Exception.ExceptionMechanism.ExceptionMechanismMeta: ... + def __init__( + self, + *, + data: google.protobuf.struct_pb2.Value | None = ..., + description: builtins.str = ..., + exception_id: builtins.int = ..., + handled: builtins.bool = ..., + help_link: builtins.str = ..., + is_exception_group: builtins.bool = ..., + meta: global___Exception.ExceptionMechanism.ExceptionMechanismMeta | None = ..., + parent_id: builtins.int = ..., + source: builtins.str = ..., + synthetic: builtins.bool = ..., + type: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["data", b"data", "description", b"description", "exception_id", b"exception_id", "handled", b"handled", "has_data", b"has_data", "has_description", b"has_description", "has_exception_id", b"has_exception_id", "has_handled", b"has_handled", "has_help_link", b"has_help_link", "has_is_exception_group", b"has_is_exception_group", "has_meta", b"has_meta", "has_parent_id", b"has_parent_id", "has_source", b"has_source", "has_synthetic", b"has_synthetic", "help_link", b"help_link", "is_exception_group", b"is_exception_group", "meta", b"meta", "parent_id", b"parent_id", "source", b"source", "synthetic", b"synthetic"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["data", b"data", "description", b"description", "exception_id", b"exception_id", "handled", b"handled", "has_data", b"has_data", "has_description", b"has_description", "has_exception_id", b"has_exception_id", "has_handled", b"has_handled", "has_help_link", b"has_help_link", "has_is_exception_group", b"has_is_exception_group", "has_meta", b"has_meta", "has_parent_id", b"has_parent_id", "has_source", b"has_source", "has_synthetic", b"has_synthetic", "help_link", b"help_link", "is_exception_group", b"is_exception_group", "meta", b"meta", "parent_id", b"parent_id", "source", b"source", "synthetic", b"synthetic", "type", b"type"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_data", b"has_data"]) -> typing.Literal["data"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_description", b"has_description"]) -> typing.Literal["description"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_exception_id", b"has_exception_id"]) -> typing.Literal["exception_id"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_handled", b"has_handled"]) -> typing.Literal["handled"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_help_link", b"has_help_link"]) -> typing.Literal["help_link"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_is_exception_group", b"has_is_exception_group"]) -> typing.Literal["is_exception_group"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_meta", b"has_meta"]) -> typing.Literal["meta"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_parent_id", b"has_parent_id"]) -> typing.Literal["parent_id"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_source", b"has_source"]) -> typing.Literal["source"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_synthetic", b"has_synthetic"]) -> typing.Literal["synthetic"] | None: ... + + @typing.final + class ExceptionStacktrace(google.protobuf.message.Message): + """ + Stack trace containing frames of this exception. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class ExceptionStacktraceFrames(google.protobuf.message.Message): + """ + Required. A non-empty list of stack frames. The list is ordered from caller to callee, or + oldest to youngest. The last frame is the one creating the exception. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class ExceptionStacktraceFramesLock(google.protobuf.message.Message): + """ + A possible lock (java monitor object) held by this frame. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ADDRESS_FIELD_NUMBER: builtins.int + CLASS_NAME_FIELD_NUMBER: builtins.int + PACKAGE_NAME_FIELD_NUMBER: builtins.int + THREAD_ID_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + address: builtins.str + class_name: builtins.str + package_name: builtins.str + type: builtins.str + @property + def thread_id(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + address: builtins.str = ..., + class_name: builtins.str = ..., + package_name: builtins.str = ..., + thread_id: google.protobuf.struct_pb2.Value | None = ..., + type: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["address", b"address", "class_name", b"class_name", "has_address", b"has_address", "has_class_name", b"has_class_name", "has_package_name", b"has_package_name", "has_thread_id", b"has_thread_id", "package_name", b"package_name", "thread_id", b"thread_id"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["address", b"address", "class_name", b"class_name", "has_address", b"has_address", "has_class_name", b"has_class_name", "has_package_name", b"has_package_name", "has_thread_id", b"has_thread_id", "package_name", b"package_name", "thread_id", b"thread_id", "type", b"type"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_address", b"has_address"]) -> typing.Literal["address"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_class_name", b"has_class_name"]) -> typing.Literal["class_name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_package_name", b"has_package_name"]) -> typing.Literal["package_name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_thread_id", b"has_thread_id"]) -> typing.Literal["thread_id"] | None: ... + + ABS_PATH_FIELD_NUMBER: builtins.int + ADDR_MODE_FIELD_NUMBER: builtins.int + COLNO_FIELD_NUMBER: builtins.int + CONTEXT_LINE_FIELD_NUMBER: builtins.int + FILENAME_FIELD_NUMBER: builtins.int + FUNCTION_FIELD_NUMBER: builtins.int + FUNCTION_ID_FIELD_NUMBER: builtins.int + IMAGE_ADDR_FIELD_NUMBER: builtins.int + IN_APP_FIELD_NUMBER: builtins.int + INSTRUCTION_ADDR_FIELD_NUMBER: builtins.int + LINENO_FIELD_NUMBER: builtins.int + LOCK_FIELD_NUMBER: builtins.int + MODULE_FIELD_NUMBER: builtins.int + PACKAGE_FIELD_NUMBER: builtins.int + PLATFORM_FIELD_NUMBER: builtins.int + POST_CONTEXT_FIELD_NUMBER: builtins.int + PRE_CONTEXT_FIELD_NUMBER: builtins.int + RAW_FUNCTION_FIELD_NUMBER: builtins.int + STACK_START_FIELD_NUMBER: builtins.int + SYMBOL_FIELD_NUMBER: builtins.int + SYMBOL_ADDR_FIELD_NUMBER: builtins.int + VARS_FIELD_NUMBER: builtins.int + abs_path: builtins.str + addr_mode: builtins.str + colno: builtins.int + context_line: builtins.str + filename: builtins.str + function: builtins.str + function_id: builtins.str + image_addr: builtins.str + in_app: builtins.bool + instruction_addr: builtins.str + lineno: builtins.int + module: builtins.str + package: builtins.str + platform: builtins.str + raw_function: builtins.str + stack_start: builtins.bool + symbol: builtins.str + symbol_addr: builtins.str + @property + def lock(self) -> global___Exception.ExceptionStacktrace.ExceptionStacktraceFrames.ExceptionStacktraceFramesLock: ... + @property + def post_context(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def pre_context(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def vars(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + abs_path: builtins.str = ..., + addr_mode: builtins.str = ..., + colno: builtins.int = ..., + context_line: builtins.str = ..., + filename: builtins.str = ..., + function: builtins.str = ..., + function_id: builtins.str = ..., + image_addr: builtins.str = ..., + in_app: builtins.bool = ..., + instruction_addr: builtins.str = ..., + lineno: builtins.int = ..., + lock: global___Exception.ExceptionStacktrace.ExceptionStacktraceFrames.ExceptionStacktraceFramesLock | None = ..., + module: builtins.str = ..., + package: builtins.str = ..., + platform: builtins.str = ..., + post_context: collections.abc.Iterable[builtins.str] | None = ..., + pre_context: collections.abc.Iterable[builtins.str] | None = ..., + raw_function: builtins.str = ..., + stack_start: builtins.bool = ..., + symbol: builtins.str = ..., + symbol_addr: builtins.str = ..., + vars: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["abs_path", b"abs_path", "addr_mode", b"addr_mode", "colno", b"colno", "context_line", b"context_line", "filename", b"filename", "function", b"function", "function_id", b"function_id", "has_abs_path", b"has_abs_path", "has_addr_mode", b"has_addr_mode", "has_colno", b"has_colno", "has_context_line", b"has_context_line", "has_filename", b"has_filename", "has_function", b"has_function", "has_function_id", b"has_function_id", "has_image_addr", b"has_image_addr", "has_in_app", b"has_in_app", "has_instruction_addr", b"has_instruction_addr", "has_lineno", b"has_lineno", "has_lock", b"has_lock", "has_module", b"has_module", "has_package", b"has_package", "has_platform", b"has_platform", "has_raw_function", b"has_raw_function", "has_stack_start", b"has_stack_start", "has_symbol", b"has_symbol", "has_symbol_addr", b"has_symbol_addr", "has_vars", b"has_vars", "image_addr", b"image_addr", "in_app", b"in_app", "instruction_addr", b"instruction_addr", "lineno", b"lineno", "lock", b"lock", "module", b"module", "package", b"package", "platform", b"platform", "raw_function", b"raw_function", "stack_start", b"stack_start", "symbol", b"symbol", "symbol_addr", b"symbol_addr", "vars", b"vars"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["abs_path", b"abs_path", "addr_mode", b"addr_mode", "colno", b"colno", "context_line", b"context_line", "filename", b"filename", "function", b"function", "function_id", b"function_id", "has_abs_path", b"has_abs_path", "has_addr_mode", b"has_addr_mode", "has_colno", b"has_colno", "has_context_line", b"has_context_line", "has_filename", b"has_filename", "has_function", b"has_function", "has_function_id", b"has_function_id", "has_image_addr", b"has_image_addr", "has_in_app", b"has_in_app", "has_instruction_addr", b"has_instruction_addr", "has_lineno", b"has_lineno", "has_lock", b"has_lock", "has_module", b"has_module", "has_package", b"has_package", "has_platform", b"has_platform", "has_raw_function", b"has_raw_function", "has_stack_start", b"has_stack_start", "has_symbol", b"has_symbol", "has_symbol_addr", b"has_symbol_addr", "has_vars", b"has_vars", "image_addr", b"image_addr", "in_app", b"in_app", "instruction_addr", b"instruction_addr", "lineno", b"lineno", "lock", b"lock", "module", b"module", "package", b"package", "platform", b"platform", "post_context", b"post_context", "pre_context", b"pre_context", "raw_function", b"raw_function", "stack_start", b"stack_start", "symbol", b"symbol", "symbol_addr", b"symbol_addr", "vars", b"vars"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_abs_path", b"has_abs_path"]) -> typing.Literal["abs_path"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_addr_mode", b"has_addr_mode"]) -> typing.Literal["addr_mode"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_colno", b"has_colno"]) -> typing.Literal["colno"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_context_line", b"has_context_line"]) -> typing.Literal["context_line"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_filename", b"has_filename"]) -> typing.Literal["filename"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_function", b"has_function"]) -> typing.Literal["function"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_function_id", b"has_function_id"]) -> typing.Literal["function_id"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_image_addr", b"has_image_addr"]) -> typing.Literal["image_addr"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_in_app", b"has_in_app"]) -> typing.Literal["in_app"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_instruction_addr", b"has_instruction_addr"]) -> typing.Literal["instruction_addr"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_lineno", b"has_lineno"]) -> typing.Literal["lineno"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_lock", b"has_lock"]) -> typing.Literal["lock"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_module", b"has_module"]) -> typing.Literal["module"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_package", b"has_package"]) -> typing.Literal["package"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_platform", b"has_platform"]) -> typing.Literal["platform"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_raw_function", b"has_raw_function"]) -> typing.Literal["raw_function"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_stack_start", b"has_stack_start"]) -> typing.Literal["stack_start"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_symbol", b"has_symbol"]) -> typing.Literal["symbol"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_symbol_addr", b"has_symbol_addr"]) -> typing.Literal["symbol_addr"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_vars", b"has_vars"]) -> typing.Literal["vars"] | None: ... + + @typing.final + class RegistersEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str + def __init__( + self, + *, + key: builtins.str = ..., + value: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... + + FRAMES_FIELD_NUMBER: builtins.int + INSTRUCTION_ADDR_ADJUSTMENT_FIELD_NUMBER: builtins.int + LANG_FIELD_NUMBER: builtins.int + REGISTERS_FIELD_NUMBER: builtins.int + SNAPSHOT_FIELD_NUMBER: builtins.int + instruction_addr_adjustment: builtins.str + lang: builtins.str + snapshot: builtins.bool + @property + def frames(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Exception.ExceptionStacktrace.ExceptionStacktraceFrames]: ... + @property + def registers(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... + def __init__( + self, + *, + frames: collections.abc.Iterable[global___Exception.ExceptionStacktrace.ExceptionStacktraceFrames] | None = ..., + instruction_addr_adjustment: builtins.str = ..., + lang: builtins.str = ..., + registers: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + snapshot: builtins.bool = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_instruction_addr_adjustment", b"has_instruction_addr_adjustment", "has_lang", b"has_lang", "has_snapshot", b"has_snapshot", "instruction_addr_adjustment", b"instruction_addr_adjustment", "lang", b"lang", "snapshot", b"snapshot"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["frames", b"frames", "has_instruction_addr_adjustment", b"has_instruction_addr_adjustment", "has_lang", b"has_lang", "has_snapshot", b"has_snapshot", "instruction_addr_adjustment", b"instruction_addr_adjustment", "lang", b"lang", "registers", b"registers", "snapshot", b"snapshot"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_instruction_addr_adjustment", b"has_instruction_addr_adjustment"]) -> typing.Literal["instruction_addr_adjustment"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_lang", b"has_lang"]) -> typing.Literal["lang"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_snapshot", b"has_snapshot"]) -> typing.Literal["snapshot"] | None: ... + + MECHANISM_FIELD_NUMBER: builtins.int + MODULE_FIELD_NUMBER: builtins.int + STACKTRACE_FIELD_NUMBER: builtins.int + THREAD_ID_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + module: builtins.str + type: builtins.str + value: builtins.str + @property + def mechanism(self) -> global___Exception.ExceptionMechanism: ... + @property + def stacktrace(self) -> global___Exception.ExceptionStacktrace: ... + @property + def thread_id(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + mechanism: global___Exception.ExceptionMechanism | None = ..., + module: builtins.str = ..., + stacktrace: global___Exception.ExceptionStacktrace | None = ..., + thread_id: google.protobuf.struct_pb2.Value | None = ..., + type: builtins.str = ..., + value: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_mechanism", b"has_mechanism", "has_module", b"has_module", "has_stacktrace", b"has_stacktrace", "has_thread_id", b"has_thread_id", "has_type", b"has_type", "has_value", b"has_value", "mechanism", b"mechanism", "module", b"module", "stacktrace", b"stacktrace", "thread_id", b"thread_id", "type", b"type", "value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_mechanism", b"has_mechanism", "has_module", b"has_module", "has_stacktrace", b"has_stacktrace", "has_thread_id", b"has_thread_id", "has_type", b"has_type", "has_value", b"has_value", "mechanism", b"mechanism", "module", b"module", "stacktrace", b"stacktrace", "thread_id", b"thread_id", "type", b"type", "value", b"value"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_mechanism", b"has_mechanism"]) -> typing.Literal["mechanism"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_module", b"has_module"]) -> typing.Literal["module"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_stacktrace", b"has_stacktrace"]) -> typing.Literal["stacktrace"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_thread_id", b"has_thread_id"]) -> typing.Literal["thread_id"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_type", b"has_type"]) -> typing.Literal["type"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_value", b"has_value"]) -> typing.Literal["value"] | None: ... + +global___Exception = Exception + +@typing.final +class Frame(google.protobuf.message.Message): + """ + Holds information about a single stacktrace frame. + + Each object should contain **at least** a `filename`, `function` or `instruction_addr` + attribute. All values are optional, but recommended. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class FrameLock(google.protobuf.message.Message): + """ + A possible lock (java monitor object) held by this frame. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ADDRESS_FIELD_NUMBER: builtins.int + CLASS_NAME_FIELD_NUMBER: builtins.int + PACKAGE_NAME_FIELD_NUMBER: builtins.int + THREAD_ID_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + address: builtins.str + class_name: builtins.str + package_name: builtins.str + type: builtins.str + @property + def thread_id(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + address: builtins.str = ..., + class_name: builtins.str = ..., + package_name: builtins.str = ..., + thread_id: google.protobuf.struct_pb2.Value | None = ..., + type: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["address", b"address", "class_name", b"class_name", "has_address", b"has_address", "has_class_name", b"has_class_name", "has_package_name", b"has_package_name", "has_thread_id", b"has_thread_id", "package_name", b"package_name", "thread_id", b"thread_id"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["address", b"address", "class_name", b"class_name", "has_address", b"has_address", "has_class_name", b"has_class_name", "has_package_name", b"has_package_name", "has_thread_id", b"has_thread_id", "package_name", b"package_name", "thread_id", b"thread_id", "type", b"type"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_address", b"has_address"]) -> typing.Literal["address"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_class_name", b"has_class_name"]) -> typing.Literal["class_name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_package_name", b"has_package_name"]) -> typing.Literal["package_name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_thread_id", b"has_thread_id"]) -> typing.Literal["thread_id"] | None: ... + + ABS_PATH_FIELD_NUMBER: builtins.int + ADDR_MODE_FIELD_NUMBER: builtins.int + COLNO_FIELD_NUMBER: builtins.int + CONTEXT_LINE_FIELD_NUMBER: builtins.int + FILENAME_FIELD_NUMBER: builtins.int + FUNCTION_FIELD_NUMBER: builtins.int + FUNCTION_ID_FIELD_NUMBER: builtins.int + IMAGE_ADDR_FIELD_NUMBER: builtins.int + IN_APP_FIELD_NUMBER: builtins.int + INSTRUCTION_ADDR_FIELD_NUMBER: builtins.int + LINENO_FIELD_NUMBER: builtins.int + LOCK_FIELD_NUMBER: builtins.int + MODULE_FIELD_NUMBER: builtins.int + PACKAGE_FIELD_NUMBER: builtins.int + PLATFORM_FIELD_NUMBER: builtins.int + POST_CONTEXT_FIELD_NUMBER: builtins.int + PRE_CONTEXT_FIELD_NUMBER: builtins.int + RAW_FUNCTION_FIELD_NUMBER: builtins.int + STACK_START_FIELD_NUMBER: builtins.int + SYMBOL_FIELD_NUMBER: builtins.int + SYMBOL_ADDR_FIELD_NUMBER: builtins.int + VARS_FIELD_NUMBER: builtins.int + abs_path: builtins.str + addr_mode: builtins.str + colno: builtins.int + context_line: builtins.str + filename: builtins.str + function: builtins.str + function_id: builtins.str + image_addr: builtins.str + in_app: builtins.bool + instruction_addr: builtins.str + lineno: builtins.int + module: builtins.str + package: builtins.str + platform: builtins.str + raw_function: builtins.str + stack_start: builtins.bool + symbol: builtins.str + symbol_addr: builtins.str + @property + def lock(self) -> global___Frame.FrameLock: ... + @property + def post_context(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def pre_context(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def vars(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + abs_path: builtins.str = ..., + addr_mode: builtins.str = ..., + colno: builtins.int = ..., + context_line: builtins.str = ..., + filename: builtins.str = ..., + function: builtins.str = ..., + function_id: builtins.str = ..., + image_addr: builtins.str = ..., + in_app: builtins.bool = ..., + instruction_addr: builtins.str = ..., + lineno: builtins.int = ..., + lock: global___Frame.FrameLock | None = ..., + module: builtins.str = ..., + package: builtins.str = ..., + platform: builtins.str = ..., + post_context: collections.abc.Iterable[builtins.str] | None = ..., + pre_context: collections.abc.Iterable[builtins.str] | None = ..., + raw_function: builtins.str = ..., + stack_start: builtins.bool = ..., + symbol: builtins.str = ..., + symbol_addr: builtins.str = ..., + vars: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["abs_path", b"abs_path", "addr_mode", b"addr_mode", "colno", b"colno", "context_line", b"context_line", "filename", b"filename", "function", b"function", "function_id", b"function_id", "has_abs_path", b"has_abs_path", "has_addr_mode", b"has_addr_mode", "has_colno", b"has_colno", "has_context_line", b"has_context_line", "has_filename", b"has_filename", "has_function", b"has_function", "has_function_id", b"has_function_id", "has_image_addr", b"has_image_addr", "has_in_app", b"has_in_app", "has_instruction_addr", b"has_instruction_addr", "has_lineno", b"has_lineno", "has_lock", b"has_lock", "has_module", b"has_module", "has_package", b"has_package", "has_platform", b"has_platform", "has_raw_function", b"has_raw_function", "has_stack_start", b"has_stack_start", "has_symbol", b"has_symbol", "has_symbol_addr", b"has_symbol_addr", "has_vars", b"has_vars", "image_addr", b"image_addr", "in_app", b"in_app", "instruction_addr", b"instruction_addr", "lineno", b"lineno", "lock", b"lock", "module", b"module", "package", b"package", "platform", b"platform", "raw_function", b"raw_function", "stack_start", b"stack_start", "symbol", b"symbol", "symbol_addr", b"symbol_addr", "vars", b"vars"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["abs_path", b"abs_path", "addr_mode", b"addr_mode", "colno", b"colno", "context_line", b"context_line", "filename", b"filename", "function", b"function", "function_id", b"function_id", "has_abs_path", b"has_abs_path", "has_addr_mode", b"has_addr_mode", "has_colno", b"has_colno", "has_context_line", b"has_context_line", "has_filename", b"has_filename", "has_function", b"has_function", "has_function_id", b"has_function_id", "has_image_addr", b"has_image_addr", "has_in_app", b"has_in_app", "has_instruction_addr", b"has_instruction_addr", "has_lineno", b"has_lineno", "has_lock", b"has_lock", "has_module", b"has_module", "has_package", b"has_package", "has_platform", b"has_platform", "has_raw_function", b"has_raw_function", "has_stack_start", b"has_stack_start", "has_symbol", b"has_symbol", "has_symbol_addr", b"has_symbol_addr", "has_vars", b"has_vars", "image_addr", b"image_addr", "in_app", b"in_app", "instruction_addr", b"instruction_addr", "lineno", b"lineno", "lock", b"lock", "module", b"module", "package", b"package", "platform", b"platform", "post_context", b"post_context", "pre_context", b"pre_context", "raw_function", b"raw_function", "stack_start", b"stack_start", "symbol", b"symbol", "symbol_addr", b"symbol_addr", "vars", b"vars"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_abs_path", b"has_abs_path"]) -> typing.Literal["abs_path"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_addr_mode", b"has_addr_mode"]) -> typing.Literal["addr_mode"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_colno", b"has_colno"]) -> typing.Literal["colno"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_context_line", b"has_context_line"]) -> typing.Literal["context_line"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_filename", b"has_filename"]) -> typing.Literal["filename"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_function", b"has_function"]) -> typing.Literal["function"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_function_id", b"has_function_id"]) -> typing.Literal["function_id"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_image_addr", b"has_image_addr"]) -> typing.Literal["image_addr"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_in_app", b"has_in_app"]) -> typing.Literal["in_app"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_instruction_addr", b"has_instruction_addr"]) -> typing.Literal["instruction_addr"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_lineno", b"has_lineno"]) -> typing.Literal["lineno"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_lock", b"has_lock"]) -> typing.Literal["lock"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_module", b"has_module"]) -> typing.Literal["module"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_package", b"has_package"]) -> typing.Literal["package"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_platform", b"has_platform"]) -> typing.Literal["platform"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_raw_function", b"has_raw_function"]) -> typing.Literal["raw_function"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_stack_start", b"has_stack_start"]) -> typing.Literal["stack_start"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_symbol", b"has_symbol"]) -> typing.Literal["symbol"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_symbol_addr", b"has_symbol_addr"]) -> typing.Literal["symbol_addr"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_vars", b"has_vars"]) -> typing.Literal["vars"] | None: ... + +global___Frame = Frame + +@typing.final +class Geo(google.protobuf.message.Message): + """ + Geographical location of the end user or device. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CITY_FIELD_NUMBER: builtins.int + COUNTRY_CODE_FIELD_NUMBER: builtins.int + REGION_FIELD_NUMBER: builtins.int + SUBDIVISION_FIELD_NUMBER: builtins.int + city: builtins.str + country_code: builtins.str + region: builtins.str + subdivision: builtins.str + def __init__( + self, + *, + city: builtins.str = ..., + country_code: builtins.str = ..., + region: builtins.str = ..., + subdivision: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["city", b"city", "country_code", b"country_code", "has_city", b"has_city", "has_country_code", b"has_country_code", "has_region", b"has_region", "has_subdivision", b"has_subdivision", "region", b"region", "subdivision", b"subdivision"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["city", b"city", "country_code", b"country_code", "has_city", b"has_city", "has_country_code", b"has_country_code", "has_region", b"has_region", "has_subdivision", b"has_subdivision", "region", b"region", "subdivision", b"subdivision"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_city", b"has_city"]) -> typing.Literal["city"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_country_code", b"has_country_code"]) -> typing.Literal["country_code"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_region", b"has_region"]) -> typing.Literal["region"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_subdivision", b"has_subdivision"]) -> typing.Literal["subdivision"] | None: ... + +global___Geo = Geo + +@typing.final +class Gpucontext(google.protobuf.message.Message): + """ + GPU information. + + Example: + + ```json + "gpu": { + "name": "AMD Radeon Pro 560", + "vendor_name": "Apple", + "memory_size": 4096, + "api_type": "Metal", + "multi_threaded_rendering": true, + "version": "Metal", + "npot_support": "Full" + } + ``` + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + API_TYPE_FIELD_NUMBER: builtins.int + GRAPHICS_SHADER_LEVEL_FIELD_NUMBER: builtins.int + ID_FIELD_NUMBER: builtins.int + MAX_TEXTURE_SIZE_FIELD_NUMBER: builtins.int + MEMORY_SIZE_FIELD_NUMBER: builtins.int + MULTI_THREADED_RENDERING_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + NPOT_SUPPORT_FIELD_NUMBER: builtins.int + SUPPORTS_COMPUTE_SHADERS_FIELD_NUMBER: builtins.int + SUPPORTS_DRAW_CALL_INSTANCING_FIELD_NUMBER: builtins.int + SUPPORTS_GEOMETRY_SHADERS_FIELD_NUMBER: builtins.int + SUPPORTS_RAY_TRACING_FIELD_NUMBER: builtins.int + VENDOR_ID_FIELD_NUMBER: builtins.int + VENDOR_NAME_FIELD_NUMBER: builtins.int + VERSION_FIELD_NUMBER: builtins.int + api_type: builtins.str + graphics_shader_level: builtins.str + max_texture_size: builtins.int + memory_size: builtins.int + multi_threaded_rendering: builtins.bool + name: builtins.str + npot_support: builtins.str + supports_compute_shaders: builtins.bool + supports_draw_call_instancing: builtins.bool + supports_geometry_shaders: builtins.bool + supports_ray_tracing: builtins.bool + vendor_id: builtins.str + vendor_name: builtins.str + version: builtins.str + @property + def id(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + api_type: builtins.str = ..., + graphics_shader_level: builtins.str = ..., + id: google.protobuf.struct_pb2.Value | None = ..., + max_texture_size: builtins.int = ..., + memory_size: builtins.int = ..., + multi_threaded_rendering: builtins.bool = ..., + name: builtins.str = ..., + npot_support: builtins.str = ..., + supports_compute_shaders: builtins.bool = ..., + supports_draw_call_instancing: builtins.bool = ..., + supports_geometry_shaders: builtins.bool = ..., + supports_ray_tracing: builtins.bool = ..., + vendor_id: builtins.str = ..., + vendor_name: builtins.str = ..., + version: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["api_type", b"api_type", "graphics_shader_level", b"graphics_shader_level", "has_api_type", b"has_api_type", "has_graphics_shader_level", b"has_graphics_shader_level", "has_max_texture_size", b"has_max_texture_size", "has_memory_size", b"has_memory_size", "has_multi_threaded_rendering", b"has_multi_threaded_rendering", "has_name", b"has_name", "has_npot_support", b"has_npot_support", "has_supports_compute_shaders", b"has_supports_compute_shaders", "has_supports_draw_call_instancing", b"has_supports_draw_call_instancing", "has_supports_geometry_shaders", b"has_supports_geometry_shaders", "has_supports_ray_tracing", b"has_supports_ray_tracing", "has_vendor_id", b"has_vendor_id", "has_vendor_name", b"has_vendor_name", "has_version", b"has_version", "id", b"id", "max_texture_size", b"max_texture_size", "memory_size", b"memory_size", "multi_threaded_rendering", b"multi_threaded_rendering", "name", b"name", "npot_support", b"npot_support", "supports_compute_shaders", b"supports_compute_shaders", "supports_draw_call_instancing", b"supports_draw_call_instancing", "supports_geometry_shaders", b"supports_geometry_shaders", "supports_ray_tracing", b"supports_ray_tracing", "vendor_id", b"vendor_id", "vendor_name", b"vendor_name", "version", b"version"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["api_type", b"api_type", "graphics_shader_level", b"graphics_shader_level", "has_api_type", b"has_api_type", "has_graphics_shader_level", b"has_graphics_shader_level", "has_max_texture_size", b"has_max_texture_size", "has_memory_size", b"has_memory_size", "has_multi_threaded_rendering", b"has_multi_threaded_rendering", "has_name", b"has_name", "has_npot_support", b"has_npot_support", "has_supports_compute_shaders", b"has_supports_compute_shaders", "has_supports_draw_call_instancing", b"has_supports_draw_call_instancing", "has_supports_geometry_shaders", b"has_supports_geometry_shaders", "has_supports_ray_tracing", b"has_supports_ray_tracing", "has_vendor_id", b"has_vendor_id", "has_vendor_name", b"has_vendor_name", "has_version", b"has_version", "id", b"id", "max_texture_size", b"max_texture_size", "memory_size", b"memory_size", "multi_threaded_rendering", b"multi_threaded_rendering", "name", b"name", "npot_support", b"npot_support", "supports_compute_shaders", b"supports_compute_shaders", "supports_draw_call_instancing", b"supports_draw_call_instancing", "supports_geometry_shaders", b"supports_geometry_shaders", "supports_ray_tracing", b"supports_ray_tracing", "vendor_id", b"vendor_id", "vendor_name", b"vendor_name", "version", b"version"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_api_type", b"has_api_type"]) -> typing.Literal["api_type"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_graphics_shader_level", b"has_graphics_shader_level"]) -> typing.Literal["graphics_shader_level"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_max_texture_size", b"has_max_texture_size"]) -> typing.Literal["max_texture_size"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_memory_size", b"has_memory_size"]) -> typing.Literal["memory_size"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_multi_threaded_rendering", b"has_multi_threaded_rendering"]) -> typing.Literal["multi_threaded_rendering"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_name", b"has_name"]) -> typing.Literal["name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_npot_support", b"has_npot_support"]) -> typing.Literal["npot_support"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_supports_compute_shaders", b"has_supports_compute_shaders"]) -> typing.Literal["supports_compute_shaders"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_supports_draw_call_instancing", b"has_supports_draw_call_instancing"]) -> typing.Literal["supports_draw_call_instancing"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_supports_geometry_shaders", b"has_supports_geometry_shaders"]) -> typing.Literal["supports_geometry_shaders"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_supports_ray_tracing", b"has_supports_ray_tracing"]) -> typing.Literal["supports_ray_tracing"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_vendor_id", b"has_vendor_id"]) -> typing.Literal["vendor_id"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_vendor_name", b"has_vendor_name"]) -> typing.Literal["vendor_name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_version", b"has_version"]) -> typing.Literal["version"] | None: ... + +global___Gpucontext = Gpucontext + +@typing.final +class Jvmdebugimage(google.protobuf.message.Message): + """ + A debug image consisting of source files for a JVM based language. + + Examples: + + ```json + { + "type": "jvm", + "debug_id": "395835f4-03e0-4436-80d3-136f0749a893" + } + ``` + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + DEBUG_ID_FIELD_NUMBER: builtins.int + debug_id: builtins.str + def __init__( + self, + *, + debug_id: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["debug_id", b"debug_id"]) -> None: ... + +global___Jvmdebugimage = Jvmdebugimage + +@typing.final +class Lockreason(google.protobuf.message.Message): + """ + Represents an instance of a held lock (java monitor object) in a thread. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ADDRESS_FIELD_NUMBER: builtins.int + CLASS_NAME_FIELD_NUMBER: builtins.int + PACKAGE_NAME_FIELD_NUMBER: builtins.int + THREAD_ID_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + address: builtins.str + class_name: builtins.str + package_name: builtins.str + type: builtins.str + @property + def thread_id(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + address: builtins.str = ..., + class_name: builtins.str = ..., + package_name: builtins.str = ..., + thread_id: google.protobuf.struct_pb2.Value | None = ..., + type: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["address", b"address", "class_name", b"class_name", "has_address", b"has_address", "has_class_name", b"has_class_name", "has_package_name", b"has_package_name", "has_thread_id", b"has_thread_id", "package_name", b"package_name", "thread_id", b"thread_id"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["address", b"address", "class_name", b"class_name", "has_address", b"has_address", "has_class_name", b"has_class_name", "has_package_name", b"has_package_name", "has_thread_id", b"has_thread_id", "package_name", b"package_name", "thread_id", b"thread_id", "type", b"type"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_address", b"has_address"]) -> typing.Literal["address"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_class_name", b"has_class_name"]) -> typing.Literal["class_name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_package_name", b"has_package_name"]) -> typing.Literal["package_name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_thread_id", b"has_thread_id"]) -> typing.Literal["thread_id"] | None: ... + +global___Lockreason = Lockreason + +@typing.final +class Logentry(google.protobuf.message.Message): + """ + A log entry message. + + A log message is similar to the `message` attribute on the event itself but + can additionally hold optional parameters. + + ```json + { + "message": { + "message": "My raw message with interpreted strings like %s", + "params": ["this"] + } + } + ``` + + ```json + { + "message": { + "message": "My raw message with interpreted strings like {foo}", + "params": {"foo": "this"} + } + } + ``` + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FORMATTED_FIELD_NUMBER: builtins.int + MESSAGE_FIELD_NUMBER: builtins.int + PARAMS_FIELD_NUMBER: builtins.int + formatted: builtins.str + message: builtins.str + @property + def params(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + formatted: builtins.str = ..., + message: builtins.str = ..., + params: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["formatted", b"formatted", "has_formatted", b"has_formatted", "has_message", b"has_message", "message", b"message", "params", b"params"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["formatted", b"formatted", "has_formatted", b"has_formatted", "has_message", b"has_message", "message", b"message", "params", b"params"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_formatted", b"has_formatted"]) -> typing.Literal["formatted"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_message", b"has_message"]) -> typing.Literal["message"] | None: ... + +global___Logentry = Logentry + +@typing.final +class Machexception(google.protobuf.message.Message): + """ + Mach exception information. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CODE_FIELD_NUMBER: builtins.int + EXCEPTION_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + SUBCODE_FIELD_NUMBER: builtins.int + code: builtins.int + exception: builtins.int + name: builtins.str + subcode: builtins.int + def __init__( + self, + *, + code: builtins.int = ..., + exception: builtins.int = ..., + name: builtins.str = ..., + subcode: builtins.int = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["code", b"code", "exception", b"exception", "has_code", b"has_code", "has_exception", b"has_exception", "has_name", b"has_name", "has_subcode", b"has_subcode", "name", b"name", "subcode", b"subcode"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["code", b"code", "exception", b"exception", "has_code", b"has_code", "has_exception", b"has_exception", "has_name", b"has_name", "has_subcode", b"has_subcode", "name", b"name", "subcode", b"subcode"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_code", b"has_code"]) -> typing.Literal["code"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_exception", b"has_exception"]) -> typing.Literal["exception"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_name", b"has_name"]) -> typing.Literal["name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_subcode", b"has_subcode"]) -> typing.Literal["subcode"] | None: ... + +global___Machexception = Machexception + +@typing.final +class Mechanism(google.protobuf.message.Message): + """ + The mechanism by which an exception was generated and handled. + + The exception mechanism is an optional field residing in the [exception](#typedef-Exception). + It carries additional information about the way the exception was created on the target system. + This includes general exception values obtained from the operating system or runtime APIs, as + well as mechanism-specific values. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class MechanismMeta(google.protobuf.message.Message): + """ + Operating system or runtime meta information. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class MechanismMetaErrno(google.protobuf.message.Message): + """ + Optional ISO C standard error code. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAME_FIELD_NUMBER: builtins.int + NUMBER_FIELD_NUMBER: builtins.int + name: builtins.str + number: builtins.int + def __init__( + self, + *, + name: builtins.str = ..., + number: builtins.int = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_name", b"has_name", "has_number", b"has_number", "name", b"name", "number", b"number"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_name", b"has_name", "has_number", b"has_number", "name", b"name", "number", b"number"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_name", b"has_name"]) -> typing.Literal["name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_number", b"has_number"]) -> typing.Literal["number"] | None: ... + + @typing.final + class MechanismMetaMachException(google.protobuf.message.Message): + """ + A Mach Exception on Apple systems comprising a code triple and optional descriptions. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CODE_FIELD_NUMBER: builtins.int + EXCEPTION_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + SUBCODE_FIELD_NUMBER: builtins.int + code: builtins.int + exception: builtins.int + name: builtins.str + subcode: builtins.int + def __init__( + self, + *, + code: builtins.int = ..., + exception: builtins.int = ..., + name: builtins.str = ..., + subcode: builtins.int = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["code", b"code", "exception", b"exception", "has_code", b"has_code", "has_exception", b"has_exception", "has_name", b"has_name", "has_subcode", b"has_subcode", "name", b"name", "subcode", b"subcode"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["code", b"code", "exception", b"exception", "has_code", b"has_code", "has_exception", b"has_exception", "has_name", b"has_name", "has_subcode", b"has_subcode", "name", b"name", "subcode", b"subcode"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_code", b"has_code"]) -> typing.Literal["code"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_exception", b"has_exception"]) -> typing.Literal["exception"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_name", b"has_name"]) -> typing.Literal["name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_subcode", b"has_subcode"]) -> typing.Literal["subcode"] | None: ... + + @typing.final + class MechanismMetaNsError(google.protobuf.message.Message): + """ + An NSError on Apple systems comprising code and signal. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CODE_FIELD_NUMBER: builtins.int + DOMAIN_FIELD_NUMBER: builtins.int + code: builtins.int + domain: builtins.str + def __init__( + self, + *, + code: builtins.int = ..., + domain: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["code", b"code", "domain", b"domain", "has_code", b"has_code", "has_domain", b"has_domain"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["code", b"code", "domain", b"domain", "has_code", b"has_code", "has_domain", b"has_domain"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_code", b"has_code"]) -> typing.Literal["code"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_domain", b"has_domain"]) -> typing.Literal["domain"] | None: ... + + @typing.final + class MechanismMetaSignal(google.protobuf.message.Message): + """ + Information on the POSIX signal. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CODE_FIELD_NUMBER: builtins.int + CODE_NAME_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + NUMBER_FIELD_NUMBER: builtins.int + code: builtins.int + code_name: builtins.str + name: builtins.str + number: builtins.int + def __init__( + self, + *, + code: builtins.int = ..., + code_name: builtins.str = ..., + name: builtins.str = ..., + number: builtins.int = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["code", b"code", "code_name", b"code_name", "has_code", b"has_code", "has_code_name", b"has_code_name", "has_name", b"has_name", "has_number", b"has_number", "name", b"name", "number", b"number"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["code", b"code", "code_name", b"code_name", "has_code", b"has_code", "has_code_name", b"has_code_name", "has_name", b"has_name", "has_number", b"has_number", "name", b"name", "number", b"number"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_code", b"has_code"]) -> typing.Literal["code"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_code_name", b"has_code_name"]) -> typing.Literal["code_name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_name", b"has_name"]) -> typing.Literal["name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_number", b"has_number"]) -> typing.Literal["number"] | None: ... + + ERRNO_FIELD_NUMBER: builtins.int + MACH_EXCEPTION_FIELD_NUMBER: builtins.int + NS_ERROR_FIELD_NUMBER: builtins.int + SIGNAL_FIELD_NUMBER: builtins.int + @property + def errno(self) -> global___Mechanism.MechanismMeta.MechanismMetaErrno: ... + @property + def mach_exception(self) -> global___Mechanism.MechanismMeta.MechanismMetaMachException: ... + @property + def ns_error(self) -> global___Mechanism.MechanismMeta.MechanismMetaNsError: ... + @property + def signal(self) -> global___Mechanism.MechanismMeta.MechanismMetaSignal: ... + def __init__( + self, + *, + errno: global___Mechanism.MechanismMeta.MechanismMetaErrno | None = ..., + mach_exception: global___Mechanism.MechanismMeta.MechanismMetaMachException | None = ..., + ns_error: global___Mechanism.MechanismMeta.MechanismMetaNsError | None = ..., + signal: global___Mechanism.MechanismMeta.MechanismMetaSignal | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["errno", b"errno", "has_errno", b"has_errno", "has_mach_exception", b"has_mach_exception", "has_ns_error", b"has_ns_error", "has_signal", b"has_signal", "mach_exception", b"mach_exception", "ns_error", b"ns_error", "signal", b"signal"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["errno", b"errno", "has_errno", b"has_errno", "has_mach_exception", b"has_mach_exception", "has_ns_error", b"has_ns_error", "has_signal", b"has_signal", "mach_exception", b"mach_exception", "ns_error", b"ns_error", "signal", b"signal"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_errno", b"has_errno"]) -> typing.Literal["errno"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_mach_exception", b"has_mach_exception"]) -> typing.Literal["mach_exception"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_ns_error", b"has_ns_error"]) -> typing.Literal["ns_error"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_signal", b"has_signal"]) -> typing.Literal["signal"] | None: ... + + DATA_FIELD_NUMBER: builtins.int + DESCRIPTION_FIELD_NUMBER: builtins.int + EXCEPTION_ID_FIELD_NUMBER: builtins.int + HANDLED_FIELD_NUMBER: builtins.int + HELP_LINK_FIELD_NUMBER: builtins.int + IS_EXCEPTION_GROUP_FIELD_NUMBER: builtins.int + META_FIELD_NUMBER: builtins.int + PARENT_ID_FIELD_NUMBER: builtins.int + SOURCE_FIELD_NUMBER: builtins.int + SYNTHETIC_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + description: builtins.str + exception_id: builtins.int + handled: builtins.bool + help_link: builtins.str + is_exception_group: builtins.bool + parent_id: builtins.int + source: builtins.str + synthetic: builtins.bool + type: builtins.str + @property + def data(self) -> google.protobuf.struct_pb2.Value: ... + @property + def meta(self) -> global___Mechanism.MechanismMeta: ... + def __init__( + self, + *, + data: google.protobuf.struct_pb2.Value | None = ..., + description: builtins.str = ..., + exception_id: builtins.int = ..., + handled: builtins.bool = ..., + help_link: builtins.str = ..., + is_exception_group: builtins.bool = ..., + meta: global___Mechanism.MechanismMeta | None = ..., + parent_id: builtins.int = ..., + source: builtins.str = ..., + synthetic: builtins.bool = ..., + type: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["data", b"data", "description", b"description", "exception_id", b"exception_id", "handled", b"handled", "has_data", b"has_data", "has_description", b"has_description", "has_exception_id", b"has_exception_id", "has_handled", b"has_handled", "has_help_link", b"has_help_link", "has_is_exception_group", b"has_is_exception_group", "has_meta", b"has_meta", "has_parent_id", b"has_parent_id", "has_source", b"has_source", "has_synthetic", b"has_synthetic", "help_link", b"help_link", "is_exception_group", b"is_exception_group", "meta", b"meta", "parent_id", b"parent_id", "source", b"source", "synthetic", b"synthetic"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["data", b"data", "description", b"description", "exception_id", b"exception_id", "handled", b"handled", "has_data", b"has_data", "has_description", b"has_description", "has_exception_id", b"has_exception_id", "has_handled", b"has_handled", "has_help_link", b"has_help_link", "has_is_exception_group", b"has_is_exception_group", "has_meta", b"has_meta", "has_parent_id", b"has_parent_id", "has_source", b"has_source", "has_synthetic", b"has_synthetic", "help_link", b"help_link", "is_exception_group", b"is_exception_group", "meta", b"meta", "parent_id", b"parent_id", "source", b"source", "synthetic", b"synthetic", "type", b"type"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_data", b"has_data"]) -> typing.Literal["data"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_description", b"has_description"]) -> typing.Literal["description"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_exception_id", b"has_exception_id"]) -> typing.Literal["exception_id"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_handled", b"has_handled"]) -> typing.Literal["handled"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_help_link", b"has_help_link"]) -> typing.Literal["help_link"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_is_exception_group", b"has_is_exception_group"]) -> typing.Literal["is_exception_group"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_meta", b"has_meta"]) -> typing.Literal["meta"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_parent_id", b"has_parent_id"]) -> typing.Literal["parent_id"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_source", b"has_source"]) -> typing.Literal["source"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_synthetic", b"has_synthetic"]) -> typing.Literal["synthetic"] | None: ... + +global___Mechanism = Mechanism + +@typing.final +class Mechanismmeta(google.protobuf.message.Message): + """ + Operating system or runtime meta information to an exception mechanism. + + The mechanism metadata usually carries error codes reported by the runtime or operating system, + along with a platform-dependent interpretation of these codes. SDKs can safely omit code names + and descriptions for well-known error codes, as it will be filled out by Sentry. For + proprietary or vendor-specific error codes, adding these values will give additional + information to the user. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class MechanismmetaErrno(google.protobuf.message.Message): + """ + Optional ISO C standard error code. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAME_FIELD_NUMBER: builtins.int + NUMBER_FIELD_NUMBER: builtins.int + name: builtins.str + number: builtins.int + def __init__( + self, + *, + name: builtins.str = ..., + number: builtins.int = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_name", b"has_name", "has_number", b"has_number", "name", b"name", "number", b"number"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_name", b"has_name", "has_number", b"has_number", "name", b"name", "number", b"number"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_name", b"has_name"]) -> typing.Literal["name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_number", b"has_number"]) -> typing.Literal["number"] | None: ... + + @typing.final + class MechanismmetaMachException(google.protobuf.message.Message): + """ + A Mach Exception on Apple systems comprising a code triple and optional descriptions. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CODE_FIELD_NUMBER: builtins.int + EXCEPTION_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + SUBCODE_FIELD_NUMBER: builtins.int + code: builtins.int + exception: builtins.int + name: builtins.str + subcode: builtins.int + def __init__( + self, + *, + code: builtins.int = ..., + exception: builtins.int = ..., + name: builtins.str = ..., + subcode: builtins.int = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["code", b"code", "exception", b"exception", "has_code", b"has_code", "has_exception", b"has_exception", "has_name", b"has_name", "has_subcode", b"has_subcode", "name", b"name", "subcode", b"subcode"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["code", b"code", "exception", b"exception", "has_code", b"has_code", "has_exception", b"has_exception", "has_name", b"has_name", "has_subcode", b"has_subcode", "name", b"name", "subcode", b"subcode"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_code", b"has_code"]) -> typing.Literal["code"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_exception", b"has_exception"]) -> typing.Literal["exception"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_name", b"has_name"]) -> typing.Literal["name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_subcode", b"has_subcode"]) -> typing.Literal["subcode"] | None: ... + + @typing.final + class MechanismmetaNsError(google.protobuf.message.Message): + """ + An NSError on Apple systems comprising code and signal. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CODE_FIELD_NUMBER: builtins.int + DOMAIN_FIELD_NUMBER: builtins.int + code: builtins.int + domain: builtins.str + def __init__( + self, + *, + code: builtins.int = ..., + domain: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["code", b"code", "domain", b"domain", "has_code", b"has_code", "has_domain", b"has_domain"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["code", b"code", "domain", b"domain", "has_code", b"has_code", "has_domain", b"has_domain"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_code", b"has_code"]) -> typing.Literal["code"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_domain", b"has_domain"]) -> typing.Literal["domain"] | None: ... + + @typing.final + class MechanismmetaSignal(google.protobuf.message.Message): + """ + Information on the POSIX signal. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CODE_FIELD_NUMBER: builtins.int + CODE_NAME_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + NUMBER_FIELD_NUMBER: builtins.int + code: builtins.int + code_name: builtins.str + name: builtins.str + number: builtins.int + def __init__( + self, + *, + code: builtins.int = ..., + code_name: builtins.str = ..., + name: builtins.str = ..., + number: builtins.int = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["code", b"code", "code_name", b"code_name", "has_code", b"has_code", "has_code_name", b"has_code_name", "has_name", b"has_name", "has_number", b"has_number", "name", b"name", "number", b"number"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["code", b"code", "code_name", b"code_name", "has_code", b"has_code", "has_code_name", b"has_code_name", "has_name", b"has_name", "has_number", b"has_number", "name", b"name", "number", b"number"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_code", b"has_code"]) -> typing.Literal["code"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_code_name", b"has_code_name"]) -> typing.Literal["code_name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_name", b"has_name"]) -> typing.Literal["name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_number", b"has_number"]) -> typing.Literal["number"] | None: ... + + ERRNO_FIELD_NUMBER: builtins.int + MACH_EXCEPTION_FIELD_NUMBER: builtins.int + NS_ERROR_FIELD_NUMBER: builtins.int + SIGNAL_FIELD_NUMBER: builtins.int + @property + def errno(self) -> global___Mechanismmeta.MechanismmetaErrno: ... + @property + def mach_exception(self) -> global___Mechanismmeta.MechanismmetaMachException: ... + @property + def ns_error(self) -> global___Mechanismmeta.MechanismmetaNsError: ... + @property + def signal(self) -> global___Mechanismmeta.MechanismmetaSignal: ... + def __init__( + self, + *, + errno: global___Mechanismmeta.MechanismmetaErrno | None = ..., + mach_exception: global___Mechanismmeta.MechanismmetaMachException | None = ..., + ns_error: global___Mechanismmeta.MechanismmetaNsError | None = ..., + signal: global___Mechanismmeta.MechanismmetaSignal | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["errno", b"errno", "has_errno", b"has_errno", "has_mach_exception", b"has_mach_exception", "has_ns_error", b"has_ns_error", "has_signal", b"has_signal", "mach_exception", b"mach_exception", "ns_error", b"ns_error", "signal", b"signal"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["errno", b"errno", "has_errno", b"has_errno", "has_mach_exception", b"has_mach_exception", "has_ns_error", b"has_ns_error", "has_signal", b"has_signal", "mach_exception", b"mach_exception", "ns_error", b"ns_error", "signal", b"signal"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_errno", b"has_errno"]) -> typing.Literal["errno"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_mach_exception", b"has_mach_exception"]) -> typing.Literal["mach_exception"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_ns_error", b"has_ns_error"]) -> typing.Literal["ns_error"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_signal", b"has_signal"]) -> typing.Literal["signal"] | None: ... + +global___Mechanismmeta = Mechanismmeta + +@typing.final +class Nativedebugimage(google.protobuf.message.Message): + """ + A generic (new-style) native platform debug information file. + + The `type` key must be one of: + + - `macho` + - `elf`: ELF images are used on Linux platforms. Their structure is identical to other native images. + - `pe` + + Examples: + + ```json + { + "type": "elf", + "code_id": "68220ae2c65d65c1b6aaa12fa6765a6ec2f5f434", + "code_file": "/lib/x86_64-linux-gnu/libgcc_s.so.1", + "debug_id": "e20a2268-5dc6-c165-b6aa-a12fa6765a6e", + "image_addr": "0x7f5140527000", + "image_size": 90112, + "image_vmaddr": "0x40000", + "arch": "x86_64" + } + ``` + + ```json + { + "type": "pe", + "code_id": "57898e12145000", + "code_file": "C:\\\\Windows\\\\System32\\\\dbghelp.dll", + "debug_id": "9c2a902b-6fdf-40ad-8308-588a41d572a0-1", + "debug_file": "dbghelp.pdb", + "image_addr": "0x70850000", + "image_size": "1331200", + "image_vmaddr": "0x40000", + "arch": "x86" + } + ``` + + ```json + { + "type": "macho", + "debug_id": "84a04d24-0e60-3810-a8c0-90a65e2df61a", + "debug_file": "libDiagnosticMessagesClient.dylib", + "code_file": "/usr/lib/libDiagnosticMessagesClient.dylib", + "image_addr": "0x7fffe668e000", + "image_size": 8192, + "image_vmaddr": "0x40000", + "arch": "x86_64", + } + ``` + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ARCH_FIELD_NUMBER: builtins.int + CODE_FILE_FIELD_NUMBER: builtins.int + CODE_ID_FIELD_NUMBER: builtins.int + DEBUG_CHECKSUM_FIELD_NUMBER: builtins.int + DEBUG_FILE_FIELD_NUMBER: builtins.int + DEBUG_ID_FIELD_NUMBER: builtins.int + IMAGE_ADDR_FIELD_NUMBER: builtins.int + IMAGE_SIZE_FIELD_NUMBER: builtins.int + IMAGE_VMADDR_FIELD_NUMBER: builtins.int + arch: builtins.str + code_file: builtins.str + code_id: builtins.str + debug_checksum: builtins.str + debug_file: builtins.str + debug_id: builtins.str + image_addr: builtins.str + image_size: builtins.int + image_vmaddr: builtins.str + def __init__( + self, + *, + arch: builtins.str = ..., + code_file: builtins.str = ..., + code_id: builtins.str = ..., + debug_checksum: builtins.str = ..., + debug_file: builtins.str = ..., + debug_id: builtins.str = ..., + image_addr: builtins.str = ..., + image_size: builtins.int = ..., + image_vmaddr: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["arch", b"arch", "code_id", b"code_id", "debug_checksum", b"debug_checksum", "debug_file", b"debug_file", "has_arch", b"has_arch", "has_code_id", b"has_code_id", "has_debug_checksum", b"has_debug_checksum", "has_debug_file", b"has_debug_file", "has_image_addr", b"has_image_addr", "has_image_size", b"has_image_size", "has_image_vmaddr", b"has_image_vmaddr", "image_addr", b"image_addr", "image_size", b"image_size", "image_vmaddr", b"image_vmaddr"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["arch", b"arch", "code_file", b"code_file", "code_id", b"code_id", "debug_checksum", b"debug_checksum", "debug_file", b"debug_file", "debug_id", b"debug_id", "has_arch", b"has_arch", "has_code_id", b"has_code_id", "has_debug_checksum", b"has_debug_checksum", "has_debug_file", b"has_debug_file", "has_image_addr", b"has_image_addr", "has_image_size", b"has_image_size", "has_image_vmaddr", b"has_image_vmaddr", "image_addr", b"image_addr", "image_size", b"image_size", "image_vmaddr", b"image_vmaddr"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_arch", b"has_arch"]) -> typing.Literal["arch"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_code_id", b"has_code_id"]) -> typing.Literal["code_id"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_debug_checksum", b"has_debug_checksum"]) -> typing.Literal["debug_checksum"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_debug_file", b"has_debug_file"]) -> typing.Literal["debug_file"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_image_addr", b"has_image_addr"]) -> typing.Literal["image_addr"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_image_size", b"has_image_size"]) -> typing.Literal["image_size"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_image_vmaddr", b"has_image_vmaddr"]) -> typing.Literal["image_vmaddr"] | None: ... + +global___Nativedebugimage = Nativedebugimage + +@typing.final +class Nelcontext(google.protobuf.message.Message): + """ + Contains NEL report information. + + Network Error Logging (NEL) is a browser feature that allows reporting of failed network + requests from the client side. See the following resources for more information: + + - [W3C Editor's Draft](https://w3c.github.io/network-error-logging/) + - [MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Network_Error_Logging) + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ELAPSED_TIME_FIELD_NUMBER: builtins.int + ERROR_TYPE_FIELD_NUMBER: builtins.int + PHASE_FIELD_NUMBER: builtins.int + SAMPLING_FRACTION_FIELD_NUMBER: builtins.int + SERVER_IP_FIELD_NUMBER: builtins.int + elapsed_time: builtins.int + error_type: builtins.str + sampling_fraction: builtins.float + server_ip: builtins.str + @property + def phase(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + elapsed_time: builtins.int = ..., + error_type: builtins.str = ..., + phase: google.protobuf.struct_pb2.Value | None = ..., + sampling_fraction: builtins.float = ..., + server_ip: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["elapsed_time", b"elapsed_time", "error_type", b"error_type", "has_elapsed_time", b"has_elapsed_time", "has_error_type", b"has_error_type", "has_phase", b"has_phase", "has_sampling_fraction", b"has_sampling_fraction", "has_server_ip", b"has_server_ip", "phase", b"phase", "sampling_fraction", b"sampling_fraction", "server_ip", b"server_ip"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["elapsed_time", b"elapsed_time", "error_type", b"error_type", "has_elapsed_time", b"has_elapsed_time", "has_error_type", b"has_error_type", "has_phase", b"has_phase", "has_sampling_fraction", b"has_sampling_fraction", "has_server_ip", b"has_server_ip", "phase", b"phase", "sampling_fraction", b"sampling_fraction", "server_ip", b"server_ip"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_elapsed_time", b"has_elapsed_time"]) -> typing.Literal["elapsed_time"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_error_type", b"has_error_type"]) -> typing.Literal["error_type"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_phase", b"has_phase"]) -> typing.Literal["phase"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_sampling_fraction", b"has_sampling_fraction"]) -> typing.Literal["sampling_fraction"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_server_ip", b"has_server_ip"]) -> typing.Literal["server_ip"] | None: ... + +global___Nelcontext = Nelcontext + +@typing.final +class Nserror(google.protobuf.message.Message): + """ + NSError informaiton. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CODE_FIELD_NUMBER: builtins.int + DOMAIN_FIELD_NUMBER: builtins.int + code: builtins.int + domain: builtins.str + def __init__( + self, + *, + code: builtins.int = ..., + domain: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["code", b"code", "domain", b"domain", "has_code", b"has_code", "has_domain", b"has_domain"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["code", b"code", "domain", b"domain", "has_code", b"has_code", "has_domain", b"has_domain"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_code", b"has_code"]) -> typing.Literal["code"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_domain", b"has_domain"]) -> typing.Literal["domain"] | None: ... + +global___Nserror = Nserror + +@typing.final +class Oscontext(google.protobuf.message.Message): + """ + Operating system information. + + OS context describes the operating system on which the event was created. In web contexts, this + is the operating system of the browser (generally pulled from the User-Agent string). + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + BUILD_FIELD_NUMBER: builtins.int + KERNEL_VERSION_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + RAW_DESCRIPTION_FIELD_NUMBER: builtins.int + ROOTED_FIELD_NUMBER: builtins.int + VERSION_FIELD_NUMBER: builtins.int + build: builtins.str + kernel_version: builtins.str + name: builtins.str + raw_description: builtins.str + rooted: builtins.bool + version: builtins.str + def __init__( + self, + *, + build: builtins.str = ..., + kernel_version: builtins.str = ..., + name: builtins.str = ..., + raw_description: builtins.str = ..., + rooted: builtins.bool = ..., + version: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["build", b"build", "has_build", b"has_build", "has_kernel_version", b"has_kernel_version", "has_name", b"has_name", "has_raw_description", b"has_raw_description", "has_rooted", b"has_rooted", "has_version", b"has_version", "kernel_version", b"kernel_version", "name", b"name", "raw_description", b"raw_description", "rooted", b"rooted", "version", b"version"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["build", b"build", "has_build", b"has_build", "has_kernel_version", b"has_kernel_version", "has_name", b"has_name", "has_raw_description", b"has_raw_description", "has_rooted", b"has_rooted", "has_version", b"has_version", "kernel_version", b"kernel_version", "name", b"name", "raw_description", b"raw_description", "rooted", b"rooted", "version", b"version"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_build", b"has_build"]) -> typing.Literal["build"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_kernel_version", b"has_kernel_version"]) -> typing.Literal["kernel_version"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_name", b"has_name"]) -> typing.Literal["name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_raw_description", b"has_raw_description"]) -> typing.Literal["raw_description"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_rooted", b"has_rooted"]) -> typing.Literal["rooted"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_version", b"has_version"]) -> typing.Literal["version"] | None: ... + +global___Oscontext = Oscontext + +@typing.final +class Otelcontext(google.protobuf.message.Message): + """ + OpenTelemetry Context + + If an event has this context, it was generated from an OpenTelemetry signal (trace, metric, log). + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ATTRIBUTES_FIELD_NUMBER: builtins.int + RESOURCE_FIELD_NUMBER: builtins.int + @property + def attributes(self) -> google.protobuf.struct_pb2.Value: ... + @property + def resource(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + attributes: google.protobuf.struct_pb2.Value | None = ..., + resource: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["attributes", b"attributes", "has_attributes", b"has_attributes", "has_resource", b"has_resource", "resource", b"resource"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["attributes", b"attributes", "has_attributes", b"has_attributes", "has_resource", b"has_resource", "resource", b"resource"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_attributes", b"has_attributes"]) -> typing.Literal["attributes"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_resource", b"has_resource"]) -> typing.Literal["resource"] | None: ... + +global___Otelcontext = Otelcontext + +@typing.final +class Posixsignal(google.protobuf.message.Message): + """ + POSIX signal with optional extended data. + + On Apple systems, signals also carry a code in addition to the signal number describing the + signal in more detail. On Linux, this code does not exist. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CODE_FIELD_NUMBER: builtins.int + CODE_NAME_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + NUMBER_FIELD_NUMBER: builtins.int + code: builtins.int + code_name: builtins.str + name: builtins.str + number: builtins.int + def __init__( + self, + *, + code: builtins.int = ..., + code_name: builtins.str = ..., + name: builtins.str = ..., + number: builtins.int = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["code", b"code", "code_name", b"code_name", "has_code", b"has_code", "has_code_name", b"has_code_name", "has_name", b"has_name", "has_number", b"has_number", "name", b"name", "number", b"number"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["code", b"code", "code_name", b"code_name", "has_code", b"has_code", "has_code_name", b"has_code_name", "has_name", b"has_name", "has_number", b"has_number", "name", b"name", "number", b"number"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_code", b"has_code"]) -> typing.Literal["code"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_code_name", b"has_code_name"]) -> typing.Literal["code_name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_name", b"has_name"]) -> typing.Literal["name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_number", b"has_number"]) -> typing.Literal["number"] | None: ... + +global___Posixsignal = Posixsignal + +@typing.final +class Profilecontext(google.protobuf.message.Message): + """ + Profile context + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PROFILE_ID_FIELD_NUMBER: builtins.int + profile_id: builtins.str + def __init__( + self, + *, + profile_id: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["profile_id", b"profile_id"]) -> None: ... + +global___Profilecontext = Profilecontext + +@typing.final +class Proguarddebugimage(google.protobuf.message.Message): + """ + Proguard mapping file. + + Proguard images refer to `mapping.txt` files generated when Proguard obfuscates function names. The Java SDK integrations assign this file a unique identifier, which has to be included in the list of images. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + UUID_FIELD_NUMBER: builtins.int + uuid: builtins.str + def __init__( + self, + *, + uuid: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["uuid", b"uuid"]) -> None: ... + +global___Proguarddebugimage = Proguarddebugimage + +@typing.final +class Rawstacktrace(google.protobuf.message.Message): + """ + A stack trace of a single thread. + + A stack trace contains a list of frames, each with various bits (most optional) describing the + context of that frame. Frames should be sorted from oldest to newest. + + For the given example program written in Python: + + ```python + def foo(): + my_var = 'foo' + raise ValueError() + + def main(): + foo() + ``` + + A minimalistic stack trace for the above program in the correct order: + + ```json + { + "frames": [ + {"function": "main"}, + {"function": "foo"} + ] + } + ``` + + The top frame fully symbolicated with five lines of source context: + + ```json + { + "frames": [{ + "in_app": true, + "function": "myfunction", + "abs_path": "/real/file/name.py", + "filename": "file/name.py", + "lineno": 3, + "vars": { + "my_var": "'value'" + }, + "pre_context": [ + "def foo():", + " my_var = 'foo'", + ], + "context_line": " raise ValueError()", + "post_context": [ + "", + "def main():" + ], + }] + } + ``` + + A minimal native stack trace with register values. Note that the `package` event attribute must + be "native" for these frames to be symbolicated. + + ```json + { + "frames": [ + {"instruction_addr": "0x7fff5bf3456c"}, + {"instruction_addr": "0x7fff5bf346c0"}, + ], + "registers": { + "rip": "0x00007ff6eef54be2", + "rsp": "0x0000003b710cd9e0" + } + } + ``` + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class RawstacktraceFrames(google.protobuf.message.Message): + """ + Required. A non-empty list of stack frames. The list is ordered from caller to callee, or + oldest to youngest. The last frame is the one creating the exception. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class RawstacktraceFramesLock(google.protobuf.message.Message): + """ + A possible lock (java monitor object) held by this frame. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ADDRESS_FIELD_NUMBER: builtins.int + CLASS_NAME_FIELD_NUMBER: builtins.int + PACKAGE_NAME_FIELD_NUMBER: builtins.int + THREAD_ID_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + address: builtins.str + class_name: builtins.str + package_name: builtins.str + type: builtins.str + @property + def thread_id(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + address: builtins.str = ..., + class_name: builtins.str = ..., + package_name: builtins.str = ..., + thread_id: google.protobuf.struct_pb2.Value | None = ..., + type: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["address", b"address", "class_name", b"class_name", "has_address", b"has_address", "has_class_name", b"has_class_name", "has_package_name", b"has_package_name", "has_thread_id", b"has_thread_id", "package_name", b"package_name", "thread_id", b"thread_id"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["address", b"address", "class_name", b"class_name", "has_address", b"has_address", "has_class_name", b"has_class_name", "has_package_name", b"has_package_name", "has_thread_id", b"has_thread_id", "package_name", b"package_name", "thread_id", b"thread_id", "type", b"type"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_address", b"has_address"]) -> typing.Literal["address"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_class_name", b"has_class_name"]) -> typing.Literal["class_name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_package_name", b"has_package_name"]) -> typing.Literal["package_name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_thread_id", b"has_thread_id"]) -> typing.Literal["thread_id"] | None: ... + + ABS_PATH_FIELD_NUMBER: builtins.int + ADDR_MODE_FIELD_NUMBER: builtins.int + COLNO_FIELD_NUMBER: builtins.int + CONTEXT_LINE_FIELD_NUMBER: builtins.int + FILENAME_FIELD_NUMBER: builtins.int + FUNCTION_FIELD_NUMBER: builtins.int + FUNCTION_ID_FIELD_NUMBER: builtins.int + IMAGE_ADDR_FIELD_NUMBER: builtins.int + IN_APP_FIELD_NUMBER: builtins.int + INSTRUCTION_ADDR_FIELD_NUMBER: builtins.int + LINENO_FIELD_NUMBER: builtins.int + LOCK_FIELD_NUMBER: builtins.int + MODULE_FIELD_NUMBER: builtins.int + PACKAGE_FIELD_NUMBER: builtins.int + PLATFORM_FIELD_NUMBER: builtins.int + POST_CONTEXT_FIELD_NUMBER: builtins.int + PRE_CONTEXT_FIELD_NUMBER: builtins.int + RAW_FUNCTION_FIELD_NUMBER: builtins.int + STACK_START_FIELD_NUMBER: builtins.int + SYMBOL_FIELD_NUMBER: builtins.int + SYMBOL_ADDR_FIELD_NUMBER: builtins.int + VARS_FIELD_NUMBER: builtins.int + abs_path: builtins.str + addr_mode: builtins.str + colno: builtins.int + context_line: builtins.str + filename: builtins.str + function: builtins.str + function_id: builtins.str + image_addr: builtins.str + in_app: builtins.bool + instruction_addr: builtins.str + lineno: builtins.int + module: builtins.str + package: builtins.str + platform: builtins.str + raw_function: builtins.str + stack_start: builtins.bool + symbol: builtins.str + symbol_addr: builtins.str + @property + def lock(self) -> global___Rawstacktrace.RawstacktraceFrames.RawstacktraceFramesLock: ... + @property + def post_context(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def pre_context(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def vars(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + abs_path: builtins.str = ..., + addr_mode: builtins.str = ..., + colno: builtins.int = ..., + context_line: builtins.str = ..., + filename: builtins.str = ..., + function: builtins.str = ..., + function_id: builtins.str = ..., + image_addr: builtins.str = ..., + in_app: builtins.bool = ..., + instruction_addr: builtins.str = ..., + lineno: builtins.int = ..., + lock: global___Rawstacktrace.RawstacktraceFrames.RawstacktraceFramesLock | None = ..., + module: builtins.str = ..., + package: builtins.str = ..., + platform: builtins.str = ..., + post_context: collections.abc.Iterable[builtins.str] | None = ..., + pre_context: collections.abc.Iterable[builtins.str] | None = ..., + raw_function: builtins.str = ..., + stack_start: builtins.bool = ..., + symbol: builtins.str = ..., + symbol_addr: builtins.str = ..., + vars: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["abs_path", b"abs_path", "addr_mode", b"addr_mode", "colno", b"colno", "context_line", b"context_line", "filename", b"filename", "function", b"function", "function_id", b"function_id", "has_abs_path", b"has_abs_path", "has_addr_mode", b"has_addr_mode", "has_colno", b"has_colno", "has_context_line", b"has_context_line", "has_filename", b"has_filename", "has_function", b"has_function", "has_function_id", b"has_function_id", "has_image_addr", b"has_image_addr", "has_in_app", b"has_in_app", "has_instruction_addr", b"has_instruction_addr", "has_lineno", b"has_lineno", "has_lock", b"has_lock", "has_module", b"has_module", "has_package", b"has_package", "has_platform", b"has_platform", "has_raw_function", b"has_raw_function", "has_stack_start", b"has_stack_start", "has_symbol", b"has_symbol", "has_symbol_addr", b"has_symbol_addr", "has_vars", b"has_vars", "image_addr", b"image_addr", "in_app", b"in_app", "instruction_addr", b"instruction_addr", "lineno", b"lineno", "lock", b"lock", "module", b"module", "package", b"package", "platform", b"platform", "raw_function", b"raw_function", "stack_start", b"stack_start", "symbol", b"symbol", "symbol_addr", b"symbol_addr", "vars", b"vars"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["abs_path", b"abs_path", "addr_mode", b"addr_mode", "colno", b"colno", "context_line", b"context_line", "filename", b"filename", "function", b"function", "function_id", b"function_id", "has_abs_path", b"has_abs_path", "has_addr_mode", b"has_addr_mode", "has_colno", b"has_colno", "has_context_line", b"has_context_line", "has_filename", b"has_filename", "has_function", b"has_function", "has_function_id", b"has_function_id", "has_image_addr", b"has_image_addr", "has_in_app", b"has_in_app", "has_instruction_addr", b"has_instruction_addr", "has_lineno", b"has_lineno", "has_lock", b"has_lock", "has_module", b"has_module", "has_package", b"has_package", "has_platform", b"has_platform", "has_raw_function", b"has_raw_function", "has_stack_start", b"has_stack_start", "has_symbol", b"has_symbol", "has_symbol_addr", b"has_symbol_addr", "has_vars", b"has_vars", "image_addr", b"image_addr", "in_app", b"in_app", "instruction_addr", b"instruction_addr", "lineno", b"lineno", "lock", b"lock", "module", b"module", "package", b"package", "platform", b"platform", "post_context", b"post_context", "pre_context", b"pre_context", "raw_function", b"raw_function", "stack_start", b"stack_start", "symbol", b"symbol", "symbol_addr", b"symbol_addr", "vars", b"vars"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_abs_path", b"has_abs_path"]) -> typing.Literal["abs_path"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_addr_mode", b"has_addr_mode"]) -> typing.Literal["addr_mode"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_colno", b"has_colno"]) -> typing.Literal["colno"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_context_line", b"has_context_line"]) -> typing.Literal["context_line"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_filename", b"has_filename"]) -> typing.Literal["filename"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_function", b"has_function"]) -> typing.Literal["function"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_function_id", b"has_function_id"]) -> typing.Literal["function_id"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_image_addr", b"has_image_addr"]) -> typing.Literal["image_addr"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_in_app", b"has_in_app"]) -> typing.Literal["in_app"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_instruction_addr", b"has_instruction_addr"]) -> typing.Literal["instruction_addr"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_lineno", b"has_lineno"]) -> typing.Literal["lineno"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_lock", b"has_lock"]) -> typing.Literal["lock"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_module", b"has_module"]) -> typing.Literal["module"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_package", b"has_package"]) -> typing.Literal["package"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_platform", b"has_platform"]) -> typing.Literal["platform"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_raw_function", b"has_raw_function"]) -> typing.Literal["raw_function"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_stack_start", b"has_stack_start"]) -> typing.Literal["stack_start"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_symbol", b"has_symbol"]) -> typing.Literal["symbol"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_symbol_addr", b"has_symbol_addr"]) -> typing.Literal["symbol_addr"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_vars", b"has_vars"]) -> typing.Literal["vars"] | None: ... + + @typing.final + class RegistersEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str + def __init__( + self, + *, + key: builtins.str = ..., + value: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... + + FRAMES_FIELD_NUMBER: builtins.int + INSTRUCTION_ADDR_ADJUSTMENT_FIELD_NUMBER: builtins.int + LANG_FIELD_NUMBER: builtins.int + REGISTERS_FIELD_NUMBER: builtins.int + SNAPSHOT_FIELD_NUMBER: builtins.int + instruction_addr_adjustment: builtins.str + lang: builtins.str + snapshot: builtins.bool + @property + def frames(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Rawstacktrace.RawstacktraceFrames]: ... + @property + def registers(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... + def __init__( + self, + *, + frames: collections.abc.Iterable[global___Rawstacktrace.RawstacktraceFrames] | None = ..., + instruction_addr_adjustment: builtins.str = ..., + lang: builtins.str = ..., + registers: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + snapshot: builtins.bool = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_instruction_addr_adjustment", b"has_instruction_addr_adjustment", "has_lang", b"has_lang", "has_snapshot", b"has_snapshot", "instruction_addr_adjustment", b"instruction_addr_adjustment", "lang", b"lang", "snapshot", b"snapshot"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["frames", b"frames", "has_instruction_addr_adjustment", b"has_instruction_addr_adjustment", "has_lang", b"has_lang", "has_snapshot", b"has_snapshot", "instruction_addr_adjustment", b"instruction_addr_adjustment", "lang", b"lang", "registers", b"registers", "snapshot", b"snapshot"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_instruction_addr_adjustment", b"has_instruction_addr_adjustment"]) -> typing.Literal["instruction_addr_adjustment"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_lang", b"has_lang"]) -> typing.Literal["lang"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_snapshot", b"has_snapshot"]) -> typing.Literal["snapshot"] | None: ... + +global___Rawstacktrace = Rawstacktrace + +@typing.final +class Replaycontext(google.protobuf.message.Message): + """ + Replay context. + + The replay context contains the replay_id of the session replay if the event + occurred during a replay. The replay_id is added onto the dynamic sampling context + on the javascript SDK which propagates it through the trace. In relay, we take + this value from the DSC and create a context which contains only the replay_id + This context is never set on the client for events, only on relay. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + REPLAY_ID_FIELD_NUMBER: builtins.int + replay_id: builtins.str + def __init__( + self, + *, + replay_id: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_replay_id", b"has_replay_id", "replay_id", b"replay_id"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_replay_id", b"has_replay_id", "replay_id", b"replay_id"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["has_replay_id", b"has_replay_id"]) -> typing.Literal["replay_id"] | None: ... + +global___Replaycontext = Replaycontext + +@typing.final +class Request(google.protobuf.message.Message): + """ + Http request information. + + The Request interface contains information on a HTTP request related to the event. In client + SDKs, this can be an outgoing request, or the request that rendered the current web page. On + server SDKs, this could be the incoming web request that is being handled. + + The data variable should only contain the request body (not the query string). It can either be + a dictionary (for standard HTTP requests) or a raw request body. + + ### Ordered Maps + + In the Request interface, several attributes can either be declared as string, object, or list + of tuples. Sentry attempts to parse structured information from the string representation in + such cases. + + Sometimes, keys can be declared multiple times, or the order of elements matters. In such + cases, use the tuple representation over a plain object. + + Example of request headers as object: + + ```json + { + "content-type": "application/json", + "accept": "application/json, application/xml" + } + ``` + + Example of the same headers as list of tuples: + + ```json + [ + ["content-type", "application/json"], + ["accept", "application/json"], + ["accept", "application/xml"] + ] + ``` + + Example of a fully populated request object: + + ```json + { + "request": { + "method": "POST", + "url": "http://absolute.uri/foo", + "query_string": "query=foobar&page=2", + "data": { + "foo": "bar" + }, + "cookies": "PHPSESSID=298zf09hf012fh2; csrftoken=u32t4o3tb3gg43; _gat=1;", + "headers": { + "content-type": "text/html" + }, + "env": { + "REMOTE_ADDR": "192.168.0.1" + } + } + } + ``` + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + API_TARGET_FIELD_NUMBER: builtins.int + BODY_SIZE_FIELD_NUMBER: builtins.int + COOKIES_FIELD_NUMBER: builtins.int + DATA_FIELD_NUMBER: builtins.int + ENV_FIELD_NUMBER: builtins.int + FRAGMENT_FIELD_NUMBER: builtins.int + HEADERS_FIELD_NUMBER: builtins.int + INFERRED_CONTENT_TYPE_FIELD_NUMBER: builtins.int + METHOD_FIELD_NUMBER: builtins.int + PROTOCOL_FIELD_NUMBER: builtins.int + QUERY_STRING_FIELD_NUMBER: builtins.int + URL_FIELD_NUMBER: builtins.int + api_target: builtins.str + body_size: builtins.int + fragment: builtins.str + inferred_content_type: builtins.str + method: builtins.str + protocol: builtins.str + url: builtins.str + @property + def cookies(self) -> google.protobuf.struct_pb2.Value: ... + @property + def data(self) -> google.protobuf.struct_pb2.Value: ... + @property + def env(self) -> google.protobuf.struct_pb2.Value: ... + @property + def headers(self) -> google.protobuf.struct_pb2.Value: ... + @property + def query_string(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + api_target: builtins.str = ..., + body_size: builtins.int = ..., + cookies: google.protobuf.struct_pb2.Value | None = ..., + data: google.protobuf.struct_pb2.Value | None = ..., + env: google.protobuf.struct_pb2.Value | None = ..., + fragment: builtins.str = ..., + headers: google.protobuf.struct_pb2.Value | None = ..., + inferred_content_type: builtins.str = ..., + method: builtins.str = ..., + protocol: builtins.str = ..., + query_string: google.protobuf.struct_pb2.Value | None = ..., + url: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["api_target", b"api_target", "body_size", b"body_size", "cookies", b"cookies", "data", b"data", "env", b"env", "fragment", b"fragment", "has_api_target", b"has_api_target", "has_body_size", b"has_body_size", "has_cookies", b"has_cookies", "has_env", b"has_env", "has_fragment", b"has_fragment", "has_headers", b"has_headers", "has_inferred_content_type", b"has_inferred_content_type", "has_method", b"has_method", "has_protocol", b"has_protocol", "has_query_string", b"has_query_string", "has_url", b"has_url", "headers", b"headers", "inferred_content_type", b"inferred_content_type", "method", b"method", "protocol", b"protocol", "query_string", b"query_string", "url", b"url"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["api_target", b"api_target", "body_size", b"body_size", "cookies", b"cookies", "data", b"data", "env", b"env", "fragment", b"fragment", "has_api_target", b"has_api_target", "has_body_size", b"has_body_size", "has_cookies", b"has_cookies", "has_env", b"has_env", "has_fragment", b"has_fragment", "has_headers", b"has_headers", "has_inferred_content_type", b"has_inferred_content_type", "has_method", b"has_method", "has_protocol", b"has_protocol", "has_query_string", b"has_query_string", "has_url", b"has_url", "headers", b"headers", "inferred_content_type", b"inferred_content_type", "method", b"method", "protocol", b"protocol", "query_string", b"query_string", "url", b"url"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_api_target", b"has_api_target"]) -> typing.Literal["api_target"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_body_size", b"has_body_size"]) -> typing.Literal["body_size"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_cookies", b"has_cookies"]) -> typing.Literal["cookies"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_env", b"has_env"]) -> typing.Literal["env"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_fragment", b"has_fragment"]) -> typing.Literal["fragment"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_headers", b"has_headers"]) -> typing.Literal["headers"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_inferred_content_type", b"has_inferred_content_type"]) -> typing.Literal["inferred_content_type"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_method", b"has_method"]) -> typing.Literal["method"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_protocol", b"has_protocol"]) -> typing.Literal["protocol"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_query_string", b"has_query_string"]) -> typing.Literal["query_string"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_url", b"has_url"]) -> typing.Literal["url"] | None: ... + +global___Request = Request + +@typing.final +class Responsecontext(google.protobuf.message.Message): + """ + Response interface that contains information on a HTTP response related to the event. + + The data variable should only contain the response body. It can either be + a dictionary (for standard HTTP responses) or a raw response body. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + BODY_SIZE_FIELD_NUMBER: builtins.int + COOKIES_FIELD_NUMBER: builtins.int + DATA_FIELD_NUMBER: builtins.int + HEADERS_FIELD_NUMBER: builtins.int + INFERRED_CONTENT_TYPE_FIELD_NUMBER: builtins.int + STATUS_CODE_FIELD_NUMBER: builtins.int + body_size: builtins.int + inferred_content_type: builtins.str + status_code: builtins.int + @property + def cookies(self) -> google.protobuf.struct_pb2.Value: ... + @property + def data(self) -> google.protobuf.struct_pb2.Value: ... + @property + def headers(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + body_size: builtins.int = ..., + cookies: google.protobuf.struct_pb2.Value | None = ..., + data: google.protobuf.struct_pb2.Value | None = ..., + headers: google.protobuf.struct_pb2.Value | None = ..., + inferred_content_type: builtins.str = ..., + status_code: builtins.int = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["body_size", b"body_size", "cookies", b"cookies", "data", b"data", "has_body_size", b"has_body_size", "has_cookies", b"has_cookies", "has_headers", b"has_headers", "has_inferred_content_type", b"has_inferred_content_type", "has_status_code", b"has_status_code", "headers", b"headers", "inferred_content_type", b"inferred_content_type", "status_code", b"status_code"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["body_size", b"body_size", "cookies", b"cookies", "data", b"data", "has_body_size", b"has_body_size", "has_cookies", b"has_cookies", "has_headers", b"has_headers", "has_inferred_content_type", b"has_inferred_content_type", "has_status_code", b"has_status_code", "headers", b"headers", "inferred_content_type", b"inferred_content_type", "status_code", b"status_code"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_body_size", b"has_body_size"]) -> typing.Literal["body_size"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_cookies", b"has_cookies"]) -> typing.Literal["cookies"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_headers", b"has_headers"]) -> typing.Literal["headers"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_inferred_content_type", b"has_inferred_content_type"]) -> typing.Literal["inferred_content_type"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_status_code", b"has_status_code"]) -> typing.Literal["status_code"] | None: ... + +global___Responsecontext = Responsecontext + +@typing.final +class Route(google.protobuf.message.Message): + """ + The route in the application, set by React Native SDK. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAME_FIELD_NUMBER: builtins.int + PARAMS_FIELD_NUMBER: builtins.int + name: builtins.str + @property + def params(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + name: builtins.str = ..., + params: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_name", b"has_name", "has_params", b"has_params", "name", b"name", "params", b"params"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_name", b"has_name", "has_params", b"has_params", "name", b"name", "params", b"params"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_name", b"has_name"]) -> typing.Literal["name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_params", b"has_params"]) -> typing.Literal["params"] | None: ... + +global___Route = Route + +@typing.final +class Runtimecontext(google.protobuf.message.Message): + """ + Runtime information. + + Runtime context describes a runtime in more detail. Typically, this context is present in + `contexts` multiple times if multiple runtimes are involved (for instance, if you have a + JavaScript application running on top of JVM). + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + BUILD_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + RAW_DESCRIPTION_FIELD_NUMBER: builtins.int + VERSION_FIELD_NUMBER: builtins.int + build: builtins.str + name: builtins.str + raw_description: builtins.str + version: builtins.str + def __init__( + self, + *, + build: builtins.str = ..., + name: builtins.str = ..., + raw_description: builtins.str = ..., + version: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["build", b"build", "has_build", b"has_build", "has_name", b"has_name", "has_raw_description", b"has_raw_description", "has_version", b"has_version", "name", b"name", "raw_description", b"raw_description", "version", b"version"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["build", b"build", "has_build", b"has_build", "has_name", b"has_name", "has_raw_description", b"has_raw_description", "has_version", b"has_version", "name", b"name", "raw_description", b"raw_description", "version", b"version"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_build", b"has_build"]) -> typing.Literal["build"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_name", b"has_name"]) -> typing.Literal["name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_raw_description", b"has_raw_description"]) -> typing.Literal["raw_description"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_version", b"has_version"]) -> typing.Literal["version"] | None: ... + +global___Runtimecontext = Runtimecontext + +@typing.final +class Sourcemapdebugimage(google.protobuf.message.Message): + """ + A debug image pointing to a source map. + + Examples: + + ```json + { + "type": "sourcemap", + "code_file": "https://example.com/static/js/main.min.js", + "debug_id": "395835f4-03e0-4436-80d3-136f0749a893" + } + ``` + + *Note:** Stack frames and the correlating entries in the debug image here + for `code_file`/`abs_path` are not PII stripped as they need to line up + perfectly for source map processing. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CODE_FILE_FIELD_NUMBER: builtins.int + DEBUG_FILE_FIELD_NUMBER: builtins.int + DEBUG_ID_FIELD_NUMBER: builtins.int + code_file: builtins.str + debug_file: builtins.str + debug_id: builtins.str + def __init__( + self, + *, + code_file: builtins.str = ..., + debug_file: builtins.str = ..., + debug_id: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["debug_file", b"debug_file", "has_debug_file", b"has_debug_file"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["code_file", b"code_file", "debug_file", b"debug_file", "debug_id", b"debug_id", "has_debug_file", b"has_debug_file"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["has_debug_file", b"has_debug_file"]) -> typing.Literal["debug_file"] | None: ... + +global___Sourcemapdebugimage = Sourcemapdebugimage + +@typing.final +class Stacktrace(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class StacktraceFrames(google.protobuf.message.Message): + """ + Required. A non-empty list of stack frames. The list is ordered from caller to callee, or + oldest to youngest. The last frame is the one creating the exception. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class StacktraceFramesLock(google.protobuf.message.Message): + """ + A possible lock (java monitor object) held by this frame. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ADDRESS_FIELD_NUMBER: builtins.int + CLASS_NAME_FIELD_NUMBER: builtins.int + PACKAGE_NAME_FIELD_NUMBER: builtins.int + THREAD_ID_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + address: builtins.str + class_name: builtins.str + package_name: builtins.str + type: builtins.str + @property + def thread_id(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + address: builtins.str = ..., + class_name: builtins.str = ..., + package_name: builtins.str = ..., + thread_id: google.protobuf.struct_pb2.Value | None = ..., + type: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["address", b"address", "class_name", b"class_name", "has_address", b"has_address", "has_class_name", b"has_class_name", "has_package_name", b"has_package_name", "has_thread_id", b"has_thread_id", "package_name", b"package_name", "thread_id", b"thread_id"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["address", b"address", "class_name", b"class_name", "has_address", b"has_address", "has_class_name", b"has_class_name", "has_package_name", b"has_package_name", "has_thread_id", b"has_thread_id", "package_name", b"package_name", "thread_id", b"thread_id", "type", b"type"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_address", b"has_address"]) -> typing.Literal["address"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_class_name", b"has_class_name"]) -> typing.Literal["class_name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_package_name", b"has_package_name"]) -> typing.Literal["package_name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_thread_id", b"has_thread_id"]) -> typing.Literal["thread_id"] | None: ... + + ABS_PATH_FIELD_NUMBER: builtins.int + ADDR_MODE_FIELD_NUMBER: builtins.int + COLNO_FIELD_NUMBER: builtins.int + CONTEXT_LINE_FIELD_NUMBER: builtins.int + FILENAME_FIELD_NUMBER: builtins.int + FUNCTION_FIELD_NUMBER: builtins.int + FUNCTION_ID_FIELD_NUMBER: builtins.int + IMAGE_ADDR_FIELD_NUMBER: builtins.int + IN_APP_FIELD_NUMBER: builtins.int + INSTRUCTION_ADDR_FIELD_NUMBER: builtins.int + LINENO_FIELD_NUMBER: builtins.int + LOCK_FIELD_NUMBER: builtins.int + MODULE_FIELD_NUMBER: builtins.int + PACKAGE_FIELD_NUMBER: builtins.int + PLATFORM_FIELD_NUMBER: builtins.int + POST_CONTEXT_FIELD_NUMBER: builtins.int + PRE_CONTEXT_FIELD_NUMBER: builtins.int + RAW_FUNCTION_FIELD_NUMBER: builtins.int + STACK_START_FIELD_NUMBER: builtins.int + SYMBOL_FIELD_NUMBER: builtins.int + SYMBOL_ADDR_FIELD_NUMBER: builtins.int + VARS_FIELD_NUMBER: builtins.int + abs_path: builtins.str + addr_mode: builtins.str + colno: builtins.int + context_line: builtins.str + filename: builtins.str + function: builtins.str + function_id: builtins.str + image_addr: builtins.str + in_app: builtins.bool + instruction_addr: builtins.str + lineno: builtins.int + module: builtins.str + package: builtins.str + platform: builtins.str + raw_function: builtins.str + stack_start: builtins.bool + symbol: builtins.str + symbol_addr: builtins.str + @property + def lock(self) -> global___Stacktrace.StacktraceFrames.StacktraceFramesLock: ... + @property + def post_context(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def pre_context(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def vars(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + abs_path: builtins.str = ..., + addr_mode: builtins.str = ..., + colno: builtins.int = ..., + context_line: builtins.str = ..., + filename: builtins.str = ..., + function: builtins.str = ..., + function_id: builtins.str = ..., + image_addr: builtins.str = ..., + in_app: builtins.bool = ..., + instruction_addr: builtins.str = ..., + lineno: builtins.int = ..., + lock: global___Stacktrace.StacktraceFrames.StacktraceFramesLock | None = ..., + module: builtins.str = ..., + package: builtins.str = ..., + platform: builtins.str = ..., + post_context: collections.abc.Iterable[builtins.str] | None = ..., + pre_context: collections.abc.Iterable[builtins.str] | None = ..., + raw_function: builtins.str = ..., + stack_start: builtins.bool = ..., + symbol: builtins.str = ..., + symbol_addr: builtins.str = ..., + vars: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["abs_path", b"abs_path", "addr_mode", b"addr_mode", "colno", b"colno", "context_line", b"context_line", "filename", b"filename", "function", b"function", "function_id", b"function_id", "has_abs_path", b"has_abs_path", "has_addr_mode", b"has_addr_mode", "has_colno", b"has_colno", "has_context_line", b"has_context_line", "has_filename", b"has_filename", "has_function", b"has_function", "has_function_id", b"has_function_id", "has_image_addr", b"has_image_addr", "has_in_app", b"has_in_app", "has_instruction_addr", b"has_instruction_addr", "has_lineno", b"has_lineno", "has_lock", b"has_lock", "has_module", b"has_module", "has_package", b"has_package", "has_platform", b"has_platform", "has_raw_function", b"has_raw_function", "has_stack_start", b"has_stack_start", "has_symbol", b"has_symbol", "has_symbol_addr", b"has_symbol_addr", "has_vars", b"has_vars", "image_addr", b"image_addr", "in_app", b"in_app", "instruction_addr", b"instruction_addr", "lineno", b"lineno", "lock", b"lock", "module", b"module", "package", b"package", "platform", b"platform", "raw_function", b"raw_function", "stack_start", b"stack_start", "symbol", b"symbol", "symbol_addr", b"symbol_addr", "vars", b"vars"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["abs_path", b"abs_path", "addr_mode", b"addr_mode", "colno", b"colno", "context_line", b"context_line", "filename", b"filename", "function", b"function", "function_id", b"function_id", "has_abs_path", b"has_abs_path", "has_addr_mode", b"has_addr_mode", "has_colno", b"has_colno", "has_context_line", b"has_context_line", "has_filename", b"has_filename", "has_function", b"has_function", "has_function_id", b"has_function_id", "has_image_addr", b"has_image_addr", "has_in_app", b"has_in_app", "has_instruction_addr", b"has_instruction_addr", "has_lineno", b"has_lineno", "has_lock", b"has_lock", "has_module", b"has_module", "has_package", b"has_package", "has_platform", b"has_platform", "has_raw_function", b"has_raw_function", "has_stack_start", b"has_stack_start", "has_symbol", b"has_symbol", "has_symbol_addr", b"has_symbol_addr", "has_vars", b"has_vars", "image_addr", b"image_addr", "in_app", b"in_app", "instruction_addr", b"instruction_addr", "lineno", b"lineno", "lock", b"lock", "module", b"module", "package", b"package", "platform", b"platform", "post_context", b"post_context", "pre_context", b"pre_context", "raw_function", b"raw_function", "stack_start", b"stack_start", "symbol", b"symbol", "symbol_addr", b"symbol_addr", "vars", b"vars"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_abs_path", b"has_abs_path"]) -> typing.Literal["abs_path"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_addr_mode", b"has_addr_mode"]) -> typing.Literal["addr_mode"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_colno", b"has_colno"]) -> typing.Literal["colno"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_context_line", b"has_context_line"]) -> typing.Literal["context_line"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_filename", b"has_filename"]) -> typing.Literal["filename"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_function", b"has_function"]) -> typing.Literal["function"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_function_id", b"has_function_id"]) -> typing.Literal["function_id"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_image_addr", b"has_image_addr"]) -> typing.Literal["image_addr"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_in_app", b"has_in_app"]) -> typing.Literal["in_app"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_instruction_addr", b"has_instruction_addr"]) -> typing.Literal["instruction_addr"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_lineno", b"has_lineno"]) -> typing.Literal["lineno"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_lock", b"has_lock"]) -> typing.Literal["lock"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_module", b"has_module"]) -> typing.Literal["module"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_package", b"has_package"]) -> typing.Literal["package"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_platform", b"has_platform"]) -> typing.Literal["platform"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_raw_function", b"has_raw_function"]) -> typing.Literal["raw_function"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_stack_start", b"has_stack_start"]) -> typing.Literal["stack_start"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_symbol", b"has_symbol"]) -> typing.Literal["symbol"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_symbol_addr", b"has_symbol_addr"]) -> typing.Literal["symbol_addr"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_vars", b"has_vars"]) -> typing.Literal["vars"] | None: ... + + @typing.final + class RegistersEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str + def __init__( + self, + *, + key: builtins.str = ..., + value: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... + + FRAMES_FIELD_NUMBER: builtins.int + INSTRUCTION_ADDR_ADJUSTMENT_FIELD_NUMBER: builtins.int + LANG_FIELD_NUMBER: builtins.int + REGISTERS_FIELD_NUMBER: builtins.int + SNAPSHOT_FIELD_NUMBER: builtins.int + instruction_addr_adjustment: builtins.str + lang: builtins.str + snapshot: builtins.bool + @property + def frames(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Stacktrace.StacktraceFrames]: ... + @property + def registers(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... + def __init__( + self, + *, + frames: collections.abc.Iterable[global___Stacktrace.StacktraceFrames] | None = ..., + instruction_addr_adjustment: builtins.str = ..., + lang: builtins.str = ..., + registers: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + snapshot: builtins.bool = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_instruction_addr_adjustment", b"has_instruction_addr_adjustment", "has_lang", b"has_lang", "has_snapshot", b"has_snapshot", "instruction_addr_adjustment", b"instruction_addr_adjustment", "lang", b"lang", "snapshot", b"snapshot"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["frames", b"frames", "has_instruction_addr_adjustment", b"has_instruction_addr_adjustment", "has_lang", b"has_lang", "has_snapshot", b"has_snapshot", "instruction_addr_adjustment", b"instruction_addr_adjustment", "lang", b"lang", "registers", b"registers", "snapshot", b"snapshot"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_instruction_addr_adjustment", b"has_instruction_addr_adjustment"]) -> typing.Literal["instruction_addr_adjustment"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_lang", b"has_lang"]) -> typing.Literal["lang"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_snapshot", b"has_snapshot"]) -> typing.Literal["snapshot"] | None: ... + +global___Stacktrace = Stacktrace + +@typing.final +class Systemsdkinfo(google.protobuf.message.Message): + """ + Holds information about the system SDK. + + This is relevant for iOS and other platforms that have a system + SDK. Not to be confused with the client SDK. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + SDK_NAME_FIELD_NUMBER: builtins.int + VERSION_MAJOR_FIELD_NUMBER: builtins.int + VERSION_MINOR_FIELD_NUMBER: builtins.int + VERSION_PATCHLEVEL_FIELD_NUMBER: builtins.int + sdk_name: builtins.str + version_major: builtins.int + version_minor: builtins.int + version_patchlevel: builtins.int + def __init__( + self, + *, + sdk_name: builtins.str = ..., + version_major: builtins.int = ..., + version_minor: builtins.int = ..., + version_patchlevel: builtins.int = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_sdk_name", b"has_sdk_name", "has_version_major", b"has_version_major", "has_version_minor", b"has_version_minor", "has_version_patchlevel", b"has_version_patchlevel", "sdk_name", b"sdk_name", "version_major", b"version_major", "version_minor", b"version_minor", "version_patchlevel", b"version_patchlevel"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_sdk_name", b"has_sdk_name", "has_version_major", b"has_version_major", "has_version_minor", b"has_version_minor", "has_version_patchlevel", b"has_version_patchlevel", "sdk_name", b"sdk_name", "version_major", b"version_major", "version_minor", b"version_minor", "version_patchlevel", b"version_patchlevel"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_sdk_name", b"has_sdk_name"]) -> typing.Literal["sdk_name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_version_major", b"has_version_major"]) -> typing.Literal["version_major"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_version_minor", b"has_version_minor"]) -> typing.Literal["version_minor"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_version_patchlevel", b"has_version_patchlevel"]) -> typing.Literal["version_patchlevel"] | None: ... + +global___Systemsdkinfo = Systemsdkinfo + +@typing.final +class Tagentry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A0_FIELD_NUMBER: builtins.int + A1_FIELD_NUMBER: builtins.int + a0: builtins.str + a1: builtins.str + def __init__( + self, + *, + a0: builtins.str = ..., + a1: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["a0", b"a0", "a1", b"a1", "has_a0", b"has_a0", "has_a1", b"has_a1"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["a0", b"a0", "a1", b"a1", "has_a0", b"has_a0", "has_a1", b"has_a1"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_a0", b"has_a0"]) -> typing.Literal["a0"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_a1", b"has_a1"]) -> typing.Literal["a1"] | None: ... + +global___Tagentry = Tagentry + +@typing.final +class Thread(google.protobuf.message.Message): + """ + A process thread of an event. + + The Threads Interface specifies threads that were running at the time an event happened. These threads can also contain stack traces. + + An event may contain one or more threads in an attribute named `threads`. + + The following example illustrates the threads part of the event payload and omits other attributes for simplicity. + + ```json + { + "threads": { + "values": [ + { + "id": "0", + "name": "main", + "crashed": true, + "stacktrace": {} + } + ] + } + } + ``` + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class ThreadHeldLocks(google.protobuf.message.Message): + """ + Represents a collection of locks (java monitor objects) held by a thread. + + A map of lock object addresses and their respective lock reason/details. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ADDRESS_FIELD_NUMBER: builtins.int + CLASS_NAME_FIELD_NUMBER: builtins.int + PACKAGE_NAME_FIELD_NUMBER: builtins.int + THREAD_ID_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + address: builtins.str + class_name: builtins.str + package_name: builtins.str + type: builtins.str + @property + def thread_id(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + address: builtins.str = ..., + class_name: builtins.str = ..., + package_name: builtins.str = ..., + thread_id: google.protobuf.struct_pb2.Value | None = ..., + type: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["address", b"address", "class_name", b"class_name", "has_address", b"has_address", "has_class_name", b"has_class_name", "has_package_name", b"has_package_name", "has_thread_id", b"has_thread_id", "package_name", b"package_name", "thread_id", b"thread_id"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["address", b"address", "class_name", b"class_name", "has_address", b"has_address", "has_class_name", b"has_class_name", "has_package_name", b"has_package_name", "has_thread_id", b"has_thread_id", "package_name", b"package_name", "thread_id", b"thread_id", "type", b"type"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_address", b"has_address"]) -> typing.Literal["address"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_class_name", b"has_class_name"]) -> typing.Literal["class_name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_package_name", b"has_package_name"]) -> typing.Literal["package_name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_thread_id", b"has_thread_id"]) -> typing.Literal["thread_id"] | None: ... + + @typing.final + class ThreadStacktrace(google.protobuf.message.Message): + """ + Stack trace containing frames of this exception. + + The thread that crashed with an exception should not have a stack trace, but instead, the `thread_id` attribute should be set on the exception and Sentry will connect the two. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class ThreadStacktraceFrames(google.protobuf.message.Message): + """ + Required. A non-empty list of stack frames. The list is ordered from caller to callee, or + oldest to youngest. The last frame is the one creating the exception. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class ThreadStacktraceFramesLock(google.protobuf.message.Message): + """ + A possible lock (java monitor object) held by this frame. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ADDRESS_FIELD_NUMBER: builtins.int + CLASS_NAME_FIELD_NUMBER: builtins.int + PACKAGE_NAME_FIELD_NUMBER: builtins.int + THREAD_ID_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + address: builtins.str + class_name: builtins.str + package_name: builtins.str + type: builtins.str + @property + def thread_id(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + address: builtins.str = ..., + class_name: builtins.str = ..., + package_name: builtins.str = ..., + thread_id: google.protobuf.struct_pb2.Value | None = ..., + type: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["address", b"address", "class_name", b"class_name", "has_address", b"has_address", "has_class_name", b"has_class_name", "has_package_name", b"has_package_name", "has_thread_id", b"has_thread_id", "package_name", b"package_name", "thread_id", b"thread_id"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["address", b"address", "class_name", b"class_name", "has_address", b"has_address", "has_class_name", b"has_class_name", "has_package_name", b"has_package_name", "has_thread_id", b"has_thread_id", "package_name", b"package_name", "thread_id", b"thread_id", "type", b"type"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_address", b"has_address"]) -> typing.Literal["address"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_class_name", b"has_class_name"]) -> typing.Literal["class_name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_package_name", b"has_package_name"]) -> typing.Literal["package_name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_thread_id", b"has_thread_id"]) -> typing.Literal["thread_id"] | None: ... + + ABS_PATH_FIELD_NUMBER: builtins.int + ADDR_MODE_FIELD_NUMBER: builtins.int + COLNO_FIELD_NUMBER: builtins.int + CONTEXT_LINE_FIELD_NUMBER: builtins.int + FILENAME_FIELD_NUMBER: builtins.int + FUNCTION_FIELD_NUMBER: builtins.int + FUNCTION_ID_FIELD_NUMBER: builtins.int + IMAGE_ADDR_FIELD_NUMBER: builtins.int + IN_APP_FIELD_NUMBER: builtins.int + INSTRUCTION_ADDR_FIELD_NUMBER: builtins.int + LINENO_FIELD_NUMBER: builtins.int + LOCK_FIELD_NUMBER: builtins.int + MODULE_FIELD_NUMBER: builtins.int + PACKAGE_FIELD_NUMBER: builtins.int + PLATFORM_FIELD_NUMBER: builtins.int + POST_CONTEXT_FIELD_NUMBER: builtins.int + PRE_CONTEXT_FIELD_NUMBER: builtins.int + RAW_FUNCTION_FIELD_NUMBER: builtins.int + STACK_START_FIELD_NUMBER: builtins.int + SYMBOL_FIELD_NUMBER: builtins.int + SYMBOL_ADDR_FIELD_NUMBER: builtins.int + VARS_FIELD_NUMBER: builtins.int + abs_path: builtins.str + addr_mode: builtins.str + colno: builtins.int + context_line: builtins.str + filename: builtins.str + function: builtins.str + function_id: builtins.str + image_addr: builtins.str + in_app: builtins.bool + instruction_addr: builtins.str + lineno: builtins.int + module: builtins.str + package: builtins.str + platform: builtins.str + raw_function: builtins.str + stack_start: builtins.bool + symbol: builtins.str + symbol_addr: builtins.str + @property + def lock(self) -> global___Thread.ThreadStacktrace.ThreadStacktraceFrames.ThreadStacktraceFramesLock: ... + @property + def post_context(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def pre_context(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def vars(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + abs_path: builtins.str = ..., + addr_mode: builtins.str = ..., + colno: builtins.int = ..., + context_line: builtins.str = ..., + filename: builtins.str = ..., + function: builtins.str = ..., + function_id: builtins.str = ..., + image_addr: builtins.str = ..., + in_app: builtins.bool = ..., + instruction_addr: builtins.str = ..., + lineno: builtins.int = ..., + lock: global___Thread.ThreadStacktrace.ThreadStacktraceFrames.ThreadStacktraceFramesLock | None = ..., + module: builtins.str = ..., + package: builtins.str = ..., + platform: builtins.str = ..., + post_context: collections.abc.Iterable[builtins.str] | None = ..., + pre_context: collections.abc.Iterable[builtins.str] | None = ..., + raw_function: builtins.str = ..., + stack_start: builtins.bool = ..., + symbol: builtins.str = ..., + symbol_addr: builtins.str = ..., + vars: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["abs_path", b"abs_path", "addr_mode", b"addr_mode", "colno", b"colno", "context_line", b"context_line", "filename", b"filename", "function", b"function", "function_id", b"function_id", "has_abs_path", b"has_abs_path", "has_addr_mode", b"has_addr_mode", "has_colno", b"has_colno", "has_context_line", b"has_context_line", "has_filename", b"has_filename", "has_function", b"has_function", "has_function_id", b"has_function_id", "has_image_addr", b"has_image_addr", "has_in_app", b"has_in_app", "has_instruction_addr", b"has_instruction_addr", "has_lineno", b"has_lineno", "has_lock", b"has_lock", "has_module", b"has_module", "has_package", b"has_package", "has_platform", b"has_platform", "has_raw_function", b"has_raw_function", "has_stack_start", b"has_stack_start", "has_symbol", b"has_symbol", "has_symbol_addr", b"has_symbol_addr", "has_vars", b"has_vars", "image_addr", b"image_addr", "in_app", b"in_app", "instruction_addr", b"instruction_addr", "lineno", b"lineno", "lock", b"lock", "module", b"module", "package", b"package", "platform", b"platform", "raw_function", b"raw_function", "stack_start", b"stack_start", "symbol", b"symbol", "symbol_addr", b"symbol_addr", "vars", b"vars"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["abs_path", b"abs_path", "addr_mode", b"addr_mode", "colno", b"colno", "context_line", b"context_line", "filename", b"filename", "function", b"function", "function_id", b"function_id", "has_abs_path", b"has_abs_path", "has_addr_mode", b"has_addr_mode", "has_colno", b"has_colno", "has_context_line", b"has_context_line", "has_filename", b"has_filename", "has_function", b"has_function", "has_function_id", b"has_function_id", "has_image_addr", b"has_image_addr", "has_in_app", b"has_in_app", "has_instruction_addr", b"has_instruction_addr", "has_lineno", b"has_lineno", "has_lock", b"has_lock", "has_module", b"has_module", "has_package", b"has_package", "has_platform", b"has_platform", "has_raw_function", b"has_raw_function", "has_stack_start", b"has_stack_start", "has_symbol", b"has_symbol", "has_symbol_addr", b"has_symbol_addr", "has_vars", b"has_vars", "image_addr", b"image_addr", "in_app", b"in_app", "instruction_addr", b"instruction_addr", "lineno", b"lineno", "lock", b"lock", "module", b"module", "package", b"package", "platform", b"platform", "post_context", b"post_context", "pre_context", b"pre_context", "raw_function", b"raw_function", "stack_start", b"stack_start", "symbol", b"symbol", "symbol_addr", b"symbol_addr", "vars", b"vars"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_abs_path", b"has_abs_path"]) -> typing.Literal["abs_path"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_addr_mode", b"has_addr_mode"]) -> typing.Literal["addr_mode"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_colno", b"has_colno"]) -> typing.Literal["colno"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_context_line", b"has_context_line"]) -> typing.Literal["context_line"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_filename", b"has_filename"]) -> typing.Literal["filename"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_function", b"has_function"]) -> typing.Literal["function"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_function_id", b"has_function_id"]) -> typing.Literal["function_id"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_image_addr", b"has_image_addr"]) -> typing.Literal["image_addr"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_in_app", b"has_in_app"]) -> typing.Literal["in_app"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_instruction_addr", b"has_instruction_addr"]) -> typing.Literal["instruction_addr"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_lineno", b"has_lineno"]) -> typing.Literal["lineno"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_lock", b"has_lock"]) -> typing.Literal["lock"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_module", b"has_module"]) -> typing.Literal["module"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_package", b"has_package"]) -> typing.Literal["package"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_platform", b"has_platform"]) -> typing.Literal["platform"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_raw_function", b"has_raw_function"]) -> typing.Literal["raw_function"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_stack_start", b"has_stack_start"]) -> typing.Literal["stack_start"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_symbol", b"has_symbol"]) -> typing.Literal["symbol"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_symbol_addr", b"has_symbol_addr"]) -> typing.Literal["symbol_addr"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_vars", b"has_vars"]) -> typing.Literal["vars"] | None: ... + + @typing.final + class RegistersEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str + def __init__( + self, + *, + key: builtins.str = ..., + value: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... + + FRAMES_FIELD_NUMBER: builtins.int + INSTRUCTION_ADDR_ADJUSTMENT_FIELD_NUMBER: builtins.int + LANG_FIELD_NUMBER: builtins.int + REGISTERS_FIELD_NUMBER: builtins.int + SNAPSHOT_FIELD_NUMBER: builtins.int + instruction_addr_adjustment: builtins.str + lang: builtins.str + snapshot: builtins.bool + @property + def frames(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Thread.ThreadStacktrace.ThreadStacktraceFrames]: ... + @property + def registers(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... + def __init__( + self, + *, + frames: collections.abc.Iterable[global___Thread.ThreadStacktrace.ThreadStacktraceFrames] | None = ..., + instruction_addr_adjustment: builtins.str = ..., + lang: builtins.str = ..., + registers: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + snapshot: builtins.bool = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_instruction_addr_adjustment", b"has_instruction_addr_adjustment", "has_lang", b"has_lang", "has_snapshot", b"has_snapshot", "instruction_addr_adjustment", b"instruction_addr_adjustment", "lang", b"lang", "snapshot", b"snapshot"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["frames", b"frames", "has_instruction_addr_adjustment", b"has_instruction_addr_adjustment", "has_lang", b"has_lang", "has_snapshot", b"has_snapshot", "instruction_addr_adjustment", b"instruction_addr_adjustment", "lang", b"lang", "registers", b"registers", "snapshot", b"snapshot"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_instruction_addr_adjustment", b"has_instruction_addr_adjustment"]) -> typing.Literal["instruction_addr_adjustment"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_lang", b"has_lang"]) -> typing.Literal["lang"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_snapshot", b"has_snapshot"]) -> typing.Literal["snapshot"] | None: ... + + @typing.final + class HeldLocksEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + @property + def value(self) -> global___Thread.ThreadHeldLocks: ... + def __init__( + self, + *, + key: builtins.str = ..., + value: global___Thread.ThreadHeldLocks | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... + + CRASHED_FIELD_NUMBER: builtins.int + CURRENT_FIELD_NUMBER: builtins.int + HELD_LOCKS_FIELD_NUMBER: builtins.int + ID_FIELD_NUMBER: builtins.int + MAIN_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + STACKTRACE_FIELD_NUMBER: builtins.int + STATE_FIELD_NUMBER: builtins.int + crashed: builtins.bool + current: builtins.bool + main: builtins.bool + name: builtins.str + state: builtins.str + @property + def held_locks(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___Thread.ThreadHeldLocks]: ... + @property + def id(self) -> google.protobuf.struct_pb2.Value: ... + @property + def stacktrace(self) -> global___Thread.ThreadStacktrace: ... + def __init__( + self, + *, + crashed: builtins.bool = ..., + current: builtins.bool = ..., + held_locks: collections.abc.Mapping[builtins.str, global___Thread.ThreadHeldLocks] | None = ..., + id: google.protobuf.struct_pb2.Value | None = ..., + main: builtins.bool = ..., + name: builtins.str = ..., + stacktrace: global___Thread.ThreadStacktrace | None = ..., + state: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["crashed", b"crashed", "current", b"current", "has_crashed", b"has_crashed", "has_current", b"has_current", "has_id", b"has_id", "has_main", b"has_main", "has_name", b"has_name", "has_stacktrace", b"has_stacktrace", "has_state", b"has_state", "id", b"id", "main", b"main", "name", b"name", "stacktrace", b"stacktrace", "state", b"state"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["crashed", b"crashed", "current", b"current", "has_crashed", b"has_crashed", "has_current", b"has_current", "has_id", b"has_id", "has_main", b"has_main", "has_name", b"has_name", "has_stacktrace", b"has_stacktrace", "has_state", b"has_state", "held_locks", b"held_locks", "id", b"id", "main", b"main", "name", b"name", "stacktrace", b"stacktrace", "state", b"state"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_crashed", b"has_crashed"]) -> typing.Literal["crashed"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_current", b"has_current"]) -> typing.Literal["current"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_id", b"has_id"]) -> typing.Literal["id"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_main", b"has_main"]) -> typing.Literal["main"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_name", b"has_name"]) -> typing.Literal["name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_stacktrace", b"has_stacktrace"]) -> typing.Literal["stacktrace"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_state", b"has_state"]) -> typing.Literal["state"] | None: ... + +global___Thread = Thread + +@typing.final +class Tracecontext(google.protobuf.message.Message): + """ + Trace context + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class TracecontextData(google.protobuf.message.Message): + """ + Arbitrary additional data on a trace. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class TracecontextDataPreviousroute(google.protobuf.message.Message): + """ + The previous route in the application + + Set by React Native SDK. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAME_FIELD_NUMBER: builtins.int + PARAMS_FIELD_NUMBER: builtins.int + name: builtins.str + @property + def params(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + name: builtins.str = ..., + params: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_name", b"has_name", "has_params", b"has_params", "name", b"name", "params", b"params"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_name", b"has_name", "has_params", b"has_params", "name", b"name", "params", b"params"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_name", b"has_name"]) -> typing.Literal["name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_params", b"has_params"]) -> typing.Literal["params"] | None: ... + + @typing.final + class TracecontextDataRoute(google.protobuf.message.Message): + """ + The current route in the application. + + Set by React Native SDK. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAME_FIELD_NUMBER: builtins.int + PARAMS_FIELD_NUMBER: builtins.int + name: builtins.str + @property + def params(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + name: builtins.str = ..., + params: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_name", b"has_name", "has_params", b"has_params", "name", b"name", "params", b"params"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_name", b"has_name", "has_params", b"has_params", "name", b"name", "params", b"params"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_name", b"has_name"]) -> typing.Literal["name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_params", b"has_params"]) -> typing.Literal["params"] | None: ... + + PREVIOUS_ROUTE_FIELD_NUMBER: builtins.int + ROUTE_FIELD_NUMBER: builtins.int + @property + def previous_route(self) -> global___Tracecontext.TracecontextData.TracecontextDataPreviousroute: ... + @property + def route(self) -> global___Tracecontext.TracecontextData.TracecontextDataRoute: ... + def __init__( + self, + *, + previous_route: global___Tracecontext.TracecontextData.TracecontextDataPreviousroute | None = ..., + route: global___Tracecontext.TracecontextData.TracecontextDataRoute | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_previous_route", b"has_previous_route", "has_route", b"has_route", "previous_route", b"previous_route", "route", b"route"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_previous_route", b"has_previous_route", "has_route", b"has_route", "previous_route", b"previous_route", "route", b"route"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_previous_route", b"has_previous_route"]) -> typing.Literal["previous_route"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_route", b"has_route"]) -> typing.Literal["route"] | None: ... + + CLIENT_SAMPLE_RATE_FIELD_NUMBER: builtins.int + DATA_FIELD_NUMBER: builtins.int + EXCLUSIVE_TIME_FIELD_NUMBER: builtins.int + OP_FIELD_NUMBER: builtins.int + ORIGIN_FIELD_NUMBER: builtins.int + PARENT_SPAN_ID_FIELD_NUMBER: builtins.int + SAMPLED_FIELD_NUMBER: builtins.int + SPAN_ID_FIELD_NUMBER: builtins.int + STATUS_FIELD_NUMBER: builtins.int + TRACE_ID_FIELD_NUMBER: builtins.int + client_sample_rate: builtins.float + exclusive_time: builtins.float + op: builtins.str + origin: builtins.str + parent_span_id: builtins.str + sampled: builtins.bool + span_id: builtins.str + status: builtins.str + trace_id: builtins.str + @property + def data(self) -> global___Tracecontext.TracecontextData: ... + def __init__( + self, + *, + client_sample_rate: builtins.float = ..., + data: global___Tracecontext.TracecontextData | None = ..., + exclusive_time: builtins.float = ..., + op: builtins.str = ..., + origin: builtins.str = ..., + parent_span_id: builtins.str = ..., + sampled: builtins.bool = ..., + span_id: builtins.str = ..., + status: builtins.str = ..., + trace_id: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["client_sample_rate", b"client_sample_rate", "data", b"data", "exclusive_time", b"exclusive_time", "has_client_sample_rate", b"has_client_sample_rate", "has_data", b"has_data", "has_exclusive_time", b"has_exclusive_time", "has_op", b"has_op", "has_origin", b"has_origin", "has_parent_span_id", b"has_parent_span_id", "has_sampled", b"has_sampled", "has_status", b"has_status", "op", b"op", "origin", b"origin", "parent_span_id", b"parent_span_id", "sampled", b"sampled", "status", b"status"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["client_sample_rate", b"client_sample_rate", "data", b"data", "exclusive_time", b"exclusive_time", "has_client_sample_rate", b"has_client_sample_rate", "has_data", b"has_data", "has_exclusive_time", b"has_exclusive_time", "has_op", b"has_op", "has_origin", b"has_origin", "has_parent_span_id", b"has_parent_span_id", "has_sampled", b"has_sampled", "has_status", b"has_status", "op", b"op", "origin", b"origin", "parent_span_id", b"parent_span_id", "sampled", b"sampled", "span_id", b"span_id", "status", b"status", "trace_id", b"trace_id"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_client_sample_rate", b"has_client_sample_rate"]) -> typing.Literal["client_sample_rate"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_data", b"has_data"]) -> typing.Literal["data"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_exclusive_time", b"has_exclusive_time"]) -> typing.Literal["exclusive_time"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_op", b"has_op"]) -> typing.Literal["op"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_origin", b"has_origin"]) -> typing.Literal["origin"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_parent_span_id", b"has_parent_span_id"]) -> typing.Literal["parent_span_id"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_sampled", b"has_sampled"]) -> typing.Literal["sampled"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_status", b"has_status"]) -> typing.Literal["status"] | None: ... + +global___Tracecontext = Tracecontext + +@typing.final +class Transactioninfo(google.protobuf.message.Message): + """ + Additional information about the name of the transaction. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class TransactioninfoChanges(google.protobuf.message.Message): + """ + A list of changes prior to the final transaction name. + + This list must be empty if the transaction name is set at the beginning of the transaction + and never changed. There is no placeholder entry for the initial transaction name. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PROPAGATIONS_FIELD_NUMBER: builtins.int + SOURCE_FIELD_NUMBER: builtins.int + TIMESTAMP_FIELD_NUMBER: builtins.int + propagations: builtins.int + source: builtins.str + @property + def timestamp(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + propagations: builtins.int = ..., + source: builtins.str = ..., + timestamp: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_propagations", b"has_propagations", "has_source", b"has_source", "has_timestamp", b"has_timestamp", "propagations", b"propagations", "source", b"source", "timestamp", b"timestamp"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_propagations", b"has_propagations", "has_source", b"has_source", "has_timestamp", b"has_timestamp", "propagations", b"propagations", "source", b"source", "timestamp", b"timestamp"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_propagations", b"has_propagations"]) -> typing.Literal["propagations"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_source", b"has_source"]) -> typing.Literal["source"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_timestamp", b"has_timestamp"]) -> typing.Literal["timestamp"] | None: ... + + CHANGES_FIELD_NUMBER: builtins.int + ORIGINAL_FIELD_NUMBER: builtins.int + PROPAGATIONS_FIELD_NUMBER: builtins.int + SOURCE_FIELD_NUMBER: builtins.int + original: builtins.str + propagations: builtins.int + source: builtins.str + @property + def changes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Transactioninfo.TransactioninfoChanges]: ... + def __init__( + self, + *, + changes: collections.abc.Iterable[global___Transactioninfo.TransactioninfoChanges] | None = ..., + original: builtins.str = ..., + propagations: builtins.int = ..., + source: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_original", b"has_original", "has_propagations", b"has_propagations", "has_source", b"has_source", "original", b"original", "propagations", b"propagations", "source", b"source"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["changes", b"changes", "has_original", b"has_original", "has_propagations", b"has_propagations", "has_source", b"has_source", "original", b"original", "propagations", b"propagations", "source", b"source"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_original", b"has_original"]) -> typing.Literal["original"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_propagations", b"has_propagations"]) -> typing.Literal["propagations"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_source", b"has_source"]) -> typing.Literal["source"] | None: ... + +global___Transactioninfo = Transactioninfo + +@typing.final +class Transactionnamechange(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PROPAGATIONS_FIELD_NUMBER: builtins.int + SOURCE_FIELD_NUMBER: builtins.int + TIMESTAMP_FIELD_NUMBER: builtins.int + propagations: builtins.int + source: builtins.str + @property + def timestamp(self) -> google.protobuf.struct_pb2.Value: ... + def __init__( + self, + *, + propagations: builtins.int = ..., + source: builtins.str = ..., + timestamp: google.protobuf.struct_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["has_propagations", b"has_propagations", "has_source", b"has_source", "has_timestamp", b"has_timestamp", "propagations", b"propagations", "source", b"source", "timestamp", b"timestamp"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["has_propagations", b"has_propagations", "has_source", b"has_source", "has_timestamp", b"has_timestamp", "propagations", b"propagations", "source", b"source", "timestamp", b"timestamp"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_propagations", b"has_propagations"]) -> typing.Literal["propagations"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_source", b"has_source"]) -> typing.Literal["source"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_timestamp", b"has_timestamp"]) -> typing.Literal["timestamp"] | None: ... + +global___Transactionnamechange = Transactionnamechange + +@typing.final +class User(google.protobuf.message.Message): + """ + Information about the user who triggered an event. + + ```json + { + "user": { + "id": "unique_id", + "username": "my_user", + "email": "foo@example.com", + "ip_address": "127.0.0.1", + "subscription": "basic" + } + } + ``` + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class UserGeo(google.protobuf.message.Message): + """ + Approximate geographical location of the end user or device. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CITY_FIELD_NUMBER: builtins.int + COUNTRY_CODE_FIELD_NUMBER: builtins.int + REGION_FIELD_NUMBER: builtins.int + SUBDIVISION_FIELD_NUMBER: builtins.int + city: builtins.str + country_code: builtins.str + region: builtins.str + subdivision: builtins.str + def __init__( + self, + *, + city: builtins.str = ..., + country_code: builtins.str = ..., + region: builtins.str = ..., + subdivision: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["city", b"city", "country_code", b"country_code", "has_city", b"has_city", "has_country_code", b"has_country_code", "has_region", b"has_region", "has_subdivision", b"has_subdivision", "region", b"region", "subdivision", b"subdivision"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["city", b"city", "country_code", b"country_code", "has_city", b"has_city", "has_country_code", b"has_country_code", "has_region", b"has_region", "has_subdivision", b"has_subdivision", "region", b"region", "subdivision", b"subdivision"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_city", b"has_city"]) -> typing.Literal["city"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_country_code", b"has_country_code"]) -> typing.Literal["country_code"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_region", b"has_region"]) -> typing.Literal["region"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_subdivision", b"has_subdivision"]) -> typing.Literal["subdivision"] | None: ... + + DATA_FIELD_NUMBER: builtins.int + EMAIL_FIELD_NUMBER: builtins.int + GEO_FIELD_NUMBER: builtins.int + ID_FIELD_NUMBER: builtins.int + IP_ADDRESS_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + SEGMENT_FIELD_NUMBER: builtins.int + SENTRY_USER_FIELD_NUMBER: builtins.int + USERNAME_FIELD_NUMBER: builtins.int + email: builtins.str + id: builtins.str + ip_address: builtins.str + name: builtins.str + segment: builtins.str + sentry_user: builtins.str + username: builtins.str + @property + def data(self) -> google.protobuf.struct_pb2.Value: ... + @property + def geo(self) -> global___User.UserGeo: ... + def __init__( + self, + *, + data: google.protobuf.struct_pb2.Value | None = ..., + email: builtins.str = ..., + geo: global___User.UserGeo | None = ..., + id: builtins.str = ..., + ip_address: builtins.str = ..., + name: builtins.str = ..., + segment: builtins.str = ..., + sentry_user: builtins.str = ..., + username: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["data", b"data", "email", b"email", "geo", b"geo", "has_data", b"has_data", "has_email", b"has_email", "has_geo", b"has_geo", "has_id", b"has_id", "has_ip_address", b"has_ip_address", "has_name", b"has_name", "has_segment", b"has_segment", "has_sentry_user", b"has_sentry_user", "has_username", b"has_username", "id", b"id", "ip_address", b"ip_address", "name", b"name", "segment", b"segment", "sentry_user", b"sentry_user", "username", b"username"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["data", b"data", "email", b"email", "geo", b"geo", "has_data", b"has_data", "has_email", b"has_email", "has_geo", b"has_geo", "has_id", b"has_id", "has_ip_address", b"has_ip_address", "has_name", b"has_name", "has_segment", b"has_segment", "has_sentry_user", b"has_sentry_user", "has_username", b"has_username", "id", b"id", "ip_address", b"ip_address", "name", b"name", "segment", b"segment", "sentry_user", b"sentry_user", "username", b"username"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_data", b"has_data"]) -> typing.Literal["data"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_email", b"has_email"]) -> typing.Literal["email"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_geo", b"has_geo"]) -> typing.Literal["geo"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_id", b"has_id"]) -> typing.Literal["id"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_ip_address", b"has_ip_address"]) -> typing.Literal["ip_address"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_name", b"has_name"]) -> typing.Literal["name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_segment", b"has_segment"]) -> typing.Literal["segment"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_sentry_user", b"has_sentry_user"]) -> typing.Literal["sentry_user"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_username", b"has_username"]) -> typing.Literal["username"] | None: ... + +global___User = User + +@typing.final +class Userreportv2Context(google.protobuf.message.Message): + """ + Feedback context. + + This contexts contains user feedback specific attributes. + We don't PII scrub contact_email as that is provided by the user. + TODO(jferg): rename to FeedbackContext once old UserReport logic is deprecated. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CONTACT_EMAIL_FIELD_NUMBER: builtins.int + MESSAGE_FIELD_NUMBER: builtins.int + contact_email: builtins.str + message: builtins.str + def __init__( + self, + *, + contact_email: builtins.str = ..., + message: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["contact_email", b"contact_email", "has_contact_email", b"has_contact_email", "has_message", b"has_message", "message", b"message"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["contact_email", b"contact_email", "has_contact_email", b"has_contact_email", "has_message", b"has_message", "message", b"message"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_contact_email", b"has_contact_email"]) -> typing.Literal["contact_email"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["has_message", b"has_message"]) -> typing.Literal["message"] | None: ... + +global___Userreportv2Context = Userreportv2Context diff --git a/py/sentry_protos/relay/v1/event_pb2_grpc.py b/py/sentry_protos/relay/v1/event_pb2_grpc.py new file mode 100644 index 00000000..5d79e8a2 --- /dev/null +++ b/py/sentry_protos/relay/v1/event_pb2_grpc.py @@ -0,0 +1,29 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.65.4' +GRPC_VERSION = grpc.__version__ +EXPECTED_ERROR_RELEASE = '1.66.0' +SCHEDULED_RELEASE_DATE = 'August 6, 2024' +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + warnings.warn( + f'The grpc package installed is at version {GRPC_VERSION},' + + f' but the generated code in sentry_protos/relay/v1/event_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + + f' This warning will become an error in {EXPECTED_ERROR_RELEASE},' + + f' scheduled for release on {SCHEDULED_RELEASE_DATE}.', + RuntimeWarning + ) diff --git a/py/sentry_protos/relay/v1/event_pb2_grpc.pyi b/py/sentry_protos/relay/v1/event_pb2_grpc.pyi new file mode 100644 index 00000000..a6a9cff9 --- /dev/null +++ b/py/sentry_protos/relay/v1/event_pb2_grpc.pyi @@ -0,0 +1,17 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import grpc +import grpc.aio +import typing + +_T = typing.TypeVar("_T") + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg] + ... diff --git a/py/sentry_protos/seer/__init__.py b/py/sentry_protos/seer/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/py/sentry_protos/seer/v1/__init__.py b/py/sentry_protos/seer/v1/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/py/sentry_protos/seer/v1/common_pb2.py b/py/sentry_protos/seer/v1/common_pb2.py new file mode 100644 index 00000000..06a03669 --- /dev/null +++ b/py/sentry_protos/seer/v1/common_pb2.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: sentry_protos/seer/v1/common.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"sentry_protos/seer/v1/common.proto\x12\x15sentry_protos.seer.v1\x1a\x1cgoogle/protobuf/struct.proto\"I\n\x0fSentryEventData\x12\r\n\x05title\x18\x01 \x01(\t\x12\'\n\x07\x65ntries\x18\x02 \x03(\x0b\x32\x16.google.protobuf.Value\"s\n\x0cIssueDetails\x12\n\n\x02id\x18\x01 \x01(\x04\x12\r\n\x05title\x18\x02 \x01(\t\x12\x10\n\x08short_id\x18\x03 \x01(\t\x12\x36\n\x06\x65vents\x18\x04 \x03(\x0b\x32&.sentry_protos.seer.v1.SentryEventDatab\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sentry_protos.seer.v1.common_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_SENTRYEVENTDATA']._serialized_start=91 + _globals['_SENTRYEVENTDATA']._serialized_end=164 + _globals['_ISSUEDETAILS']._serialized_start=166 + _globals['_ISSUEDETAILS']._serialized_end=281 +# @@protoc_insertion_point(module_scope) diff --git a/py/sentry_protos/seer/v1/common_pb2.pyi b/py/sentry_protos/seer/v1/common_pb2.pyi new file mode 100644 index 00000000..3be65ede --- /dev/null +++ b/py/sentry_protos/seer/v1/common_pb2.pyi @@ -0,0 +1,59 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +Common models used by multiple services""" + +import builtins +import collections.abc +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.message +import google.protobuf.struct_pb2 +import typing + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class SentryEventData(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + TITLE_FIELD_NUMBER: builtins.int + ENTRIES_FIELD_NUMBER: builtins.int + title: builtins.str + @property + def entries(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[google.protobuf.struct_pb2.Value]: ... + def __init__( + self, + *, + title: builtins.str = ..., + entries: collections.abc.Iterable[google.protobuf.struct_pb2.Value] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["entries", b"entries", "title", b"title"]) -> None: ... + +global___SentryEventData = SentryEventData + +@typing.final +class IssueDetails(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ID_FIELD_NUMBER: builtins.int + TITLE_FIELD_NUMBER: builtins.int + SHORT_ID_FIELD_NUMBER: builtins.int + EVENTS_FIELD_NUMBER: builtins.int + id: builtins.int + title: builtins.str + short_id: builtins.str + """optional""" + @property + def events(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SentryEventData]: ... + def __init__( + self, + *, + id: builtins.int = ..., + title: builtins.str = ..., + short_id: builtins.str = ..., + events: collections.abc.Iterable[global___SentryEventData] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["events", b"events", "id", b"id", "short_id", b"short_id", "title", b"title"]) -> None: ... + +global___IssueDetails = IssueDetails diff --git a/py/sentry_protos/seer/v1/common_pb2_grpc.py b/py/sentry_protos/seer/v1/common_pb2_grpc.py new file mode 100644 index 00000000..f2f8853c --- /dev/null +++ b/py/sentry_protos/seer/v1/common_pb2_grpc.py @@ -0,0 +1,29 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.65.4' +GRPC_VERSION = grpc.__version__ +EXPECTED_ERROR_RELEASE = '1.66.0' +SCHEDULED_RELEASE_DATE = 'August 6, 2024' +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + warnings.warn( + f'The grpc package installed is at version {GRPC_VERSION},' + + f' but the generated code in sentry_protos/seer/v1/common_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + + f' This warning will become an error in {EXPECTED_ERROR_RELEASE},' + + f' scheduled for release on {SCHEDULED_RELEASE_DATE}.', + RuntimeWarning + ) diff --git a/py/sentry_protos/seer/v1/common_pb2_grpc.pyi b/py/sentry_protos/seer/v1/common_pb2_grpc.pyi new file mode 100644 index 00000000..4ce971c5 --- /dev/null +++ b/py/sentry_protos/seer/v1/common_pb2_grpc.pyi @@ -0,0 +1,17 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +Common models used by multiple services""" + +import abc +import collections.abc +import grpc +import grpc.aio +import typing + +_T = typing.TypeVar("_T") + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg] + ... diff --git a/py/sentry_protos/seer/v1/summarize_pb2.py b/py/sentry_protos/seer/v1/summarize_pb2.py new file mode 100644 index 00000000..16d26feb --- /dev/null +++ b/py/sentry_protos/seer/v1/summarize_pb2.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: sentry_protos/seer/v1/summarize.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from sentry_protos.seer.v1 import common_pb2 as sentry__protos_dot_seer_dot_v1_dot_common__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%sentry_protos/seer/v1/summarize.proto\x12\x15sentry_protos.seer.v1\x1a\"sentry_protos/seer/v1/common.proto\"\xab\x01\n\x10SummarizeRequest\x12\x10\n\x08group_id\x18\x01 \x01(\x04\x12\x17\n\x0forganization_id\x18\x02 \x01(\x04\x12\x19\n\x11organization_slug\x18\x03 \x01(\t\x12\x12\n\nproject_id\x18\x04 \x01(\x04\x12=\n\x10\x63onnected_issues\x18\x05 \x03(\x0b\x32#.sentry_protos.seer.v1.IssueDetails\"X\n\x11SummarizeResponse\x12\x10\n\x08group_id\x18\x01 \x01(\x04\x12\x10\n\x08headline\x18\x02 \x01(\t\x12\x0f\n\x07summary\x18\x03 \x01(\t\x12\x0e\n\x06impact\x18\x04 \x01(\t2u\n\x13IssueSummaryService\x12^\n\tSummarize\x12\'.sentry_protos.seer.v1.SummarizeRequest\x1a(.sentry_protos.seer.v1.SummarizeResponseb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sentry_protos.seer.v1.summarize_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_SUMMARIZEREQUEST']._serialized_start=101 + _globals['_SUMMARIZEREQUEST']._serialized_end=272 + _globals['_SUMMARIZERESPONSE']._serialized_start=274 + _globals['_SUMMARIZERESPONSE']._serialized_end=362 + _globals['_ISSUESUMMARYSERVICE']._serialized_start=364 + _globals['_ISSUESUMMARYSERVICE']._serialized_end=481 +# @@protoc_insertion_point(module_scope) diff --git a/py/sentry_protos/seer/v1/summarize_pb2.pyi b/py/sentry_protos/seer/v1/summarize_pb2.pyi new file mode 100644 index 00000000..f8e2fc2d --- /dev/null +++ b/py/sentry_protos/seer/v1/summarize_pb2.pyi @@ -0,0 +1,66 @@ +""" +@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.seer.v1.common_pb2 +import typing + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class SummarizeRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + GROUP_ID_FIELD_NUMBER: builtins.int + ORGANIZATION_ID_FIELD_NUMBER: builtins.int + ORGANIZATION_SLUG_FIELD_NUMBER: builtins.int + PROJECT_ID_FIELD_NUMBER: builtins.int + CONNECTED_ISSUES_FIELD_NUMBER: builtins.int + group_id: builtins.int + organization_id: builtins.int + organization_slug: builtins.str + project_id: builtins.int + @property + def connected_issues(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[sentry_protos.seer.v1.common_pb2.IssueDetails]: ... + def __init__( + self, + *, + group_id: builtins.int = ..., + organization_id: builtins.int = ..., + organization_slug: builtins.str = ..., + project_id: builtins.int = ..., + connected_issues: collections.abc.Iterable[sentry_protos.seer.v1.common_pb2.IssueDetails] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["connected_issues", b"connected_issues", "group_id", b"group_id", "organization_id", b"organization_id", "organization_slug", b"organization_slug", "project_id", b"project_id"]) -> None: ... + +global___SummarizeRequest = SummarizeRequest + +@typing.final +class SummarizeResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + GROUP_ID_FIELD_NUMBER: builtins.int + HEADLINE_FIELD_NUMBER: builtins.int + SUMMARY_FIELD_NUMBER: builtins.int + IMPACT_FIELD_NUMBER: builtins.int + group_id: builtins.int + headline: builtins.str + summary: builtins.str + impact: builtins.str + def __init__( + self, + *, + group_id: builtins.int = ..., + headline: builtins.str = ..., + summary: builtins.str = ..., + impact: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["group_id", b"group_id", "headline", b"headline", "impact", b"impact", "summary", b"summary"]) -> None: ... + +global___SummarizeResponse = SummarizeResponse diff --git a/py/sentry_protos/seer/v1/summarize_pb2_grpc.py b/py/sentry_protos/seer/v1/summarize_pb2_grpc.py new file mode 100644 index 00000000..93326c90 --- /dev/null +++ b/py/sentry_protos/seer/v1/summarize_pb2_grpc.py @@ -0,0 +1,102 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + +from sentry_protos.seer.v1 import summarize_pb2 as sentry__protos_dot_seer_dot_v1_dot_summarize__pb2 + +GRPC_GENERATED_VERSION = '1.65.4' +GRPC_VERSION = grpc.__version__ +EXPECTED_ERROR_RELEASE = '1.66.0' +SCHEDULED_RELEASE_DATE = 'August 6, 2024' +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + warnings.warn( + f'The grpc package installed is at version {GRPC_VERSION},' + + f' but the generated code in sentry_protos/seer/v1/summarize_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + + f' This warning will become an error in {EXPECTED_ERROR_RELEASE},' + + f' scheduled for release on {SCHEDULED_RELEASE_DATE}.', + RuntimeWarning + ) + + +class IssueSummaryServiceStub(object): + """Missing associated documentation comment in .proto file.""" + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.Summarize = channel.unary_unary( + '/sentry_protos.seer.v1.IssueSummaryService/Summarize', + request_serializer=sentry__protos_dot_seer_dot_v1_dot_summarize__pb2.SummarizeRequest.SerializeToString, + response_deserializer=sentry__protos_dot_seer_dot_v1_dot_summarize__pb2.SummarizeResponse.FromString, + _registered_method=True) + + +class IssueSummaryServiceServicer(object): + """Missing associated documentation comment in .proto file.""" + + def Summarize(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_IssueSummaryServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'Summarize': grpc.unary_unary_rpc_method_handler( + servicer.Summarize, + request_deserializer=sentry__protos_dot_seer_dot_v1_dot_summarize__pb2.SummarizeRequest.FromString, + response_serializer=sentry__protos_dot_seer_dot_v1_dot_summarize__pb2.SummarizeResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'sentry_protos.seer.v1.IssueSummaryService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('sentry_protos.seer.v1.IssueSummaryService', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class IssueSummaryService(object): + """Missing associated documentation comment in .proto file.""" + + @staticmethod + def Summarize(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/sentry_protos.seer.v1.IssueSummaryService/Summarize', + sentry__protos_dot_seer_dot_v1_dot_summarize__pb2.SummarizeRequest.SerializeToString, + sentry__protos_dot_seer_dot_v1_dot_summarize__pb2.SummarizeResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/py/sentry_protos/seer/v1/summarize_pb2_grpc.pyi b/py/sentry_protos/seer/v1/summarize_pb2_grpc.pyi new file mode 100644 index 00000000..f17ba132 --- /dev/null +++ b/py/sentry_protos/seer/v1/summarize_pb2_grpc.pyi @@ -0,0 +1,41 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import grpc +import grpc.aio +import sentry_protos.seer.v1.summarize_pb2 +import typing + +_T = typing.TypeVar("_T") + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg] + ... + +class IssueSummaryServiceStub: + def __init__(self, channel: typing.Union[grpc.Channel, grpc.aio.Channel]) -> None: ... + Summarize: grpc.UnaryUnaryMultiCallable[ + sentry_protos.seer.v1.summarize_pb2.SummarizeRequest, + sentry_protos.seer.v1.summarize_pb2.SummarizeResponse, + ] + +class IssueSummaryServiceAsyncStub: + Summarize: grpc.aio.UnaryUnaryMultiCallable[ + sentry_protos.seer.v1.summarize_pb2.SummarizeRequest, + sentry_protos.seer.v1.summarize_pb2.SummarizeResponse, + ] + +class IssueSummaryServiceServicer(metaclass=abc.ABCMeta): + @abc.abstractmethod + def Summarize( + self, + request: sentry_protos.seer.v1.summarize_pb2.SummarizeRequest, + context: _ServicerContext, + ) -> typing.Union[sentry_protos.seer.v1.summarize_pb2.SummarizeResponse, collections.abc.Awaitable[sentry_protos.seer.v1.summarize_pb2.SummarizeResponse]]: ... + +def add_IssueSummaryServiceServicer_to_server(servicer: IssueSummaryServiceServicer, server: typing.Union[grpc.Server, grpc.aio.Server]) -> None: ... diff --git a/py/sentry_protos/sentry/__init__.py b/py/sentry_protos/sentry/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/py/sentry_protos/sentry/v1/__init__.py b/py/sentry_protos/sentry/v1/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/py/sentry_protos/sentry/v1/taskworker_pb2.py b/py/sentry_protos/sentry/v1/taskworker_pb2.py new file mode 100644 index 00000000..656ff9db --- /dev/null +++ b/py/sentry_protos/sentry/v1/taskworker_pb2.py @@ -0,0 +1,81 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: sentry_protos/sentry/v1/taskworker.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n(sentry_protos/sentry/v1/taskworker.proto\x12\x17sentry_protos.sentry.v1\x1a\x19google/protobuf/any.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xde\x01\n\nRetryState\x12\x10\n\x08\x61ttempts\x18\x01 \x01(\x05\x12\x0c\n\x04kind\x18\x02 \x01(\t\x12\"\n\x15\x64iscard_after_attempt\x18\x03 \x01(\x05H\x00\x88\x01\x01\x12%\n\x18\x64\x65\x61\x64letter_after_attempt\x18\x04 \x01(\x05H\x01\x88\x01\x01\x12\x19\n\x0c\x61t_most_once\x18\x05 \x01(\x08H\x02\x88\x01\x01:\x02\x18\x01\x42\x18\n\x16_discard_after_attemptB\x1b\n\x19_deadletter_after_attemptB\x0f\n\r_at_most_once\"\xe5\x03\n\x0eTaskActivation\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12\x10\n\x08taskname\x18\x03 \x01(\t\x12\x12\n\nparameters\x18\x04 \x01(\t\x12\x45\n\x07headers\x18\x05 \x03(\x0b\x32\x34.sentry_protos.sentry.v1.TaskActivation.HeadersEntry\x12/\n\x0breceived_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x35\n\x08\x64\x65\x61\x64line\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x02\x18\x01H\x00\x88\x01\x01\x12\x38\n\x0bretry_state\x18\x08 \x01(\x0b\x32#.sentry_protos.sentry.v1.RetryState\x12$\n\x1cprocessing_deadline_duration\x18\t \x01(\x04\x12\x14\n\x07\x65xpires\x18\n \x01(\x04H\x01\x88\x01\x01\x12\x12\n\x05\x64\x65lay\x18\x0b \x01(\x04H\x02\x88\x01\x01\x1a.\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:\x02\x18\x01\x42\x0b\n\t_deadlineB\n\n\x08_expiresB\x08\n\x06_delay\"\xdb\x02\n\x12InflightActivation\x12;\n\nactivation\x18\x01 \x01(\x0b\x32\'.sentry_protos.sentry.v1.TaskActivation\x12=\n\x06status\x18\x02 \x01(\x0e\x32-.sentry_protos.sentry.v1.TaskActivationStatus\x12\x0e\n\x06offset\x18\x03 \x01(\x03\x12,\n\x08\x61\x64\x64\x65\x64_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x31\n\rdeadletter_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12<\n\x13processing_deadline\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x88\x01\x01:\x02\x18\x01\x42\x16\n\x14_processing_deadline\"Q\n\x05\x45rror\x12\x0c\n\x04\x63ode\x18\x01 \x01(\x05\x12\x0f\n\x07message\x18\x02 \x01(\t\x12%\n\x07\x64\x65tails\x18\x03 \x03(\x0b\x32\x14.google.protobuf.Any:\x02\x18\x01\":\n\x0eGetTaskRequest\x12\x16\n\tnamespace\x18\x01 \x01(\tH\x00\x88\x01\x01:\x02\x18\x01\x42\x0c\n\n_namespace\"\x98\x01\n\x0fGetTaskResponse\x12:\n\x04task\x18\x01 \x01(\x0b\x32\'.sentry_protos.sentry.v1.TaskActivationH\x00\x88\x01\x01\x12\x32\n\x05\x65rror\x18\x03 \x01(\x0b\x32\x1e.sentry_protos.sentry.v1.ErrorH\x01\x88\x01\x01:\x02\x18\x01\x42\x07\n\x05_taskB\x08\n\x06_error\"9\n\rFetchNextTask\x12\x16\n\tnamespace\x18\x01 \x01(\tH\x00\x88\x01\x01:\x02\x18\x01\x42\x0c\n\n_namespace\"\xab\x02\n\x14SetTaskStatusRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12=\n\x06status\x18\x03 \x01(\x0e\x32-.sentry_protos.sentry.v1.TaskActivationStatus\x12\x1b\n\nfetch_next\x18\x04 \x01(\x08\x42\x02\x18\x01H\x00\x88\x01\x01\x12%\n\x14\x66\x65tch_next_namespace\x18\x05 \x01(\tB\x02\x18\x01H\x01\x88\x01\x01\x12\x44\n\x0f\x66\x65tch_next_task\x18\x06 \x01(\x0b\x32&.sentry_protos.sentry.v1.FetchNextTaskH\x02\x88\x01\x01:\x02\x18\x01\x42\r\n\x0b_fetch_nextB\x17\n\x15_fetch_next_namespaceB\x12\n\x10_fetch_next_task\"\x9e\x01\n\x15SetTaskStatusResponse\x12:\n\x04task\x18\x01 \x01(\x0b\x32\'.sentry_protos.sentry.v1.TaskActivationH\x00\x88\x01\x01\x12\x32\n\x05\x65rror\x18\x03 \x01(\x0b\x32\x1e.sentry_protos.sentry.v1.ErrorH\x01\x88\x01\x01:\x02\x18\x01\x42\x07\n\x05_taskB\x08\n\x06_error*\xf8\x01\n\x14TaskActivationStatus\x12&\n\"TASK_ACTIVATION_STATUS_UNSPECIFIED\x10\x00\x12\"\n\x1eTASK_ACTIVATION_STATUS_PENDING\x10\x01\x12%\n!TASK_ACTIVATION_STATUS_PROCESSING\x10\x02\x12\"\n\x1eTASK_ACTIVATION_STATUS_FAILURE\x10\x03\x12 \n\x1cTASK_ACTIVATION_STATUS_RETRY\x10\x04\x12#\n\x1fTASK_ACTIVATION_STATUS_COMPLETE\x10\x05\x1a\x02\x18\x01\x32\xe8\x01\n\x0f\x43onsumerService\x12^\n\x07GetTask\x12\'.sentry_protos.sentry.v1.GetTaskRequest\x1a(.sentry_protos.sentry.v1.GetTaskResponse\"\x00\x12p\n\rSetTaskStatus\x12-.sentry_protos.sentry.v1.SetTaskStatusRequest\x1a..sentry_protos.sentry.v1.SetTaskStatusResponse\"\x00\x1a\x03\x88\x02\x01\x42\x03\xb8\x01\x01\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sentry_protos.sentry.v1.taskworker_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\270\001\001' + _globals['_TASKACTIVATIONSTATUS']._loaded_options = None + _globals['_TASKACTIVATIONSTATUS']._serialized_options = b'\030\001' + _globals['_RETRYSTATE']._loaded_options = None + _globals['_RETRYSTATE']._serialized_options = b'\030\001' + _globals['_TASKACTIVATION_HEADERSENTRY']._loaded_options = None + _globals['_TASKACTIVATION_HEADERSENTRY']._serialized_options = b'8\001' + _globals['_TASKACTIVATION'].fields_by_name['deadline']._loaded_options = None + _globals['_TASKACTIVATION'].fields_by_name['deadline']._serialized_options = b'\030\001' + _globals['_TASKACTIVATION']._loaded_options = None + _globals['_TASKACTIVATION']._serialized_options = b'\030\001' + _globals['_INFLIGHTACTIVATION']._loaded_options = None + _globals['_INFLIGHTACTIVATION']._serialized_options = b'\030\001' + _globals['_ERROR']._loaded_options = None + _globals['_ERROR']._serialized_options = b'\030\001' + _globals['_GETTASKREQUEST']._loaded_options = None + _globals['_GETTASKREQUEST']._serialized_options = b'\030\001' + _globals['_GETTASKRESPONSE']._loaded_options = None + _globals['_GETTASKRESPONSE']._serialized_options = b'\030\001' + _globals['_FETCHNEXTTASK']._loaded_options = None + _globals['_FETCHNEXTTASK']._serialized_options = b'\030\001' + _globals['_SETTASKSTATUSREQUEST'].fields_by_name['fetch_next']._loaded_options = None + _globals['_SETTASKSTATUSREQUEST'].fields_by_name['fetch_next']._serialized_options = b'\030\001' + _globals['_SETTASKSTATUSREQUEST'].fields_by_name['fetch_next_namespace']._loaded_options = None + _globals['_SETTASKSTATUSREQUEST'].fields_by_name['fetch_next_namespace']._serialized_options = b'\030\001' + _globals['_SETTASKSTATUSREQUEST']._loaded_options = None + _globals['_SETTASKSTATUSREQUEST']._serialized_options = b'\030\001' + _globals['_SETTASKSTATUSRESPONSE']._loaded_options = None + _globals['_SETTASKSTATUSRESPONSE']._serialized_options = b'\030\001' + _globals['_CONSUMERSERVICE']._loaded_options = None + _globals['_CONSUMERSERVICE']._serialized_options = b'\210\002\001' + _globals['_TASKACTIVATIONSTATUS']._serialized_start=2013 + _globals['_TASKACTIVATIONSTATUS']._serialized_end=2261 + _globals['_RETRYSTATE']._serialized_start=130 + _globals['_RETRYSTATE']._serialized_end=352 + _globals['_TASKACTIVATION']._serialized_start=355 + _globals['_TASKACTIVATION']._serialized_end=840 + _globals['_TASKACTIVATION_HEADERSENTRY']._serialized_start=755 + _globals['_TASKACTIVATION_HEADERSENTRY']._serialized_end=801 + _globals['_INFLIGHTACTIVATION']._serialized_start=843 + _globals['_INFLIGHTACTIVATION']._serialized_end=1190 + _globals['_ERROR']._serialized_start=1192 + _globals['_ERROR']._serialized_end=1273 + _globals['_GETTASKREQUEST']._serialized_start=1275 + _globals['_GETTASKREQUEST']._serialized_end=1333 + _globals['_GETTASKRESPONSE']._serialized_start=1336 + _globals['_GETTASKRESPONSE']._serialized_end=1488 + _globals['_FETCHNEXTTASK']._serialized_start=1490 + _globals['_FETCHNEXTTASK']._serialized_end=1547 + _globals['_SETTASKSTATUSREQUEST']._serialized_start=1550 + _globals['_SETTASKSTATUSREQUEST']._serialized_end=1849 + _globals['_SETTASKSTATUSRESPONSE']._serialized_start=1852 + _globals['_SETTASKSTATUSRESPONSE']._serialized_end=2010 + _globals['_CONSUMERSERVICE']._serialized_start=2264 + _globals['_CONSUMERSERVICE']._serialized_end=2496 +# @@protoc_insertion_point(module_scope) diff --git a/py/sentry_protos/sentry/v1/taskworker_pb2.pyi b/py/sentry_protos/sentry/v1/taskworker_pb2.pyi new file mode 100644 index 00000000..e8b3ba4a --- /dev/null +++ b/py/sentry_protos/sentry/v1/taskworker_pb2.pyi @@ -0,0 +1,394 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import collections.abc +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 sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +class _TaskActivationStatus: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _TaskActivationStatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_TaskActivationStatus.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + TASK_ACTIVATION_STATUS_UNSPECIFIED: _TaskActivationStatus.ValueType # 0 + TASK_ACTIVATION_STATUS_PENDING: _TaskActivationStatus.ValueType # 1 + TASK_ACTIVATION_STATUS_PROCESSING: _TaskActivationStatus.ValueType # 2 + TASK_ACTIVATION_STATUS_FAILURE: _TaskActivationStatus.ValueType # 3 + TASK_ACTIVATION_STATUS_RETRY: _TaskActivationStatus.ValueType # 4 + TASK_ACTIVATION_STATUS_COMPLETE: _TaskActivationStatus.ValueType # 5 + +class TaskActivationStatus(_TaskActivationStatus, metaclass=_TaskActivationStatusEnumTypeWrapper): ... + +TASK_ACTIVATION_STATUS_UNSPECIFIED: TaskActivationStatus.ValueType # 0 +TASK_ACTIVATION_STATUS_PENDING: TaskActivationStatus.ValueType # 1 +TASK_ACTIVATION_STATUS_PROCESSING: TaskActivationStatus.ValueType # 2 +TASK_ACTIVATION_STATUS_FAILURE: TaskActivationStatus.ValueType # 3 +TASK_ACTIVATION_STATUS_RETRY: TaskActivationStatus.ValueType # 4 +TASK_ACTIVATION_STATUS_COMPLETE: TaskActivationStatus.ValueType # 5 +global___TaskActivationStatus = TaskActivationStatus + +@typing.final +class RetryState(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ATTEMPTS_FIELD_NUMBER: builtins.int + KIND_FIELD_NUMBER: builtins.int + DISCARD_AFTER_ATTEMPT_FIELD_NUMBER: builtins.int + DEADLETTER_AFTER_ATTEMPT_FIELD_NUMBER: builtins.int + AT_MOST_ONCE_FIELD_NUMBER: builtins.int + attempts: builtins.int + """Current attempt number""" + kind: builtins.str + """The classname or adapter type for the retry policy""" + discard_after_attempt: builtins.int + """After this attempt the task should be discarded""" + deadletter_after_attempt: builtins.int + """After this attempt the task should be put in the dead-letter-queue.""" + at_most_once: builtins.bool + """Whether a task should be executed at most once.""" + def __init__( + self, + *, + attempts: builtins.int = ..., + kind: builtins.str = ..., + discard_after_attempt: builtins.int | None = ..., + deadletter_after_attempt: builtins.int | None = ..., + at_most_once: builtins.bool | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["_at_most_once", b"_at_most_once", "_deadletter_after_attempt", b"_deadletter_after_attempt", "_discard_after_attempt", b"_discard_after_attempt", "at_most_once", b"at_most_once", "deadletter_after_attempt", b"deadletter_after_attempt", "discard_after_attempt", b"discard_after_attempt"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["_at_most_once", b"_at_most_once", "_deadletter_after_attempt", b"_deadletter_after_attempt", "_discard_after_attempt", b"_discard_after_attempt", "at_most_once", b"at_most_once", "attempts", b"attempts", "deadletter_after_attempt", b"deadletter_after_attempt", "discard_after_attempt", b"discard_after_attempt", "kind", b"kind"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_at_most_once", b"_at_most_once"]) -> typing.Literal["at_most_once"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_deadletter_after_attempt", b"_deadletter_after_attempt"]) -> typing.Literal["deadletter_after_attempt"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_discard_after_attempt", b"_discard_after_attempt"]) -> typing.Literal["discard_after_attempt"] | None: ... + +global___RetryState = RetryState + +@typing.final +class TaskActivation(google.protobuf.message.Message): + """Task message that is stored in Kafka. + Once consumed, TaskActivations are wrapped with InflightActivation to track + additional state + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class HeadersEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str + def __init__( + self, + *, + key: builtins.str = ..., + value: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... + + ID_FIELD_NUMBER: builtins.int + NAMESPACE_FIELD_NUMBER: builtins.int + TASKNAME_FIELD_NUMBER: builtins.int + PARAMETERS_FIELD_NUMBER: builtins.int + HEADERS_FIELD_NUMBER: builtins.int + RECEIVED_AT_FIELD_NUMBER: builtins.int + DEADLINE_FIELD_NUMBER: builtins.int + RETRY_STATE_FIELD_NUMBER: builtins.int + PROCESSING_DEADLINE_DURATION_FIELD_NUMBER: builtins.int + EXPIRES_FIELD_NUMBER: builtins.int + DELAY_FIELD_NUMBER: builtins.int + id: builtins.str + """A GUID for the task. Used to update tasks""" + namespace: builtins.str + """The task namespace""" + taskname: builtins.str + """The name of the task. This name is resolved within the worker""" + parameters: builtins.str + """An opaque parameter collection. Could be JSON or protobuf encoded""" + processing_deadline_duration: builtins.int + """The duration in seconds that a worker has to complete task execution. + When an activation is moved from pending -> processing a result is expected + in this many seconds. + """ + expires: builtins.int + """The duration in seconds that a task has to start execution. + After received_at + expires has passed an activation is expired and will not be executed. + """ + delay: builtins.int + """The duration in seconds that a task must wait to begin execution after it is emitted. + After received_at + delay has passed, the activation will become pending. + """ + @property + def headers(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: + """A map of headers for the task.""" + + @property + def received_at(self) -> google.protobuf.timestamp_pb2.Timestamp: + """The timestamp a task was stored in Kafka""" + + @property + def deadline(self) -> google.protobuf.timestamp_pb2.Timestamp: + """Unused. Use expires instead.""" + + @property + def retry_state(self) -> global___RetryState: + """Retry state""" + + def __init__( + self, + *, + id: builtins.str = ..., + namespace: builtins.str = ..., + taskname: builtins.str = ..., + parameters: builtins.str = ..., + headers: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + received_at: google.protobuf.timestamp_pb2.Timestamp | None = ..., + deadline: google.protobuf.timestamp_pb2.Timestamp | None = ..., + retry_state: global___RetryState | None = ..., + processing_deadline_duration: builtins.int = ..., + expires: builtins.int | None = ..., + delay: builtins.int | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["_deadline", b"_deadline", "_delay", b"_delay", "_expires", b"_expires", "deadline", b"deadline", "delay", b"delay", "expires", b"expires", "received_at", b"received_at", "retry_state", b"retry_state"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["_deadline", b"_deadline", "_delay", b"_delay", "_expires", b"_expires", "deadline", b"deadline", "delay", b"delay", "expires", b"expires", "headers", b"headers", "id", b"id", "namespace", b"namespace", "parameters", b"parameters", "processing_deadline_duration", b"processing_deadline_duration", "received_at", b"received_at", "retry_state", b"retry_state", "taskname", b"taskname"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_deadline", b"_deadline"]) -> typing.Literal["deadline"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_delay", b"_delay"]) -> typing.Literal["delay"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_expires", b"_expires"]) -> typing.Literal["expires"] | None: ... + +global___TaskActivation = TaskActivation + +@typing.final +class InflightActivation(google.protobuf.message.Message): + """Once a TaskActivation has been received by the task consumer it is wrapped + with InflightActivation so that processing state can be tracked. + This proto might not be used as InflightActivations don't need to cross + process boundaries. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ACTIVATION_FIELD_NUMBER: builtins.int + STATUS_FIELD_NUMBER: builtins.int + OFFSET_FIELD_NUMBER: builtins.int + ADDED_AT_FIELD_NUMBER: builtins.int + DEADLETTER_AT_FIELD_NUMBER: builtins.int + PROCESSING_DEADLINE_FIELD_NUMBER: builtins.int + status: global___TaskActivationStatus.ValueType + """The current status""" + offset: builtins.int + """The original offset that the WorkerTask message had + Used to find contiguous blocks of completed tasks so that offsets + can be commit to Kafka + """ + @property + def activation(self) -> global___TaskActivation: + """The TaskActivation being tracked.""" + + @property + def added_at(self) -> google.protobuf.timestamp_pb2.Timestamp: + """The timestamp this task was added to PendingTask storage""" + + @property + def deadletter_at(self) -> google.protobuf.timestamp_pb2.Timestamp: + """The timestamp that this task expires and should be deadlettered.""" + + @property + def processing_deadline(self) -> google.protobuf.timestamp_pb2.Timestamp: + """The timestamp that processing is expected to be complete by. + If processing is not complete by this time, a retry will be attempted. + """ + + def __init__( + self, + *, + activation: global___TaskActivation | None = ..., + status: global___TaskActivationStatus.ValueType = ..., + offset: builtins.int = ..., + added_at: google.protobuf.timestamp_pb2.Timestamp | None = ..., + deadletter_at: google.protobuf.timestamp_pb2.Timestamp | None = ..., + processing_deadline: google.protobuf.timestamp_pb2.Timestamp | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["_processing_deadline", b"_processing_deadline", "activation", b"activation", "added_at", b"added_at", "deadletter_at", b"deadletter_at", "processing_deadline", b"processing_deadline"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["_processing_deadline", b"_processing_deadline", "activation", b"activation", "added_at", b"added_at", "deadletter_at", b"deadletter_at", "offset", b"offset", "processing_deadline", b"processing_deadline", "status", b"status"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["_processing_deadline", b"_processing_deadline"]) -> typing.Literal["processing_deadline"] | None: ... + +global___InflightActivation = InflightActivation + +@typing.final +class Error(google.protobuf.message.Message): + """////////////////////////// + RPC messages and services + ////////////////////////// + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CODE_FIELD_NUMBER: builtins.int + MESSAGE_FIELD_NUMBER: builtins.int + DETAILS_FIELD_NUMBER: builtins.int + code: builtins.int + """Taken directly from the grpc docs.""" + message: builtins.str + @property + def details(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[google.protobuf.any_pb2.Any]: + """A list of messages that carry any error details.""" + + def __init__( + self, + *, + code: builtins.int = ..., + message: builtins.str = ..., + details: collections.abc.Iterable[google.protobuf.any_pb2.Any] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["code", b"code", "details", b"details", "message", b"message"]) -> None: ... + +global___Error = Error + +@typing.final +class GetTaskRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAMESPACE_FIELD_NUMBER: builtins.int + namespace: builtins.str + def __init__( + self, + *, + namespace: builtins.str | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["_namespace", b"_namespace", "namespace", b"namespace"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["_namespace", b"_namespace", "namespace", b"namespace"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["_namespace", b"_namespace"]) -> typing.Literal["namespace"] | None: ... + +global___GetTaskRequest = GetTaskRequest + +@typing.final +class GetTaskResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + TASK_FIELD_NUMBER: builtins.int + ERROR_FIELD_NUMBER: builtins.int + @property + def task(self) -> global___TaskActivation: + """If there are no tasks available, these will be empty""" + + @property + def error(self) -> global___Error: ... + def __init__( + self, + *, + task: global___TaskActivation | None = ..., + error: global___Error | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["_error", b"_error", "_task", b"_task", "error", b"error", "task", b"task"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["_error", b"_error", "_task", b"_task", "error", b"error", "task", b"task"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_error", b"_error"]) -> typing.Literal["error"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_task", b"_task"]) -> typing.Literal["task"] | None: ... + +global___GetTaskResponse = GetTaskResponse + +@typing.final +class FetchNextTask(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAMESPACE_FIELD_NUMBER: builtins.int + namespace: builtins.str + def __init__( + self, + *, + namespace: builtins.str | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["_namespace", b"_namespace", "namespace", b"namespace"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["_namespace", b"_namespace", "namespace", b"namespace"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["_namespace", b"_namespace"]) -> typing.Literal["namespace"] | None: ... + +global___FetchNextTask = FetchNextTask + +@typing.final +class SetTaskStatusRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ID_FIELD_NUMBER: builtins.int + STATUS_FIELD_NUMBER: builtins.int + FETCH_NEXT_FIELD_NUMBER: builtins.int + FETCH_NEXT_NAMESPACE_FIELD_NUMBER: builtins.int + FETCH_NEXT_TASK_FIELD_NUMBER: builtins.int + id: builtins.str + status: global___TaskActivationStatus.ValueType + fetch_next: builtins.bool + """If fetch_next is provided, receive a new task in the response""" + fetch_next_namespace: builtins.str + @property + def fetch_next_task(self) -> global___FetchNextTask: ... + def __init__( + self, + *, + id: builtins.str = ..., + status: global___TaskActivationStatus.ValueType = ..., + fetch_next: builtins.bool | None = ..., + fetch_next_namespace: builtins.str | None = ..., + fetch_next_task: global___FetchNextTask | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["_fetch_next", b"_fetch_next", "_fetch_next_namespace", b"_fetch_next_namespace", "_fetch_next_task", b"_fetch_next_task", "fetch_next", b"fetch_next", "fetch_next_namespace", b"fetch_next_namespace", "fetch_next_task", b"fetch_next_task"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["_fetch_next", b"_fetch_next", "_fetch_next_namespace", b"_fetch_next_namespace", "_fetch_next_task", b"_fetch_next_task", "fetch_next", b"fetch_next", "fetch_next_namespace", b"fetch_next_namespace", "fetch_next_task", b"fetch_next_task", "id", b"id", "status", b"status"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_fetch_next", b"_fetch_next"]) -> typing.Literal["fetch_next"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_fetch_next_namespace", b"_fetch_next_namespace"]) -> typing.Literal["fetch_next_namespace"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_fetch_next_task", b"_fetch_next_task"]) -> typing.Literal["fetch_next_task"] | None: ... + +global___SetTaskStatusRequest = SetTaskStatusRequest + +@typing.final +class SetTaskStatusResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + TASK_FIELD_NUMBER: builtins.int + ERROR_FIELD_NUMBER: builtins.int + @property + def task(self) -> global___TaskActivation: + """The next task the worker should execute. Requires fetch_next to be set on the request.""" + + @property + def error(self) -> global___Error: ... + def __init__( + self, + *, + task: global___TaskActivation | None = ..., + error: global___Error | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["_error", b"_error", "_task", b"_task", "error", b"error", "task", b"task"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["_error", b"_error", "_task", b"_task", "error", b"error", "task", b"task"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_error", b"_error"]) -> typing.Literal["error"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_task", b"_task"]) -> typing.Literal["task"] | None: ... + +global___SetTaskStatusResponse = SetTaskStatusResponse diff --git a/py/sentry_protos/sentry/v1/taskworker_pb2_grpc.py b/py/sentry_protos/sentry/v1/taskworker_pb2_grpc.py new file mode 100644 index 00000000..6a1f5f51 --- /dev/null +++ b/py/sentry_protos/sentry/v1/taskworker_pb2_grpc.py @@ -0,0 +1,147 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + +from sentry_protos.sentry.v1 import taskworker_pb2 as sentry__protos_dot_sentry_dot_v1_dot_taskworker__pb2 + +GRPC_GENERATED_VERSION = '1.65.4' +GRPC_VERSION = grpc.__version__ +EXPECTED_ERROR_RELEASE = '1.66.0' +SCHEDULED_RELEASE_DATE = 'August 6, 2024' +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + warnings.warn( + f'The grpc package installed is at version {GRPC_VERSION},' + + f' but the generated code in sentry_protos/sentry/v1/taskworker_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + + f' This warning will become an error in {EXPECTED_ERROR_RELEASE},' + + f' scheduled for release on {SCHEDULED_RELEASE_DATE}.', + RuntimeWarning + ) + + +class ConsumerServiceStub(object): + """Missing associated documentation comment in .proto file.""" + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetTask = channel.unary_unary( + '/sentry_protos.sentry.v1.ConsumerService/GetTask', + request_serializer=sentry__protos_dot_sentry_dot_v1_dot_taskworker__pb2.GetTaskRequest.SerializeToString, + response_deserializer=sentry__protos_dot_sentry_dot_v1_dot_taskworker__pb2.GetTaskResponse.FromString, + _registered_method=True) + self.SetTaskStatus = channel.unary_unary( + '/sentry_protos.sentry.v1.ConsumerService/SetTaskStatus', + request_serializer=sentry__protos_dot_sentry_dot_v1_dot_taskworker__pb2.SetTaskStatusRequest.SerializeToString, + response_deserializer=sentry__protos_dot_sentry_dot_v1_dot_taskworker__pb2.SetTaskStatusResponse.FromString, + _registered_method=True) + + +class ConsumerServiceServicer(object): + """Missing associated documentation comment in .proto file.""" + + def GetTask(self, request, context): + """Fetch a new task activation to process. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SetTaskStatus(self, request, context): + """Update the state of a task with execution results. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_ConsumerServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetTask': grpc.unary_unary_rpc_method_handler( + servicer.GetTask, + request_deserializer=sentry__protos_dot_sentry_dot_v1_dot_taskworker__pb2.GetTaskRequest.FromString, + response_serializer=sentry__protos_dot_sentry_dot_v1_dot_taskworker__pb2.GetTaskResponse.SerializeToString, + ), + 'SetTaskStatus': grpc.unary_unary_rpc_method_handler( + servicer.SetTaskStatus, + request_deserializer=sentry__protos_dot_sentry_dot_v1_dot_taskworker__pb2.SetTaskStatusRequest.FromString, + response_serializer=sentry__protos_dot_sentry_dot_v1_dot_taskworker__pb2.SetTaskStatusResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'sentry_protos.sentry.v1.ConsumerService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('sentry_protos.sentry.v1.ConsumerService', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class ConsumerService(object): + """Missing associated documentation comment in .proto file.""" + + @staticmethod + def GetTask(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/sentry_protos.sentry.v1.ConsumerService/GetTask', + sentry__protos_dot_sentry_dot_v1_dot_taskworker__pb2.GetTaskRequest.SerializeToString, + sentry__protos_dot_sentry_dot_v1_dot_taskworker__pb2.GetTaskResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def SetTaskStatus(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/sentry_protos.sentry.v1.ConsumerService/SetTaskStatus', + sentry__protos_dot_sentry_dot_v1_dot_taskworker__pb2.SetTaskStatusRequest.SerializeToString, + sentry__protos_dot_sentry_dot_v1_dot_taskworker__pb2.SetTaskStatusResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/py/sentry_protos/sentry/v1/taskworker_pb2_grpc.pyi b/py/sentry_protos/sentry/v1/taskworker_pb2_grpc.pyi new file mode 100644 index 00000000..ff7ad4ea --- /dev/null +++ b/py/sentry_protos/sentry/v1/taskworker_pb2_grpc.pyi @@ -0,0 +1,64 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import grpc +import grpc.aio +import sentry_protos.sentry.v1.taskworker_pb2 +import typing + +_T = typing.TypeVar("_T") + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg] + ... + +class ConsumerServiceStub: + def __init__(self, channel: typing.Union[grpc.Channel, grpc.aio.Channel]) -> None: ... + GetTask: grpc.UnaryUnaryMultiCallable[ + sentry_protos.sentry.v1.taskworker_pb2.GetTaskRequest, + sentry_protos.sentry.v1.taskworker_pb2.GetTaskResponse, + ] + """Fetch a new task activation to process.""" + + SetTaskStatus: grpc.UnaryUnaryMultiCallable[ + sentry_protos.sentry.v1.taskworker_pb2.SetTaskStatusRequest, + sentry_protos.sentry.v1.taskworker_pb2.SetTaskStatusResponse, + ] + """Update the state of a task with execution results.""" + +class ConsumerServiceAsyncStub: + GetTask: grpc.aio.UnaryUnaryMultiCallable[ + sentry_protos.sentry.v1.taskworker_pb2.GetTaskRequest, + sentry_protos.sentry.v1.taskworker_pb2.GetTaskResponse, + ] + """Fetch a new task activation to process.""" + + SetTaskStatus: grpc.aio.UnaryUnaryMultiCallable[ + sentry_protos.sentry.v1.taskworker_pb2.SetTaskStatusRequest, + sentry_protos.sentry.v1.taskworker_pb2.SetTaskStatusResponse, + ] + """Update the state of a task with execution results.""" + +class ConsumerServiceServicer(metaclass=abc.ABCMeta): + @abc.abstractmethod + def GetTask( + self, + request: sentry_protos.sentry.v1.taskworker_pb2.GetTaskRequest, + context: _ServicerContext, + ) -> typing.Union[sentry_protos.sentry.v1.taskworker_pb2.GetTaskResponse, collections.abc.Awaitable[sentry_protos.sentry.v1.taskworker_pb2.GetTaskResponse]]: + """Fetch a new task activation to process.""" + + @abc.abstractmethod + def SetTaskStatus( + self, + request: sentry_protos.sentry.v1.taskworker_pb2.SetTaskStatusRequest, + context: _ServicerContext, + ) -> typing.Union[sentry_protos.sentry.v1.taskworker_pb2.SetTaskStatusResponse, collections.abc.Awaitable[sentry_protos.sentry.v1.taskworker_pb2.SetTaskStatusResponse]]: + """Update the state of a task with execution results.""" + +def add_ConsumerServiceServicer_to_server(servicer: ConsumerServiceServicer, server: typing.Union[grpc.Server, grpc.aio.Server]) -> None: ... diff --git a/py/sentry_protos/snuba/__init__.py b/py/sentry_protos/snuba/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/py/sentry_protos/snuba/v1/__init__.py b/py/sentry_protos/snuba/v1/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/py/sentry_protos/snuba/v1/attribute_conditional_aggregation_pb2.py b/py/sentry_protos/snuba/v1/attribute_conditional_aggregation_pb2.py new file mode 100644 index 00000000..e1734aab --- /dev/null +++ b/py/sentry_protos/snuba/v1/attribute_conditional_aggregation_pb2.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: sentry_protos/snuba/v1/attribute_conditional_aggregation.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from sentry_protos.snuba.v1 import trace_item_attribute_pb2 as sentry__protos_dot_snuba_dot_v1_dot_trace__item__attribute__pb2 +from sentry_protos.snuba.v1 import trace_item_filter_pb2 as sentry__protos_dot_snuba_dot_v1_dot_trace__item__filter__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n>sentry_protos/snuba/v1/attribute_conditional_aggregation.proto\x12\x16sentry_protos.snuba.v1\x1a\x31sentry_protos/snuba/v1/trace_item_attribute.proto\x1a.sentry_protos/snuba/v1/trace_item_filter.proto\"\x98\x02\n\x1f\x41ttributeConditionalAggregation\x12\x33\n\taggregate\x18\x01 \x01(\x0e\x32 .sentry_protos.snuba.v1.Function\x12\x31\n\x03key\x18\x02 \x01(\x0b\x32$.sentry_protos.snuba.v1.AttributeKey\x12\r\n\x05label\x18\x03 \x01(\t\x12\x45\n\x12\x65xtrapolation_mode\x18\x04 \x01(\x0e\x32).sentry_protos.snuba.v1.ExtrapolationMode\x12\x37\n\x06\x66ilter\x18\x05 \x01(\x0b\x32\'.sentry_protos.snuba.v1.TraceItemFilterb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sentry_protos.snuba.v1.attribute_conditional_aggregation_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_ATTRIBUTECONDITIONALAGGREGATION']._serialized_start=190 + _globals['_ATTRIBUTECONDITIONALAGGREGATION']._serialized_end=470 +# @@protoc_insertion_point(module_scope) diff --git a/py/sentry_protos/snuba/v1/attribute_conditional_aggregation_pb2.pyi b/py/sentry_protos/snuba/v1/attribute_conditional_aggregation_pb2.pyi new file mode 100644 index 00000000..78f08448 --- /dev/null +++ b/py/sentry_protos/snuba/v1/attribute_conditional_aggregation_pb2.pyi @@ -0,0 +1,43 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.message +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 AttributeConditionalAggregation(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + AGGREGATE_FIELD_NUMBER: builtins.int + KEY_FIELD_NUMBER: builtins.int + LABEL_FIELD_NUMBER: builtins.int + EXTRAPOLATION_MODE_FIELD_NUMBER: builtins.int + FILTER_FIELD_NUMBER: builtins.int + aggregate: sentry_protos.snuba.v1.trace_item_attribute_pb2.Function.ValueType + label: builtins.str + extrapolation_mode: sentry_protos.snuba.v1.trace_item_attribute_pb2.ExtrapolationMode.ValueType + @property + def key(self) -> sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeKey: ... + @property + def filter(self) -> sentry_protos.snuba.v1.trace_item_filter_pb2.TraceItemFilter: ... + def __init__( + self, + *, + aggregate: sentry_protos.snuba.v1.trace_item_attribute_pb2.Function.ValueType = ..., + key: sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeKey | None = ..., + label: builtins.str = ..., + extrapolation_mode: sentry_protos.snuba.v1.trace_item_attribute_pb2.ExtrapolationMode.ValueType = ..., + filter: sentry_protos.snuba.v1.trace_item_filter_pb2.TraceItemFilter | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["filter", b"filter", "key", b"key"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["aggregate", b"aggregate", "extrapolation_mode", b"extrapolation_mode", "filter", b"filter", "key", b"key", "label", b"label"]) -> None: ... + +global___AttributeConditionalAggregation = AttributeConditionalAggregation diff --git a/py/sentry_protos/snuba/v1/attribute_conditional_aggregation_pb2_grpc.py b/py/sentry_protos/snuba/v1/attribute_conditional_aggregation_pb2_grpc.py new file mode 100644 index 00000000..13d8729a --- /dev/null +++ b/py/sentry_protos/snuba/v1/attribute_conditional_aggregation_pb2_grpc.py @@ -0,0 +1,29 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.65.4' +GRPC_VERSION = grpc.__version__ +EXPECTED_ERROR_RELEASE = '1.66.0' +SCHEDULED_RELEASE_DATE = 'August 6, 2024' +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + warnings.warn( + f'The grpc package installed is at version {GRPC_VERSION},' + + f' but the generated code in sentry_protos/snuba/v1/attribute_conditional_aggregation_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + + f' This warning will become an error in {EXPECTED_ERROR_RELEASE},' + + f' scheduled for release on {SCHEDULED_RELEASE_DATE}.', + RuntimeWarning + ) diff --git a/py/sentry_protos/snuba/v1/attribute_conditional_aggregation_pb2_grpc.pyi b/py/sentry_protos/snuba/v1/attribute_conditional_aggregation_pb2_grpc.pyi new file mode 100644 index 00000000..a6a9cff9 --- /dev/null +++ b/py/sentry_protos/snuba/v1/attribute_conditional_aggregation_pb2_grpc.pyi @@ -0,0 +1,17 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import grpc +import grpc.aio +import typing + +_T = typing.TypeVar("_T") + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg] + ... diff --git a/py/sentry_protos/snuba/v1/downsampled_storage_pb2.py b/py/sentry_protos/snuba/v1/downsampled_storage_pb2.py new file mode 100644 index 00000000..373a852f --- /dev/null +++ b/py/sentry_protos/snuba/v1/downsampled_storage_pb2.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: sentry_protos/snuba/v1/downsampled_storage.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n0sentry_protos/snuba/v1/downsampled_storage.proto\x12\x16sentry_protos.snuba.v1\"\x8f\x02\n\x18\x44ownsampledStorageConfig\x12\x43\n\x04mode\x18\x01 \x01(\x0e\x32\x35.sentry_protos.snuba.v1.DownsampledStorageConfig.Mode\"\xad\x01\n\x04Mode\x12\x14\n\x10MODE_UNSPECIFIED\x10\x00\x12\x12\n\x0eMODE_PREFLIGHT\x10\x01\x12\x14\n\x10MODE_BEST_EFFORT\x10\x02\x12\x0f\n\x0bMODE_NORMAL\x10\x03\x12\x19\n\x15MODE_HIGHEST_ACCURACY\x10\x04\x12\"\n\x1eMODE_HIGHEST_ACCURACY_FLEXTIME\x10\x05\x12\x15\n\x11MODE_LOW_PRIORITY\x10\x06\"\xae\x02\n\x16\x44ownsampledStorageMeta\x12I\n\x04tier\x18\x01 \x01(\x0e\x32;.sentry_protos.snuba.v1.DownsampledStorageMeta.SelectedTier\x12\x1a\n\x12\x65stimated_num_rows\x18\x02 \x01(\x04\x12&\n\x1e\x63\x61n_go_to_higher_accuracy_tier\x18\x03 \x01(\x08\"\x84\x01\n\x0cSelectedTier\x12\x1d\n\x19SELECTED_TIER_UNSPECIFIED\x10\x00\x12\x13\n\x0fSELECTED_TIER_1\x10\x01\x12\x13\n\x0fSELECTED_TIER_8\x10\x02\x12\x14\n\x10SELECTED_TIER_64\x10\x03\x12\x15\n\x11SELECTED_TIER_512\x10\x04\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sentry_protos.snuba.v1.downsampled_storage_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_DOWNSAMPLEDSTORAGECONFIG']._serialized_start=77 + _globals['_DOWNSAMPLEDSTORAGECONFIG']._serialized_end=348 + _globals['_DOWNSAMPLEDSTORAGECONFIG_MODE']._serialized_start=175 + _globals['_DOWNSAMPLEDSTORAGECONFIG_MODE']._serialized_end=348 + _globals['_DOWNSAMPLEDSTORAGEMETA']._serialized_start=351 + _globals['_DOWNSAMPLEDSTORAGEMETA']._serialized_end=653 + _globals['_DOWNSAMPLEDSTORAGEMETA_SELECTEDTIER']._serialized_start=521 + _globals['_DOWNSAMPLEDSTORAGEMETA_SELECTEDTIER']._serialized_end=653 +# @@protoc_insertion_point(module_scope) diff --git a/py/sentry_protos/snuba/v1/downsampled_storage_pb2.pyi b/py/sentry_protos/snuba/v1/downsampled_storage_pb2.pyi new file mode 100644 index 00000000..6b8571be --- /dev/null +++ b/py/sentry_protos/snuba/v1/downsampled_storage_pb2.pyi @@ -0,0 +1,126 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +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 + +@typing.final +class DownsampledStorageConfig(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _Mode: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _ModeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[DownsampledStorageConfig._Mode.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + MODE_UNSPECIFIED: DownsampledStorageConfig._Mode.ValueType # 0 + MODE_PREFLIGHT: DownsampledStorageConfig._Mode.ValueType # 1 + """deprecated, treated as NORMAL mode""" + MODE_BEST_EFFORT: DownsampledStorageConfig._Mode.ValueType # 2 + """deprecated, treated as NORMAL mode""" + MODE_NORMAL: DownsampledStorageConfig._Mode.ValueType # 3 + """NORMAL queries are served faster and should not time out + EAP will route to whatever tier it needs to in order to facilitate this + The return payload from EAP will inform the client if there is a higher fidelity tier to scan + """ + MODE_HIGHEST_ACCURACY: DownsampledStorageConfig._Mode.ValueType # 4 + """HIGHEST_ACCURACY queries go straight to tier 1""" + MODE_HIGHEST_ACCURACY_FLEXTIME: DownsampledStorageConfig._Mode.ValueType # 5 + """queries go to tier 1 but may have their time range truncated based on data volume""" + MODE_LOW_PRIORITY: DownsampledStorageConfig._Mode.ValueType # 6 + """queries behave the same as NORMAL by default but are opted in + to lose precision if the cluster is overloaded + """ + + class Mode(_Mode, metaclass=_ModeEnumTypeWrapper): ... + MODE_UNSPECIFIED: DownsampledStorageConfig.Mode.ValueType # 0 + MODE_PREFLIGHT: DownsampledStorageConfig.Mode.ValueType # 1 + """deprecated, treated as NORMAL mode""" + MODE_BEST_EFFORT: DownsampledStorageConfig.Mode.ValueType # 2 + """deprecated, treated as NORMAL mode""" + MODE_NORMAL: DownsampledStorageConfig.Mode.ValueType # 3 + """NORMAL queries are served faster and should not time out + EAP will route to whatever tier it needs to in order to facilitate this + The return payload from EAP will inform the client if there is a higher fidelity tier to scan + """ + MODE_HIGHEST_ACCURACY: DownsampledStorageConfig.Mode.ValueType # 4 + """HIGHEST_ACCURACY queries go straight to tier 1""" + MODE_HIGHEST_ACCURACY_FLEXTIME: DownsampledStorageConfig.Mode.ValueType # 5 + """queries go to tier 1 but may have their time range truncated based on data volume""" + MODE_LOW_PRIORITY: DownsampledStorageConfig.Mode.ValueType # 6 + """queries behave the same as NORMAL by default but are opted in + to lose precision if the cluster is overloaded + """ + + MODE_FIELD_NUMBER: builtins.int + mode: global___DownsampledStorageConfig.Mode.ValueType + def __init__( + self, + *, + mode: global___DownsampledStorageConfig.Mode.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["mode", b"mode"]) -> None: ... + +global___DownsampledStorageConfig = DownsampledStorageConfig + +@typing.final +class DownsampledStorageMeta(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _SelectedTier: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _SelectedTierEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[DownsampledStorageMeta._SelectedTier.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + SELECTED_TIER_UNSPECIFIED: DownsampledStorageMeta._SelectedTier.ValueType # 0 + SELECTED_TIER_1: DownsampledStorageMeta._SelectedTier.ValueType # 1 + SELECTED_TIER_8: DownsampledStorageMeta._SelectedTier.ValueType # 2 + SELECTED_TIER_64: DownsampledStorageMeta._SelectedTier.ValueType # 3 + SELECTED_TIER_512: DownsampledStorageMeta._SelectedTier.ValueType # 4 + + class SelectedTier(_SelectedTier, metaclass=_SelectedTierEnumTypeWrapper): ... + SELECTED_TIER_UNSPECIFIED: DownsampledStorageMeta.SelectedTier.ValueType # 0 + SELECTED_TIER_1: DownsampledStorageMeta.SelectedTier.ValueType # 1 + SELECTED_TIER_8: DownsampledStorageMeta.SelectedTier.ValueType # 2 + SELECTED_TIER_64: DownsampledStorageMeta.SelectedTier.ValueType # 3 + SELECTED_TIER_512: DownsampledStorageMeta.SelectedTier.ValueType # 4 + + TIER_FIELD_NUMBER: builtins.int + ESTIMATED_NUM_ROWS_FIELD_NUMBER: builtins.int + CAN_GO_TO_HIGHER_ACCURACY_TIER_FIELD_NUMBER: builtins.int + tier: global___DownsampledStorageMeta.SelectedTier.ValueType + """deprecated, only use can_go_to_higher_accuracy_tier""" + estimated_num_rows: builtins.int + """how many rows did the estimator think this query would scan + 0 means the estimator was not run + deprecated, only use can_go_to_higher_accuracy_tier + """ + can_go_to_higher_accuracy_tier: builtins.bool + """if there exists a higher accuracy tier that this query could route to + note that if this query goes to a higher accuracy tier, it could potentially time out + """ + def __init__( + self, + *, + tier: global___DownsampledStorageMeta.SelectedTier.ValueType = ..., + estimated_num_rows: builtins.int = ..., + can_go_to_higher_accuracy_tier: builtins.bool = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["can_go_to_higher_accuracy_tier", b"can_go_to_higher_accuracy_tier", "estimated_num_rows", b"estimated_num_rows", "tier", b"tier"]) -> None: ... + +global___DownsampledStorageMeta = DownsampledStorageMeta diff --git a/py/sentry_protos/snuba/v1/downsampled_storage_pb2_grpc.py b/py/sentry_protos/snuba/v1/downsampled_storage_pb2_grpc.py new file mode 100644 index 00000000..88aa681b --- /dev/null +++ b/py/sentry_protos/snuba/v1/downsampled_storage_pb2_grpc.py @@ -0,0 +1,29 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.65.4' +GRPC_VERSION = grpc.__version__ +EXPECTED_ERROR_RELEASE = '1.66.0' +SCHEDULED_RELEASE_DATE = 'August 6, 2024' +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + warnings.warn( + f'The grpc package installed is at version {GRPC_VERSION},' + + f' but the generated code in sentry_protos/snuba/v1/downsampled_storage_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + + f' This warning will become an error in {EXPECTED_ERROR_RELEASE},' + + f' scheduled for release on {SCHEDULED_RELEASE_DATE}.', + RuntimeWarning + ) diff --git a/py/sentry_protos/snuba/v1/downsampled_storage_pb2_grpc.pyi b/py/sentry_protos/snuba/v1/downsampled_storage_pb2_grpc.pyi new file mode 100644 index 00000000..a6a9cff9 --- /dev/null +++ b/py/sentry_protos/snuba/v1/downsampled_storage_pb2_grpc.pyi @@ -0,0 +1,17 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import grpc +import grpc.aio +import typing + +_T = typing.TypeVar("_T") + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg] + ... diff --git a/py/sentry_protos/snuba/v1/endpoint_create_subscription_pb2.py b/py/sentry_protos/snuba/v1/endpoint_create_subscription_pb2.py new file mode 100644 index 00000000..54da45e1 --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_create_subscription_pb2.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: sentry_protos/snuba/v1/endpoint_create_subscription.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from sentry_protos.snuba.v1 import endpoint_time_series_pb2 as sentry__protos_dot_snuba_dot_v1_dot_endpoint__time__series__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n9sentry_protos/snuba/v1/endpoint_create_subscription.proto\x12\x16sentry_protos.snuba.v1\x1a\x31sentry_protos/snuba/v1/endpoint_time_series.proto\"\x96\x01\n\x19\x43reateSubscriptionRequest\x12\x46\n\x13time_series_request\x18\x01 \x01(\x0b\x32).sentry_protos.snuba.v1.TimeSeriesRequest\x12\x18\n\x10time_window_secs\x18\x02 \x01(\r\x12\x17\n\x0fresolution_secs\x18\x03 \x01(\r\"5\n\x1a\x43reateSubscriptionResponse\x12\x17\n\x0fsubscription_id\x18\x01 \x01(\tb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sentry_protos.snuba.v1.endpoint_create_subscription_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_CREATESUBSCRIPTIONREQUEST']._serialized_start=137 + _globals['_CREATESUBSCRIPTIONREQUEST']._serialized_end=287 + _globals['_CREATESUBSCRIPTIONRESPONSE']._serialized_start=289 + _globals['_CREATESUBSCRIPTIONRESPONSE']._serialized_end=342 +# @@protoc_insertion_point(module_scope) diff --git a/py/sentry_protos/snuba/v1/endpoint_create_subscription_pb2.pyi b/py/sentry_protos/snuba/v1/endpoint_create_subscription_pb2.pyi new file mode 100644 index 00000000..cb492876 --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_create_subscription_pb2.pyi @@ -0,0 +1,50 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.message +import sentry_protos.snuba.v1.endpoint_time_series_pb2 +import typing + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class CreateSubscriptionRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + TIME_SERIES_REQUEST_FIELD_NUMBER: builtins.int + TIME_WINDOW_SECS_FIELD_NUMBER: builtins.int + RESOLUTION_SECS_FIELD_NUMBER: builtins.int + time_window_secs: builtins.int + resolution_secs: builtins.int + @property + def time_series_request(self) -> sentry_protos.snuba.v1.endpoint_time_series_pb2.TimeSeriesRequest: ... + def __init__( + self, + *, + time_series_request: sentry_protos.snuba.v1.endpoint_time_series_pb2.TimeSeriesRequest | None = ..., + time_window_secs: builtins.int = ..., + resolution_secs: builtins.int = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["time_series_request", b"time_series_request"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["resolution_secs", b"resolution_secs", "time_series_request", b"time_series_request", "time_window_secs", b"time_window_secs"]) -> None: ... + +global___CreateSubscriptionRequest = CreateSubscriptionRequest + +@typing.final +class CreateSubscriptionResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + SUBSCRIPTION_ID_FIELD_NUMBER: builtins.int + subscription_id: builtins.str + def __init__( + self, + *, + subscription_id: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["subscription_id", b"subscription_id"]) -> None: ... + +global___CreateSubscriptionResponse = CreateSubscriptionResponse diff --git a/py/sentry_protos/snuba/v1/endpoint_create_subscription_pb2_grpc.py b/py/sentry_protos/snuba/v1/endpoint_create_subscription_pb2_grpc.py new file mode 100644 index 00000000..36949ad9 --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_create_subscription_pb2_grpc.py @@ -0,0 +1,29 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.65.4' +GRPC_VERSION = grpc.__version__ +EXPECTED_ERROR_RELEASE = '1.66.0' +SCHEDULED_RELEASE_DATE = 'August 6, 2024' +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + warnings.warn( + f'The grpc package installed is at version {GRPC_VERSION},' + + f' but the generated code in sentry_protos/snuba/v1/endpoint_create_subscription_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + + f' This warning will become an error in {EXPECTED_ERROR_RELEASE},' + + f' scheduled for release on {SCHEDULED_RELEASE_DATE}.', + RuntimeWarning + ) diff --git a/py/sentry_protos/snuba/v1/endpoint_create_subscription_pb2_grpc.pyi b/py/sentry_protos/snuba/v1/endpoint_create_subscription_pb2_grpc.pyi new file mode 100644 index 00000000..a6a9cff9 --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_create_subscription_pb2_grpc.pyi @@ -0,0 +1,17 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import grpc +import grpc.aio +import typing + +_T = typing.TypeVar("_T") + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg] + ... diff --git a/py/sentry_protos/snuba/v1/endpoint_delete_trace_items_pb2.py b/py/sentry_protos/snuba/v1/endpoint_delete_trace_items_pb2.py new file mode 100644 index 00000000..5351357c --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_delete_trace_items_pb2.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: sentry_protos/snuba/v1/endpoint_delete_trace_items.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from sentry_protos.snuba.v1 import request_common_pb2 as sentry__protos_dot_snuba_dot_v1_dot_request__common__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n8sentry_protos/snuba/v1/endpoint_delete_trace_items.proto\x12\x16sentry_protos.snuba.v1\x1a+sentry_protos/snuba/v1/request_common.proto\"\xa1\x01\n\x17\x44\x65leteTraceItemsRequest\x12\x31\n\x04meta\x18\x01 \x01(\x0b\x32#.sentry_protos.snuba.v1.RequestMeta\x12\x11\n\ttrace_ids\x18\x02 \x03(\t\x12@\n\x07\x66ilters\x18\x03 \x03(\x0b\x32/.sentry_protos.snuba.v1.TraceItemFilterWithType\"l\n\x18\x44\x65leteTraceItemsResponse\x12\x32\n\x04meta\x18\x01 \x01(\x0b\x32$.sentry_protos.snuba.v1.ResponseMeta\x12\x1c\n\x14matching_items_count\x18\x02 \x01(\rb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sentry_protos.snuba.v1.endpoint_delete_trace_items_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_DELETETRACEITEMSREQUEST']._serialized_start=130 + _globals['_DELETETRACEITEMSREQUEST']._serialized_end=291 + _globals['_DELETETRACEITEMSRESPONSE']._serialized_start=293 + _globals['_DELETETRACEITEMSRESPONSE']._serialized_end=401 +# @@protoc_insertion_point(module_scope) diff --git a/py/sentry_protos/snuba/v1/endpoint_delete_trace_items_pb2.pyi b/py/sentry_protos/snuba/v1/endpoint_delete_trace_items_pb2.pyi new file mode 100644 index 00000000..b452999e --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_delete_trace_items_pb2.pyi @@ -0,0 +1,74 @@ +""" +@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 typing + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class DeleteTraceItemsRequest(google.protobuf.message.Message): + """DeleteTraceItemsRequest either + 1. initiates a delete of all items in provided trace_ids + 2. deletes all items matching a set of TraceItemFilterWithType[s] + Behavior is unspecified if both trace_ids and filters are provided. + + It should also remove downsampled copies of anything it deletes. + The response will be an acknowledgement of a request, but not + a guarantee that the delete has been fulfilled. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + META_FIELD_NUMBER: builtins.int + TRACE_IDS_FIELD_NUMBER: builtins.int + FILTERS_FIELD_NUMBER: builtins.int + @property + def meta(self) -> sentry_protos.snuba.v1.request_common_pb2.RequestMeta: ... + @property + def trace_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def filters(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[sentry_protos.snuba.v1.request_common_pb2.TraceItemFilterWithType]: ... + def __init__( + self, + *, + meta: sentry_protos.snuba.v1.request_common_pb2.RequestMeta | None = ..., + trace_ids: collections.abc.Iterable[builtins.str] | None = ..., + filters: collections.abc.Iterable[sentry_protos.snuba.v1.request_common_pb2.TraceItemFilterWithType] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["meta", b"meta"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["filters", b"filters", "meta", b"meta", "trace_ids", b"trace_ids"]) -> None: ... + +global___DeleteTraceItemsRequest = DeleteTraceItemsRequest + +@typing.final +class DeleteTraceItemsResponse(google.protobuf.message.Message): + """DeleteTraceItemsResponse notifies acceptance of the delete and returns + a count of items matched by the request at query time. This count + could change by the time the delete is executed. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + META_FIELD_NUMBER: builtins.int + MATCHING_ITEMS_COUNT_FIELD_NUMBER: builtins.int + matching_items_count: builtins.int + @property + def meta(self) -> sentry_protos.snuba.v1.request_common_pb2.ResponseMeta: ... + def __init__( + self, + *, + meta: sentry_protos.snuba.v1.request_common_pb2.ResponseMeta | None = ..., + matching_items_count: builtins.int = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["meta", b"meta"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["matching_items_count", b"matching_items_count", "meta", b"meta"]) -> None: ... + +global___DeleteTraceItemsResponse = DeleteTraceItemsResponse diff --git a/py/sentry_protos/snuba/v1/endpoint_delete_trace_items_pb2_grpc.py b/py/sentry_protos/snuba/v1/endpoint_delete_trace_items_pb2_grpc.py new file mode 100644 index 00000000..7753be3c --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_delete_trace_items_pb2_grpc.py @@ -0,0 +1,29 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.65.4' +GRPC_VERSION = grpc.__version__ +EXPECTED_ERROR_RELEASE = '1.66.0' +SCHEDULED_RELEASE_DATE = 'August 6, 2024' +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + warnings.warn( + f'The grpc package installed is at version {GRPC_VERSION},' + + f' but the generated code in sentry_protos/snuba/v1/endpoint_delete_trace_items_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + + f' This warning will become an error in {EXPECTED_ERROR_RELEASE},' + + f' scheduled for release on {SCHEDULED_RELEASE_DATE}.', + RuntimeWarning + ) diff --git a/py/sentry_protos/snuba/v1/endpoint_delete_trace_items_pb2_grpc.pyi b/py/sentry_protos/snuba/v1/endpoint_delete_trace_items_pb2_grpc.pyi new file mode 100644 index 00000000..a6a9cff9 --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_delete_trace_items_pb2_grpc.pyi @@ -0,0 +1,17 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import grpc +import grpc.aio +import typing + +_T = typing.TypeVar("_T") + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg] + ... diff --git a/py/sentry_protos/snuba/v1/endpoint_find_traces_pb2.py b/py/sentry_protos/snuba/v1/endpoint_find_traces_pb2.py new file mode 100644 index 00000000..6a5cdc0c --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_find_traces_pb2.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: sentry_protos/snuba/v1/endpoint_find_traces.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 +from sentry_protos.snuba.v1 import request_common_pb2 as sentry__protos_dot_snuba_dot_v1_dot_request__common__pb2 +from sentry_protos.snuba.v1 import trace_item_filter_pb2 as sentry__protos_dot_snuba_dot_v1_dot_trace__item__filter__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n1sentry_protos/snuba/v1/endpoint_find_traces.proto\x12\x16sentry_protos.snuba.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a+sentry_protos/snuba/v1/request_common.proto\x1a.sentry_protos/snuba/v1/trace_item_filter.proto\"\xa5\x01\n\x0eTracePageToken\x12\x10\n\x06offset\x18\x01 \x01(\x04H\x00\x12;\n\x0c\x65vent_filter\x18\x02 \x01(\x0b\x32#.sentry_protos.snuba.v1.EventFilterH\x00\x12;\n\x0ctrace_filter\x18\x03 \x01(\x0b\x32#.sentry_protos.snuba.v1.TraceFilterH\x00\x42\x07\n\x05value\"\xef\x01\n\x11\x46indTracesRequest\x12\x31\n\x04meta\x18\x01 \x01(\x0b\x32#.sentry_protos.snuba.v1.RequestMeta\x12\x33\n\x06\x66ilter\x18\x02 \x01(\x0b\x32#.sentry_protos.snuba.v1.TraceFilter\x12:\n\npage_token\x18\x03 \x01(\x0b\x32&.sentry_protos.snuba.v1.TracePageToken\x12\x36\n\x08order_by\x18\x04 \x01(\x0e\x32$.sentry_protos.snuba.v1.TraceOrderBy\"\x89\x01\n\rTraceResponse\x12\x10\n\x08trace_id\x18\x01 \x01(\t\x12\x33\n\x0fstart_timestamp\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x31\n\rend_timestamp\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\x87\x01\n\x12\x46indTracesResponse\x12\x35\n\x06traces\x18\x01 \x03(\x0b\x32%.sentry_protos.snuba.v1.TraceResponse\x12:\n\npage_token\x18\x02 \x01(\x0b\x32&.sentry_protos.snuba.v1.TracePageToken\"\x86\x01\n\x0b\x45ventFilter\x12>\n\x0ftrace_item_name\x18\x01 \x01(\x0e\x32%.sentry_protos.snuba.v1.TraceItemName\x12\x37\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\'.sentry_protos.snuba.v1.TraceItemFilter\"F\n\x0e\x41ndTraceFilter\x12\x34\n\x07\x66ilters\x18\x01 \x03(\x0b\x32#.sentry_protos.snuba.v1.TraceFilter\"E\n\rOrTraceFilter\x12\x34\n\x07\x66ilters\x18\x01 \x03(\x0b\x32#.sentry_protos.snuba.v1.TraceFilter\"F\n\x0eNotTraceFilter\x12\x34\n\x07\x66ilters\x18\x01 \x03(\x0b\x32#.sentry_protos.snuba.v1.TraceFilter\"\x8c\x02\n\x0bTraceFilter\x12<\n\nand_filter\x18\x01 \x01(\x0b\x32&.sentry_protos.snuba.v1.AndTraceFilterH\x00\x12:\n\tor_filter\x18\x02 \x01(\x0b\x32%.sentry_protos.snuba.v1.OrTraceFilterH\x00\x12<\n\nnot_filter\x18\x03 \x01(\x0b\x32&.sentry_protos.snuba.v1.NotTraceFilterH\x00\x12;\n\x0c\x65vent_filter\x18\x04 \x01(\x0b\x32#.sentry_protos.snuba.v1.EventFilterH\x00\x42\x08\n\x06\x66ilter*n\n\x0cTraceOrderBy\x12\x1e\n\x1aTRACE_ORDER_BY_UNSPECIFIED\x10\x00\x12\x1b\n\x17TRACE_ORDER_BY_END_TIME\x10\x01\x12!\n\x1dTRACE_ORDER_BY_TRACE_DURATION\x10\x02\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sentry_protos.snuba.v1.endpoint_find_traces_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_TRACEORDERBY']._serialized_start=1514 + _globals['_TRACEORDERBY']._serialized_end=1624 + _globals['_TRACEPAGETOKEN']._serialized_start=204 + _globals['_TRACEPAGETOKEN']._serialized_end=369 + _globals['_FINDTRACESREQUEST']._serialized_start=372 + _globals['_FINDTRACESREQUEST']._serialized_end=611 + _globals['_TRACERESPONSE']._serialized_start=614 + _globals['_TRACERESPONSE']._serialized_end=751 + _globals['_FINDTRACESRESPONSE']._serialized_start=754 + _globals['_FINDTRACESRESPONSE']._serialized_end=889 + _globals['_EVENTFILTER']._serialized_start=892 + _globals['_EVENTFILTER']._serialized_end=1026 + _globals['_ANDTRACEFILTER']._serialized_start=1028 + _globals['_ANDTRACEFILTER']._serialized_end=1098 + _globals['_ORTRACEFILTER']._serialized_start=1100 + _globals['_ORTRACEFILTER']._serialized_end=1169 + _globals['_NOTTRACEFILTER']._serialized_start=1171 + _globals['_NOTTRACEFILTER']._serialized_end=1241 + _globals['_TRACEFILTER']._serialized_start=1244 + _globals['_TRACEFILTER']._serialized_end=1512 +# @@protoc_insertion_point(module_scope) diff --git a/py/sentry_protos/snuba/v1/endpoint_find_traces_pb2.pyi b/py/sentry_protos/snuba/v1/endpoint_find_traces_pb2.pyi new file mode 100644 index 00000000..dced4555 --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_find_traces_pb2.pyi @@ -0,0 +1,247 @@ +""" +@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 google.protobuf.timestamp_pb2 +import sentry_protos.snuba.v1.request_common_pb2 +import sentry_protos.snuba.v1.trace_item_filter_pb2 +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 _TraceOrderBy: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _TraceOrderByEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_TraceOrderBy.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + TRACE_ORDER_BY_UNSPECIFIED: _TraceOrderBy.ValueType # 0 + TRACE_ORDER_BY_END_TIME: _TraceOrderBy.ValueType # 1 + TRACE_ORDER_BY_TRACE_DURATION: _TraceOrderBy.ValueType # 2 + +class TraceOrderBy(_TraceOrderBy, metaclass=_TraceOrderByEnumTypeWrapper): ... + +TRACE_ORDER_BY_UNSPECIFIED: TraceOrderBy.ValueType # 0 +TRACE_ORDER_BY_END_TIME: TraceOrderBy.ValueType # 1 +TRACE_ORDER_BY_TRACE_DURATION: TraceOrderBy.ValueType # 2 +global___TraceOrderBy = TraceOrderBy + +@typing.final +class TracePageToken(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + OFFSET_FIELD_NUMBER: builtins.int + EVENT_FILTER_FIELD_NUMBER: builtins.int + TRACE_FILTER_FIELD_NUMBER: builtins.int + offset: builtins.int + @property + def event_filter(self) -> global___EventFilter: + """Instead of using offset (which requires all the scanning and ordering), + the server sends back a filter clause to be added on to the filter conditions + which skips the previous results altogether, avoiding extra scanning and sorting + """ + + @property + def trace_filter(self) -> global___TraceFilter: ... + def __init__( + self, + *, + offset: builtins.int = ..., + event_filter: global___EventFilter | None = ..., + trace_filter: global___TraceFilter | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["event_filter", b"event_filter", "offset", b"offset", "trace_filter", b"trace_filter", "value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["event_filter", b"event_filter", "offset", b"offset", "trace_filter", b"trace_filter", "value", b"value"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["value", b"value"]) -> typing.Literal["offset", "event_filter", "trace_filter"] | None: ... + +global___TracePageToken = TracePageToken + +@typing.final +class FindTracesRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + META_FIELD_NUMBER: builtins.int + FILTER_FIELD_NUMBER: builtins.int + PAGE_TOKEN_FIELD_NUMBER: builtins.int + ORDER_BY_FIELD_NUMBER: builtins.int + order_by: global___TraceOrderBy.ValueType + @property + def meta(self) -> sentry_protos.snuba.v1.request_common_pb2.RequestMeta: ... + @property + def filter(self) -> global___TraceFilter: ... + @property + def page_token(self) -> global___TracePageToken: ... + def __init__( + self, + *, + meta: sentry_protos.snuba.v1.request_common_pb2.RequestMeta | None = ..., + filter: global___TraceFilter | None = ..., + page_token: global___TracePageToken | None = ..., + order_by: global___TraceOrderBy.ValueType = ..., + ) -> 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["filter", b"filter", "meta", b"meta", "order_by", b"order_by", "page_token", b"page_token"]) -> None: ... + +global___FindTracesRequest = FindTracesRequest + +@typing.final +class TraceResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + TRACE_ID_FIELD_NUMBER: builtins.int + START_TIMESTAMP_FIELD_NUMBER: builtins.int + END_TIMESTAMP_FIELD_NUMBER: builtins.int + trace_id: builtins.str + @property + def start_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + @property + def end_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + def __init__( + self, + *, + trace_id: builtins.str = ..., + start_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + end_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["end_timestamp", b"end_timestamp", "start_timestamp", b"start_timestamp"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["end_timestamp", b"end_timestamp", "start_timestamp", b"start_timestamp", "trace_id", b"trace_id"]) -> None: ... + +global___TraceResponse = TraceResponse + +@typing.final +class FindTracesResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + TRACES_FIELD_NUMBER: builtins.int + PAGE_TOKEN_FIELD_NUMBER: builtins.int + @property + def traces(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TraceResponse]: ... + @property + def page_token(self) -> global___TracePageToken: ... + def __init__( + self, + *, + traces: collections.abc.Iterable[global___TraceResponse] | None = ..., + page_token: global___TracePageToken | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["page_token", b"page_token"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["page_token", b"page_token", "traces", b"traces"]) -> None: ... + +global___FindTracesResponse = FindTracesResponse + +@typing.final +class EventFilter(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + TRACE_ITEM_NAME_FIELD_NUMBER: builtins.int + FILTER_FIELD_NUMBER: builtins.int + trace_item_name: sentry_protos.snuba.v1.request_common_pb2.TraceItemName.ValueType + @property + def filter(self) -> sentry_protos.snuba.v1.trace_item_filter_pb2.TraceItemFilter: ... + def __init__( + self, + *, + trace_item_name: sentry_protos.snuba.v1.request_common_pb2.TraceItemName.ValueType = ..., + filter: sentry_protos.snuba.v1.trace_item_filter_pb2.TraceItemFilter | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["filter", b"filter"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["filter", b"filter", "trace_item_name", b"trace_item_name"]) -> None: ... + +global___EventFilter = EventFilter + +@typing.final +class AndTraceFilter(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FILTERS_FIELD_NUMBER: builtins.int + @property + def filters(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TraceFilter]: ... + def __init__( + self, + *, + filters: collections.abc.Iterable[global___TraceFilter] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["filters", b"filters"]) -> None: ... + +global___AndTraceFilter = AndTraceFilter + +@typing.final +class OrTraceFilter(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FILTERS_FIELD_NUMBER: builtins.int + @property + def filters(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TraceFilter]: ... + def __init__( + self, + *, + filters: collections.abc.Iterable[global___TraceFilter] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["filters", b"filters"]) -> None: ... + +global___OrTraceFilter = OrTraceFilter + +@typing.final +class NotTraceFilter(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FILTERS_FIELD_NUMBER: builtins.int + @property + def filters(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TraceFilter]: ... + def __init__( + self, + *, + filters: collections.abc.Iterable[global___TraceFilter] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["filters", b"filters"]) -> None: ... + +global___NotTraceFilter = NotTraceFilter + +@typing.final +class TraceFilter(google.protobuf.message.Message): + """Represents a set of conditions for finding particular events + in a trace. Each EventFilter is meant to find one particular + type of event. Those can then be combined to find traces that + contain different combinations of events. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + AND_FILTER_FIELD_NUMBER: builtins.int + OR_FILTER_FIELD_NUMBER: builtins.int + NOT_FILTER_FIELD_NUMBER: builtins.int + EVENT_FILTER_FIELD_NUMBER: builtins.int + @property + def and_filter(self) -> global___AndTraceFilter: ... + @property + def or_filter(self) -> global___OrTraceFilter: ... + @property + def not_filter(self) -> global___NotTraceFilter: ... + @property + def event_filter(self) -> global___EventFilter: ... + def __init__( + self, + *, + and_filter: global___AndTraceFilter | None = ..., + or_filter: global___OrTraceFilter | None = ..., + not_filter: global___NotTraceFilter | None = ..., + event_filter: global___EventFilter | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["and_filter", b"and_filter", "event_filter", b"event_filter", "filter", b"filter", "not_filter", b"not_filter", "or_filter", b"or_filter"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["and_filter", b"and_filter", "event_filter", b"event_filter", "filter", b"filter", "not_filter", b"not_filter", "or_filter", b"or_filter"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["filter", b"filter"]) -> typing.Literal["and_filter", "or_filter", "not_filter", "event_filter"] | None: ... + +global___TraceFilter = TraceFilter diff --git a/py/sentry_protos/snuba/v1/endpoint_find_traces_pb2_grpc.py b/py/sentry_protos/snuba/v1/endpoint_find_traces_pb2_grpc.py new file mode 100644 index 00000000..81afc1ec --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_find_traces_pb2_grpc.py @@ -0,0 +1,29 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.65.4' +GRPC_VERSION = grpc.__version__ +EXPECTED_ERROR_RELEASE = '1.66.0' +SCHEDULED_RELEASE_DATE = 'August 6, 2024' +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + warnings.warn( + f'The grpc package installed is at version {GRPC_VERSION},' + + f' but the generated code in sentry_protos/snuba/v1/endpoint_find_traces_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + + f' This warning will become an error in {EXPECTED_ERROR_RELEASE},' + + f' scheduled for release on {SCHEDULED_RELEASE_DATE}.', + RuntimeWarning + ) diff --git a/py/sentry_protos/snuba/v1/endpoint_find_traces_pb2_grpc.pyi b/py/sentry_protos/snuba/v1/endpoint_find_traces_pb2_grpc.pyi new file mode 100644 index 00000000..a6a9cff9 --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_find_traces_pb2_grpc.pyi @@ -0,0 +1,17 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import grpc +import grpc.aio +import typing + +_T = typing.TypeVar("_T") + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg] + ... diff --git a/py/sentry_protos/snuba/v1/endpoint_get_trace_pb2.py b/py/sentry_protos/snuba/v1/endpoint_get_trace_pb2.py new file mode 100644 index 00000000..15a68848 --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_get_trace_pb2.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: sentry_protos/snuba/v1/endpoint_get_trace.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 +from sentry_protos.snuba.v1 import request_common_pb2 as sentry__protos_dot_snuba_dot_v1_dot_request__common__pb2 +from sentry_protos.snuba.v1 import trace_item_attribute_pb2 as sentry__protos_dot_snuba_dot_v1_dot_trace__item__attribute__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n/sentry_protos/snuba/v1/endpoint_get_trace.proto\x12\x16sentry_protos.snuba.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a+sentry_protos/snuba/v1/request_common.proto\x1a\x31sentry_protos/snuba/v1/trace_item_attribute.proto\"\x99\x03\n\x0fGetTraceRequest\x12\x31\n\x04meta\x18\x01 \x01(\x0b\x32#.sentry_protos.snuba.v1.RequestMeta\x12\x10\n\x08trace_id\x18\x02 \x01(\t\x12@\n\x05items\x18\x03 \x03(\x0b\x32\x31.sentry_protos.snuba.v1.GetTraceRequest.TraceItem\x12\x35\n\npage_token\x18\x04 \x01(\x0b\x32!.sentry_protos.snuba.v1.PageToken\x12\r\n\x05limit\x18\x05 \x01(\r\x1a\xb8\x01\n\tTraceItem\x12\x37\n\x04type\x18\x01 \x01(\x0e\x32%.sentry_protos.snuba.v1.TraceItemNameB\x02\x18\x01\x12\x38\n\nattributes\x18\x02 \x03(\x0b\x32$.sentry_protos.snuba.v1.AttributeKey\x12\x38\n\titem_type\x18\x03 \x01(\x0e\x32%.sentry_protos.snuba.v1.TraceItemType\"\x9f\x05\n\x10GetTraceResponse\x12\x10\n\x08trace_id\x18\x01 \x01(\t\x12\x32\n\x04meta\x18\x02 \x01(\x0b\x32$.sentry_protos.snuba.v1.ResponseMeta\x12G\n\x0bitem_groups\x18\x03 \x03(\x0b\x32\x32.sentry_protos.snuba.v1.GetTraceResponse.ItemGroup\x12\x35\n\npage_token\x18\x04 \x01(\x0b\x32!.sentry_protos.snuba.v1.PageToken\x1a\x85\x02\n\x04Item\x12\n\n\x02id\x18\x01 \x01(\t\x12-\n\ttimestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12K\n\nattributes\x18\x03 \x03(\x0b\x32\x37.sentry_protos.snuba.v1.GetTraceResponse.Item.Attribute\x1au\n\tAttribute\x12\x31\n\x03key\x18\x01 \x01(\x0b\x32$.sentry_protos.snuba.v1.AttributeKey\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32&.sentry_protos.snuba.v1.AttributeValue\x1a\xbc\x01\n\tItemGroup\x12\x37\n\x04type\x18\x01 \x01(\x0e\x32%.sentry_protos.snuba.v1.TraceItemNameB\x02\x18\x01\x12<\n\x05items\x18\x02 \x03(\x0b\x32-.sentry_protos.snuba.v1.GetTraceResponse.Item\x12\x38\n\titem_type\x18\x03 \x01(\x0e\x32%.sentry_protos.snuba.v1.TraceItemTypeb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sentry_protos.snuba.v1.endpoint_get_trace_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_GETTRACEREQUEST_TRACEITEM'].fields_by_name['type']._loaded_options = None + _globals['_GETTRACEREQUEST_TRACEITEM'].fields_by_name['type']._serialized_options = b'\030\001' + _globals['_GETTRACERESPONSE_ITEMGROUP'].fields_by_name['type']._loaded_options = None + _globals['_GETTRACERESPONSE_ITEMGROUP'].fields_by_name['type']._serialized_options = b'\030\001' + _globals['_GETTRACEREQUEST']._serialized_start=205 + _globals['_GETTRACEREQUEST']._serialized_end=614 + _globals['_GETTRACEREQUEST_TRACEITEM']._serialized_start=430 + _globals['_GETTRACEREQUEST_TRACEITEM']._serialized_end=614 + _globals['_GETTRACERESPONSE']._serialized_start=617 + _globals['_GETTRACERESPONSE']._serialized_end=1288 + _globals['_GETTRACERESPONSE_ITEM']._serialized_start=836 + _globals['_GETTRACERESPONSE_ITEM']._serialized_end=1097 + _globals['_GETTRACERESPONSE_ITEM_ATTRIBUTE']._serialized_start=980 + _globals['_GETTRACERESPONSE_ITEM_ATTRIBUTE']._serialized_end=1097 + _globals['_GETTRACERESPONSE_ITEMGROUP']._serialized_start=1100 + _globals['_GETTRACERESPONSE_ITEMGROUP']._serialized_end=1288 +# @@protoc_insertion_point(module_scope) diff --git a/py/sentry_protos/snuba/v1/endpoint_get_trace_pb2.pyi b/py/sentry_protos/snuba/v1/endpoint_get_trace_pb2.pyi new file mode 100644 index 00000000..38151475 --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_get_trace_pb2.pyi @@ -0,0 +1,179 @@ +""" +@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 google.protobuf.timestamp_pb2 +import sentry_protos.snuba.v1.request_common_pb2 +import sentry_protos.snuba.v1.trace_item_attribute_pb2 +import typing + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class GetTraceRequest(google.protobuf.message.Message): + """GetTraceRequest lets you query a trace by trace_id, returning all its items. + + Each item will return every attributes by default or you can pass a list of + attributes to return for each item type. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class TraceItem(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + TYPE_FIELD_NUMBER: builtins.int + ATTRIBUTES_FIELD_NUMBER: builtins.int + ITEM_TYPE_FIELD_NUMBER: builtins.int + type: sentry_protos.snuba.v1.request_common_pb2.TraceItemName.ValueType + """DEPRECATED: use item_type instead""" + item_type: sentry_protos.snuba.v1.request_common_pb2.TraceItemType.ValueType + @property + def attributes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeKey]: + """If attributes is empty, all attributes will be returned for this type.""" + + def __init__( + self, + *, + type: sentry_protos.snuba.v1.request_common_pb2.TraceItemName.ValueType = ..., + attributes: collections.abc.Iterable[sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeKey] | None = ..., + item_type: sentry_protos.snuba.v1.request_common_pb2.TraceItemType.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["attributes", b"attributes", "item_type", b"item_type", "type", b"type"]) -> None: ... + + META_FIELD_NUMBER: builtins.int + TRACE_ID_FIELD_NUMBER: builtins.int + ITEMS_FIELD_NUMBER: builtins.int + PAGE_TOKEN_FIELD_NUMBER: builtins.int + LIMIT_FIELD_NUMBER: builtins.int + trace_id: builtins.str + limit: builtins.int + """Optional limit on the number of items to return per page. If not specified, + a default limit will be applied by the server. + """ + @property + def meta(self) -> sentry_protos.snuba.v1.request_common_pb2.RequestMeta: ... + @property + def items(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___GetTraceRequest.TraceItem]: + """A list of items and their attributes to return in the response.""" + + @property + def page_token(self) -> sentry_protos.snuba.v1.request_common_pb2.PageToken: + """Optional page token for pagination. If provided, returns the next page of results.""" + + def __init__( + self, + *, + meta: sentry_protos.snuba.v1.request_common_pb2.RequestMeta | None = ..., + trace_id: builtins.str = ..., + items: collections.abc.Iterable[global___GetTraceRequest.TraceItem] | None = ..., + page_token: sentry_protos.snuba.v1.request_common_pb2.PageToken | None = ..., + limit: builtins.int = ..., + ) -> 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["items", b"items", "limit", b"limit", "meta", b"meta", "page_token", b"page_token", "trace_id", b"trace_id"]) -> None: ... + +global___GetTraceRequest = GetTraceRequest + +@typing.final +class GetTraceResponse(google.protobuf.message.Message): + """GetTraceResponse returns a trace and all its items.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class Item(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class Attribute(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + @property + def key(self) -> sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeKey: ... + @property + def value(self) -> sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeValue: ... + def __init__( + self, + *, + key: sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeKey | None = ..., + value: sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeValue | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... + + ID_FIELD_NUMBER: builtins.int + TIMESTAMP_FIELD_NUMBER: builtins.int + ATTRIBUTES_FIELD_NUMBER: builtins.int + id: builtins.str + @property + def timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + @property + def attributes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___GetTraceResponse.Item.Attribute]: ... + def __init__( + self, + *, + id: builtins.str = ..., + timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + attributes: collections.abc.Iterable[global___GetTraceResponse.Item.Attribute] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["timestamp", b"timestamp"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["attributes", b"attributes", "id", b"id", "timestamp", b"timestamp"]) -> None: ... + + @typing.final + class ItemGroup(google.protobuf.message.Message): + """ItemGroup is a list of items of a specific type.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + TYPE_FIELD_NUMBER: builtins.int + ITEMS_FIELD_NUMBER: builtins.int + ITEM_TYPE_FIELD_NUMBER: builtins.int + type: sentry_protos.snuba.v1.request_common_pb2.TraceItemName.ValueType + """DEPRECATED: use item_type instead""" + item_type: sentry_protos.snuba.v1.request_common_pb2.TraceItemType.ValueType + @property + def items(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___GetTraceResponse.Item]: ... + def __init__( + self, + *, + type: sentry_protos.snuba.v1.request_common_pb2.TraceItemName.ValueType = ..., + items: collections.abc.Iterable[global___GetTraceResponse.Item] | None = ..., + item_type: sentry_protos.snuba.v1.request_common_pb2.TraceItemType.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["item_type", b"item_type", "items", b"items", "type", b"type"]) -> None: ... + + TRACE_ID_FIELD_NUMBER: builtins.int + META_FIELD_NUMBER: builtins.int + ITEM_GROUPS_FIELD_NUMBER: builtins.int + PAGE_TOKEN_FIELD_NUMBER: builtins.int + trace_id: builtins.str + @property + def meta(self) -> sentry_protos.snuba.v1.request_common_pb2.ResponseMeta: ... + @property + def item_groups(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___GetTraceResponse.ItemGroup]: ... + @property + def page_token(self) -> sentry_protos.snuba.v1.request_common_pb2.PageToken: + """Page token for the next page of results.""" + + def __init__( + self, + *, + trace_id: builtins.str = ..., + meta: sentry_protos.snuba.v1.request_common_pb2.ResponseMeta | None = ..., + item_groups: collections.abc.Iterable[global___GetTraceResponse.ItemGroup] | None = ..., + page_token: sentry_protos.snuba.v1.request_common_pb2.PageToken | 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["item_groups", b"item_groups", "meta", b"meta", "page_token", b"page_token", "trace_id", b"trace_id"]) -> None: ... + +global___GetTraceResponse = GetTraceResponse diff --git a/py/sentry_protos/snuba/v1/endpoint_get_trace_pb2_grpc.py b/py/sentry_protos/snuba/v1/endpoint_get_trace_pb2_grpc.py new file mode 100644 index 00000000..c73d6409 --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_get_trace_pb2_grpc.py @@ -0,0 +1,29 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.65.4' +GRPC_VERSION = grpc.__version__ +EXPECTED_ERROR_RELEASE = '1.66.0' +SCHEDULED_RELEASE_DATE = 'August 6, 2024' +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + warnings.warn( + f'The grpc package installed is at version {GRPC_VERSION},' + + f' but the generated code in sentry_protos/snuba/v1/endpoint_get_trace_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + + f' This warning will become an error in {EXPECTED_ERROR_RELEASE},' + + f' scheduled for release on {SCHEDULED_RELEASE_DATE}.', + RuntimeWarning + ) diff --git a/py/sentry_protos/snuba/v1/endpoint_get_trace_pb2_grpc.pyi b/py/sentry_protos/snuba/v1/endpoint_get_trace_pb2_grpc.pyi new file mode 100644 index 00000000..a6a9cff9 --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_get_trace_pb2_grpc.pyi @@ -0,0 +1,17 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import grpc +import grpc.aio +import typing + +_T = typing.TypeVar("_T") + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg] + ... diff --git a/py/sentry_protos/snuba/v1/endpoint_get_traces_pb2.py b/py/sentry_protos/snuba/v1/endpoint_get_traces_pb2.py new file mode 100644 index 00000000..e8ce7bbf --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_get_traces_pb2.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: sentry_protos/snuba/v1/endpoint_get_traces.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from sentry_protos.snuba.v1 import request_common_pb2 as sentry__protos_dot_snuba_dot_v1_dot_request__common__pb2 +from sentry_protos.snuba.v1 import trace_item_attribute_pb2 as sentry__protos_dot_snuba_dot_v1_dot_trace__item__attribute__pb2 +from sentry_protos.snuba.v1 import trace_item_filter_pb2 as sentry__protos_dot_snuba_dot_v1_dot_trace__item__filter__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n0sentry_protos/snuba/v1/endpoint_get_traces.proto\x12\x16sentry_protos.snuba.v1\x1a+sentry_protos/snuba/v1/request_common.proto\x1a\x31sentry_protos/snuba/v1/trace_item_attribute.proto\x1a.sentry_protos/snuba/v1/trace_item_filter.proto\"\xfc\x04\n\x0eTraceAttribute\x12\x37\n\x03key\x18\x01 \x01(\x0e\x32*.sentry_protos.snuba.v1.TraceAttribute.Key\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32&.sentry_protos.snuba.v1.AttributeValue\x12\x37\n\x04type\x18\x03 \x01(\x0e\x32).sentry_protos.snuba.v1.AttributeKey.Type\"\xc0\x03\n\x03Key\x12\x13\n\x0fKEY_UNSPECIFIED\x10\x00\x12\x10\n\x0cKEY_TRACE_ID\x10\x01\x12\x17\n\x13KEY_START_TIMESTAMP\x10\x02\x12\x16\n\x12KEY_ROOT_SPAN_NAME\x10\x03\x12\x18\n\x14KEY_TOTAL_ITEM_COUNT\x10\x04\x12\x1b\n\x17KEY_FILTERED_ITEM_COUNT\x10\x05\x12\x1d\n\x19KEY_ROOT_SPAN_DURATION_MS\x10\x06\x12\x1c\n\x18KEY_ROOT_SPAN_PROJECT_ID\x10\x07\x12\x1a\n\x16KEY_EARLIEST_SPAN_NAME\x10\x08\x12\x1e\n\x1aKEY_EARLIEST_FRONTEND_SPAN\x10\t\x12\x15\n\x11KEY_END_TIMESTAMP\x10\n\x12 \n\x1cKEY_EARLIEST_SPAN_PROJECT_ID\x10\x0b\x12!\n\x1dKEY_EARLIEST_SPAN_DURATION_MS\x10\x0c\x12)\n%KEY_EARLIEST_FRONTEND_SPAN_PROJECT_ID\x10\r\x12*\n&KEY_EARLIEST_FRONTEND_SPAN_DURATION_MS\x10\x0e\"\xeb\x04\n\x10GetTracesRequest\x12\x31\n\x04meta\x18\x01 \x01(\x0b\x32#.sentry_protos.snuba.v1.RequestMeta\x12\x35\n\npage_token\x18\x02 \x01(\x0b\x32!.sentry_protos.snuba.v1.PageToken\x12\r\n\x05limit\x18\x03 \x01(\r\x12\x45\n\x07\x66ilters\x18\x04 \x03(\x0b\x32\x34.sentry_protos.snuba.v1.GetTracesRequest.TraceFilter\x12\x42\n\x08order_by\x18\x05 \x03(\x0b\x32\x30.sentry_protos.snuba.v1.GetTracesRequest.OrderBy\x12:\n\nattributes\x18\x06 \x03(\x0b\x32&.sentry_protos.snuba.v1.TraceAttribute\x1aV\n\x07OrderBy\x12\x37\n\x03key\x18\x01 \x01(\x0e\x32*.sentry_protos.snuba.v1.TraceAttribute.Key\x12\x12\n\ndescending\x18\x02 \x01(\x08\x1a\xbe\x01\n\x0bTraceFilter\x12<\n\titem_name\x18\x01 \x01(\x0e\x32%.sentry_protos.snuba.v1.TraceItemNameB\x02\x18\x01\x12\x37\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\'.sentry_protos.snuba.v1.TraceItemFilter\x12\x38\n\titem_type\x18\x03 \x01(\x0e\x32%.sentry_protos.snuba.v1.TraceItemType\"\x84\x02\n\x11GetTracesResponse\x12\x35\n\npage_token\x18\x01 \x01(\x0b\x32!.sentry_protos.snuba.v1.PageToken\x12\x32\n\x04meta\x18\x02 \x01(\x0b\x32$.sentry_protos.snuba.v1.ResponseMeta\x12?\n\x06traces\x18\x03 \x03(\x0b\x32/.sentry_protos.snuba.v1.GetTracesResponse.Trace\x1a\x43\n\x05Trace\x12:\n\nattributes\x18\x01 \x03(\x0b\x32&.sentry_protos.snuba.v1.TraceAttributeb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sentry_protos.snuba.v1.endpoint_get_traces_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_GETTRACESREQUEST_TRACEFILTER'].fields_by_name['item_name']._loaded_options = None + _globals['_GETTRACESREQUEST_TRACEFILTER'].fields_by_name['item_name']._serialized_options = b'\030\001' + _globals['_TRACEATTRIBUTE']._serialized_start=221 + _globals['_TRACEATTRIBUTE']._serialized_end=857 + _globals['_TRACEATTRIBUTE_KEY']._serialized_start=409 + _globals['_TRACEATTRIBUTE_KEY']._serialized_end=857 + _globals['_GETTRACESREQUEST']._serialized_start=860 + _globals['_GETTRACESREQUEST']._serialized_end=1479 + _globals['_GETTRACESREQUEST_ORDERBY']._serialized_start=1200 + _globals['_GETTRACESREQUEST_ORDERBY']._serialized_end=1286 + _globals['_GETTRACESREQUEST_TRACEFILTER']._serialized_start=1289 + _globals['_GETTRACESREQUEST_TRACEFILTER']._serialized_end=1479 + _globals['_GETTRACESRESPONSE']._serialized_start=1482 + _globals['_GETTRACESRESPONSE']._serialized_end=1742 + _globals['_GETTRACESRESPONSE_TRACE']._serialized_start=1675 + _globals['_GETTRACESRESPONSE_TRACE']._serialized_end=1742 +# @@protoc_insertion_point(module_scope) diff --git a/py/sentry_protos/snuba/v1/endpoint_get_traces_pb2.pyi b/py/sentry_protos/snuba/v1/endpoint_get_traces_pb2.pyi new file mode 100644 index 00000000..e3c8cd1d --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_get_traces_pb2.pyi @@ -0,0 +1,280 @@ +""" +@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 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 sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class TraceAttribute(google.protobuf.message.Message): + """TraceAttribute represents the attribute of a trace.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _Key: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _KeyEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[TraceAttribute._Key.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + KEY_UNSPECIFIED: TraceAttribute._Key.ValueType # 0 + KEY_TRACE_ID: TraceAttribute._Key.ValueType # 1 + KEY_START_TIMESTAMP: TraceAttribute._Key.ValueType # 2 + """KEY_START_TIMESTAMP will return the earliest timestamp seen in the trace.""" + KEY_ROOT_SPAN_NAME: TraceAttribute._Key.ValueType # 3 + """KEY_ROOT_SPAN_NAME will return the name of the root (segment) span of + the trace. + """ + KEY_TOTAL_ITEM_COUNT: TraceAttribute._Key.ValueType # 4 + """KEY_TOTAL_ITEM_COUNT will return the count of all the items in a trace, + regardless of the conditions applied. + """ + KEY_FILTERED_ITEM_COUNT: TraceAttribute._Key.ValueType # 5 + """KEY_FILTERED_ITEM_COUNT will return the count of items where the filters + apply. + For example, in a trace with 5 items (1 http.server span, 4 db spans), + if we query for traces with span.op == "db", this will return 4. + """ + KEY_ROOT_SPAN_DURATION_MS: TraceAttribute._Key.ValueType # 6 + """KEY_ROOT_SPAN_DURATION_MS will return the duration of the root span in + milliseconds. + """ + KEY_ROOT_SPAN_PROJECT_ID: TraceAttribute._Key.ValueType # 7 + """KEY_ROOT_SPAN_PROJECT_ID returns the project ID associated with the root + span. + """ + KEY_EARLIEST_SPAN_NAME: TraceAttribute._Key.ValueType # 8 + """KEY_EARLIEST_SPAN_NAME returns the name of the earliest span of a trace, + regardless if it's a root span or not + """ + KEY_EARLIEST_FRONTEND_SPAN: TraceAttribute._Key.ValueType # 9 + """KEY_EARLIEST_FRONTEND_SPAN returns the name of the earliest span emitted + by the frontend (for example, span op being `pageload` or `navigation`). + """ + KEY_END_TIMESTAMP: TraceAttribute._Key.ValueType # 10 + """KEY_END_TIMESTAMP will return the latest timestamp seen in the trace.""" + KEY_EARLIEST_SPAN_PROJECT_ID: TraceAttribute._Key.ValueType # 11 + """KEY_EARLIEST_SPAN_PROJECT_ID returns the project ID associated with the earliest span.""" + KEY_EARLIEST_SPAN_DURATION_MS: TraceAttribute._Key.ValueType # 12 + """KEY_EARLIEST_SPAN_DURATION_MS will return the duration of the earliest span in milliseconds.""" + KEY_EARLIEST_FRONTEND_SPAN_PROJECT_ID: TraceAttribute._Key.ValueType # 13 + """KEY_EARLIEST_FRONTEND_SPAN_PROJECT_ID returns the project ID associated with the earliest frontend span.""" + KEY_EARLIEST_FRONTEND_SPAN_DURATION_MS: TraceAttribute._Key.ValueType # 14 + """KEY_EARLIEST_FRONTEND_SPAN_DURATION_MS will return the duration of the earliest frontend span in milliseconds.""" + + class Key(_Key, metaclass=_KeyEnumTypeWrapper): + """Key lists the available trace attribute keys you can query.""" + + KEY_UNSPECIFIED: TraceAttribute.Key.ValueType # 0 + KEY_TRACE_ID: TraceAttribute.Key.ValueType # 1 + KEY_START_TIMESTAMP: TraceAttribute.Key.ValueType # 2 + """KEY_START_TIMESTAMP will return the earliest timestamp seen in the trace.""" + KEY_ROOT_SPAN_NAME: TraceAttribute.Key.ValueType # 3 + """KEY_ROOT_SPAN_NAME will return the name of the root (segment) span of + the trace. + """ + KEY_TOTAL_ITEM_COUNT: TraceAttribute.Key.ValueType # 4 + """KEY_TOTAL_ITEM_COUNT will return the count of all the items in a trace, + regardless of the conditions applied. + """ + KEY_FILTERED_ITEM_COUNT: TraceAttribute.Key.ValueType # 5 + """KEY_FILTERED_ITEM_COUNT will return the count of items where the filters + apply. + For example, in a trace with 5 items (1 http.server span, 4 db spans), + if we query for traces with span.op == "db", this will return 4. + """ + KEY_ROOT_SPAN_DURATION_MS: TraceAttribute.Key.ValueType # 6 + """KEY_ROOT_SPAN_DURATION_MS will return the duration of the root span in + milliseconds. + """ + KEY_ROOT_SPAN_PROJECT_ID: TraceAttribute.Key.ValueType # 7 + """KEY_ROOT_SPAN_PROJECT_ID returns the project ID associated with the root + span. + """ + KEY_EARLIEST_SPAN_NAME: TraceAttribute.Key.ValueType # 8 + """KEY_EARLIEST_SPAN_NAME returns the name of the earliest span of a trace, + regardless if it's a root span or not + """ + KEY_EARLIEST_FRONTEND_SPAN: TraceAttribute.Key.ValueType # 9 + """KEY_EARLIEST_FRONTEND_SPAN returns the name of the earliest span emitted + by the frontend (for example, span op being `pageload` or `navigation`). + """ + KEY_END_TIMESTAMP: TraceAttribute.Key.ValueType # 10 + """KEY_END_TIMESTAMP will return the latest timestamp seen in the trace.""" + KEY_EARLIEST_SPAN_PROJECT_ID: TraceAttribute.Key.ValueType # 11 + """KEY_EARLIEST_SPAN_PROJECT_ID returns the project ID associated with the earliest span.""" + KEY_EARLIEST_SPAN_DURATION_MS: TraceAttribute.Key.ValueType # 12 + """KEY_EARLIEST_SPAN_DURATION_MS will return the duration of the earliest span in milliseconds.""" + KEY_EARLIEST_FRONTEND_SPAN_PROJECT_ID: TraceAttribute.Key.ValueType # 13 + """KEY_EARLIEST_FRONTEND_SPAN_PROJECT_ID returns the project ID associated with the earliest frontend span.""" + KEY_EARLIEST_FRONTEND_SPAN_DURATION_MS: TraceAttribute.Key.ValueType # 14 + """KEY_EARLIEST_FRONTEND_SPAN_DURATION_MS will return the duration of the earliest frontend span in milliseconds.""" + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + key: global___TraceAttribute.Key.ValueType + type: sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeKey.Type.ValueType + """AttributeKey.Type will specify the type of the attribute we return. + It does not need to be sent when requesting an attribute. + """ + @property + def value(self) -> sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeValue: ... + def __init__( + self, + *, + key: global___TraceAttribute.Key.ValueType = ..., + value: sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeValue | None = ..., + type: sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeKey.Type.ValueType = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "type", b"type", "value", b"value"]) -> None: ... + +global___TraceAttribute = TraceAttribute + +@typing.final +class GetTracesRequest(google.protobuf.message.Message): + """GetTracesRequest lets you query traces with various attributes.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class OrderBy(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + DESCENDING_FIELD_NUMBER: builtins.int + key: global___TraceAttribute.Key.ValueType + descending: builtins.bool + def __init__( + self, + *, + key: global___TraceAttribute.Key.ValueType = ..., + descending: builtins.bool = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["descending", b"descending", "key", b"key"]) -> None: ... + + @typing.final + class TraceFilter(google.protobuf.message.Message): + """TraceFilter specifies conditions to apply on the items contained in a trace.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ITEM_NAME_FIELD_NUMBER: builtins.int + FILTER_FIELD_NUMBER: builtins.int + ITEM_TYPE_FIELD_NUMBER: builtins.int + item_name: sentry_protos.snuba.v1.request_common_pb2.TraceItemName.ValueType + """DEPRECATED: use item_type""" + item_type: sentry_protos.snuba.v1.request_common_pb2.TraceItemType.ValueType + """the item type we will apply the filter condition on.""" + @property + def filter(self) -> sentry_protos.snuba.v1.trace_item_filter_pb2.TraceItemFilter: ... + def __init__( + self, + *, + item_name: sentry_protos.snuba.v1.request_common_pb2.TraceItemName.ValueType = ..., + filter: sentry_protos.snuba.v1.trace_item_filter_pb2.TraceItemFilter | None = ..., + item_type: sentry_protos.snuba.v1.request_common_pb2.TraceItemType.ValueType = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["filter", b"filter"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["filter", b"filter", "item_name", b"item_name", "item_type", b"item_type"]) -> None: ... + + META_FIELD_NUMBER: builtins.int + PAGE_TOKEN_FIELD_NUMBER: builtins.int + LIMIT_FIELD_NUMBER: builtins.int + FILTERS_FIELD_NUMBER: builtins.int + ORDER_BY_FIELD_NUMBER: builtins.int + ATTRIBUTES_FIELD_NUMBER: builtins.int + limit: builtins.int + @property + def meta(self) -> sentry_protos.snuba.v1.request_common_pb2.RequestMeta: ... + @property + def page_token(self) -> sentry_protos.snuba.v1.request_common_pb2.PageToken: ... + @property + def filters(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___GetTracesRequest.TraceFilter]: + """List of filters on items of the trace we'll use when querying.""" + + @property + def order_by(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___GetTracesRequest.OrderBy]: + """List of attributes we'd like to order by.""" + + @property + def attributes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TraceAttribute]: + """List of attributes we want to query.""" + + def __init__( + self, + *, + meta: sentry_protos.snuba.v1.request_common_pb2.RequestMeta | None = ..., + page_token: sentry_protos.snuba.v1.request_common_pb2.PageToken | None = ..., + limit: builtins.int = ..., + filters: collections.abc.Iterable[global___GetTracesRequest.TraceFilter] | None = ..., + order_by: collections.abc.Iterable[global___GetTracesRequest.OrderBy] | None = ..., + attributes: collections.abc.Iterable[global___TraceAttribute] | 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["attributes", b"attributes", "filters", b"filters", "limit", b"limit", "meta", b"meta", "order_by", b"order_by", "page_token", b"page_token"]) -> None: ... + +global___GetTracesRequest = GetTracesRequest + +@typing.final +class GetTracesResponse(google.protobuf.message.Message): + """GetTracesResponse contains a list of traces returned by the request.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class Trace(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ATTRIBUTES_FIELD_NUMBER: builtins.int + @property + def attributes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TraceAttribute]: + """List of attributes queried.""" + + def __init__( + self, + *, + attributes: collections.abc.Iterable[global___TraceAttribute] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["attributes", b"attributes"]) -> None: ... + + PAGE_TOKEN_FIELD_NUMBER: builtins.int + META_FIELD_NUMBER: builtins.int + TRACES_FIELD_NUMBER: builtins.int + @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: ... + @property + def traces(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___GetTracesResponse.Trace]: + """List of traces matching conditions.""" + + def __init__( + self, + *, + page_token: sentry_protos.snuba.v1.request_common_pb2.PageToken | None = ..., + meta: sentry_protos.snuba.v1.request_common_pb2.ResponseMeta | None = ..., + traces: collections.abc.Iterable[global___GetTracesResponse.Trace] | 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["meta", b"meta", "page_token", b"page_token", "traces", b"traces"]) -> None: ... + +global___GetTracesResponse = GetTracesResponse diff --git a/py/sentry_protos/snuba/v1/endpoint_get_traces_pb2_grpc.py b/py/sentry_protos/snuba/v1/endpoint_get_traces_pb2_grpc.py new file mode 100644 index 00000000..897ee395 --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_get_traces_pb2_grpc.py @@ -0,0 +1,29 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.65.4' +GRPC_VERSION = grpc.__version__ +EXPECTED_ERROR_RELEASE = '1.66.0' +SCHEDULED_RELEASE_DATE = 'August 6, 2024' +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + warnings.warn( + f'The grpc package installed is at version {GRPC_VERSION},' + + f' but the generated code in sentry_protos/snuba/v1/endpoint_get_traces_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + + f' This warning will become an error in {EXPECTED_ERROR_RELEASE},' + + f' scheduled for release on {SCHEDULED_RELEASE_DATE}.', + RuntimeWarning + ) diff --git a/py/sentry_protos/snuba/v1/endpoint_get_traces_pb2_grpc.pyi b/py/sentry_protos/snuba/v1/endpoint_get_traces_pb2_grpc.pyi new file mode 100644 index 00000000..a6a9cff9 --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_get_traces_pb2_grpc.pyi @@ -0,0 +1,17 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import grpc +import grpc.aio +import typing + +_T = typing.TypeVar("_T") + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg] + ... diff --git a/py/sentry_protos/snuba/v1/endpoint_time_series_pb2.py b/py/sentry_protos/snuba/v1/endpoint_time_series_pb2.py new file mode 100644 index 00000000..2badbe0b --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_time_series_pb2.py @@ -0,0 +1,54 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: sentry_protos/snuba/v1/endpoint_time_series.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 +from sentry_protos.snuba.v1 import attribute_conditional_aggregation_pb2 as sentry__protos_dot_snuba_dot_v1_dot_attribute__conditional__aggregation__pb2 +from sentry_protos.snuba.v1 import formula_pb2 as sentry__protos_dot_snuba_dot_v1_dot_formula__pb2 +from sentry_protos.snuba.v1 import request_common_pb2 as sentry__protos_dot_snuba_dot_v1_dot_request__common__pb2 +from sentry_protos.snuba.v1 import trace_item_attribute_pb2 as sentry__protos_dot_snuba_dot_v1_dot_trace__item__attribute__pb2 +from sentry_protos.snuba.v1 import trace_item_filter_pb2 as sentry__protos_dot_snuba_dot_v1_dot_trace__item__filter__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n1sentry_protos/snuba/v1/endpoint_time_series.proto\x12\x16sentry_protos.snuba.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a>sentry_protos/snuba/v1/attribute_conditional_aggregation.proto\x1a$sentry_protos/snuba/v1/formula.proto\x1a+sentry_protos/snuba/v1/request_common.proto\x1a\x31sentry_protos/snuba/v1/trace_item_attribute.proto\x1a.sentry_protos/snuba/v1/trace_item_filter.proto\"\x9a\x03\n\x11TimeSeriesRequest\x12\x31\n\x04meta\x18\x01 \x01(\x0b\x32#.sentry_protos.snuba.v1.RequestMeta\x12\x37\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\'.sentry_protos.snuba.v1.TraceItemFilter\x12\x46\n\x0c\x61ggregations\x18\x03 \x03(\x0b\x32,.sentry_protos.snuba.v1.AttributeAggregationB\x02\x18\x01\x12\x37\n\x0b\x65xpressions\x18\x06 \x03(\x0b\x32\".sentry_protos.snuba.v1.Expression\x12\x18\n\x10granularity_secs\x18\x04 \x01(\x04\x12\x36\n\x08group_by\x18\x05 \x03(\x0b\x32$.sentry_protos.snuba.v1.AttributeKey\x12\x46\n\rtrace_filters\x18\x07 \x03(\x0b\x32/.sentry_protos.snuba.v1.TraceItemFilterWithType\"\xa2\x05\n\nExpression\x12\x43\n\x0b\x61ggregation\x18\x01 \x01(\x0b\x32,.sentry_protos.snuba.v1.AttributeAggregationH\x00\x12\x43\n\x07\x66ormula\x18\x02 \x01(\x0b\x32\x30.sentry_protos.snuba.v1.Expression.BinaryFormulaH\x00\x12Z\n\x17\x63onditional_aggregation\x18\x04 \x01(\x0b\x32\x37.sentry_protos.snuba.v1.AttributeConditionalAggregationH\x00\x12\x32\n\x07literal\x18\x05 \x01(\x0b\x32\x1f.sentry_protos.snuba.v1.LiteralH\x00\x12\r\n\x05label\x18\x03 \x01(\t\x1a\xdc\x02\n\rBinaryFormula\x12?\n\x02op\x18\x01 \x01(\x0e\x32\x33.sentry_protos.snuba.v1.Expression.BinaryFormula.Op\x12\x30\n\x04left\x18\x02 \x01(\x0b\x32\".sentry_protos.snuba.v1.Expression\x12\x31\n\x05right\x18\x03 \x01(\x0b\x32\".sentry_protos.snuba.v1.Expression\x12\x1e\n\x14\x64\x65\x66\x61ult_value_double\x18\x04 \x01(\x01H\x00\x12\x1d\n\x13\x64\x65\x66\x61ult_value_int64\x18\x05 \x01(\x03H\x00\"U\n\x02Op\x12\x12\n\x0eOP_UNSPECIFIED\x10\x00\x12\r\n\tOP_DIVIDE\x10\x01\x12\x0f\n\x0bOP_MULTIPLY\x10\x02\x12\n\n\x06OP_ADD\x10\x03\x12\x0f\n\x0bOP_SUBTRACT\x10\x04\x42\x0f\n\rdefault_valueB\x0c\n\nexpression\"\xb3\x01\n\tDataPoint\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x02\x12\x14\n\x0c\x64\x61ta_present\x18\x02 \x01(\x08\x12\x19\n\x11\x61vg_sampling_rate\x18\x03 \x01(\x02\x12\x17\n\x0bis_reliable\x18\x04 \x01(\x08\x42\x02\x18\x01\x12\x38\n\x0breliability\x18\x05 \x01(\x0e\x32#.sentry_protos.snuba.v1.Reliability\x12\x14\n\x0csample_count\x18\x06 \x01(\x03\"\xc5\x02\n\nTimeSeries\x12\r\n\x05label\x18\x01 \x01(\t\x12V\n\x13group_by_attributes\x18\x02 \x03(\x0b\x32\x39.sentry_protos.snuba.v1.TimeSeries.GroupByAttributesEntry\x12+\n\x07\x62uckets\x18\x03 \x03(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x36\n\x0b\x64\x61ta_points\x18\x04 \x03(\x0b\x32!.sentry_protos.snuba.v1.DataPoint\x12\x12\n\nnum_events\x18\x05 \x01(\x04\x12\x1d\n\x11\x61vg_sampling_rate\x18\x06 \x01(\x02\x42\x02\x18\x01\x1a\x38\n\x16GroupByAttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x87\x01\n\x12TimeSeriesResponse\x12=\n\x11result_timeseries\x18\x01 \x03(\x0b\x32\".sentry_protos.snuba.v1.TimeSeries\x12\x32\n\x04meta\x18\x05 \x01(\x0b\x32$.sentry_protos.snuba.v1.ResponseMetab\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sentry_protos.snuba.v1.endpoint_time_series_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_TIMESERIESREQUEST'].fields_by_name['aggregations']._loaded_options = None + _globals['_TIMESERIESREQUEST'].fields_by_name['aggregations']._serialized_options = b'\030\001' + _globals['_DATAPOINT'].fields_by_name['is_reliable']._loaded_options = None + _globals['_DATAPOINT'].fields_by_name['is_reliable']._serialized_options = b'\030\001' + _globals['_TIMESERIES_GROUPBYATTRIBUTESENTRY']._loaded_options = None + _globals['_TIMESERIES_GROUPBYATTRIBUTESENTRY']._serialized_options = b'8\001' + _globals['_TIMESERIES'].fields_by_name['avg_sampling_rate']._loaded_options = None + _globals['_TIMESERIES'].fields_by_name['avg_sampling_rate']._serialized_options = b'\030\001' + _globals['_TIMESERIESREQUEST']._serialized_start=357 + _globals['_TIMESERIESREQUEST']._serialized_end=767 + _globals['_EXPRESSION']._serialized_start=770 + _globals['_EXPRESSION']._serialized_end=1444 + _globals['_EXPRESSION_BINARYFORMULA']._serialized_start=1082 + _globals['_EXPRESSION_BINARYFORMULA']._serialized_end=1430 + _globals['_EXPRESSION_BINARYFORMULA_OP']._serialized_start=1328 + _globals['_EXPRESSION_BINARYFORMULA_OP']._serialized_end=1413 + _globals['_DATAPOINT']._serialized_start=1447 + _globals['_DATAPOINT']._serialized_end=1626 + _globals['_TIMESERIES']._serialized_start=1629 + _globals['_TIMESERIES']._serialized_end=1954 + _globals['_TIMESERIES_GROUPBYATTRIBUTESENTRY']._serialized_start=1898 + _globals['_TIMESERIES_GROUPBYATTRIBUTESENTRY']._serialized_end=1954 + _globals['_TIMESERIESRESPONSE']._serialized_start=1957 + _globals['_TIMESERIESRESPONSE']._serialized_end=2092 +# @@protoc_insertion_point(module_scope) diff --git a/py/sentry_protos/snuba/v1/endpoint_time_series_pb2.pyi b/py/sentry_protos/snuba/v1/endpoint_time_series_pb2.pyi new file mode 100644 index 00000000..f8bd0d19 --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_time_series_pb2.pyi @@ -0,0 +1,308 @@ +""" +@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 google.protobuf.timestamp_pb2 +import sentry_protos.snuba.v1.attribute_conditional_aggregation_pb2 +import sentry_protos.snuba.v1.formula_pb2 +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 sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class TimeSeriesRequest(google.protobuf.message.Message): + """This is a request to the TimeSeries endpoint, + it is used to do a timeseries aggregation of a given attribute + across traces. + + ex: avg(span.duration) group by db.system + this (conceptually) will return a 2d graph where y-axis is avg(span.duration), + x-axis is time, and there is a separate line/function on the graph for each db.system value + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + META_FIELD_NUMBER: builtins.int + FILTER_FIELD_NUMBER: builtins.int + AGGREGATIONS_FIELD_NUMBER: builtins.int + EXPRESSIONS_FIELD_NUMBER: builtins.int + GRANULARITY_SECS_FIELD_NUMBER: builtins.int + GROUP_BY_FIELD_NUMBER: builtins.int + TRACE_FILTERS_FIELD_NUMBER: builtins.int + granularity_secs: builtins.int + """the level of detail in the timeseries graph, + low granularity is very detailed, high is less detail. + ex: if granularity is 1s you will have a data point every 1s, + if its 1m you have a data point every 1m + tip: for performance, if the query is is over a large time period you should + have high granularity + """ + @property + def meta(self) -> sentry_protos.snuba.v1.request_common_pb2.RequestMeta: + """metadata about the request + used to filter time range, organization, project, etc. + """ + + @property + def filter(self) -> sentry_protos.snuba.v1.trace_item_filter_pb2.TraceItemFilter: + """filters out spans (TraceItems) that dont meet the criteria + ex: avg(span.duration) where span.environment = 'production' + """ + + @property + def aggregations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeAggregation]: + """deprecated, please use expressions instead""" + + @property + def expressions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: + """the actual aggregation to compute ex: avg(span.duration) or avg(span.duration) / sum(span.duration)""" + + @property + def group_by(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeKey]: + """attribute key to group by + ex: span.environment might give 3 timeseries lines, + one for prod, one for dev etc + """ + + @property + def trace_filters(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[sentry_protos.snuba.v1.request_common_pb2.TraceItemFilterWithType]: + """A list of filters applied to each item type provided. These filters will be applied on a trace level to find traces + that contain each of the provided items with matching conditions. The overall request will then only apply on those traces. + If specified, the endpoint will only consider traces that match all the filters. + ex: Find the number of spans in traces containing a span with op = 'db' that also contain errors with message = 'timeout' + """ + + def __init__( + self, + *, + meta: sentry_protos.snuba.v1.request_common_pb2.RequestMeta | None = ..., + filter: sentry_protos.snuba.v1.trace_item_filter_pb2.TraceItemFilter | None = ..., + aggregations: collections.abc.Iterable[sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeAggregation] | None = ..., + expressions: collections.abc.Iterable[global___Expression] | None = ..., + granularity_secs: builtins.int = ..., + group_by: collections.abc.Iterable[sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeKey] | None = ..., + trace_filters: collections.abc.Iterable[sentry_protos.snuba.v1.request_common_pb2.TraceItemFilterWithType] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["filter", b"filter", "meta", b"meta"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["aggregations", b"aggregations", "expressions", b"expressions", "filter", b"filter", "granularity_secs", b"granularity_secs", "group_by", b"group_by", "meta", b"meta", "trace_filters", b"trace_filters"]) -> None: ... + +global___TimeSeriesRequest = TimeSeriesRequest + +@typing.final +class Expression(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class BinaryFormula(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _Op: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _OpEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Expression.BinaryFormula._Op.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + OP_UNSPECIFIED: Expression.BinaryFormula._Op.ValueType # 0 + OP_DIVIDE: Expression.BinaryFormula._Op.ValueType # 1 + OP_MULTIPLY: Expression.BinaryFormula._Op.ValueType # 2 + OP_ADD: Expression.BinaryFormula._Op.ValueType # 3 + OP_SUBTRACT: Expression.BinaryFormula._Op.ValueType # 4 + + class Op(_Op, metaclass=_OpEnumTypeWrapper): ... + OP_UNSPECIFIED: Expression.BinaryFormula.Op.ValueType # 0 + OP_DIVIDE: Expression.BinaryFormula.Op.ValueType # 1 + OP_MULTIPLY: Expression.BinaryFormula.Op.ValueType # 2 + OP_ADD: Expression.BinaryFormula.Op.ValueType # 3 + OP_SUBTRACT: Expression.BinaryFormula.Op.ValueType # 4 + + OP_FIELD_NUMBER: builtins.int + LEFT_FIELD_NUMBER: builtins.int + RIGHT_FIELD_NUMBER: builtins.int + DEFAULT_VALUE_DOUBLE_FIELD_NUMBER: builtins.int + DEFAULT_VALUE_INT64_FIELD_NUMBER: builtins.int + op: global___Expression.BinaryFormula.Op.ValueType + default_value_double: builtins.float + default_value_int64: builtins.int + @property + def left(self) -> global___Expression: ... + @property + def right(self) -> global___Expression: ... + def __init__( + self, + *, + op: global___Expression.BinaryFormula.Op.ValueType = ..., + left: global___Expression | None = ..., + right: global___Expression | None = ..., + default_value_double: builtins.float = ..., + default_value_int64: builtins.int = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["default_value", b"default_value", "default_value_double", b"default_value_double", "default_value_int64", b"default_value_int64", "left", b"left", "right", b"right"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["default_value", b"default_value", "default_value_double", b"default_value_double", "default_value_int64", b"default_value_int64", "left", b"left", "op", b"op", "right", b"right"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["default_value", b"default_value"]) -> typing.Literal["default_value_double", "default_value_int64"] | None: ... + + AGGREGATION_FIELD_NUMBER: builtins.int + FORMULA_FIELD_NUMBER: builtins.int + CONDITIONAL_AGGREGATION_FIELD_NUMBER: builtins.int + LITERAL_FIELD_NUMBER: builtins.int + LABEL_FIELD_NUMBER: builtins.int + label: builtins.str + @property + def aggregation(self) -> sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeAggregation: ... + @property + def formula(self) -> global___Expression.BinaryFormula: ... + @property + def conditional_aggregation(self) -> sentry_protos.snuba.v1.attribute_conditional_aggregation_pb2.AttributeConditionalAggregation: ... + @property + def literal(self) -> sentry_protos.snuba.v1.formula_pb2.Literal: ... + def __init__( + self, + *, + aggregation: sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeAggregation | None = ..., + formula: global___Expression.BinaryFormula | None = ..., + conditional_aggregation: sentry_protos.snuba.v1.attribute_conditional_aggregation_pb2.AttributeConditionalAggregation | None = ..., + literal: sentry_protos.snuba.v1.formula_pb2.Literal | None = ..., + label: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["aggregation", b"aggregation", "conditional_aggregation", b"conditional_aggregation", "expression", b"expression", "formula", b"formula", "literal", b"literal"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["aggregation", b"aggregation", "conditional_aggregation", b"conditional_aggregation", "expression", b"expression", "formula", b"formula", "label", b"label", "literal", b"literal"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["expression", b"expression"]) -> typing.Literal["aggregation", "formula", "conditional_aggregation", "literal"] | None: ... + +global___Expression = Expression + +@typing.final +class DataPoint(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + DATA_FIELD_NUMBER: builtins.int + DATA_PRESENT_FIELD_NUMBER: builtins.int + AVG_SAMPLING_RATE_FIELD_NUMBER: builtins.int + IS_RELIABLE_FIELD_NUMBER: builtins.int + RELIABILITY_FIELD_NUMBER: builtins.int + SAMPLE_COUNT_FIELD_NUMBER: builtins.int + data: builtins.float + data_present: builtins.bool + """false if this datapoint is empty, true otherwise. + optional, if not set assume true. + used for sparse time series + """ + avg_sampling_rate: builtins.float + """only set for extrapolated data points, 0 otherwise + the extrapolated avg sampling rate for this data point + """ + is_reliable: builtins.bool + """deprecated""" + reliability: sentry_protos.snuba.v1.trace_item_attribute_pb2.Reliability.ValueType + """the reliability of the data value based on math based on confidence intervals and sample size""" + sample_count: builtins.int + """the sample count for this data point""" + def __init__( + self, + *, + data: builtins.float = ..., + data_present: builtins.bool = ..., + avg_sampling_rate: builtins.float = ..., + is_reliable: builtins.bool = ..., + reliability: sentry_protos.snuba.v1.trace_item_attribute_pb2.Reliability.ValueType = ..., + sample_count: builtins.int = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["avg_sampling_rate", b"avg_sampling_rate", "data", b"data", "data_present", b"data_present", "is_reliable", b"is_reliable", "reliability", b"reliability", "sample_count", b"sample_count"]) -> None: ... + +global___DataPoint = DataPoint + +@typing.final +class TimeSeries(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class GroupByAttributesEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str + def __init__( + self, + *, + key: builtins.str = ..., + value: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... + + LABEL_FIELD_NUMBER: builtins.int + GROUP_BY_ATTRIBUTES_FIELD_NUMBER: builtins.int + BUCKETS_FIELD_NUMBER: builtins.int + DATA_POINTS_FIELD_NUMBER: builtins.int + NUM_EVENTS_FIELD_NUMBER: builtins.int + AVG_SAMPLING_RATE_FIELD_NUMBER: builtins.int + label: builtins.str + num_events: builtins.int + """number of events used to calculate this timeseries""" + avg_sampling_rate: builtins.float + """deprecated""" + @property + def group_by_attributes(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: + """the names and values of the attribute keys which + were in the group by + """ + + @property + def buckets(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[google.protobuf.timestamp_pb2.Timestamp]: + """time bucket for each data point in the timeseries""" + + @property + def data_points(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___DataPoint]: ... + def __init__( + self, + *, + label: builtins.str = ..., + group_by_attributes: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + buckets: collections.abc.Iterable[google.protobuf.timestamp_pb2.Timestamp] | None = ..., + data_points: collections.abc.Iterable[global___DataPoint] | None = ..., + num_events: builtins.int = ..., + avg_sampling_rate: builtins.float = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["avg_sampling_rate", b"avg_sampling_rate", "buckets", b"buckets", "data_points", b"data_points", "group_by_attributes", b"group_by_attributes", "label", b"label", "num_events", b"num_events"]) -> None: ... + +global___TimeSeries = TimeSeries + +@typing.final +class TimeSeriesResponse(google.protobuf.message.Message): + """This is the response from the TimeSeries endpoint, + it is the counterpart of TimeSeriesRequest + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + RESULT_TIMESERIES_FIELD_NUMBER: builtins.int + META_FIELD_NUMBER: builtins.int + @property + def result_timeseries(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TimeSeries]: ... + @property + def meta(self) -> sentry_protos.snuba.v1.request_common_pb2.ResponseMeta: ... + def __init__( + self, + *, + result_timeseries: collections.abc.Iterable[global___TimeSeries] | None = ..., + meta: sentry_protos.snuba.v1.request_common_pb2.ResponseMeta | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["meta", b"meta"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["meta", b"meta", "result_timeseries", b"result_timeseries"]) -> None: ... + +global___TimeSeriesResponse = TimeSeriesResponse diff --git a/py/sentry_protos/snuba/v1/endpoint_time_series_pb2_grpc.py b/py/sentry_protos/snuba/v1/endpoint_time_series_pb2_grpc.py new file mode 100644 index 00000000..bc6a78be --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_time_series_pb2_grpc.py @@ -0,0 +1,29 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.65.4' +GRPC_VERSION = grpc.__version__ +EXPECTED_ERROR_RELEASE = '1.66.0' +SCHEDULED_RELEASE_DATE = 'August 6, 2024' +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + warnings.warn( + f'The grpc package installed is at version {GRPC_VERSION},' + + f' but the generated code in sentry_protos/snuba/v1/endpoint_time_series_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + + f' This warning will become an error in {EXPECTED_ERROR_RELEASE},' + + f' scheduled for release on {SCHEDULED_RELEASE_DATE}.', + RuntimeWarning + ) diff --git a/py/sentry_protos/snuba/v1/endpoint_time_series_pb2_grpc.pyi b/py/sentry_protos/snuba/v1/endpoint_time_series_pb2_grpc.pyi new file mode 100644 index 00000000..a6a9cff9 --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_time_series_pb2_grpc.pyi @@ -0,0 +1,17 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import grpc +import grpc.aio +import typing + +_T = typing.TypeVar("_T") + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg] + ... diff --git a/py/sentry_protos/snuba/v1/endpoint_trace_item_attributes_pb2.py b/py/sentry_protos/snuba/v1/endpoint_trace_item_attributes_pb2.py new file mode 100644 index 00000000..4a193106 --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_trace_item_attributes_pb2.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: sentry_protos/snuba/v1/endpoint_trace_item_attributes.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from sentry_protos.snuba.v1 import request_common_pb2 as sentry__protos_dot_snuba_dot_v1_dot_request__common__pb2 +from sentry_protos.snuba.v1 import trace_item_attribute_pb2 as sentry__protos_dot_snuba_dot_v1_dot_trace__item__attribute__pb2 +from sentry_protos.snuba.v1 import trace_item_filter_pb2 as sentry__protos_dot_snuba_dot_v1_dot_trace__item__filter__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n;sentry_protos/snuba/v1/endpoint_trace_item_attributes.proto\x12\x16sentry_protos.snuba.v1\x1a+sentry_protos/snuba/v1/request_common.proto\x1a\x31sentry_protos/snuba/v1/trace_item_attribute.proto\x1a.sentry_protos/snuba/v1/trace_item_filter.proto\"\xd6\x02\n\x1eTraceItemAttributeNamesRequest\x12\x31\n\x04meta\x18\x01 \x01(\x0b\x32#.sentry_protos.snuba.v1.RequestMeta\x12\r\n\x05limit\x18\x02 \x01(\r\x12\x12\n\x06offset\x18\x03 \x01(\rB\x02\x18\x01\x12\x37\n\x04type\x18\x05 \x01(\x0e\x32).sentry_protos.snuba.v1.AttributeKey.Type\x12\x1d\n\x15value_substring_match\x18\x06 \x01(\t\x12\x35\n\npage_token\x18\x07 \x01(\x0b\x32!.sentry_protos.snuba.v1.PageToken\x12O\n\x1eintersecting_attributes_filter\x18\x08 \x01(\x0b\x32\'.sentry_protos.snuba.v1.TraceItemFilter\"\xb7\x02\n\x1fTraceItemAttributeNamesResponse\x12U\n\nattributes\x18\x01 \x03(\x0b\x32\x41.sentry_protos.snuba.v1.TraceItemAttributeNamesResponse.Attribute\x12\x35\n\npage_token\x18\x02 \x01(\x0b\x32!.sentry_protos.snuba.v1.PageToken\x12\x32\n\x04meta\x18\x03 \x01(\x0b\x32$.sentry_protos.snuba.v1.ResponseMeta\x1aR\n\tAttribute\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x37\n\x04type\x18\x02 \x01(\x0e\x32).sentry_protos.snuba.v1.AttributeKey.Type\"\xfe\x01\n\x1fTraceItemAttributeValuesRequest\x12\x31\n\x04meta\x18\x01 \x01(\x0b\x32#.sentry_protos.snuba.v1.RequestMeta\x12\x31\n\x03key\x18\x02 \x01(\x0b\x32$.sentry_protos.snuba.v1.AttributeKey\x12\x10\n\x04name\x18\x03 \x01(\tB\x02\x18\x01\x12\x1d\n\x15value_substring_match\x18\x04 \x01(\t\x12\r\n\x05limit\x18\x05 \x01(\r\x12\x35\n\npage_token\x18\x06 \x01(\x0b\x32!.sentry_protos.snuba.v1.PageToken\"\x9d\x01\n TraceItemAttributeValuesResponse\x12\x0e\n\x06values\x18\x01 \x03(\t\x12\x35\n\npage_token\x18\x06 \x01(\x0b\x32!.sentry_protos.snuba.v1.PageToken\x12\x32\n\x04meta\x18\x07 \x01(\x0b\x32$.sentry_protos.snuba.v1.ResponseMetab\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sentry_protos.snuba.v1.endpoint_trace_item_attributes_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_TRACEITEMATTRIBUTENAMESREQUEST'].fields_by_name['offset']._loaded_options = None + _globals['_TRACEITEMATTRIBUTENAMESREQUEST'].fields_by_name['offset']._serialized_options = b'\030\001' + _globals['_TRACEITEMATTRIBUTEVALUESREQUEST'].fields_by_name['name']._loaded_options = None + _globals['_TRACEITEMATTRIBUTEVALUESREQUEST'].fields_by_name['name']._serialized_options = b'\030\001' + _globals['_TRACEITEMATTRIBUTENAMESREQUEST']._serialized_start=232 + _globals['_TRACEITEMATTRIBUTENAMESREQUEST']._serialized_end=574 + _globals['_TRACEITEMATTRIBUTENAMESRESPONSE']._serialized_start=577 + _globals['_TRACEITEMATTRIBUTENAMESRESPONSE']._serialized_end=888 + _globals['_TRACEITEMATTRIBUTENAMESRESPONSE_ATTRIBUTE']._serialized_start=806 + _globals['_TRACEITEMATTRIBUTENAMESRESPONSE_ATTRIBUTE']._serialized_end=888 + _globals['_TRACEITEMATTRIBUTEVALUESREQUEST']._serialized_start=891 + _globals['_TRACEITEMATTRIBUTEVALUESREQUEST']._serialized_end=1145 + _globals['_TRACEITEMATTRIBUTEVALUESRESPONSE']._serialized_start=1148 + _globals['_TRACEITEMATTRIBUTEVALUESRESPONSE']._serialized_end=1305 +# @@protoc_insertion_point(module_scope) diff --git a/py/sentry_protos/snuba/v1/endpoint_trace_item_attributes_pb2.pyi b/py/sentry_protos/snuba/v1/endpoint_trace_item_attributes_pb2.pyi new file mode 100644 index 00000000..48dfa7aa --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_trace_item_attributes_pb2.pyi @@ -0,0 +1,222 @@ +""" +@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 TraceItemAttributeNamesRequest(google.protobuf.message.Message): + """TraceItemAttributeNamesRequest is a request to the TraceItemAttributeNames endpoint, + it returns the names of all queryable "TraceItemAttributes" that exist in the given projects, + date range, and other filters. + + TraceItem are things like: span, error, log, replay + TraceItemAttributes could be things like: sentry.duration,user_id cart_total, etc. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + META_FIELD_NUMBER: builtins.int + LIMIT_FIELD_NUMBER: builtins.int + OFFSET_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + VALUE_SUBSTRING_MATCH_FIELD_NUMBER: builtins.int + PAGE_TOKEN_FIELD_NUMBER: builtins.int + INTERSECTING_ATTRIBUTES_FILTER_FIELD_NUMBER: builtins.int + limit: builtins.int + """maximum number of attributes to return""" + offset: builtins.int + """offset is deprecated, please use `page_token` instead""" + type: sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeKey.Type.ValueType + """The type of the attributes to return, must be specified, + only TYPE_STRING and TYPE_FLOAT are supported, anything else will return empty response + """ + value_substring_match: builtins.str + """optionalfilter to only return attribute names that match the given substring""" + @property + def meta(self) -> sentry_protos.snuba.v1.request_common_pb2.RequestMeta: + """metadata about the request + this is where you specify organization, project, time range etc. + """ + + @property + def page_token(self) -> sentry_protos.snuba.v1.request_common_pb2.PageToken: + """optional, used for pagination, the next page token will be returned in the response""" + + @property + def intersecting_attributes_filter(self) -> sentry_protos.snuba.v1.trace_item_filter_pb2.TraceItemFilter: + """A filter to only get relevant attribute keys + including this makes sure that only attribute keys are returned + which *intersect* with the ones specified in the filter. + This is a BEST-EFFORT operation. If no co-occurring keys are found within + 1 second, the endpoint returns without taking the intersecing attributes into account + """ + + def __init__( + self, + *, + meta: sentry_protos.snuba.v1.request_common_pb2.RequestMeta | None = ..., + limit: builtins.int = ..., + offset: builtins.int = ..., + type: sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeKey.Type.ValueType = ..., + value_substring_match: builtins.str = ..., + page_token: sentry_protos.snuba.v1.request_common_pb2.PageToken | None = ..., + intersecting_attributes_filter: sentry_protos.snuba.v1.trace_item_filter_pb2.TraceItemFilter | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["intersecting_attributes_filter", b"intersecting_attributes_filter", "meta", b"meta", "page_token", b"page_token"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["intersecting_attributes_filter", b"intersecting_attributes_filter", "limit", b"limit", "meta", b"meta", "offset", b"offset", "page_token", b"page_token", "type", b"type", "value_substring_match", b"value_substring_match"]) -> None: ... + +global___TraceItemAttributeNamesRequest = TraceItemAttributeNamesRequest + +@typing.final +class TraceItemAttributeNamesResponse(google.protobuf.message.Message): + """TraceItemAttributeNamesResponse is the response returned by the TraceItemAttributeNames endpoint. + It is the counterpart to TraceItemAttributeNamesRequest. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class Attribute(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAME_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + name: builtins.str + type: sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeKey.Type.ValueType + def __init__( + self, + *, + name: builtins.str = ..., + type: sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeKey.Type.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["name", b"name", "type", b"type"]) -> None: ... + + ATTRIBUTES_FIELD_NUMBER: builtins.int + PAGE_TOKEN_FIELD_NUMBER: builtins.int + META_FIELD_NUMBER: builtins.int + @property + def attributes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TraceItemAttributeNamesResponse.Attribute]: + """all attributes that matched the filters in the request""" + + @property + def page_token(self) -> sentry_protos.snuba.v1.request_common_pb2.PageToken: + """page token for the next page of results""" + + @property + def meta(self) -> sentry_protos.snuba.v1.request_common_pb2.ResponseMeta: + """metadata about the response""" + + def __init__( + self, + *, + attributes: collections.abc.Iterable[global___TraceItemAttributeNamesResponse.Attribute] | 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["attributes", b"attributes", "meta", b"meta", "page_token", b"page_token"]) -> None: ... + +global___TraceItemAttributeNamesResponse = TraceItemAttributeNamesResponse + +@typing.final +class TraceItemAttributeValuesRequest(google.protobuf.message.Message): + """TraceItemAttributeValuesRequest is a request to the TraceItemAttributeValues endpoint, + it returns the set of all possible values for the given attribute key, across the given + organization, project_id, timerange etc (specified in meta). + + This endpoint only supports string values, it does not make sense + to get all the possible values of a numerical attribute + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + META_FIELD_NUMBER: builtins.int + KEY_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + VALUE_SUBSTRING_MATCH_FIELD_NUMBER: builtins.int + LIMIT_FIELD_NUMBER: builtins.int + PAGE_TOKEN_FIELD_NUMBER: builtins.int + name: builtins.str + """deprecated, please use the `key` field instead""" + value_substring_match: builtins.str + """a substring of the value being searched for, + only values matching this substring will be returned. + only strict substring supported, no regex + """ + limit: builtins.int + """max number of values to return""" + @property + def meta(self) -> sentry_protos.snuba.v1.request_common_pb2.RequestMeta: + """metadata about the request + this is where you specify organization, project, time range etc. + """ + + @property + def key(self) -> sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeKey: + """attribute you want the values of""" + + @property + def page_token(self) -> sentry_protos.snuba.v1.request_common_pb2.PageToken: + """optional, used for pagination, the next page token will be returned in the response""" + + def __init__( + self, + *, + meta: sentry_protos.snuba.v1.request_common_pb2.RequestMeta | None = ..., + key: sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeKey | None = ..., + name: builtins.str = ..., + value_substring_match: builtins.str = ..., + limit: builtins.int = ..., + page_token: sentry_protos.snuba.v1.request_common_pb2.PageToken | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["key", b"key", "meta", b"meta", "page_token", b"page_token"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "limit", b"limit", "meta", b"meta", "name", b"name", "page_token", b"page_token", "value_substring_match", b"value_substring_match"]) -> None: ... + +global___TraceItemAttributeValuesRequest = TraceItemAttributeValuesRequest + +@typing.final +class TraceItemAttributeValuesResponse(google.protobuf.message.Message): + """TraceItemAttributeValuesResponse is a response from the TraceItemAttributeValues endpoint + it is the counterpart to TraceItemAttributesRequest + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VALUES_FIELD_NUMBER: builtins.int + PAGE_TOKEN_FIELD_NUMBER: builtins.int + META_FIELD_NUMBER: builtins.int + @property + def values(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + """all the values that matched the criteria specified in the request""" + + @property + def page_token(self) -> sentry_protos.snuba.v1.request_common_pb2.PageToken: + """page token for the next page of results""" + + @property + def meta(self) -> sentry_protos.snuba.v1.request_common_pb2.ResponseMeta: + """metadata about the response""" + + def __init__( + self, + *, + values: collections.abc.Iterable[builtins.str] | 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["meta", b"meta", "page_token", b"page_token", "values", b"values"]) -> None: ... + +global___TraceItemAttributeValuesResponse = TraceItemAttributeValuesResponse diff --git a/py/sentry_protos/snuba/v1/endpoint_trace_item_attributes_pb2_grpc.py b/py/sentry_protos/snuba/v1/endpoint_trace_item_attributes_pb2_grpc.py new file mode 100644 index 00000000..4e2b2faf --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_trace_item_attributes_pb2_grpc.py @@ -0,0 +1,29 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.65.4' +GRPC_VERSION = grpc.__version__ +EXPECTED_ERROR_RELEASE = '1.66.0' +SCHEDULED_RELEASE_DATE = 'August 6, 2024' +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + warnings.warn( + f'The grpc package installed is at version {GRPC_VERSION},' + + f' but the generated code in sentry_protos/snuba/v1/endpoint_trace_item_attributes_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + + f' This warning will become an error in {EXPECTED_ERROR_RELEASE},' + + f' scheduled for release on {SCHEDULED_RELEASE_DATE}.', + RuntimeWarning + ) diff --git a/py/sentry_protos/snuba/v1/endpoint_trace_item_attributes_pb2_grpc.pyi b/py/sentry_protos/snuba/v1/endpoint_trace_item_attributes_pb2_grpc.pyi new file mode 100644 index 00000000..a6a9cff9 --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_trace_item_attributes_pb2_grpc.pyi @@ -0,0 +1,17 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import grpc +import grpc.aio +import typing + +_T = typing.TypeVar("_T") + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg] + ... diff --git a/py/sentry_protos/snuba/v1/endpoint_trace_item_details_pb2.py b/py/sentry_protos/snuba/v1/endpoint_trace_item_details_pb2.py new file mode 100644 index 00000000..886d7264 --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_trace_item_details_pb2.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: sentry_protos/snuba/v1/endpoint_trace_item_details.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 +from sentry_protos.snuba.v1 import request_common_pb2 as sentry__protos_dot_snuba_dot_v1_dot_request__common__pb2 +from sentry_protos.snuba.v1 import trace_item_attribute_pb2 as sentry__protos_dot_snuba_dot_v1_dot_trace__item__attribute__pb2 +from sentry_protos.snuba.v1 import trace_item_filter_pb2 as sentry__protos_dot_snuba_dot_v1_dot_trace__item__filter__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n8sentry_protos/snuba/v1/endpoint_trace_item_details.proto\x12\x16sentry_protos.snuba.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a+sentry_protos/snuba/v1/request_common.proto\x1a\x31sentry_protos/snuba/v1/trace_item_attribute.proto\x1a.sentry_protos/snuba/v1/trace_item_filter.proto\"\xa8\x01\n\x17TraceItemDetailsRequest\x12\x31\n\x04meta\x18\x01 \x01(\x0b\x32#.sentry_protos.snuba.v1.RequestMeta\x12\x0f\n\x07item_id\x18\x02 \x01(\t\x12\x10\n\x08trace_id\x18\x04 \x01(\t\x12\x37\n\x06\x66ilter\x18\x03 \x01(\x0b\x32\'.sentry_protos.snuba.v1.TraceItemFilter\"`\n\x19TraceItemDetailsAttribute\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32&.sentry_protos.snuba.v1.AttributeValue\"\xd5\x01\n\x18TraceItemDetailsResponse\x12\x0f\n\x07item_id\x18\x01 \x01(\t\x12-\n\ttimestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x45\n\nattributes\x18\x03 \x03(\x0b\x32\x31.sentry_protos.snuba.v1.TraceItemDetailsAttribute\x12\x32\n\x04meta\x18\x04 \x01(\x0b\x32$.sentry_protos.snuba.v1.ResponseMetab\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sentry_protos.snuba.v1.endpoint_trace_item_details_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_TRACEITEMDETAILSREQUEST']._serialized_start=262 + _globals['_TRACEITEMDETAILSREQUEST']._serialized_end=430 + _globals['_TRACEITEMDETAILSATTRIBUTE']._serialized_start=432 + _globals['_TRACEITEMDETAILSATTRIBUTE']._serialized_end=528 + _globals['_TRACEITEMDETAILSRESPONSE']._serialized_start=531 + _globals['_TRACEITEMDETAILSRESPONSE']._serialized_end=744 +# @@protoc_insertion_point(module_scope) diff --git a/py/sentry_protos/snuba/v1/endpoint_trace_item_details_pb2.pyi b/py/sentry_protos/snuba/v1/endpoint_trace_item_details_pb2.pyi new file mode 100644 index 00000000..fade2a0c --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_trace_item_details_pb2.pyi @@ -0,0 +1,101 @@ +""" +@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 google.protobuf.timestamp_pb2 +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 TraceItemDetailsRequest(google.protobuf.message.Message): + """This is a request to the TraceItemDetails endpoint, + it is used to query for TraceItems (ex. spans or logs) + it returns all of the information for a specific trace item. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + META_FIELD_NUMBER: builtins.int + ITEM_ID_FIELD_NUMBER: builtins.int + TRACE_ID_FIELD_NUMBER: builtins.int + FILTER_FIELD_NUMBER: builtins.int + item_id: builtins.str + """required: the ID (hex string) of the item you are looking for""" + trace_id: builtins.str + """required: the trace ID of the item.""" + @property + def meta(self) -> sentry_protos.snuba.v1.request_common_pb2.RequestMeta: ... + @property + def filter(self) -> sentry_protos.snuba.v1.trace_item_filter_pb2.TraceItemFilter: ... + def __init__( + self, + *, + meta: sentry_protos.snuba.v1.request_common_pb2.RequestMeta | None = ..., + item_id: builtins.str = ..., + trace_id: builtins.str = ..., + filter: sentry_protos.snuba.v1.trace_item_filter_pb2.TraceItemFilter | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["filter", b"filter", "meta", b"meta"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["filter", b"filter", "item_id", b"item_id", "meta", b"meta", "trace_id", b"trace_id"]) -> None: ... + +global___TraceItemDetailsRequest = TraceItemDetailsRequest + +@typing.final +class TraceItemDetailsAttribute(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAME_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + name: builtins.str + @property + def value(self) -> sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeValue: ... + def __init__( + self, + *, + name: builtins.str = ..., + value: sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeValue | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["name", b"name", "value", b"value"]) -> None: ... + +global___TraceItemDetailsAttribute = TraceItemDetailsAttribute + +@typing.final +class TraceItemDetailsResponse(google.protobuf.message.Message): + """this is a response from the TraceItemDetails endpoint""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ITEM_ID_FIELD_NUMBER: builtins.int + TIMESTAMP_FIELD_NUMBER: builtins.int + ATTRIBUTES_FIELD_NUMBER: builtins.int + META_FIELD_NUMBER: builtins.int + item_id: builtins.str + @property + def timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + @property + def attributes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TraceItemDetailsAttribute]: ... + @property + def meta(self) -> sentry_protos.snuba.v1.request_common_pb2.ResponseMeta: ... + def __init__( + self, + *, + item_id: builtins.str = ..., + timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + attributes: collections.abc.Iterable[global___TraceItemDetailsAttribute] | None = ..., + meta: sentry_protos.snuba.v1.request_common_pb2.ResponseMeta | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["meta", b"meta", "timestamp", b"timestamp"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["attributes", b"attributes", "item_id", b"item_id", "meta", b"meta", "timestamp", b"timestamp"]) -> None: ... + +global___TraceItemDetailsResponse = TraceItemDetailsResponse diff --git a/py/sentry_protos/snuba/v1/endpoint_trace_item_details_pb2_grpc.py b/py/sentry_protos/snuba/v1/endpoint_trace_item_details_pb2_grpc.py new file mode 100644 index 00000000..ff2ec457 --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_trace_item_details_pb2_grpc.py @@ -0,0 +1,29 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.65.4' +GRPC_VERSION = grpc.__version__ +EXPECTED_ERROR_RELEASE = '1.66.0' +SCHEDULED_RELEASE_DATE = 'August 6, 2024' +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + warnings.warn( + f'The grpc package installed is at version {GRPC_VERSION},' + + f' but the generated code in sentry_protos/snuba/v1/endpoint_trace_item_details_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + + f' This warning will become an error in {EXPECTED_ERROR_RELEASE},' + + f' scheduled for release on {SCHEDULED_RELEASE_DATE}.', + RuntimeWarning + ) diff --git a/py/sentry_protos/snuba/v1/endpoint_trace_item_details_pb2_grpc.pyi b/py/sentry_protos/snuba/v1/endpoint_trace_item_details_pb2_grpc.pyi new file mode 100644 index 00000000..a6a9cff9 --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_trace_item_details_pb2_grpc.pyi @@ -0,0 +1,17 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import grpc +import grpc.aio +import typing + +_T = typing.TypeVar("_T") + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg] + ... diff --git a/py/sentry_protos/snuba/v1/endpoint_trace_item_stats_pb2.py b/py/sentry_protos/snuba/v1/endpoint_trace_item_stats_pb2.py new file mode 100644 index 00000000..82750b51 --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_trace_item_stats_pb2.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: sentry_protos/snuba/v1/endpoint_trace_item_stats.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from sentry_protos.snuba.v1 import request_common_pb2 as sentry__protos_dot_snuba_dot_v1_dot_request__common__pb2 +from sentry_protos.snuba.v1 import trace_item_attribute_pb2 as sentry__protos_dot_snuba_dot_v1_dot_trace__item__attribute__pb2 +from sentry_protos.snuba.v1 import trace_item_filter_pb2 as sentry__protos_dot_snuba_dot_v1_dot_trace__item__filter__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n6sentry_protos/snuba/v1/endpoint_trace_item_stats.proto\x12\x16sentry_protos.snuba.v1\x1a+sentry_protos/snuba/v1/request_common.proto\x1a\x31sentry_protos/snuba/v1/trace_item_attribute.proto\x1a.sentry_protos/snuba/v1/trace_item_filter.proto\"\x86\x01\n\x1d\x41ttributeDistributionsRequest\x12\x13\n\x0bmax_buckets\x18\x01 \x01(\r\x12\x16\n\x0emax_attributes\x18\x02 \x01(\r\x12\x38\n\nattributes\x18\x03 \x03(\x0b\x32$.sentry_protos.snuba.v1.AttributeKey\"\xe2\x01\n\x0eHeatmapRequest\x12\x39\n\x0bx_attribute\x18\x01 \x01(\x0b\x32$.sentry_protos.snuba.v1.AttributeKey\x12\x39\n\x0by_attribute\x18\x02 \x01(\x0b\x32$.sentry_protos.snuba.v1.AttributeKey\x12\x1a\n\rnum_y_buckets\x18\x03 \x01(\rH\x00\x88\x01\x01\x12\x1a\n\rnum_x_buckets\x18\x04 \x01(\rH\x01\x88\x01\x01\x42\x10\n\x0e_num_y_bucketsB\x10\n\x0e_num_x_buckets\"\xa8\x01\n\tStatsType\x12X\n\x17\x61ttribute_distributions\x18\x01 \x01(\x0b\x32\x35.sentry_protos.snuba.v1.AttributeDistributionsRequestH\x00\x12\x39\n\x07heatmap\x18\x02 \x01(\x0b\x32&.sentry_protos.snuba.v1.HeatmapRequestH\x00\x42\x06\n\x04type\"\xbb\x01\n\x15TraceItemStatsRequest\x12\x31\n\x04meta\x18\x01 \x01(\x0b\x32#.sentry_protos.snuba.v1.RequestMeta\x12\x37\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\'.sentry_protos.snuba.v1.TraceItemFilter\x12\x36\n\x0bstats_types\x18\x03 \x03(\x0b\x32!.sentry_protos.snuba.v1.StatsType\"\x9e\x01\n\x15\x41ttributeDistribution\x12\x16\n\x0e\x61ttribute_name\x18\x01 \x01(\t\x12\x45\n\x07\x62uckets\x18\x02 \x03(\x0b\x32\x34.sentry_protos.snuba.v1.AttributeDistribution.Bucket\x1a&\n\x06\x42ucket\x12\r\n\x05label\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x02\"[\n\x16\x41ttributeDistributions\x12\x41\n\nattributes\x18\x01 \x03(\x0b\x32-.sentry_protos.snuba.v1.AttributeDistribution\"W\n\x0cMatrixColumn\x12\x37\n\x07x_label\x18\x01 \x01(\x0b\x32&.sentry_protos.snuba.v1.AttributeValue\x12\x0e\n\x06values\x18\x02 \x03(\x02\"\xee\x01\n\x07Heatmap\x12\x39\n\x0bx_attribute\x18\x01 \x01(\x0b\x32$.sentry_protos.snuba.v1.AttributeKey\x12\x39\n\x0by_attribute\x18\x02 \x01(\x0b\x32$.sentry_protos.snuba.v1.AttributeKey\x12\x39\n\ty_buckets\x18\x03 \x03(\x0b\x32&.sentry_protos.snuba.v1.AttributeValue\x12\x32\n\x04\x64\x61ta\x18\x04 \x03(\x0b\x32$.sentry_protos.snuba.v1.MatrixColumn\"\xa7\x01\n\x14TraceItemStatsResult\x12Q\n\x17\x61ttribute_distributions\x18\x01 \x01(\x0b\x32..sentry_protos.snuba.v1.AttributeDistributionsH\x00\x12\x32\n\x07heatmap\x18\x02 \x01(\x0b\x32\x1f.sentry_protos.snuba.v1.HeatmapH\x00\x42\x08\n\x06result\"\xc2\x01\n\x16TraceItemStatsResponse\x12=\n\x07results\x18\x01 \x03(\x0b\x32,.sentry_protos.snuba.v1.TraceItemStatsResult\x12\x35\n\npage_token\x18\x02 \x01(\x0b\x32!.sentry_protos.snuba.v1.PageToken\x12\x32\n\x04meta\x18\x03 \x01(\x0b\x32$.sentry_protos.snuba.v1.ResponseMetab\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sentry_protos.snuba.v1.endpoint_trace_item_stats_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_ATTRIBUTEDISTRIBUTIONSREQUEST']._serialized_start=227 + _globals['_ATTRIBUTEDISTRIBUTIONSREQUEST']._serialized_end=361 + _globals['_HEATMAPREQUEST']._serialized_start=364 + _globals['_HEATMAPREQUEST']._serialized_end=590 + _globals['_STATSTYPE']._serialized_start=593 + _globals['_STATSTYPE']._serialized_end=761 + _globals['_TRACEITEMSTATSREQUEST']._serialized_start=764 + _globals['_TRACEITEMSTATSREQUEST']._serialized_end=951 + _globals['_ATTRIBUTEDISTRIBUTION']._serialized_start=954 + _globals['_ATTRIBUTEDISTRIBUTION']._serialized_end=1112 + _globals['_ATTRIBUTEDISTRIBUTION_BUCKET']._serialized_start=1074 + _globals['_ATTRIBUTEDISTRIBUTION_BUCKET']._serialized_end=1112 + _globals['_ATTRIBUTEDISTRIBUTIONS']._serialized_start=1114 + _globals['_ATTRIBUTEDISTRIBUTIONS']._serialized_end=1205 + _globals['_MATRIXCOLUMN']._serialized_start=1207 + _globals['_MATRIXCOLUMN']._serialized_end=1294 + _globals['_HEATMAP']._serialized_start=1297 + _globals['_HEATMAP']._serialized_end=1535 + _globals['_TRACEITEMSTATSRESULT']._serialized_start=1538 + _globals['_TRACEITEMSTATSRESULT']._serialized_end=1705 + _globals['_TRACEITEMSTATSRESPONSE']._serialized_start=1708 + _globals['_TRACEITEMSTATSRESPONSE']._serialized_end=1902 +# @@protoc_insertion_point(module_scope) diff --git a/py/sentry_protos/snuba/v1/endpoint_trace_item_stats_pb2.pyi b/py/sentry_protos/snuba/v1/endpoint_trace_item_stats_pb2.pyi new file mode 100644 index 00000000..23fb69f0 --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_trace_item_stats_pb2.pyi @@ -0,0 +1,311 @@ +""" +@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 AttributeDistributionsRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + MAX_BUCKETS_FIELD_NUMBER: builtins.int + MAX_ATTRIBUTES_FIELD_NUMBER: builtins.int + ATTRIBUTES_FIELD_NUMBER: builtins.int + max_buckets: builtins.int + """max_buckets and limit wouldn't apply to other stats types (like totals)""" + max_attributes: builtins.int + @property + def attributes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeKey]: + """if specified, only the attributes in the allow list will be returned""" + + def __init__( + self, + *, + max_buckets: builtins.int = ..., + max_attributes: builtins.int = ..., + attributes: collections.abc.Iterable[sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeKey] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["attributes", b"attributes", "max_attributes", b"max_attributes", "max_buckets", b"max_buckets"]) -> None: ... + +global___AttributeDistributionsRequest = AttributeDistributionsRequest + +@typing.final +class HeatmapRequest(google.protobuf.message.Message): + """ + This is a request for a heatmap, the x-axis is every distinct value of x_attribute, + the y-axis is the numerical_y_attribute divided into num_y_buckets buckets. A + single x,y coordinate has the count of trace-items that fit into that bucket. + + Example Request: + x_attribute = "span.op" + numerical_y_attribute = "eap.duration" + num_y_buckets = 4 + + Example Response: + span.op = "db.query" + - duration 0-100ms: 10 + - duration 100-200ms: 30 + - duration 200-300ms: 20 + - duration 300-400ms: 0 + + span.op = "http.server" + ... + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + X_ATTRIBUTE_FIELD_NUMBER: builtins.int + Y_ATTRIBUTE_FIELD_NUMBER: builtins.int + NUM_Y_BUCKETS_FIELD_NUMBER: builtins.int + NUM_X_BUCKETS_FIELD_NUMBER: builtins.int + num_y_buckets: builtins.int + """these are only used if the attribute is numeric and needs to be bucketed""" + num_x_buckets: builtins.int + @property + def x_attribute(self) -> sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeKey: ... + @property + def y_attribute(self) -> sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeKey: ... + def __init__( + self, + *, + x_attribute: sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeKey | None = ..., + y_attribute: sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeKey | None = ..., + num_y_buckets: builtins.int | None = ..., + num_x_buckets: builtins.int | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["_num_x_buckets", b"_num_x_buckets", "_num_y_buckets", b"_num_y_buckets", "num_x_buckets", b"num_x_buckets", "num_y_buckets", b"num_y_buckets", "x_attribute", b"x_attribute", "y_attribute", b"y_attribute"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["_num_x_buckets", b"_num_x_buckets", "_num_y_buckets", b"_num_y_buckets", "num_x_buckets", b"num_x_buckets", "num_y_buckets", b"num_y_buckets", "x_attribute", b"x_attribute", "y_attribute", b"y_attribute"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_num_x_buckets", b"_num_x_buckets"]) -> typing.Literal["num_x_buckets"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_num_y_buckets", b"_num_y_buckets"]) -> typing.Literal["num_y_buckets"] | None: ... + +global___HeatmapRequest = HeatmapRequest + +@typing.final +class StatsType(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ATTRIBUTE_DISTRIBUTIONS_FIELD_NUMBER: builtins.int + HEATMAP_FIELD_NUMBER: builtins.int + @property + def attribute_distributions(self) -> global___AttributeDistributionsRequest: ... + @property + def heatmap(self) -> global___HeatmapRequest: ... + def __init__( + self, + *, + attribute_distributions: global___AttributeDistributionsRequest | None = ..., + heatmap: global___HeatmapRequest | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["attribute_distributions", b"attribute_distributions", "heatmap", b"heatmap", "type", b"type"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["attribute_distributions", b"attribute_distributions", "heatmap", b"heatmap", "type", b"type"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["type", b"type"]) -> typing.Literal["attribute_distributions", "heatmap"] | None: ... + +global___StatsType = StatsType + +@typing.final +class TraceItemStatsRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + META_FIELD_NUMBER: builtins.int + FILTER_FIELD_NUMBER: builtins.int + STATS_TYPES_FIELD_NUMBER: builtins.int + @property + def meta(self) -> sentry_protos.snuba.v1.request_common_pb2.RequestMeta: ... + @property + def filter(self) -> sentry_protos.snuba.v1.trace_item_filter_pb2.TraceItemFilter: + """same filter applies to all stats types requested""" + + @property + def stats_types(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___StatsType]: ... + def __init__( + self, + *, + meta: sentry_protos.snuba.v1.request_common_pb2.RequestMeta | None = ..., + filter: sentry_protos.snuba.v1.trace_item_filter_pb2.TraceItemFilter | None = ..., + stats_types: collections.abc.Iterable[global___StatsType] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["filter", b"filter", "meta", b"meta"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["filter", b"filter", "meta", b"meta", "stats_types", b"stats_types"]) -> None: ... + +global___TraceItemStatsRequest = TraceItemStatsRequest + +@typing.final +class AttributeDistribution(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class Bucket(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + LABEL_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + label: builtins.str + value: builtins.float + def __init__( + self, + *, + label: builtins.str = ..., + value: builtins.float = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["label", b"label", "value", b"value"]) -> None: ... + + ATTRIBUTE_NAME_FIELD_NUMBER: builtins.int + BUCKETS_FIELD_NUMBER: builtins.int + attribute_name: builtins.str + @property + def buckets(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___AttributeDistribution.Bucket]: ... + def __init__( + self, + *, + attribute_name: builtins.str = ..., + buckets: collections.abc.Iterable[global___AttributeDistribution.Bucket] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["attribute_name", b"attribute_name", "buckets", b"buckets"]) -> None: ... + +global___AttributeDistribution = AttributeDistribution + +@typing.final +class AttributeDistributions(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ATTRIBUTES_FIELD_NUMBER: builtins.int + @property + def attributes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___AttributeDistribution]: ... + def __init__( + self, + *, + attributes: collections.abc.Iterable[global___AttributeDistribution] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["attributes", b"attributes"]) -> None: ... + +global___AttributeDistributions = AttributeDistributions + +@typing.final +class MatrixColumn(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + X_LABEL_FIELD_NUMBER: builtins.int + VALUES_FIELD_NUMBER: builtins.int + @property + def x_label(self) -> sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeValue: ... + @property + def values(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ... + def __init__( + self, + *, + x_label: sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeValue | None = ..., + values: collections.abc.Iterable[builtins.float] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["x_label", b"x_label"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["values", b"values", "x_label", b"x_label"]) -> None: ... + +global___MatrixColumn = MatrixColumn + +@typing.final +class Heatmap(google.protobuf.message.Message): + """ + This is a heatmap, example heatmap: + x_attribute = "span.op" + y_attribute = "duration" + y_buckets = [0-100, 100-200, 200-300, 300-400] + data = [ + "db_query": [10, 20, 30, 40], + "http_server": [50, 60, 70, 80], + ] + + this means there are 20 trace-items with span.op = "db.query" and duration 100-200ms, + etc. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + X_ATTRIBUTE_FIELD_NUMBER: builtins.int + Y_ATTRIBUTE_FIELD_NUMBER: builtins.int + Y_BUCKETS_FIELD_NUMBER: builtins.int + DATA_FIELD_NUMBER: builtins.int + @property + def x_attribute(self) -> sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeKey: ... + @property + def y_attribute(self) -> sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeKey: ... + @property + def y_buckets(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeValue]: ... + @property + def data(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___MatrixColumn]: + """the `values` array in each MatrixColumn and `y_buckets` are associative arrays""" + + def __init__( + self, + *, + x_attribute: sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeKey | None = ..., + y_attribute: sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeKey | None = ..., + y_buckets: collections.abc.Iterable[sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeValue] | None = ..., + data: collections.abc.Iterable[global___MatrixColumn] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["x_attribute", b"x_attribute", "y_attribute", b"y_attribute"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["data", b"data", "x_attribute", b"x_attribute", "y_attribute", b"y_attribute", "y_buckets", b"y_buckets"]) -> None: ... + +global___Heatmap = Heatmap + +@typing.final +class TraceItemStatsResult(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ATTRIBUTE_DISTRIBUTIONS_FIELD_NUMBER: builtins.int + HEATMAP_FIELD_NUMBER: builtins.int + @property + def attribute_distributions(self) -> global___AttributeDistributions: ... + @property + def heatmap(self) -> global___Heatmap: ... + def __init__( + self, + *, + attribute_distributions: global___AttributeDistributions | None = ..., + heatmap: global___Heatmap | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["attribute_distributions", b"attribute_distributions", "heatmap", b"heatmap", "result", b"result"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["attribute_distributions", b"attribute_distributions", "heatmap", b"heatmap", "result", b"result"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["result", b"result"]) -> typing.Literal["attribute_distributions", "heatmap"] | None: ... + +global___TraceItemStatsResult = TraceItemStatsResult + +@typing.final +class TraceItemStatsResponse(google.protobuf.message.Message): + """this is a response from the TraceItemStats endpoint + it is the counterpart to TraceItemStatsRequest + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + RESULTS_FIELD_NUMBER: builtins.int + PAGE_TOKEN_FIELD_NUMBER: builtins.int + META_FIELD_NUMBER: builtins.int + @property + def results(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TraceItemStatsResult]: ... + @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, + *, + results: collections.abc.Iterable[global___TraceItemStatsResult] | 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["meta", b"meta", "page_token", b"page_token", "results", b"results"]) -> None: ... + +global___TraceItemStatsResponse = TraceItemStatsResponse diff --git a/py/sentry_protos/snuba/v1/endpoint_trace_item_stats_pb2_grpc.py b/py/sentry_protos/snuba/v1/endpoint_trace_item_stats_pb2_grpc.py new file mode 100644 index 00000000..65dedb13 --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_trace_item_stats_pb2_grpc.py @@ -0,0 +1,29 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.65.4' +GRPC_VERSION = grpc.__version__ +EXPECTED_ERROR_RELEASE = '1.66.0' +SCHEDULED_RELEASE_DATE = 'August 6, 2024' +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + warnings.warn( + f'The grpc package installed is at version {GRPC_VERSION},' + + f' but the generated code in sentry_protos/snuba/v1/endpoint_trace_item_stats_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + + f' This warning will become an error in {EXPECTED_ERROR_RELEASE},' + + f' scheduled for release on {SCHEDULED_RELEASE_DATE}.', + RuntimeWarning + ) diff --git a/py/sentry_protos/snuba/v1/endpoint_trace_item_stats_pb2_grpc.pyi b/py/sentry_protos/snuba/v1/endpoint_trace_item_stats_pb2_grpc.pyi new file mode 100644 index 00000000..a6a9cff9 --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_trace_item_stats_pb2_grpc.pyi @@ -0,0 +1,17 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import grpc +import grpc.aio +import typing + +_T = typing.TypeVar("_T") + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg] + ... diff --git a/py/sentry_protos/snuba/v1/endpoint_trace_item_table_pb2.py b/py/sentry_protos/snuba/v1/endpoint_trace_item_table_pb2.py new file mode 100644 index 00000000..39e385d1 --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_trace_item_table_pb2.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: sentry_protos/snuba/v1/endpoint_trace_item_table.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from sentry_protos.snuba.v1 import attribute_conditional_aggregation_pb2 as sentry__protos_dot_snuba_dot_v1_dot_attribute__conditional__aggregation__pb2 +from sentry_protos.snuba.v1 import formula_pb2 as sentry__protos_dot_snuba_dot_v1_dot_formula__pb2 +from sentry_protos.snuba.v1 import request_common_pb2 as sentry__protos_dot_snuba_dot_v1_dot_request__common__pb2 +from sentry_protos.snuba.v1 import trace_item_attribute_pb2 as sentry__protos_dot_snuba_dot_v1_dot_trace__item__attribute__pb2 +from sentry_protos.snuba.v1 import trace_item_filter_pb2 as sentry__protos_dot_snuba_dot_v1_dot_trace__item__filter__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n6sentry_protos/snuba/v1/endpoint_trace_item_table.proto\x12\x16sentry_protos.snuba.v1\x1a>sentry_protos/snuba/v1/attribute_conditional_aggregation.proto\x1a$sentry_protos/snuba/v1/formula.proto\x1a+sentry_protos/snuba/v1/request_common.proto\x1a\x31sentry_protos/snuba/v1/trace_item_attribute.proto\x1a.sentry_protos/snuba/v1/trace_item_filter.proto\"\xa8\x05\n\x15TraceItemTableRequest\x12\x31\n\x04meta\x18\x01 \x01(\x0b\x32#.sentry_protos.snuba.v1.RequestMeta\x12/\n\x07\x63olumns\x18\x02 \x03(\x0b\x32\x1e.sentry_protos.snuba.v1.Column\x12\x37\n\x06\x66ilter\x18\x03 \x01(\x0b\x32\'.sentry_protos.snuba.v1.TraceItemFilter\x12G\n\x08order_by\x18\x04 \x03(\x0b\x32\x35.sentry_protos.snuba.v1.TraceItemTableRequest.OrderBy\x12\x36\n\x08group_by\x18\x05 \x03(\x0b\x32$.sentry_protos.snuba.v1.AttributeKey\x12\r\n\x05limit\x18\x06 \x01(\r\x12\x35\n\npage_token\x18\x07 \x01(\x0b\x32!.sentry_protos.snuba.v1.PageToken\x12M\n\x17virtual_column_contexts\x18\x08 \x03(\x0b\x32,.sentry_protos.snuba.v1.VirtualColumnContext\x12\x45\n\x12\x61ggregation_filter\x18\t \x01(\x0b\x32).sentry_protos.snuba.v1.AggregationFilter\x12\x46\n\rtrace_filters\x18\n \x03(\x0b\x32/.sentry_protos.snuba.v1.TraceItemFilterWithType\x1aM\n\x07OrderBy\x12.\n\x06\x63olumn\x18\x01 \x01(\x0b\x32\x1e.sentry_protos.snuba.v1.Column\x12\x12\n\ndescending\x18\x02 \x01(\x08\"R\n\x14\x41ggregationAndFilter\x12:\n\x07\x66ilters\x18\x01 \x03(\x0b\x32).sentry_protos.snuba.v1.AggregationFilter\"Q\n\x13\x41ggregationOrFilter\x12:\n\x07\x66ilters\x18\x01 \x03(\x0b\x32).sentry_protos.snuba.v1.AggregationFilter\"\xd8\x04\n\x1b\x41ggregationComparisonFilter\x12\x32\n\x06\x63olumn\x18\x01 \x01(\x0b\x32\x1e.sentry_protos.snuba.v1.ColumnB\x02\x18\x01\x12\x42\n\x02op\x18\x02 \x01(\x0e\x32\x36.sentry_protos.snuba.v1.AggregationComparisonFilter.Op\x12\x39\n\x05value\x18\x03 \x01(\x0b\x32&.sentry_protos.snuba.v1.AttributeValueB\x02\x18\x01\x12\x0b\n\x03val\x18\x05 \x01(\x01\x12\x41\n\x0b\x61ggregation\x18\x04 \x01(\x0b\x32,.sentry_protos.snuba.v1.AttributeAggregation\x12X\n\x17\x63onditional_aggregation\x18\x06 \x01(\x0b\x32\x37.sentry_protos.snuba.v1.AttributeConditionalAggregation\x12=\n\x07\x66ormula\x18\x07 \x01(\x0b\x32,.sentry_protos.snuba.v1.Column.BinaryFormula\"\x9c\x01\n\x02Op\x12\x12\n\x0eOP_UNSPECIFIED\x10\x00\x12\x10\n\x0cOP_LESS_THAN\x10\x01\x12\x13\n\x0fOP_GREATER_THAN\x10\x02\x12\x1a\n\x16OP_LESS_THAN_OR_EQUALS\x10\x03\x12\x1d\n\x19OP_GREATER_THAN_OR_EQUALS\x10\x04\x12\r\n\tOP_EQUALS\x10\x05\x12\x11\n\rOP_NOT_EQUALS\x10\x06\"\xf4\x01\n\x11\x41ggregationFilter\x12\x42\n\nand_filter\x18\x01 \x01(\x0b\x32,.sentry_protos.snuba.v1.AggregationAndFilterH\x00\x12@\n\tor_filter\x18\x02 \x01(\x0b\x32+.sentry_protos.snuba.v1.AggregationOrFilterH\x00\x12P\n\x11\x63omparison_filter\x18\x03 \x01(\x0b\x32\x33.sentry_protos.snuba.v1.AggregationComparisonFilterH\x00\x42\x07\n\x05value\"\xbf\x05\n\x06\x43olumn\x12\x33\n\x03key\x18\x01 \x01(\x0b\x32$.sentry_protos.snuba.v1.AttributeKeyH\x00\x12\x43\n\x0b\x61ggregation\x18\x02 \x01(\x0b\x32,.sentry_protos.snuba.v1.AttributeAggregationH\x00\x12Z\n\x17\x63onditional_aggregation\x18\x05 \x01(\x0b\x32\x37.sentry_protos.snuba.v1.AttributeConditionalAggregationH\x00\x12?\n\x07\x66ormula\x18\x04 \x01(\x0b\x32,.sentry_protos.snuba.v1.Column.BinaryFormulaH\x00\x12\x32\n\x07literal\x18\x06 \x01(\x0b\x32\x1f.sentry_protos.snuba.v1.LiteralH\x00\x12\r\n\x05label\x18\x03 \x01(\t\x1a\xd0\x02\n\rBinaryFormula\x12;\n\x02op\x18\x01 \x01(\x0e\x32/.sentry_protos.snuba.v1.Column.BinaryFormula.Op\x12,\n\x04left\x18\x02 \x01(\x0b\x32\x1e.sentry_protos.snuba.v1.Column\x12-\n\x05right\x18\x03 \x01(\x0b\x32\x1e.sentry_protos.snuba.v1.Column\x12\x1e\n\x14\x64\x65\x66\x61ult_value_double\x18\x04 \x01(\x01H\x00\x12\x1d\n\x13\x64\x65\x66\x61ult_value_int64\x18\x05 \x01(\x03H\x00\"U\n\x02Op\x12\x12\n\x0eOP_UNSPECIFIED\x10\x00\x12\r\n\tOP_DIVIDE\x10\x01\x12\x0f\n\x0bOP_MULTIPLY\x10\x02\x12\n\n\x06OP_ADD\x10\x03\x12\x0f\n\x0bOP_SUBTRACT\x10\x04\x42\x0f\n\rdefault_valueB\x08\n\x06\x63olumn\"\xa4\x01\n\x15TraceItemColumnValues\x12\x16\n\x0e\x61ttribute_name\x18\x01 \x01(\t\x12\x37\n\x07results\x18\x02 \x03(\x0b\x32&.sentry_protos.snuba.v1.AttributeValue\x12:\n\rreliabilities\x18\x03 \x03(\x0e\x32#.sentry_protos.snuba.v1.Reliability\"\xc9\x01\n\x16TraceItemTableResponse\x12\x44\n\rcolumn_values\x18\x01 \x03(\x0b\x32-.sentry_protos.snuba.v1.TraceItemColumnValues\x12\x35\n\npage_token\x18\x02 \x01(\x0b\x32!.sentry_protos.snuba.v1.PageToken\x12\x32\n\x04meta\x18\x03 \x01(\x0b\x32$.sentry_protos.snuba.v1.ResponseMetab\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sentry_protos.snuba.v1.endpoint_trace_item_table_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_AGGREGATIONCOMPARISONFILTER'].fields_by_name['column']._loaded_options = None + _globals['_AGGREGATIONCOMPARISONFILTER'].fields_by_name['column']._serialized_options = b'\030\001' + _globals['_AGGREGATIONCOMPARISONFILTER'].fields_by_name['value']._loaded_options = None + _globals['_AGGREGATIONCOMPARISONFILTER'].fields_by_name['value']._serialized_options = b'\030\001' + _globals['_TRACEITEMTABLEREQUEST']._serialized_start=329 + _globals['_TRACEITEMTABLEREQUEST']._serialized_end=1009 + _globals['_TRACEITEMTABLEREQUEST_ORDERBY']._serialized_start=932 + _globals['_TRACEITEMTABLEREQUEST_ORDERBY']._serialized_end=1009 + _globals['_AGGREGATIONANDFILTER']._serialized_start=1011 + _globals['_AGGREGATIONANDFILTER']._serialized_end=1093 + _globals['_AGGREGATIONORFILTER']._serialized_start=1095 + _globals['_AGGREGATIONORFILTER']._serialized_end=1176 + _globals['_AGGREGATIONCOMPARISONFILTER']._serialized_start=1179 + _globals['_AGGREGATIONCOMPARISONFILTER']._serialized_end=1779 + _globals['_AGGREGATIONCOMPARISONFILTER_OP']._serialized_start=1623 + _globals['_AGGREGATIONCOMPARISONFILTER_OP']._serialized_end=1779 + _globals['_AGGREGATIONFILTER']._serialized_start=1782 + _globals['_AGGREGATIONFILTER']._serialized_end=2026 + _globals['_COLUMN']._serialized_start=2029 + _globals['_COLUMN']._serialized_end=2732 + _globals['_COLUMN_BINARYFORMULA']._serialized_start=2386 + _globals['_COLUMN_BINARYFORMULA']._serialized_end=2722 + _globals['_COLUMN_BINARYFORMULA_OP']._serialized_start=2620 + _globals['_COLUMN_BINARYFORMULA_OP']._serialized_end=2705 + _globals['_TRACEITEMCOLUMNVALUES']._serialized_start=2735 + _globals['_TRACEITEMCOLUMNVALUES']._serialized_end=2899 + _globals['_TRACEITEMTABLERESPONSE']._serialized_start=2902 + _globals['_TRACEITEMTABLERESPONSE']._serialized_end=3103 +# @@protoc_insertion_point(module_scope) diff --git a/py/sentry_protos/snuba/v1/endpoint_trace_item_table_pb2.pyi b/py/sentry_protos/snuba/v1/endpoint_trace_item_table_pb2.pyi new file mode 100644 index 00000000..a4a46a2d --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_trace_item_table_pb2.pyi @@ -0,0 +1,383 @@ +""" +@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 sentry_protos.snuba.v1.attribute_conditional_aggregation_pb2 +import sentry_protos.snuba.v1.formula_pb2 +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 sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class TraceItemTableRequest(google.protobuf.message.Message): + """This is a request to the TraceItemTable endpoint, + it is used to query for TraceItems (ex. spans) + it returns tabular data where each row is a TraceItem, + and the columns are the attributes of the TraceItem + it can also be used for aggregations + """ + + 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 + AGGREGATION_FILTER_FIELD_NUMBER: builtins.int + TRACE_FILTERS_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]: + """the columns or aggregations you want to get""" + + @property + def filter(self) -> sentry_protos.snuba.v1.trace_item_filter_pb2.TraceItemFilter: + """filter out trace items you dont want""" + + @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: + """optional, used for pagination, the next page token will be returned in the response""" + + @property + def virtual_column_contexts(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[sentry_protos.snuba.v1.trace_item_attribute_pb2.VirtualColumnContext]: ... + @property + def aggregation_filter(self) -> global___AggregationFilter: + """optional, filter out results of aggregates, same as SQL HAVING""" + + @property + def trace_filters(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[sentry_protos.snuba.v1.request_common_pb2.TraceItemFilterWithType]: + """A list of filters applied to each item type provided. These filters will be applied on a trace level to find traces + that contain each of the provided items with matching conditions. The overall request will then only apply on those traces. + If specified, the endpoint will only consider traces that match all the filters. + ex: Find spans in traces containing a span with op = 'db' that also contain errors with message = 'timeout' + """ + + 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 = ..., + aggregation_filter: global___AggregationFilter | None = ..., + trace_filters: collections.abc.Iterable[sentry_protos.snuba.v1.request_common_pb2.TraceItemFilterWithType] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["aggregation_filter", b"aggregation_filter", "filter", b"filter", "meta", b"meta", "page_token", b"page_token"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["aggregation_filter", b"aggregation_filter", "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", "trace_filters", b"trace_filters", "virtual_column_contexts", b"virtual_column_contexts"]) -> None: ... + +global___TraceItemTableRequest = TraceItemTableRequest + +@typing.final +class AggregationAndFilter(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FILTERS_FIELD_NUMBER: builtins.int + @property + def filters(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___AggregationFilter]: ... + def __init__( + self, + *, + filters: collections.abc.Iterable[global___AggregationFilter] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["filters", b"filters"]) -> None: ... + +global___AggregationAndFilter = AggregationAndFilter + +@typing.final +class AggregationOrFilter(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FILTERS_FIELD_NUMBER: builtins.int + @property + def filters(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___AggregationFilter]: ... + def __init__( + self, + *, + filters: collections.abc.Iterable[global___AggregationFilter] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["filters", b"filters"]) -> None: ... + +global___AggregationOrFilter = AggregationOrFilter + +@typing.final +class AggregationComparisonFilter(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _Op: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _OpEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[AggregationComparisonFilter._Op.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + OP_UNSPECIFIED: AggregationComparisonFilter._Op.ValueType # 0 + OP_LESS_THAN: AggregationComparisonFilter._Op.ValueType # 1 + OP_GREATER_THAN: AggregationComparisonFilter._Op.ValueType # 2 + OP_LESS_THAN_OR_EQUALS: AggregationComparisonFilter._Op.ValueType # 3 + OP_GREATER_THAN_OR_EQUALS: AggregationComparisonFilter._Op.ValueType # 4 + OP_EQUALS: AggregationComparisonFilter._Op.ValueType # 5 + OP_NOT_EQUALS: AggregationComparisonFilter._Op.ValueType # 6 + + class Op(_Op, metaclass=_OpEnumTypeWrapper): ... + OP_UNSPECIFIED: AggregationComparisonFilter.Op.ValueType # 0 + OP_LESS_THAN: AggregationComparisonFilter.Op.ValueType # 1 + OP_GREATER_THAN: AggregationComparisonFilter.Op.ValueType # 2 + OP_LESS_THAN_OR_EQUALS: AggregationComparisonFilter.Op.ValueType # 3 + OP_GREATER_THAN_OR_EQUALS: AggregationComparisonFilter.Op.ValueType # 4 + OP_EQUALS: AggregationComparisonFilter.Op.ValueType # 5 + OP_NOT_EQUALS: AggregationComparisonFilter.Op.ValueType # 6 + + COLUMN_FIELD_NUMBER: builtins.int + OP_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + VAL_FIELD_NUMBER: builtins.int + AGGREGATION_FIELD_NUMBER: builtins.int + CONDITIONAL_AGGREGATION_FIELD_NUMBER: builtins.int + FORMULA_FIELD_NUMBER: builtins.int + op: global___AggregationComparisonFilter.Op.ValueType + val: builtins.float + @property + def column(self) -> global___Column: + """deprecated as columns should always be aggregated in a post aggregation filter""" + + @property + def value(self) -> sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeValue: + """since only aggregated columns are supported, the value should be numeric""" + + @property + def aggregation(self) -> sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeAggregation: ... + @property + def conditional_aggregation(self) -> sentry_protos.snuba.v1.attribute_conditional_aggregation_pb2.AttributeConditionalAggregation: ... + @property + def formula(self) -> global___Column.BinaryFormula: ... + def __init__( + self, + *, + column: global___Column | None = ..., + op: global___AggregationComparisonFilter.Op.ValueType = ..., + value: sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeValue | None = ..., + val: builtins.float = ..., + aggregation: sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeAggregation | None = ..., + conditional_aggregation: sentry_protos.snuba.v1.attribute_conditional_aggregation_pb2.AttributeConditionalAggregation | None = ..., + formula: global___Column.BinaryFormula | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["aggregation", b"aggregation", "column", b"column", "conditional_aggregation", b"conditional_aggregation", "formula", b"formula", "value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["aggregation", b"aggregation", "column", b"column", "conditional_aggregation", b"conditional_aggregation", "formula", b"formula", "op", b"op", "val", b"val", "value", b"value"]) -> None: ... + +global___AggregationComparisonFilter = AggregationComparisonFilter + +@typing.final +class AggregationFilter(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + AND_FILTER_FIELD_NUMBER: builtins.int + OR_FILTER_FIELD_NUMBER: builtins.int + COMPARISON_FILTER_FIELD_NUMBER: builtins.int + @property + def and_filter(self) -> global___AggregationAndFilter: ... + @property + def or_filter(self) -> global___AggregationOrFilter: ... + @property + def comparison_filter(self) -> global___AggregationComparisonFilter: ... + def __init__( + self, + *, + and_filter: global___AggregationAndFilter | None = ..., + or_filter: global___AggregationOrFilter | None = ..., + comparison_filter: global___AggregationComparisonFilter | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["and_filter", b"and_filter", "comparison_filter", b"comparison_filter", "or_filter", b"or_filter", "value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["and_filter", b"and_filter", "comparison_filter", b"comparison_filter", "or_filter", b"or_filter", "value", b"value"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["value", b"value"]) -> typing.Literal["and_filter", "or_filter", "comparison_filter"] | None: ... + +global___AggregationFilter = AggregationFilter + +@typing.final +class Column(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class BinaryFormula(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _Op: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _OpEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Column.BinaryFormula._Op.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + OP_UNSPECIFIED: Column.BinaryFormula._Op.ValueType # 0 + OP_DIVIDE: Column.BinaryFormula._Op.ValueType # 1 + OP_MULTIPLY: Column.BinaryFormula._Op.ValueType # 2 + OP_ADD: Column.BinaryFormula._Op.ValueType # 3 + OP_SUBTRACT: Column.BinaryFormula._Op.ValueType # 4 + + class Op(_Op, metaclass=_OpEnumTypeWrapper): ... + OP_UNSPECIFIED: Column.BinaryFormula.Op.ValueType # 0 + OP_DIVIDE: Column.BinaryFormula.Op.ValueType # 1 + OP_MULTIPLY: Column.BinaryFormula.Op.ValueType # 2 + OP_ADD: Column.BinaryFormula.Op.ValueType # 3 + OP_SUBTRACT: Column.BinaryFormula.Op.ValueType # 4 + + OP_FIELD_NUMBER: builtins.int + LEFT_FIELD_NUMBER: builtins.int + RIGHT_FIELD_NUMBER: builtins.int + DEFAULT_VALUE_DOUBLE_FIELD_NUMBER: builtins.int + DEFAULT_VALUE_INT64_FIELD_NUMBER: builtins.int + op: global___Column.BinaryFormula.Op.ValueType + default_value_double: builtins.float + default_value_int64: builtins.int + @property + def left(self) -> global___Column: ... + @property + def right(self) -> global___Column: ... + def __init__( + self, + *, + op: global___Column.BinaryFormula.Op.ValueType = ..., + left: global___Column | None = ..., + right: global___Column | None = ..., + default_value_double: builtins.float = ..., + default_value_int64: builtins.int = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["default_value", b"default_value", "default_value_double", b"default_value_double", "default_value_int64", b"default_value_int64", "left", b"left", "right", b"right"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["default_value", b"default_value", "default_value_double", b"default_value_double", "default_value_int64", b"default_value_int64", "left", b"left", "op", b"op", "right", b"right"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["default_value", b"default_value"]) -> typing.Literal["default_value_double", "default_value_int64"] | None: ... + + KEY_FIELD_NUMBER: builtins.int + AGGREGATION_FIELD_NUMBER: builtins.int + CONDITIONAL_AGGREGATION_FIELD_NUMBER: builtins.int + FORMULA_FIELD_NUMBER: builtins.int + LITERAL_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: ... + @property + def conditional_aggregation(self) -> sentry_protos.snuba.v1.attribute_conditional_aggregation_pb2.AttributeConditionalAggregation: ... + @property + def formula(self) -> global___Column.BinaryFormula: ... + @property + def literal(self) -> sentry_protos.snuba.v1.formula_pb2.Literal: ... + 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 = ..., + conditional_aggregation: sentry_protos.snuba.v1.attribute_conditional_aggregation_pb2.AttributeConditionalAggregation | None = ..., + formula: global___Column.BinaryFormula | None = ..., + literal: sentry_protos.snuba.v1.formula_pb2.Literal | None = ..., + label: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["aggregation", b"aggregation", "column", b"column", "conditional_aggregation", b"conditional_aggregation", "formula", b"formula", "key", b"key", "literal", b"literal"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["aggregation", b"aggregation", "column", b"column", "conditional_aggregation", b"conditional_aggregation", "formula", b"formula", "key", b"key", "label", b"label", "literal", b"literal"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["column", b"column"]) -> typing.Literal["key", "aggregation", "conditional_aggregation", "formula", "literal"] | 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]: + """reliability of the values based on confidence interval and sample size math""" + + 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): + """this is a response from the TraceItemTable endpoint + it is the counterpart to TraceItemTableRequest + """ + + 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]: + """the rows""" + + @property + def page_token(self) -> sentry_protos.snuba.v1.request_common_pb2.PageToken: + """page token for the next page of results""" + + @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 diff --git a/py/sentry_protos/snuba/v1/endpoint_trace_item_table_pb2_grpc.py b/py/sentry_protos/snuba/v1/endpoint_trace_item_table_pb2_grpc.py new file mode 100644 index 00000000..caf533e2 --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_trace_item_table_pb2_grpc.py @@ -0,0 +1,29 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.65.4' +GRPC_VERSION = grpc.__version__ +EXPECTED_ERROR_RELEASE = '1.66.0' +SCHEDULED_RELEASE_DATE = 'August 6, 2024' +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + warnings.warn( + f'The grpc package installed is at version {GRPC_VERSION},' + + f' but the generated code in sentry_protos/snuba/v1/endpoint_trace_item_table_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + + f' This warning will become an error in {EXPECTED_ERROR_RELEASE},' + + f' scheduled for release on {SCHEDULED_RELEASE_DATE}.', + RuntimeWarning + ) diff --git a/py/sentry_protos/snuba/v1/endpoint_trace_item_table_pb2_grpc.pyi b/py/sentry_protos/snuba/v1/endpoint_trace_item_table_pb2_grpc.pyi new file mode 100644 index 00000000..a6a9cff9 --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_trace_item_table_pb2_grpc.pyi @@ -0,0 +1,17 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import grpc +import grpc.aio +import typing + +_T = typing.TypeVar("_T") + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg] + ... diff --git a/py/sentry_protos/snuba/v1/endpoint_trace_item_table_subscription_pb2.py b/py/sentry_protos/snuba/v1/endpoint_trace_item_table_subscription_pb2.py new file mode 100644 index 00000000..436e516f --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_trace_item_table_subscription_pb2.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: sentry_protos/snuba/v1/endpoint_trace_item_table_subscription.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from sentry_protos.snuba.v1 import endpoint_trace_item_table_pb2 as sentry__protos_dot_snuba_dot_v1_dot_endpoint__trace__item__table__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\nCsentry_protos/snuba/v1/endpoint_trace_item_table_subscription.proto\x12\x16sentry_protos.snuba.v1\x1a\x36sentry_protos/snuba/v1/endpoint_trace_item_table.proto\"\xb0\x01\n\'CreateTraceItemTableSubscriptionRequest\x12\x44\n\rtable_request\x18\x01 \x01(\x0b\x32-.sentry_protos.snuba.v1.TraceItemTableRequest\x12\x12\n\nproject_id\x18\x02 \x01(\x04\x12\x13\n\x0btime_window\x18\x03 \x01(\r\x12\x12\n\nresolution\x18\x04 \x01(\r:\x02\x18\x01\"G\n(CreateTraceItemTableSubscriptionResponse\x12\x17\n\x0fsubscription_id\x18\x01 \x01(\t:\x02\x18\x01\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sentry_protos.snuba.v1.endpoint_trace_item_table_subscription_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_CREATETRACEITEMTABLESUBSCRIPTIONREQUEST']._loaded_options = None + _globals['_CREATETRACEITEMTABLESUBSCRIPTIONREQUEST']._serialized_options = b'\030\001' + _globals['_CREATETRACEITEMTABLESUBSCRIPTIONRESPONSE']._loaded_options = None + _globals['_CREATETRACEITEMTABLESUBSCRIPTIONRESPONSE']._serialized_options = b'\030\001' + _globals['_CREATETRACEITEMTABLESUBSCRIPTIONREQUEST']._serialized_start=152 + _globals['_CREATETRACEITEMTABLESUBSCRIPTIONREQUEST']._serialized_end=328 + _globals['_CREATETRACEITEMTABLESUBSCRIPTIONRESPONSE']._serialized_start=330 + _globals['_CREATETRACEITEMTABLESUBSCRIPTIONRESPONSE']._serialized_end=401 +# @@protoc_insertion_point(module_scope) diff --git a/py/sentry_protos/snuba/v1/endpoint_trace_item_table_subscription_pb2.pyi b/py/sentry_protos/snuba/v1/endpoint_trace_item_table_subscription_pb2.pyi new file mode 100644 index 00000000..abd4b633 --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_trace_item_table_subscription_pb2.pyi @@ -0,0 +1,53 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.message +import sentry_protos.snuba.v1.endpoint_trace_item_table_pb2 +import typing + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class CreateTraceItemTableSubscriptionRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + TABLE_REQUEST_FIELD_NUMBER: builtins.int + PROJECT_ID_FIELD_NUMBER: builtins.int + TIME_WINDOW_FIELD_NUMBER: builtins.int + RESOLUTION_FIELD_NUMBER: builtins.int + project_id: builtins.int + time_window: builtins.int + resolution: builtins.int + @property + def table_request(self) -> sentry_protos.snuba.v1.endpoint_trace_item_table_pb2.TraceItemTableRequest: ... + def __init__( + self, + *, + table_request: sentry_protos.snuba.v1.endpoint_trace_item_table_pb2.TraceItemTableRequest | None = ..., + project_id: builtins.int = ..., + time_window: builtins.int = ..., + resolution: builtins.int = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["table_request", b"table_request"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["project_id", b"project_id", "resolution", b"resolution", "table_request", b"table_request", "time_window", b"time_window"]) -> None: ... + +global___CreateTraceItemTableSubscriptionRequest = CreateTraceItemTableSubscriptionRequest + +@typing.final +class CreateTraceItemTableSubscriptionResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + SUBSCRIPTION_ID_FIELD_NUMBER: builtins.int + subscription_id: builtins.str + def __init__( + self, + *, + subscription_id: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["subscription_id", b"subscription_id"]) -> None: ... + +global___CreateTraceItemTableSubscriptionResponse = CreateTraceItemTableSubscriptionResponse diff --git a/py/sentry_protos/snuba/v1/endpoint_trace_item_table_subscription_pb2_grpc.py b/py/sentry_protos/snuba/v1/endpoint_trace_item_table_subscription_pb2_grpc.py new file mode 100644 index 00000000..54f01f82 --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_trace_item_table_subscription_pb2_grpc.py @@ -0,0 +1,29 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.65.4' +GRPC_VERSION = grpc.__version__ +EXPECTED_ERROR_RELEASE = '1.66.0' +SCHEDULED_RELEASE_DATE = 'August 6, 2024' +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + warnings.warn( + f'The grpc package installed is at version {GRPC_VERSION},' + + f' but the generated code in sentry_protos/snuba/v1/endpoint_trace_item_table_subscription_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + + f' This warning will become an error in {EXPECTED_ERROR_RELEASE},' + + f' scheduled for release on {SCHEDULED_RELEASE_DATE}.', + RuntimeWarning + ) diff --git a/py/sentry_protos/snuba/v1/endpoint_trace_item_table_subscription_pb2_grpc.pyi b/py/sentry_protos/snuba/v1/endpoint_trace_item_table_subscription_pb2_grpc.pyi new file mode 100644 index 00000000..a6a9cff9 --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_trace_item_table_subscription_pb2_grpc.pyi @@ -0,0 +1,17 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import grpc +import grpc.aio +import typing + +_T = typing.TypeVar("_T") + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg] + ... diff --git a/py/sentry_protos/snuba/v1/endpoint_trace_items_pb2.py b/py/sentry_protos/snuba/v1/endpoint_trace_items_pb2.py new file mode 100644 index 00000000..aedc13d2 --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_trace_items_pb2.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: sentry_protos/snuba/v1/endpoint_trace_items.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from sentry_protos.snuba.v1 import request_common_pb2 as sentry__protos_dot_snuba_dot_v1_dot_request__common__pb2 +from sentry_protos.snuba.v1 import trace_item_pb2 as sentry__protos_dot_snuba_dot_v1_dot_trace__item__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n1sentry_protos/snuba/v1/endpoint_trace_items.proto\x12\x16sentry_protos.snuba.v1\x1a+sentry_protos/snuba/v1/request_common.proto\x1a\'sentry_protos/snuba/v1/trace_item.proto\"\x83\x01\n\x17\x45xportTraceItemsRequest\x12\x31\n\x04meta\x18\x01 \x01(\x0b\x32#.sentry_protos.snuba.v1.RequestMeta\x12\x35\n\npage_token\x18\x02 \x01(\x0b\x32!.sentry_protos.snuba.v1.PageToken\"\x89\x01\n\x18\x45xportTraceItemsResponse\x12\x36\n\x0btrace_items\x18\x01 \x03(\x0b\x32!.sentry_protos.snuba.v1.TraceItem\x12\x35\n\npage_token\x18\x02 \x01(\x0b\x32!.sentry_protos.snuba.v1.PageTokenb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sentry_protos.snuba.v1.endpoint_trace_items_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_EXPORTTRACEITEMSREQUEST']._serialized_start=164 + _globals['_EXPORTTRACEITEMSREQUEST']._serialized_end=295 + _globals['_EXPORTTRACEITEMSRESPONSE']._serialized_start=298 + _globals['_EXPORTTRACEITEMSRESPONSE']._serialized_end=435 +# @@protoc_insertion_point(module_scope) diff --git a/py/sentry_protos/snuba/v1/endpoint_trace_items_pb2.pyi b/py/sentry_protos/snuba/v1/endpoint_trace_items_pb2.pyi new file mode 100644 index 00000000..319ec6b4 --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_trace_items_pb2.pyi @@ -0,0 +1,57 @@ +""" +@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_pb2 +import typing + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class ExportTraceItemsRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + META_FIELD_NUMBER: builtins.int + PAGE_TOKEN_FIELD_NUMBER: builtins.int + @property + def meta(self) -> sentry_protos.snuba.v1.request_common_pb2.RequestMeta: ... + @property + def page_token(self) -> sentry_protos.snuba.v1.request_common_pb2.PageToken: ... + def __init__( + self, + *, + meta: sentry_protos.snuba.v1.request_common_pb2.RequestMeta | None = ..., + page_token: sentry_protos.snuba.v1.request_common_pb2.PageToken | 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["meta", b"meta", "page_token", b"page_token"]) -> None: ... + +global___ExportTraceItemsRequest = ExportTraceItemsRequest + +@typing.final +class ExportTraceItemsResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + TRACE_ITEMS_FIELD_NUMBER: builtins.int + PAGE_TOKEN_FIELD_NUMBER: builtins.int + @property + def trace_items(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[sentry_protos.snuba.v1.trace_item_pb2.TraceItem]: ... + @property + def page_token(self) -> sentry_protos.snuba.v1.request_common_pb2.PageToken: ... + def __init__( + self, + *, + trace_items: collections.abc.Iterable[sentry_protos.snuba.v1.trace_item_pb2.TraceItem] | None = ..., + page_token: sentry_protos.snuba.v1.request_common_pb2.PageToken | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["page_token", b"page_token"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["page_token", b"page_token", "trace_items", b"trace_items"]) -> None: ... + +global___ExportTraceItemsResponse = ExportTraceItemsResponse diff --git a/py/sentry_protos/snuba/v1/endpoint_trace_items_pb2_grpc.py b/py/sentry_protos/snuba/v1/endpoint_trace_items_pb2_grpc.py new file mode 100644 index 00000000..b912d549 --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_trace_items_pb2_grpc.py @@ -0,0 +1,29 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.65.4' +GRPC_VERSION = grpc.__version__ +EXPECTED_ERROR_RELEASE = '1.66.0' +SCHEDULED_RELEASE_DATE = 'August 6, 2024' +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + warnings.warn( + f'The grpc package installed is at version {GRPC_VERSION},' + + f' but the generated code in sentry_protos/snuba/v1/endpoint_trace_items_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + + f' This warning will become an error in {EXPECTED_ERROR_RELEASE},' + + f' scheduled for release on {SCHEDULED_RELEASE_DATE}.', + RuntimeWarning + ) diff --git a/py/sentry_protos/snuba/v1/endpoint_trace_items_pb2_grpc.pyi b/py/sentry_protos/snuba/v1/endpoint_trace_items_pb2_grpc.pyi new file mode 100644 index 00000000..a6a9cff9 --- /dev/null +++ b/py/sentry_protos/snuba/v1/endpoint_trace_items_pb2_grpc.pyi @@ -0,0 +1,17 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import grpc +import grpc.aio +import typing + +_T = typing.TypeVar("_T") + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg] + ... diff --git a/py/sentry_protos/snuba/v1/error_pb2.py b/py/sentry_protos/snuba/v1/error_pb2.py new file mode 100644 index 00000000..387c6671 --- /dev/null +++ b/py/sentry_protos/snuba/v1/error_pb2.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: sentry_protos/snuba/v1/error.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"sentry_protos/snuba/v1/error.proto\x12\x16sentry_protos.snuba.v1\x1a\x19google/protobuf/any.proto\"M\n\x05\x45rror\x12\x0c\n\x04\x63ode\x18\x01 \x01(\x05\x12\x0f\n\x07message\x18\x02 \x01(\t\x12%\n\x07\x64\x65tails\x18\x03 \x03(\x0b\x32\x14.google.protobuf.Anyb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sentry_protos.snuba.v1.error_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_ERROR']._serialized_start=89 + _globals['_ERROR']._serialized_end=166 +# @@protoc_insertion_point(module_scope) diff --git a/py/sentry_protos/snuba/v1/error_pb2.pyi b/py/sentry_protos/snuba/v1/error_pb2.pyi new file mode 100644 index 00000000..a023f83c --- /dev/null +++ b/py/sentry_protos/snuba/v1/error_pb2.pyi @@ -0,0 +1,40 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import collections.abc +import google.protobuf.any_pb2 +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.message +import typing + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class Error(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CODE_FIELD_NUMBER: builtins.int + MESSAGE_FIELD_NUMBER: builtins.int + DETAILS_FIELD_NUMBER: builtins.int + code: builtins.int + """The HTTP status code corresponding to this error""" + message: builtins.str + """The developer-facing message""" + @property + def details(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[google.protobuf.any_pb2.Any]: + """Additional error information""" + + def __init__( + self, + *, + code: builtins.int = ..., + message: builtins.str = ..., + details: collections.abc.Iterable[google.protobuf.any_pb2.Any] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["code", b"code", "details", b"details", "message", b"message"]) -> None: ... + +global___Error = Error diff --git a/py/sentry_protos/snuba/v1/error_pb2_grpc.py b/py/sentry_protos/snuba/v1/error_pb2_grpc.py new file mode 100644 index 00000000..052324bd --- /dev/null +++ b/py/sentry_protos/snuba/v1/error_pb2_grpc.py @@ -0,0 +1,29 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.65.4' +GRPC_VERSION = grpc.__version__ +EXPECTED_ERROR_RELEASE = '1.66.0' +SCHEDULED_RELEASE_DATE = 'August 6, 2024' +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + warnings.warn( + f'The grpc package installed is at version {GRPC_VERSION},' + + f' but the generated code in sentry_protos/snuba/v1/error_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + + f' This warning will become an error in {EXPECTED_ERROR_RELEASE},' + + f' scheduled for release on {SCHEDULED_RELEASE_DATE}.', + RuntimeWarning + ) diff --git a/py/sentry_protos/snuba/v1/error_pb2_grpc.pyi b/py/sentry_protos/snuba/v1/error_pb2_grpc.pyi new file mode 100644 index 00000000..a6a9cff9 --- /dev/null +++ b/py/sentry_protos/snuba/v1/error_pb2_grpc.pyi @@ -0,0 +1,17 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import grpc +import grpc.aio +import typing + +_T = typing.TypeVar("_T") + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg] + ... diff --git a/py/sentry_protos/snuba/v1/formula_pb2.py b/py/sentry_protos/snuba/v1/formula_pb2.py new file mode 100644 index 00000000..60064a8e --- /dev/null +++ b/py/sentry_protos/snuba/v1/formula_pb2.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: sentry_protos/snuba/v1/formula.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$sentry_protos/snuba/v1/formula.proto\x12\x16sentry_protos.snuba.v1\"(\n\x07Literal\x12\x14\n\nval_double\x18\x01 \x01(\x01H\x00\x42\x07\n\x05valueb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sentry_protos.snuba.v1.formula_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_LITERAL']._serialized_start=64 + _globals['_LITERAL']._serialized_end=104 +# @@protoc_insertion_point(module_scope) diff --git a/py/sentry_protos/snuba/v1/formula_pb2.pyi b/py/sentry_protos/snuba/v1/formula_pb2.pyi new file mode 100644 index 00000000..0b1bb189 --- /dev/null +++ b/py/sentry_protos/snuba/v1/formula_pb2.pyi @@ -0,0 +1,28 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.message +import typing + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class Literal(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VAL_DOUBLE_FIELD_NUMBER: builtins.int + val_double: builtins.float + def __init__( + self, + *, + val_double: builtins.float = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["val_double", b"val_double", "value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["val_double", b"val_double", "value", b"value"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["value", b"value"]) -> typing.Literal["val_double"] | None: ... + +global___Literal = Literal diff --git a/py/sentry_protos/snuba/v1/formula_pb2_grpc.py b/py/sentry_protos/snuba/v1/formula_pb2_grpc.py new file mode 100644 index 00000000..8703fcb8 --- /dev/null +++ b/py/sentry_protos/snuba/v1/formula_pb2_grpc.py @@ -0,0 +1,29 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.65.4' +GRPC_VERSION = grpc.__version__ +EXPECTED_ERROR_RELEASE = '1.66.0' +SCHEDULED_RELEASE_DATE = 'August 6, 2024' +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + warnings.warn( + f'The grpc package installed is at version {GRPC_VERSION},' + + f' but the generated code in sentry_protos/snuba/v1/formula_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + + f' This warning will become an error in {EXPECTED_ERROR_RELEASE},' + + f' scheduled for release on {SCHEDULED_RELEASE_DATE}.', + RuntimeWarning + ) diff --git a/py/sentry_protos/snuba/v1/formula_pb2_grpc.pyi b/py/sentry_protos/snuba/v1/formula_pb2_grpc.pyi new file mode 100644 index 00000000..a6a9cff9 --- /dev/null +++ b/py/sentry_protos/snuba/v1/formula_pb2_grpc.pyi @@ -0,0 +1,17 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import grpc +import grpc.aio +import typing + +_T = typing.TypeVar("_T") + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg] + ... diff --git a/py/sentry_protos/snuba/v1/request_common_pb2.py b/py/sentry_protos/snuba/v1/request_common_pb2.py new file mode 100644 index 00000000..ccdd58ee --- /dev/null +++ b/py/sentry_protos/snuba/v1/request_common_pb2.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: sentry_protos/snuba/v1/request_common.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 +from sentry_protos.snuba.v1 import downsampled_storage_pb2 as sentry__protos_dot_snuba_dot_v1_dot_downsampled__storage__pb2 +from sentry_protos.snuba.v1 import trace_item_filter_pb2 as sentry__protos_dot_snuba_dot_v1_dot_trace__item__filter__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n+sentry_protos/snuba/v1/request_common.proto\x12\x16sentry_protos.snuba.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x30sentry_protos/snuba/v1/downsampled_storage.proto\x1a.sentry_protos/snuba/v1/trace_item_filter.proto\"\xc9\x03\n\x0bRequestMeta\x12\x17\n\x0forganization_id\x18\x01 \x01(\x04\x12\x15\n\rcogs_category\x18\x02 \x01(\t\x12\x10\n\x08referrer\x18\x03 \x01(\t\x12\x13\n\x0bproject_ids\x18\x04 \x03(\x04\x12\x33\n\x0fstart_timestamp\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x31\n\rend_timestamp\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x42\n\x0ftrace_item_name\x18\x07 \x01(\x0e\x32%.sentry_protos.snuba.v1.TraceItemNameB\x02\x18\x01\x12>\n\x0ftrace_item_type\x18\x08 \x01(\x0e\x32%.sentry_protos.snuba.v1.TraceItemType\x12\r\n\x05\x64\x65\x62ug\x18\n \x01(\x08\x12\x12\n\nrequest_id\x18\x0b \x01(\t\x12T\n\x1a\x64ownsampled_storage_config\x18\x0c \x01(\x0b\x32\x30.sentry_protos.snuba.v1.DownsampledStorageConfig\"\xab\x01\n\x0cResponseMeta\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x35\n\nquery_info\x18\x02 \x03(\x0b\x32!.sentry_protos.snuba.v1.QueryInfo\x12P\n\x18\x64ownsampled_storage_meta\x18\x03 \x01(\x0b\x32..sentry_protos.snuba.v1.DownsampledStorageMeta\"\x8c\x01\n\x17TraceItemFilterWithType\x12\x38\n\titem_type\x18\x01 \x01(\x0e\x32%.sentry_protos.snuba.v1.TraceItemType\x12\x37\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\'.sentry_protos.snuba.v1.TraceItemFilter\"\x82\x01\n\tPageToken\x12\x10\n\x06offset\x18\x01 \x01(\x04H\x00\x12@\n\rfilter_offset\x18\x02 \x01(\x0b\x32\'.sentry_protos.snuba.v1.TraceItemFilterH\x00\x12\x18\n\x0e\x65nd_pagination\x18\x03 \x01(\x08H\x00\x42\x07\n\x05value\"\xad\x01\n\nQueryStats\x12\x11\n\trows_read\x18\x01 \x01(\x03\x12\x14\n\x0c\x63olumns_read\x18\x02 \x01(\x03\x12\x0e\n\x06\x62locks\x18\x04 \x01(\x05\x12\x16\n\x0eprogress_bytes\x18\x05 \x01(\x03\x12\x13\n\x0bmax_threads\x18\x08 \x01(\x05\x12\x39\n\x0ctiming_marks\x18\x0b \x01(\x0b\x32#.sentry_protos.snuba.v1.TimingMarks\"\xa4\x01\n\rQueryMetadata\x12\x0b\n\x03sql\x18\x01 \x01(\t\x12\x0e\n\x06status\x18\x02 \x01(\t\x12\x18\n\x10\x63lickhouse_table\x18\x03 \x01(\t\x12\r\n\x05\x66inal\x18\x04 \x01(\x08\x12\x10\n\x08query_id\x18\x06 \x01(\t\x12\x12\n\nconsistent\x18\x07 \x01(\x08\x12\x11\n\tcache_hit\x18\t \x01(\x08\x12\x14\n\x0c\x63luster_name\x18\n \x01(\t\"\x93\x02\n\x0bTimingMarks\x12\x13\n\x0b\x64uration_ms\x18\x01 \x01(\x03\x12\x42\n\x08marks_ms\x18\x02 \x03(\x0b\x32\x30.sentry_protos.snuba.v1.TimingMarks.MarksMsEntry\x12;\n\x04tags\x18\x03 \x03(\x0b\x32-.sentry_protos.snuba.v1.TimingMarks.TagsEntry\x12\x11\n\ttimestamp\x18\x04 \x01(\x03\x1a.\n\x0cMarksMsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x8b\x01\n\tQueryInfo\x12\x31\n\x05stats\x18\x01 \x01(\x0b\x32\".sentry_protos.snuba.v1.QueryStats\x12\x37\n\x08metadata\x18\x02 \x01(\x0b\x32%.sentry_protos.snuba.v1.QueryMetadata\x12\x12\n\ntrace_logs\x18\x03 \x01(\t*o\n\rTraceItemName\x12\x1f\n\x1bTRACE_ITEM_NAME_UNSPECIFIED\x10\x00\x12\x1d\n\x19TRACE_ITEM_NAME_EAP_SPANS\x10\x01\x12\x1e\n\x1aTRACE_ITEM_NAME_EAP_ERRORS\x10\x02*\xfe\x02\n\rTraceItemType\x12\x1f\n\x1bTRACE_ITEM_TYPE_UNSPECIFIED\x10\x00\x12\x18\n\x14TRACE_ITEM_TYPE_SPAN\x10\x01\x12\x19\n\x15TRACE_ITEM_TYPE_ERROR\x10\x02\x12\x17\n\x13TRACE_ITEM_TYPE_LOG\x10\x03\x12 \n\x1cTRACE_ITEM_TYPE_UPTIME_CHECK\x10\x04\x12!\n\x1dTRACE_ITEM_TYPE_UPTIME_RESULT\x10\x05\x12\x1a\n\x16TRACE_ITEM_TYPE_REPLAY\x10\x06\x12\x1e\n\x1aTRACE_ITEM_TYPE_OCCURRENCE\x10\x07\x12\x1a\n\x16TRACE_ITEM_TYPE_METRIC\x10\x08\x12$\n TRACE_ITEM_TYPE_PROFILE_FUNCTION\x10\t\x12\x1e\n\x1aTRACE_ITEM_TYPE_ATTACHMENT\x10\n\x12\x1b\n\x17TRACE_ITEM_TYPE_PREPROD\x10\x0b\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sentry_protos.snuba.v1.request_common_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_REQUESTMETA'].fields_by_name['trace_item_name']._loaded_options = None + _globals['_REQUESTMETA'].fields_by_name['trace_item_name']._serialized_options = b'\030\001' + _globals['_TIMINGMARKS_MARKSMSENTRY']._loaded_options = None + _globals['_TIMINGMARKS_MARKSMSENTRY']._serialized_options = b'8\001' + _globals['_TIMINGMARKS_TAGSENTRY']._loaded_options = None + _globals['_TIMINGMARKS_TAGSENTRY']._serialized_options = b'8\001' + _globals['_TRACEITEMNAME']._serialized_start=1875 + _globals['_TRACEITEMNAME']._serialized_end=1986 + _globals['_TRACEITEMTYPE']._serialized_start=1989 + _globals['_TRACEITEMTYPE']._serialized_end=2371 + _globals['_REQUESTMETA']._serialized_start=203 + _globals['_REQUESTMETA']._serialized_end=660 + _globals['_RESPONSEMETA']._serialized_start=663 + _globals['_RESPONSEMETA']._serialized_end=834 + _globals['_TRACEITEMFILTERWITHTYPE']._serialized_start=837 + _globals['_TRACEITEMFILTERWITHTYPE']._serialized_end=977 + _globals['_PAGETOKEN']._serialized_start=980 + _globals['_PAGETOKEN']._serialized_end=1110 + _globals['_QUERYSTATS']._serialized_start=1113 + _globals['_QUERYSTATS']._serialized_end=1286 + _globals['_QUERYMETADATA']._serialized_start=1289 + _globals['_QUERYMETADATA']._serialized_end=1453 + _globals['_TIMINGMARKS']._serialized_start=1456 + _globals['_TIMINGMARKS']._serialized_end=1731 + _globals['_TIMINGMARKS_MARKSMSENTRY']._serialized_start=1640 + _globals['_TIMINGMARKS_MARKSMSENTRY']._serialized_end=1686 + _globals['_TIMINGMARKS_TAGSENTRY']._serialized_start=1688 + _globals['_TIMINGMARKS_TAGSENTRY']._serialized_end=1731 + _globals['_QUERYINFO']._serialized_start=1734 + _globals['_QUERYINFO']._serialized_end=1873 +# @@protoc_insertion_point(module_scope) diff --git a/py/sentry_protos/snuba/v1/request_common_pb2.pyi b/py/sentry_protos/snuba/v1/request_common_pb2.pyi new file mode 100644 index 00000000..2871e149 --- /dev/null +++ b/py/sentry_protos/snuba/v1/request_common_pb2.pyi @@ -0,0 +1,378 @@ +""" +@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 google.protobuf.timestamp_pb2 +import sentry_protos.snuba.v1.downsampled_storage_pb2 +import sentry_protos.snuba.v1.trace_item_filter_pb2 +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 _TraceItemName: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _TraceItemNameEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_TraceItemName.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + TRACE_ITEM_NAME_UNSPECIFIED: _TraceItemName.ValueType # 0 + TRACE_ITEM_NAME_EAP_SPANS: _TraceItemName.ValueType # 1 + TRACE_ITEM_NAME_EAP_ERRORS: _TraceItemName.ValueType # 2 + +class TraceItemName(_TraceItemName, metaclass=_TraceItemNameEnumTypeWrapper): + """DEPRECATED: use TraceItemType instead""" + +TRACE_ITEM_NAME_UNSPECIFIED: TraceItemName.ValueType # 0 +TRACE_ITEM_NAME_EAP_SPANS: TraceItemName.ValueType # 1 +TRACE_ITEM_NAME_EAP_ERRORS: TraceItemName.ValueType # 2 +global___TraceItemName = TraceItemName + +class _TraceItemType: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _TraceItemTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_TraceItemType.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + TRACE_ITEM_TYPE_UNSPECIFIED: _TraceItemType.ValueType # 0 + TRACE_ITEM_TYPE_SPAN: _TraceItemType.ValueType # 1 + TRACE_ITEM_TYPE_ERROR: _TraceItemType.ValueType # 2 + TRACE_ITEM_TYPE_LOG: _TraceItemType.ValueType # 3 + TRACE_ITEM_TYPE_UPTIME_CHECK: _TraceItemType.ValueType # 4 + TRACE_ITEM_TYPE_UPTIME_RESULT: _TraceItemType.ValueType # 5 + TRACE_ITEM_TYPE_REPLAY: _TraceItemType.ValueType # 6 + TRACE_ITEM_TYPE_OCCURRENCE: _TraceItemType.ValueType # 7 + TRACE_ITEM_TYPE_METRIC: _TraceItemType.ValueType # 8 + TRACE_ITEM_TYPE_PROFILE_FUNCTION: _TraceItemType.ValueType # 9 + TRACE_ITEM_TYPE_ATTACHMENT: _TraceItemType.ValueType # 10 + TRACE_ITEM_TYPE_PREPROD: _TraceItemType.ValueType # 11 + +class TraceItemType(_TraceItemType, metaclass=_TraceItemTypeEnumTypeWrapper): ... + +TRACE_ITEM_TYPE_UNSPECIFIED: TraceItemType.ValueType # 0 +TRACE_ITEM_TYPE_SPAN: TraceItemType.ValueType # 1 +TRACE_ITEM_TYPE_ERROR: TraceItemType.ValueType # 2 +TRACE_ITEM_TYPE_LOG: TraceItemType.ValueType # 3 +TRACE_ITEM_TYPE_UPTIME_CHECK: TraceItemType.ValueType # 4 +TRACE_ITEM_TYPE_UPTIME_RESULT: TraceItemType.ValueType # 5 +TRACE_ITEM_TYPE_REPLAY: TraceItemType.ValueType # 6 +TRACE_ITEM_TYPE_OCCURRENCE: TraceItemType.ValueType # 7 +TRACE_ITEM_TYPE_METRIC: TraceItemType.ValueType # 8 +TRACE_ITEM_TYPE_PROFILE_FUNCTION: TraceItemType.ValueType # 9 +TRACE_ITEM_TYPE_ATTACHMENT: TraceItemType.ValueType # 10 +TRACE_ITEM_TYPE_PREPROD: TraceItemType.ValueType # 11 +global___TraceItemType = TraceItemType + +@typing.final +class RequestMeta(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ORGANIZATION_ID_FIELD_NUMBER: builtins.int + COGS_CATEGORY_FIELD_NUMBER: builtins.int + REFERRER_FIELD_NUMBER: builtins.int + PROJECT_IDS_FIELD_NUMBER: builtins.int + START_TIMESTAMP_FIELD_NUMBER: builtins.int + END_TIMESTAMP_FIELD_NUMBER: builtins.int + TRACE_ITEM_NAME_FIELD_NUMBER: builtins.int + TRACE_ITEM_TYPE_FIELD_NUMBER: builtins.int + DEBUG_FIELD_NUMBER: builtins.int + REQUEST_ID_FIELD_NUMBER: builtins.int + DOWNSAMPLED_STORAGE_CONFIG_FIELD_NUMBER: builtins.int + organization_id: builtins.int + """id of the organization we are querying data for""" + cogs_category: builtins.str + """used for logging and metrics, ex: "snuba_admin", "eap", "replays", etc""" + referrer: builtins.str + """identifier for where the request is coming from + ex: "api.profiling.landing-chart", "api.replay.details-page" + """ + trace_item_name: global___TraceItemName.ValueType + """DEPRECATED (not implemented) - use trace_item_type instead""" + trace_item_type: global___TraceItemType.ValueType + """the type of the trace item you are querying""" + debug: builtins.bool + """whether to include debug information in the response""" + request_id: builtins.str + """a unique identifier for the request, user doesnt need to set this""" + @property + def project_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: + """ids of the projects we are querying data for""" + + @property + def start_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: + """start timestamp we want to query data for""" + + @property + def end_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: + """end timestamp we want to query data for""" + + @property + def downsampled_storage_config(self) -> sentry_protos.snuba.v1.downsampled_storage_pb2.DownsampledStorageConfig: + """how to query the downsampled storages""" + + def __init__( + self, + *, + organization_id: builtins.int = ..., + cogs_category: builtins.str = ..., + referrer: builtins.str = ..., + project_ids: collections.abc.Iterable[builtins.int] | None = ..., + start_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + end_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + trace_item_name: global___TraceItemName.ValueType = ..., + trace_item_type: global___TraceItemType.ValueType = ..., + debug: builtins.bool = ..., + request_id: builtins.str = ..., + downsampled_storage_config: sentry_protos.snuba.v1.downsampled_storage_pb2.DownsampledStorageConfig | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["downsampled_storage_config", b"downsampled_storage_config", "end_timestamp", b"end_timestamp", "start_timestamp", b"start_timestamp"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["cogs_category", b"cogs_category", "debug", b"debug", "downsampled_storage_config", b"downsampled_storage_config", "end_timestamp", b"end_timestamp", "organization_id", b"organization_id", "project_ids", b"project_ids", "referrer", b"referrer", "request_id", b"request_id", "start_timestamp", b"start_timestamp", "trace_item_name", b"trace_item_name", "trace_item_type", b"trace_item_type"]) -> None: ... + +global___RequestMeta = RequestMeta + +@typing.final +class ResponseMeta(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + REQUEST_ID_FIELD_NUMBER: builtins.int + QUERY_INFO_FIELD_NUMBER: builtins.int + DOWNSAMPLED_STORAGE_META_FIELD_NUMBER: builtins.int + request_id: builtins.str + """id of the request that this response relates to""" + @property + def query_info(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___QueryInfo]: + """Optional field that is included only if debug is true""" + + @property + def downsampled_storage_meta(self) -> sentry_protos.snuba.v1.downsampled_storage_pb2.DownsampledStorageMeta: + """metadata of how the query interacted wit the downsampled storages""" + + def __init__( + self, + *, + request_id: builtins.str = ..., + query_info: collections.abc.Iterable[global___QueryInfo] | None = ..., + downsampled_storage_meta: sentry_protos.snuba.v1.downsampled_storage_pb2.DownsampledStorageMeta | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["downsampled_storage_meta", b"downsampled_storage_meta"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["downsampled_storage_meta", b"downsampled_storage_meta", "query_info", b"query_info", "request_id", b"request_id"]) -> None: ... + +global___ResponseMeta = ResponseMeta + +@typing.final +class TraceItemFilterWithType(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ITEM_TYPE_FIELD_NUMBER: builtins.int + FILTER_FIELD_NUMBER: builtins.int + item_type: global___TraceItemType.ValueType + @property + def filter(self) -> sentry_protos.snuba.v1.trace_item_filter_pb2.TraceItemFilter: ... + def __init__( + self, + *, + item_type: global___TraceItemType.ValueType = ..., + filter: sentry_protos.snuba.v1.trace_item_filter_pb2.TraceItemFilter | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["filter", b"filter"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["filter", b"filter", "item_type", b"item_type"]) -> None: ... + +global___TraceItemFilterWithType = TraceItemFilterWithType + +@typing.final +class PageToken(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + OFFSET_FIELD_NUMBER: builtins.int + FILTER_OFFSET_FIELD_NUMBER: builtins.int + END_PAGINATION_FIELD_NUMBER: builtins.int + offset: builtins.int + """standard limit/offset pagination""" + end_pagination: builtins.bool + """Signifies the end of the pagination sequence. The time window is fully exhausted of results. + if this is not set, there may still be results. If this IS set, there is definitely no more results + """ + @property + def filter_offset(self) -> sentry_protos.snuba.v1.trace_item_filter_pb2.TraceItemFilter: + """Instead of using offset (which requires all the scanning and ordering), + the server sends back a filter clause to be added on to the filter conditions + which skips the previous results altogether, avoiding extra scanning and sorting + + the server may also encode other information indirectly through this filter offset. The client + is not expected and HIGHLY DISCOURAGED from inspecting or modifying the contents of this filter offset + """ + + def __init__( + self, + *, + offset: builtins.int = ..., + filter_offset: sentry_protos.snuba.v1.trace_item_filter_pb2.TraceItemFilter | None = ..., + end_pagination: builtins.bool = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["end_pagination", b"end_pagination", "filter_offset", b"filter_offset", "offset", b"offset", "value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["end_pagination", b"end_pagination", "filter_offset", b"filter_offset", "offset", b"offset", "value", b"value"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["value", b"value"]) -> typing.Literal["offset", "filter_offset", "end_pagination"] | None: ... + +global___PageToken = PageToken + +@typing.final +class QueryStats(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ROWS_READ_FIELD_NUMBER: builtins.int + COLUMNS_READ_FIELD_NUMBER: builtins.int + BLOCKS_FIELD_NUMBER: builtins.int + PROGRESS_BYTES_FIELD_NUMBER: builtins.int + MAX_THREADS_FIELD_NUMBER: builtins.int + TIMING_MARKS_FIELD_NUMBER: builtins.int + rows_read: builtins.int + columns_read: builtins.int + blocks: builtins.int + progress_bytes: builtins.int + max_threads: builtins.int + @property + def timing_marks(self) -> global___TimingMarks: ... + def __init__( + self, + *, + rows_read: builtins.int = ..., + columns_read: builtins.int = ..., + blocks: builtins.int = ..., + progress_bytes: builtins.int = ..., + max_threads: builtins.int = ..., + timing_marks: global___TimingMarks | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["timing_marks", b"timing_marks"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["blocks", b"blocks", "columns_read", b"columns_read", "max_threads", b"max_threads", "progress_bytes", b"progress_bytes", "rows_read", b"rows_read", "timing_marks", b"timing_marks"]) -> None: ... + +global___QueryStats = QueryStats + +@typing.final +class QueryMetadata(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + SQL_FIELD_NUMBER: builtins.int + STATUS_FIELD_NUMBER: builtins.int + CLICKHOUSE_TABLE_FIELD_NUMBER: builtins.int + FINAL_FIELD_NUMBER: builtins.int + QUERY_ID_FIELD_NUMBER: builtins.int + CONSISTENT_FIELD_NUMBER: builtins.int + CACHE_HIT_FIELD_NUMBER: builtins.int + CLUSTER_NAME_FIELD_NUMBER: builtins.int + sql: builtins.str + status: builtins.str + clickhouse_table: builtins.str + final: builtins.bool + query_id: builtins.str + consistent: builtins.bool + cache_hit: builtins.bool + cluster_name: builtins.str + def __init__( + self, + *, + sql: builtins.str = ..., + status: builtins.str = ..., + clickhouse_table: builtins.str = ..., + final: builtins.bool = ..., + query_id: builtins.str = ..., + consistent: builtins.bool = ..., + cache_hit: builtins.bool = ..., + cluster_name: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["cache_hit", b"cache_hit", "clickhouse_table", b"clickhouse_table", "cluster_name", b"cluster_name", "consistent", b"consistent", "final", b"final", "query_id", b"query_id", "sql", b"sql", "status", b"status"]) -> None: ... + +global___QueryMetadata = QueryMetadata + +@typing.final +class TimingMarks(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class MarksMsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.int + def __init__( + self, + *, + key: builtins.str = ..., + value: builtins.int = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... + + @typing.final + class TagsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str + def __init__( + self, + *, + key: builtins.str = ..., + value: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... + + DURATION_MS_FIELD_NUMBER: builtins.int + MARKS_MS_FIELD_NUMBER: builtins.int + TAGS_FIELD_NUMBER: builtins.int + TIMESTAMP_FIELD_NUMBER: builtins.int + duration_ms: builtins.int + timestamp: builtins.int + @property + def marks_ms(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.int]: ... + @property + def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... + def __init__( + self, + *, + duration_ms: builtins.int = ..., + marks_ms: collections.abc.Mapping[builtins.str, builtins.int] | None = ..., + tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + timestamp: builtins.int = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["duration_ms", b"duration_ms", "marks_ms", b"marks_ms", "tags", b"tags", "timestamp", b"timestamp"]) -> None: ... + +global___TimingMarks = TimingMarks + +@typing.final +class QueryInfo(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + STATS_FIELD_NUMBER: builtins.int + METADATA_FIELD_NUMBER: builtins.int + TRACE_LOGS_FIELD_NUMBER: builtins.int + trace_logs: builtins.str + @property + def stats(self) -> global___QueryStats: ... + @property + def metadata(self) -> global___QueryMetadata: ... + def __init__( + self, + *, + stats: global___QueryStats | None = ..., + metadata: global___QueryMetadata | None = ..., + trace_logs: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["metadata", b"metadata", "stats", b"stats"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["metadata", b"metadata", "stats", b"stats", "trace_logs", b"trace_logs"]) -> None: ... + +global___QueryInfo = QueryInfo diff --git a/py/sentry_protos/snuba/v1/request_common_pb2_grpc.py b/py/sentry_protos/snuba/v1/request_common_pb2_grpc.py new file mode 100644 index 00000000..8f1103cf --- /dev/null +++ b/py/sentry_protos/snuba/v1/request_common_pb2_grpc.py @@ -0,0 +1,29 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.65.4' +GRPC_VERSION = grpc.__version__ +EXPECTED_ERROR_RELEASE = '1.66.0' +SCHEDULED_RELEASE_DATE = 'August 6, 2024' +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + warnings.warn( + f'The grpc package installed is at version {GRPC_VERSION},' + + f' but the generated code in sentry_protos/snuba/v1/request_common_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + + f' This warning will become an error in {EXPECTED_ERROR_RELEASE},' + + f' scheduled for release on {SCHEDULED_RELEASE_DATE}.', + RuntimeWarning + ) diff --git a/py/sentry_protos/snuba/v1/request_common_pb2_grpc.pyi b/py/sentry_protos/snuba/v1/request_common_pb2_grpc.pyi new file mode 100644 index 00000000..a6a9cff9 --- /dev/null +++ b/py/sentry_protos/snuba/v1/request_common_pb2_grpc.pyi @@ -0,0 +1,17 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import grpc +import grpc.aio +import typing + +_T = typing.TypeVar("_T") + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg] + ... diff --git a/py/sentry_protos/snuba/v1/trace_item_attribute_pb2.py b/py/sentry_protos/snuba/v1/trace_item_attribute_pb2.py new file mode 100644 index 00000000..be7b6c28 --- /dev/null +++ b/py/sentry_protos/snuba/v1/trace_item_attribute_pb2.py @@ -0,0 +1,78 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: sentry_protos/snuba/v1/trace_item_attribute.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n1sentry_protos/snuba/v1/trace_item_attribute.proto\x12\x16sentry_protos.snuba.v1\"\xda\x01\n\x0c\x41ttributeKey\x12\x37\n\x04type\x18\x01 \x01(\x0e\x32).sentry_protos.snuba.v1.AttributeKey.Type\x12\x0c\n\x04name\x18\x02 \x01(\t\"\x82\x01\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x0f\n\x0bTYPE_STRING\x10\x01\x12\x10\n\x0cTYPE_BOOLEAN\x10\x02\x12\x12\n\nTYPE_FLOAT\x10\x03\x1a\x02\x08\x01\x12\x0c\n\x08TYPE_INT\x10\x04\x12\x0f\n\x0bTYPE_DOUBLE\x10\x05\x12\x0e\n\nTYPE_ARRAY\x10\x06\"\xdf\x01\n\x14VirtualColumnContext\x12\x18\n\x10\x66rom_column_name\x18\x01 \x01(\t\x12\x16\n\x0eto_column_name\x18\x02 \x01(\t\x12M\n\tvalue_map\x18\x03 \x03(\x0b\x32:.sentry_protos.snuba.v1.VirtualColumnContext.ValueMapEntry\x12\x15\n\rdefault_value\x18\x04 \x01(\t\x1a/\n\rValueMapEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x1e\n\x08StrArray\x12\x0e\n\x06values\x18\x01 \x03(\t:\x02\x18\x01\"\x1e\n\x08IntArray\x12\x0e\n\x06values\x18\x01 \x03(\x03:\x02\x18\x01\" \n\nFloatArray\x12\x0e\n\x06values\x18\x01 \x03(\x02:\x02\x18\x01\"!\n\x0b\x44oubleArray\x12\x0e\n\x06values\x18\x01 \x03(\x01:\x02\x18\x01\"?\n\x05\x41rray\x12\x36\n\x06values\x18\x01 \x03(\x0b\x32&.sentry_protos.snuba.v1.AttributeValue\"\xe5\x03\n\x0e\x41ttributeValue\x12\x0f\n\x07is_null\x18\x0b \x01(\x08\x12\x12\n\x08val_bool\x18\x01 \x01(\x08H\x00\x12\x11\n\x07val_str\x18\x02 \x01(\tH\x00\x12\x11\n\x07val_int\x18\x04 \x01(\x03H\x00\x12\x14\n\nval_double\x18\t \x01(\x01H\x00\x12\x32\n\tval_array\x18\x0c \x01(\x0b\x32\x1d.sentry_protos.snuba.v1.ArrayH\x00\x12\x17\n\tval_float\x18\x03 \x01(\x02\x42\x02\x18\x01H\x00\x12\x41\n\x0fval_float_array\x18\x08 \x01(\x0b\x32\".sentry_protos.snuba.v1.FloatArrayB\x02\x18\x01H\x00\x12\x43\n\x10val_double_array\x18\n \x01(\x0b\x32#.sentry_protos.snuba.v1.DoubleArrayB\x02\x18\x01H\x00\x12=\n\rval_int_array\x18\x07 \x01(\x0b\x32 .sentry_protos.snuba.v1.IntArrayB\x02\x18\x01H\x00\x12=\n\rval_str_array\x18\x06 \x01(\x0b\x32 .sentry_protos.snuba.v1.StrArrayB\x02\x18\x01H\x00\x12\x16\n\x08val_null\x18\x05 \x01(\x08\x42\x02\x18\x01H\x00\x42\x07\n\x05value\"\xd4\x01\n\x14\x41ttributeAggregation\x12\x33\n\taggregate\x18\x01 \x01(\x0e\x32 .sentry_protos.snuba.v1.Function\x12\x31\n\x03key\x18\x02 \x01(\x0b\x32$.sentry_protos.snuba.v1.AttributeKey\x12\r\n\x05label\x18\x03 \x01(\t\x12\x45\n\x12\x65xtrapolation_mode\x18\x04 \x01(\x0e\x32).sentry_protos.snuba.v1.ExtrapolationMode*\x87\x02\n\x08\x46unction\x12\x18\n\x14\x46UNCTION_UNSPECIFIED\x10\x00\x12\x10\n\x0c\x46UNCTION_SUM\x10\x01\x12\x18\n\x10\x46UNCTION_AVERAGE\x10\x02\x1a\x02\x08\x01\x12\x12\n\x0e\x46UNCTION_COUNT\x10\x03\x12\x10\n\x0c\x46UNCTION_P50\x10\x04\x12\x10\n\x0c\x46UNCTION_P75\x10\x0c\x12\x10\n\x0c\x46UNCTION_P90\x10\x05\x12\x10\n\x0c\x46UNCTION_P95\x10\x06\x12\x10\n\x0c\x46UNCTION_P99\x10\x07\x12\x10\n\x0c\x46UNCTION_AVG\x10\x08\x12\x10\n\x0c\x46UNCTION_MAX\x10\t\x12\x10\n\x0c\x46UNCTION_MIN\x10\n\x12\x11\n\rFUNCTION_UNIQ\x10\x0b*\xc4\x01\n\x11\x45xtrapolationMode\x12\"\n\x1e\x45XTRAPOLATION_MODE_UNSPECIFIED\x10\x00\x12\x1b\n\x17\x45XTRAPOLATION_MODE_NONE\x10\x01\x12&\n\"EXTRAPOLATION_MODE_SAMPLE_WEIGHTED\x10\x02\x12\"\n\x1e\x45XTRAPOLATION_MODE_CLIENT_ONLY\x10\x03\x12\"\n\x1e\x45XTRAPOLATION_MODE_SERVER_ONLY\x10\x04*U\n\x0bReliability\x12\x1b\n\x17RELIABILITY_UNSPECIFIED\x10\x00\x12\x13\n\x0fRELIABILITY_LOW\x10\x01\x12\x14\n\x10RELIABILITY_HIGH\x10\x02\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sentry_protos.snuba.v1.trace_item_attribute_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_FUNCTION'].values_by_name["FUNCTION_AVERAGE"]._loaded_options = None + _globals['_FUNCTION'].values_by_name["FUNCTION_AVERAGE"]._serialized_options = b'\010\001' + _globals['_ATTRIBUTEKEY_TYPE'].values_by_name["TYPE_FLOAT"]._loaded_options = None + _globals['_ATTRIBUTEKEY_TYPE'].values_by_name["TYPE_FLOAT"]._serialized_options = b'\010\001' + _globals['_VIRTUALCOLUMNCONTEXT_VALUEMAPENTRY']._loaded_options = None + _globals['_VIRTUALCOLUMNCONTEXT_VALUEMAPENTRY']._serialized_options = b'8\001' + _globals['_STRARRAY']._loaded_options = None + _globals['_STRARRAY']._serialized_options = b'\030\001' + _globals['_INTARRAY']._loaded_options = None + _globals['_INTARRAY']._serialized_options = b'\030\001' + _globals['_FLOATARRAY']._loaded_options = None + _globals['_FLOATARRAY']._serialized_options = b'\030\001' + _globals['_DOUBLEARRAY']._loaded_options = None + _globals['_DOUBLEARRAY']._serialized_options = b'\030\001' + _globals['_ATTRIBUTEVALUE'].fields_by_name['val_float']._loaded_options = None + _globals['_ATTRIBUTEVALUE'].fields_by_name['val_float']._serialized_options = b'\030\001' + _globals['_ATTRIBUTEVALUE'].fields_by_name['val_float_array']._loaded_options = None + _globals['_ATTRIBUTEVALUE'].fields_by_name['val_float_array']._serialized_options = b'\030\001' + _globals['_ATTRIBUTEVALUE'].fields_by_name['val_double_array']._loaded_options = None + _globals['_ATTRIBUTEVALUE'].fields_by_name['val_double_array']._serialized_options = b'\030\001' + _globals['_ATTRIBUTEVALUE'].fields_by_name['val_int_array']._loaded_options = None + _globals['_ATTRIBUTEVALUE'].fields_by_name['val_int_array']._serialized_options = b'\030\001' + _globals['_ATTRIBUTEVALUE'].fields_by_name['val_str_array']._loaded_options = None + _globals['_ATTRIBUTEVALUE'].fields_by_name['val_str_array']._serialized_options = b'\030\001' + _globals['_ATTRIBUTEVALUE'].fields_by_name['val_null']._loaded_options = None + _globals['_ATTRIBUTEVALUE'].fields_by_name['val_null']._serialized_options = b'\030\001' + _globals['_FUNCTION']._serialized_start=1426 + _globals['_FUNCTION']._serialized_end=1689 + _globals['_EXTRAPOLATIONMODE']._serialized_start=1692 + _globals['_EXTRAPOLATIONMODE']._serialized_end=1888 + _globals['_RELIABILITY']._serialized_start=1890 + _globals['_RELIABILITY']._serialized_end=1975 + _globals['_ATTRIBUTEKEY']._serialized_start=78 + _globals['_ATTRIBUTEKEY']._serialized_end=296 + _globals['_ATTRIBUTEKEY_TYPE']._serialized_start=166 + _globals['_ATTRIBUTEKEY_TYPE']._serialized_end=296 + _globals['_VIRTUALCOLUMNCONTEXT']._serialized_start=299 + _globals['_VIRTUALCOLUMNCONTEXT']._serialized_end=522 + _globals['_VIRTUALCOLUMNCONTEXT_VALUEMAPENTRY']._serialized_start=475 + _globals['_VIRTUALCOLUMNCONTEXT_VALUEMAPENTRY']._serialized_end=522 + _globals['_STRARRAY']._serialized_start=524 + _globals['_STRARRAY']._serialized_end=554 + _globals['_INTARRAY']._serialized_start=556 + _globals['_INTARRAY']._serialized_end=586 + _globals['_FLOATARRAY']._serialized_start=588 + _globals['_FLOATARRAY']._serialized_end=620 + _globals['_DOUBLEARRAY']._serialized_start=622 + _globals['_DOUBLEARRAY']._serialized_end=655 + _globals['_ARRAY']._serialized_start=657 + _globals['_ARRAY']._serialized_end=720 + _globals['_ATTRIBUTEVALUE']._serialized_start=723 + _globals['_ATTRIBUTEVALUE']._serialized_end=1208 + _globals['_ATTRIBUTEAGGREGATION']._serialized_start=1211 + _globals['_ATTRIBUTEAGGREGATION']._serialized_end=1423 +# @@protoc_insertion_point(module_scope) diff --git a/py/sentry_protos/snuba/v1/trace_item_attribute_pb2.pyi b/py/sentry_protos/snuba/v1/trace_item_attribute_pb2.pyi new file mode 100644 index 00000000..274a8a65 --- /dev/null +++ b/py/sentry_protos/snuba/v1/trace_item_attribute_pb2.pyi @@ -0,0 +1,371 @@ +""" +@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 _Function: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _FunctionEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Function.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + FUNCTION_UNSPECIFIED: _Function.ValueType # 0 + FUNCTION_SUM: _Function.ValueType # 1 + FUNCTION_AVERAGE: _Function.ValueType # 2 + """deprecated, use FUNCTION_AVG instead""" + FUNCTION_COUNT: _Function.ValueType # 3 + FUNCTION_P50: _Function.ValueType # 4 + FUNCTION_P75: _Function.ValueType # 12 + FUNCTION_P90: _Function.ValueType # 5 + FUNCTION_P95: _Function.ValueType # 6 + FUNCTION_P99: _Function.ValueType # 7 + FUNCTION_AVG: _Function.ValueType # 8 + FUNCTION_MAX: _Function.ValueType # 9 + FUNCTION_MIN: _Function.ValueType # 10 + FUNCTION_UNIQ: _Function.ValueType # 11 + +class Function(_Function, metaclass=_FunctionEnumTypeWrapper): ... + +FUNCTION_UNSPECIFIED: Function.ValueType # 0 +FUNCTION_SUM: Function.ValueType # 1 +FUNCTION_AVERAGE: Function.ValueType # 2 +"""deprecated, use FUNCTION_AVG instead""" +FUNCTION_COUNT: Function.ValueType # 3 +FUNCTION_P50: Function.ValueType # 4 +FUNCTION_P75: Function.ValueType # 12 +FUNCTION_P90: Function.ValueType # 5 +FUNCTION_P95: Function.ValueType # 6 +FUNCTION_P99: Function.ValueType # 7 +FUNCTION_AVG: Function.ValueType # 8 +FUNCTION_MAX: Function.ValueType # 9 +FUNCTION_MIN: Function.ValueType # 10 +FUNCTION_UNIQ: Function.ValueType # 11 +global___Function = Function + +class _ExtrapolationMode: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _ExtrapolationModeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ExtrapolationMode.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + EXTRAPOLATION_MODE_UNSPECIFIED: _ExtrapolationMode.ValueType # 0 + EXTRAPOLATION_MODE_NONE: _ExtrapolationMode.ValueType # 1 + EXTRAPOLATION_MODE_SAMPLE_WEIGHTED: _ExtrapolationMode.ValueType # 2 + EXTRAPOLATION_MODE_CLIENT_ONLY: _ExtrapolationMode.ValueType # 3 + EXTRAPOLATION_MODE_SERVER_ONLY: _ExtrapolationMode.ValueType # 4 + +class ExtrapolationMode(_ExtrapolationMode, metaclass=_ExtrapolationModeEnumTypeWrapper): ... + +EXTRAPOLATION_MODE_UNSPECIFIED: ExtrapolationMode.ValueType # 0 +EXTRAPOLATION_MODE_NONE: ExtrapolationMode.ValueType # 1 +EXTRAPOLATION_MODE_SAMPLE_WEIGHTED: ExtrapolationMode.ValueType # 2 +EXTRAPOLATION_MODE_CLIENT_ONLY: ExtrapolationMode.ValueType # 3 +EXTRAPOLATION_MODE_SERVER_ONLY: ExtrapolationMode.ValueType # 4 +global___ExtrapolationMode = ExtrapolationMode + +class _Reliability: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _ReliabilityEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Reliability.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + RELIABILITY_UNSPECIFIED: _Reliability.ValueType # 0 + RELIABILITY_LOW: _Reliability.ValueType # 1 + RELIABILITY_HIGH: _Reliability.ValueType # 2 + +class Reliability(_Reliability, metaclass=_ReliabilityEnumTypeWrapper): ... + +RELIABILITY_UNSPECIFIED: Reliability.ValueType # 0 +RELIABILITY_LOW: Reliability.ValueType # 1 +RELIABILITY_HIGH: Reliability.ValueType # 2 +global___Reliability = Reliability + +@typing.final +class AttributeKey(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _Type: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _TypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[AttributeKey._Type.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + TYPE_UNSPECIFIED: AttributeKey._Type.ValueType # 0 + """protobuf requirement, do not send this""" + TYPE_STRING: AttributeKey._Type.ValueType # 1 + TYPE_BOOLEAN: AttributeKey._Type.ValueType # 2 + TYPE_FLOAT: AttributeKey._Type.ValueType # 3 + """deprecated, use TYPE_DOUBLE instead""" + TYPE_INT: AttributeKey._Type.ValueType # 4 + """note: all numbers are stored as float64, so massive integers can be rounded. USE STRING FOR IDS.""" + TYPE_DOUBLE: AttributeKey._Type.ValueType # 5 + TYPE_ARRAY: AttributeKey._Type.ValueType # 6 + + class Type(_Type, metaclass=_TypeEnumTypeWrapper): + """this mostly reflects what types are able to be ingested, see eap_spans consumer for ingest details""" + + TYPE_UNSPECIFIED: AttributeKey.Type.ValueType # 0 + """protobuf requirement, do not send this""" + TYPE_STRING: AttributeKey.Type.ValueType # 1 + TYPE_BOOLEAN: AttributeKey.Type.ValueType # 2 + TYPE_FLOAT: AttributeKey.Type.ValueType # 3 + """deprecated, use TYPE_DOUBLE instead""" + TYPE_INT: AttributeKey.Type.ValueType # 4 + """note: all numbers are stored as float64, so massive integers can be rounded. USE STRING FOR IDS.""" + TYPE_DOUBLE: AttributeKey.Type.ValueType # 5 + TYPE_ARRAY: AttributeKey.Type.ValueType # 6 + + TYPE_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + type: global___AttributeKey.Type.ValueType + name: builtins.str + """the name of the trace item attribute, everything that sentry sends by default is prefixed with + `sentry.` to allow users to send attributes of the same name. + Exampe: `sentry.duration`, `sentry.span_id` etc + """ + def __init__( + self, + *, + type: global___AttributeKey.Type.ValueType = ..., + name: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["name", b"name", "type", b"type"]) -> None: ... + +global___AttributeKey = AttributeKey + +@typing.final +class VirtualColumnContext(google.protobuf.message.Message): + """custom mappings of column values + + for example, `project_name` is changeable by the user and not stored in EAP, + but sorting by it may be desired. So something like this might be done: + + ORDER BY sentry.project_name + VirtualColumnContext( + from_column_name="sentry.project_id", + to_column_name="sentry.project_name", + value_map={"1": "sentry", "2": "snuba"}, + ) + + in this example `sentry.project_name` is a virtual column created by mapping + values from the real column `sentry.project_id` to new values. project_id of 1 + gets mapped to project_name="sentry" etc. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class ValueMapEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str + def __init__( + self, + *, + key: builtins.str = ..., + value: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... + + FROM_COLUMN_NAME_FIELD_NUMBER: builtins.int + TO_COLUMN_NAME_FIELD_NUMBER: builtins.int + VALUE_MAP_FIELD_NUMBER: builtins.int + DEFAULT_VALUE_FIELD_NUMBER: builtins.int + from_column_name: builtins.str + to_column_name: builtins.str + default_value: builtins.str + @property + def value_map(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... + def __init__( + self, + *, + from_column_name: builtins.str = ..., + to_column_name: builtins.str = ..., + value_map: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + default_value: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["default_value", b"default_value", "from_column_name", b"from_column_name", "to_column_name", b"to_column_name", "value_map", b"value_map"]) -> None: ... + +global___VirtualColumnContext = VirtualColumnContext + +@typing.final +class StrArray(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VALUES_FIELD_NUMBER: builtins.int + @property + def values(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + def __init__( + self, + *, + values: collections.abc.Iterable[builtins.str] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["values", b"values"]) -> None: ... + +global___StrArray = StrArray + +@typing.final +class IntArray(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VALUES_FIELD_NUMBER: builtins.int + @property + def values(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ... + def __init__( + self, + *, + values: collections.abc.Iterable[builtins.int] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["values", b"values"]) -> None: ... + +global___IntArray = IntArray + +@typing.final +class FloatArray(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VALUES_FIELD_NUMBER: builtins.int + @property + def values(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ... + def __init__( + self, + *, + values: collections.abc.Iterable[builtins.float] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["values", b"values"]) -> None: ... + +global___FloatArray = FloatArray + +@typing.final +class DoubleArray(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VALUES_FIELD_NUMBER: builtins.int + @property + def values(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ... + def __init__( + self, + *, + values: collections.abc.Iterable[builtins.float] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["values", b"values"]) -> None: ... + +global___DoubleArray = DoubleArray + +@typing.final +class Array(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VALUES_FIELD_NUMBER: builtins.int + @property + def values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___AttributeValue]: ... + def __init__( + self, + *, + values: collections.abc.Iterable[global___AttributeValue] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["values", b"values"]) -> None: ... + +global___Array = Array + +@typing.final +class AttributeValue(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + IS_NULL_FIELD_NUMBER: builtins.int + VAL_BOOL_FIELD_NUMBER: builtins.int + VAL_STR_FIELD_NUMBER: builtins.int + VAL_INT_FIELD_NUMBER: builtins.int + VAL_DOUBLE_FIELD_NUMBER: builtins.int + VAL_ARRAY_FIELD_NUMBER: builtins.int + VAL_FLOAT_FIELD_NUMBER: builtins.int + VAL_FLOAT_ARRAY_FIELD_NUMBER: builtins.int + VAL_DOUBLE_ARRAY_FIELD_NUMBER: builtins.int + VAL_INT_ARRAY_FIELD_NUMBER: builtins.int + VAL_STR_ARRAY_FIELD_NUMBER: builtins.int + VAL_NULL_FIELD_NUMBER: builtins.int + is_null: builtins.bool + """true if the value is null""" + val_bool: builtins.bool + val_str: builtins.str + val_int: builtins.int + val_double: builtins.float + val_float: builtins.float + """Deprecated fields""" + val_null: builtins.bool + @property + def val_array(self) -> global___Array: ... + @property + def val_float_array(self) -> global___FloatArray: ... + @property + def val_double_array(self) -> global___DoubleArray: ... + @property + def val_int_array(self) -> global___IntArray: ... + @property + def val_str_array(self) -> global___StrArray: ... + def __init__( + self, + *, + is_null: builtins.bool = ..., + val_bool: builtins.bool = ..., + val_str: builtins.str = ..., + val_int: builtins.int = ..., + val_double: builtins.float = ..., + val_array: global___Array | None = ..., + val_float: builtins.float = ..., + val_float_array: global___FloatArray | None = ..., + val_double_array: global___DoubleArray | None = ..., + val_int_array: global___IntArray | None = ..., + val_str_array: global___StrArray | None = ..., + val_null: builtins.bool = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["val_array", b"val_array", "val_bool", b"val_bool", "val_double", b"val_double", "val_double_array", b"val_double_array", "val_float", b"val_float", "val_float_array", b"val_float_array", "val_int", b"val_int", "val_int_array", b"val_int_array", "val_null", b"val_null", "val_str", b"val_str", "val_str_array", b"val_str_array", "value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["is_null", b"is_null", "val_array", b"val_array", "val_bool", b"val_bool", "val_double", b"val_double", "val_double_array", b"val_double_array", "val_float", b"val_float", "val_float_array", b"val_float_array", "val_int", b"val_int", "val_int_array", b"val_int_array", "val_null", b"val_null", "val_str", b"val_str", "val_str_array", b"val_str_array", "value", b"value"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["value", b"value"]) -> typing.Literal["val_bool", "val_str", "val_int", "val_double", "val_array", "val_float", "val_float_array", "val_double_array", "val_int_array", "val_str_array", "val_null"] | None: ... + +global___AttributeValue = AttributeValue + +@typing.final +class AttributeAggregation(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + AGGREGATE_FIELD_NUMBER: builtins.int + KEY_FIELD_NUMBER: builtins.int + LABEL_FIELD_NUMBER: builtins.int + EXTRAPOLATION_MODE_FIELD_NUMBER: builtins.int + aggregate: global___Function.ValueType + label: builtins.str + extrapolation_mode: global___ExtrapolationMode.ValueType + @property + def key(self) -> global___AttributeKey: ... + def __init__( + self, + *, + aggregate: global___Function.ValueType = ..., + key: global___AttributeKey | None = ..., + label: builtins.str = ..., + extrapolation_mode: global___ExtrapolationMode.ValueType = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["key", b"key"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["aggregate", b"aggregate", "extrapolation_mode", b"extrapolation_mode", "key", b"key", "label", b"label"]) -> None: ... + +global___AttributeAggregation = AttributeAggregation diff --git a/py/sentry_protos/snuba/v1/trace_item_attribute_pb2_grpc.py b/py/sentry_protos/snuba/v1/trace_item_attribute_pb2_grpc.py new file mode 100644 index 00000000..506a5c3b --- /dev/null +++ b/py/sentry_protos/snuba/v1/trace_item_attribute_pb2_grpc.py @@ -0,0 +1,29 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.65.4' +GRPC_VERSION = grpc.__version__ +EXPECTED_ERROR_RELEASE = '1.66.0' +SCHEDULED_RELEASE_DATE = 'August 6, 2024' +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + warnings.warn( + f'The grpc package installed is at version {GRPC_VERSION},' + + f' but the generated code in sentry_protos/snuba/v1/trace_item_attribute_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + + f' This warning will become an error in {EXPECTED_ERROR_RELEASE},' + + f' scheduled for release on {SCHEDULED_RELEASE_DATE}.', + RuntimeWarning + ) diff --git a/py/sentry_protos/snuba/v1/trace_item_attribute_pb2_grpc.pyi b/py/sentry_protos/snuba/v1/trace_item_attribute_pb2_grpc.pyi new file mode 100644 index 00000000..a6a9cff9 --- /dev/null +++ b/py/sentry_protos/snuba/v1/trace_item_attribute_pb2_grpc.pyi @@ -0,0 +1,17 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import grpc +import grpc.aio +import typing + +_T = typing.TypeVar("_T") + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg] + ... diff --git a/py/sentry_protos/snuba/v1/trace_item_filter_pb2.py b/py/sentry_protos/snuba/v1/trace_item_filter_pb2.py new file mode 100644 index 00000000..58e4def1 --- /dev/null +++ b/py/sentry_protos/snuba/v1/trace_item_filter_pb2.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: sentry_protos/snuba/v1/trace_item_filter.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from sentry_protos.snuba.v1 import trace_item_attribute_pb2 as sentry__protos_dot_snuba_dot_v1_dot_trace__item__attribute__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n.sentry_protos/snuba/v1/trace_item_filter.proto\x12\x16sentry_protos.snuba.v1\x1a\x31sentry_protos/snuba/v1/trace_item_attribute.proto\"E\n\tAndFilter\x12\x38\n\x07\x66ilters\x18\x01 \x03(\x0b\x32\'.sentry_protos.snuba.v1.TraceItemFilter\"D\n\x08OrFilter\x12\x38\n\x07\x66ilters\x18\x01 \x03(\x0b\x32\'.sentry_protos.snuba.v1.TraceItemFilter\"E\n\tNotFilter\x12\x38\n\x07\x66ilters\x18\x01 \x03(\x0b\x32\'.sentry_protos.snuba.v1.TraceItemFilter\"\xa1\x03\n\x10\x43omparisonFilter\x12\x31\n\x03key\x18\x01 \x01(\x0b\x32$.sentry_protos.snuba.v1.AttributeKey\x12\x37\n\x02op\x18\x02 \x01(\x0e\x32+.sentry_protos.snuba.v1.ComparisonFilter.Op\x12\x35\n\x05value\x18\x03 \x01(\x0b\x32&.sentry_protos.snuba.v1.AttributeValue\x12\x13\n\x0bignore_case\x18\x04 \x01(\x08\"\xd4\x01\n\x02Op\x12\x12\n\x0eOP_UNSPECIFIED\x10\x00\x12\x10\n\x0cOP_LESS_THAN\x10\x01\x12\x13\n\x0fOP_GREATER_THAN\x10\x02\x12\x1a\n\x16OP_LESS_THAN_OR_EQUALS\x10\x03\x12\x1d\n\x19OP_GREATER_THAN_OR_EQUALS\x10\x04\x12\r\n\tOP_EQUALS\x10\x05\x12\x11\n\rOP_NOT_EQUALS\x10\x06\x12\x0b\n\x07OP_LIKE\x10\x07\x12\x0f\n\x0bOP_NOT_LIKE\x10\x08\x12\t\n\x05OP_IN\x10\t\x12\r\n\tOP_NOT_IN\x10\n\"A\n\x0c\x45xistsFilter\x12\x31\n\x03key\x18\x01 \x01(\x0b\x32$.sentry_protos.snuba.v1.AttributeKey\"\xc9\x02\n\x0fTraceItemFilter\x12\x37\n\nand_filter\x18\x01 \x01(\x0b\x32!.sentry_protos.snuba.v1.AndFilterH\x00\x12\x35\n\tor_filter\x18\x02 \x01(\x0b\x32 .sentry_protos.snuba.v1.OrFilterH\x00\x12\x37\n\nnot_filter\x18\x03 \x01(\x0b\x32!.sentry_protos.snuba.v1.NotFilterH\x00\x12\x45\n\x11\x63omparison_filter\x18\x04 \x01(\x0b\x32(.sentry_protos.snuba.v1.ComparisonFilterH\x00\x12=\n\rexists_filter\x18\x05 \x01(\x0b\x32$.sentry_protos.snuba.v1.ExistsFilterH\x00\x42\x07\n\x05valueb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sentry_protos.snuba.v1.trace_item_filter_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_ANDFILTER']._serialized_start=125 + _globals['_ANDFILTER']._serialized_end=194 + _globals['_ORFILTER']._serialized_start=196 + _globals['_ORFILTER']._serialized_end=264 + _globals['_NOTFILTER']._serialized_start=266 + _globals['_NOTFILTER']._serialized_end=335 + _globals['_COMPARISONFILTER']._serialized_start=338 + _globals['_COMPARISONFILTER']._serialized_end=755 + _globals['_COMPARISONFILTER_OP']._serialized_start=543 + _globals['_COMPARISONFILTER_OP']._serialized_end=755 + _globals['_EXISTSFILTER']._serialized_start=757 + _globals['_EXISTSFILTER']._serialized_end=822 + _globals['_TRACEITEMFILTER']._serialized_start=825 + _globals['_TRACEITEMFILTER']._serialized_end=1154 +# @@protoc_insertion_point(module_scope) diff --git a/py/sentry_protos/snuba/v1/trace_item_filter_pb2.pyi b/py/sentry_protos/snuba/v1/trace_item_filter_pb2.pyi new file mode 100644 index 00000000..9314b6a7 --- /dev/null +++ b/py/sentry_protos/snuba/v1/trace_item_filter_pb2.pyi @@ -0,0 +1,197 @@ +""" +@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 sentry_protos.snuba.v1.trace_item_attribute_pb2 +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class AndFilter(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FILTERS_FIELD_NUMBER: builtins.int + @property + def filters(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TraceItemFilter]: ... + def __init__( + self, + *, + filters: collections.abc.Iterable[global___TraceItemFilter] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["filters", b"filters"]) -> None: ... + +global___AndFilter = AndFilter + +@typing.final +class OrFilter(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FILTERS_FIELD_NUMBER: builtins.int + @property + def filters(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TraceItemFilter]: ... + def __init__( + self, + *, + filters: collections.abc.Iterable[global___TraceItemFilter] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["filters", b"filters"]) -> None: ... + +global___OrFilter = OrFilter + +@typing.final +class NotFilter(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FILTERS_FIELD_NUMBER: builtins.int + @property + def filters(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TraceItemFilter]: ... + def __init__( + self, + *, + filters: collections.abc.Iterable[global___TraceItemFilter] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["filters", b"filters"]) -> None: ... + +global___NotFilter = NotFilter + +@typing.final +class ComparisonFilter(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _Op: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _OpEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[ComparisonFilter._Op.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + OP_UNSPECIFIED: ComparisonFilter._Op.ValueType # 0 + OP_LESS_THAN: ComparisonFilter._Op.ValueType # 1 + OP_GREATER_THAN: ComparisonFilter._Op.ValueType # 2 + OP_LESS_THAN_OR_EQUALS: ComparisonFilter._Op.ValueType # 3 + OP_GREATER_THAN_OR_EQUALS: ComparisonFilter._Op.ValueType # 4 + OP_EQUALS: ComparisonFilter._Op.ValueType # 5 + OP_NOT_EQUALS: ComparisonFilter._Op.ValueType # 6 + OP_LIKE: ComparisonFilter._Op.ValueType # 7 + """string only""" + OP_NOT_LIKE: ComparisonFilter._Op.ValueType # 8 + """string only""" + OP_IN: ComparisonFilter._Op.ValueType # 9 + """array only""" + OP_NOT_IN: ComparisonFilter._Op.ValueType # 10 + """array only""" + + class Op(_Op, metaclass=_OpEnumTypeWrapper): ... + OP_UNSPECIFIED: ComparisonFilter.Op.ValueType # 0 + OP_LESS_THAN: ComparisonFilter.Op.ValueType # 1 + OP_GREATER_THAN: ComparisonFilter.Op.ValueType # 2 + OP_LESS_THAN_OR_EQUALS: ComparisonFilter.Op.ValueType # 3 + OP_GREATER_THAN_OR_EQUALS: ComparisonFilter.Op.ValueType # 4 + OP_EQUALS: ComparisonFilter.Op.ValueType # 5 + OP_NOT_EQUALS: ComparisonFilter.Op.ValueType # 6 + OP_LIKE: ComparisonFilter.Op.ValueType # 7 + """string only""" + OP_NOT_LIKE: ComparisonFilter.Op.ValueType # 8 + """string only""" + OP_IN: ComparisonFilter.Op.ValueType # 9 + """array only""" + OP_NOT_IN: ComparisonFilter.Op.ValueType # 10 + """array only""" + + KEY_FIELD_NUMBER: builtins.int + OP_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + IGNORE_CASE_FIELD_NUMBER: builtins.int + op: global___ComparisonFilter.Op.ValueType + ignore_case: builtins.bool + """optional, if set will ignore case for string comparisons""" + @property + def key(self) -> sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeKey: ... + @property + def value(self) -> sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeValue: ... + def __init__( + self, + *, + key: sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeKey | None = ..., + op: global___ComparisonFilter.Op.ValueType = ..., + value: sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeValue | None = ..., + ignore_case: builtins.bool = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["ignore_case", b"ignore_case", "key", b"key", "op", b"op", "value", b"value"]) -> None: ... + +global___ComparisonFilter = ComparisonFilter + +@typing.final +class ExistsFilter(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + @property + def key(self) -> sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeKey: ... + def __init__( + self, + *, + key: sentry_protos.snuba.v1.trace_item_attribute_pb2.AttributeKey | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["key", b"key"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["key", b"key"]) -> None: ... + +global___ExistsFilter = ExistsFilter + +@typing.final +class TraceItemFilter(google.protobuf.message.Message): + """a condition used to filter for matching "trace items" + + ex: "exists span.duration" would mean + "only give me trace items that have the attribute 'span.duration'" + + ( traces contain trace items, + eg. trace items are: span, replay, error, etc, + trace items contain attributes like 'span.duration' ) + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + AND_FILTER_FIELD_NUMBER: builtins.int + OR_FILTER_FIELD_NUMBER: builtins.int + NOT_FILTER_FIELD_NUMBER: builtins.int + COMPARISON_FILTER_FIELD_NUMBER: builtins.int + EXISTS_FILTER_FIELD_NUMBER: builtins.int + @property + def and_filter(self) -> global___AndFilter: ... + @property + def or_filter(self) -> global___OrFilter: ... + @property + def not_filter(self) -> global___NotFilter: ... + @property + def comparison_filter(self) -> global___ComparisonFilter: ... + @property + def exists_filter(self) -> global___ExistsFilter: ... + def __init__( + self, + *, + and_filter: global___AndFilter | None = ..., + or_filter: global___OrFilter | None = ..., + not_filter: global___NotFilter | None = ..., + comparison_filter: global___ComparisonFilter | None = ..., + exists_filter: global___ExistsFilter | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["and_filter", b"and_filter", "comparison_filter", b"comparison_filter", "exists_filter", b"exists_filter", "not_filter", b"not_filter", "or_filter", b"or_filter", "value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["and_filter", b"and_filter", "comparison_filter", b"comparison_filter", "exists_filter", b"exists_filter", "not_filter", b"not_filter", "or_filter", b"or_filter", "value", b"value"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["value", b"value"]) -> typing.Literal["and_filter", "or_filter", "not_filter", "comparison_filter", "exists_filter"] | None: ... + +global___TraceItemFilter = TraceItemFilter diff --git a/py/sentry_protos/snuba/v1/trace_item_filter_pb2_grpc.py b/py/sentry_protos/snuba/v1/trace_item_filter_pb2_grpc.py new file mode 100644 index 00000000..d3f7b1d2 --- /dev/null +++ b/py/sentry_protos/snuba/v1/trace_item_filter_pb2_grpc.py @@ -0,0 +1,29 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.65.4' +GRPC_VERSION = grpc.__version__ +EXPECTED_ERROR_RELEASE = '1.66.0' +SCHEDULED_RELEASE_DATE = 'August 6, 2024' +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + warnings.warn( + f'The grpc package installed is at version {GRPC_VERSION},' + + f' but the generated code in sentry_protos/snuba/v1/trace_item_filter_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + + f' This warning will become an error in {EXPECTED_ERROR_RELEASE},' + + f' scheduled for release on {SCHEDULED_RELEASE_DATE}.', + RuntimeWarning + ) diff --git a/py/sentry_protos/snuba/v1/trace_item_filter_pb2_grpc.pyi b/py/sentry_protos/snuba/v1/trace_item_filter_pb2_grpc.pyi new file mode 100644 index 00000000..a6a9cff9 --- /dev/null +++ b/py/sentry_protos/snuba/v1/trace_item_filter_pb2_grpc.pyi @@ -0,0 +1,17 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import grpc +import grpc.aio +import typing + +_T = typing.TypeVar("_T") + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg] + ... diff --git a/py/sentry_protos/snuba/v1/trace_item_pb2.py b/py/sentry_protos/snuba/v1/trace_item_pb2.py new file mode 100644 index 00000000..f53c9fa6 --- /dev/null +++ b/py/sentry_protos/snuba/v1/trace_item_pb2.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: sentry_protos/snuba/v1/trace_item.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 +from sentry_protos.snuba.v1 import request_common_pb2 as sentry__protos_dot_snuba_dot_v1_dot_request__common__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'sentry_protos/snuba/v1/trace_item.proto\x12\x16sentry_protos.snuba.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a+sentry_protos/snuba/v1/request_common.proto\"\xfe\x01\n\x08\x41nyValue\x12\x16\n\x0cstring_value\x18\x01 \x01(\tH\x00\x12\x14\n\nbool_value\x18\x02 \x01(\x08H\x00\x12\x13\n\tint_value\x18\x03 \x01(\x03H\x00\x12\x16\n\x0c\x64ouble_value\x18\x04 \x01(\x01H\x00\x12\x39\n\x0b\x61rray_value\x18\x05 \x01(\x0b\x32\".sentry_protos.snuba.v1.ArrayValueH\x00\x12<\n\x0ckvlist_value\x18\x06 \x01(\x0b\x32$.sentry_protos.snuba.v1.KeyValueListH\x00\x12\x15\n\x0b\x62ytes_value\x18\x07 \x01(\x0cH\x00\x42\x07\n\x05value\">\n\nArrayValue\x12\x30\n\x06values\x18\x01 \x03(\x0b\x32 .sentry_protos.snuba.v1.AnyValue\"@\n\x0cKeyValueList\x12\x30\n\x06values\x18\x01 \x03(\x0b\x32 .sentry_protos.snuba.v1.KeyValue\"H\n\x08KeyValue\x12\x0b\n\x03key\x18\x01 \x01(\t\x12/\n\x05value\x18\x02 \x01(\x0b\x32 .sentry_protos.snuba.v1.AnyValue\"\x82\x04\n\tTraceItem\x12\x17\n\x0forganization_id\x18\x01 \x01(\x04\x12\x12\n\nproject_id\x18\x02 \x01(\x04\x12\x10\n\x08trace_id\x18\x03 \x01(\t\x12\x0f\n\x07item_id\x18\x04 \x01(\x0c\x12\x38\n\titem_type\x18\x05 \x01(\x0e\x32%.sentry_protos.snuba.v1.TraceItemType\x12-\n\ttimestamp\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x45\n\nattributes\x18\x07 \x03(\x0b\x32\x31.sentry_protos.snuba.v1.TraceItem.AttributesEntry\x12\x1a\n\x12\x63lient_sample_rate\x18\x08 \x01(\x01\x12\x1a\n\x12server_sample_rate\x18\t \x01(\x01\x12\x16\n\x0eretention_days\x18\x64 \x01(\r\x12,\n\x08received\x18\x65 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\"\n\x1a\x64ownsampled_retention_days\x18\x66 \x01(\r\x1aS\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12/\n\x05value\x18\x02 \x01(\x0b\x32 .sentry_protos.snuba.v1.AnyValue:\x02\x38\x01\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sentry_protos.snuba.v1.trace_item_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_TRACEITEM_ATTRIBUTESENTRY']._loaded_options = None + _globals['_TRACEITEM_ATTRIBUTESENTRY']._serialized_options = b'8\001' + _globals['_ANYVALUE']._serialized_start=146 + _globals['_ANYVALUE']._serialized_end=400 + _globals['_ARRAYVALUE']._serialized_start=402 + _globals['_ARRAYVALUE']._serialized_end=464 + _globals['_KEYVALUELIST']._serialized_start=466 + _globals['_KEYVALUELIST']._serialized_end=530 + _globals['_KEYVALUE']._serialized_start=532 + _globals['_KEYVALUE']._serialized_end=604 + _globals['_TRACEITEM']._serialized_start=607 + _globals['_TRACEITEM']._serialized_end=1121 + _globals['_TRACEITEM_ATTRIBUTESENTRY']._serialized_start=1038 + _globals['_TRACEITEM_ATTRIBUTESENTRY']._serialized_end=1121 +# @@protoc_insertion_point(module_scope) diff --git a/py/sentry_protos/snuba/v1/trace_item_pb2.pyi b/py/sentry_protos/snuba/v1/trace_item_pb2.pyi new file mode 100644 index 00000000..c95c6024 --- /dev/null +++ b/py/sentry_protos/snuba/v1/trace_item_pb2.pyi @@ -0,0 +1,176 @@ +""" +@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 google.protobuf.timestamp_pb2 +import sentry_protos.snuba.v1.request_common_pb2 +import typing + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class AnyValue(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + STRING_VALUE_FIELD_NUMBER: builtins.int + BOOL_VALUE_FIELD_NUMBER: builtins.int + INT_VALUE_FIELD_NUMBER: builtins.int + DOUBLE_VALUE_FIELD_NUMBER: builtins.int + ARRAY_VALUE_FIELD_NUMBER: builtins.int + KVLIST_VALUE_FIELD_NUMBER: builtins.int + BYTES_VALUE_FIELD_NUMBER: builtins.int + string_value: builtins.str + bool_value: builtins.bool + int_value: builtins.int + double_value: builtins.float + bytes_value: builtins.bytes + @property + def array_value(self) -> global___ArrayValue: ... + @property + def kvlist_value(self) -> global___KeyValueList: ... + def __init__( + self, + *, + string_value: builtins.str = ..., + bool_value: builtins.bool = ..., + int_value: builtins.int = ..., + double_value: builtins.float = ..., + array_value: global___ArrayValue | None = ..., + kvlist_value: global___KeyValueList | None = ..., + bytes_value: builtins.bytes = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["array_value", b"array_value", "bool_value", b"bool_value", "bytes_value", b"bytes_value", "double_value", b"double_value", "int_value", b"int_value", "kvlist_value", b"kvlist_value", "string_value", b"string_value", "value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["array_value", b"array_value", "bool_value", b"bool_value", "bytes_value", b"bytes_value", "double_value", b"double_value", "int_value", b"int_value", "kvlist_value", b"kvlist_value", "string_value", b"string_value", "value", b"value"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["value", b"value"]) -> typing.Literal["string_value", "bool_value", "int_value", "double_value", "array_value", "kvlist_value", "bytes_value"] | None: ... + +global___AnyValue = AnyValue + +@typing.final +class ArrayValue(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VALUES_FIELD_NUMBER: builtins.int + @property + def values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___AnyValue]: ... + def __init__( + self, + *, + values: collections.abc.Iterable[global___AnyValue] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["values", b"values"]) -> None: ... + +global___ArrayValue = ArrayValue + +@typing.final +class KeyValueList(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VALUES_FIELD_NUMBER: builtins.int + @property + def values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___KeyValue]: ... + def __init__( + self, + *, + values: collections.abc.Iterable[global___KeyValue] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["values", b"values"]) -> None: ... + +global___KeyValueList = KeyValueList + +@typing.final +class KeyValue(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + @property + def value(self) -> global___AnyValue: ... + def __init__( + self, + *, + key: builtins.str = ..., + value: global___AnyValue | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... + +global___KeyValue = KeyValue + +@typing.final +class TraceItem(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class AttributesEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + @property + def value(self) -> global___AnyValue: ... + def __init__( + self, + *, + key: builtins.str = ..., + value: global___AnyValue | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... + + ORGANIZATION_ID_FIELD_NUMBER: builtins.int + PROJECT_ID_FIELD_NUMBER: builtins.int + TRACE_ID_FIELD_NUMBER: builtins.int + ITEM_ID_FIELD_NUMBER: builtins.int + ITEM_TYPE_FIELD_NUMBER: builtins.int + TIMESTAMP_FIELD_NUMBER: builtins.int + ATTRIBUTES_FIELD_NUMBER: builtins.int + CLIENT_SAMPLE_RATE_FIELD_NUMBER: builtins.int + SERVER_SAMPLE_RATE_FIELD_NUMBER: builtins.int + RETENTION_DAYS_FIELD_NUMBER: builtins.int + RECEIVED_FIELD_NUMBER: builtins.int + DOWNSAMPLED_RETENTION_DAYS_FIELD_NUMBER: builtins.int + organization_id: builtins.int + project_id: builtins.int + trace_id: builtins.str + item_id: builtins.bytes + """item_id as bytes, little endian""" + item_type: sentry_protos.snuba.v1.request_common_pb2.TraceItemType.ValueType + client_sample_rate: builtins.float + server_sample_rate: builtins.float + retention_days: builtins.int + """Internal fields""" + downsampled_retention_days: builtins.int + @property + def timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + @property + def attributes(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___AnyValue]: ... + @property + def received(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + def __init__( + self, + *, + organization_id: builtins.int = ..., + project_id: builtins.int = ..., + trace_id: builtins.str = ..., + item_id: builtins.bytes = ..., + item_type: sentry_protos.snuba.v1.request_common_pb2.TraceItemType.ValueType = ..., + timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + attributes: collections.abc.Mapping[builtins.str, global___AnyValue] | None = ..., + client_sample_rate: builtins.float = ..., + server_sample_rate: builtins.float = ..., + retention_days: builtins.int = ..., + received: google.protobuf.timestamp_pb2.Timestamp | None = ..., + downsampled_retention_days: builtins.int = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["received", b"received", "timestamp", b"timestamp"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["attributes", b"attributes", "client_sample_rate", b"client_sample_rate", "downsampled_retention_days", b"downsampled_retention_days", "item_id", b"item_id", "item_type", b"item_type", "organization_id", b"organization_id", "project_id", b"project_id", "received", b"received", "retention_days", b"retention_days", "server_sample_rate", b"server_sample_rate", "timestamp", b"timestamp", "trace_id", b"trace_id"]) -> None: ... + +global___TraceItem = TraceItem diff --git a/py/sentry_protos/snuba/v1/trace_item_pb2_grpc.py b/py/sentry_protos/snuba/v1/trace_item_pb2_grpc.py new file mode 100644 index 00000000..d2b4c799 --- /dev/null +++ b/py/sentry_protos/snuba/v1/trace_item_pb2_grpc.py @@ -0,0 +1,29 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.65.4' +GRPC_VERSION = grpc.__version__ +EXPECTED_ERROR_RELEASE = '1.66.0' +SCHEDULED_RELEASE_DATE = 'August 6, 2024' +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + warnings.warn( + f'The grpc package installed is at version {GRPC_VERSION},' + + f' but the generated code in sentry_protos/snuba/v1/trace_item_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + + f' This warning will become an error in {EXPECTED_ERROR_RELEASE},' + + f' scheduled for release on {SCHEDULED_RELEASE_DATE}.', + RuntimeWarning + ) diff --git a/py/sentry_protos/snuba/v1/trace_item_pb2_grpc.pyi b/py/sentry_protos/snuba/v1/trace_item_pb2_grpc.pyi new file mode 100644 index 00000000..a6a9cff9 --- /dev/null +++ b/py/sentry_protos/snuba/v1/trace_item_pb2_grpc.pyi @@ -0,0 +1,17 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import grpc +import grpc.aio +import typing + +_T = typing.TypeVar("_T") + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg] + ... diff --git a/py/sentry_protos/taskbroker/__init__.py b/py/sentry_protos/taskbroker/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/py/sentry_protos/taskbroker/v1/__init__.py b/py/sentry_protos/taskbroker/v1/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/py/sentry_protos/taskbroker/v1/taskbroker_pb2.py b/py/sentry_protos/taskbroker/v1/taskbroker_pb2.py new file mode 100644 index 00000000..ab9f5920 --- /dev/null +++ b/py/sentry_protos/taskbroker/v1/taskbroker_pb2.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: sentry_protos/taskbroker/v1/taskbroker.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n,sentry_protos/taskbroker/v1/taskbroker.proto\x12\x1bsentry_protos.taskbroker.v1\x1a\x1fgoogle/protobuf/timestamp.proto\"\xdf\x01\n\nRetryState\x12\x10\n\x08\x61ttempts\x18\x01 \x01(\r\x12\x14\n\x0cmax_attempts\x18\x02 \x01(\r\x12M\n\x14on_attempts_exceeded\x18\x03 \x01(\x0e\x32/.sentry_protos.taskbroker.v1.OnAttemptsExceeded\x12\x19\n\x0c\x61t_most_once\x18\x04 \x01(\x08H\x00\x88\x01\x01\x12\x1b\n\x0e\x64\x65lay_on_retry\x18\x05 \x01(\x04H\x01\x88\x01\x01\x42\x0f\n\r_at_most_onceB\x11\n\x0f_delay_on_retry\"\xa5\x03\n\x0eTaskActivation\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12\x10\n\x08taskname\x18\x03 \x01(\t\x12\x12\n\nparameters\x18\x04 \x01(\t\x12I\n\x07headers\x18\x05 \x03(\x0b\x32\x38.sentry_protos.taskbroker.v1.TaskActivation.HeadersEntry\x12/\n\x0breceived_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12<\n\x0bretry_state\x18\x07 \x01(\x0b\x32\'.sentry_protos.taskbroker.v1.RetryState\x12$\n\x1cprocessing_deadline_duration\x18\x08 \x01(\x04\x12\x14\n\x07\x65xpires\x18\t \x01(\x04H\x00\x88\x01\x01\x12\x12\n\x05\x64\x65lay\x18\x0b \x01(\x04H\x01\x88\x01\x01\x1a.\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\n\n\x08_expiresB\x08\n\x06_delay\"#\n\x10\x41\x64\x64WorkerRequest\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\"\x13\n\x11\x41\x64\x64WorkerResponse\"&\n\x13RemoveWorkerRequest\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\"\x16\n\x14RemoveWorkerResponse\"6\n\x0eGetTaskRequest\x12\x16\n\tnamespace\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_namespace\"Z\n\x0fGetTaskResponse\x12>\n\x04task\x18\x01 \x01(\x0b\x32+.sentry_protos.taskbroker.v1.TaskActivationH\x00\x88\x01\x01\x42\x07\n\x05_task\"5\n\rFetchNextTask\x12\x16\n\tnamespace\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_namespace\"\xd4\x01\n\x14SetTaskStatusRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x41\n\x06status\x18\x02 \x01(\x0e\x32\x31.sentry_protos.taskbroker.v1.TaskActivationStatus\x12H\n\x0f\x66\x65tch_next_task\x18\x03 \x01(\x0b\x32*.sentry_protos.taskbroker.v1.FetchNextTaskH\x00\x88\x01\x01\x12\x0f\n\x07\x61\x64\x64ress\x18\x04 \x01(\tB\x12\n\x10_fetch_next_task\"`\n\x15SetTaskStatusResponse\x12>\n\x04task\x18\x01 \x01(\x0b\x32+.sentry_protos.taskbroker.v1.TaskActivationH\x00\x88\x01\x01\x42\x07\n\x05_task*\x81\x01\n\x12OnAttemptsExceeded\x12$\n ON_ATTEMPTS_EXCEEDED_UNSPECIFIED\x10\x00\x12 \n\x1cON_ATTEMPTS_EXCEEDED_DISCARD\x10\x01\x12#\n\x1fON_ATTEMPTS_EXCEEDED_DEADLETTER\x10\x02*\xf4\x01\n\x14TaskActivationStatus\x12&\n\"TASK_ACTIVATION_STATUS_UNSPECIFIED\x10\x00\x12\"\n\x1eTASK_ACTIVATION_STATUS_PENDING\x10\x01\x12%\n!TASK_ACTIVATION_STATUS_PROCESSING\x10\x02\x12\"\n\x1eTASK_ACTIVATION_STATUS_FAILURE\x10\x03\x12 \n\x1cTASK_ACTIVATION_STATUS_RETRY\x10\x04\x12#\n\x1fTASK_ACTIVATION_STATUS_COMPLETE\x10\x05\x32\xd8\x03\n\x0f\x43onsumerService\x12\x66\n\x07GetTask\x12+.sentry_protos.taskbroker.v1.GetTaskRequest\x1a,.sentry_protos.taskbroker.v1.GetTaskResponse\"\x00\x12x\n\rSetTaskStatus\x12\x31.sentry_protos.taskbroker.v1.SetTaskStatusRequest\x1a\x32.sentry_protos.taskbroker.v1.SetTaskStatusResponse\"\x00\x12l\n\tAddWorker\x12-.sentry_protos.taskbroker.v1.AddWorkerRequest\x1a..sentry_protos.taskbroker.v1.AddWorkerResponse\"\x00\x12u\n\x0cRemoveWorker\x12\x30.sentry_protos.taskbroker.v1.RemoveWorkerRequest\x1a\x31.sentry_protos.taskbroker.v1.RemoveWorkerResponse\"\x00\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sentry_protos.taskbroker.v1.taskbroker_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_TASKACTIVATION_HEADERSENTRY']._loaded_options = None + _globals['_TASKACTIVATION_HEADERSENTRY']._serialized_options = b'8\001' + _globals['_ONATTEMPTSEXCEEDED']._serialized_start=1399 + _globals['_ONATTEMPTSEXCEEDED']._serialized_end=1528 + _globals['_TASKACTIVATIONSTATUS']._serialized_start=1531 + _globals['_TASKACTIVATIONSTATUS']._serialized_end=1775 + _globals['_RETRYSTATE']._serialized_start=111 + _globals['_RETRYSTATE']._serialized_end=334 + _globals['_TASKACTIVATION']._serialized_start=337 + _globals['_TASKACTIVATION']._serialized_end=758 + _globals['_TASKACTIVATION_HEADERSENTRY']._serialized_start=690 + _globals['_TASKACTIVATION_HEADERSENTRY']._serialized_end=736 + _globals['_ADDWORKERREQUEST']._serialized_start=760 + _globals['_ADDWORKERREQUEST']._serialized_end=795 + _globals['_ADDWORKERRESPONSE']._serialized_start=797 + _globals['_ADDWORKERRESPONSE']._serialized_end=816 + _globals['_REMOVEWORKERREQUEST']._serialized_start=818 + _globals['_REMOVEWORKERREQUEST']._serialized_end=856 + _globals['_REMOVEWORKERRESPONSE']._serialized_start=858 + _globals['_REMOVEWORKERRESPONSE']._serialized_end=880 + _globals['_GETTASKREQUEST']._serialized_start=882 + _globals['_GETTASKREQUEST']._serialized_end=936 + _globals['_GETTASKRESPONSE']._serialized_start=938 + _globals['_GETTASKRESPONSE']._serialized_end=1028 + _globals['_FETCHNEXTTASK']._serialized_start=1030 + _globals['_FETCHNEXTTASK']._serialized_end=1083 + _globals['_SETTASKSTATUSREQUEST']._serialized_start=1086 + _globals['_SETTASKSTATUSREQUEST']._serialized_end=1298 + _globals['_SETTASKSTATUSRESPONSE']._serialized_start=1300 + _globals['_SETTASKSTATUSRESPONSE']._serialized_end=1396 + _globals['_CONSUMERSERVICE']._serialized_start=1778 + _globals['_CONSUMERSERVICE']._serialized_end=2250 +# @@protoc_insertion_point(module_scope) diff --git a/py/sentry_protos/taskbroker/v1/taskbroker_pb2.pyi b/py/sentry_protos/taskbroker/v1/taskbroker_pb2.pyi new file mode 100644 index 00000000..538f0044 --- /dev/null +++ b/py/sentry_protos/taskbroker/v1/taskbroker_pb2.pyi @@ -0,0 +1,339 @@ +""" +@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 google.protobuf.timestamp_pb2 +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 _OnAttemptsExceeded: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _OnAttemptsExceededEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_OnAttemptsExceeded.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + ON_ATTEMPTS_EXCEEDED_UNSPECIFIED: _OnAttemptsExceeded.ValueType # 0 + ON_ATTEMPTS_EXCEEDED_DISCARD: _OnAttemptsExceeded.ValueType # 1 + ON_ATTEMPTS_EXCEEDED_DEADLETTER: _OnAttemptsExceeded.ValueType # 2 + +class OnAttemptsExceeded(_OnAttemptsExceeded, metaclass=_OnAttemptsExceededEnumTypeWrapper): ... + +ON_ATTEMPTS_EXCEEDED_UNSPECIFIED: OnAttemptsExceeded.ValueType # 0 +ON_ATTEMPTS_EXCEEDED_DISCARD: OnAttemptsExceeded.ValueType # 1 +ON_ATTEMPTS_EXCEEDED_DEADLETTER: OnAttemptsExceeded.ValueType # 2 +global___OnAttemptsExceeded = OnAttemptsExceeded + +class _TaskActivationStatus: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _TaskActivationStatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_TaskActivationStatus.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + TASK_ACTIVATION_STATUS_UNSPECIFIED: _TaskActivationStatus.ValueType # 0 + TASK_ACTIVATION_STATUS_PENDING: _TaskActivationStatus.ValueType # 1 + TASK_ACTIVATION_STATUS_PROCESSING: _TaskActivationStatus.ValueType # 2 + TASK_ACTIVATION_STATUS_FAILURE: _TaskActivationStatus.ValueType # 3 + TASK_ACTIVATION_STATUS_RETRY: _TaskActivationStatus.ValueType # 4 + TASK_ACTIVATION_STATUS_COMPLETE: _TaskActivationStatus.ValueType # 5 + +class TaskActivationStatus(_TaskActivationStatus, metaclass=_TaskActivationStatusEnumTypeWrapper): ... + +TASK_ACTIVATION_STATUS_UNSPECIFIED: TaskActivationStatus.ValueType # 0 +TASK_ACTIVATION_STATUS_PENDING: TaskActivationStatus.ValueType # 1 +TASK_ACTIVATION_STATUS_PROCESSING: TaskActivationStatus.ValueType # 2 +TASK_ACTIVATION_STATUS_FAILURE: TaskActivationStatus.ValueType # 3 +TASK_ACTIVATION_STATUS_RETRY: TaskActivationStatus.ValueType # 4 +TASK_ACTIVATION_STATUS_COMPLETE: TaskActivationStatus.ValueType # 5 +global___TaskActivationStatus = TaskActivationStatus + +@typing.final +class RetryState(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ATTEMPTS_FIELD_NUMBER: builtins.int + MAX_ATTEMPTS_FIELD_NUMBER: builtins.int + ON_ATTEMPTS_EXCEEDED_FIELD_NUMBER: builtins.int + AT_MOST_ONCE_FIELD_NUMBER: builtins.int + DELAY_ON_RETRY_FIELD_NUMBER: builtins.int + attempts: builtins.int + """Current attempt number""" + max_attempts: builtins.int + """After this number of attempts, the task is either discarded or deadlettered.""" + on_attempts_exceeded: global___OnAttemptsExceeded.ValueType + """The action to take after the max_attempts is exceeded.""" + at_most_once: builtins.bool + """Whether a task should be executed at most once.""" + delay_on_retry: builtins.int + """Duration in seconds that a task must wait to begin execution after it is retried.""" + def __init__( + self, + *, + attempts: builtins.int = ..., + max_attempts: builtins.int = ..., + on_attempts_exceeded: global___OnAttemptsExceeded.ValueType = ..., + at_most_once: builtins.bool | None = ..., + delay_on_retry: builtins.int | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["_at_most_once", b"_at_most_once", "_delay_on_retry", b"_delay_on_retry", "at_most_once", b"at_most_once", "delay_on_retry", b"delay_on_retry"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["_at_most_once", b"_at_most_once", "_delay_on_retry", b"_delay_on_retry", "at_most_once", b"at_most_once", "attempts", b"attempts", "delay_on_retry", b"delay_on_retry", "max_attempts", b"max_attempts", "on_attempts_exceeded", b"on_attempts_exceeded"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_at_most_once", b"_at_most_once"]) -> typing.Literal["at_most_once"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_delay_on_retry", b"_delay_on_retry"]) -> typing.Literal["delay_on_retry"] | None: ... + +global___RetryState = RetryState + +@typing.final +class TaskActivation(google.protobuf.message.Message): + """Task message that is stored in Kafka and shared over RPC.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class HeadersEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str + def __init__( + self, + *, + key: builtins.str = ..., + value: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... + + ID_FIELD_NUMBER: builtins.int + NAMESPACE_FIELD_NUMBER: builtins.int + TASKNAME_FIELD_NUMBER: builtins.int + PARAMETERS_FIELD_NUMBER: builtins.int + HEADERS_FIELD_NUMBER: builtins.int + RECEIVED_AT_FIELD_NUMBER: builtins.int + RETRY_STATE_FIELD_NUMBER: builtins.int + PROCESSING_DEADLINE_DURATION_FIELD_NUMBER: builtins.int + EXPIRES_FIELD_NUMBER: builtins.int + DELAY_FIELD_NUMBER: builtins.int + id: builtins.str + """A GUID for the task. Used to update tasks""" + namespace: builtins.str + """The task namespace""" + taskname: builtins.str + """The name of the task. This name is resolved within the worker""" + parameters: builtins.str + """An opaque parameter collection. Could be JSON or protobuf encoded""" + processing_deadline_duration: builtins.int + """The duration in seconds that a worker has to complete task execution. + When an activation is moved from pending -> processing a result is expected + in this many seconds. + """ + expires: builtins.int + """The duration in seconds that a task has to start execution. + After received_at + expires has passed an activation is expired and will not be executed. + """ + delay: builtins.int + """The duration in seconds that a task must wait to begin execution after it is emitted. + After received_at + delay has passed, the activation will become pending. + """ + @property + def headers(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: + """A map of headers for the task.""" + + @property + def received_at(self) -> google.protobuf.timestamp_pb2.Timestamp: + """The timestamp a task was stored in Kafka""" + + @property + def retry_state(self) -> global___RetryState: + """Retry state""" + + def __init__( + self, + *, + id: builtins.str = ..., + namespace: builtins.str = ..., + taskname: builtins.str = ..., + parameters: builtins.str = ..., + headers: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + received_at: google.protobuf.timestamp_pb2.Timestamp | None = ..., + retry_state: global___RetryState | None = ..., + processing_deadline_duration: builtins.int = ..., + expires: builtins.int | None = ..., + delay: builtins.int | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["_delay", b"_delay", "_expires", b"_expires", "delay", b"delay", "expires", b"expires", "received_at", b"received_at", "retry_state", b"retry_state"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["_delay", b"_delay", "_expires", b"_expires", "delay", b"delay", "expires", b"expires", "headers", b"headers", "id", b"id", "namespace", b"namespace", "parameters", b"parameters", "processing_deadline_duration", b"processing_deadline_duration", "received_at", b"received_at", "retry_state", b"retry_state", "taskname", b"taskname"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_delay", b"_delay"]) -> typing.Literal["delay"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_expires", b"_expires"]) -> typing.Literal["expires"] | None: ... + +global___TaskActivation = TaskActivation + +@typing.final +class AddWorkerRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ADDRESS_FIELD_NUMBER: builtins.int + address: builtins.str + def __init__( + self, + *, + address: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["address", b"address"]) -> None: ... + +global___AddWorkerRequest = AddWorkerRequest + +@typing.final +class AddWorkerResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___AddWorkerResponse = AddWorkerResponse + +@typing.final +class RemoveWorkerRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ADDRESS_FIELD_NUMBER: builtins.int + address: builtins.str + def __init__( + self, + *, + address: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["address", b"address"]) -> None: ... + +global___RemoveWorkerRequest = RemoveWorkerRequest + +@typing.final +class RemoveWorkerResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___RemoveWorkerResponse = RemoveWorkerResponse + +@typing.final +class GetTaskRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAMESPACE_FIELD_NUMBER: builtins.int + namespace: builtins.str + def __init__( + self, + *, + namespace: builtins.str | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["_namespace", b"_namespace", "namespace", b"namespace"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["_namespace", b"_namespace", "namespace", b"namespace"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["_namespace", b"_namespace"]) -> typing.Literal["namespace"] | None: ... + +global___GetTaskRequest = GetTaskRequest + +@typing.final +class GetTaskResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + TASK_FIELD_NUMBER: builtins.int + @property + def task(self) -> global___TaskActivation: + """If there are no tasks available, this will be empty""" + + def __init__( + self, + *, + task: global___TaskActivation | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["_task", b"_task", "task", b"task"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["_task", b"_task", "task", b"task"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["_task", b"_task"]) -> typing.Literal["task"] | None: ... + +global___GetTaskResponse = GetTaskResponse + +@typing.final +class FetchNextTask(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAMESPACE_FIELD_NUMBER: builtins.int + namespace: builtins.str + def __init__( + self, + *, + namespace: builtins.str | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["_namespace", b"_namespace", "namespace", b"namespace"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["_namespace", b"_namespace", "namespace", b"namespace"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["_namespace", b"_namespace"]) -> typing.Literal["namespace"] | None: ... + +global___FetchNextTask = FetchNextTask + +@typing.final +class SetTaskStatusRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ID_FIELD_NUMBER: builtins.int + STATUS_FIELD_NUMBER: builtins.int + FETCH_NEXT_TASK_FIELD_NUMBER: builtins.int + ADDRESS_FIELD_NUMBER: builtins.int + id: builtins.str + status: global___TaskActivationStatus.ValueType + address: builtins.str + @property + def fetch_next_task(self) -> global___FetchNextTask: + """If fetch_next is provided, receive a new task in the response""" + + def __init__( + self, + *, + id: builtins.str = ..., + status: global___TaskActivationStatus.ValueType = ..., + fetch_next_task: global___FetchNextTask | None = ..., + address: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["_fetch_next_task", b"_fetch_next_task", "fetch_next_task", b"fetch_next_task"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["_fetch_next_task", b"_fetch_next_task", "address", b"address", "fetch_next_task", b"fetch_next_task", "id", b"id", "status", b"status"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["_fetch_next_task", b"_fetch_next_task"]) -> typing.Literal["fetch_next_task"] | None: ... + +global___SetTaskStatusRequest = SetTaskStatusRequest + +@typing.final +class SetTaskStatusResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + TASK_FIELD_NUMBER: builtins.int + @property + def task(self) -> global___TaskActivation: + """The next task the worker should execute. Requires fetch_next to be set on the request.""" + + def __init__( + self, + *, + task: global___TaskActivation | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["_task", b"_task", "task", b"task"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["_task", b"_task", "task", b"task"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["_task", b"_task"]) -> typing.Literal["task"] | None: ... + +global___SetTaskStatusResponse = SetTaskStatusResponse diff --git a/py/sentry_protos/taskbroker/v1/taskbroker_pb2_grpc.py b/py/sentry_protos/taskbroker/v1/taskbroker_pb2_grpc.py new file mode 100644 index 00000000..d996e54f --- /dev/null +++ b/py/sentry_protos/taskbroker/v1/taskbroker_pb2_grpc.py @@ -0,0 +1,244 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + +from sentry_protos.taskbroker.v1 import taskbroker_pb2 as sentry__protos_dot_taskbroker_dot_v1_dot_taskbroker__pb2 + +GRPC_GENERATED_VERSION = '1.65.4' +GRPC_VERSION = grpc.__version__ +EXPECTED_ERROR_RELEASE = '1.66.0' +SCHEDULED_RELEASE_DATE = 'August 6, 2024' +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + warnings.warn( + f'The grpc package installed is at version {GRPC_VERSION},' + + f' but the generated code in sentry_protos/taskbroker/v1/taskbroker_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + + f' This warning will become an error in {EXPECTED_ERROR_RELEASE},' + + f' scheduled for release on {SCHEDULED_RELEASE_DATE}.', + RuntimeWarning + ) + + +class ConsumerServiceStub(object): + """////////////////////////// + RPC messages and services + ////////////////////////// + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetTask = channel.unary_unary( + '/sentry_protos.taskbroker.v1.ConsumerService/GetTask', + request_serializer=sentry__protos_dot_taskbroker_dot_v1_dot_taskbroker__pb2.GetTaskRequest.SerializeToString, + response_deserializer=sentry__protos_dot_taskbroker_dot_v1_dot_taskbroker__pb2.GetTaskResponse.FromString, + _registered_method=True) + self.SetTaskStatus = channel.unary_unary( + '/sentry_protos.taskbroker.v1.ConsumerService/SetTaskStatus', + request_serializer=sentry__protos_dot_taskbroker_dot_v1_dot_taskbroker__pb2.SetTaskStatusRequest.SerializeToString, + response_deserializer=sentry__protos_dot_taskbroker_dot_v1_dot_taskbroker__pb2.SetTaskStatusResponse.FromString, + _registered_method=True) + self.AddWorker = channel.unary_unary( + '/sentry_protos.taskbroker.v1.ConsumerService/AddWorker', + request_serializer=sentry__protos_dot_taskbroker_dot_v1_dot_taskbroker__pb2.AddWorkerRequest.SerializeToString, + response_deserializer=sentry__protos_dot_taskbroker_dot_v1_dot_taskbroker__pb2.AddWorkerResponse.FromString, + _registered_method=True) + self.RemoveWorker = channel.unary_unary( + '/sentry_protos.taskbroker.v1.ConsumerService/RemoveWorker', + request_serializer=sentry__protos_dot_taskbroker_dot_v1_dot_taskbroker__pb2.RemoveWorkerRequest.SerializeToString, + response_deserializer=sentry__protos_dot_taskbroker_dot_v1_dot_taskbroker__pb2.RemoveWorkerResponse.FromString, + _registered_method=True) + + +class ConsumerServiceServicer(object): + """////////////////////////// + RPC messages and services + ////////////////////////// + """ + + def GetTask(self, request, context): + """Fetch a new task activation to process. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SetTaskStatus(self, request, context): + """Update the state of a task with execution results. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def AddWorker(self, request, context): + """Add a worker to the broker's inner worker pool. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def RemoveWorker(self, request, context): + """Remove a worker from the broker's inner worker pool. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_ConsumerServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetTask': grpc.unary_unary_rpc_method_handler( + servicer.GetTask, + request_deserializer=sentry__protos_dot_taskbroker_dot_v1_dot_taskbroker__pb2.GetTaskRequest.FromString, + response_serializer=sentry__protos_dot_taskbroker_dot_v1_dot_taskbroker__pb2.GetTaskResponse.SerializeToString, + ), + 'SetTaskStatus': grpc.unary_unary_rpc_method_handler( + servicer.SetTaskStatus, + request_deserializer=sentry__protos_dot_taskbroker_dot_v1_dot_taskbroker__pb2.SetTaskStatusRequest.FromString, + response_serializer=sentry__protos_dot_taskbroker_dot_v1_dot_taskbroker__pb2.SetTaskStatusResponse.SerializeToString, + ), + 'AddWorker': grpc.unary_unary_rpc_method_handler( + servicer.AddWorker, + request_deserializer=sentry__protos_dot_taskbroker_dot_v1_dot_taskbroker__pb2.AddWorkerRequest.FromString, + response_serializer=sentry__protos_dot_taskbroker_dot_v1_dot_taskbroker__pb2.AddWorkerResponse.SerializeToString, + ), + 'RemoveWorker': grpc.unary_unary_rpc_method_handler( + servicer.RemoveWorker, + request_deserializer=sentry__protos_dot_taskbroker_dot_v1_dot_taskbroker__pb2.RemoveWorkerRequest.FromString, + response_serializer=sentry__protos_dot_taskbroker_dot_v1_dot_taskbroker__pb2.RemoveWorkerResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'sentry_protos.taskbroker.v1.ConsumerService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('sentry_protos.taskbroker.v1.ConsumerService', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class ConsumerService(object): + """////////////////////////// + RPC messages and services + ////////////////////////// + """ + + @staticmethod + def GetTask(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/sentry_protos.taskbroker.v1.ConsumerService/GetTask', + sentry__protos_dot_taskbroker_dot_v1_dot_taskbroker__pb2.GetTaskRequest.SerializeToString, + sentry__protos_dot_taskbroker_dot_v1_dot_taskbroker__pb2.GetTaskResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def SetTaskStatus(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/sentry_protos.taskbroker.v1.ConsumerService/SetTaskStatus', + sentry__protos_dot_taskbroker_dot_v1_dot_taskbroker__pb2.SetTaskStatusRequest.SerializeToString, + sentry__protos_dot_taskbroker_dot_v1_dot_taskbroker__pb2.SetTaskStatusResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def AddWorker(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/sentry_protos.taskbroker.v1.ConsumerService/AddWorker', + sentry__protos_dot_taskbroker_dot_v1_dot_taskbroker__pb2.AddWorkerRequest.SerializeToString, + sentry__protos_dot_taskbroker_dot_v1_dot_taskbroker__pb2.AddWorkerResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def RemoveWorker(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/sentry_protos.taskbroker.v1.ConsumerService/RemoveWorker', + sentry__protos_dot_taskbroker_dot_v1_dot_taskbroker__pb2.RemoveWorkerRequest.SerializeToString, + sentry__protos_dot_taskbroker_dot_v1_dot_taskbroker__pb2.RemoveWorkerResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/py/sentry_protos/taskbroker/v1/taskbroker_pb2_grpc.pyi b/py/sentry_protos/taskbroker/v1/taskbroker_pb2_grpc.pyi new file mode 100644 index 00000000..aa144ce2 --- /dev/null +++ b/py/sentry_protos/taskbroker/v1/taskbroker_pb2_grpc.pyi @@ -0,0 +1,119 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import grpc +import grpc.aio +import sentry_protos.taskbroker.v1.taskbroker_pb2 +import typing + +_T = typing.TypeVar("_T") + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg] + ... + +class ConsumerServiceStub: + """////////////////////////// + RPC messages and services + ////////////////////////// + """ + + def __init__(self, channel: typing.Union[grpc.Channel, grpc.aio.Channel]) -> None: ... + GetTask: grpc.UnaryUnaryMultiCallable[ + sentry_protos.taskbroker.v1.taskbroker_pb2.GetTaskRequest, + sentry_protos.taskbroker.v1.taskbroker_pb2.GetTaskResponse, + ] + """Fetch a new task activation to process.""" + + SetTaskStatus: grpc.UnaryUnaryMultiCallable[ + sentry_protos.taskbroker.v1.taskbroker_pb2.SetTaskStatusRequest, + sentry_protos.taskbroker.v1.taskbroker_pb2.SetTaskStatusResponse, + ] + """Update the state of a task with execution results.""" + + AddWorker: grpc.UnaryUnaryMultiCallable[ + sentry_protos.taskbroker.v1.taskbroker_pb2.AddWorkerRequest, + sentry_protos.taskbroker.v1.taskbroker_pb2.AddWorkerResponse, + ] + """Add a worker to the broker's inner worker pool.""" + + RemoveWorker: grpc.UnaryUnaryMultiCallable[ + sentry_protos.taskbroker.v1.taskbroker_pb2.RemoveWorkerRequest, + sentry_protos.taskbroker.v1.taskbroker_pb2.RemoveWorkerResponse, + ] + """Remove a worker from the broker's inner worker pool.""" + +class ConsumerServiceAsyncStub: + """////////////////////////// + RPC messages and services + ////////////////////////// + """ + + GetTask: grpc.aio.UnaryUnaryMultiCallable[ + sentry_protos.taskbroker.v1.taskbroker_pb2.GetTaskRequest, + sentry_protos.taskbroker.v1.taskbroker_pb2.GetTaskResponse, + ] + """Fetch a new task activation to process.""" + + SetTaskStatus: grpc.aio.UnaryUnaryMultiCallable[ + sentry_protos.taskbroker.v1.taskbroker_pb2.SetTaskStatusRequest, + sentry_protos.taskbroker.v1.taskbroker_pb2.SetTaskStatusResponse, + ] + """Update the state of a task with execution results.""" + + AddWorker: grpc.aio.UnaryUnaryMultiCallable[ + sentry_protos.taskbroker.v1.taskbroker_pb2.AddWorkerRequest, + sentry_protos.taskbroker.v1.taskbroker_pb2.AddWorkerResponse, + ] + """Add a worker to the broker's inner worker pool.""" + + RemoveWorker: grpc.aio.UnaryUnaryMultiCallable[ + sentry_protos.taskbroker.v1.taskbroker_pb2.RemoveWorkerRequest, + sentry_protos.taskbroker.v1.taskbroker_pb2.RemoveWorkerResponse, + ] + """Remove a worker from the broker's inner worker pool.""" + +class ConsumerServiceServicer(metaclass=abc.ABCMeta): + """////////////////////////// + RPC messages and services + ////////////////////////// + """ + + @abc.abstractmethod + def GetTask( + self, + request: sentry_protos.taskbroker.v1.taskbroker_pb2.GetTaskRequest, + context: _ServicerContext, + ) -> typing.Union[sentry_protos.taskbroker.v1.taskbroker_pb2.GetTaskResponse, collections.abc.Awaitable[sentry_protos.taskbroker.v1.taskbroker_pb2.GetTaskResponse]]: + """Fetch a new task activation to process.""" + + @abc.abstractmethod + def SetTaskStatus( + self, + request: sentry_protos.taskbroker.v1.taskbroker_pb2.SetTaskStatusRequest, + context: _ServicerContext, + ) -> typing.Union[sentry_protos.taskbroker.v1.taskbroker_pb2.SetTaskStatusResponse, collections.abc.Awaitable[sentry_protos.taskbroker.v1.taskbroker_pb2.SetTaskStatusResponse]]: + """Update the state of a task with execution results.""" + + @abc.abstractmethod + def AddWorker( + self, + request: sentry_protos.taskbroker.v1.taskbroker_pb2.AddWorkerRequest, + context: _ServicerContext, + ) -> typing.Union[sentry_protos.taskbroker.v1.taskbroker_pb2.AddWorkerResponse, collections.abc.Awaitable[sentry_protos.taskbroker.v1.taskbroker_pb2.AddWorkerResponse]]: + """Add a worker to the broker's inner worker pool.""" + + @abc.abstractmethod + def RemoveWorker( + self, + request: sentry_protos.taskbroker.v1.taskbroker_pb2.RemoveWorkerRequest, + context: _ServicerContext, + ) -> typing.Union[sentry_protos.taskbroker.v1.taskbroker_pb2.RemoveWorkerResponse, collections.abc.Awaitable[sentry_protos.taskbroker.v1.taskbroker_pb2.RemoveWorkerResponse]]: + """Remove a worker from the broker's inner worker pool.""" + +def add_ConsumerServiceServicer_to_server(servicer: ConsumerServiceServicer, server: typing.Union[grpc.Server, grpc.aio.Server]) -> None: ... diff --git a/py/sentry_protos/taskworker/__init__.py b/py/sentry_protos/taskworker/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/py/sentry_protos/taskworker/v1/__init__.py b/py/sentry_protos/taskworker/v1/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/py/sentry_protos/taskworker/v1/taskworker_pb2.py b/py/sentry_protos/taskworker/v1/taskworker_pb2.py new file mode 100644 index 00000000..c86abcc7 --- /dev/null +++ b/py/sentry_protos/taskworker/v1/taskworker_pb2.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: sentry_protos/taskworker/v1/taskworker.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from sentry_protos.taskbroker.v1 import taskbroker_pb2 as sentry__protos_dot_taskbroker_dot_v1_dot_taskbroker__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n,sentry_protos/taskworker/v1/taskworker.proto\x12\x1bsentry_protos.taskworker.v1\x1a,sentry_protos/taskbroker/v1/taskbroker.proto\"b\n\x0fPushTaskRequest\x12\x39\n\x04task\x18\x01 \x01(\x0b\x32+.sentry_protos.taskbroker.v1.TaskActivation\x12\x14\n\x0c\x63\x61llback_url\x18\x02 \x01(\t\"5\n\x10PushTaskResponse\x12\r\n\x05\x61\x64\x64\x65\x64\x18\x01 \x01(\x08\x12\x12\n\nqueue_size\x18\x02 \x01(\r2z\n\rWorkerService\x12i\n\x08PushTask\x12,.sentry_protos.taskworker.v1.PushTaskRequest\x1a-.sentry_protos.taskworker.v1.PushTaskResponse\"\x00\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sentry_protos.taskworker.v1.taskworker_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_PUSHTASKREQUEST']._serialized_start=123 + _globals['_PUSHTASKREQUEST']._serialized_end=221 + _globals['_PUSHTASKRESPONSE']._serialized_start=223 + _globals['_PUSHTASKRESPONSE']._serialized_end=276 + _globals['_WORKERSERVICE']._serialized_start=278 + _globals['_WORKERSERVICE']._serialized_end=400 +# @@protoc_insertion_point(module_scope) diff --git a/py/sentry_protos/taskworker/v1/taskworker_pb2.pyi b/py/sentry_protos/taskworker/v1/taskworker_pb2.pyi new file mode 100644 index 00000000..1a79c692 --- /dev/null +++ b/py/sentry_protos/taskworker/v1/taskworker_pb2.pyi @@ -0,0 +1,50 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.message +import sentry_protos.taskbroker.v1.taskbroker_pb2 +import typing + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class PushTaskRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + TASK_FIELD_NUMBER: builtins.int + CALLBACK_URL_FIELD_NUMBER: builtins.int + callback_url: builtins.str + @property + def task(self) -> sentry_protos.taskbroker.v1.taskbroker_pb2.TaskActivation: ... + def __init__( + self, + *, + task: sentry_protos.taskbroker.v1.taskbroker_pb2.TaskActivation | None = ..., + callback_url: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["task", b"task"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["callback_url", b"callback_url", "task", b"task"]) -> None: ... + +global___PushTaskRequest = PushTaskRequest + +@typing.final +class PushTaskResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ADDED_FIELD_NUMBER: builtins.int + QUEUE_SIZE_FIELD_NUMBER: builtins.int + added: builtins.bool + queue_size: builtins.int + def __init__( + self, + *, + added: builtins.bool = ..., + queue_size: builtins.int = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["added", b"added", "queue_size", b"queue_size"]) -> None: ... + +global___PushTaskResponse = PushTaskResponse diff --git a/py/sentry_protos/taskworker/v1/taskworker_pb2_grpc.py b/py/sentry_protos/taskworker/v1/taskworker_pb2_grpc.py new file mode 100644 index 00000000..ad80b6c9 --- /dev/null +++ b/py/sentry_protos/taskworker/v1/taskworker_pb2_grpc.py @@ -0,0 +1,103 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + +from sentry_protos.taskworker.v1 import taskworker_pb2 as sentry__protos_dot_taskworker_dot_v1_dot_taskworker__pb2 + +GRPC_GENERATED_VERSION = '1.65.4' +GRPC_VERSION = grpc.__version__ +EXPECTED_ERROR_RELEASE = '1.66.0' +SCHEDULED_RELEASE_DATE = 'August 6, 2024' +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + warnings.warn( + f'The grpc package installed is at version {GRPC_VERSION},' + + f' but the generated code in sentry_protos/taskworker/v1/taskworker_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + + f' This warning will become an error in {EXPECTED_ERROR_RELEASE},' + + f' scheduled for release on {SCHEDULED_RELEASE_DATE}.', + RuntimeWarning + ) + + +class WorkerServiceStub(object): + """Missing associated documentation comment in .proto file.""" + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.PushTask = channel.unary_unary( + '/sentry_protos.taskworker.v1.WorkerService/PushTask', + request_serializer=sentry__protos_dot_taskworker_dot_v1_dot_taskworker__pb2.PushTaskRequest.SerializeToString, + response_deserializer=sentry__protos_dot_taskworker_dot_v1_dot_taskworker__pb2.PushTaskResponse.FromString, + _registered_method=True) + + +class WorkerServiceServicer(object): + """Missing associated documentation comment in .proto file.""" + + def PushTask(self, request, context): + """Receives a task to execute. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_WorkerServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'PushTask': grpc.unary_unary_rpc_method_handler( + servicer.PushTask, + request_deserializer=sentry__protos_dot_taskworker_dot_v1_dot_taskworker__pb2.PushTaskRequest.FromString, + response_serializer=sentry__protos_dot_taskworker_dot_v1_dot_taskworker__pb2.PushTaskResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'sentry_protos.taskworker.v1.WorkerService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('sentry_protos.taskworker.v1.WorkerService', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class WorkerService(object): + """Missing associated documentation comment in .proto file.""" + + @staticmethod + def PushTask(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/sentry_protos.taskworker.v1.WorkerService/PushTask', + sentry__protos_dot_taskworker_dot_v1_dot_taskworker__pb2.PushTaskRequest.SerializeToString, + sentry__protos_dot_taskworker_dot_v1_dot_taskworker__pb2.PushTaskResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/py/sentry_protos/taskworker/v1/taskworker_pb2_grpc.pyi b/py/sentry_protos/taskworker/v1/taskworker_pb2_grpc.pyi new file mode 100644 index 00000000..a6538839 --- /dev/null +++ b/py/sentry_protos/taskworker/v1/taskworker_pb2_grpc.pyi @@ -0,0 +1,44 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import grpc +import grpc.aio +import sentry_protos.taskworker.v1.taskworker_pb2 +import typing + +_T = typing.TypeVar("_T") + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg] + ... + +class WorkerServiceStub: + def __init__(self, channel: typing.Union[grpc.Channel, grpc.aio.Channel]) -> None: ... + PushTask: grpc.UnaryUnaryMultiCallable[ + sentry_protos.taskworker.v1.taskworker_pb2.PushTaskRequest, + sentry_protos.taskworker.v1.taskworker_pb2.PushTaskResponse, + ] + """Receives a task to execute.""" + +class WorkerServiceAsyncStub: + PushTask: grpc.aio.UnaryUnaryMultiCallable[ + sentry_protos.taskworker.v1.taskworker_pb2.PushTaskRequest, + sentry_protos.taskworker.v1.taskworker_pb2.PushTaskResponse, + ] + """Receives a task to execute.""" + +class WorkerServiceServicer(metaclass=abc.ABCMeta): + @abc.abstractmethod + def PushTask( + self, + request: sentry_protos.taskworker.v1.taskworker_pb2.PushTaskRequest, + context: _ServicerContext, + ) -> typing.Union[sentry_protos.taskworker.v1.taskworker_pb2.PushTaskResponse, collections.abc.Awaitable[sentry_protos.taskworker.v1.taskworker_pb2.PushTaskResponse]]: + """Receives a task to execute.""" + +def add_WorkerServiceServicer_to_server(servicer: WorkerServiceServicer, server: typing.Union[grpc.Server, grpc.aio.Server]) -> None: ... diff --git a/rust/src/lib.rs b/rust/src/lib.rs index 03bd797b..97f56216 100644 --- a/rust/src/lib.rs +++ b/rust/src/lib.rs @@ -46,3 +46,9 @@ pub mod taskbroker { } } +pub mod taskworker { + pub mod v1 { + include!("sentry_protos.taskworker.v1.rs"); + } +} + diff --git a/rust/src/sentry_protos.taskbroker.v1.rs b/rust/src/sentry_protos.taskbroker.v1.rs index 66308f71..074988fb 100644 --- a/rust/src/sentry_protos.taskbroker.v1.rs +++ b/rust/src/sentry_protos.taskbroker.v1.rs @@ -59,6 +59,20 @@ pub struct TaskActivation { pub delay: ::core::option::Option, } #[derive(Clone, PartialEq, ::prost::Message)] +pub struct AddWorkerRequest { + #[prost(string, tag = "1")] + pub address: ::prost::alloc::string::String, +} +#[derive(Clone, Copy, PartialEq, ::prost::Message)] +pub struct AddWorkerResponse {} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RemoveWorkerRequest { + #[prost(string, tag = "1")] + pub address: ::prost::alloc::string::String, +} +#[derive(Clone, Copy, PartialEq, ::prost::Message)] +pub struct RemoveWorkerResponse {} +#[derive(Clone, PartialEq, ::prost::Message)] pub struct GetTaskRequest { #[prost(string, optional, tag = "1")] pub namespace: ::core::option::Option<::prost::alloc::string::String>, @@ -83,6 +97,8 @@ pub struct SetTaskStatusRequest { /// If fetch_next is provided, receive a new task in the response #[prost(message, optional, tag = "3")] pub fetch_next_task: ::core::option::Option, + #[prost(string, tag = "4")] + pub address: ::prost::alloc::string::String, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct SetTaskStatusResponse { @@ -311,6 +327,66 @@ pub mod consumer_service_client { ); self.inner.unary(req, path, codec).await } + /// Add a worker to the broker's inner worker pool. + pub async fn add_worker( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sentry_protos.taskbroker.v1.ConsumerService/AddWorker", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "sentry_protos.taskbroker.v1.ConsumerService", + "AddWorker", + ), + ); + self.inner.unary(req, path, codec).await + } + /// Remove a worker from the broker's inner worker pool. + pub async fn remove_worker( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sentry_protos.taskbroker.v1.ConsumerService/RemoveWorker", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "sentry_protos.taskbroker.v1.ConsumerService", + "RemoveWorker", + ), + ); + self.inner.unary(req, path, codec).await + } } } /// Generated server implementations. @@ -339,6 +415,22 @@ pub mod consumer_service_server { tonic::Response, tonic::Status, >; + /// Add a worker to the broker's inner worker pool. + async fn add_worker( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + /// Remove a worker from the broker's inner worker pool. + async fn remove_worker( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; } /// ////////////////////////// /// RPC messages and services @@ -510,6 +602,96 @@ pub mod consumer_service_server { }; Box::pin(fut) } + "/sentry_protos.taskbroker.v1.ConsumerService/AddWorker" => { + #[allow(non_camel_case_types)] + struct AddWorkerSvc(pub Arc); + impl< + T: ConsumerService, + > tonic::server::UnaryService + for AddWorkerSvc { + type Response = super::AddWorkerResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::add_worker(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = AddWorkerSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sentry_protos.taskbroker.v1.ConsumerService/RemoveWorker" => { + #[allow(non_camel_case_types)] + struct RemoveWorkerSvc(pub Arc); + impl< + T: ConsumerService, + > tonic::server::UnaryService + for RemoveWorkerSvc { + type Response = super::RemoveWorkerResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::remove_worker(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = RemoveWorkerSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } _ => { Box::pin(async move { let mut response = http::Response::new( diff --git a/rust/src/sentry_protos.taskworker.v1.rs b/rust/src/sentry_protos.taskworker.v1.rs new file mode 100644 index 00000000..2bc1d5c5 --- /dev/null +++ b/rust/src/sentry_protos.taskworker.v1.rs @@ -0,0 +1,321 @@ +// This file is @generated by prost-build. +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PushTaskRequest { + #[prost(message, optional, tag = "1")] + pub task: ::core::option::Option, + #[prost(string, tag = "2")] + pub callback_url: ::prost::alloc::string::String, +} +#[derive(Clone, Copy, PartialEq, ::prost::Message)] +pub struct PushTaskResponse { + #[prost(bool, tag = "1")] + pub added: bool, + #[prost(uint32, tag = "2")] + pub queue_size: u32, +} +/// Generated client implementations. +pub mod worker_service_client { + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] + use tonic::codegen::*; + use tonic::codegen::http::Uri; + #[derive(Debug, Clone)] + pub struct WorkerServiceClient { + inner: tonic::client::Grpc, + } + impl WorkerServiceClient { + /// Attempt to create a new client by connecting to a given endpoint. + pub async fn connect(dst: D) -> Result + where + D: TryInto, + D::Error: Into, + { + let conn = tonic::transport::Endpoint::new(dst)?.connect().await?; + Ok(Self::new(conn)) + } + } + impl WorkerServiceClient + where + T: tonic::client::GrpcService, + T::Error: Into, + T::ResponseBody: Body + std::marker::Send + 'static, + ::Error: Into + std::marker::Send, + { + pub fn new(inner: T) -> Self { + let inner = tonic::client::Grpc::new(inner); + Self { inner } + } + pub fn with_origin(inner: T, origin: Uri) -> Self { + let inner = tonic::client::Grpc::with_origin(inner, origin); + Self { inner } + } + pub fn with_interceptor( + inner: T, + interceptor: F, + ) -> WorkerServiceClient> + where + F: tonic::service::Interceptor, + T::ResponseBody: Default, + T: tonic::codegen::Service< + http::Request, + Response = http::Response< + >::ResponseBody, + >, + >, + , + >>::Error: Into + std::marker::Send + std::marker::Sync, + { + WorkerServiceClient::new(InterceptedService::new(inner, interceptor)) + } + /// Compress requests with the given encoding. + /// + /// This requires the server to support it otherwise it might respond with an + /// error. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.send_compressed(encoding); + self + } + /// Enable decompressing responses. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.accept_compressed(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_decoding_message_size(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_encoding_message_size(limit); + self + } + /// Receives a task to execute. + pub async fn push_task( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sentry_protos.taskworker.v1.WorkerService/PushTask", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "sentry_protos.taskworker.v1.WorkerService", + "PushTask", + ), + ); + self.inner.unary(req, path, codec).await + } + } +} +/// Generated server implementations. +pub mod worker_service_server { + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] + use tonic::codegen::*; + /// Generated trait containing gRPC methods that should be implemented for use with WorkerServiceServer. + #[async_trait] + pub trait WorkerService: std::marker::Send + std::marker::Sync + 'static { + /// Receives a task to execute. + async fn push_task( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + } + #[derive(Debug)] + pub struct WorkerServiceServer { + inner: Arc, + accept_compression_encodings: EnabledCompressionEncodings, + send_compression_encodings: EnabledCompressionEncodings, + max_decoding_message_size: Option, + max_encoding_message_size: Option, + } + impl WorkerServiceServer { + pub fn new(inner: T) -> Self { + Self::from_arc(Arc::new(inner)) + } + pub fn from_arc(inner: Arc) -> Self { + Self { + inner, + accept_compression_encodings: Default::default(), + send_compression_encodings: Default::default(), + max_decoding_message_size: None, + max_encoding_message_size: None, + } + } + pub fn with_interceptor( + inner: T, + interceptor: F, + ) -> InterceptedService + where + F: tonic::service::Interceptor, + { + InterceptedService::new(Self::new(inner), interceptor) + } + /// Enable decompressing requests with the given encoding. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.accept_compression_encodings.enable(encoding); + self + } + /// Compress responses with the given encoding, if the client supports it. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.send_compression_encodings.enable(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.max_decoding_message_size = Some(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.max_encoding_message_size = Some(limit); + self + } + } + impl tonic::codegen::Service> for WorkerServiceServer + where + T: WorkerService, + B: Body + std::marker::Send + 'static, + B::Error: Into + std::marker::Send + 'static, + { + type Response = http::Response; + type Error = std::convert::Infallible; + type Future = BoxFuture; + fn poll_ready( + &mut self, + _cx: &mut Context<'_>, + ) -> Poll> { + Poll::Ready(Ok(())) + } + fn call(&mut self, req: http::Request) -> Self::Future { + match req.uri().path() { + "/sentry_protos.taskworker.v1.WorkerService/PushTask" => { + #[allow(non_camel_case_types)] + struct PushTaskSvc(pub Arc); + impl< + T: WorkerService, + > tonic::server::UnaryService + for PushTaskSvc { + type Response = super::PushTaskResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::push_task(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = PushTaskSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + _ => { + Box::pin(async move { + let mut response = http::Response::new( + tonic::body::Body::default(), + ); + let headers = response.headers_mut(); + headers + .insert( + tonic::Status::GRPC_STATUS, + (tonic::Code::Unimplemented as i32).into(), + ); + headers + .insert( + http::header::CONTENT_TYPE, + tonic::metadata::GRPC_CONTENT_TYPE, + ); + Ok(response) + }) + } + } + } + } + impl Clone for WorkerServiceServer { + fn clone(&self) -> Self { + let inner = self.inner.clone(); + Self { + inner, + accept_compression_encodings: self.accept_compression_encodings, + send_compression_encodings: self.send_compression_encodings, + max_decoding_message_size: self.max_decoding_message_size, + max_encoding_message_size: self.max_encoding_message_size, + } + } + } + /// Generated gRPC service name + pub const SERVICE_NAME: &str = "sentry_protos.taskworker.v1.WorkerService"; + impl tonic::server::NamedService for WorkerServiceServer { + const NAME: &'static str = SERVICE_NAME; + } +}