:mod:`airflow.contrib.hooks.datastore_hook`
===========================================

.. py:module:: airflow.contrib.hooks.datastore_hook


Module Contents
---------------

.. py:class:: DatastoreHook(datastore_conn_id='google_cloud_datastore_default', delegate_to=None, api_version='v1')

   Bases: :class:`airflow.contrib.hooks.gcp_api_base_hook.GoogleCloudBaseHook`

   Interact with Google Cloud Datastore. This hook uses the Google Cloud Platform 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.
   :type api_version: str

   
   .. method:: get_conn(self, version=None)

      Establishes a connection to the Google API.

      :return: a Google Cloud Datastore service object.
      :rtype: Resource



   
   .. method:: allocate_ids(self, partial_keys)

      Allocate IDs for incomplete keys.

      .. seealso::
          https://cloud.google.com/datastore/docs/reference/rest/v1/projects/allocateIds

      :param partial_keys: a list of partial keys.
      :type partial_keys: list
      :return: a list of full keys.
      :rtype: list



   
   .. method:: begin_transaction(self)

      Begins a new transaction.

      .. seealso::
          https://cloud.google.com/datastore/docs/reference/rest/v1/projects/beginTransaction

      :return: a transaction handle.
      :rtype: str



   
   .. method:: commit(self, body)

      Commit a transaction, optionally creating, deleting or modifying some entities.

      .. seealso::
          https://cloud.google.com/datastore/docs/reference/rest/v1/projects/commit

      :param body: the body of the commit request.
      :type body: dict
      :return: the response body of the commit request.
      :rtype: dict



   
   .. method:: lookup(self, keys, read_consistency=None, transaction=None)

      Lookup some entities by key.

      .. seealso::
          https://cloud.google.com/datastore/docs/reference/rest/v1/projects/lookup

      :param keys: the keys to lookup.
      :type keys: list
      :param read_consistency: the read consistency to use. default, strong or eventual.
                               Cannot be used with a transaction.
      :type read_consistency: str
      :param transaction: the transaction to use, if any.
      :type transaction: str
      :return: the response body of the lookup request.
      :rtype: dict



   
   .. method:: rollback(self, transaction)

      Roll back a transaction.

      .. seealso::
          https://cloud.google.com/datastore/docs/reference/rest/v1/projects/rollback

      :param transaction: the transaction to roll back.
      :type transaction: str



   
   .. method:: run_query(self, body)

      Run a query for entities.

      .. seealso::
          https://cloud.google.com/datastore/docs/reference/rest/v1/projects/runQuery

      :param body: the body of the query request.
      :type body: dict
      :return: the batch of query results.
      :rtype: dict



   
   .. method:: get_operation(self, name)

      Gets the latest state of a long-running operation.

      .. seealso::
          https://cloud.google.com/datastore/docs/reference/data/rest/v1/projects.operations/get

      :param name: the name of the operation resource.
      :type name: str
      :return: a resource operation instance.
      :rtype: dict



   
   .. method:: delete_operation(self, name)

      Deletes the long-running operation.

      .. seealso::
          https://cloud.google.com/datastore/docs/reference/data/rest/v1/projects.operations/delete

      :param name: the name of the operation resource.
      :type name: str
      :return: none if successful.
      :rtype: dict



   
   .. method:: poll_operation_until_done(self, name, polling_interval_in_seconds)

      Poll backup operation state until it's completed.

      :param name: the name of the operation resource
      :type name: str
      :param polling_interval_in_seconds: The number of seconds to wait before calling another request.
      :type polling_interval_in_seconds: int
      :return: a resource operation instance.
      :rtype: dict



   
   .. method:: export_to_storage_bucket(self, bucket, namespace=None, entity_filter=None, labels=None)

      Export entities from Cloud Datastore to Cloud Storage for backup.

      .. note::
          Keep in mind that this requests the Admin API not the Data API.

      .. seealso::
          https://cloud.google.com/datastore/docs/reference/admin/rest/v1/projects/export

      :param bucket: The name of the Cloud Storage bucket.
      :type bucket: str
      :param namespace: The Cloud Storage namespace path.
      :type namespace: str
      :param entity_filter: Description of what data from the project is included in the export.
      :type entity_filter: dict
      :param labels: Client-assigned labels.
      :type labels: dict of str
      :return: a resource operation instance.
      :rtype: dict



   
   .. method:: import_from_storage_bucket(self, bucket, file, namespace=None, entity_filter=None, labels=None)

      Import a backup from Cloud Storage to Cloud Datastore.

      .. note::
          Keep in mind that this requests the Admin API not the Data API.

      .. seealso::
          https://cloud.google.com/datastore/docs/reference/admin/rest/v1/projects/import

      :param bucket: The name of the Cloud Storage bucket.
      :type bucket: str
      :param file: the metadata file written by the projects.export operation.
      :type file: str
      :param namespace: The Cloud Storage namespace path.
      :type namespace: str
      :param entity_filter: specify which kinds/namespaces are to be imported.
      :type entity_filter: dict
      :param labels: Client-assigned labels.
      :type labels: dict of str
      :return: a resource operation instance.
      :rtype: dict




