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

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


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

Classes
~~~~~~~

.. autoapisummary::

   airflow.providers.google.cloud.links.vertex_ai.VertexAIModelLink
   airflow.providers.google.cloud.links.vertex_ai.VertexAIModelListLink
   airflow.providers.google.cloud.links.vertex_ai.VertexAIModelExportLink
   airflow.providers.google.cloud.links.vertex_ai.VertexAITrainingLink
   airflow.providers.google.cloud.links.vertex_ai.VertexAITrainingPipelinesLink
   airflow.providers.google.cloud.links.vertex_ai.VertexAIDatasetLink
   airflow.providers.google.cloud.links.vertex_ai.VertexAIDatasetListLink
   airflow.providers.google.cloud.links.vertex_ai.VertexAIHyperparameterTuningJobListLink
   airflow.providers.google.cloud.links.vertex_ai.VertexAIBatchPredictionJobLink
   airflow.providers.google.cloud.links.vertex_ai.VertexAIBatchPredictionJobListLink
   airflow.providers.google.cloud.links.vertex_ai.VertexAIEndpointLink
   airflow.providers.google.cloud.links.vertex_ai.VertexAIEndpointListLink




Attributes
~~~~~~~~~~

.. autoapisummary::

   airflow.providers.google.cloud.links.vertex_ai.VERTEX_AI_BASE_LINK
   airflow.providers.google.cloud.links.vertex_ai.VERTEX_AI_MODEL_LINK
   airflow.providers.google.cloud.links.vertex_ai.VERTEX_AI_MODEL_LIST_LINK
   airflow.providers.google.cloud.links.vertex_ai.VERTEX_AI_MODEL_EXPORT_LINK
   airflow.providers.google.cloud.links.vertex_ai.VERTEX_AI_TRAINING_LINK
   airflow.providers.google.cloud.links.vertex_ai.VERTEX_AI_TRAINING_PIPELINES_LINK
   airflow.providers.google.cloud.links.vertex_ai.VERTEX_AI_DATASET_LINK
   airflow.providers.google.cloud.links.vertex_ai.VERTEX_AI_DATASET_LIST_LINK
   airflow.providers.google.cloud.links.vertex_ai.VERTEX_AI_HYPERPARAMETER_TUNING_JOB_LIST_LINK
   airflow.providers.google.cloud.links.vertex_ai.VERTEX_AI_BATCH_PREDICTION_JOB_LINK
   airflow.providers.google.cloud.links.vertex_ai.VERTEX_AI_BATCH_PREDICTION_JOB_LIST_LINK
   airflow.providers.google.cloud.links.vertex_ai.VERTEX_AI_ENDPOINT_LINK
   airflow.providers.google.cloud.links.vertex_ai.VERTEX_AI_ENDPOINT_LIST_LINK


.. py:data:: VERTEX_AI_BASE_LINK
   :annotation: = /vertex-ai

   

.. py:data:: VERTEX_AI_MODEL_LINK
   

   

.. py:data:: VERTEX_AI_MODEL_LIST_LINK
   

   

.. py:data:: VERTEX_AI_MODEL_EXPORT_LINK
   :annotation: = /storage/browser/{bucket_name}/model-{model_id}?project={project_id}

   

.. py:data:: VERTEX_AI_TRAINING_LINK
   

   

.. py:data:: VERTEX_AI_TRAINING_PIPELINES_LINK
   

   

.. py:data:: VERTEX_AI_DATASET_LINK
   

   

.. py:data:: VERTEX_AI_DATASET_LIST_LINK
   

   

.. py:data:: VERTEX_AI_HYPERPARAMETER_TUNING_JOB_LIST_LINK
   

   

.. py:data:: VERTEX_AI_BATCH_PREDICTION_JOB_LINK
   

   

.. py:data:: VERTEX_AI_BATCH_PREDICTION_JOB_LIST_LINK
   

   

.. py:data:: VERTEX_AI_ENDPOINT_LINK
   

   

