code: def scroll(self, scroll_id=None, body=None, params=None):
          
          if scroll_id in SKIP_IN_PATH and body in SKIP_IN_PATH:
              raise ValueError("You need to supply scroll_id or body.")
          elif scroll_id and not body:
              body = {"scroll_id": scroll_id}
          elif scroll_id:
              params["scroll_id"] = scroll_id
  
          return self.transport.perform_request(
              "GET", "/_search/scroll", params=params, body=body
          )
docs: Scroll a search request created by specifying the scroll parameter.
          `<http://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-scroll.html>`_
  
          :arg scroll_id: The scroll ID
          :arg body: The scroll ID if not passed by URL or query parameter.
          :arg scroll: Specify how long a consistent view of the index should be
              maintained for scrolled search
          :arg rest_total_hits_as_int: This parameter is used to restore the total hits as a number
              in the response. This param is added version 6.x to handle mixed cluster queries where nodes
              are in multiple versions (7.0 and 6.latest)