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

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

.. autoapi-nested-parse::

   This module contains Google Workflows links.



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

Classes
~~~~~~~

.. autoapisummary::

   airflow.providers.google.cloud.links.workflows.WorkflowsWorkflowDetailsLink
   airflow.providers.google.cloud.links.workflows.WorkflowsListOfWorkflowsLink
   airflow.providers.google.cloud.links.workflows.WorkflowsExecutionLink




Attributes
~~~~~~~~~~

.. autoapisummary::

   airflow.providers.google.cloud.links.workflows.WORKFLOWS_BASE_LINK
   airflow.providers.google.cloud.links.workflows.WORKFLOW_LINK
   airflow.providers.google.cloud.links.workflows.WORKFLOWS_LINK
   airflow.providers.google.cloud.links.workflows.EXECUTION_LINK


.. py:data:: WORKFLOWS_BASE_LINK
   :annotation: = workflows

   

.. py:data:: WORKFLOW_LINK
   

   

.. py:data:: WORKFLOWS_LINK
   

   

.. py:data:: EXECUTION_LINK
   

   

.. py:class:: WorkflowsWorkflowDetailsLink

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

   Helper class for constructing Workflow details Link

   .. py:attribute:: name
      :annotation: = Workflow details

      

   .. py:attribute:: key
      :annotation: = workflow_details

      

   .. py:attribute:: format_str
      

      

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



.. py:class:: WorkflowsListOfWorkflowsLink

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

   Helper class for constructing list of Workflows Link

   .. py:attribute:: name
      :annotation: = List of workflows

      

   .. py:attribute:: key
      :annotation: = list_of_workflows

      

   .. py:attribute:: format_str
      

      

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



.. py:class:: WorkflowsExecutionLink

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

   Helper class for constructing Workflows Execution Link

   .. py:attribute:: name
      :annotation: = Workflow Execution

      

   .. py:attribute:: key
      :annotation: = workflow_execution

      

   .. py:attribute:: format_str
      

      

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