.. py:data:: VERTEX_AI_ENDPOINT_LIST_LINK
   

   

.. py:class:: VertexAIModelLink

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

   Helper class for constructing Vertex AI Model link

   .. py:attribute:: name
      :annotation: = Vertex AI Model

      

   .. py:attribute:: key
      :annotation: = model_conf

      

   .. py:attribute:: format_str
      

      

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



.. py:class:: VertexAIModelListLink

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

   Helper class for constructing Vertex AI Models Link

   .. py:attribute:: name
      :annotation: = Model List

      

   .. py:attribute:: key
      :annotation: = models_conf

      

   .. py:attribute:: format_str
      

      

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



.. py:class:: VertexAIModelExportLink

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

   Helper class for constructing Vertex AI Model Export Link

   .. py:attribute:: name
      :annotation: = Export Model

      

   .. py:attribute:: key
      :annotation: = export_conf

      

   .. py:attribute:: format_str
      

      

   .. py:method:: extract_bucket_name(config)
      :staticmethod:

      Returns bucket name from output configuration.


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



.. py:class:: VertexAITrainingLink

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

   Helper class for constructing Vertex AI Training link

   .. py:attribute:: name
      :annotation: = Vertex AI Training

      

   .. py:attribute:: key
      :annotation: = training_conf

      

   .. py:attribute:: format_str
      

      

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



.. py:class:: VertexAITrainingPipelinesLink

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

   Helper class for constructing Vertex AI Training Pipelines link

   .. py:attribute:: name
      :annotation: = Vertex AI Training Pipelines

      

   .. py:attribute:: key
      :annotation: = pipelines_conf

      

   .. py:attribute:: format_str
      

      

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



.. py:class:: VertexAIDatasetLink

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

   Helper class for constructing Vertex AI Dataset link

   .. py:attribute:: name
      :annotation: = Dataset

      

   .. py:attribute:: key
      :annotation: = dataset_conf

      

   .. py:attribute:: format_str
      

      

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



.. py:class:: VertexAIDatasetListLink

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

   Helper class for constructing Vertex AI Datasets Link

   .. py:attribute:: name
      :annotation: = Dataset List

      

   .. py:attribute:: key
      :annotation: = datasets_conf

      

   .. py:attribute:: format_str
      

      

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



.. py:class:: VertexAIHyperparameterTuningJobListLink

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

   Helper class for constructing Vertex AI HyperparameterTuningJobs Link

   .. py:attribute:: name
      :annotation: = Hyperparameter Tuning Job List

      

   .. py:attribute:: key
      :annotation: = hyperparameter_tuning_jobs_conf

      

   .. py:attribute:: format_str
      

      

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



.. py:class:: VertexAIBatchPredictionJobLink

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

   Helper class for constructing Vertex AI BatchPredictionJob link

   .. py:attribute:: name
      :annotation: = Batch Prediction Job

      

   .. py:attribute:: key
      :annotation: = batch_prediction_job_conf

      

   .. py:attribute:: format_str
      

      

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



.. py:class:: VertexAIBatchPredictionJobListLink

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

   Helper class for constructing Vertex AI BatchPredictionJobList link

   .. py:attribute:: name
      :annotation: = Batch Prediction Job List

      

   .. py:attribute:: key
      :annotation: = batch_prediction_jobs_conf

      

   .. py:attribute:: format_str
      

      

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



.. py:class:: VertexAIEndpointLink

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

   Helper class for constructing Vertex AI Endpoint link

   .. py:attribute:: name
      :annotation: = Endpoint

      

   .. py:attribute:: key
      :annotation: = endpoint_conf

      

   .. py:attribute:: format_str
      

      

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



.. py:class:: VertexAIEndpointListLink

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

   Helper class for constructing Vertex AI EndpointList link

   .. py:attribute:: name
      :annotation: = Endpoint List

      

   .. py:attribute:: key
      :annotation: = endpoints_conf

      

   .. py:attribute:: format_str
      

      

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



