class_docstr: Interact with Google Cloud Datastore. This hook uses the Google Cloud connection.
  
  This object is not threads safe. If you want to make multiple requests
  simultaneously, you will need to create a hook per thread.
  
  :param api_version: The version of the API it is going to connect to.
class_docstr_tok: ["Interact","with","Google","Cloud","Datastore",".","This","hook","uses","the","Google","Cloud","connection",".","This","object","is","not","threads","safe",".","If","you","want","to","make","multiple","requests","simultaneously",",","you","will","need","to","create","a","hook","per","thread",".",":","param","api_version",":","The","version","of","the","API","it","is","going","to","connect","to","."]
docstr: Poll backup operation state until it's completed.
  
  :param name: the name of the operation resource
  :param polling_interval_in_seconds: The number of seconds to wait before calling another request.
  :return: a resource operation instance.
docstr_tok: ["Poll","backup","operation","state","until","it","'s","completed",".",":","param","name",":","the","name","of","the","operation","resource",":","param","polling_interval_in_seconds",":","The","number","of","seconds","to","wait","before","calling","another","request",".",":","return",":","a","resource","operation","instance","."]
code: def poll_operation_until_done(
      self, name: str, polling_interval_in_seconds: float
  ) -> dict:
      """
      Poll backup operation state until it's completed.
  
      :param name: the name of the operation resource
      :param polling_interval_in_seconds: The number of seconds to wait before calling another request.
      :return: a resource operation instance.
      """
      while True:
          result: dict = self.get_operation(name)
  
          state: str = result["metadata"]["common"]["state"]
          if state == "PROCESSING":
              self.log.info(
                  "Operation is processing. Re-polling state in %s seconds",
                  polling_interval_in_seconds,
              )
              time.sleep(polling_interval_in_seconds)
          else:
              return result
  
file_path: airflow/airflow/providers/google/cloud/hooks/datastore.py
imports: from __future__ import annotations
  import time
  from typing import Any, Sequence
  from googleapiclient.discovery import Resource, build
  from airflow.providers.google.common.hooks.base_google import GoogleBaseHook
label_desc: Use image node_id 11 for calling the DatastoreHook obj's underlying member method code with example usage: obj.poll_operation_until_done(name, polling_interval_in_seconds) and returns: result