"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""

import builtins
import collections.abc
import sys

import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message

if sys.version_info >= (3, 8):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class EnhancedStackTrace(google.protobuf.message.Message):
    """Internal structure used to create worker stack traces with references to code."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    class SourcesEntry(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___StackTraceFileSlice: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: global___StackTraceFileSlice | None = ...,
        ) -> None: ...
        def HasField(
            self, field_name: typing_extensions.Literal["value", b"value"]
        ) -> builtins.bool: ...
        def ClearField(
            self,
            field_name: typing_extensions.Literal["key", b"key", "value", b"value"],
        ) -> None: ...

    SDK_FIELD_NUMBER: builtins.int
    SOURCES_FIELD_NUMBER: builtins.int
    STACKS_FIELD_NUMBER: builtins.int
    @property
    def sdk(self) -> global___StackTraceSDKInfo:
        """Information pertaining to the SDK that the trace has been captured from."""
    @property
    def sources(
        self,
    ) -> google.protobuf.internal.containers.MessageMap[
        builtins.str, global___StackTraceFileSlice
    ]:
        """Mapping of file path to file contents."""
    @property
    def stacks(
        self,
    ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
        global___StackTrace
    ]:
        """Collection of stacks captured."""
    def __init__(
        self,
        *,
        sdk: global___StackTraceSDKInfo | None = ...,
        sources: collections.abc.Mapping[builtins.str, global___StackTraceFileSlice]
        | None = ...,
        stacks: collections.abc.Iterable[global___StackTrace] | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing_extensions.Literal["sdk", b"sdk"]
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "sdk", b"sdk", "sources", b"sources", "stacks", b"stacks"
        ],
    ) -> None: ...

global___EnhancedStackTrace = EnhancedStackTrace

class StackTraceSDKInfo(google.protobuf.message.Message):
    """Information pertaining to the SDK that the trace has been captured from.
    (-- api-linter: core::0123::resource-annotation=disabled
        aip.dev/not-precedent: Naming SDK version is optional. --)
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NAME_FIELD_NUMBER: builtins.int
    VERSION_FIELD_NUMBER: builtins.int
    name: builtins.str
    """Name of the SDK"""
    version: builtins.str
    """Version string of the SDK"""
    def __init__(
        self,
        *,
        name: builtins.str = ...,
        version: builtins.str = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal["name", b"name", "version", b"version"],
    ) -> None: ...

global___StackTraceSDKInfo = StackTraceSDKInfo

class StackTraceFileSlice(google.protobuf.message.Message):
    """ "Slice" of a file starting at line_offset -- a line offset and code fragment corresponding to the worker's stack."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    LINE_OFFSET_FIELD_NUMBER: builtins.int
    CONTENT_FIELD_NUMBER: builtins.int
    line_offset: builtins.int
    """Only used (possibly) to trim the file without breaking syntax highlighting. This is not optional, unlike
    the `line` property of a `StackTraceFileLocation`.
    (-- api-linter: core::0141::forbidden-types=disabled
        aip.dev/not-precedent: These really shouldn't have negative values. --)
    """
    content: builtins.str
    """Slice of a file with the respective OS-specific line terminator."""
    def __init__(
        self,
        *,
        line_offset: builtins.int = ...,
        content: builtins.str = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "content", b"content", "line_offset", b"line_offset"
        ],
    ) -> None: ...

global___StackTraceFileSlice = StackTraceFileSlice

class StackTraceFileLocation(google.protobuf.message.Message):
    """More specific location details of a file: its path, precise line and column numbers if applicable, and function name if available.
    In essence, a pointer to a location in a file
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    FILE_PATH_FIELD_NUMBER: builtins.int
    LINE_FIELD_NUMBER: builtins.int
    COLUMN_FIELD_NUMBER: builtins.int
    FUNCTION_NAME_FIELD_NUMBER: builtins.int
    INTERNAL_CODE_FIELD_NUMBER: builtins.int
    file_path: builtins.str
    """Path to source file (absolute or relative).
    If the paths are relative, ensure that they are all relative to the same root.
    """
    line: builtins.int
    """Optional; If possible, SDK should send this -- this is required for displaying the code location.
    If not provided, set to -1.
    """
    column: builtins.int
    """Optional; if possible, SDK should send this.
    If not provided, set to -1.
    """
    function_name: builtins.str
    """Function name this line belongs to, if applicable.
    Used for falling back to stack trace view.
    """
    internal_code: builtins.bool
    """Flag to communicate whether a location should be hidden by default in the stack view."""
    def __init__(
        self,
        *,
        file_path: builtins.str = ...,
        line: builtins.int = ...,
        column: builtins.int = ...,
        function_name: builtins.str = ...,
        internal_code: builtins.bool = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "column",
            b"column",
            "file_path",
            b"file_path",
            "function_name",
            b"function_name",
            "internal_code",
            b"internal_code",
            "line",
            b"line",
        ],
    ) -> None: ...

global___StackTraceFileLocation = StackTraceFileLocation

class StackTrace(google.protobuf.message.Message):
    """Collection of FileLocation messages from a single stack."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    LOCATIONS_FIELD_NUMBER: builtins.int
    @property
    def locations(
        self,
    ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
        global___StackTraceFileLocation
    ]:
        """Collection of `FileLocation`s, each for a stack frame that comprise a stack trace."""
    def __init__(
        self,
        *,
        locations: collections.abc.Iterable[global___StackTraceFileLocation]
        | None = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["locations", b"locations"]
    ) -> None: ...

global___StackTrace = StackTrace
