"""
@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 google.protobuf.timestamp_pb2
import sys

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class MetadataV1(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    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_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    PUBLISHER_FIELD_NUMBER: builtins.int
    TIMESTAMP_FIELD_NUMBER: builtins.int
    HEADERS_FIELD_NUMBER: builtins.int
    publisher: builtins.str
    """Message publisher service"""
    @property
    def timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Publish timestamp in epoch milliseconds (integer)"""
    @property
    def headers(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]:
        """Custom headers associated with the message"""
    def __init__(
        self,
        *,
        publisher: builtins.str = ...,
        timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        headers: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["timestamp", b"timestamp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["headers", b"headers", "publisher", b"publisher", "timestamp", b"timestamp"]) -> None: ...

global___MetadataV1 = MetadataV1

class PayloadV1(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    FORMAT_VERSION_FIELD_NUMBER: builtins.int
    ID_FIELD_NUMBER: builtins.int
    METADATA_FIELD_NUMBER: builtins.int
    SCHEMA_FIELD_NUMBER: builtins.int
    DATA_FIELD_NUMBER: builtins.int
    format_version: builtins.str
    """Format version for the message"""
    id: builtins.str
    """Message identifier"""
    @property
    def metadata(self) -> global___MetadataV1:
        """Metadata associated with the message"""
    schema: builtins.str
    """Schema to validate the data object with - format: <message type>/<message data version>, e.g. TripCreated/1.0"""
    @property
    def data(self) -> google.protobuf.any_pb2.Any:
        """Message data"""
    def __init__(
        self,
        *,
        format_version: builtins.str = ...,
        id: builtins.str = ...,
        metadata: global___MetadataV1 | None = ...,
        schema: builtins.str = ...,
        data: google.protobuf.any_pb2.Any | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["data", b"data", "metadata", b"metadata"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["data", b"data", "format_version", b"format_version", "id", b"id", "metadata", b"metadata", "schema", b"schema"]) -> None: ...

global___PayloadV1 = PayloadV1
