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

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

.. autoapi-nested-parse::

   This module contains Google Data Catalog links.



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

Classes
~~~~~~~

.. autoapisummary::

   airflow.providers.google.cloud.links.datacatalog.DataCatalogEntryGroupLink
   airflow.providers.google.cloud.links.datacatalog.DataCatalogEntryLink
   airflow.providers.google.cloud.links.datacatalog.DataCatalogTagTemplateLink




Attributes
~~~~~~~~~~

.. autoapisummary::

   airflow.providers.google.cloud.links.datacatalog.DATACATALOG_BASE_LINK
   airflow.providers.google.cloud.links.datacatalog.ENTRY_GROUP_LINK
   airflow.providers.google.cloud.links.datacatalog.ENTRY_LINK
   airflow.providers.google.cloud.links.datacatalog.TAG_TEMPLATE_LINK


.. py:data:: DATACATALOG_BASE_LINK
   :annotation: = /datacatalog

   

.. py:data:: ENTRY_GROUP_LINK
   

   

.. py:data:: ENTRY_LINK
   

   

.. py:data:: TAG_TEMPLATE_LINK
   

   

.. py:class:: DataCatalogEntryGroupLink

   Bases: :py:obj:`airflow.providers.google.cloud.links.base.BaseGoogleLink`

   Helper class for constructing Data Catalog Entry Group Link

   .. py:attribute:: name
      :annotation: = Data Catalog Entry Group

      

   .. py:attribute:: key
      :annotation: = data_catalog_entry_group

      

   .. py:attribute:: format_str
      

      

   .. py:method:: persist(context, task_instance, entry_group_id, location_id, project_id)
      :staticmethod:



.. py:class:: DataCatalogEntryLink

   Bases: :py:obj:`airflow.providers.google.cloud.links.base.BaseGoogleLink`

   Helper class for constructing Data Catalog Entry Link

   .. py:attribute:: name
      :annotation: = Data Catalog Entry

      

   .. py:attribute:: key
      :annotation: = data_catalog_entry

      

   .. py:attribute:: format_str
      

      

   .. py:method:: persist(context, task_instance, entry_id, entry_group_id, location_id, project_id)
      :staticmethod:



.. py:class:: DataCatalogTagTemplateLink

   Bases: :py:obj:`airflow.providers.google.cloud.links.base.BaseGoogleLink`

   Helper class for constructing Data Catalog Tag Template Link

   .. py:attribute:: name
      :annotation: = Data Catalog Tag Template

      

   .. py:attribute:: key
      :annotation: = data_catalog_tag_template

      

   .. py:attribute:: format_str
      

      

   .. py:method:: persist(context, task_instance, tag_template_id, location_id, project_id)
      :staticmethod:



