class_docstr: Define the ``PULL-DOC-REPLY`` message for replying to Document pull
  requests from clients
  
  The ``content`` fragment of for this message is has the form:
  
  .. code-block:: python
  
      {
          'doc' : <Document JSON>
      }
docstr: Create an ``PULL-DOC-REPLY`` message
  
  Args:
      request_id (str) :
          The message ID for the message that issues the pull request
  
      document (Document) :
          The Document to reply with
  
  Any additional keyword arguments will be put into the message
  ``metadata`` fragment as-is.
code: def create(
      cls, request_id: ID, document: Document, **metadata: Any
  ) -> pull_doc_reply:
      """Create an ``PULL-DOC-REPLY`` message
  
      Args:
          request_id (str) :
              The message ID for the message that issues the pull request
  
          document (Document) :
              The Document to reply with
  
      Any additional keyword arguments will be put into the message
      ``metadata`` fragment as-is.
  
      """
      header = cls.create_header(request_id=request_id)
      content = PullDoc(doc=document.to_json())
  
      msg = cls(header, metadata, content)
      return msg
  
file_path: bokeh/src/bokeh/protocol/messages/pull_doc_reply.py
imports: from __future__ import annotations
  import logging
  from typing import TYPE_CHECKING, Any, TypedDict
  from ...core.types import ID
  from ..exceptions import ProtocolError
  from ..message import Message
label_desc: Use image node_id 1 for calling the pull_doc_reply obj's underlying member method code with example usage: obj.create(cls, request_id, document) and returns: msg