:py:mod:`airflow.providers.google.cloud.links.dataproc`
=======================================================

.. py:module:: airflow.providers.google.cloud.links.dataproc

.. autoapi-nested-parse::

   This module contains Google Dataproc links.



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

Classes
~~~~~~~

.. autoapisummary::

   airflow.providers.google.cloud.links.dataproc.DataprocLink
   airflow.providers.google.cloud.links.dataproc.DataprocListLink




Attributes
~~~~~~~~~~

.. autoapisummary::

   airflow.providers.google.cloud.links.dataproc.DATAPROC_BASE_LINK
   airflow.providers.google.cloud.links.dataproc.DATAPROC_JOB_LOG_LINK
   airflow.providers.google.cloud.links.dataproc.DATAPROC_CLUSTER_LINK
   airflow.providers.google.cloud.links.dataproc.DATAPROC_WORKFLOW_TEMPLATE_LINK
   airflow.providers.google.cloud.links.dataproc.DATAPROC_WORKFLOW_LINK
   airflow.providers.google.cloud.links.dataproc.DATAPROC_BATCH_LINK
   airflow.providers.google.cloud.links.dataproc.DATAPROC_BATCHES_LINK


.. py:data:: DATAPROC_BASE_LINK
   

   

.. py:data:: DATAPROC_JOB_LOG_LINK
   

   

.. py:data:: DATAPROC_CLUSTER_LINK
   

   

.. py:data:: DATAPROC_WORKFLOW_TEMPLATE_LINK
   

   

.. py:data:: DATAPROC_WORKFLOW_LINK
   

   

.. py:data:: DATAPROC_BATCH_LINK
   

   

.. py:data:: DATAPROC_BATCHES_LINK
   

   

.. py:class:: DataprocLink

   Bases: :py:obj:`airflow.models.BaseOperatorLink`

   Helper class for constructing Dataproc resource link

   .. py:attribute:: name
      :annotation: = Dataproc resource

      

   .. py:attribute:: key
      :annotation: = conf

      

   .. py:method:: persist(context, task_instance, url, resource)
      :staticmethod:


   .. py:method:: get_link(operator, dttm = None, ti_key = None)

      Link to external system.

      Note: The old signature of this function was ``(self, operator, dttm: datetime)``. That is still
      supported at runtime but is deprecated.

      :param operator: The Airflow operator object this link is associated to.
      :param ti_key: TaskInstance ID to return link for.
      :return: link to external system



.. py:class:: DataprocListLink

   Bases: :py:obj:`airflow.models.BaseOperatorLink`

   Helper class for constructing list of Dataproc resources link

   .. py:attribute:: name
      :annotation: = Dataproc resources

      

   .. py:attribute:: key
      :annotation: = list_conf

      

   .. py:method:: persist(context, task_instance, url)
      :staticmethod:


   .. py:method:: get_link(operator, dttm = None, ti_key = None)

      Link to external system.

      Note: The old signature of this function was ``(self, operator, dttm: datetime)``. That is still
      supported at runtime but is deprecated.

      :param operator: The Airflow operator object this link is associated to.
      :param ti_key: TaskInstance ID to return link for.
      :return: link to external system



