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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor = ...

class CpuArchitecture(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class Enum(_Enum, metaclass=_EnumEnumTypeWrapper):
        pass
    class _Enum:
        V = typing.NewType('V', builtins.int)
    class _EnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Enum.V], builtins.type):
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor = ...
        UNKNOWN = CpuArchitecture.Enum.V(0)
        ARMV6M = CpuArchitecture.Enum.V(1)
        ARMV7M = CpuArchitecture.Enum.V(2)
        ARMV8M = CpuArchitecture.Enum.V(3)

    UNKNOWN = CpuArchitecture.Enum.V(0)
    ARMV6M = CpuArchitecture.Enum.V(1)
    ARMV7M = CpuArchitecture.Enum.V(2)
    ARMV8M = CpuArchitecture.Enum.V(3)

    def __init__(self,
        ) -> None: ...
global___CpuArchitecture = CpuArchitecture

class Metadata(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    REASON_FIELD_NUMBER: builtins.int
    FATAL_FIELD_NUMBER: builtins.int
    PROJECT_NAME_FIELD_NUMBER: builtins.int
    SOFTWARE_VERSION_FIELD_NUMBER: builtins.int
    SOFTWARE_BUILD_UUID_FIELD_NUMBER: builtins.int
    DEVICE_NAME_FIELD_NUMBER: builtins.int
    SNAPSHOT_UUID_FIELD_NUMBER: builtins.int
    CPU_ARCH_FIELD_NUMBER: builtins.int
    # A relatively unique descriptive reason for what triggered the snapshot
    # capture. This should either be human readable text, or tokenized data
    # (e.g. base-64 encoded or binary data).
    #
    # Examples:
    #   Null-pointer dereference
    #   [main.cc:22] True is not false!
    #   STACK_OVERFLOW
    reason: builtins.bytes = ...
    # Whether or not the snapshot was captured due to a crash of some kind.
    fatal: builtins.bool = ...
    # Project name to assist in identifying where to redirect this snapshot. A
    # single project might have multiple devices that can produce snapshots.
    project_name: builtins.bytes = ...
    # Version characters must be alphanumeric, punctuation, and space. This
    # string is case-sensitive. This should either be human readable text, or
    # tokenized data.
    #
    # Examples:
    #   "codename-local-[build_id]"
    #   "codename-release-193"
    software_version: typing.Text = ...
    # UUID associated with the build for the software version.
    software_build_uuid: builtins.bytes = ...
    # String containing the specific device name. This should be as specific as
    # possible, detailing hardware revision, and distinguishing different cores
    # in a multi-core device. Snapshots aggregated as related_snapshots should
    # include information that distinguishes the source of the snapshot. This
    # should either be human readable text, or tokenized data.
    #
    # Examples:
    #   "propellerhat-evk"
    #   "gshoe-sensor-core-pvt"
    #   "alarm-clock-dsp-p1"
    device_name: builtins.bytes = ...
    # 128-bit UUID for this snapshot, used to help with de-duplication.
    snapshot_uuid: builtins.bytes = ...
    # The architecture of the CPU that generated this report.
    cpu_arch: global___CpuArchitecture.Enum.V = ...
    def __init__(self,
        *,
        reason : builtins.bytes = ...,
        fatal : builtins.bool = ...,
        project_name : builtins.bytes = ...,
        software_version : typing.Text = ...,
        software_build_uuid : builtins.bytes = ...,
        device_name : builtins.bytes = ...,
        snapshot_uuid : builtins.bytes = ...,
        cpu_arch : global___CpuArchitecture.Enum.V = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"cpu_arch",b"cpu_arch",u"device_name",b"device_name",u"fatal",b"fatal",u"project_name",b"project_name",u"reason",b"reason",u"snapshot_uuid",b"snapshot_uuid",u"software_build_uuid",b"software_build_uuid",u"software_version",b"software_version"]) -> None: ...
global___Metadata = Metadata

# This message overlays the pw.snapshot.Snapshot proto. It's valid to encode
# this message to the same sink that a Snapshot proto is being written to.
class SnapshotBasicInfo(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class TagsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: typing.Text = ...
        value: typing.Text = ...
        def __init__(self,
            *,
            key : typing.Text = ...,
            value : typing.Text = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"key",b"key",u"value",b"value"]) -> None: ...

    METADATA_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    @property
    def metadata(self) -> global___Metadata: ...
    @property
    def tags(self) -> google.protobuf.internal.containers.ScalarMap[typing.Text, typing.Text]: ...
    def __init__(self,
        *,
        metadata : typing.Optional[global___Metadata] = ...,
        tags : typing.Optional[typing.Mapping[typing.Text, typing.Text]] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"metadata",b"metadata"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"metadata",b"metadata",u"tags",b"tags"]) -> None: ...
global___SnapshotBasicInfo = SnapshotBasicInfo
