"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import google.protobuf.descriptor
import google.protobuf.message
import sys

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing_extensions.final
class comment(google.protobuf.message.Message):
    """Using comment operation a user may create a post or a comment.
    From the blockchain point of view, it is the same operation – always comment.
    If a comment has no parent, it is a post.
    The parent of the comment may be a post or a comment.
    Users may comment their own comments.

    Description https://gitlab.syncad.com/hive/hive/-/blob/develop/doc/devs/operations/01_comment.md?ref_type=heads
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PARENT_AUTHOR_FIELD_NUMBER: builtins.int
    PARENT_PERMLINK_FIELD_NUMBER: builtins.int
    AUTHOR_FIELD_NUMBER: builtins.int
    PERMLINK_FIELD_NUMBER: builtins.int
    TITLE_FIELD_NUMBER: builtins.int
    BODY_FIELD_NUMBER: builtins.int
    JSON_METADATA_FIELD_NUMBER: builtins.int
    parent_author: builtins.str
    """@param {string} parent_author - Account name, the author of the commented post or comment. 
                                    If the operation creates a post, it is empty.
                                    It cannot be modified.
    """
    parent_permlink: builtins.str
    """@param {string} parent_permlink - The identifier of the commented post or comment.
                                      When a user creates a post, it may contain the identifier of the community
                                      (e.g. hive-174695) or main tag (e.g. travel).
                                      It cannot be modified.
    """
    author: builtins.str
    """@param {string} author - Account name, the author of the post or the comment.
                             It cannot be modified.
    """
    permlink: builtins.str
    """@param {string} permlink - Unique to the author, the identifier of the post or comment.
                               It cannot be modified.
    """
    title: builtins.str
    """@param {string} title - The title of the submitted post, in case of the comment, is often empty.
                            It may be modified.
    """
    body: builtins.str
    """@param {string} body - The content of the post or the comment.
                           It may be modified.
    """
    json_metadata: builtins.str
    """@param {string} json_metadata - There is no blockchain validation on json_metadata,
                                    but the structure has been established by the community.
                                    From the blockchain point of view it is a json file.
                                    For the second layer, the following keys may be used:
                                    - app, e.g. peakd/2023.2.3
                                    - format, e.g. markdown
                                    - tags, e.g. photography
                                    - users
                                    - images
    """
    def __init__(
        self,
        *,
        parent_author: builtins.str | None = ...,
        parent_permlink: builtins.str | None = ...,
        author: builtins.str | None = ...,
        permlink: builtins.str | None = ...,
        title: builtins.str | None = ...,
        body: builtins.str | None = ...,
        json_metadata: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["author", b"author", "body", b"body", "json_metadata", b"json_metadata", "parent_author", b"parent_author", "parent_permlink", b"parent_permlink", "permlink", b"permlink", "title", b"title"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["author", b"author", "body", b"body", "json_metadata", b"json_metadata", "parent_author", b"parent_author", "parent_permlink", b"parent_permlink", "permlink", b"permlink", "title", b"title"]) -> None: ...

global___comment = comment
