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

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

.. autoapi-nested-parse::

   This module contains Google Cloud Functions links.



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

Classes
~~~~~~~

.. autoapisummary::

   airflow.providers.google.cloud.links.cloud_functions.CloudFunctionsDetailsLink
   airflow.providers.google.cloud.links.cloud_functions.CloudFunctionsListLink




Attributes
~~~~~~~~~~

.. autoapisummary::

   airflow.providers.google.cloud.links.cloud_functions.CLOUD_FUNCTIONS_BASE_LINK
   airflow.providers.google.cloud.links.cloud_functions.CLOUD_FUNCTIONS_DETAILS_LINK
   airflow.providers.google.cloud.links.cloud_functions.CLOUD_FUNCTIONS_LIST_LINK


.. py:data:: CLOUD_FUNCTIONS_BASE_LINK
   :annotation: = https://console.cloud.google.com/functions

   

.. py:data:: CLOUD_FUNCTIONS_DETAILS_LINK
   

   

.. py:data:: CLOUD_FUNCTIONS_LIST_LINK
   

   

.. py:class:: CloudFunctionsDetailsLink

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

   Helper class for constructing Cloud Functions Details Link

   .. py:attribute:: name
      :annotation: = Cloud Functions Details

      

   .. py:attribute:: key
      :annotation: = cloud_functions_details

      

   .. py:attribute:: format_str
      

      

   .. py:method:: persist(context, task_instance, function_name, location, project_id)
      :staticmethod:



.. py:class:: CloudFunctionsListLink

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

   Helper class for constructing Cloud Functions Details Link

   .. py:attribute:: name
      :annotation: = Cloud Functions List

      

   .. py:attribute:: key
      :annotation: = cloud_functions_list

      

   .. py:attribute:: format_str
      

      

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



