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

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


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

Classes
~~~~~~~

.. autoapisummary::

   airflow.providers.google.cloud.links.cloud_build.CloudBuildLink
   airflow.providers.google.cloud.links.cloud_build.CloudBuildListLink
   airflow.providers.google.cloud.links.cloud_build.CloudBuildTriggersListLink
   airflow.providers.google.cloud.links.cloud_build.CloudBuildTriggerDetailsLink




Attributes
~~~~~~~~~~

.. autoapisummary::

   airflow.providers.google.cloud.links.cloud_build.BUILD_BASE_LINK
   airflow.providers.google.cloud.links.cloud_build.BUILD_LINK
   airflow.providers.google.cloud.links.cloud_build.BUILD_LIST_LINK
   airflow.providers.google.cloud.links.cloud_build.BUILD_TRIGGERS_LIST_LINK
   airflow.providers.google.cloud.links.cloud_build.BUILD_TRIGGER_DETAILS_LINK


.. py:data:: BUILD_BASE_LINK
   :annotation: = /cloud-build

   

.. py:data:: BUILD_LINK
   

   

.. py:data:: BUILD_LIST_LINK
   

   

.. py:data:: BUILD_TRIGGERS_LIST_LINK
   

   

.. py:data:: BUILD_TRIGGER_DETAILS_LINK
   

   

.. py:class:: CloudBuildLink

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

   Helper class for constructing Cloud Build link

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

      

   .. py:attribute:: key
      :annotation: = cloud_build_key

      

   .. py:attribute:: format_str
      

      

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



.. py:class:: CloudBuildListLink

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

   Helper class for constructing Cloud Build List link

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

      

   .. py:attribute:: key
      :annotation: = cloud_build_list_key

      

   .. py:attribute:: format_str
      

      

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



.. py:class:: CloudBuildTriggersListLink

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

   Helper class for constructing Cloud Build Triggers List link

   .. py:attribute:: name
      :annotation: = Cloud Build Triggers List

      

   .. py:attribute:: key
      :annotation: = cloud_build_triggers_list_key

      

   .. py:attribute:: format_str
      

      

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



.. py:class:: CloudBuildTriggerDetailsLink

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

   Helper class for constructing Cloud Build Trigger Details link

   .. py:attribute:: name
      :annotation: = Cloud Build Triggers Details

      

   .. py:attribute:: key
      :annotation: = cloud_build_triggers_details_key

      

   .. py:attribute:: format_str
      

      

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



